@charset "utf-8";
/* ============================================================
   Moises Graniel — hotels.moisesgraniel.com
   Design system: "Firn · Gastgeber"
   Same family as weddings.moisesgraniel.com, but paper-first:
   more white space, anthracite-blue ink, brass only as a hairline,
   big numbers. No camera icons, no stock brokers.
   ============================================================ */

/* ---------- 1. FONTS (self-hosted, OFL) ---------- */
@font-face{
  font-family:"Fraunces";
  src:url("assets/fonts/fraunces-var.woff2") format("woff2-variations");
  font-weight:100 900;font-style:normal;font-display:swap;
}
@font-face{
  font-family:"Archivo";
  src:url("assets/fonts/archivo-var.woff2") format("woff2-variations");
  font-weight:100 900;font-stretch:62% 125%;font-style:normal;font-display:swap;
}

/* ---------- 2. TOKENS ---------- */
:root{
  --ink:#10161E;        /* anthracite blue */
  --ink-2:#161E28;
  --ink-3:#20293A;
  --paper:#F5F4F0;
  --paper-2:#E9E7E1;
  --paper-3:#D9D6CE;
  --snow:#FFFFFF;
  --frost:#9AA6B2;
  --stone:#5B636C;
  --brass:#B08D3F;
  --brass-soft:#C7A75E;
  --brass-ink:#7E611C;
  --ok:#2F6B3A;
  --err:#A03A2E;

  --bg:var(--paper);
  --fg:#151A20;
  --fg-mute:var(--stone);
  --rule:var(--paper-3);

  --ff-d:"Fraunces",Georgia,"Times New Roman",serif;
  --ff-b:"Archivo",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;

  --gut:clamp(20px,4.4vw,72px);
  --maxw:1280px;
  --pad-y:clamp(72px,9vw,136px);
  --r:2px;
  --ease:cubic-bezier(.22,.68,.16,1);
  --dur:.6s;
  --hdr-h:68px;
}

/* ---------- 3. RESET ---------- */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body,h1,h2,h3,h4,p,figure,blockquote,dl,dd,ol,ul,fieldset,legend{margin:0;padding:0}
ol,ul{list-style:none}
img,picture,svg,video{display:block;max-width:100%}
img{height:auto}
button,input,textarea,select{font:inherit;color:inherit}
button{background:none;border:0;cursor:pointer}
a{color:inherit}
address{font-style:normal}
summary::-webkit-details-marker{display:none}
html{scroll-behavior:smooth;scroll-padding-top:calc(var(--hdr-h) + 16px)}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

body{
  font-family:var(--ff-b);
  font-variation-settings:"wght" 390,"wdth" 100;
  font-size:clamp(1rem,.96rem + .18vw,1.0625rem);
  line-height:1.6;
  color:var(--fg);
  background:var(--paper);
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
::selection{background:var(--brass);color:var(--snow)}
.u-sr{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.skip{position:fixed;top:8px;left:8px;z-index:400;transform:translateY(-160%);background:var(--ink);color:var(--snow);padding:.7em 1.2em;font-size:.82rem;border-radius:var(--r)}
.skip:focus{transform:none}
:where(a,button,summary,input,textarea,select,[tabindex]):focus-visible{outline:2px solid var(--brass);outline-offset:3px;border-radius:1px}

/* ---------- 4. TYPE ---------- */
.h1{
  font-family:var(--ff-d);
  font-variation-settings:"opsz" 144,"wght" 380,"SOFT" 12,"WONK" 0;
  font-size:clamp(2.5rem,1.5rem + 4.6vw,5.1rem);
  line-height:.98;letter-spacing:-.022em;text-wrap:balance;
}
.h2{
  font-family:var(--ff-d);
  font-variation-settings:"opsz" 110,"wght" 380,"SOFT" 12,"WONK" 0;
  font-size:clamp(1.9rem,1.2rem + 3vw,3.5rem);
  line-height:1.04;letter-spacing:-.018em;text-wrap:balance;
}
.h3{
  font-family:var(--ff-d);
  font-variation-settings:"opsz" 42,"wght" 440,"SOFT" 8,"WONK" 0;
  font-size:clamp(1.22rem,1.06rem + .7vw,1.6rem);
  line-height:1.2;letter-spacing:-.008em;
}
.eyebrow{
  font-size:.6875rem;font-variation-settings:"wght" 600,"wdth" 92;
  letter-spacing:.17em;text-transform:uppercase;color:var(--fg-mute);
  display:flex;flex-wrap:wrap;align-items:baseline;gap:.4em .85em;
}
.idx{color:var(--brass-ink);font-variant-numeric:tabular-nums;letter-spacing:.06em}
.idx::after{content:"";display:inline-block;width:26px;height:1px;background:var(--brass);vertical-align:.32em;margin-left:.85em;opacity:.6}
.lead{font-size:clamp(1.05rem,.98rem + .42vw,1.3rem);line-height:1.5;color:var(--fg-mute);max-width:52ch;text-wrap:pretty}
.num{font-family:var(--ff-d);font-variation-settings:"opsz" 144,"wght" 300,"SOFT" 0,"WONK" 0;font-variant-numeric:tabular-nums lining-nums;letter-spacing:-.03em;line-height:1}
.mute{color:var(--fg-mute)}
.small{font-size:.86rem}
strong{font-variation-settings:"wght" 620}

/* ---------- 5. BUTTONS ---------- */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:.6em;
  min-height:52px;padding:.9em 1.7em;
  font-size:.78rem;font-variation-settings:"wght" 620,"wdth" 96;
  letter-spacing:.13em;text-transform:uppercase;text-decoration:none;
  border-radius:var(--r);border:1px solid transparent;white-space:nowrap;
  transition:background .3s var(--ease),color .3s var(--ease),border-color .3s var(--ease),transform .3s var(--ease);
}
.btn--solid{background:var(--ink);color:var(--paper);border-color:var(--ink)}
.btn--solid:hover{background:var(--brass);border-color:var(--brass);color:var(--snow)}
.btn--ghost{border-color:rgba(16,22,30,.28);color:var(--ink)}
.btn--ghost:hover{border-color:var(--ink);background:rgba(16,22,30,.05)}
.sec--ink .btn--solid{background:var(--snow);color:var(--ink);border-color:var(--snow)}
.sec--ink .btn--solid:hover{background:var(--brass);border-color:var(--brass);color:var(--snow)}
.sec--ink .btn--ghost{border-color:rgba(255,255,255,.34);color:var(--snow)}
.sec--ink .btn--ghost:hover{border-color:var(--snow);background:rgba(255,255,255,.08)}
.btn--line{border-color:currentColor;min-height:42px;padding:.6em 1.15em;font-size:.7rem}
.btn--line:hover{background:var(--ink);color:var(--paper);border-color:var(--ink)}
.btn--full{width:100%}
.btn--wa svg{width:16px;height:16px}
.lnk{display:inline-flex;align-items:center;gap:.55em;font-size:.74rem;font-variation-settings:"wght" 620,"wdth" 96;letter-spacing:.13em;text-transform:uppercase;text-decoration:none;padding-bottom:.35em;border-bottom:1px solid var(--brass);transition:color .3s var(--ease),border-color .3s var(--ease)}
.lnk:hover{color:var(--brass-ink)}

/* ---------- 6. HEADER ---------- */
.hdr{
  position:fixed;top:0;left:0;right:0;z-index:150;
  display:flex;align-items:center;gap:clamp(16px,3vw,44px);
  min-height:var(--hdr-h);padding:0 var(--gut);
  background:rgba(245,244,240,.82);
  -webkit-backdrop-filter:saturate(1.2) blur(12px);backdrop-filter:saturate(1.2) blur(12px);
  border-bottom:1px solid transparent;
  transition:border-color .4s var(--ease),background .4s var(--ease);
}
.hdr.is-stuck{border-bottom-color:var(--paper-3);background:rgba(245,244,240,.94)}
.brand{display:flex;align-items:center;gap:12px;text-decoration:none;flex:0 0 auto;color:var(--ink)}
.brand__lion,.ftr__lion{display:block;background:currentColor;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-position:center;mask-position:center;-webkit-mask-size:contain;mask-size:contain}
.brand__lion{width:22px;aspect-ratio:503/516;-webkit-mask-image:url("assets/icons/logo-lion.svg");mask-image:url("assets/icons/logo-lion.svg")}
.brand__lock{display:grid;gap:.22em;line-height:1;font-family:var(--ff-d);text-transform:uppercase;white-space:nowrap}
.brand__name{font-variation-settings:"opsz" 40,"wght" 420,"SOFT" 0,"WONK" 0;font-size:clamp(.74rem,.68rem + .28vw,.88rem);letter-spacing:.15em}
.brand__line{font-family:var(--ff-b);font-variation-settings:"wght" 560,"wdth" 90;font-size:.58rem;letter-spacing:.24em;color:var(--brass-ink)}
.nav{margin-left:auto}
.nav__list{display:none}
@media (min-width:1080px){
  .nav__list{display:flex;gap:clamp(16px,2vw,32px)}
  .nav__list a{text-decoration:none;font-size:.72rem;font-variation-settings:"wght" 540,"wdth" 96;letter-spacing:.13em;text-transform:uppercase;padding:.45em 0;position:relative;display:block;white-space:nowrap;color:var(--stone);transition:color .3s var(--ease)}
  .nav__list a::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:var(--brass);transform:scaleX(0);transform-origin:left;transition:transform .38s var(--ease)}
  .nav__list a:hover,.nav__list a.is-active{color:var(--ink)}
  .nav__list a:hover::after,.nav__list a.is-active::after{transform:scaleX(1)}
}
.hdr__tel{display:none;text-decoration:none;font-size:.78rem;font-variation-settings:"wght" 560,"wdth" 94;letter-spacing:.04em;color:var(--ink);font-variant-numeric:tabular-nums}
.hdr__cta{display:none}
@media (min-width:1080px){.hdr__tel{display:inline-block}.hdr__cta{display:inline-flex;flex:0 0 auto}}
.burger{margin-left:auto;display:flex;align-items:center;gap:.7em;min-height:44px;padding:0 2px;color:var(--ink);font-size:.7rem;font-variation-settings:"wght" 580,"wdth" 92;letter-spacing:.15em;text-transform:uppercase}
.burger__box{display:block;width:24px}
.burger__box i{display:block;height:1.5px;background:currentColor;transition:transform .38s var(--ease),opacity .3s var(--ease)}
.burger__box i:first-child{margin-bottom:6px}
.burger[aria-expanded="true"] .burger__box i:first-child{transform:translateY(3.75px) rotate(45deg)}
.burger[aria-expanded="true"] .burger__box i:last-child{transform:translateY(-3.75px) rotate(-45deg)}
@media (min-width:1080px){.burger{display:none}}

