@font-face{font-family:"Fraunces";font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/fonts/fraunces-latin-full-normal.woff2) format("woff2-variations")}
@font-face{font-family:"Fraunces";font-style:italic;font-display:swap;font-weight:100 900;src:url(/assets/fonts/fraunces-latin-wght-italic.woff2) format("woff2-variations")}
@font-face{font-family:"Geist";font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/fonts/geist-latin-wght-normal.woff2) format("woff2-variations")}

:root{
  --bg:#F4F0E8;--bg-2:#EBE5D9;--paper:#FBF9F4;
  --ink:#1A1C18;--ink-2:#575A51;--ink-3:#8A8C82;
  --fir:#1D3A2B;--fir-2:#2B5440;--fir-ink:#EEE8DB;--fir-soft:#D9E2D6;
  --berry:#A8392A;--berry-2:#8C2C1F;--gold:#D8B46A;
  --line:rgba(26,28,24,.09);--line-2:rgba(26,28,24,.16);
  --shadow:0 30px 60px -30px rgba(29,58,43,.28),0 12px 24px -16px rgba(29,58,43,.18);
  --ease:cubic-bezier(.32,.72,0,1);
  --r:2rem;--pad:clamp(1rem,4vw,3rem);
  --serif:"Fraunces",ui-serif,Georgia,serif;--sans:"Geist",ui-sans-serif,system-ui,sans-serif;
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--ink);font:400 1.0625rem/1.68 var(--sans);-webkit-font-smoothing:antialiased;overflow-x:hidden}
body::after{content:"";position:fixed;inset:0;pointer-events:none;z-index:90;opacity:.035;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}
img{max-width:100%;height:auto;display:block}
a{color:inherit}
p{margin:0 0 1.1em;text-wrap:pretty}
h1,h2,h3,h4{font-family:var(--serif);font-weight:380;letter-spacing:-.025em;line-height:1.04;margin:0;text-wrap:balance;font-variation-settings:"opsz" 144,"SOFT" 50}
::selection{background:var(--fir);color:var(--fir-ink)}
:focus-visible{outline:2px solid var(--fir-2);outline-offset:3px;border-radius:6px}
.skip{position:absolute;left:-999px;top:1rem;background:var(--fir);color:var(--fir-ink);padding:.6rem 1rem;border-radius:999px;z-index:100}
.skip:focus{left:1rem}
.wrap{width:min(100% - 2*var(--pad),1320px);margin-inline:auto}
.eyebrow{display:inline-flex;align-items:center;gap:.5rem;border-radius:999px;padding:.32rem .8rem;font:500 .66rem/1 var(--sans);letter-spacing:.2em;text-transform:uppercase;background:rgba(29,58,43,.07);color:var(--fir-2);box-shadow:inset 0 0 0 1px rgba(29,58,43,.1)}
.eyebrow::before{content:"";width:.38rem;height:.38rem;border-radius:50%;background:currentColor;opacity:.7}
.eyebrow.light{background:rgba(255,255,255,.12);color:#fff;box-shadow:inset 0 0 0 1px rgba(255,255,255,.2)}

/* Navigation */
.nav{position:fixed;top:1.1rem;left:50%;transform:translateX(-50%);z-index:60;display:flex;align-items:center;gap:.4rem;padding:.4rem .4rem .4rem 1.1rem;border-radius:999px;background:rgba(251,249,244,.72);backdrop-filter:blur(18px) saturate(1.4);-webkit-backdrop-filter:blur(18px) saturate(1.4);box-shadow:0 0 0 1px var(--line),0 18px 40px -22px rgba(29,58,43,.35);width:max-content;max-width:calc(100% - 2rem);transition:transform .7s var(--ease),background .5s var(--ease)}
.nav-logo{display:flex;align-items:center;margin-right:.6rem}
.nav-logo img{height:34px;width:auto}
.nav-links{display:flex;gap:.1rem;list-style:none;margin:0;padding:0}
.nav-links a{display:block;padding:.55rem .9rem;border-radius:999px;font-size:.88rem;font-weight:500;text-decoration:none;color:var(--ink-2);transition:background .4s var(--ease),color .4s var(--ease)}
.nav-links a:hover,.nav-links a[aria-current]{background:rgba(29,58,43,.08);color:var(--fir)}
.menu-btn{display:flex;align-items:center;gap:.7rem;border:0;cursor:pointer;background:var(--fir);color:var(--fir-ink);border-radius:999px;padding:.55rem .6rem .55rem 1.05rem;font:500 .88rem/1 var(--sans);transition:transform .5s var(--ease)}
.menu-btn:active{transform:scale(.97)}
.burger{position:relative;width:1.9rem;height:1.9rem;border-radius:50%;background:rgba(255,255,255,.12);display:grid;place-items:center}
.burger i{position:absolute;width:.85rem;height:1.5px;background:currentColor;border-radius:2px;transition:transform .6s var(--ease)}
.burger i:first-child{transform:translateY(-3px)}
.burger i:last-child{transform:translateY(3px)}
.menu-open .burger i:first-child{transform:rotate(45deg)}
.menu-open .burger i:last-child{transform:rotate(-45deg)}

.overlay{position:fixed;inset:0;z-index:55;background:rgba(244,240,232,.86);backdrop-filter:blur(28px);-webkit-backdrop-filter:blur(28px);opacity:0;visibility:hidden;transition:opacity .6s var(--ease),visibility .6s;overflow-y:auto}
.menu-open .overlay{opacity:1;visibility:visible}
.menu-open{overflow:hidden}
.overlay-inner{padding:7.5rem 0 3rem;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:2.5rem 2rem}
.ov-col{opacity:0;transform:translateY(3rem);transition:opacity .8s var(--ease),transform .8s var(--ease)}
.menu-open .ov-col,.menu-open .ov-foot{opacity:1;transform:none}
.menu-open .ov-col:nth-child(2){transition-delay:.06s}.menu-open .ov-col:nth-child(3){transition-delay:.12s}.menu-open .ov-col:nth-child(4){transition-delay:.18s}.menu-open .ov-col:nth-child(5){transition-delay:.24s}
.ov-h{display:flex;align-items:baseline;gap:.7rem;padding-bottom:1rem;margin-bottom:1.4rem;border-bottom:1px solid var(--line)}
.ov-n{font:500 .72rem/1 var(--sans);letter-spacing:.08em;color:var(--fir-2);opacity:.7}
.ov-h h2{font-size:clamp(1.45rem,1.9vw,1.95rem);line-height:1.05;margin:0;flex:1}
.ov-h h2 a{text-decoration:none;transition:color .3s var(--ease)}
.ov-h h2 a:hover{color:var(--fir-2)}
.ov-t{display:none}
.ov-g+.ov-g{margin-top:1.6rem}
.ov-g h3{font:600 .7rem/1 var(--sans);letter-spacing:.12em;text-transform:uppercase;color:var(--fir-2);margin:0 0 .6rem}
.ov-col ul{list-style:none;margin:0;padding:0}
.ov-col li a{display:inline-block;padding:.24rem 0;color:var(--ink-2);text-decoration:none;font-size:.97rem;transition:color .3s var(--ease),transform .5s var(--ease)}
.ov-col li a:hover{color:var(--fir);transform:translateX(.3rem)}
.ov-g.inline ul{display:flex;flex-wrap:wrap;gap:.4rem}
.ov-g.inline li a{padding:.32rem .75rem;border-radius:999px;box-shadow:inset 0 0 0 1px var(--line);font-size:.85rem}
.ov-g.inline li a:hover{transform:none;background:rgba(29,58,43,.07)}
.ov-foot{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:.6rem 2.5rem;padding-top:1.6rem;border-top:1px solid var(--line);font-size:.88rem;color:var(--ink-2);opacity:0;transition:opacity .8s var(--ease) .3s}
.ov-foot a{color:inherit}

/* Buttons */
.btn{display:inline-flex;align-items:center;gap:.9rem;padding:.55rem .55rem .55rem 1.35rem;border-radius:999px;text-decoration:none;font-weight:500;font-size:.95rem;background:var(--fir);color:var(--fir-ink);transition:transform .6s var(--ease),background .4s var(--ease);border:0;cursor:pointer;font-family:inherit}
.btn:hover{background:var(--fir-2)}
.btn:active{transform:scale(.98)}
.btn .ic{width:2.2rem;height:2.2rem;border-radius:50%;display:grid;place-items:center;background:rgba(255,255,255,.13);transition:transform .6s var(--ease)}
.btn:hover .ic{transform:translate(3px,-1px) scale(1.06)}
.btn.ghost{background:rgba(255,255,255,.14);color:#fff;box-shadow:inset 0 0 0 1px rgba(255,255,255,.28);backdrop-filter:blur(8px)}
.btn.ghost .ic{background:rgba(255,255,255,.16)}
.btn.soft{background:var(--paper);color:var(--fir);box-shadow:0 0 0 1px var(--line)}
.btn.soft .ic{background:rgba(29,58,43,.08)}
.ic svg{width:1rem;height:1rem;stroke:currentColor;fill:none;stroke-width:1.4}

/* Double bezel */
.bezel{padding:.45rem;border-radius:var(--r);background:rgba(29,58,43,.045);box-shadow:inset 0 0 0 1px var(--line)}
.bezel>.core{border-radius:calc(var(--r) - .45rem);overflow:hidden;background:var(--paper);box-shadow:inset 0 1px 1px rgba(255,255,255,.7),var(--shadow);height:100%}
.bezel.dark{background:rgba(255,255,255,.06);box-shadow:inset 0 0 0 1px rgba(255,255,255,.1)}
.bezel.dark>.core{background:var(--fir-2);box-shadow:inset 0 1px 1px rgba(255,255,255,.12)}

/* Hero: home */
.hero{position:relative;min-height:100dvh;display:flex;align-items:flex-end;color:#fff;overflow:hidden;background:var(--fir)}
.hero-media{position:absolute;inset:0}
.hero-media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transform:scale(1.06);animation:heroIn 2.4s var(--ease) forwards}
@keyframes heroIn{to{transform:scale(1)}}
.hero-media .sl{opacity:0;animation:heroSlide 24s linear infinite}
.hero-media .sl:nth-child(2){animation-delay:6s}.hero-media .sl:nth-child(3){animation-delay:12s}.hero-media .sl:nth-child(4){animation-delay:18s}
@keyframes heroSlide{0%{opacity:0;transform:scale(1.08)}5%{opacity:1}25%{opacity:1}30%{opacity:0;transform:scale(1)}100%{opacity:0}}
.hero-inner.solo{grid-template-columns:1fr}
.hero{min-height:86dvh}
.hero-next{justify-self:end;width:min(100%,290px);text-decoration:none;display:flex;flex-direction:column;gap:.8rem;align-items:flex-start;transform:rotate(2deg);transition:transform .7s var(--ease)}
.hero-next:hover{transform:rotate(0) translateY(-.3rem)}
.hero-next .bezel{width:100%}
.hero-next .core img{width:100%;aspect-ratio:4/5;object-fit:cover}
.rail-sec.home-rail{padding-top:3rem}
.hero-hours{display:inline-flex;align-items:center;gap:.9rem;margin-top:1.6rem;padding:.45rem 1.3rem .45rem .45rem;border-radius:999px;background:var(--paper);color:var(--ink);text-decoration:none;font-size:.86rem;line-height:1.3;box-shadow:0 18px 40px -18px rgba(0,0,0,.55);transition:transform .6s var(--ease)}
.hero-hours:hover{transform:translateY(-2px)}
.hh-ic{flex:0 0 auto;width:2.4rem;height:2.4rem;border-radius:50%;background:var(--fir);color:var(--fir-ink);display:grid;place-items:center}
.hh-ic svg{width:1.15rem;height:1.15rem;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round}
.hh-seg{display:flex;flex-direction:column;color:var(--ink-2)}
.hh-seg b{font-weight:600;color:var(--fir);font-size:.72rem;letter-spacing:.08em;text-transform:uppercase}
.hh-seg+.hh-seg{padding-left:.9rem;border-left:1px solid var(--line)}
.home-rail{margin-top:-2.5rem;position:relative;z-index:3}
.home-rail .wrap p{margin:0;font-size:.95rem}
.intro-media{align-self:start;position:sticky;top:6rem}
.intro-media .core img{width:100%;aspect-ratio:4/5;object-fit:cover}
.hero::before{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(180deg,rgba(14,28,20,.45) 0%,rgba(14,28,20,0) 30%,rgba(14,28,20,.2) 55%,rgba(14,28,20,.82) 100%)}
.hero-inner{position:relative;z-index:2;padding-bottom:clamp(2.5rem,7vh,5rem);display:grid;grid-template-columns:1.5fr 1fr;gap:3rem;align-items:end}
.hero h1{font-size:clamp(3.2rem,9.5vw,9rem);line-height:.92;font-weight:330;letter-spacing:-.045em;margin:1.2rem 0 1.2rem}
.hero h1 em{font-style:italic;font-weight:300;color:var(--fir-soft)}
.hero-lead{font-size:clamp(1.05rem,1.4vw,1.3rem);max-width:34ch;color:rgba(255,255,255,.85);margin-bottom:2rem}
.hero-ctas{display:flex;flex-wrap:wrap;gap:.7rem}
.hours-card{color:var(--ink)}
.hours-card .core{padding:1.6rem 1.7rem}
.hours-card h2{font-size:1.5rem;margin-bottom:1rem}
.hours-row{display:flex;justify-content:space-between;gap:1rem;padding:.7rem 0;border-top:1px solid var(--line);font-size:.95rem}
.hours-row b{font-weight:500}
.hours-row span{color:var(--ink-2);text-align:right;font-variant-numeric:tabular-nums}

/* Hero: content pages */
.phero{padding:clamp(7.5rem,14vh,10rem) 0 clamp(3rem,6vw,5rem)}
.phero-grid{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:clamp(2rem,5vw,5rem);align-items:end}
.phero.solo .phero-grid{grid-template-columns:1fr}
.crumbs{display:flex;flex-wrap:wrap;gap:.4rem;font-size:.82rem;color:var(--ink-3);margin-bottom:1.6rem;list-style:none;padding:0}
.crumbs a{text-decoration:none;color:var(--ink-2)}
.crumbs a:hover{color:var(--fir)}
.crumbs li+li::before{content:"/";margin-right:.4rem;color:var(--ink-3)}
.phero h1{font-size:clamp(2.6rem,6.4vw,6rem);line-height:.96;margin:1.1rem 0 0;letter-spacing:-.04em}
.phero-lead{margin-top:1.6rem;font-size:1.15rem;color:var(--ink-2);max-width:52ch}
.phero-img{transform:rotate(1.2deg)}
.phero-img .core img{width:100%;aspect-ratio:4/3.2;object-fit:cover}

/* Content sections */
.sec{padding:clamp(3.5rem,8vw,7rem) 0;border-top:1px solid var(--line)}
.sec:first-of-type{border-top:0}
.sec-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(2rem,6vw,6rem);align-items:start}
.sec-grid.flip>.sec-media{order:-1}
.sec-media{position:sticky;top:6.5rem}
.sec-media .core img{width:100%;max-height:78vh;object-fit:cover}
.prose{max-width:62ch}
.prose h2{font-size:clamp(2rem,4vw,3.4rem);margin:0 0 1.6rem}
.prose h3{font-size:clamp(1.35rem,2vw,1.75rem);margin:2.4rem 0 .9rem}
.prose h3.sub{font-family:var(--sans);font-size:.72rem;font-weight:500;letter-spacing:.2em;text-transform:uppercase;color:var(--fir-2);margin:2.6rem 0 1rem}
.prose>*:first-child{margin-top:0}
.prose p.lines{line-height:1.75}
.infobox{display:grid;grid-template-columns:1fr;max-width:620px;margin:0 0 1.6rem;padding:.6rem 1.4rem;border-radius:1.3rem;background:var(--paper);box-shadow:inset 0 0 0 1px var(--line),var(--shadow);font-size:.95rem}
.infobox span{padding:.55rem 0;border-bottom:1px solid var(--line)}
.prose-card .infobox{box-shadow:inset 0 0 0 1px var(--line);background:var(--bg)}
.prose ul{padding:0;margin:0 0 1.4rem;list-style:none}
.prose li{position:relative;padding:.55rem 0 .55rem 1.6rem;border-top:1px solid var(--line)}
.prose li:last-child{border-bottom:1px solid var(--line)}
.prose li::before{content:"";position:absolute;left:.2rem;top:1.2rem;width:.55rem;height:1px;background:var(--fir-2)}
.prose a{color:var(--fir);text-decoration-thickness:1px;text-underline-offset:.22em;text-decoration-color:rgba(29,58,43,.35);transition:text-decoration-color .3s var(--ease)}
.prose a:hover{text-decoration-color:var(--fir)}
.wide .prose{max-width:none}
.prose .cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:1rem;margin:0 0 2rem}
.card .core{padding:1.4rem 1.5rem 1.2rem}
.card .date{display:block;font:500 .72rem var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--fir-2);margin-bottom:.55rem}
.card h4{font-size:1.25rem;line-height:1.15;margin:0 0 .7rem}
.card p{font-size:.95rem;color:var(--ink-2);margin-bottom:.5rem}
.card ul{margin:0}
.card.past{opacity:.5}
.card .core{position:relative}
.card .done{position:absolute;top:1.1rem;right:1.1rem;font:600 .62rem/1 var(--sans);letter-spacing:.12em;text-transform:uppercase;color:var(--ink-3)}

