:root{--bg:#fbfaf7;--surface:#fff;--soft:#f4f0e7;--ink:#27302b;--muted:#697169;--line:#e5e0d6;--green:#355947;--deep:#284738;--gold:#b28b4b;--shadow:0 18px 55px rgba(40,54,45,.10);--radius:24px;--max:1180px}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--ink);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;line-height:1.65;-webkit-font-smoothing:antialiased}body.menu-open{overflow:hidden}body.lightbox-open{overflow:hidden}img{display:block;max-width:100%}a{color:inherit}button{font:inherit}svg{fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.wrap{width:min(var(--max),calc(100% - 40px));margin-inline:auto}
h1,h2,h3{font-family:Georgia,"Times New Roman",serif;line-height:1.1;margin:0}h2{font-size:clamp(2rem,4vw,3.45rem);letter-spacing:-.025em}h3{font-size:1.45rem}p{margin:0}.lead{font-size:1.12rem;color:var(--muted);max-width:760px}.eyebrow{margin:0 0 10px;text-transform:uppercase;letter-spacing:.16em;font-weight:800;font-size:.78rem;color:var(--gold)}.section{padding:100px 0}
section[id]{scroll-margin-top:88px}
.soft{background:var(--soft)}.section-head{display:flex;align-items:end;justify-content:space-between;gap:28px;margin-bottom:42px}.section-head .lead{max-width:620px}
.topbar{position:fixed;inset:0 0 auto;z-index:80;transition:.25s;border-bottom:1px solid transparent}.topbar.scrolled,.topbar.menu-visible{background:rgba(251,250,247,.96);backdrop-filter:blur(14px);border-bottom-color:rgba(39,48,43,.08)}.nav{height:76px;display:flex;align-items:center;justify-content:space-between;gap:24px}.brand{text-decoration:none;display:flex;align-items:center;gap:12px;font-weight:800;z-index:82}
.brand-mark{width:48px;height:48px;display:grid;place-items:center;flex:0 0 48px}
.brand-mark img{display:block;width:100%;height:100%;object-fit:contain;filter:invert(1) brightness(2);transition:filter .22s ease,transform .22s ease}
.brand-text{color:#fff;line-height:1.08}
.topbar.scrolled .brand-mark img,.topbar.menu-visible .brand-mark img{filter:none}
.topbar.scrolled .brand-text,.topbar.menu-visible .brand-text{color:var(--ink)}
@media (hover:hover) and (pointer:fine){.brand:hover .brand-mark img{transform:scale(1.035)}}.nav-links{display:flex;align-items:center;gap:8px}
.nav-links a{color:#fff;text-decoration:none;font-size:.93rem;font-weight:650;text-shadow:0 1px 4px rgba(0,0,0,.2);padding:9px 13px;border-radius:999px;border:1px solid transparent;transition:background .18s ease,border-color .18s ease,color .18s ease,transform .18s ease}
.nav-links a:not(.nav-cta):hover,.nav-links a:not(.nav-cta):focus-visible{background:rgba(255,255,255,.14);border-color:rgba(255,255,255,.18);transform:translateY(-1px)}
.topbar.scrolled .nav-links a{color:var(--ink);text-shadow:none}
.topbar.scrolled .nav-links a:not(.nav-cta):hover,.topbar.scrolled .nav-links a:not(.nav-cta):focus-visible{background:rgba(53,89,71,.09);border-color:rgba(53,89,71,.14);color:var(--deep)}
.nav-links a.active:not(.nav-cta){background:rgba(255,255,255,.13);border-color:rgba(255,255,255,.16)}
.topbar.scrolled .nav-links a.active:not(.nav-cta){background:rgba(53,89,71,.08);border-color:rgba(53,89,71,.12);color:var(--deep)}
.nav-cta{padding:11px 16px;border-radius:999px;background:#fff;color:var(--deep)!important;text-shadow:none!important}
.nav-cta:hover,.nav-cta:focus-visible{transform:translateY(-1px);box-shadow:0 8px 22px rgba(0,0,0,.12)}
.topbar.scrolled .nav-cta{background:var(--green);color:#fff!important}
.menu-toggle{display:none;width:42px;height:42px;border:1px solid rgba(255,255,255,.45);background:rgba(255,255,255,.08);color:#fff;border-radius:50%;align-items:center;justify-content:center;cursor:pointer;z-index:82;padding:0}.menu-toggle svg{width:21px;height:21px}.topbar.scrolled .menu-toggle,.topbar.menu-visible .menu-toggle{border-color:var(--line);color:var(--ink);background:#fff}
.menu-backdrop{display:none;position:fixed;inset:0;z-index:74;background:rgba(14,22,18,.44);backdrop-filter:blur(2px)}.menu-backdrop.open{display:block}
.mobile-menu{position:fixed;z-index:76;right:12px;top:78px;width:min(360px,calc(100vw - 24px));background:var(--surface);border:1px solid var(--line);border-radius:22px;box-shadow:0 24px 70px rgba(24,36,29,.22);padding:10px;opacity:0;transform:translateY(-8px) scale(.985);pointer-events:none;transition:.18s ease}.mobile-menu.open{opacity:1;transform:none;pointer-events:auto}.mobile-menu nav{display:grid}.mobile-menu a{display:flex;align-items:center;justify-content:space-between;text-decoration:none;padding:13px 14px;border-radius:13px;font-family:Georgia,serif;font-size:1.25rem;line-height:1.15}.mobile-menu a:hover{background:var(--soft)}.mobile-menu a::after{content:"→";font-family:system-ui;font-size:.9rem;color:var(--gold)}.mobile-menu .mobile-call{margin-top:6px;font-family:inherit;font-size:.92rem;font-weight:800;background:var(--green);color:#fff;justify-content:flex-start;gap:9px;padding:12px 14px}.mobile-menu .mobile-call::after{display:none}.mobile-menu .mobile-call svg{width:18px;height:18px;flex:0 0 18px}
.hero{min-height:88svh;position:relative;display:flex;align-items:end;overflow:hidden;background:#314d40}.hero-media{position:absolute;inset:0}.hero-media picture,.hero-media img{width:100%;height:100%}.hero-media img{object-fit:cover;object-position:center 47%}.hero::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(20,35,27,.74) 0%,rgba(20,35,27,.48) 42%,rgba(20,35,27,.08) 78%),linear-gradient(0deg,rgba(13,24,18,.68) 0%,transparent 45%)}.hero-content{position:relative;z-index:2;color:#fff;padding:150px 0 74px;max-width:840px}.hero-tag{display:inline-flex;align-items:center;gap:9px;padding:8px 13px;border-radius:999px;border:1px solid rgba(255,255,255,.34);background:rgba(255,255,255,.08);backdrop-filter:blur(8px);font-size:.84rem;font-weight:700;margin-bottom:22px}.hero h1{font-size:clamp(3.1rem,7vw,6.2rem);letter-spacing:-.04em}.hero-sub{font-size:clamp(1.18rem,2.1vw,1.55rem);max-width:700px;margin-top:20px;color:rgba(255,255,255,.9)}.hero-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:30px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:9px;text-decoration:none;font-weight:800;border-radius:999px;padding:14px 20px;border:1px solid transparent;transition:.2s}.btn svg{width:19px;height:19px}.btn.primary{background:#fff;color:var(--deep)}.btn.ghost{border-color:rgba(255,255,255,.48);color:#fff;background:rgba(255,255,255,.08)}.hero-meta{display:flex;flex-wrap:wrap;gap:12px 22px;margin-top:36px;font-size:.94rem;color:rgba(255,255,255,.86)}
.stats-wrap{position:relative;z-index:6;margin-top:-36px}.stats{background:#fff;border:1px solid rgba(39,48,43,.07);border-radius:22px;box-shadow:var(--shadow);display:grid;grid-template-columns:repeat(6,1fr);overflow:hidden}.stat{text-align:center;padding:22px 10px;border-right:1px solid var(--line)}.stat:last-child{border-right:0}.stat strong{display:block;color:var(--green);font-size:1.05rem;margin-top:7px}.stat-icon{width:29px;height:29px;margin:auto;color:var(--green)}.stat-icon svg{width:100%;height:100%}
.announcements-section{padding:52px 0;background:var(--soft)}
.announcements-section[hidden]{display:none}
.announcements-head{display:flex;align-items:end;justify-content:space-between;gap:24px;margin-bottom:22px}
.announcements-list{display:grid;gap:18px}
.announcement-card{background:#fff;border:1px solid var(--line);border-radius:22px;overflow:hidden;box-shadow:0 12px 34px rgba(40,54,45,.07);display:grid;grid-template-columns:minmax(0,.92fr) minmax(0,1.08fr);min-height:260px}
.announcement-card.no-image{grid-template-columns:1fr;min-height:0}
.announcement-media{background:#eeeae2;min-height:260px;display:flex;align-items:center;justify-content:center;overflow:hidden}
.announcement-media img{width:100%;height:100%;object-fit:cover;object-position:center}
.announcement-card.poster .announcement-media img{object-fit:contain;background:#f2eee6}
.announcement-card.poster{grid-template-columns:minmax(0,.72fr) minmax(0,1.28fr)}
.announcement-copy{padding:30px 32px;display:flex;flex-direction:column;justify-content:center;align-items:flex-start}
.announcement-meta{display:flex;flex-wrap:wrap;gap:8px 14px;margin-bottom:10px;color:var(--gold);text-transform:uppercase;letter-spacing:.1em;font-size:.7rem;font-weight:800}
.announcement-copy h3{font-size:clamp(1.55rem,2.7vw,2.25rem)}
.announcement-copy p{margin-top:12px;color:var(--muted);font-size:1rem}
.announcement-body{width:100%;margin-top:12px;color:var(--muted);font-size:1rem;line-height:1.68}
.announcement-body p{margin:0 0 12px}
.announcement-body p:last-child{margin-bottom:0}
.announcement-body ul{margin:10px 0 12px;padding-left:1.25rem}
.announcement-body li{margin:4px 0}
.announcement-body strong{color:var(--ink);font-weight:800}
.announcement-body em{font-style:italic}
.announcement-body a{color:var(--green);font-weight:700;text-decoration:underline;text-underline-offset:2px}
.announcement-link{margin-top:18px;display:inline-flex;align-items:center;gap:8px;text-decoration:none;color:var(--green);font-weight:800}
.announcement-link:hover{text-decoration:underline}
.announcement-only-poster{border-radius:22px;overflow:hidden;border:1px solid var(--line);background:#fff;box-shadow:0 12px 34px rgba(40,54,45,.07);padding:18px;display:flex;justify-content:center}
.announcement-only-poster img{display:block;width:auto;max-width:100%;max-height:min(75vh,900px);object-fit:contain;border-radius:14px}
.intro-grid{display:grid;grid-template-columns:1.02fr .98fr;gap:62px;align-items:center}.intro-copy p+p{margin-top:17px}.intro-copy .lead{margin-top:24px}.image-card{border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow);background:#ddd}.image-card img{width:100%;height:100%;object-fit:cover}.intro-image{aspect-ratio:16/10}
.rooms-desktop{display:grid;grid-template-columns:1.15fr .85fr;gap:18px;align-items:stretch}.rooms-primary{min-height:560px}.rooms-primary img{width:100%;height:100%;object-fit:cover}.rooms-side{display:grid;grid-template-columns:1fr 1fr;grid-template-rows:1fr 1fr;gap:18px;min-height:560px}.rooms-side .image-card:nth-child(3){grid-column:1/-1}.capacity{margin-top:18px;display:flex;align-items:center;gap:18px;background:var(--green);color:#fff;border-radius:var(--radius);padding:24px 28px}.capacity strong{font-family:Georgia,serif;font-size:3.5rem;line-height:1}.capacity span{color:rgba(255,255,255,.82)}.bath-strip{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:18px}.bath-strip .image-card{aspect-ratio:4/3}.small-note{margin-top:18px;color:var(--muted);font-size:.96rem}
.facility-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:22px}.facility-card{position:relative;border-radius:26px;overflow:hidden;min-height:390px;background:#333}.facility-card img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:.4s}.facility-card::after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(20,28,24,.84),rgba(20,28,24,.03) 64%)}.facility-card .copy{position:absolute;z-index:2;left:28px;right:28px;bottom:26px;color:#fff}.facility-card .copy p{color:rgba(255,255,255,.82);margin-top:8px}.double-photo{position:absolute;inset:0;display:grid;grid-template-columns:1fr 1fr;gap:2px}.double-photo img{position:relative!important;width:100%!important;height:100%!important;object-fit:cover}
.sanctuary{position:relative;min-height:570px;display:flex;align-items:center;overflow:hidden}.sanctuary img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.sanctuary::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(23,37,29,.79),rgba(23,37,29,.18) 70%)}.sanctuary-copy{position:relative;z-index:2;color:#fff;max-width:650px}.sanctuary-copy p{margin-top:20px;color:rgba(255,255,255,.88);font-size:1.08rem}
.prices{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.price{
  background:#fff;
  border:1px solid var(--line);
  border-radius:22px;
  padding:28px;
  transition:background-color .2s ease,border-color .2s ease,box-shadow .2s ease,transform .2s ease
}
.price.highlight{background:var(--green);color:#fff;border-color:var(--green)}
.price .value{
  font-family:Georgia,serif;
  font-size:3.4rem;
  line-height:1;
  margin:16px 0 9px;
  transition:color .2s ease,transform .2s ease
}
.price .unit{font-size:.92rem;color:var(--muted)}
.price.highlight .unit,.price.highlight p{color:rgba(255,255,255,.78)}
.price p{font-size:.92rem;color:var(--muted);margin-top:12px}
@media (hover:hover) and (pointer:fine){
  .price:hover{
    background:#fdfaf3;
    border-color:rgba(178,139,75,.32);
    box-shadow:0 10px 28px rgba(40,54,45,.065);
    transform:translateY(-2px)
  }
  .price:hover .value{
    color:#9a742f;
    transform:translateY(-1px)
  }
  .price.highlight:hover{
    background:#2f5140;
    border-color:#2f5140;
    box-shadow:0 12px 30px rgba(39,71,56,.16)
  }
  .price.highlight:hover .value{color:#fff}
}
@media (prefers-reduced-motion:reduce){
  .price,.price .value{transition:none}
  .price:hover,.price:hover .value{transform:none}
}
.practical-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px}.practical-card{padding:32px;border-radius:22px;border:1px solid var(--line);background:#fff}.practical-card .icon{width:48px;height:48px;border-radius:14px;background:var(--soft);display:grid;place-items:center;color:var(--green);margin-bottom:20px}.practical-card .icon svg{width:26px;height:26px}.practical-card p{color:var(--muted);margin-top:9px}
.gallery-toolbar{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:24px}
.gallery-filter{display:flex;gap:8px;flex-wrap:wrap}
.filter-btn{border:1px solid var(--line);background:#fff;color:var(--ink);border-radius:999px;padding:8px 13px;cursor:pointer;font-size:.88rem}
.filter-btn.active{background:var(--green);border-color:var(--green);color:#fff}
.gallery-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:22px;
  align-items:stretch
}
.gallery-card{
  min-width:0;
  height:100%;
  border:1px solid var(--line);
  border-radius:20px;
  overflow:hidden;
  background:#fff;
  box-shadow:0 10px 28px rgba(40,54,45,.06);
  cursor:zoom-in;
  padding:0;
  text-align:left;
  color:inherit;
  display:flex;
  flex-direction:column
}
.gallery-card[hidden]{display:none}
.gallery-media{
  position:relative;
  height:270px;
  width:100%;
  display:flex;
  align-items:center;
  justify-content:center;
  background:#eeeae2;
  overflow:hidden;
  border-bottom:1px solid var(--line)
}
.gallery-media img{
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center;
  transition:transform .3s ease
}
.gallery-card:hover .gallery-media img{transform:scale(1.012)}
.gallery-copy{
  padding:18px 20px 20px;
  min-height:154px;
  display:flex;
  flex-direction:column;
  align-items:flex-start
}
.gallery-copy small{
  display:block;
  text-transform:uppercase;
  letter-spacing:.11em;
  color:var(--gold);
  font-size:.69rem;
  font-weight:800;
  margin-bottom:5px
}
.gallery-copy strong{
  display:block;
  font-family:Georgia,serif;
  font-size:1.18rem;
  line-height:1.22
}
.gallery-copy p{
  color:var(--muted);
  font-size:.88rem;
  line-height:1.5;
  margin-top:8px
}
.gallery-more-wrap{display:flex;justify-content:center;margin-top:28px}
.gallery-more{border:1px solid var(--green);background:transparent;color:var(--green);padding:11px 18px;border-radius:999px;font-weight:800;cursor:pointer}
.gallery-more:hover{background:var(--green);color:#fff}
.gallery-card.is-video{cursor:pointer}
.gallery-card.is-video .gallery-media::after{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(180deg,rgba(0,0,0,.04),rgba(0,0,0,.18));
  pointer-events:none
}
.gallery-play{
  position:absolute;
  z-index:2;
  left:50%;top:50%;
  translate:-50% -50%;
  width:64px;height:64px;
  border-radius:50%;
  display:grid;place-items:center;
  background:rgba(255,255,255,.94);
  color:var(--green);
  box-shadow:0 12px 34px rgba(0,0,0,.22);
  transition:transform .2s ease,background .2s ease
}
.gallery-play svg{width:27px;height:27px;fill:currentColor;stroke:none;margin-left:3px}
.gallery-video-duration{
  position:absolute;
  z-index:2;
  right:12px;bottom:12px;
  padding:5px 8px;
  border-radius:999px;
  background:rgba(22,31,26,.82);
  color:#fff;
  font-size:.74rem;
  font-weight:800;
  line-height:1
}
@media (hover:hover) and (pointer:fine){
  .gallery-card.is-video:hover .gallery-play{transform:scale(1.06);background:#fff}
}
.lightbox-video{
  display:block;
  width:auto;
  height:auto;
  max-width:min(100%,1000px);
  max-height:100%;
  aspect-ratio:848/480;
  object-fit:contain;
  border-radius:10px;
  background:#000;
  box-shadow:0 20px 80px rgba(0,0,0,.35)
}
.lightbox-video[hidden],.lightbox-img[hidden]{display:none!important}
.arrival-grid{
  display:grid;
  grid-template-columns:minmax(0,.82fr) minmax(0,1.18fr);
  gap:24px;
  align-items:stretch
}
.arrival-info{
  background:#fff;
  border:1px solid var(--line);
  border-radius:24px;
  padding:32px;
  display:flex;
  flex-direction:column;
  justify-content:center
}
.arrival-list{display:grid;gap:18px;margin-top:24px}
.arrival-row{display:grid;grid-template-columns:46px 1fr;gap:14px;align-items:start}
.arrival-row .icon{
  width:46px;height:46px;border-radius:14px;background:var(--soft);
  color:var(--green);display:grid;place-items:center
}
.arrival-row .icon svg{width:25px;height:25px}
.arrival-row strong{display:block;font-size:1rem}
.arrival-row p{color:var(--muted);font-size:.93rem;margin-top:2px}
.arrival-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:26px}
.arrival-actions .map-btn{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  border-radius:999px;padding:12px 17px;text-decoration:none;font-weight:800
}
.arrival-actions .map-btn.primary{background:var(--green);color:#fff}
.arrival-actions .map-btn.secondary{border:1px solid var(--line);background:#fff;color:var(--ink)}
.map-card{
  min-height:440px;border-radius:24px;overflow:hidden;border:1px solid var(--line);
  background:#e9e5dc;box-shadow:var(--shadow);position:relative
}
.map-card iframe{width:100%;height:100%;min-height:440px;border:0;display:block}
.map-label{
  position:absolute;left:18px;bottom:18px;z-index:2;background:rgba(255,255,255,.94);
  backdrop-filter:blur(8px);border:1px solid rgba(39,48,43,.10);border-radius:14px;
  padding:10px 13px;box-shadow:0 8px 30px rgba(0,0,0,.10);font-size:.84rem
}
.map-label strong{display:block;color:var(--green)}
.faq-section[hidden]{display:none}
.faq-shell{max-width:900px;margin-inline:auto}
.faq-list{display:grid;gap:10px;margin-top:34px}
.faq-item{
  background:#fff;border:1px solid var(--line);border-radius:18px;overflow:hidden;
  transition:border-color .18s ease,box-shadow .18s ease
}
.faq-item.open{border-color:rgba(53,89,71,.24);box-shadow:0 9px 26px rgba(40,54,45,.06)}
.faq-question{
  width:100%;border:0;background:transparent;color:var(--ink);cursor:pointer;
  padding:20px 22px;display:flex;align-items:center;justify-content:space-between;
  gap:24px;text-align:left;font-family:Georgia,serif;font-size:1.18rem;font-weight:700
}
.faq-plus{
  position:relative;
  flex:0 0 36px;
  width:36px;
  height:36px;
  border-radius:50%;
  background:var(--soft);
  color:var(--green);
  display:block
}
.faq-plus::before,.faq-plus::after{
  content:"";
  position:absolute;
  left:50%;
  top:50%;
  width:14px;
  height:2px;
  border-radius:999px;
  background:currentColor;
  translate:-50% -50%;
  transform-origin:50% 50%
}
.faq-plus::after{transform:rotate(90deg);transition:opacity .18s ease,transform .18s ease}
.faq-item.open .faq-plus::after{opacity:0;transform:rotate(90deg) scaleX(.2)}
.faq-answer{display:grid;grid-template-rows:0fr;transition:grid-template-rows .25s ease}
.faq-item.open .faq-answer{grid-template-rows:1fr}
.faq-answer-inner{overflow:hidden}
.faq-answer-copy{padding:0 22px 21px;color:var(--muted);line-height:1.7}
.faq-answer-copy p{margin:0}
.faq-answer-copy strong{color:var(--ink)}
.faq-answer-copy a{color:var(--green);font-weight:700}
.mobile-booking-bar{
  display:none;position:fixed;z-index:68;left:10px;right:10px;bottom:10px;
  background:rgba(251,250,247,.96);border:1px solid rgba(39,48,43,.12);
  box-shadow:0 15px 45px rgba(25,37,30,.18);backdrop-filter:blur(14px);
  border-radius:18px;padding:7px;gap:7px;transform:translateY(120%);
  opacity:0;transition:.24s ease
}
.mobile-booking-bar.visible{transform:none;opacity:1}
.mobile-booking-bar a{
  min-width:0;flex:1;display:flex;align-items:center;justify-content:center;gap:7px;
  text-decoration:none;border-radius:13px;padding:11px 8px;font-weight:800;font-size:.88rem
}
.mobile-booking-bar svg{width:18px;height:18px}
.mobile-booking-call{background:var(--soft);color:var(--deep)}
.mobile-booking-interest{background:var(--green);color:#fff}
.btn,
.arrival-actions .map-btn,
.mobile-menu .mobile-call,
.mobile-booking-bar a{
  position:relative;
  overflow:hidden;
  -webkit-tap-highlight-color:transparent
}
.btn svg,
.arrival-actions .map-btn svg,
.mobile-menu .mobile-call svg,
.mobile-booking-bar svg{
  transition:transform .2s ease
}
.arrival-actions .map-btn svg{
  width:18px;
  height:18px;
  flex:0 0 18px
}
.arrival-actions .map-btn .action-arrow{
  font-size:.92rem;
  line-height:1;
  transition:transform .2s ease
}
@media (hover:hover) and (pointer:fine){
  .hero-actions .btn,
  .contact-actions .btn{
    transition:transform .18s ease,box-shadow .18s ease,background .18s ease,border-color .18s ease
  }
  .hero-actions .btn:hover,
  .hero-actions .btn:focus-visible,
  .contact-actions .btn:hover,
  .contact-actions .btn:focus-visible{
    transform:translateY(-2px)
  }
  .hero-actions .btn.primary:hover,
  .hero-actions .btn.primary:focus-visible{
    box-shadow:0 12px 32px rgba(0,0,0,.20);
    background:#fff
  }
  .hero-actions .btn.ghost:hover,
  .hero-actions .btn.ghost:focus-visible{
    background:rgba(255,255,255,.16);
    border-color:rgba(255,255,255,.75);
    box-shadow:0 10px 28px rgba(0,0,0,.16)
  }
  .contact-actions .btn.primary:hover,
  .contact-actions .btn.primary:focus-visible{
    box-shadow:0 12px 34px rgba(0,0,0,.22)
  }
  .phone-action:hover svg,
  .phone-action:focus-visible svg{
    transform:rotate(-7deg) scale(1.08)
  }
  .arrival-actions .map-btn{
    transition:transform .18s ease,box-shadow .18s ease,background .18s ease,border-color .18s ease,color .18s ease
  }
  .arrival-actions .map-btn:hover,
  .arrival-actions .map-btn:focus-visible{
    transform:translateY(-2px)
  }
  .arrival-actions .map-btn.primary:hover,
  .arrival-actions .map-btn.primary:focus-visible{
    background:var(--deep);
    box-shadow:0 11px 28px rgba(39,71,56,.20)
  }
  .arrival-actions .map-btn.secondary:hover,
  .arrival-actions .map-btn.secondary:focus-visible{
    background:var(--soft);
    border-color:rgba(53,89,71,.24);
    color:var(--deep);
    box-shadow:0 9px 24px rgba(40,54,45,.08)
  }
  .arrival-actions .map-btn:hover svg,
  .arrival-actions .map-btn:focus-visible svg{
    transform:scale(1.08)
  }
  .arrival-actions .map-btn:hover .action-arrow,
  .arrival-actions .map-btn:focus-visible .action-arrow{
    transform:translateX(3px)
  }
  .arrival-actions .maps-action:hover .action-arrow,
  .arrival-actions .maps-action:focus-visible .action-arrow{
    transform:translate(2px,-2px)
  }
  .mobile-menu .mobile-call:hover,
  .mobile-menu .mobile-call:focus-visible{
    background:var(--deep)
  }
}
.btn:focus-visible,
.map-btn:focus-visible,
.phone-action:focus-visible{
  outline:3px solid rgba(178,139,75,.35);
  outline-offset:3px
}
.btn:active,
.map-btn:active,
.mobile-booking-bar a:active{
  transform:translateY(0) scale(.985)
}
.contact-shell{background:var(--deep);color:#fff;border-radius:30px;padding:56px;display:grid;grid-template-columns:1fr auto;gap:40px;align-items:center}.contact-shell p{color:rgba(255,255,255,.76);max-width:700px;margin-top:14px}.contact-actions{display:flex;gap:10px;flex-wrap:wrap;justify-content:flex-end}footer{padding:34px 0 46px;color:var(--muted);font-size:.9rem}.footer-row{display:flex;justify-content:space-between;gap:24px;align-items:center;border-top:1px solid var(--line);padding-top:24px}
.footer-brand{display:flex;align-items:center;gap:12px;color:var(--ink)}
.footer-brand img{width:46px;height:46px;object-fit:contain;display:block}
dialog{
  border:0;
  padding:0;
  background:transparent;
  max-width:none;
  max-height:none;
  width:100vw;
  height:100dvh;
  margin:0;
  overflow:hidden
}
dialog::backdrop{background:rgba(7,11,9,.94)}
.lightbox-shell{
  width:100vw;
  height:100dvh;
  max-height:100dvh;
  display:grid;
  grid-template-rows:56px minmax(0,1fr) 84px;
  color:#fff;
  overflow:hidden
}
.lightbox-top{
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:0 18px;
  min-height:0
}
.lightbox-counter{font-size:.9rem;color:rgba(255,255,255,.7)}
.lightbox-close{
  width:40px;
  height:40px;
  border:1px solid rgba(255,255,255,.2);
  background:rgba(255,255,255,.06);
  color:#fff;
  border-radius:50%;
  display:grid;
  place-items:center;
  cursor:pointer;
  flex:0 0 40px
}
.lightbox-close svg{width:20px;height:20px}
.lightbox-stage{
  position:relative;
  min-width:0;
  min-height:0;
  overflow:hidden;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:10px 74px 12px
}
.lightbox-img{
  display:block;
  width:auto;
  height:auto;
  max-width:100%;
  max-height:100%;
  object-fit:contain;
  object-position:center;
  border-radius:10px;
  box-shadow:0 20px 80px rgba(0,0,0,.35);
  user-select:none;
  -webkit-user-drag:none
}
.lightbox-img.is-portrait{
  max-width:min(72vw,900px);
  max-height:100%
}
.lightbox-img.is-landscape{
  max-width:100%;
  max-height:100%
}
.lightbox-nav{
  position:absolute;
  top:50%;
  translate:0 -50%;
  width:48px;
  height:48px;
  border:1px solid rgba(255,255,255,.18);
  background:rgba(255,255,255,.07);
  color:#fff;
  border-radius:50%;
  display:grid;
  place-items:center;
  cursor:pointer;
  z-index:3
}
.lightbox-nav svg{width:24px;height:24px}
.lightbox-prev{left:12px}
.lightbox-next{right:12px}
.lightbox-caption{
  min-height:0;
  height:84px;
  overflow:hidden;
  padding:10px 80px 14px;
  display:flex;
  flex-direction:column;
  justify-content:center;
  align-items:center;
  text-align:center
}
.lightbox-caption strong{
  display:block;
  font-family:Georgia,serif;
  font-size:1.12rem;
  line-height:1.2
}
.lightbox-caption span{
  display:block;
  max-width:900px;
  color:rgba(255,255,255,.68);
  font-size:.86rem;
  line-height:1.35;
  margin-top:4px
}
@media(max-width:980px){.arrival-grid{grid-template-columns:1fr}.map-card,.map-card iframe{min-height:390px}.nav-links{display:none}.menu-toggle{display:flex}.stats{grid-template-columns:repeat(3,1fr)}.stat:nth-child(3){border-right:0}.stat:nth-child(-n+3){border-bottom:1px solid var(--line)}.intro-grid,.practical-grid{grid-template-columns:1fr}.prices{grid-template-columns:repeat(2,1fr)}.section{padding:78px 0}.rooms-desktop{grid-template-columns:1fr;gap:16px}.rooms-primary{min-height:auto;aspect-ratio:16/10}.rooms-side{min-height:auto;grid-template-columns:1fr 1fr 1fr;grid-template-rows:none}.rooms-side .image-card:nth-child(3){grid-column:auto}.rooms-side .image-card{aspect-ratio:1/1}.contact-shell{grid-template-columns:1fr;padding:40px}.contact-actions{justify-content:flex-start}.gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.gallery-media{height:240px}}
@media(max-width:700px){.arrival-info{padding:26px 22px}.map-card,.map-card iframe{min-height:340px}.map-label{left:12px;bottom:12px}.faq-question{padding:18px 17px;font-size:1.08rem}.faq-answer-copy{padding:0 17px 18px}.mobile-booking-bar{display:flex}body{padding-bottom:72px}.announcements-section{padding-top:38px}.announcements-head{display:block}.announcement-card,.announcement-card.poster{grid-template-columns:1fr}.announcement-media{min-height:0;max-height:none}.announcement-media img{height:auto;max-height:440px;object-fit:cover}.announcement-card.poster .announcement-media img{object-fit:contain;max-height:520px}.announcement-copy{padding:24px 22px}.announcement-only-poster{padding:10px}.wrap{width:min(100% - 24px,var(--max))}.nav{height:66px}.brand-mark{width:42px;height:42px;flex-basis:42px}.brand-text{font-size:.88rem}.mobile-menu{top:70px;right:8px;width:min(330px,calc(100vw - 16px));border-radius:18px}.mobile-menu a{font-size:1.08rem;padding:12px 12px}.hero{min-height:86svh}.hero::after{background:linear-gradient(0deg,rgba(15,27,20,.84),rgba(15,27,20,.28) 78%)}.hero-content{padding-bottom:56px}.hero h1{font-size:clamp(2.65rem,13vw,4.1rem)}.hero-meta{gap:9px 14px}.stats-wrap{margin-top:-24px}.stats{grid-template-columns:repeat(2,1fr)}.stat:nth-child(2n){border-right:0}.stat:nth-child(-n+4){border-bottom:1px solid var(--line)}.stat:nth-child(3){border-right:1px solid var(--line)}.section-head{display:block}.section-head .lead{margin-top:16px}.rooms-primary{aspect-ratio:4/3}.rooms-side{grid-template-columns:1fr 1fr;grid-template-rows:auto;gap:12px}.rooms-side .image-card{aspect-ratio:1/1}.rooms-side .image-card:nth-child(3){grid-column:1/-1;aspect-ratio:16/9}.capacity{padding:20px 22px}.capacity strong{font-size:3rem}.bath-strip{grid-template-columns:1fr;gap:12px}.bath-strip .image-card{aspect-ratio:16/10}.facility-grid,.prices{grid-template-columns:1fr}.facility-card{min-height:340px}.sanctuary{min-height:620px}.sanctuary::after{background:linear-gradient(0deg,rgba(23,37,29,.86),rgba(23,37,29,.18) 78%)}.sanctuary-copy{align-self:end;padding-bottom:70px}.gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.gallery-media{height:220px}.gallery-copy{padding:15px 16px 17px;min-height:142px}.gallery-copy strong{font-size:1.04rem}.gallery-copy p{font-size:.82rem}.gallery-toolbar{align-items:flex-start;flex-direction:column}.contact-shell{padding:30px 24px;border-radius:22px}.footer-row{display:block}.footer-row span{display:block;margin-top:8px}.lightbox-shell{grid-template-rows:52px minmax(0,1fr) 96px}.lightbox-stage{padding:6px 8px 10px}.lightbox-nav{top:auto;bottom:8px;translate:0;width:42px;height:42px}.lightbox-prev{left:12px}.lightbox-next{right:12px}.lightbox-img{max-width:100%;max-height:100%;border-radius:7px}.lightbox-img.is-portrait{max-width:min(92vw,620px);max-height:100%}.lightbox-caption{height:96px;padding:9px 62px 12px}.lightbox-caption strong{font-size:1rem}.lightbox-caption span{font-size:.78rem}}
@media(max-width:520px){.gallery-grid{grid-template-columns:1fr}.gallery-media{height:260px}.gallery-copy{min-height:0;padding:16px 18px 18px}}


.brand-mark img{filter:none}
.topbar.scrolled .brand-mark img,.topbar.menu-visible .brand-mark img{filter:brightness(0) saturate(100%)}
.footer-brand img{filter:brightness(0) saturate(100%);opacity:.82}

.support-section{position:relative;background:var(--bg);padding-top:78px;padding-bottom:74px;overflow:hidden}
.support-section::after{content:"";position:absolute;z-index:0;right:-55px;top:-8px;width:min(48vw,650px);height:330px;background:url("../img/svatyna-line.png") center/contain no-repeat;opacity:.34;pointer-events:none}
.support-section .wrap{position:relative;z-index:1}
.support-shell{position:relative;overflow:hidden;display:grid;grid-template-columns:minmax(0,1fr) 245px;gap:42px;align-items:center;background:linear-gradient(135deg,#fbf8f1 0%,#f4f0e7 100%);border:1px solid rgba(178,139,75,.20);border-radius:28px;padding:42px 46px;box-shadow:0 16px 46px rgba(40,54,45,.075)}
.support-shell::before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 82% 5%,rgba(178,139,75,.10),transparent 34%);pointer-events:none}
.support-copy,.support-qr-card{position:relative;z-index:1}
.support-copy h2{font-size:clamp(2rem,3.5vw,3rem);max-width:680px}
.support-intro{margin-top:14px;max-width:700px;color:var(--muted);font-size:1.02rem}
.support-bank{margin-top:22px;max-width:690px;border:1px solid var(--line);border-radius:18px;overflow:hidden;background:rgba(255,255,255,.82);box-shadow:0 8px 25px rgba(40,54,45,.045)}
.support-bank-row{display:grid;grid-template-columns:180px 1fr;gap:20px;align-items:start;padding:12px 16px;border-bottom:1px solid var(--line)}
.support-bank-row:last-child{border-bottom:0}
.support-bank-row span{color:var(--muted);font-size:.84rem}
.support-bank-row strong{font-size:.94rem;color:var(--ink);overflow-wrap:anywhere}
.support-copy-line{display:flex;align-items:center;gap:10px;margin-top:14px;min-height:38px}
.support-copy-iban{border:1px solid rgba(53,89,71,.24);background:#fff;color:var(--green);border-radius:999px;padding:8px 13px;font-weight:800;font-size:.83rem;cursor:pointer;transition:.18s}
.support-copy-iban:hover,.support-copy-iban:focus-visible{background:var(--green);border-color:var(--green);color:#fff;outline:none}
.support-copy-status{color:var(--green);font-size:.82rem;font-weight:700}
.support-gratitude{margin-top:18px;color:var(--deep);font-family:Georgia,"Times New Roman",serif;font-size:1.08rem;font-style:italic}
.support-gratitude span{color:var(--gold);font-size:1.34rem;font-style:normal;vertical-align:-1px;margin-right:4px}
.support-qr-card{justify-self:end;width:245px;background:#fff;border:1px solid rgba(178,139,75,.18);border-radius:21px;padding:17px 17px 16px;text-align:center;box-shadow:0 14px 36px rgba(40,54,45,.08)}
.support-qr-card img{width:176px;height:176px;object-fit:contain;margin:10px auto 9px}
.support-qr-label{display:inline-block;padding:5px 10px;border-radius:999px;background:var(--soft);color:#8d6a32;text-transform:uppercase;letter-spacing:.11em;font-size:.68rem;font-weight:850}
.support-qr-card p{color:var(--muted);font-size:.78rem;line-height:1.45;max-width:205px;margin:0 auto}
.email-reveal-wrap{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.email-reveal{background:transparent;border-color:rgba(255,255,255,.46);color:#fff;cursor:pointer}
.email-reveal:hover,.email-reveal:focus-visible{background:#fff;color:var(--deep);outline:none}
.email-reveal-value a{display:inline-flex;align-items:center;min-height:46px;color:#fff;font-weight:800;text-decoration:none;border-bottom:1px solid rgba(255,255,255,.5)}
.email-reveal-value a:hover,.email-reveal-value a:focus-visible{border-bottom-color:#fff;outline:3px solid rgba(255,255,255,.42);outline-offset:4px;border-radius:4px}
@media(max-width:900px){.support-shell{grid-template-columns:1fr;gap:26px;padding:38px}.support-qr-card{justify-self:start;width:230px}.support-section::after{width:620px;right:-210px;top:-20px;opacity:.24}}
@media(max-width:700px){.support-section{padding-top:62px;padding-bottom:58px}.support-shell{padding:28px 22px;border-radius:22px}.support-bank-row{grid-template-columns:1fr;gap:2px;padding:12px 14px}.support-qr-card{justify-self:center;width:220px}.support-qr-card img{width:164px;height:164px}.support-copy-line{align-items:flex-start;flex-direction:column}.support-copy-status{min-height:1.2em}.email-reveal-wrap,.email-reveal{width:100%}.email-reveal-value{width:100%;text-align:center}.email-reveal-value a{width:100%;justify-content:center}.support-section::after{width:480px;right:-250px;top:-15px;opacity:.17}}

.brand-mark{position:relative}
.brand-mark .brand-logo{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;filter:none!important;transition:opacity .2s ease,transform .22s ease}
.brand-logo-light{opacity:1}
.brand-logo-dark{opacity:0}
.topbar.scrolled .brand-logo-light,.topbar.menu-visible .brand-logo-light{opacity:0}
.topbar.scrolled .brand-logo-dark,.topbar.menu-visible .brand-logo-dark{opacity:1}
.topbar.scrolled .brand-text,.topbar.menu-visible .brand-text{color:var(--green)}
@media (hover:hover) and (pointer:fine){.brand:hover .brand-logo{transform:scale(1.035)}}
.footer-brand img{filter:none!important;opacity:1}

.contact-shell{position:relative;overflow:hidden;isolation:isolate}
.contact-shell::after{content:"";position:absolute;z-index:0;right:-22px;bottom:-30px;width:min(49vw,560px);height:305px;background:url("../img/svatyna-line-contact.png") right bottom/contain no-repeat;opacity:.38;filter:saturate(.92) brightness(1.08);pointer-events:none}
.contact-shell::before{content:"";position:absolute;z-index:0;inset:0;background:radial-gradient(circle at 88% 70%,rgba(178,139,75,.08),transparent 38%);pointer-events:none}
.contact-shell>*{position:relative;z-index:1}
.email-reveal-wrap{position:relative;z-index:2}
.email-reveal.email-revealed{background:#fff;border-color:#fff;color:var(--deep);text-decoration:none;cursor:pointer}
.email-reveal.email-revealed:hover,.email-reveal.email-revealed:focus-visible{background:var(--soft);color:var(--deep);outline:3px solid rgba(255,255,255,.34);outline-offset:3px}
@media(max-width:900px){.contact-shell::after{width:500px;right:-105px;bottom:-24px;opacity:.29}}
@media(max-width:700px){.contact-shell::after{width:410px;right:-160px;bottom:-16px;opacity:.23}.email-reveal-wrap{width:100%}.email-reveal.email-revealed{width:100%}}