/* ---------- 7. MOBILE MENU ---------- */
.menu{position:fixed;inset:0;z-index:140;background:var(--ink);color:var(--paper);padding:calc(var(--hdr-h) + 24px) var(--gut) 40px;display:flex;flex-direction:column;justify-content:space-between;overflow:auto}
.menu[hidden]{display:none}
.menu__list{display:grid;gap:4px}
.menu__list a{display:flex;align-items:baseline;gap:18px;text-decoration:none;padding:12px 0;border-bottom:1px solid rgba(255,255,255,.1);font-family:var(--ff-d);font-variation-settings:"opsz" 42,"wght" 380;font-size:1.5rem;letter-spacing:-.01em}
.menu__list span{font-family:var(--ff-b);font-size:.7rem;letter-spacing:.14em;color:var(--brass);font-variant-numeric:tabular-nums}
.menu__foot{display:grid;gap:18px;margin-top:32px;color:var(--frost);font-size:.92rem}
.menu__foot a{color:var(--paper);text-decoration:none}
.menu__foot .btn--solid{background:var(--snow);color:var(--ink);border-color:var(--snow)}
body.is-locked{overflow:hidden}

/* ---------- 8. SECTION SHELL ---------- */
.sec{position:relative;padding:var(--pad-y) var(--gut);background:var(--bg);color:var(--fg)}
.sec--paper{--bg:var(--paper);--fg:#151A20;--fg-mute:var(--stone);--rule:var(--paper-3)}
.sec--paper2{--bg:var(--paper-2);--fg:#151A20;--fg-mute:var(--stone);--rule:var(--paper-3)}
.sec--snow{--bg:var(--snow);--fg:#151A20;--fg-mute:var(--stone);--rule:var(--paper-2)}
.sec--ink{--bg:var(--ink);--fg:var(--paper);--fg-mute:var(--frost);--rule:rgba(255,255,255,.12)}
.sec--ink .idx{color:var(--brass-soft)}
.sec--ink .eyebrow{color:var(--frost)}
.wrap{max-width:var(--maxw);margin-inline:auto}
.sec__head{display:grid;gap:18px;margin-bottom:clamp(36px,5vw,64px);max-width:60ch}
.sec__head--wide{max-width:none;grid-template-columns:1fr;align-items:end}
@media (min-width:900px){.sec__head--wide{grid-template-columns:1.1fr .9fr;gap:40px}.sec__head--wide .lead{justify-self:end}}
.rule{height:1px;background:var(--rule);border:0}

/* ---------- 9. HERO ---------- */
.hero{padding-top:calc(var(--hdr-h) + clamp(28px,6vw,80px));padding-bottom:0;overflow:hidden}
.hero__grid{display:grid;gap:clamp(28px,4vw,56px);align-items:end}
@media (min-width:960px){.hero__grid{grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr)}}
.hero__copy{display:grid;gap:clamp(18px,2.4vw,30px);padding-bottom:clamp(28px,5vw,72px)}
.hero__cta{display:flex;flex-wrap:wrap;gap:12px}
.hero__facts{display:grid;grid-template-columns:repeat(3,1fr);gap:0;border-top:1px solid var(--rule);border-bottom:1px solid var(--rule)}
.hero__facts li{padding:14px 12px 14px 0;display:grid;gap:4px;border-right:1px solid var(--rule)}
.hero__facts li+li{padding-left:14px}
.hero__facts li:last-child{border-right:0}
.hero__facts b{font-family:var(--ff-d);font-variation-settings:"opsz" 60,"wght" 420,"SOFT" 0,"WONK" 0;font-size:clamp(1.15rem,1rem + .9vw,1.7rem);line-height:1.05;letter-spacing:-.015em;font-variant-numeric:tabular-nums}
.hero__facts span{font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;color:var(--fg-mute);font-variation-settings:"wght" 560,"wdth" 92}
.hero__media{position:relative;margin-inline:calc(var(--gut) * -1) 0}
@media (min-width:960px){.hero__media{margin-inline:0}}
.hero__img{aspect-ratio:4/3;width:100%;object-fit:cover;background:var(--paper-2)}
@media (min-width:960px){.hero__img{aspect-ratio:5/4;height:min(72vh,720px)}}
.hero__tag{position:absolute;left:var(--gut);bottom:18px;display:inline-flex;align-items:center;gap:10px;background:var(--ink);color:var(--paper);padding:10px 14px;font-size:.68rem;letter-spacing:.14em;text-transform:uppercase;font-variation-settings:"wght" 580,"wdth" 92}
@media (min-width:960px){.hero__tag{left:18px}}
.hero__tag i{width:8px;height:8px;border-radius:50%;background:var(--brass)}
.proof{display:flex;flex-wrap:wrap;gap:8px 28px;padding:20px 0;border-top:1px solid var(--rule);margin-top:clamp(28px,4vw,48px)}
.proof li{font-size:.74rem;letter-spacing:.12em;text-transform:uppercase;color:var(--fg-mute);font-variation-settings:"wght" 580,"wdth" 92;display:flex;align-items:center;gap:10px}
.proof li::before{content:"";width:5px;height:5px;background:var(--brass);border-radius:50%}
.ribbon{display:none;background:var(--brass);color:var(--ink);padding:12px var(--gut);text-align:center;font-size:.82rem;font-variation-settings:"wght" 580}
.ribbon.is-on{display:block}
.ribbon b{font-variation-settings:"wght" 720}

/* ---------- 10. PLATE (image + copy) ---------- */
.plate{display:grid;gap:clamp(28px,4vw,64px);align-items:center}
@media (min-width:960px){.plate{grid-template-columns:1.05fr .95fr}.plate--flip>.plate__media{order:2}}
.plate__media img,.plate__media .ph{width:100%;aspect-ratio:4/3;object-fit:cover}
.plate__body{display:grid;gap:22px;max-width:56ch}
.ticks{display:grid;gap:12px}
.ticks li{position:relative;padding-left:30px;color:var(--fg);text-wrap:pretty}
.ticks li::before{content:"";position:absolute;left:0;top:.62em;width:16px;height:1px;background:var(--brass)}
.sec--ink .ticks li{color:var(--paper)}

/* ---------- 11. STATEMENT ---------- */
.statement{display:grid;gap:24px;max-width:70ch}
.statement .h2{font-variation-settings:"opsz" 110,"wght" 340,"SOFT" 30,"WONK" 0}
.statement p{font-size:clamp(1.05rem,1rem + .4vw,1.25rem);color:var(--fg-mute);text-wrap:pretty}

/* ---------- 12. PACKAGES ---------- */
.tiers{display:grid;gap:14px}
@media (min-width:860px){.tiers{grid-template-columns:repeat(3,1fr);gap:18px;align-items:stretch}}
.tier{position:relative;display:grid;grid-template-rows:auto auto 1fr auto;gap:22px;padding:clamp(24px,3vw,36px);background:var(--snow);border:1px solid var(--paper-3);border-radius:var(--r)}
.tier--hi{background:var(--ink);color:var(--paper);border-color:var(--ink)}
.tier--hi .tier__meta,.tier--hi .tier__inc li{color:var(--frost)}
.tier--hi .tier__inc li::before{background:var(--brass-soft)}
.tier__flag{position:absolute;top:-1px;right:18px;background:var(--brass);color:var(--ink);padding:5px 10px;font-size:.62rem;letter-spacing:.16em;text-transform:uppercase;font-variation-settings:"wght" 680,"wdth" 92}
.tier__name{font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;font-variation-settings:"wght" 620,"wdth" 92;color:var(--brass-ink)}
.tier--hi .tier__name{color:var(--brass-soft)}
.tier__price{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap}
.tier__price .num{font-size:clamp(2.6rem,2rem + 2.4vw,3.6rem)}
.tier__price small{font-size:.74rem;letter-spacing:.1em;text-transform:uppercase;color:var(--fg-mute);font-variation-settings:"wght" 560,"wdth" 92}
.tier--hi .tier__price small{color:var(--frost)}
.tier__meta{font-size:.92rem;color:var(--fg-mute);line-height:1.5}
.tier__inc{display:grid;gap:9px;font-size:.93rem}
.tier__inc li{position:relative;padding-left:22px;color:var(--fg-mute)}
.tier__inc li::before{content:"";position:absolute;left:0;top:.7em;width:11px;height:1px;background:var(--brass)}
.tier .btn{justify-self:start}
.tiers__note{margin-top:22px;color:var(--fg-mute);font-size:.92rem;max-width:70ch}
.incl{margin-top:clamp(36px,5vw,56px);display:grid;gap:18px}
@media (min-width:900px){.incl{grid-template-columns:.8fr 1.2fr;gap:48px;align-items:start}}
.incl__list{columns:1;gap:24px;font-size:.95rem;color:var(--fg-mute)}
@media (min-width:640px){.incl__list{columns:2}}
.incl__list li{break-inside:avoid;padding:8px 0;border-bottom:1px solid var(--rule)}

/* addons table */
.addons{margin-top:clamp(40px,5vw,64px);display:grid;gap:18px}
@media (min-width:900px){.addons{grid-template-columns:.8fr 1.2fr;gap:48px}}
.tbl{width:100%;border-collapse:collapse;font-size:.95rem}
.tbl th,.tbl td{text-align:left;padding:12px 0;border-bottom:1px solid var(--rule);vertical-align:top}
.tbl th{font-size:.68rem;letter-spacing:.14em;text-transform:uppercase;color:var(--fg-mute);font-variation-settings:"wght" 600,"wdth" 92}
.tbl td:last-child,.tbl th:last-child{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}
.tbl td:last-child{font-family:var(--ff-d);font-variation-settings:"opsz" 30,"wght" 460;font-size:1.05rem}
.tbl .sub{display:block;font-size:.82rem;color:var(--fg-mute);margin-top:2px}
.zones{display:grid;gap:14px;margin-top:8px}
.zones li{display:grid;grid-template-columns:auto 1fr;gap:14px;align-items:start;font-size:.95rem;color:var(--fg-mute)}
.zones b{font-family:var(--ff-d);font-variation-settings:"opsz" 30,"wght" 460;color:var(--fg);font-size:1rem;min-width:5.5ch}

/* ---------- 13. GUARANTEE (timeline) ---------- */
.guar{display:grid;gap:clamp(32px,5vw,64px);min-width:0}
.guar>*{min-width:0}
@media (min-width:960px){.guar{grid-template-columns:.9fr 1.1fr;align-items:center}}
.guar__body{display:grid;gap:22px;max-width:52ch}
.timeline{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:clamp(10px,2.5vw,32px);padding:clamp(20px,3.5vw,40px);border:1px solid var(--rule);background:rgba(255,255,255,.03);min-width:0}
.timeline__pt{min-width:0}
.timeline__pt{display:grid;gap:8px}
.timeline__pt .num{font-size:clamp(2rem,.6rem + 6vw,5.4rem);color:var(--snow)}
.timeline__pt span{font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;color:var(--frost);font-variation-settings:"wght" 580,"wdth" 92}
.timeline__pt--r{text-align:right}
.timeline__arrow{display:grid;justify-items:center;gap:8px;color:var(--brass-soft);font-size:.6rem;letter-spacing:.12em;text-transform:uppercase;font-variation-settings:"wght" 600,"wdth" 88;white-space:nowrap}
.timeline__arrow i{display:block;width:clamp(28px,8vw,140px);height:1px;background:var(--brass);position:relative}
.timeline__arrow i::after{content:"";position:absolute;right:-1px;top:-4px;width:9px;height:9px;border-top:1px solid var(--brass);border-right:1px solid var(--brass);transform:rotate(45deg)}
.timeline__foot{grid-column:1/-1;display:flex;justify-content:space-between;gap:8px 16px;flex-wrap:wrap;min-width:0;padding-top:18px;border-top:1px solid var(--rule);font-size:.86rem;color:var(--frost)}
.timeline__foot b{color:var(--snow);font-variation-settings:"wght" 600}
.credit{display:inline-flex;align-items:baseline;flex-wrap:wrap;gap:6px 10px;padding:14px 18px;border:1px solid var(--brass);color:var(--snow);max-width:100%}
.credit .num{font-size:2rem;color:var(--brass-soft)}
.credit span{font-size:.82rem;color:var(--frost)}

/* ---------- 14. STEPS ---------- */
.steps{display:grid;gap:0;counter-reset:s}
@media (min-width:860px){.steps{grid-template-columns:repeat(3,1fr);gap:32px}}
.step{position:relative;display:grid;gap:14px;padding:26px 0;border-top:1px solid var(--rule)}
@media (min-width:860px){.step{padding:32px 0 0}}
.step__n{font-family:var(--ff-d);font-variation-settings:"opsz" 144,"wght" 260,"SOFT" 0,"WONK" 0;font-size:clamp(2.4rem,2rem + 2vw,3.6rem);line-height:1;color:var(--brass-ink);letter-spacing:-.02em}
.step p{color:var(--fg-mute);text-wrap:pretty}

/* ---------- 15. PARTNER ---------- */
.partner{display:grid;gap:28px;align-items:center}
@media (min-width:960px){.partner{grid-template-columns:1.1fr .9fr;gap:64px}}
.partner__list{display:grid;gap:0;border-top:1px solid var(--rule)}
.partner__list li{display:grid;grid-template-columns:auto 1fr;gap:18px;padding:16px 0;border-bottom:1px solid var(--rule);align-items:baseline}
.partner__list b{font-family:var(--ff-d);font-variation-settings:"opsz" 30,"wght" 460;font-size:1.05rem;min-width:5ch;color:var(--brass-ink)}
.partner__list span{color:var(--fg-mute)}

/* ---------- 16. PORTFOLIO ---------- */
.grid{display:grid;gap:8px;grid-template-columns:repeat(2,1fr)}
@media (min-width:760px){.grid{grid-template-columns:repeat(4,1fr);gap:10px}}
.grid__item{position:relative;margin:0;overflow:hidden;background:var(--ink-3)}
.grid__item img,.grid__item .ph{width:100%;aspect-ratio:4/3;object-fit:cover;transition:transform 1.2s var(--ease)}
.grid__item:hover img{transform:scale(1.03)}
.grid__item--w{grid-column:span 2}
.grid__item--w img,.grid__item--w .ph{aspect-ratio:8/3}
@media (max-width:759px){.grid__item--w img,.grid__item--w .ph{aspect-ratio:2/1}}
.grid__cap{position:absolute;left:0;right:0;bottom:0;padding:10px 12px;font-size:.66rem;letter-spacing:.12em;text-transform:uppercase;color:rgba(255,255,255,.85);background:linear-gradient(to top,rgba(10,13,16,.7),rgba(10,13,16,0));font-variation-settings:"wght" 560,"wdth" 92;pointer-events:none}
.ba{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:10px}
.ba figure{position:relative;margin:0;background:var(--ink-3)}
.ba img,.ba .ph{width:100%;aspect-ratio:4/3;object-fit:cover}
.ba figcaption{position:absolute;top:10px;left:10px;background:var(--paper);color:var(--ink);padding:5px 9px;font-size:.62rem;letter-spacing:.16em;text-transform:uppercase;font-variation-settings:"wght" 680,"wdth" 92}
.ba figure:last-child figcaption{background:var(--brass)}

/* placeholder plates (until real photos are dropped in) */
.ph{display:grid;place-items:center;background:
  linear-gradient(135deg,rgba(255,255,255,.06),rgba(255,255,255,0)),var(--ink-3);
  color:rgba(255,255,255,.55);font-size:.66rem;letter-spacing:.16em;text-transform:uppercase;text-align:center;padding:12px;font-variation-settings:"wght" 580,"wdth" 92}
.sec--paper .ph,.sec--snow .ph,.sec--paper2 .ph{background:linear-gradient(135deg,rgba(16,22,30,.05),rgba(16,22,30,0)),var(--paper-2);color:var(--stone)}
.ph::before{content:attr(data-slot);display:block;font-size:1.4rem;font-family:var(--ff-d);letter-spacing:0;text-transform:none;opacity:.55;margin-bottom:6px}

/* ---------- 17. ABOUT ---------- */
.about{display:grid;gap:28px;align-items:center}
@media (min-width:900px){.about{grid-template-columns:.7fr 1.3fr;gap:64px}}
.about__img,.about .ph{aspect-ratio:4/5;width:100%;object-fit:cover}
.about__body{display:grid;gap:20px;max-width:58ch}
.about__body p{color:var(--fg-mute);text-wrap:pretty}
.about__proof{display:flex;flex-wrap:wrap;gap:8px 24px;font-size:.74rem;letter-spacing:.12em;text-transform:uppercase;color:var(--brass-ink);font-variation-settings:"wght" 600,"wdth" 92}

/* ---------- 18. FAQ ---------- */
.faq{display:grid;gap:40px}
@media (min-width:900px){.faq{grid-template-columns:.7fr 1.3fr;gap:64px;align-items:start}}
.faq__list{border-top:1px solid var(--rule)}
.faq__item{border-bottom:1px solid var(--rule)}
.faq__item summary{display:flex;align-items:baseline;justify-content:space-between;gap:18px;padding:18px 0;cursor:pointer;list-style:none;font-family:var(--ff-d);font-variation-settings:"opsz" 30,"wght" 440;font-size:1.1rem}
.faq__item summary::after{content:"+";font-family:var(--ff-b);color:var(--brass-ink);font-size:1.2rem;transition:transform .3s var(--ease)}
.faq__item[open] summary::after{transform:rotate(45deg)}
.faq__item p{padding:0 0 20px;color:var(--fg-mute);max-width:64ch;text-wrap:pretty}

/* ---------- 19. FORM ---------- */
.split{display:grid;gap:40px}
@media (min-width:960px){.split{grid-template-columns:.85fr 1.15fr;gap:72px;align-items:start}}
.split__intro{display:grid;gap:22px;align-content:start}
.split__intro p{color:var(--frost);max-width:44ch;text-wrap:pretty}
.contact{display:grid;gap:8px;font-size:.98rem}
.contact a{color:var(--paper);text-decoration:none;border-bottom:1px solid rgba(255,255,255,.2)}
.contact a:hover{border-color:var(--brass)}
.form{display:grid;gap:18px}
.form__row{display:grid;gap:18px}
@media (min-width:640px){.form__row{grid-template-columns:1fr 1fr}}
.fld{display:grid;gap:7px}
.fld label{font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;color:var(--frost);font-variation-settings:"wght" 600,"wdth" 92}
.fld input,.fld select,.fld textarea{width:100%;min-height:50px;padding:12px 14px;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.18);border-radius:var(--r);color:var(--paper);transition:border-color .3s var(--ease),background .3s var(--ease)}
.fld select{-webkit-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%23C7A75E' stroke-width='1.4'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 14px center;padding-right:38px}
.fld select option{color:var(--ink);background:var(--snow)}
.fld textarea{min-height:120px;resize:vertical}
.fld input:focus,.fld select:focus,.fld textarea:focus{border-color:var(--brass-soft);background:rgba(255,255,255,.07);outline:0}
.fld input[aria-invalid="true"],.fld select[aria-invalid="true"]{border-color:#D67A6C}
.fld__err{font-size:.8rem;color:#E9A498;min-height:0}
.fld__err:empty{display:none}
.fld input::placeholder,.fld textarea::placeholder{color:rgba(255,255,255,.35)}
.fld input[type=date]{color-scheme:dark}
.form__consent{display:flex;gap:12px;align-items:flex-start;font-size:.84rem;color:var(--frost)}
.form__consent input{width:18px;height:18px;margin-top:2px;flex:0 0 auto;accent-color:var(--brass)}
.form__consent a{color:var(--paper)}
.form__foot{display:flex;flex-wrap:wrap;gap:14px;align-items:center}
.form__note{font-size:.84rem;color:var(--frost);max-width:60ch}
.form__status{font-size:.92rem;min-height:1.4em}
.form__status[data-tone="err"]{color:#E9A498}
.form__status[data-tone="ok"]{color:#B9DDB0;font-size:1.05rem}
.fallback{display:grid;gap:14px;padding:24px;border:1px solid rgba(255,255,255,.18)}
.fallback textarea{width:100%;min-height:160px;background:rgba(255,255,255,.04);color:var(--paper);border:1px solid rgba(255,255,255,.18);padding:12px;font-size:.9rem}
.thanks{display:grid;gap:14px;padding:28px;border:1px solid var(--brass)}
.thanks .h3{color:var(--snow)}
.thanks p{color:var(--frost)}

/* ---------- 20. FOOTER ---------- */
.ftr{background:var(--ink);color:var(--frost);padding:clamp(48px,6vw,80px) var(--gut) 28px;border-top:1px solid rgba(255,255,255,.08)}
.ftr__top{max-width:var(--maxw);margin-inline:auto;display:grid;gap:32px;padding-bottom:40px}
@media (min-width:860px){.ftr__top{grid-template-columns:1.2fr 1fr 1fr 1fr}}
.ftr__brand{display:grid;gap:16px;align-content:start;color:var(--paper)}
.ftr__lion{width:34px;aspect-ratio:503/516;-webkit-mask-image:url("assets/icons/logo-lion.svg");mask-image:url("assets/icons/logo-lion.svg")}
.ftr__claim{font-family:var(--ff-d);font-variation-settings:"opsz" 42,"wght" 360,"SOFT" 20;font-size:1.3rem;line-height:1.25;color:var(--paper)}
.ftr__col{display:grid;gap:10px;font-size:.95rem;align-content:start}
.ftr__col .eyebrow{color:var(--frost)}
.ftr a{color:var(--paper);text-decoration:none}
.ftr a:hover{color:var(--brass-soft)}
.ftr__bot{max-width:var(--maxw);margin-inline:auto;display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px 24px;padding-top:22px;border-top:1px solid rgba(255,255,255,.1);font-size:.8rem}
.ftr__bot nav{display:flex;gap:18px}
.ftr__bot a{color:var(--frost)}

/* ---------- 21. MOBILE STICKY CTA ---------- */
.mcta{position:fixed;left:0;right:0;bottom:0;z-index:130;display:grid;grid-template-columns:1fr auto;align-items:center;gap:12px;padding:10px var(--gut) calc(10px + env(safe-area-inset-bottom));background:var(--ink);color:var(--paper);border-top:1px solid rgba(255,255,255,.1);transform:translateY(110%);transition:transform .4s var(--ease)}
.mcta.is-on{transform:none}
.mcta__txt{display:grid;gap:2px;line-height:1.15}
.mcta__txt b{font-family:var(--ff-d);font-variation-settings:"opsz" 30,"wght" 460;font-size:1.02rem;color:var(--snow)}
.mcta__txt span{font-size:.66rem;letter-spacing:.1em;text-transform:uppercase;color:var(--frost);font-variation-settings:"wght" 580,"wdth" 92}
.mcta .btn{min-height:44px;padding:.7em 1.2em;font-size:.72rem;background:var(--snow);color:var(--ink);border-color:var(--snow)}
@media (min-width:960px){.mcta{display:none}}
body{padding-bottom:0}
@media (max-width:959px){.ftr{padding-bottom:96px}}

/* ---------- 22. REVEAL ---------- */
.js .rv{opacity:0;transform:translateY(16px);transition:opacity .8s var(--ease),transform .9s var(--ease)}
.js .rv.is-in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){.js .rv{opacity:1;transform:none;transition:none}*{transition-duration:.01ms!important}}

/* ---------- 23. LEGAL ---------- */
.legal{padding:calc(var(--hdr-h) + 48px) var(--gut) var(--pad-y);background:var(--paper)}
.legal__wrap{max-width:74ch;margin-inline:auto;display:grid;gap:22px}
.legal h1{font-family:var(--ff-d);font-variation-settings:"opsz" 110,"wght" 380;font-size:clamp(2rem,1.4rem + 2.4vw,3.2rem);line-height:1.05;letter-spacing:-.015em}
.legal h2{font-family:var(--ff-d);font-variation-settings:"opsz" 42,"wght" 440;font-size:1.3rem;margin-top:14px}
.legal p,.legal li{color:var(--stone);text-wrap:pretty}
.legal ul{display:grid;gap:8px}
.legal ul li{padding-left:22px;position:relative}
.legal ul li::before{content:"";position:absolute;left:0;top:.72em;width:12px;height:1px;background:var(--brass)}
.legal a{color:var(--fg);text-underline-offset:3px}
.legal__back{margin-top:14px}
.legal__note{padding:14px 18px;border:1px solid var(--brass);color:var(--brass-ink);font-size:.9rem}

/* ---------- 24. MOBILE TWEAKS ---------- */
@media (max-width:640px){
  .timeline{grid-template-columns:1fr;gap:18px}
  .timeline__pt--r{text-align:left}
  .timeline__pt .num{font-size:clamp(3rem,18vw,4.4rem)}
  .timeline__arrow{grid-template-columns:auto 1fr;align-items:center;gap:12px;justify-items:start}
  .timeline__arrow i{width:100%;order:2}
}
.tier__meta{margin-bottom:14px}
.tier--hi .btn--solid{background:var(--snow);color:var(--ink);border-color:var(--snow)}
.tier--hi .btn--solid:hover{background:var(--brass);border-color:var(--brass);color:var(--snow)}

/* ---------- 25. HOTELS: HERO ON INK ---------- */
.hero--ink{--bg:var(--ink);--fg:var(--paper);--fg-mute:var(--frost);--rule:rgba(255,255,255,.14);background:var(--ink);color:var(--paper);padding-top:var(--hdr-h)}
.hero--ink .hero__grid{align-items:center}
.hero--ink .hero__facts b{color:var(--snow)}
.hero--ink .hero__facts span{color:var(--frost)}
.hero--ink .hero__facts li{border-color:rgba(255,255,255,.14)}
.hero--ink .idx{color:var(--brass-soft)}
.hero--ink .eyebrow{color:var(--frost)}
.hero--ink .proof li{color:var(--frost)}
.hero--ink .proof{border-color:rgba(255,255,255,.14)}
.hero--ink .hero__copy{padding-top:clamp(28px,5vw,64px)}
.hero--ink .hero__media{margin-inline:calc(var(--gut) * -1)}
@media (min-width:960px){.hero--ink .hero__media{margin-inline:0 calc(var(--gut) * -1)}}
.hero--ink .hero__img{aspect-ratio:4/5}
@media (min-width:960px){.hero--ink .hero__img{aspect-ratio:auto;height:min(86vh,860px)}}
.hero--ink .hero__tag{background:var(--paper);color:var(--ink)}
.hdr--ink{background:rgba(16,22,30,.55);color:var(--paper)}
.hdr--ink .brand,.hdr--ink .burger,.hdr--ink .hdr__tel{color:var(--paper)}
.hdr--ink .brand__line{color:var(--brass-soft)}
.hdr--ink .nav__list a{color:rgba(255,255,255,.78)}
.hdr--ink .nav__list a:hover,.hdr--ink .nav__list a.is-active{color:var(--snow)}
.hdr--ink .btn--line{color:var(--paper)}
.hdr--ink .btn--line:hover{background:var(--snow);color:var(--ink);border-color:var(--snow)}
.hdr--ink.is-stuck{background:rgba(245,244,240,.94);color:var(--ink)}
.hdr--ink.is-stuck .brand,.hdr--ink.is-stuck .burger,.hdr--ink.is-stuck .hdr__tel,.hdr--ink.is-stuck .btn--line{color:var(--ink)}
.hdr--ink.is-stuck .brand__line{color:var(--brass-ink)}
.hdr--ink.is-stuck .nav__list a{color:var(--stone)}
.hdr--ink.is-stuck .nav__list a:hover,.hdr--ink.is-stuck .nav__list a.is-active{color:var(--ink)}

/* ---------- 26. EVIDENCE ---------- */
.ev{display:grid;gap:14px;margin-top:8px}
@media (min-width:640px){.ev{grid-template-columns:1fr 1fr;gap:18px}}
.ev__item{display:grid;gap:8px;padding:22px 24px;border:1px solid var(--rule)}
.ev__item .num{font-size:clamp(2.6rem,2rem + 2.6vw,4rem)}
.ev__item p{color:var(--fg-mute);font-size:.95rem;text-wrap:pretty}
.ev__item small{font-size:.72rem;color:var(--fg-mute);letter-spacing:.04em}
.fn{font-size:.78rem;color:var(--fg-mute);max-width:70ch;margin-top:18px}

/* ---------- 27. MODULES ---------- */
.mods{display:grid;gap:1px;background:var(--rule);border:1px solid var(--rule)}
@media (min-width:640px){.mods{grid-template-columns:repeat(2,1fr)}}
@media (min-width:1000px){.mods{grid-template-columns:repeat(4,1fr)}}
.mod{display:grid;gap:12px;align-content:start;padding:clamp(22px,2.6vw,32px);background:var(--bg);min-height:220px}
.mod__n{font-family:var(--ff-d);font-variation-settings:"opsz" 30,"wght" 400;font-size:.9rem;color:var(--brass-ink);letter-spacing:.06em;font-variant-numeric:tabular-nums}
.mod .h3{font-size:1.18rem}
.mod p{color:var(--fg-mute);font-size:.93rem;text-wrap:pretty}

/* ---------- 28. ABO ---------- */
.abo{margin-top:clamp(40px,5vw,64px);display:grid;gap:24px;padding:clamp(24px,3.5vw,44px);background:var(--ink);color:var(--paper);border-radius:var(--r)}
@media (min-width:960px){.abo{grid-template-columns:.9fr 1.1fr;gap:48px;align-items:start}}
.abo .eyebrow{color:var(--frost)}
.abo .idx{color:var(--brass-soft)}
.abo p{color:var(--frost);text-wrap:pretty}
.abo__opts{display:grid;gap:0;border-top:1px solid rgba(255,255,255,.14)}
.abo__opt{display:grid;grid-template-columns:1fr auto;gap:8px 18px;padding:16px 0;border-bottom:1px solid rgba(255,255,255,.14);align-items:baseline}
.abo__opt b{font-variation-settings:"wght" 600;color:var(--snow)}
.abo__opt span{color:var(--frost);font-size:.9rem;grid-column:1}
.abo__opt .num{font-size:1.6rem;color:var(--snow);grid-row:1/3;align-self:center;white-space:nowrap}
.abo__opt .num small{font-family:var(--ff-b);font-size:.68rem;letter-spacing:.1em;text-transform:uppercase;color:var(--frost);margin-left:6px}
.abo__opt--hi b::after{content:"Empfehlung";margin-left:10px;font-size:.6rem;letter-spacing:.14em;text-transform:uppercase;background:var(--brass);color:var(--ink);padding:3px 7px;vertical-align:middle;font-variation-settings:"wght" 680}
.abo .btn--solid{background:var(--snow);color:var(--ink);border-color:var(--snow);justify-self:start}
.abo .btn--solid:hover{background:var(--brass);border-color:var(--brass);color:var(--snow)}

/* ---------- 29. FRAME ---------- */
.frame{display:grid;gap:18px;margin-top:clamp(36px,5vw,56px)}
@media (min-width:860px){.frame{grid-template-columns:repeat(3,1fr);gap:24px}}
.frame__item{display:grid;gap:10px;padding:22px 0;border-top:1px solid var(--rule)}
.frame__item .h3{font-size:1.15rem}
.frame__item p{color:var(--fg-mute);font-size:.93rem;text-wrap:pretty}

/* checkbox group */
.chk{display:grid;gap:10px}
@media (min-width:640px){.chk{grid-template-columns:1fr 1fr}}
.chk label{display:flex;gap:10px;align-items:center;font-size:.95rem;color:var(--paper);padding:10px 12px;border:1px solid rgba(255,255,255,.14);cursor:pointer}
.chk input{width:16px;height:16px;accent-color:var(--brass);flex:0 0 auto}
.chk label:has(input:checked){border-color:var(--brass-soft);background:rgba(255,255,255,.05)}
.grid--3{grid-template-columns:repeat(2,1fr)}
@media (min-width:760px){.grid--3{grid-template-columns:repeat(3,1fr)}}
.grid--3 .grid__item--w{grid-column:span 2}
.grid--3 .grid__item--w img,.grid--3 .grid__item--w .ph{aspect-ratio:8/3}
.grid--3 .grid__item--t img,.grid--3 .grid__item--t .ph{aspect-ratio:4/5}
.hero--ink .btn--solid{background:var(--snow);color:var(--ink);border-color:var(--snow)}
.hero--ink .btn--solid:hover{background:var(--brass);border-color:var(--brass);color:var(--snow)}
.hero--ink .btn--ghost{border-color:rgba(255,255,255,.34);color:var(--snow)}
.hero--ink .btn--ghost:hover{border-color:var(--snow);background:rgba(255,255,255,.08)}
.abo__opt>b{grid-column:1;grid-row:1}
.abo__opt>span:not(.num){grid-column:1;grid-row:2}
.abo__opt>.num{grid-column:2;grid-row:1/3}
.hero__facts b{white-space:nowrap}
@media (max-width:480px){.hero__facts b{font-size:clamp(.95rem,4.4vw,1.2rem)}.hero__facts span{font-size:.62rem}.hero__facts li{padding-right:8px}.hero__facts li+li{padding-left:10px}}
.hero--ink .hero__img{background:var(--ink-3)}
.grid__item img{background:var(--ink-3)}
.grid__item{display:grid}
.grid__item img{height:100%;width:100%}
.fld label small{font-size:.62rem;letter-spacing:.06em;text-transform:none;color:rgba(255,255,255,.45);margin-left:6px}

/* ============================================================
   V2 — Bewegtbild in der Galerie + Galerieseite
   Video liegt als Kachel im Raster, in Fotogröße, ohne Steuerung
   und ohne Vollbild. Es läuft stumm und in Schleife.
   ============================================================ */

/* ---------- 30. VIDEO-KACHEL ---------- */
.grid__item--v{position:relative;background:var(--ink-3)}
.grid__item--v video{
  display:block;width:100%;height:100%;aspect-ratio:4/3;object-fit:cover;
  background:var(--ink-3);
  pointer-events:none;              /* nicht anklickbar, kein Vollbild */
  -webkit-user-select:none;user-select:none;
}
.grid__item--w.grid__item--v video{aspect-ratio:2/1}   /* Univisium: eine Stufe filmischer als 16:9, ohne flach zu werden */
.grid__item--t.grid__item--v video{aspect-ratio:4/5}
.grid__item--v::after{content:"";position:absolute;inset:0;pointer-events:auto}
.vflag{
  position:absolute;top:0;left:0;z-index:2;
  display:inline-flex;align-items:center;gap:7px;
  padding:7px 11px;
  font-family:var(--ff-b);font-size:.6rem;letter-spacing:.16em;text-transform:uppercase;
  color:var(--snow);background:rgba(10,13,16,.66);
  font-variation-settings:"wght" 620,"wdth" 92;
}
.vflag i{
  width:0;height:0;border-left:7px solid var(--brass-soft);
  border-top:4.5px solid transparent;border-bottom:4.5px solid transparent;
}
@media (prefers-reduced-motion:reduce){
  .grid__item--v video{display:none}
  .grid__item--v .vposter{display:block}
}
.vposter{display:none;width:100%;height:100%;aspect-ratio:4/3;object-fit:cover}

/* ---------- 31. GALERIESEITE ---------- */
.gal__head{display:grid;gap:14px;margin-bottom:clamp(24px,4vw,40px)}
@media (min-width:900px){.gal__head{grid-template-columns:1.1fr .9fr;align-items:end;gap:clamp(24px,4vw,64px)}}
.filters{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 clamp(18px,3vw,28px)}
.filters button{
  font-family:var(--ff-b);font-size:.68rem;letter-spacing:.14em;text-transform:uppercase;
  font-variation-settings:"wght" 600,"wdth" 92;
  padding:9px 14px;min-height:38px;cursor:pointer;
  background:transparent;color:var(--fg);
  border:1px solid var(--rule);border-radius:var(--r);
  transition:background .2s var(--ease),border-color .2s var(--ease),color .2s var(--ease);
}
.filters button:hover{border-color:var(--fg)}
.filters button[aria-pressed="true"]{background:var(--ink);color:var(--paper);border-color:var(--ink)}
.sec--ink .filters button{color:var(--paper);border-color:rgba(255,255,255,.22)}
.sec--ink .filters button:hover{border-color:var(--snow)}
.sec--ink .filters button[aria-pressed="true"]{background:var(--snow);color:var(--ink);border-color:var(--snow)}
.filters__count{font-family:var(--ff-b);font-size:.68rem;letter-spacing:.14em;text-transform:uppercase;color:var(--fg-mute);align-self:center;margin-left:4px}

.grid--g{gap:8px;grid-template-columns:repeat(2,1fr)}
@media (min-width:720px){.grid--g{grid-template-columns:repeat(3,1fr)}}
@media (min-width:1100px){.grid--g{grid-template-columns:repeat(4,1fr)}}
.grid--g .grid__item{transition:opacity .35s var(--ease)}
.grid__item[hidden]{display:none}

.gal__note{margin-top:clamp(28px,4vw,44px);padding-top:22px;border-top:1px solid var(--rule);color:var(--fg-mute);font-size:.9rem;max-width:62ch;text-wrap:pretty}

/* ---------- 32. BEWEGTBILD-PREISBLOCK ---------- */
.bewegt{
  display:grid;gap:clamp(22px,3vw,38px);
  margin-top:clamp(36px,5vw,56px);padding:clamp(26px,4vw,44px);
  background:var(--ink);color:var(--paper);
}
@media (min-width:960px){.bewegt{grid-template-columns:.85fr 1.15fr;align-items:start;gap:clamp(32px,4vw,64px)}}
.bewegt .eyebrow{color:var(--frost)}
.bewegt .idx{color:var(--brass-soft)}
.bewegt p{color:var(--frost);text-wrap:pretty}
.bewegt .h2{color:var(--paper)}
.bewegt__list{display:grid;gap:0}
.bewegt__row{
  display:grid;grid-template-columns:1fr auto;gap:10px 18px;align-items:start;
  padding:16px 0;border-top:1px solid rgba(255,255,255,.14);
}
.bewegt__row:last-child{border-bottom:1px solid rgba(255,255,255,.14)}
.bewegt__row b{font-family:var(--ff-b);font-variation-settings:"wght" 620,"wdth" 94;color:var(--snow);font-size:.98rem}
.bewegt__row .sub{display:block;margin-top:5px;color:var(--frost);font-size:.85rem;text-wrap:pretty}
.bewegt__row .num{font-family:var(--ff-d);font-size:1.35rem;color:var(--snow);white-space:nowrap;line-height:1}
.bewegt__row--hi .t::after{
  content:"Empfehlung";margin-left:10px;font-family:var(--ff-b);font-size:.58rem;letter-spacing:.14em;
  text-transform:uppercase;background:var(--brass);color:var(--ink);padding:3px 7px;vertical-align:middle;
  font-variation-settings:"wght" 680;
}

.bewegt__row b .t{display:inline}
@media (max-width:600px){
  .filters{gap:6px}
  .filters button{font-size:.62rem;letter-spacing:.1em;padding:8px 10px;min-height:34px}
}

/* ============================================================
   V2.1 — Bildbänder, Bildjahr, aufklappbare Preise
   ============================================================ */

/* ---------- 33. BILDBAND (Trenner zwischen Textblöcken) ---------- */
.band{
  display:grid;grid-template-columns:repeat(3,1fr);gap:4px;
  background:var(--ink);padding:4px;
}
.band img{
  display:block;width:100%;height:100%;aspect-ratio:1/1;object-fit:cover;
  background:var(--ink-3);
}
@media (min-width:720px){
  .band{gap:6px;padding:6px}
  .band img{aspect-ratio:3/2}
}
.band__cap{
  grid-column:1/-1;margin:0;padding:12px 4px 6px;text-align:center;
  font-family:var(--ff-b);font-size:.64rem;letter-spacing:.16em;text-transform:uppercase;
  font-variation-settings:"wght" 560,"wdth" 92;color:var(--frost);
}
@media (max-width:420px){.band__cap{font-size:.56rem;letter-spacing:.1em}}

/* ---------- 34. WARUM BILDJAHR ---------- */
.why{
  display:grid;gap:0;margin:clamp(26px,3.5vw,40px) 0 clamp(30px,4vw,48px);
  border-top:1px solid var(--rule);
}
@media (min-width:760px){.why{grid-template-columns:repeat(2,1fr);column-gap:clamp(28px,4vw,56px)}}
@media (min-width:1100px){.why{grid-template-columns:repeat(4,1fr)}}
.why li{display:grid;gap:6px;padding:16px 0;border-bottom:1px solid var(--rule);align-content:start}
.why b{
  font-family:var(--ff-b);font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;
  font-variation-settings:"wght" 640,"wdth" 92;color:var(--brass-ink);
}
.why span{color:var(--fg-mute);font-size:.92rem;line-height:1.5;text-wrap:pretty}

/* ---------- 35. ERSPARNIS-ZEILE IN DER KARTE ---------- */
.tier__save{
  margin-top:16px;padding-top:12px;border-top:1px solid var(--rule);
  font-size:.84rem;color:var(--fg-mute);
}
.tier__save s{opacity:.7}
.tier__save b{display:block;margin-top:3px;color:var(--brass-ink);font-variation-settings:"wght" 640}
.tier--hi .tier__save{border-top-color:rgba(255,255,255,.16);color:var(--frost)}
.tier--hi .tier__save b{color:var(--brass-soft)}

/* ---------- 36. AKKORDEON PREISE ---------- */
.acc{display:grid;gap:0;border-top:1px solid var(--rule)}
.acc__i{border-bottom:1px solid var(--rule)}
.acc__i summary{
  display:flex;align-items:baseline;justify-content:space-between;gap:16px;flex-wrap:wrap;
  padding:20px 0;cursor:pointer;list-style:none;
}
.acc__i summary::-webkit-details-marker{display:none}
.acc__i summary:focus-visible{outline:2px solid var(--brass);outline-offset:3px}
.acc__t{
  font-family:var(--ff-d);font-variation-settings:"opsz" 30,"wght" 440;
  font-size:clamp(1.12rem,1.02rem + .4vw,1.4rem);
}
.acc__h{
  margin-left:auto;font-family:var(--ff-b);font-size:.66rem;letter-spacing:.14em;text-transform:uppercase;
  font-variation-settings:"wght" 580,"wdth" 92;color:var(--fg-mute);white-space:nowrap;
}
.acc__i summary::after{
  content:"+";font-family:var(--ff-b);color:var(--brass-ink);font-size:1.35rem;line-height:1;
  transition:transform .3s var(--ease);flex:0 0 auto;
}
.acc__i[open] summary::after{transform:rotate(45deg)}
.acc__b{padding:4px 0 30px;display:grid;gap:22px}
.acc__lead{color:var(--fg-mute);max-width:64ch;text-wrap:pretty}
.acc__note{color:var(--fg-mute);font-size:.88rem;max-width:72ch;text-wrap:pretty}
.tiers--flat .tier{background:transparent;border-color:var(--rule)}
.frame--flat{margin-top:0}
.frame--flat .frame__item{border-top:0;padding-top:0}
@media (max-width:560px){
  .acc__h{margin-left:0;flex-basis:100%;order:3}
  .acc__i summary{padding:17px 0}
}

/* ============================================================
   V2.2 — Lightbox für Fotos, Bänder mit Rahmen, kürzeres Formular
   Videos bleiben ausgenommen: fixe Grösse, kein Vollbild.
   ============================================================ */

/* ---------- 37. BILDBAND-ZELLE ---------- */
.band__c{display:block;overflow:hidden;background:var(--ink-3)}
.band__c img{display:block;width:100%;height:100%;aspect-ratio:1/1;object-fit:cover;
  transition:transform .6s var(--ease)}
@media (min-width:720px){.band__c img{aspect-ratio:3/2}}

/* ---------- 38. ANFASSBARE FOTOS ---------- */
.grid__item{overflow:hidden}
.grid__item:not(.grid__item--v) img,
.band__c img{cursor:zoom-in}
.grid__item:not(.grid__item--v) img{transition:transform .6s var(--ease)}
@media (hover:hover){
  .grid__item:not(.grid__item--v):hover img,
  .band__c:hover img{transform:scale(1.04)}
}
.grid__item--v{cursor:default}
.grid__item--v video,.grid__item--v .vposter{cursor:default}

/* Kleiner Hinweis, dass sich Fotos öffnen lassen */
.grid__item:not(.grid__item--v)::before{
  content:"";position:absolute;top:10px;right:10px;z-index:2;
  width:26px;height:26px;border-radius:50%;
  background:rgba(10,13,16,.55) url("assets/icons/zoom.svg") center/13px no-repeat;
  opacity:0;transform:scale(.8);transition:opacity .25s var(--ease),transform .25s var(--ease);
  pointer-events:none;
}
.grid__item{position:relative}
@media (hover:hover){.grid__item:not(.grid__item--v):hover::before{opacity:1;transform:none}}

/* ---------- 39. LIGHTBOX ---------- */
.lbx{
  position:fixed;inset:0;z-index:500;
  display:flex;align-items:center;justify-content:center;
  padding:clamp(12px,3vw,48px);
  padding-top:calc(clamp(12px,3vw,48px) + env(safe-area-inset-top,0px));
  padding-bottom:calc(clamp(12px,3vw,48px) + env(safe-area-inset-bottom,0px));
  background:rgba(8,11,15,.95);
  -webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);
  opacity:0;transition:opacity .28s var(--ease);
}
.lbx.is-on{opacity:1}
.lbx[hidden]{display:none}
.lbx__f{margin:0;display:flex;flex-direction:column;align-items:center;gap:14px;max-width:100%;max-height:100%}
.lbx__f img{
  display:block;max-width:100%;max-height:calc(100vh - 150px);
  width:auto;height:auto;object-fit:contain;background:var(--ink-3);
  transform:scale(.97);transition:transform .32s var(--ease);
}
.lbx.is-on .lbx__f img{transform:none}
.lbx__cap{
  font-family:var(--ff-b);font-size:.66rem;letter-spacing:.16em;text-transform:uppercase;
  font-variation-settings:"wght" 580,"wdth" 92;color:var(--frost);text-align:center;
}
.lbx__cap b{color:var(--paper);font-variation-settings:"wght" 640}
.lbx button{
  position:absolute;z-index:2;display:flex;align-items:center;justify-content:center;
  width:46px;height:46px;border:1px solid rgba(255,255,255,.22);border-radius:50%;
  background:rgba(10,13,16,.5);color:var(--paper);
  font-family:var(--ff-b);font-size:1.3rem;line-height:1;cursor:pointer;
  transition:background .2s var(--ease),border-color .2s var(--ease);
}
.lbx button:hover{background:rgba(255,255,255,.14);border-color:var(--paper)}
.lbx button:focus-visible{outline:2px solid var(--brass-soft);outline-offset:3px}
.lbx__x{top:calc(14px + env(safe-area-inset-top,0px));right:14px;font-size:1.5rem}
.lbx__p{left:14px;top:50%;transform:translateY(-50%)}
.lbx__n{right:14px;top:50%;transform:translateY(-50%)}
.lbx__p[hidden],.lbx__n[hidden]{display:none}
@media (max-width:600px){
  .lbx__p,.lbx__n{top:auto;bottom:calc(14px + env(safe-area-inset-bottom,0px));transform:none}
  .lbx__p{left:calc(50% - 58px)}
  .lbx__n{right:calc(50% - 58px)}
  .lbx__f img{max-height:calc(100vh - 210px)}
}
body.is-lbx{overflow:hidden}
@media (prefers-reduced-motion:reduce){
  .lbx,.lbx__f img,.grid__item img,.band__c img{transition:none!important}
}

/* Poster der Videokacheln folgt dem jeweiligen Seitenverhältnis */
.grid__item--w.grid__item--v .vposter{aspect-ratio:2/1}
.grid__item--t.grid__item--v .vposter{aspect-ratio:4/5}

/* ---------- 40. STREICHPREIS IM BILDJAHR ---------- */
.tier__was{
  flex-basis:100%;display:block;margin-bottom:2px;
  font-family:var(--ff-d);font-variation-settings:"opsz" 30,"wght" 380;
  font-size:1.05rem;color:var(--fg-mute);text-decoration:line-through;
  text-decoration-thickness:1px;text-decoration-color:var(--brass);
}
.tier--hi .tier__was{color:var(--frost);text-decoration-color:var(--brass-soft)}

/* ---------- 41. PREISKARTEN: NICHTS DARF ÜBERLAUFEN ---------- */
.tiers{grid-template-columns:minmax(0,1fr)}
@media (min-width:860px){.tiers{grid-template-columns:repeat(3,minmax(0,1fr))}}
.tier{min-width:0}
.tier .btn{white-space:normal;text-align:center;max-width:100%}
.tier__price{flex-wrap:wrap;row-gap:4px}
.tier__price .num{font-size:clamp(2.2rem,1.4rem + 2.2vw,3.4rem);white-space:nowrap}
@media (min-width:860px) and (max-width:1180px){
  .tier{padding:22px 20px}
  .tier__price .num{font-size:clamp(2rem,1rem + 2.2vw,2.7rem)}
  .tier__price small{flex-basis:100%}
}
.tbl td,.tbl th{overflow-wrap:anywhere}
.tbl td:last-child,.tbl th:last-child{overflow-wrap:normal;padding-left:14px}
@media (max-width:1279px){.hdr__tel{display:none}}

/* ---------- 42. MOBILE LEISTE: keine Unterstreichung, kein Umbruch ---------- */
.mcta,.mcta:hover{text-decoration:none}
.mcta__txt b{white-space:nowrap}
.mcta .btn{white-space:nowrap}
@media (max-width:380px){.mcta .btn{padding:.8em 1em;font-size:.7rem}}

/* ============================================================
   V2.7 — Scroll-Story „Acht Bausteine“
   Das Bild bleibt stehen und wechselt mit jedem Baustein.
   Ohne JS: jedes Kapitel zeigt sein eigenes Bild.
   ============================================================ */
.story{margin-top:clamp(24px,4vw,48px)}
.story__steps{display:grid;gap:0}
.story__step{padding:22px 0;border-top:1px solid var(--rule)}
.story__step .mod__n{display:block;margin-bottom:6px}
.story__step p{color:var(--fg-mute);margin-top:8px;max-width:46ch;text-wrap:pretty}
.story__inline{display:block;width:100%;aspect-ratio:3/2;object-fit:cover;margin-bottom:16px;background:var(--ink-3)}
.story__media{display:none}

.js .story__inline{display:none}
.js .story__media{display:block}
.js .story{position:relative}
.js .story__media{position:sticky;top:var(--hdr-h);z-index:3;background:var(--snow);padding:8px 0 10px;margin:0 calc(var(--gut) * -1);padding-left:var(--gut);padding-right:var(--gut)}
.story__frame{position:relative;aspect-ratio:3/2;max-height:38vh;width:100%;overflow:hidden;background:var(--ink-3)}
.story__layer{position:absolute;inset:0;margin:0;opacity:0;transition:opacity .35s ease}
.story__layer.is-on{opacity:1}
.story__layer img,.story__layer video{width:100%;height:100%;object-fit:cover;display:block}
.story__layer video{pointer-events:none}
.story__count{position:absolute;right:10px;bottom:10px;z-index:2;padding:5px 9px;background:rgba(10,13,16,.6);color:var(--frost);
  font-family:var(--ff-b);font-size:.62rem;letter-spacing:.16em;font-variation-settings:"wght" 600,"wdth" 92}
.story__count b{color:var(--snow)}
.js .story__step{min-height:34vh;display:flex;flex-direction:column;justify-content:center;opacity:.32;transition:opacity .45s var(--ease)}
.js .story__step.is-on{opacity:1}
.js .story__step:last-child{min-height:48vh}

@media (min-width:960px){
  .js .story{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(40px,5vw,80px);align-items:start}
  .js .story__media{top:calc(var(--hdr-h) + 32px);margin:0;padding:0;background:none}
  .story__frame{aspect-ratio:4/5;max-height:calc(100vh - var(--hdr-h) - 64px)}
  .js .story__step{min-height:62vh;border-top:0;padding:0}
  .js .story__step:first-child{min-height:48vh;justify-content:flex-start;padding-top:8vh}
  .js .story__step:last-child{min-height:70vh}
  .story__step .h3{font-size:clamp(1.6rem,1.1rem + 1.2vw,2.3rem)}
  .story__step p{font-size:1.05rem}
}
@media (prefers-reduced-motion:reduce){.story__layer,.story__layer img,.js .story__step{transition:none!important}}
@media (max-width:959px){
  .js .story__step{min-height:27vh;padding:18px 0}
  .js .story__step:last-child{min-height:32vh}
}

/* V2.8: schärfer und synchron */
.story__inline{aspect-ratio:4/3}
@media (min-width:960px){.story__frame{aspect-ratio:4/3;max-height:calc(100vh - var(--hdr-h) - 64px)}}
@media (max-width:959px){
  .js .story__step{justify-content:flex-start;padding:22px 0 18px;min-height:30vh}
  .js .story__step:last-child{min-height:40vh}
}