/* Gallery */
.gallery{display:grid;grid-template-columns:repeat(12,1fr);gap:1rem;grid-auto-flow:dense}
.gallery button{all:unset;cursor:zoom-in;display:block;grid-column:span 4}
.gallery button:nth-child(6n+1){grid-column:span 7;grid-row:span 2}
.gallery button:nth-child(6n+2),.gallery button:nth-child(6n+3){grid-column:span 5}
.gallery .core img{width:100%;height:100%;object-fit:cover;aspect-ratio:4/3;transition:transform 1.2s var(--ease)}
.gallery button>.bezel{height:100%}
.gallery button:nth-child(6n+1) .core{position:relative;min-height:16rem}
.gallery button:nth-child(6n+1) .core img{position:absolute;inset:0;aspect-ratio:auto}
.gallery button:hover .core img{transform:scale(1.035)}
.gallery-head{display:flex;justify-content:space-between;align-items:end;gap:2rem;margin-bottom:2.5rem}
.gallery-head h2{font-size:clamp(2rem,4vw,3.4rem)}
dialog.lb{border:0;padding:0;background:transparent;max-width:min(94vw,1400px);max-height:92vh}
dialog.lb::backdrop{background:rgba(14,22,17,.86);backdrop-filter:blur(6px)}
dialog.lb img{max-height:88vh;width:auto;border-radius:1.2rem}
dialog.lb form{position:fixed;top:1rem;right:1rem}
dialog.lb button{border:0;border-radius:999px;padding:.7rem 1.1rem;background:var(--paper);font:500 .9rem var(--sans);cursor:pointer}

