/* Winter Silence — Still & Strong Yoga Retreat Landing Page
   Winter sub-palette documented in Still and Strong CI/02-Brand-Kit/brand-kit.md §1a */

@font-face{
  font-family:'DM Serif Display';
  src:url('../fonts/DMSerifDisplay-Regular.ttf') format('truetype');
  font-weight:400; font-style:normal; font-display:swap;
}
@font-face{
  font-family:'Barlow Condensed';
  src:url('../fonts/BarlowCondensed-Regular.ttf') format('truetype');
  font-weight:400; font-style:normal; font-display:swap;
}
@font-face{
  font-family:'Barlow Condensed';
  src:url('../fonts/BarlowCondensed-Medium.ttf') format('truetype');
  font-weight:500; font-style:normal; font-display:swap;
}
@font-face{
  font-family:'Barlow Condensed';
  src:url('../fonts/BarlowCondensed-SemiBold.ttf') format('truetype');
  font-weight:600; font-style:normal; font-display:swap;
}

:root{
  /* Winter Silence sub-palette (see brand-kit.md 1a) */
  --night:#1B1B3A;
  --dusk:#26365C;
  --glow:#E7A93F;
  --glow-soft:#F4C874;
  --snow:#F7F4EE;
  --berry:#9B3A3A;

  --bg:#100F24;
  --bg-alt:#17173A;
  --ink:#F7F4EE;
  --ink-soft:rgba(247,244,238,.72);
  --ink-faint:rgba(247,244,238,.5);
  --line:rgba(247,244,238,.14);
  --card-bg:rgba(247,244,238,.05);
  --card-border:rgba(247,244,238,.12);

  --font-display:'DM Serif Display',Georgia,serif;
  --font-body:'Barlow Condensed',Arial,sans-serif;

  --container:1180px;
}

*,*::before,*::after{box-sizing:border-box;}
html{scroll-behavior:smooth;}
@media (prefers-reduced-motion: reduce){ html{scroll-behavior:auto;} }

body{
  margin:0;
  background:var(--bg);
  color:var(--ink);
  font-family:var(--font-body);
  font-size:18px;
  line-height:1.5;
  -webkit-font-smoothing:antialiased;
}

img{max-width:100%; display:block;}
a{color:inherit;}
.container{max-width:var(--container); margin:0 auto; padding:0 24px;}

h1,h2,h3{font-family:var(--font-display); font-weight:400; margin:0; text-wrap:balance;}
p{margin:0;}

.visually-hidden{
  position:absolute; width:1px; height:1px; padding:0; margin:-1px;
  overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0;
}

a:focus-visible, button:focus-visible, .btn:focus-visible{
  outline:2px solid var(--glow-soft); outline-offset:3px;
}