/* Home */
.intro{padding:clamp(5rem,11vw,10rem) 0}
.intro-grid{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:clamp(2rem,6vw,7rem)}
.intro h2{font-size:clamp(2.4rem,5.5vw,5.2rem);line-height:.98;letter-spacing:-.04em}
.intro h2 em{font-style:italic;color:var(--fir-2)}
.intro .prose{font-size:1.15rem}
.intro .prose>p:first-child::first-letter{font-family:var(--serif);font-size:3.6em;float:left;line-height:.82;margin:.08em .1em 0 0;color:var(--fir)}
.rail-sec{padding:clamp(4rem,8vw,7rem) 0;background:var(--fir);color:var(--fir-ink);border-radius:clamp(1.5rem,4vw,3rem) clamp(1.5rem,4vw,3rem) 0 0}
.rail-sec h2{font-size:clamp(2.2rem,5vw,4.4rem)}
.rail-sec p{color:rgba(238,232,219,.75);max-width:52ch}
.rail-head{display:flex;justify-content:space-between;align-items:end;gap:2rem;margin-bottom:2.5rem;flex-wrap:wrap}
.rail{display:flex;gap:1.1rem;overflow-x:auto;scroll-snap-type:x mandatory;padding:0 var(--pad) 1.5rem calc((100vw - min(100vw - 2*var(--pad),1320px))/2);scrollbar-width:thin;scrollbar-color:rgba(238,232,219,.3) transparent}
.rail a{flex:0 0 clamp(240px,26vw,340px);scroll-snap-align:start;text-decoration:none;color:inherit}
.rail .core img{width:100%;aspect-ratio:4/5;object-fit:cover;transition:transform 1.2s var(--ease)}
.rail a:hover .core img{transform:scale(1.04)}
.rail-btns{display:flex;gap:.5rem}
.rail-btns button{width:3rem;height:3rem;border-radius:50%;border:0;cursor:pointer;background:rgba(255,255,255,.1);color:var(--fir-ink);box-shadow:inset 0 0 0 1px rgba(255,255,255,.18);transition:background .4s var(--ease),transform .5s var(--ease)}
.rail-btns button:hover{background:rgba(255,255,255,.2)}
.rail-btns button:active{transform:scale(.95)}
.bento-sec{padding:clamp(5rem,10vw,9rem) 0;background:var(--bg)}
.bento-head{display:grid;grid-template-columns:1fr 1fr;gap:2rem;align-items:end;margin-bottom:3rem}
.bento-head h2{font-size:clamp(2.4rem,5.5vw,5rem);letter-spacing:-.04em}
.bento{display:grid;grid-template-columns:repeat(12,1fr);grid-auto-rows:minmax(150px,auto);gap:1rem}
.tile{grid-column:span 4;grid-row:span 2;text-decoration:none;color:#fff}
.tile:nth-child(1){grid-column:span 7;grid-row:span 3}
.tile:nth-child(2){grid-column:span 5;grid-row:span 3}
.tile:nth-child(6){grid-column:span 7}
.tile:nth-child(7){grid-column:span 5}
.tile:nth-child(8),.tile:nth-child(9){grid-column:span 6}
.tile .core{position:relative;min-height:100%}
.tile img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform 1.4s var(--ease)}
.tile .core::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(14,28,20,0) 35%,rgba(14,28,20,.78))}
.tile:hover img{transform:scale(1.045)}
.tile-txt{position:absolute;left:0;right:0;bottom:0;z-index:2;padding:1.5rem 1.6rem;display:flex;justify-content:space-between;align-items:end;gap:1rem}
.tile h3{font-size:clamp(1.4rem,2.2vw,2.1rem);line-height:1.02}
.more-grid .tile h3{font-size:clamp(1.25rem,1.7vw,1.75rem)}
.tile p{margin:.4rem 0 0;font-size:.92rem;color:rgba(255,255,255,.8);max-width:36ch}
.tile .ic{flex:none;width:2.6rem;height:2.6rem;border-radius:50%;display:grid;place-items:center;background:rgba(255,255,255,.16);backdrop-filter:blur(6px);transition:transform .6s var(--ease)}
.tile:hover .ic{transform:translate(3px,-3px) scale(1.06)}
.quotes{padding:clamp(5rem,10vw,9rem) 0;border-top:1px solid var(--line)}
.quote-grid{display:grid;grid-template-columns:repeat(12,1fr);gap:1rem}
.quote{grid-column:span 6}
.quote:first-child{grid-column:span 6;grid-row:span 2}
.quote .core{padding:2rem;display:flex;flex-direction:column;justify-content:space-between;gap:2rem}
.quote blockquote{margin:0;font-family:var(--serif);font-size:clamp(1.15rem,1.6vw,1.45rem);line-height:1.35;letter-spacing:-.01em}
.quote:first-child blockquote{font-size:clamp(1.5rem,2.6vw,2.3rem)}
.quote cite{font-style:normal;font-size:.85rem;color:var(--ink-3);letter-spacing:.06em}

/* Locations */
.loc-facts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;margin-bottom:2rem}
.loc-facts .core{padding:1.6rem}
.loc-facts h3{font-family:var(--sans);font-size:.7rem;font-weight:500;letter-spacing:.2em;text-transform:uppercase;color:var(--fir-2);margin:0 0 1rem}
.loc-facts p{margin:0;line-height:1.7}
.regions{display:grid;gap:3rem}
.region h3{font-size:clamp(1.8rem,3vw,2.6rem);margin-bottom:1.2rem;display:flex;align-items:baseline;gap:.8rem}
.region h3 small{font:500 .8rem var(--sans);color:var(--ink-3);letter-spacing:.05em}
.loc-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:.6rem;list-style:none;padding:0;margin:0}
.loc-list li>a,.loc-list li>span{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:1rem 1.2rem;border-radius:1.1rem;background:var(--paper);box-shadow:0 0 0 1px var(--line);text-decoration:none;transition:transform .6s var(--ease),box-shadow .4s var(--ease)}
.loc-list a:hover{transform:translateY(-2px);box-shadow:0 0 0 1px var(--line-2),var(--shadow)}
.loc-list b{font-weight:500;display:block}
.loc-list li>*>span:first-child{display:flex;flex-direction:column;line-height:1.35}
.loc-list small{color:var(--ink-3);font-size:.8rem}
.loc-list .ic{flex:none;width:2rem;height:2rem;border-radius:50%;display:grid;place-items:center;background:rgba(29,58,43,.07);color:var(--fir)}

.loc-tiles{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}
.loc-tiles .tile{grid-column:auto;grid-row:auto}
@media (max-width:767px){.loc-tiles{grid-template-columns:1fr}}
/* Team */
.team{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:1rem}
.team .core{display:flex;flex-direction:column}
.team img{width:100%;aspect-ratio:4/4.6;object-fit:cover}
.team .t{padding:1.2rem 1.3rem 1.4rem}
.team h3{font-size:1.4rem;margin-bottom:.5rem}
.team p{font-size:.92rem;color:var(--ink-2);margin:0}

/* Form */
.form .core{padding:clamp(1.5rem,3vw,2.5rem)}
.form h2{font-size:clamp(1.8rem,3vw,2.6rem);margin-bottom:1.5rem}
.fgrid{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
.fgrid .full{grid-column:1/-1}
.form label{display:block;font-size:.8rem;font-weight:500;color:var(--ink-2);margin-bottom:.4rem}
.form input,.form select,.form textarea{width:100%;font:inherit;font-size:.98rem;padding:.85rem 1rem;border-radius:.9rem;border:0;background:var(--bg);box-shadow:inset 0 0 0 1px var(--line-2);color:var(--ink);transition:box-shadow .3s var(--ease)}
.form input:focus,.form select:focus,.form textarea:focus{outline:0;box-shadow:inset 0 0 0 1.5px var(--fir-2)}
.chips{display:flex;flex-wrap:wrap;gap:.45rem}
.chips label{margin:0;display:inline-flex;align-items:center;gap:.45rem;padding:.5rem .85rem;border-radius:999px;background:var(--bg);box-shadow:inset 0 0 0 1px var(--line-2);font-weight:400;color:var(--ink);cursor:pointer;font-size:.88rem}
.chips input{width:auto;accent-color:var(--fir)}
.form .hint{font-size:.82rem;color:var(--ink-3);margin-top:1rem}
.form .err{color:#8a2b1d;font-size:.85rem;min-height:1.2em;margin-top:.6rem}

/* CTA + Footer */
.cta{padding:clamp(4rem,8vw,6rem) 0}
.cta .core{padding:clamp(2rem,5vw,4rem);display:grid;grid-template-columns:1.3fr 1fr;gap:2rem;align-items:center;background:var(--fir-2);color:var(--fir-ink)}
.cta h2{font-size:clamp(2rem,4.4vw,3.8rem)}
.cta p{color:rgba(238,232,219,.75);margin:1rem 0 0}
.cta .acts{display:flex;flex-wrap:wrap;gap:.7rem;justify-content:flex-end}
.footer{background:var(--fir);color:var(--fir-ink);padding:clamp(5rem,9vw,8rem) 0 2rem;position:relative;overflow:hidden}
.f-top{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:3rem;padding-bottom:4rem;border-bottom:1px solid rgba(238,232,219,.14)}
.footer h2{font-size:clamp(2.4rem,5vw,4.6rem);letter-spacing:-.04em}
.footer h2 em{font-style:italic;color:var(--fir-soft)}
.footer h3{font:500 .7rem var(--sans);letter-spacing:.2em;text-transform:uppercase;color:rgba(238,232,219,.55);margin:0 0 1.2rem}
.footer p{color:rgba(238,232,219,.82)}
.footer a{text-decoration:none;transition:color .3s var(--ease)}
.footer a:hover{color:#fff}
.f-hours div{display:flex;justify-content:space-between;gap:1rem;padding:.55rem 0;border-top:1px solid rgba(238,232,219,.12);font-size:.95rem}
.f-hours span{color:rgba(238,232,219,.65)}
.f-bottom{display:flex;justify-content:space-between;flex-wrap:wrap;gap:1rem;padding-top:2rem;font-size:.85rem;color:rgba(238,232,219,.55)}
.f-bottom nav{display:flex;gap:1.4rem;flex-wrap:wrap}
.f-logo{width:150px;margin-bottom:2rem;opacity:.95}
.f-mascot{position:absolute;right:clamp(1rem,5vw,5rem);bottom:4.5rem;width:clamp(90px,10vw,140px);opacity:.95;transform:rotate(-6deg)}

/* Tannenletter */
.tl{padding:clamp(3.5rem,7vw,6rem) 0}
.tl-box{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:clamp(2rem,5vw,5rem);align-items:center;padding:clamp(1.8rem,4vw,3.2rem);border-radius:var(--r);background:var(--paper);box-shadow:inset 0 0 0 1px var(--line)}
.tl h2{font-size:clamp(1.9rem,3.6vw,3rem);line-height:1.02;letter-spacing:-.03em;margin:1rem 0 1rem}
.tl h2 em{font-style:italic;color:var(--fir-2)}
.tl-copy p{color:var(--ink-2);max-width:44ch;margin:0}
.tl-perks{list-style:none;margin:1.3rem 0 0;padding:0;display:flex;flex-wrap:wrap;gap:.45rem}
.tl-perks li{font-size:.8rem;font-weight:500;color:var(--fir);padding:.35rem .8rem;border-radius:999px;background:rgba(29,58,43,.07)}
.tl-form{display:grid;gap:.6rem}
.tl-form input{width:100%;font:inherit;font-size:.98rem;padding:.95rem 1.1rem;border-radius:999px;border:0;background:var(--bg);box-shadow:inset 0 0 0 1px var(--line-2);color:var(--ink);transition:box-shadow .3s var(--ease)}
.tl-form input:focus{outline:0;box-shadow:inset 0 0 0 1.5px var(--fir-2)}
.tl-form .btn{justify-self:start;margin-top:.3rem}
.tl-note{font-size:.78rem;color:var(--ink-3);margin:.2rem 0 0}
.tl-note a{color:inherit}
.tl-ok{margin:0;padding:1.2rem 1.4rem;border-radius:1.2rem;background:rgba(29,58,43,.07);color:var(--ink-2)}
.tl-ok b{color:var(--fir)}
.sr,.hp{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.form .chk{display:flex;gap:.7rem;align-items:flex-start;font-size:.85rem;line-height:1.45;font-weight:400}
.form .chk input{width:auto;margin-top:.2rem;accent-color:var(--fir)}
.err a{color:inherit}
.k-direct{list-style:none;margin:2rem 0 0;padding:0;display:grid;gap:.9rem}
.k-direct li{display:flex;flex-direction:column;gap:.15rem}
.k-direct span{font-size:.7rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--fir-2)}
.k-direct a{color:var(--ink);text-decoration:none;font-size:1.05rem}
.k-direct a:hover{color:var(--fir-2)}

/* Weihnachten: Akzentfarbe */
.nav-xmas{display:flex;align-items:center;gap:.5rem;padding:.55rem 1rem .55rem .75rem;border-radius:999px;background:var(--berry);color:#fff;text-decoration:none;font-size:.88rem;font-weight:600;white-space:nowrap;box-shadow:0 8px 20px -10px rgba(168,57,42,.8);transition:background .4s var(--ease),transform .5s var(--ease)}
.nav-xmas:hover{background:var(--berry-2)}
.nav-xmas:active{transform:scale(.97)}
.nav-xmas .s{display:none}
.tree{width:1.05rem;height:1.05rem;fill:currentColor;stroke:currentColor;stroke-width:1.2;stroke-linejoin:round;flex:none}
.ov-xmas{display:inline-flex!important;align-items:center;gap:.45rem;margin:.1rem 0 .3rem;padding:.4rem .9rem .4rem .7rem!important;border-radius:999px;background:var(--berry);color:#fff!important;font-weight:600}
.ov-xmas:hover{transform:none!important;background:var(--berry-2)}
.btn.xmas{background:var(--berry);color:#fff}
.btn.xmas:hover{background:var(--berry-2)}
.tile-tag{display:inline-block;margin-bottom:.7rem;padding:.3rem .7rem;border-radius:999px;background:var(--berry);color:#fff;font:600 .66rem/1 var(--sans);letter-spacing:.14em;text-transform:uppercase}

/* Seitenkopf mit großem Foto */
.ph{position:relative;min-height:min(80dvh,820px);display:flex;align-items:flex-end;color:#fff;background:var(--fir);overflow:hidden;border-radius:0 0 clamp(1.5rem,4vw,3rem) clamp(1.5rem,4vw,3rem)}
.ph-media{position:absolute;inset:0}
.ph-media img{width:100%;height:100%;object-fit:cover;transform:scale(1.05);animation:heroIn 2.4s var(--ease) forwards}
.ph::before{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(180deg,rgba(14,28,20,.5) 0%,rgba(14,28,20,0) 28%,rgba(14,28,20,.15) 50%,rgba(14,28,20,.85) 100%)}
.ph-inner{position:relative;z-index:2;padding:9rem 0 clamp(2.5rem,6vh,4.5rem)}
.ph-copy{max-width:820px}
.ph .crumbs,.ph .crumbs a,.ph .crumbs li+li::before{color:rgba(255,255,255,.72)}
.ph h1{font-size:clamp(2.8rem,7.4vw,7rem);line-height:.94;font-weight:340;letter-spacing:-.045em;margin:1.1rem 0 0;text-shadow:0 2px 30px rgba(0,0,0,.25)}
.ph-lead{font-size:clamp(1.05rem,1.4vw,1.25rem);color:rgba(255,255,255,.88);max-width:54ch;margin:1.4rem 0 0}
.ph-chips{list-style:none;padding:0;margin:1.5rem 0 0;display:flex;flex-wrap:wrap;gap:.45rem}
.ph-chips li{padding:.42rem .9rem;border-radius:999px;background:rgba(255,255,255,.14);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);box-shadow:inset 0 0 0 1px rgba(255,255,255,.25);font-size:.85rem;font-weight:500}
.ph-acts{display:flex;flex-wrap:wrap;gap:.7rem;margin-top:1.8rem}
.ph+.sec{border-top:0}

/* Collage, Textkarten */
.collage{position:sticky;top:6.5rem}
.collage .c1 .core img{width:100%;aspect-ratio:4/3.3;object-fit:cover}
.collage.duo{padding-bottom:3.5rem}
.collage.duo .c1{width:88%}
.collage .c2{position:absolute;right:0;bottom:0;width:46%;transform:rotate(3deg);background:var(--bg);padding:.4rem}
.collage .c2 .core img{width:100%;aspect-ratio:1/1;object-fit:cover}
.sec-grid.flip .collage.duo .c1{margin-left:auto}
.sec-grid.flip .collage .c2{right:auto;left:0;transform:rotate(-3deg)}
.sec.plain .wrap>.prose-card{max-width:860px;margin-inline:auto;padding:clamp(1.8rem,4vw,3.4rem);border-radius:var(--r);background:var(--paper);box-shadow:inset 0 0 0 1px var(--line),var(--shadow)}
.sec.plain{border-top:0}
.prose-card h2{color:var(--fir)}

/* Galerie */
.gallery button.flat .core{background:var(--paper)}
.gallery button.flat .core img{object-fit:contain;padding:.6rem}
.gallery.n1{grid-template-columns:1fr;max-width:900px}
.gallery.n1 button,.gallery.n1 button:nth-child(n){grid-column:auto;grid-row:auto}
.gallery.n2 button,.gallery.n2 button:nth-child(n){grid-column:span 6;grid-row:auto}
.gallery.n1 .core,.gallery.n2 .core{min-height:0!important}
.gallery.n1 .core img,.gallery.n2 .core img{position:static!important;aspect-ratio:4/3!important}

/* Mehr entdecken, Themen-Übersichten */
.more{padding:clamp(4rem,8vw,7rem) 0;background:var(--bg-2);border-radius:clamp(1.5rem,4vw,3rem)}
.more+.more{margin-top:1rem}
.more-head{display:flex;justify-content:space-between;align-items:end;gap:1.5rem 3rem;flex-wrap:wrap;margin-bottom:2.5rem}
.more-head h2{font-size:clamp(2.1rem,4.6vw,4rem);letter-spacing:-.035em;margin-top:1rem}
.more-head h2 em,.steps-sec h2 em{font-style:italic;color:var(--fir-2)}
.more-sub{max-width:46ch;color:var(--ink-2);margin:0}
.more-grid{display:grid;grid-template-columns:repeat(var(--n,4),minmax(0,1fr));gap:1rem}
.more-grid .tile{grid-column:auto;grid-row:auto;min-height:clamp(300px,30vw,400px)}
.tile.hot .bezel{background:rgba(168,57,42,.18);box-shadow:inset 0 0 0 1.5px rgba(168,57,42,.55)}
.hub-g+.hub-g{margin-top:3rem}
.hub-h{font-family:var(--sans);font-size:.75rem;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--fir-2);margin:0 0 1rem}
.pills{display:flex;flex-wrap:wrap;gap:.6rem;margin:0}
.xmas-band{display:flex;align-items:center;gap:1.2rem;padding:1.3rem 1.4rem;border-radius:1.4rem;background:var(--berry);color:#fff;text-decoration:none;box-shadow:var(--shadow)}
.xmas-band .tree{width:2rem;height:2rem}
.xmas-band span{flex:1}
.xmas-band .ic{width:2.4rem;height:2.4rem;border-radius:50%;display:grid;place-items:center;background:rgba(255,255,255,.16)}

/* Baumsägen */
.steps-sec{padding:clamp(4.5rem,9vw,8rem) 0 clamp(3rem,6vw,5rem)}
.steps-sec h2{font-size:clamp(2.2rem,5vw,4.4rem)}
.steps{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:1rem}
.step>.bezel{height:100%}
.step .core{display:flex;flex-direction:column}
.step img{width:100%;aspect-ratio:4/4.4;object-fit:cover}
.step-t{padding:1.2rem 1.3rem 1.5rem;position:relative}
.step-n{position:absolute;top:-1.6rem;left:1.1rem;width:3rem;height:3rem;border-radius:50%;display:grid;place-items:center;background:var(--fir);color:var(--fir-ink);font:500 .9rem var(--sans);box-shadow:0 0 0 4px var(--paper)}
.step:last-child .step-n{background:var(--berry)}
.step h3{font-size:1.45rem;margin:1rem 0 .5rem}
.step p{font-size:.93rem;color:var(--ink-2);margin:0}
.facts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}
.fact{padding:1.6rem 1.7rem;border-radius:1.5rem;background:var(--paper);box-shadow:inset 0 0 0 1px var(--line)}
.fact h3{font-family:var(--sans);font-size:.72rem;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--berry);margin:0 0 .8rem}
.fact p{margin:0;color:var(--ink-2);font-size:.97rem}
.fact b{color:var(--ink);font-weight:600}
.zoom{margin-top:1rem;display:inline-flex;align-items:center;gap:.6rem;padding:.35rem .35rem .35rem 1rem;border:0;border-radius:999px;background:rgba(29,58,43,.07);color:var(--fir);font:500 .88rem var(--sans);cursor:zoom-in}
.zoom .ic{width:1.9rem;height:1.9rem;border-radius:50%;display:grid;place-items:center;background:var(--paper)}
.addr{display:flex;flex-direction:column;gap:.15rem;align-items:flex-start}
.addr .btn{margin-top:.8rem}
.winter{margin:clamp(2rem,5vw,4rem) 0 0;padding:clamp(4.5rem,9vw,8rem) 0;background:var(--fir);color:var(--fir-ink);border-radius:clamp(1.5rem,4vw,3rem)}
.winter-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(2rem,6vw,6rem);align-items:center}
.winter h2{font-size:clamp(2.2rem,5vw,4.4rem);margin:1.2rem 0 1.4rem}
.winter h2 em{font-style:italic;color:var(--gold)}
.winter p{color:rgba(238,232,219,.8);max-width:50ch}
.collage.on-dark{position:relative;top:0}
.collage.on-dark .c2{background:var(--fir)}
.collage.on-dark .bezel{background:rgba(255,255,255,.06);box-shadow:inset 0 0 0 1px rgba(255,255,255,.1)}
.duo-cards{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
.duo-card{text-decoration:none;color:inherit}
.duo-card>.bezel{height:100%}
.duo-card img{width:100%;aspect-ratio:16/9;object-fit:cover;transition:transform 1.2s var(--ease)}
.duo-card:hover img{transform:scale(1.03)}
.duo-t{padding:1.5rem 1.6rem 1.7rem}
.duo-t h3{font-size:clamp(1.5rem,2.4vw,2.1rem);margin:1rem 0 .6rem}
.duo-t p{color:var(--ink-2);margin:0;font-size:.97rem}
.feature{display:block;text-decoration:none;color:#fff}
.feature .core{position:relative;min-height:clamp(420px,46vw,620px)}
.feature img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform 1.4s var(--ease)}
.feature:hover img{transform:scale(1.03)}
.feature .core::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(14,28,20,.82),rgba(14,28,20,.1) 70%)}
.feature-t{position:absolute;z-index:2;left:0;bottom:0;padding:clamp(1.6rem,4vw,3.4rem);max-width:640px}
.feature-t h2{font-size:clamp(2.2rem,5vw,4.4rem);margin:.2rem 0 1rem}
.feature-t p{color:rgba(255,255,255,.85);margin:0 0 1.6rem}


/* Tannenletter mit Foto, Weihnachts-Variante */
.tl-box.has-pic{grid-template-columns:minmax(0,.8fr) minmax(0,1fr) minmax(0,1fr)}
.tl-pic .core{border-radius:1.4rem;overflow:hidden;height:100%}
.tl-pic img{width:100%;height:100%;min-height:260px;object-fit:cover}
.tl-xmas .tl-box{background:linear-gradient(135deg,#FBF6EC,#F6EADB);box-shadow:inset 0 0 0 1.5px rgba(168,57,42,.25)}
.tl-xmas .eyebrow{background:rgba(168,57,42,.1);color:var(--berry);box-shadow:inset 0 0 0 1px rgba(168,57,42,.2)}
.tl-xmas h2 em{color:var(--berry)}
.tl-xmas .tl-perks li{background:rgba(168,57,42,.09);color:var(--berry-2)}
.tl-xmas .tl-form .btn{background:var(--berry)}

/* Reveal */
.rv{opacity:0;transform:translateY(3.5rem);filter:blur(8px);transition:opacity 1s var(--ease),transform 1.1s var(--ease),filter 1s var(--ease)}
.rv.in{opacity:1;transform:none;filter:none}
@media (prefers-reduced-motion:reduce){.rv{opacity:1;transform:none;filter:none}*{transition-duration:.01ms!important;animation:none!important}.hero-media img{transform:none}}
.noscript .rv{opacity:1;transform:none;filter:none}

@media (max-width:1200px){
  .steps{grid-template-columns:repeat(3,minmax(0,1fr))}
  .tl-box.has-pic{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
  .tl-box.has-pic .tl-pic{display:none}
}
@media (max-width:1024px){
  .nav-links{display:none}
  .more-grid{grid-template-columns:repeat(min(var(--n,4),3),minmax(0,1fr))}
  .facts{grid-template-columns:1fr 1fr}
  .winter-grid,.tl-box.has-pic{grid-template-columns:1fr}
  .overlay-inner{grid-template-columns:repeat(3,minmax(0,1fr))}
  .hero-inner,.intro-grid,.bento-head,.cta .core,.f-top,.tl-box{grid-template-columns:1fr}
  .hero-next{display:none}
  .cta .acts{justify-content:flex-start}
  .tile,.tile:nth-child(n){grid-column:span 6;grid-row:span 2}
  .tile:nth-child(1){grid-column:span 12}
  .quote,.quote:first-child{grid-column:span 6}
}
@media (max-width:767px){
  :root{--pad:1rem;--r:1.6rem}
  .overlay-inner{grid-template-columns:1fr;gap:0;padding-top:6rem}
  .ov-h{margin:0;padding:1.1rem 0;align-items:center}
  .ov-h h2{font-size:1.75rem}
  .ov-t{display:grid;place-items:center;width:2.6rem;height:2.6rem;border:0;border-radius:50%;background:rgba(29,58,43,.07);color:var(--fir);cursor:pointer;position:relative}
  .ov-t::before,.ov-t::after{content:"";position:absolute;width:.8rem;height:1.5px;background:currentColor;border-radius:2px;transition:transform .5s var(--ease)}
  .ov-t::after{transform:rotate(90deg)}
  .ov-col.open .ov-t::after{transform:rotate(0)}
  .ov-gs{display:none;padding:.4rem 0 1.4rem}
  .ov-col.open .ov-gs{display:block}
  .ov-foot{flex-direction:column;gap:.5rem;margin-top:1.5rem;border-top:0}
  .phero-grid,.sec-grid,.fgrid,.loc-facts{grid-template-columns:1fr}
  .sec-grid.flip>.sec-media{order:0}
  .sec-media{position:static}
  .phero-img{transform:none}
  .sec{padding:6rem 0}
  .gallery{grid-template-columns:1fr 1fr}
  .gallery button,.gallery button:nth-child(n){grid-column:span 1;grid-row:auto}
  .gallery button:nth-child(5n+1){grid-column:span 2}
  .bento{grid-template-columns:1fr;grid-auto-rows:auto}
  .tile,.tile:nth-child(n){grid-column:span 1;grid-row:auto;min-height:340px}
  .quote,.quote:first-child{grid-column:span 12}
  .hero h1{font-size:clamp(3rem,15vw,4.6rem)}
  .nav{top:.8rem;padding-left:.9rem}
  .menu-btn span.l{display:none}
  .hero-inner{padding-top:7rem}
  .hero .hours-card,.hero-next{display:none}
  .hero-hours{border-radius:1.4rem;padding-right:1rem;align-items:flex-start;gap:.7rem}
  .hero-hours .hh-ic{width:2rem;height:2rem}
  .hh-seg+.hh-seg{padding-left:.7rem}
  .intro-media{position:static}
  .intro-media .core img{aspect-ratio:4/3}
  .f-mascot{display:none}
  .gallery-head{flex-direction:column;align-items:start}
  .nav-xmas{padding:.5rem .8rem .5rem .65rem;font-size:.82rem}
  .nav-xmas .l{display:none}.nav-xmas .s{display:inline}
  .nav-logo{margin-right:.2rem}.nav-logo img{height:28px}
  .ph{min-height:88dvh}
  .ph::before{background:linear-gradient(180deg,rgba(14,28,20,.55) 0%,rgba(14,28,20,.3) 35%,rgba(14,28,20,.9) 100%)}
  .ph-inner{padding-top:7rem}
  .collage{position:static}
  .collage.duo{padding-bottom:2.5rem}
  .steps{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;margin-inline:calc(-1*var(--pad));padding:1rem var(--pad);gap:.8rem}
  .step{flex:0 0 78%;scroll-snap-align:start}
  .facts,.duo-cards{grid-template-columns:1fr}
  .more-grid{grid-template-columns:1fr 1fr!important;gap:.7rem}
  .more-grid .tile{min-height:220px}
  .more-grid .tile-txt{padding:1rem}
  .more-grid .tile h3{font-size:1.15rem}
  .more-grid .tile .ic{display:none}
  .more{border-radius:1.6rem}
  .feature .core::after{background:linear-gradient(180deg,rgba(14,28,20,.05) 20%,rgba(14,28,20,.88))}
  .gallery.n2 button,.gallery.n2 button:nth-child(n){grid-column:span 2}
}

/* ---------- Zwei Höfe: Standortfarbe, Umschalter, Hinweise ---------- */
.hof-thueringen{--fir:#1E3F48;--fir-2:#2D5B66;--fir-ink:#E6EEEC;--fir-soft:#CFE0E2}
.hof-switch{display:flex;align-items:center;padding:.22rem;border-radius:999px;background:rgba(26,28,24,.055);box-shadow:inset 0 0 0 1px var(--line);margin-right:.35rem;flex-shrink:0}
.hof-switch a,.hof-switch span{display:flex;align-items:center;gap:.42rem;padding:.42rem .82rem;border-radius:999px;font:600 .8rem/1 var(--sans);text-decoration:none;color:var(--ink-2);white-space:nowrap;transition:background .4s var(--ease),color .4s var(--ease)}
.hof-switch a:hover{background:rgba(26,28,24,.07);color:var(--ink)}
.hof-switch .hs-on,.hof-switch .hs-on:hover{background:var(--fir);color:#fff;box-shadow:0 6px 14px -8px rgba(0,0,0,.5)}
.hof-switch .hs-on i{width:.42rem;height:.42rem;border-radius:50%;background:#9FE0B4;box-shadow:0 0 0 0 rgba(159,224,180,.7);animation:hsPulse 2.4s infinite}
.hof-thueringen .hof-switch .hs-on i{background:#A9DCE6;box-shadow:0 0 0 0 rgba(169,220,230,.7)}
@keyframes hsPulse{70%{box-shadow:0 0 0 .45rem rgba(159,224,180,0)}100%{box-shadow:0 0 0 0 rgba(159,224,180,0)}}
.th-logo{display:flex;align-items:center;gap:.5rem;color:var(--fir);text-decoration:none}
.th-logo img{height:34px;width:auto}
.th-logo b{font:800 .74rem/1.02 var(--sans);letter-spacing:.06em;text-transform:uppercase}
.ov-hof{grid-column:1/-1;display:flex;flex-wrap:wrap;align-items:center;gap:.8rem 1rem;padding:1rem 1rem 1rem 1.4rem;border-radius:1.6rem;background:var(--paper);box-shadow:0 0 0 1px var(--line)}
.ov-hof>span{flex:1 1 18rem;color:var(--ink-2)}
.ov-hof b{color:var(--fir)}
.f-hoefe{display:flex;flex-wrap:wrap;align-items:center;gap:.6rem 1.6rem;padding:1.6rem 0;border-bottom:1px solid rgba(238,232,219,.14);font-size:.92rem}
.f-hoefe span{font:500 .7rem var(--sans);letter-spacing:.2em;text-transform:uppercase;color:rgba(238,232,219,.55)}
.f-hoefe a[aria-current]{color:#fff;font-weight:600}
.f-hoefe a[aria-current]::before{content:"";display:inline-block;width:.4rem;height:.4rem;border-radius:50%;background:currentColor;margin-right:.5rem;vertical-align:middle}
@media (max-width:767px){
  .ov-hof{padding:1rem;margin-bottom:1rem}
}
@media (max-width:600px){
  .nav-logo{display:none}
  .nav{padding-left:.4rem}
  .hof-switch{margin-right:auto}
  .hof-switch a,.hof-switch span{padding:.5rem .62rem;font-size:.76rem}
}

/* ---------- Thüringen-Bausteine ---------- */
.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:1rem}
a.card{text-decoration:none;color:inherit;transition:transform .6s var(--ease)}
a.card:hover{transform:translateY(-4px)}
.card .ev-ort{font-weight:600;color:var(--fir-2);margin-bottom:.4rem}
.orte{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
.ort>.bezel{height:100%}
.ort .core{display:flex;flex-direction:column}
.ort img{width:100%;aspect-ratio:16/9;object-fit:cover}
.ort-t{padding:1.6rem 1.7rem 1.8rem}
.ort h3{font-size:clamp(1.8rem,3vw,2.6rem);margin:1rem 0 .3rem}
.ort-addr{font-weight:600;color:var(--fir-2)}
.ort-t>p{color:var(--ink-2)}
.ort-hours{list-style:none;padding:0;margin:0 0 1.4rem;border-top:1px solid var(--line)}
.ort-hours li{padding:.55rem 0;border-bottom:1px solid var(--line);font-size:.95rem}
.ort-acts{display:flex;flex-wrap:wrap;gap:.6rem;margin:0}
.fact ul{padding-left:1.1rem;margin:.6rem 0 1rem;color:var(--ink-2);font-size:.95rem}
.fact .ort-acts{margin-top:1rem}
.orte-mini{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-top:2rem;scroll-margin-top:7rem}
.ort-mini{padding:1.2rem 1.3rem;border-radius:1.3rem;background:var(--paper);box-shadow:inset 0 0 0 1px var(--line);font-size:.93rem}
.ort-mini h3{font-size:1.4rem;margin-bottom:.5rem}
.ort-mini p{margin:0 0 .5rem;color:var(--ink-2)}
.ort-mini .ort-what{color:var(--ink)}
.ort-mini a{font-weight:600;color:var(--fir-2)}
.person{display:grid;grid-template-columns:160px 1fr;gap:1.6rem;align-items:center;max-width:640px;padding:1.2rem;border-radius:1.8rem;background:var(--paper);box-shadow:inset 0 0 0 1px var(--line)}
.person h3{font-size:1.8rem;margin:.8rem 0 .2rem}
.person p{margin:0 0 .4rem;color:var(--ink-2)}
.team-strip{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem}
.team-pic{margin:0}
.team-pic img{width:100%;aspect-ratio:1;object-fit:cover}
.sorten{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
.sorte{display:grid;grid-template-columns:150px 1fr;gap:1.4rem;align-items:start;padding:1.2rem;border-radius:1.8rem;background:var(--paper);box-shadow:inset 0 0 0 1px var(--line)}
.sorte h3{font-size:1.8rem;margin-bottom:.6rem}
.sorte p{color:var(--ink-2);font-size:.95rem}
.cross{padding:0 0 clamp(4rem,8vw,7rem)}
.cross-card{display:block;text-decoration:none;color:#fff}
.cross-card .core{position:relative;min-height:clamp(380px,38vw,520px);background:#14261c}
.cross-card img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform 1.4s var(--ease)}
.cross-card:hover img{transform:scale(1.04)}
.cross-card .core::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(12,24,17,.88) 0%,rgba(12,24,17,.55) 45%,rgba(12,24,17,0) 80%)}
.cross-t{position:relative;z-index:2;max-width:34rem;padding:clamp(1.8rem,4vw,3.5rem)}
.cross-t h2{font-size:clamp(2.2rem,4.5vw,3.8rem);margin:1.2rem 0 1rem}
.cross-t h2 em{font-style:italic;color:#CFE3D2}
.cross-t p{color:rgba(255,255,255,.85);margin-bottom:1.6rem}
.th-next{text-decoration:none}
.th-next .next-card{display:grid;gap:.3rem;padding:1.4rem 1.5rem;border-radius:1.4rem;background:rgba(255,255,255,.12);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);box-shadow:inset 0 0 0 1px rgba(255,255,255,.25);color:#fff;margin-top:.8rem}
.next-card b{font:500 .74rem var(--sans);letter-spacing:.14em;text-transform:uppercase;color:rgba(255,255,255,.75)}
.next-card strong{font:400 1.6rem/1.1 var(--serif)}
.next-card span{font-size:.9rem;color:rgba(255,255,255,.8)}
a.zoom{text-decoration:none}

/* ---------- Portal tannenhoefe.de ---------- */
.portal{background:var(--bg)}
.p-top{position:fixed;top:1rem;left:50%;transform:translateX(-50%);z-index:60;display:flex;align-items:center;gap:1.2rem;padding:.4rem .4rem .4rem 1.3rem;border-radius:999px;background:rgba(251,249,244,.78);backdrop-filter:blur(18px) saturate(1.4);-webkit-backdrop-filter:blur(18px) saturate(1.4);box-shadow:0 0 0 1px var(--line),0 18px 40px -22px rgba(0,0,0,.45);width:max-content;max-width:calc(100% - 2rem)}
.p-brand{display:flex;align-items:baseline;gap:.45rem;text-decoration:none;color:var(--ink)}
.p-brand b{font:420 1.3rem/1 var(--serif);letter-spacing:-.02em}
.p-brand span{font-size:.78rem;color:var(--ink-2)}
.p-quick{display:flex;gap:.25rem}
.p-quick a{padding:.55rem .95rem;border-radius:999px;font:600 .82rem/1 var(--sans);text-decoration:none;color:#fff}
.hs-werder{--c:#1D3A2B}.hs-thueringen{--c:#1E3F48}
.p-quick a,.p-tag,.p-th{background:var(--c)}
.hofwahl{position:relative;display:flex;height:100svh;min-height:600px;background:#0f1d16}
.hof{position:relative;flex:1 1 0;overflow:hidden;color:#fff;display:flex;align-items:flex-end;transition:flex-grow .9s var(--ease)}
.hof-media{position:absolute;inset:0}
.hof-media img{width:100%;height:100%;object-fit:cover;transform:scale(1.05);transition:transform 1.6s var(--ease)}
.hof::after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(180deg,rgba(10,20,14,.35) 0%,rgba(10,20,14,.05) 30%,rgba(10,20,14,.82) 100%)}
.hof-thueringen::after{background:linear-gradient(180deg,rgba(9,22,28,.35) 0%,rgba(9,22,28,.05) 30%,rgba(9,22,28,.85) 100%)}
.hof-in{position:relative;z-index:2;width:100%;padding:0 clamp(1.4rem,4vw,4rem) clamp(2rem,6vh,4.5rem);display:flex;flex-direction:column;align-items:flex-start}
.hof-name{font-size:clamp(2.8rem,6vw,6.4rem);line-height:.92;font-weight:330;letter-spacing:-.045em;margin:1rem 0 .9rem}
.hof-name em{font-style:italic;font-weight:300;color:#CFE3D2}
.hof-thueringen .hof-name em{color:#CBE2E6}
.hof-lead{max-width:36ch;color:rgba(255,255,255,.86);margin-bottom:1rem}
.hof-season{display:inline-flex;align-items:center;gap:.55rem;padding:.5rem 1rem .5rem .75rem;border-radius:999px;background:var(--berry);font-size:.9rem;font-weight:600;margin:0 0 1.2rem;box-shadow:0 10px 24px -12px rgba(168,57,42,.9)}
.hof-season .tree{width:1.05rem;height:1.05rem;fill:currentColor}
.hof-pills{display:flex;flex-wrap:wrap;gap:.4rem;margin-bottom:1.4rem;position:relative;z-index:3}
.hof-pills a{padding:.45rem .9rem;border-radius:999px;background:rgba(255,255,255,.14);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);box-shadow:inset 0 0 0 1px rgba(255,255,255,.28);color:#fff;text-decoration:none;font-size:.85rem;font-weight:500;transition:background .4s var(--ease)}
.hof-pills a:hover{background:rgba(255,255,255,.26)}
.hof-cta{background:#fff;color:var(--ink);font-size:1rem;position:static}
.hof-cta .ic{background:rgba(0,0,0,.07)}
.hof-cta::before{content:"";position:absolute;inset:0;z-index:1}
.hof-in>*:not(.hof-cta){position:relative;z-index:2}
.hof-in>.hof-pills{z-index:3}
.hof-last{align-self:flex-start;margin-bottom:.8rem;padding:.38rem .8rem;border-radius:999px;background:#fff;color:var(--ink);font:600 .7rem/1 var(--sans);letter-spacing:.12em;text-transform:uppercase}
.hof-or{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);z-index:5;pointer-events:none;transition:left .9s var(--ease)}
.hof-or span{display:grid;place-items:center;width:4.4rem;height:4.4rem;border-radius:50%;background:var(--bg);color:var(--ink);font:italic 400 1.2rem var(--serif);box-shadow:0 12px 30px -10px rgba(0,0,0,.5)}
@media (hover:hover) and (min-width:768px){
  .hof:hover{flex-grow:1.35}
  .hof:hover .hof-media img{transform:scale(1)}
  .hofwahl:has(.hof-werder:hover) .hof-or{left:57.5%}
  .hofwahl:has(.hof-thueringen:hover) .hof-or{left:42.5%}
}
.p-season{padding:clamp(4.5rem,9vw,8rem) 0 clamp(2rem,4vw,3rem)}
.p-ev-list{display:grid;gap:.6rem}
.p-ev{display:grid;grid-template-columns:7.5rem 10rem 1fr auto;align-items:center;gap:1rem;padding:1rem 1rem 1rem 1.2rem;border-radius:1.3rem;background:var(--paper);box-shadow:inset 0 0 0 1px var(--line);text-decoration:none;color:var(--ink);transition:transform .5s var(--ease),box-shadow .5s var(--ease)}
.p-ev:hover{transform:translateX(4px);box-shadow:inset 0 0 0 1px var(--line-2),var(--shadow)}
.p-ev b{font-weight:600;color:var(--ink-2);font-size:.92rem}
.p-ev>span:not(.p-tag):not(.ic){font:400 1.25rem/1.2 var(--serif)}
.p-ev .ic{background:rgba(29,58,43,.07)}
.p-tag{justify-self:start;padding:.36rem .75rem;border-radius:999px;color:#fff;font:600 .72rem/1 var(--sans);letter-spacing:.04em}
.p-table{overflow-x:auto;border-radius:1.6rem;background:var(--paper);box-shadow:inset 0 0 0 1px var(--line),var(--shadow)}
.p-table table{width:100%;border-collapse:collapse;min-width:560px}
.p-table th,.p-table td{padding:.95rem 1.2rem;text-align:left;border-bottom:1px solid var(--line);vertical-align:middle}
.p-table tr:last-child>*{border-bottom:0}
.p-table tbody th{font:400 1.12rem/1.25 var(--serif);width:32%}
.p-th{display:inline-block;padding:.5rem .95rem;border-radius:999px;color:#fff;text-decoration:none;font:600 .85rem/1 var(--sans)}
.p-table td a{display:flex;align-items:center;gap:.6rem;text-decoration:none;color:var(--ink);font-size:.93rem}
.p-table td a:hover span{text-decoration:underline}
.p-table td svg{flex:none;width:1.5rem;height:1.5rem;padding:.25rem;border-radius:50%;background:var(--fir-soft);fill:none;stroke:var(--fir);stroke-width:2}
.p-table td.no{color:var(--ink-3);font-size:.88rem}
.p-near{padding-top:0}
.p-near-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
.p-near-card{display:flex;flex-direction:column;align-items:flex-start;gap:.9rem;padding:clamp(1.5rem,3vw,2.4rem);border-radius:1.8rem;background:var(--paper);box-shadow:inset 0 0 0 1px var(--line);text-decoration:none;color:var(--ink);transition:transform .5s var(--ease)}
.p-near-card:hover{transform:translateY(-4px)}
.p-near-card h3{font-size:clamp(1.6rem,2.6vw,2.2rem)}
.p-near-card p{color:var(--ink-2);margin:0}
.p-near-card .btn{margin-top:auto}
.p-family{padding-top:clamp(3rem,6vw,5rem)}
.p-foot .f-top{grid-template-columns:1.3fr 1fr 1fr}
.p-404{padding-top:10rem}
@media (max-width:1024px){
  .p-foot .f-top{grid-template-columns:1fr}
}
@media (max-width:767px){
  .p-top{top:.7rem;padding-left:1rem;gap:.6rem}
  .p-brand span{display:none}
  .p-quick a{padding:.5rem .7rem;font-size:.76rem}
  .hofwahl{flex-direction:column;height:auto;min-height:0}
  .hof{min-height:calc(50svh - 1rem)}
  .hof:first-child{padding-top:4.2rem;min-height:calc(50svh + 2.2rem)}
  .hof-in{padding:1.4rem 1.2rem 1.5rem}
  .hof-name{font-size:clamp(2.4rem,11vw,3.4rem);margin:.6rem 0 .6rem}
  .hof-name br{display:none}
  .hof-lead,.hof-pills{display:none}
  .hof-season{margin-bottom:.9rem;font-size:.82rem}
  .hof-or{top:calc(50svh + 1.2rem);left:auto;right:1.2rem;transform:translateY(-50%)}
  .hof-or span{width:3.2rem;height:3.2rem;font-size:1rem}
  .p-ev{grid-template-columns:auto 1fr auto;grid-template-areas:"tag date ic" "title title ic";gap:.5rem .8rem}
  .p-ev .p-tag{grid-area:tag}.p-ev b{grid-area:date}.p-ev .ic{grid-area:ic}
  .p-ev>span:not(.p-tag):not(.ic){grid-area:title}
  .p-near-grid,.orte,.orte-mini,.sorten{grid-template-columns:1fr}
  .team-strip{grid-template-columns:1fr 1fr}
  .person{grid-template-columns:100px 1fr;gap:1rem}
  .sorte{grid-template-columns:90px 1fr;gap:1rem}
  .cross-card .core::after{background:linear-gradient(180deg,rgba(12,24,17,.2) 0%,rgba(12,24,17,.9) 70%)}
  .cross-card .core{display:flex;align-items:flex-end;min-height:480px}
}
@media (max-width:767px){
  .p-table{overflow:visible;background:none;box-shadow:none;border-radius:0}
  .p-table table{min-width:0}
  .p-table thead{display:none}
  .p-table tr{display:grid;grid-template-columns:1fr 1fr;gap:.5rem;margin-bottom:.7rem;padding:1rem;border-radius:1.3rem;background:var(--paper);box-shadow:inset 0 0 0 1px var(--line)}
  .p-table tbody th{grid-column:1/-1;width:auto;padding:0 0 .3rem;border:0}
  .p-table td{padding:.6rem .7rem;border:0;border-radius:.9rem;background:var(--bg)}
  .p-table td::before{content:attr(data-l);display:block;margin-bottom:.35rem;font:600 .66rem/1 var(--sans);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-3)}
  .p-table td a{align-items:flex-start;font-size:.86rem}
  .p-table td svg{width:1.2rem;height:1.2rem;padding:.18rem}
}
.hof-thueringen .f-mascot{display:none}