/* ---------- NAV ---------- */
.site-nav{
  position:fixed; top:0; left:0; right:0; z-index:50;
  display:flex; align-items:center; justify-content:space-between;
  padding:10px 28px;
  transition:background-color .3s ease, padding .3s ease, box-shadow .3s ease;
}
.site-nav.is-scrolled{
  background:rgba(16,15,36,.92);
  backdrop-filter:blur(6px);
  padding:8px 28px;
  box-shadow:0 1px 0 var(--line);
}
.site-nav .logo-link{display:block; line-height:0;}
.site-nav .logo-link img{height:92px; width:auto; transition:height .3s ease; filter:drop-shadow(0 4px 16px rgba(0,0,0,.45));}
.site-nav.is-scrolled .logo-link img{height:46px;}
.nav-right{display:flex; align-items:center; gap:22px;}
.lang-switch{display:flex; gap:6px; font-size:13px; letter-spacing:.06em;}
.lang-switch a{
  padding:3px 7px; border-radius:2px; text-decoration:none;
  color:var(--ink-faint);
}
.lang-switch a[aria-current="true"]{color:var(--snow); font-weight:600;}
.lang-switch a:hover{color:var(--snow);}
.nav-cta{
  border:1px solid rgba(247,244,238,.5);
  padding:9px 18px; border-radius:2px;
  font-size:13px; letter-spacing:.1em; text-transform:uppercase;
  text-decoration:none; white-space:nowrap;
  transition:background-color .2s ease, color .2s ease, border-color .2s ease;
}
.nav-cta:hover{background:var(--glow); border-color:var(--glow); color:#241906;}
.nav-menu-toggle{display:none;}

/* ---------- HERO ---------- */
.hero{
  position:relative; min-height:100svh; display:flex; flex-direction:column; justify-content:flex-end;
  overflow:hidden; background:var(--bg);
}
.hero-bg{
  position:absolute; inset:0; z-index:0;
  background-image:url('../img/hero-brunnen.jpg');
  background-size:cover; background-position:center 38%;
  animation:heroSlowZoom 24s ease-in-out infinite alternate;
}
.hero-bg-2{
  position:absolute; inset:0; z-index:0;
  background-image:url('../img/schloss-aussen.jpg');
  background-size:cover; background-position:center 78%;
  opacity:0;
  animation:heroCrossfade 10s ease-in-out infinite, heroSlowZoom 28s ease-in-out infinite alternate;
}
.hero::before{
  content:""; position:absolute; inset:0; z-index:1;
  background:
    radial-gradient(ellipse 60% 40% at 15% 6%, rgba(231,169,63,.14), transparent 60%),
    linear-gradient(180deg, rgba(20,16,40,.42) 0%, rgba(17,14,34,.38) 45%, rgba(9,8,20,.94) 100%);
}
@keyframes heroSlowZoom{ from{ transform:scale(1); } to{ transform:scale(1.22); } }
@keyframes heroCrossfade{
  0%{opacity:0;} 30%{opacity:0;} 50%{opacity:1;} 80%{opacity:1;} 100%{opacity:0;}
}
@media (prefers-reduced-motion: reduce){
  .hero-bg{ animation:none; transform:scale(1); }
  .hero-bg-2{ animation:none; opacity:0; transform:scale(1); }
}
.snowfall{position:absolute; inset:0; overflow:hidden; pointer-events:none; z-index:2;}
.flake{
  position:absolute; left:var(--x); color:#fff; font-size:var(--s); opacity:var(--o);
  text-shadow:0 0 8px rgba(255,255,255,.95), 0 0 3px rgba(255,255,255,1), 0 1px 3px rgba(10,8,20,.5);
  -webkit-text-stroke:.6px rgba(255,255,255,.9); line-height:1;
  animation:fall var(--dur) linear infinite; animation-delay:var(--delay);
}
@keyframes fall{
  0%{ top:-12%; transform:translateX(0) rotate(0deg); }
  50%{ top:55%; transform:translateX(14px) rotate(180deg); }
  100%{ top:122%; transform:translateX(-6px) rotate(360deg); }
}
@media (prefers-reduced-motion: reduce){ .flake{ animation:none; top:15%; } }

.hero-copy{position:relative; z-index:3; padding:200px 0 64px; max-width:640px;}
.hero-copy > *{opacity:0; animation:revealUp .8s cubic-bezier(.16,.68,.32,1) forwards;}
.hero-copy > *:nth-child(1){animation-delay:.3s;}
.hero-copy > *:nth-child(2){animation-delay:.5s;}
.hero-copy > *:nth-child(3){animation-delay:.7s;}
.hero-copy > *:nth-child(4){animation-delay:.9s;}
.hero-copy > *:nth-child(5){animation-delay:1.05s;}
@keyframes revealUp{ from{opacity:0; transform:translateY(22px);} to{opacity:1; transform:translateY(0);} }
@media (prefers-reduced-motion: reduce){
  .hero-copy > *{ opacity:1; animation:none; transform:none; }
}
.hero-kicker{
  font-size:13px; letter-spacing:.22em; text-transform:uppercase; color:var(--glow-soft);
  margin:0 0 22px; display:inline-flex; align-items:center; gap:10px;
  background:rgba(196,181,165,.16); border:1px solid rgba(247,244,238,.22);
  backdrop-filter:blur(6px); -webkit-backdrop-filter:blur(6px);
  padding:9px 18px 9px 14px; border-radius:2px;
}
.hero-kicker::before{
  content:""; width:8px; height:8px; border-radius:50%; background:var(--berry);
  box-shadow:0 0 0 3px rgba(155,58,58,.25); display:inline-block; flex:none;
}
.hero-h1{
  font-size:clamp(48px,8vw,92px); line-height:.97; margin:0 0 20px; color:var(--snow);
  background-image:linear-gradient(100deg, var(--snow) 42%, #fff 48%, var(--glow-soft) 50%, #fff 52%, var(--snow) 58%);
  background-size:320% 100%; background-position:230% 0;
  -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent;
  animation:revealUp .8s cubic-bezier(.16,.68,.32,1) .5s forwards, shine 10s ease-in-out 1.4s infinite;
}
@keyframes shine{
  0%{ background-position:230% 0; }
  45%{ background-position:-60% 0; }
  100%{ background-position:-60% 0; }
}
@media (prefers-reduced-motion: reduce){
  .hero-h1{ animation:none; background-position:0 0; -webkit-text-fill-color:var(--snow); }
}
.hero-sub{font-size:20px; line-height:1.5; color:var(--ink-soft); margin:0 0 30px; max-width:520px;}
.hero-meta{display:flex; flex-wrap:wrap; gap:30px; margin-bottom:34px;}
.hero-meta dt{
  font-size:12px; letter-spacing:.1em; text-transform:uppercase; color:var(--ink-faint);
  margin:0 0 4px;
}
.hero-meta dd{font-family:var(--font-display); font-size:19px; margin:0;}
.badge{
  display:inline-block; background:var(--berry); color:var(--snow);
  font-family:var(--font-body); font-size:10.5px; letter-spacing:.08em; text-transform:uppercase;
  padding:3px 8px; border-radius:2px; margin-left:8px; vertical-align:3px;
}
.hero-actions{display:flex; gap:16px; flex-wrap:wrap; align-items:flex-start;}
.hero-signup-wrap{display:flex; flex-direction:column; gap:8px;}
.hero-signup{display:flex; gap:10px; flex-wrap:wrap;}
.hero-signup input{
  background:rgba(247,244,238,.08); border:1px solid rgba(247,244,238,.5); border-radius:2px;
  color:var(--snow); font-family:var(--font-body); font-size:14px; padding:0 16px; min-width:220px;
}
.hero-signup input::placeholder{color:var(--ink-faint);}
.hero-signup input:focus{outline:none; border-color:var(--snow); background:rgba(247,244,238,.14);}
.hero-signup .btn{border:1px solid rgba(247,244,238,.5); background:transparent; cursor:pointer;}
.hero-signup .btn:disabled{opacity:.6; cursor:default; transform:none;}
.hero-signup-msg{font-size:13px; color:var(--snow); margin:0; min-height:1em;}

.btn{
  display:inline-block; font-family:var(--font-body); font-size:14px; font-weight:600;
  letter-spacing:.08em; text-transform:uppercase; text-decoration:none;
  padding:15px 30px; border-radius:2px; border:1px solid transparent;
  transition:transform .15s ease, background-color .2s ease, border-color .2s ease, color .2s ease;
}
.btn:hover{transform:translateY(-1px);}
.btn-primary{background:var(--glow); color:#241906;}
.btn-primary:hover{background:var(--glow-soft);}
.btn-ghost{border-color:rgba(247,244,238,.5); color:var(--snow);}
.btn-ghost:hover{border-color:var(--snow); background:rgba(247,244,238,.08);}

.scroll-cue{
  position:relative; z-index:2; align-self:center; margin-bottom:26px;
  font-size:11px; letter-spacing:.16em; text-transform:uppercase; color:var(--ink-faint);
  display:flex; flex-direction:column; align-items:center; gap:8px; text-decoration:none;
}
.scroll-cue::after{
  content:""; width:1px; height:34px; background:linear-gradient(var(--glow-soft), transparent);
}

/* ---------- SECTION SCAFFOLDING ---------- */
section{padding:100px 0;}
.section-alt{background:var(--bg-alt);}
.eyebrow{
  font-size:12.5px; letter-spacing:.2em; text-transform:uppercase; color:var(--glow-soft);
  margin:0 0 14px; display:flex; align-items:center; gap:10px;
}
.eyebrow::before{content:""; width:24px; height:1px; background:var(--glow-soft); display:inline-block;}
.section-head{max-width:680px; margin:0 0 54px;}
.section-head h2{font-size:clamp(32px,4.5vw,46px); margin:0 0 16px;}
.section-head p{font-size:19px; color:var(--ink-soft); line-height:1.6;}
.section-head.centered{margin-left:auto; margin-right:auto; text-align:center;}
.section-head.centered .eyebrow{justify-content:center;}
.section-head.centered .eyebrow::before{display:none;}

/* ---------- INTRO / ABOUT RETREAT QUOTE ---------- */
.intro{padding:110px 0;}
.intro-inner{max-width:760px; margin:0 auto; text-align:center;}
.intro blockquote{
  margin:0 0 28px; font-family:var(--font-display); font-size:clamp(24px,3.2vw,32px);
  line-height:1.45; color:var(--snow);
}
.intro cite{
  display:block; font-style:normal; font-size:13px; letter-spacing:.1em;
  text-transform:uppercase; color:var(--ink-faint);
}

/* ---------- TEAM ---------- */
.team-grid{display:grid; grid-template-columns:1fr; gap:50px; align-items:start;}
@media(min-width:860px){ .team-grid{grid-template-columns:.85fr 1.15fr;} }
.team-photo{border-radius:4px; overflow:hidden;}
.team-certs{
  display:flex; flex-direction:column; align-items:center; gap:14px;
  margin-top:22px; padding-top:22px; border-top:1px solid var(--line);
}
.team-certs-label{
  font-size:11.5px; letter-spacing:.12em; text-transform:uppercase; color:var(--ink-faint);
}
.team-certs-row{display:flex; align-items:center; justify-content:center; gap:20px;}
.team-certs-row img{
  width:56px; height:56px; border-radius:50%; object-fit:cover;
  box-shadow:0 0 0 1px rgba(247,244,238,.18);
  opacity:.9; transition:opacity .2s ease, transform .2s ease;
}
.team-certs-row img:hover{opacity:1; transform:translateY(-2px);}
.team-photo img{width:100%; height:auto; display:block;}
.team-cards{display:grid; gap:28px;}
@media(min-width:560px){ .team-cards{grid-template-columns:1fr 1fr;} }
.team-card{
  background:var(--card-bg); border:1px solid var(--card-border); border-radius:4px;
  padding:28px 26px;
}
.team-card h3{font-size:24px; margin:0 0 3px;}
.team-card .role{
  font-size:13px; letter-spacing:.06em; text-transform:uppercase; color:var(--glow-soft);
  margin:0 0 16px; display:block;
}
.team-card ul{margin:0; padding-left:18px; font-size:15.5px; color:var(--ink-soft); line-height:1.65;}
.team-card li{margin-bottom:6px;}
.team-card li:last-child{margin-bottom:0;}

/* ---------- PROGRAM TIMELINE ---------- */
.program-days-wrap{position:relative;}
.program-days{
  display:flex; gap:24px; overflow-x:auto; scroll-snap-type:x mandatory;
  padding:8px calc(50% - 175px) 28px;
  scrollbar-width:thin; scrollbar-color:rgba(247,244,238,.3) transparent;
  -webkit-overflow-scrolling:touch;
}
.program-days::-webkit-scrollbar{height:6px;}
.program-days::-webkit-scrollbar-thumb{background:rgba(247,244,238,.25); border-radius:3px;}
.program-day{
  flex:0 0 min(84vw,350px); scroll-snap-align:center;
  background:var(--card-bg); border:1px solid var(--card-border); border-radius:4px;
  padding:30px 26px 26px; opacity:.42; filter:brightness(.7) saturate(.85); transform:scale(.94);
  transition:opacity .4s ease, filter .4s ease, transform .4s ease, border-color .4s ease;
}
.program-day.is-active{
  opacity:1; filter:brightness(1.06) saturate(1); transform:scale(1); border-color:rgba(231,169,63,.4);
  box-shadow:0 24px 50px -22px rgba(0,0,0,.5);
}
@media (prefers-reduced-motion: reduce){
  .program-day{ transition:none; }
}
.day-nav-btn{
  position:absolute; top:50%; transform:translateY(-50%); z-index:5; display:none;
  background:rgba(23,23,58,.75); border:1px solid var(--card-border); color:var(--snow);
  width:44px; height:44px; border-radius:50%; cursor:pointer;
  align-items:center; justify-content:center; font-size:18px; line-height:1;
  backdrop-filter:blur(4px); -webkit-backdrop-filter:blur(4px);
  transition:background-color .2s ease, border-color .2s ease;
}
@media(min-width:900px){ .day-nav-btn{display:flex;} }
.day-nav-btn:hover{background:rgba(231,169,63,.25); border-color:var(--glow);}
.day-nav-prev{left:-8px;}
.day-nav-next{right:-8px;}
.program-day-head{
  display:flex; align-items:baseline; gap:16px; margin-bottom:22px;
  padding-bottom:18px; border-bottom:1px solid var(--line);
}
.program-day-head .date{font-family:var(--font-display); font-size:26px; color:var(--snow);}
.program-day-head .label{font-size:14px; letter-spacing:.06em; text-transform:uppercase; color:var(--glow-soft);}

/* Timeline */
.program-rows{position:relative; display:grid; gap:22px; padding-left:34px;}
.program-rows::before{
  content:""; position:absolute; left:4px; top:7px; bottom:7px; width:1px; background:var(--line);
}
.program-row{position:relative; display:grid; grid-template-columns:100px 1fr; gap:18px; font-size:16px;}
.program-row::before{
  content:""; position:absolute; left:-34px; top:6px; width:9px; height:9px; border-radius:50%;
  background:var(--glow); box-sizing:border-box; z-index:1;
}
.program-row .time{
  font-family:var(--font-body); font-weight:600; color:var(--glow-soft);
  font-variant-numeric:tabular-nums; white-space:nowrap;
}
.program-row .what{color:var(--ink-soft);}
.program-row .what b{color:var(--snow); font-weight:500;}

.program-note{
  margin-top:44px; padding:22px 26px; border-left:2px solid var(--berry);
  background:var(--card-bg); font-size:15.5px; color:var(--ink-soft); border-radius:0 4px 4px 0;
}
.program-note b{color:var(--snow);}

/* ---------- TESTIMONIALS ---------- */
.testimonials-grid{display:grid; grid-template-columns:1fr; gap:22px;}
@media(min-width:700px){ .testimonials-grid{grid-template-columns:1fr 1fr;} }
@media(min-width:1040px){ .testimonials-grid{grid-template-columns:repeat(3,1fr);} }
.testimonial-card{
  background:var(--card-bg); border:1px solid var(--card-border); border-radius:4px;
  padding:30px 28px; display:flex; flex-direction:column; gap:16px;
  transition:background-color .3s ease, border-color .3s ease, transform .3s ease, box-shadow .3s ease;
}
.testimonial-card:hover{
  background:var(--snow); border-color:var(--snow); transform:translateY(-7px);
  box-shadow:0 26px 50px -18px rgba(0,0,0,.4);
}
.testimonial-stars{color:var(--glow); font-size:14px; letter-spacing:2px;}
.testimonial-quote{
  font-family:var(--font-display); font-size:18px; line-height:1.5; color:var(--snow);
  margin:0; flex:1; transition:color .3s ease;
}
.testimonial-card:hover .testimonial-quote{color:var(--night);}
.testimonial-source{
  font-size:12.5px; letter-spacing:.12em; text-transform:uppercase; color:var(--ink-faint);
  transition:color .3s ease;
}
.testimonial-card:hover .testimonial-source{color:rgba(27,27,58,.6);}
@media (prefers-reduced-motion: reduce){
  .testimonial-card{transition:background-color .3s ease, border-color .3s ease;}
  .testimonial-card:hover{transform:none;}
}

/* ---------- PRICING ---------- */
.price-grid{display:grid; grid-template-columns:1fr; gap:26px;}
@media(min-width:860px){ .price-grid{grid-template-columns:repeat(3,1fr);} }
.price-card{
  background:var(--card-bg); border:1px solid var(--card-border); border-radius:4px;
  padding:32px 28px; display:flex; flex-direction:column; gap:18px;
}
.price-card[data-lightbox-img]{
  cursor:zoom-in; transition:border-color .25s ease, transform .25s ease;
}
.price-card[data-lightbox-img]:hover, .price-card[data-lightbox-img]:focus-visible{
  border-color:rgba(231,169,63,.5); transform:translateY(-3px);
}
.price-card.is-featured{border-color:var(--glow); position:relative;}
.price-card .room-name{font-family:var(--font-display); font-size:23px;}
.price-card .room-amount{font-family:var(--font-display); font-size:40px; color:var(--snow);}
.price-card .room-amount span{font-family:var(--font-body); font-size:14px; color:var(--ink-faint); margin-left:6px;}
.price-card .room-desc{font-size:14.5px; color:var(--ink-soft); line-height:1.55;}
.price-card .room-photo-hint{
  font-size:11.5px; letter-spacing:.1em; text-transform:uppercase; color:var(--glow-soft);
  display:inline-flex; align-items:center; gap:6px; margin-top:auto;
}
.price-card .room-photo-hint::before{content:"\1F5BC"; font-size:12px;}
.price-includes{
  margin:52px 0 0; padding:36px 36px; background:var(--card-bg); border:1px solid var(--card-border);
  border-radius:4px; display:grid; gap:34px;
  background:
    radial-gradient(ellipse 70% 100% at 0% 0%, rgba(231,169,63,.06), transparent 60%),
    var(--card-bg);
}
@media(min-width:760px){ .price-includes{grid-template-columns:1.2fr 1fr;} }
.price-includes h3{
  font-size:13px; letter-spacing:.14em; text-transform:uppercase; color:var(--glow-soft);
  margin:0 0 20px; font-family:var(--font-body); font-weight:600;
}
.price-includes ul{margin:0; padding:0; list-style:none; display:grid; gap:14px;}
.price-includes li{
  display:flex; align-items:flex-start; gap:12px; font-size:16px; color:var(--ink-soft); line-height:1.4;
}
.price-includes li::before{
  content:"\2713"; flex:none; width:20px; height:20px; border-radius:50%;
  background:rgba(231,169,63,.14); color:var(--glow-soft); font-size:12px;
  display:flex; align-items:center; justify-content:center; margin-top:1px;
}
.price-includes .storno{
  font-size:14.5px; color:var(--ink-faint); line-height:1.65; padding-top:2px;
  border-top:1px solid var(--line);
}
@media(min-width:760px){ .price-includes .storno{border-top:none; padding-left:30px; border-left:1px solid var(--line); padding-top:0;} }
.price-includes .storno b{color:var(--ink-soft);}

/* ---------- GALLERY ---------- */
.gallery{
  display:grid; grid-template-columns:repeat(2,1fr); gap:14px;
}
@media(min-width:640px){ .gallery{grid-template-columns:repeat(3,1fr);} }
@media(min-width:980px){ .gallery{grid-template-columns:repeat(4,1fr);} }
.gallery figure{
  position:relative; margin:0; border-radius:3px; overflow:hidden; aspect-ratio:3/4;
  box-shadow:inset 0 0 0 0 rgba(231,169,63,0);
  transition:box-shadow .35s ease;
}
.gallery figure.wide{aspect-ratio:4/3;}
.gallery figure:hover, .gallery figure:focus-within{
  box-shadow:inset 0 0 0 2px rgba(231,169,63,.55);
}
.gallery img{
  width:100%; height:100%; object-fit:cover; display:block; cursor:zoom-in;
  transition:transform .6s cubic-bezier(.16,.68,.32,1), filter .5s ease;
}
.gallery figure:hover img, .gallery figure:focus-within img{
  transform:scale(1.09); filter:brightness(1.04);
}
.gallery figcaption{
  position:absolute; left:12px; right:12px; bottom:10px; z-index:2;
  font-size:12.5px; letter-spacing:.05em; color:var(--snow);
  transform:translateY(4px); opacity:.88; transition:transform .35s ease, opacity .35s ease;
}
.gallery figure:hover figcaption, .gallery figure:focus-within figcaption{
  transform:translateY(0); opacity:1;
}
.gallery figure::after{
  content:""; position:absolute; inset:0; pointer-events:none;
  background:linear-gradient(180deg, transparent 55%, rgba(9,8,20,.78) 100%);
  transition:background .35s ease;
}
@media (prefers-reduced-motion: reduce){
  .gallery img, .gallery figcaption{ transition:none; }
  .gallery figure:hover img, .gallery figure:focus-within img{ transform:none; }
}

/* ---------- LIGHTBOX ---------- */
.lightbox{
  position:fixed; inset:0; z-index:100; display:none; align-items:center; justify-content:center;
  background:rgba(9,8,20,.94); backdrop-filter:blur(5px); -webkit-backdrop-filter:blur(5px);
  padding:60px 24px;
}
.lightbox.is-open{display:flex;}
.lightbox-figure{position:relative; max-width:100%; max-height:100%; display:flex; flex-direction:column; align-items:center; gap:16px;}
.lightbox img{
  max-width:min(1150px,90vw); max-height:78vh; width:auto; height:auto;
  border-radius:2px; box-shadow:0 40px 90px -24px rgba(0,0,0,.65);
  animation:lbIn .25s ease;
}
/* Single-image mode (e.g. room photos from pricing cards): keep the page visible behind, smaller image */
.lightbox.is-single{
  background:rgba(9,8,20,.4); backdrop-filter:blur(2px); -webkit-backdrop-filter:blur(2px);
}
.lightbox.is-single img{
  max-width:min(620px,72vw); max-height:60vh;
  box-shadow:0 30px 70px -20px rgba(0,0,0,.55), 0 0 0 1px rgba(247,244,238,.12);
}
@keyframes lbIn{ from{opacity:0; transform:scale(.97);} to{opacity:1; transform:scale(1);} }
.lightbox-caption{font-size:14px; letter-spacing:.05em; color:var(--ink-soft);}
.lightbox-btn{
  position:fixed; background:rgba(247,244,238,.08); border:1px solid rgba(247,244,238,.22);
  color:var(--snow); width:44px; height:44px; border-radius:50%; cursor:pointer;
  display:flex; align-items:center; justify-content:center; font-size:18px; line-height:1;
  transition:background-color .2s ease, border-color .2s ease;
}
.lightbox-btn:hover{background:rgba(231,169,63,.22); border-color:var(--glow);}
.lightbox-close{top:22px; right:26px;}
.lightbox-prev{left:22px; top:50%; transform:translateY(-50%);}
.lightbox-next{right:22px; top:50%; transform:translateY(-50%);}
@media(max-width:700px){
  .lightbox-prev{left:10px;} .lightbox-next{right:10px;}
  .lightbox-btn{width:38px; height:38px; font-size:16px;}
}

/* ---------- CONTACT ---------- */
.contact{
  position:relative; text-align:center; background:var(--night);
}
.contact::before{
  content:""; position:absolute; inset:0;
  background-image:url('../img/contact-bg.jpg');
  background-size:cover; background-position:center 30%;
  opacity:.22;
}
.contact::after{
  content:""; position:absolute; inset:0;
  background:
    radial-gradient(ellipse 70% 60% at 50% 0%, rgba(231,169,63,.12), transparent 60%),
    linear-gradient(180deg, rgba(27,27,58,.65) 0%, rgba(27,27,58,.92) 100%);
}
.contact-inner{position:relative; z-index:1; max-width:620px; margin:0 auto;}
.contact h2{font-size:clamp(32px,4.5vw,48px); margin:0 0 18px;}
.contact p{font-size:19px; color:var(--ink-soft); margin:0 0 38px; line-height:1.6;}
.contact-actions{display:flex; flex-wrap:wrap; justify-content:center; gap:16px; margin-bottom:30px;}
.contact-alt{font-size:14px; color:var(--ink-faint);}
.contact-alt a{text-decoration:underline; text-underline-offset:3px;}

/* ---------- CHATBOT WIDGET ---------- */
.chatbot-widget{position:fixed; right:22px; bottom:22px; z-index:90; display:flex; flex-direction:column; align-items:flex-end; gap:12px;}
.chatbot-panel{
  position:relative;
  width:min(380px, calc(100vw - 32px));
  height:min(700px, calc(100vh - 160px));
  border-radius:16px; overflow:hidden;
  background:var(--card-bg); border:1px solid var(--card-border);
  box-shadow:0 20px 50px -12px rgba(0,0,0,.55), 0 0 0 1px rgba(255,255,255,.06);
  opacity:0; transform:translateY(10px) scale(.96); pointer-events:none;
  transition:opacity .22s ease, transform .22s ease;
}
.chatbot-widget.show-panel .chatbot-panel{opacity:1; transform:translateY(0) scale(1); pointer-events:auto;}
.chatbot-iframe{width:100%; height:100%; border:0; display:block;}
.chatbot-panel-close{
  position:absolute; top:10px; right:10px; z-index:1;
  width:30px; height:30px; border-radius:50%; border:none; cursor:pointer;
  background:rgba(10,10,10,.55); color:#fff;
  display:flex; align-items:center; justify-content:center;
  backdrop-filter:blur(4px); -webkit-backdrop-filter:blur(4px);
}
.chatbot-panel-close svg{width:16px; height:16px; display:block;}
.chatbot-panel-close:hover, .chatbot-panel-close:focus-visible{background:rgba(10,10,10,.75);}

.chatbot-options{
  display:flex; flex-direction:column; align-items:flex-end; gap:10px;
  margin-bottom:2px;
}
.chatbot-option{
  display:flex; align-items:center; gap:10px; text-decoration:none;
  background:var(--card-bg); border:1px solid var(--card-border); color:var(--snow);
  padding:10px 18px 10px 10px; border-radius:999px; cursor:pointer; font:inherit;
  box-shadow:0 10px 24px -6px rgba(0,0,0,.5);
  backdrop-filter:blur(6px); -webkit-backdrop-filter:blur(6px);
  opacity:0; transform:translateY(10px) scale(.9); pointer-events:none;
  transition:opacity .22s ease, transform .22s ease, border-color .2s ease;
}
.chatbot-widget.is-open:not(.show-panel) .chatbot-option{opacity:1; transform:translateY(0) scale(1); pointer-events:auto;}
.chatbot-widget.is-open:not(.show-panel) .chatbot-option:nth-child(1){transition-delay:.05s;}
.chatbot-widget.is-open:not(.show-panel) .chatbot-option:nth-child(2){transition-delay:0s;}
.chatbot-option:hover, .chatbot-option:focus-visible{border-color:rgba(231,169,63,.5);}
.chatbot-option .icon-circle{
  width:34px; height:34px; border-radius:50%; flex:none;
  display:flex; align-items:center; justify-content:center;
}
.chatbot-option .icon-circle svg{width:18px; height:18px; display:block;}
.chatbot-option.is-whatsapp .icon-circle{background:#25D366;}
.chatbot-option.is-chat .icon-circle{background:var(--glow);}
.chatbot-option .label{font-size:14.5px; font-weight:500; white-space:nowrap;}

.chatbot-toggle{
  position:relative;
  width:58px; height:58px; border-radius:50%; flex:none;
  background:var(--glow); border:none; cursor:pointer;
  display:flex; align-items:center; justify-content:center;
  box-shadow:0 10px 26px -4px rgba(0,0,0,.45), 0 0 0 1px rgba(255,255,255,.08);
  transition:transform .2s ease, box-shadow .2s ease;
}
.chatbot-toggle:hover, .chatbot-toggle:focus-visible{
  transform:scale(1.08);
  box-shadow:0 14px 32px -4px rgba(0,0,0,.5), 0 0 0 1px rgba(255,255,255,.12);
}
.chatbot-toggle::before{
  content:''; position:absolute; inset:0; border-radius:50%;
  background:var(--glow); z-index:-1;
  animation:chatbot-glow-pulse 2.6s ease-out infinite;
}
.chatbot-widget.is-open .chatbot-toggle::before{display:none;}
@keyframes chatbot-glow-pulse{
  0%{transform:scale(1); opacity:.55;}
  100%{transform:scale(1.7); opacity:0;}
}
.chatbot-toggle svg{width:26px; height:26px; display:block; color:#241906;}
.chatbot-toggle .icon-close{display:none;}
.chatbot-widget.is-open .chatbot-toggle .icon-chat{display:none;}
.chatbot-widget.is-open .chatbot-toggle .icon-close{display:block;}

@media(max-width:600px){
  .chatbot-widget{right:16px; bottom:16px;}
  .chatbot-toggle{width:52px; height:52px;}
  .chatbot-toggle svg{width:23px; height:23px;}
  .chatbot-panel{height:min(640px, calc(100vh - 140px));}
}
@media (prefers-reduced-motion: reduce){
  .chatbot-toggle, .chatbot-panel, .chatbot-option{transition:none;}
  .chatbot-toggle::before{animation:none; display:none;}
}

/* ---------- FOOTER ---------- */
footer{padding:56px 0 40px; border-top:1px solid var(--line);}
.footer-grid{
  display:flex; flex-direction:column; gap:26px; align-items:center; text-align:center;
}
@media(min-width:760px){
  .footer-grid{flex-direction:row; justify-content:space-between; text-align:left;}
}
.footer-logo img{height:34px; width:auto;}
.footer-tagline{font-family:var(--font-display); font-size:15px; color:var(--ink-soft); max-width:360px;}
.footer-links{display:flex; gap:20px; font-size:14px;}
.footer-links a{text-decoration:none; color:var(--ink-soft);}
.footer-links a:hover{color:var(--snow);}
.footer-copy{font-size:12.5px; color:var(--ink-faint); margin-top:30px; text-align:center;}

/* ---------- RESPONSIVE NAV (MOBILE) ---------- */
@media(max-width:700px){
  .site-nav .logo-link img{height:56px;}
  .site-nav.is-scrolled .logo-link img{height:38px;}
  .hero-copy{padding-top:130px;}
}
@media(max-width:600px){
  .site-nav{padding:10px 18px;}
  .nav-right{gap:12px;}
  .nav-cta{padding:8px 12px; font-size:11px;}
  section{padding:70px 0;}
  .intro{padding:76px 0;}
  .program-row{grid-template-columns:84px 1fr;}
  .program-days{padding-left:8vw; padding-right:8vw;}
}

/* ==========================================================================
   SUBPAGES (FAQ, Glossar, Mondsee & Umgebung, Aktivitäten im Detail)
   ========================================================================== */

/* ---------- Subpage hero (smaller than homepage hero) ---------- */
.page-hero{
  position:relative; background:var(--night); padding:150px 0 70px; overflow:hidden;
}
.page-hero::before{
  content:""; position:absolute; inset:0;
  background:radial-gradient(ellipse 70% 60% at 15% 0%, rgba(231,169,63,.12), transparent 60%);
}
.page-hero-inner{position:relative; z-index:1; max-width:760px;}
.breadcrumb{
  display:inline-flex; align-items:center; gap:8px; font-size:13px; letter-spacing:.04em;
  color:var(--ink-faint); text-decoration:none; margin-bottom:22px;
}
.breadcrumb:hover{color:var(--snow);}
.breadcrumb::before{content:"\2039"; font-size:17px; line-height:1;}
.page-hero h1{font-size:clamp(34px,5.5vw,58px); margin:0 0 16px;}
.page-hero p{font-size:18px; color:var(--ink-soft); line-height:1.6; max-width:600px;}

/* ---------- Generic subpage section ---------- */
.page-section{padding:80px 0;}
.page-section + .page-section{border-top:1px solid var(--line);}
.page-section-head{max-width:680px; margin:0 0 44px;}
.page-section-head h2{font-size:clamp(26px,3.6vw,34px); margin:0 0 12px;}
.page-section-head p{font-size:17px; color:var(--ink-soft); line-height:1.6;}

/* ---------- FAQ accordion (native <details>) ---------- */
.faq-list{display:grid; gap:12px; max-width:820px;}
.faq-item{
  background:var(--card-bg); border:1px solid var(--card-border); border-radius:4px; overflow:hidden;
}
.faq-item summary{
  list-style:none; cursor:pointer; padding:20px 52px 20px 24px; position:relative;
  font-family:var(--font-display); font-size:19px; color:var(--snow);
  display:flex; align-items:center;
}
.faq-item summary::-webkit-details-marker{display:none;}
.faq-item summary::after{
  content:"+"; position:absolute; right:22px; top:50%; transform:translateY(-50%);
  font-family:var(--font-body); font-size:22px; color:var(--glow-soft); font-weight:300;
  transition:transform .25s ease;
}
.faq-item[open] summary::after{transform:translateY(-50%) rotate(45deg);}
.faq-item summary:hover{color:var(--glow-soft);}
.faq-item summary:focus-visible{outline:2px solid var(--glow-soft); outline-offset:-2px;}
.faq-answer{padding:0 24px 24px; font-size:16px; color:var(--ink-soft); line-height:1.65; max-width:680px;}
.faq-answer b{color:var(--snow); font-weight:500;}
.faq-category{
  font-size:12.5px; letter-spacing:.18em; text-transform:uppercase; color:var(--glow-soft);
  margin:44px 0 16px;
}
.faq-category:first-child{margin-top:0;}

/* ---------- Glossary ---------- */
.glossary-grid{display:grid; grid-template-columns:1fr; gap:0; max-width:820px;}
@media(min-width:700px){ .glossary-grid{grid-template-columns:1fr 1fr; column-gap:48px;} }
.glossary-item{padding:22px 0; border-bottom:1px solid var(--line); break-inside:avoid;}
.glossary-item dt{font-family:var(--font-display); font-size:20px; color:var(--snow); margin:0 0 8px;}
.glossary-item dd{margin:0; font-size:15.5px; color:var(--ink-soft); line-height:1.6;}

/* ---------- Activity detail cards ---------- */
.activity-list{display:grid; gap:60px;}
.activity-item{display:grid; grid-template-columns:1fr; gap:32px; align-items:center;}
@media(min-width:800px){
  .activity-item{grid-template-columns:1fr 1fr;}
  .activity-item.is-reverse .activity-media{order:2;}
}
.activity-media{border-radius:4px; overflow:hidden; aspect-ratio:4/3;}
.activity-media img{width:100%; height:100%; object-fit:cover; display:block;}
.activity-copy .eyebrow{margin-bottom:12px;}
.activity-copy h3{font-family:var(--font-display); font-size:26px; margin:0 0 14px;}
.activity-copy p{font-size:16px; color:var(--ink-soft); line-height:1.65; margin:0 0 10px;}
.activity-copy ul{margin:14px 0 0; padding-left:18px; font-size:15px; color:var(--ink-soft); line-height:1.7;}

/* ---------- Mondsee info cards ---------- */
.info-cards{display:grid; grid-template-columns:1fr; gap:22px;}
@media(min-width:700px){ .info-cards{grid-template-columns:1fr 1fr;} }
.info-card{
  background:var(--card-bg); border:1px solid var(--card-border); border-radius:4px; padding:28px 26px;
}
.info-card h3{font-family:var(--font-display); font-size:20px; margin:0 0 12px; display:flex; align-items:center; gap:10px;}
.info-card p{font-size:15.5px; color:var(--ink-soft); line-height:1.65; margin:0 0 10px;}
.info-card p:last-child{margin-bottom:0;}
.info-card a{color:var(--glow-soft); text-decoration:underline; text-underline-offset:2px;}
.info-note{
  margin-top:8px; padding:20px 24px; border-left:2px solid var(--glow);
  background:var(--card-bg); font-size:14.5px; color:var(--ink-faint); border-radius:0 4px 4px 0; max-width:680px;
}

/* ---------- Hub page preview cards (Weitere Infos) ---------- */
.hub-grid{display:grid; grid-template-columns:1fr; gap:22px;}
@media(min-width:700px){ .hub-grid{grid-template-columns:1fr 1fr;} }
.hub-card{
  display:flex; flex-direction:column; gap:14px; padding:32px 28px;
  background:var(--card-bg); border:1px solid var(--card-border); border-radius:4px;
  text-decoration:none; color:inherit; transition:border-color .25s ease, transform .25s ease;
}
.hub-card:hover{border-color:rgba(231,169,63,.45); transform:translateY(-3px);}
.hub-card h3{font-family:var(--font-display); font-size:24px; margin:0;}
.hub-card p{font-size:15.5px; color:var(--ink-soft); line-height:1.6; margin:0; flex:1;}
.hub-card .hub-cta{
  font-size:13px; letter-spacing:.1em; text-transform:uppercase; color:var(--glow-soft);
  display:inline-flex; align-items:center; gap:8px;
}
.hub-card .hub-cta::after{content:"\203A"; font-size:15px;}
.hub-card blockquote{
  margin:0; font-family:var(--font-display); font-size:16px; font-style:normal;
  color:var(--snow); line-height:1.5; border-left:2px solid var(--glow); padding-left:14px;
}
.hub-card cite{display:block; font-style:normal; font-size:12px; letter-spacing:.08em; text-transform:uppercase; color:var(--ink-faint); margin-top:8px;}

/* ---------- Footer secondary links ---------- */
.footer-more{
  display:flex; flex-wrap:wrap; gap:18px; justify-content:center; margin-bottom:28px;
  font-size:13.5px; letter-spacing:.03em;
}
.footer-more a{text-decoration:none; color:var(--ink-faint);}
.footer-more a:hover{color:var(--glow-soft);}
@media(min-width:760px){ .footer-more{justify-content:flex-start;} }

/* ---------- Inline "learn more" link used within homepage sections ---------- */
.section-more{
  display:inline-flex; align-items:center; gap:8px; margin-top:24px;
  font-size:14px; letter-spacing:.06em; text-transform:uppercase; color:var(--glow-soft);
  text-decoration:none;
}
.section-more::after{content:"\203A"; font-size:16px;}
.section-more:hover{color:var(--glow);}

@media(max-width:600px){
  .page-hero{padding:120px 0 56px;}
  .page-section{padding:56px 0;}
}
