/* ===========================================================================
   Chalet Tatry — public stylesheet
   Palette drawn from the chalet itself: charcoal timber, warm ivory, brass,
   and the petrol blue of the interiors.
   ======================================================================== */

:root{
  --ink:#11161a;
  --ink-2:#1b2329;
  --ink-3:#2b353b;
  --cream:#f7f3ec;
  --cream-2:#efe8dc;
  --paper:#ffffff;
  --brass:#a8863f;
  --brass-2:#c6a868;
  --petrol:#15424a;
  --muted:#6d7a81;
  --muted-2:#97a2a7;
  --line:rgba(17,22,26,.12);
  --line-lt:rgba(255,255,255,.18);

  --serif:"EB Garamond",Georgia,"Times New Roman",serif;
  --sans:"Jost",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;

  --shell:1280px;
  --gut:clamp(1.25rem,4vw,3rem);
  --sec-y:clamp(4.5rem,9vw,8.5rem);
  --r:2px;
  --ease:cubic-bezier(.22,.61,.36,1);
}

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

body{
  margin:0;
  font-family:var(--sans);
  font-weight:300;
  font-size:clamp(1rem,.96rem + .18vw,1.075rem);
  line-height:1.72;
  color:var(--ink-2);
  background:var(--paper);
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}

img,picture,svg,iframe{max-width:100%;display:block}
img{height:auto}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit}
h1,h2,h3,h4{margin:0;font-weight:400;line-height:1.14;letter-spacing:-.005em}

.shell{width:100%;max-width:var(--shell);margin-inline:auto;padding-inline:var(--gut)}
.shell.narrow{max-width:760px}
.center{text-align:center}
.sec{padding-block:var(--sec-y)}
.sec-top{padding-top:clamp(8rem,14vw,11rem)}
.sec-tall{padding-block:clamp(8rem,16vw,13rem)}
.sec-cream{background:var(--cream)}
.sec-dark{background:var(--ink);color:#e4e8ea}

.skip{position:absolute;left:-9999px;top:0;z-index:999;background:var(--ink);color:#fff;padding:1rem 1.5rem}
.skip:focus{left:0}

/* --- type ---------------------------------------------------------------- */
.display{
  font-family:var(--serif);
  font-weight:400;
  font-size:clamp(2.9rem,8vw,6.25rem);
  line-height:.98;
  letter-spacing:-.018em;
  color:#fff;
  margin:0;
}
.display.sm{font-size:clamp(2.4rem,6vw,4.4rem)}
.h2{
  font-family:var(--serif);
  font-weight:400;
  font-size:clamp(1.95rem,4vw,3.15rem);
  line-height:1.08;
  letter-spacing:-.012em;
  color:var(--ink);
}
.h2.light{color:#fff}
.eyebrow{
  font-size:.72rem;
  font-weight:400;
  letter-spacing:.26em;
  text-transform:uppercase;
  color:var(--brass);
  margin:0 0 1.1rem;
}
.eyebrow.light{color:var(--brass-2)}
.lead{
  font-size:clamp(1.03rem,.98rem + .3vw,1.19rem);
  line-height:1.78;
  color:var(--muted);
  margin:0 0 1.25rem;
  max-width:60ch;
}
.lead.light{color:rgba(255,255,255,.76)}
.sec-head{margin-bottom:clamp(2.5rem,5vw,4rem)}
.sec-head.center{text-align:center}
.sec-head.center .lead{margin-inline:auto}
.sec-head.between{display:flex;align-items:flex-end;justify-content:space-between;gap:2rem;flex-wrap:wrap}

/* --- buttons ------------------------------------------------------------- */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:.6rem;
  padding:1.05rem 2.2rem;
  font-size:.78rem;font-weight:400;letter-spacing:.17em;text-transform:uppercase;
  border:1px solid transparent;border-radius:var(--r);
  cursor:pointer;
  transition:background .4s var(--ease),color .4s var(--ease),border-color .4s var(--ease),transform .4s var(--ease);
}
.btn-solid{background:var(--brass);color:#fff;border-color:var(--brass)}
.btn-solid:hover{background:#95762f;border-color:#95762f}
.btn-line{background:transparent;color:#fff;border-color:rgba(255,255,255,.45)}
.btn-line:hover{background:rgba(255,255,255,.1);border-color:#fff}
.btn-ghost{background:transparent;border-color:currentColor;padding:.72rem 1.4rem;font-size:.7rem}
.btn-ghost:hover{background:var(--brass);border-color:var(--brass);color:#fff}
.btn-wide{width:100%;margin-top:1.5rem}
.btn:disabled{opacity:.4;cursor:not-allowed}
.btn:focus-visible,a:focus-visible,button:focus-visible,summary:focus-visible,
input:focus-visible,select:focus-visible,textarea:focus-visible{
  outline:2px solid var(--brass);outline-offset:3px
}

.link-arrow{
  display:inline-flex;align-items:center;gap:.7rem;
  font-size:.76rem;letter-spacing:.17em;text-transform:uppercase;color:var(--brass);
  padding-bottom:.35rem;border-bottom:1px solid rgba(168,134,63,.3);
  transition:gap .35s var(--ease),border-color .35s var(--ease);
}
.link-arrow:hover{gap:1.1rem;border-color:var(--brass)}
.link-arrow .ico{width:18px;height:18px}
.ico{width:22px;height:22px;flex:none}

/* --- header -------------------------------------------------------------- */
.site-head{
  position:fixed;inset:0 0 auto;z-index:60;
  background:var(--paper);
  border-bottom:1px solid var(--line);
  transition:background .45s var(--ease),border-color .45s var(--ease),transform .4s var(--ease);
}
.site-head.is-over{background:transparent;border-bottom-color:transparent;color:#fff}
.site-head.is-over .brand-sub{color:rgba(255,255,255,.6)}
.site-head.stuck{background:rgba(255,255,255,.97);backdrop-filter:saturate(1.4) blur(14px);
  border-bottom-color:var(--line);color:var(--ink)}
.site-head.stuck .brand-sub{color:var(--muted)}
.site-head.hide{transform:translateY(-100%)}
body:not(.has-hero){padding-top:0}
.head-in{display:flex;align-items:center;gap:2rem;min-height:84px}
@media(min-width:1000px){.head-in{min-height:96px}}

.brand{display:flex;align-items:center;gap:.85rem;flex:none}
.brand-mark{display:block;width:40px;height:28px;color:var(--brass)}
.brand-txt{display:flex;flex-direction:column;line-height:1.1}
.brand-name{font-family:var(--serif);font-size:1.42rem;letter-spacing:.02em}
.brand-sub{font-size:.6rem;letter-spacing:.3em;text-transform:uppercase;color:var(--muted)}

.nav-main{display:none;gap:2.3rem;margin-inline:auto}
@media(min-width:1000px){.nav-main{display:flex}}
.nav-main a{
  position:relative;font-size:.76rem;letter-spacing:.17em;text-transform:uppercase;
  padding-block:.4rem;transition:color .3s var(--ease);
}
.nav-main a::after{
  content:"";position:absolute;left:0;bottom:0;width:0;height:1px;background:var(--brass);
  transition:width .4s var(--ease);
}
.nav-main a:hover::after,.nav-main a.on::after{width:100%}
.nav-main a.on{color:var(--brass)}

.head-side{display:flex;align-items:center;gap:1.4rem;margin-left:auto}
.lang{display:flex;align-items:center;gap:.45rem;font-size:.72rem;letter-spacing:.14em}
.lang a{opacity:.5;transition:opacity .3s}
.lang a.on,.lang a:hover{opacity:1;color:var(--brass)}
.head-cta{display:none}
@media(min-width:1000px){.head-cta{display:inline-flex}}

.burger{display:flex;flex-direction:column;justify-content:center;gap:5px;
  width:44px;height:44px;padding:0 10px;background:none;border:0;cursor:pointer}
.burger span{display:block;height:1px;background:currentColor;transition:transform .35s var(--ease)}
@media(min-width:1000px){.burger{display:none}}

/* --- drawer -------------------------------------------------------------- */
.drawer{position:fixed;inset:0;z-index:90;background:var(--ink);color:#fff;
  display:flex;opacity:0;transition:opacity .4s var(--ease)}
.drawer[hidden]{display:none}
.drawer.open{opacity:1}
.drawer-in{margin:auto;width:100%;max-width:var(--shell);padding:5rem var(--gut) 3rem;
  display:flex;flex-direction:column;gap:3rem;height:100%;justify-content:center}
.drawer-close{position:absolute;top:1.6rem;right:var(--gut);width:46px;height:46px;
  background:none;border:1px solid var(--line-lt);border-radius:50%;cursor:pointer;
  display:grid;place-items:center}
.drawer-close svg{width:20px;height:20px}
.drawer-nav{display:flex;flex-direction:column;gap:.3rem}
.drawer-nav a{font-family:var(--serif);font-size:clamp(2rem,9vw,3.2rem);line-height:1.25;
  transition:color .3s,padding-left .35s var(--ease)}
.drawer-nav a:hover{color:var(--brass-2);padding-left:.6rem}
.drawer-foot{display:flex;flex-direction:column;gap:.5rem;font-size:.85rem;
  color:rgba(255,255,255,.65);border-top:1px solid var(--line-lt);padding-top:2rem}

/* --- hero ---------------------------------------------------------------- */
.hero{position:relative;min-height:100svh;display:flex;flex-direction:column;
  justify-content:flex-end;color:#fff;overflow:hidden}
.page-hero{position:relative;min-height:clamp(52vh,62vw,74vh);display:flex;align-items:flex-end;
  color:#fff;overflow:hidden;padding-bottom:clamp(3rem,7vw,5.5rem)}
.hero-media,.cta-media{position:absolute;inset:0;z-index:0}
.hero-media .pic,.cta-media .pic{height:100%}
.hero-media img,.cta-media img{width:100%;height:100%;object-fit:cover}
.hero-scrim{position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(10,14,17,.62) 0%,rgba(10,14,17,.28) 32%,rgba(10,14,17,.52) 70%,rgba(10,14,17,.86) 100%)}
.hero-in{position:relative;z-index:1;padding-bottom:clamp(3.5rem,8vw,6rem);padding-top:9rem}
.page-hero-in{position:relative;z-index:1;padding-top:8rem}
.hero-lead{font-size:clamp(1.05rem,.98rem + .5vw,1.3rem);line-height:1.7;
  color:rgba(255,255,255,.82);max-width:46ch;margin:1.8rem 0 2.6rem}
.hero-cta{display:flex;gap:1rem;flex-wrap:wrap}

.hero-facts{position:relative;z-index:1;border-top:1px solid var(--line-lt);
  background:rgba(10,14,17,.42);backdrop-filter:blur(8px)}
.facts-row{display:flex;flex-wrap:wrap;gap:1.5rem 2.5rem;padding-block:1.6rem;align-items:center}
.fact{display:flex;align-items:center;gap:.65rem;font-size:.8rem;letter-spacing:.1em;
  text-transform:uppercase;color:rgba(255,255,255,.74)}
.fact-ico{width:24px;height:24px;color:var(--brass-2)}
.fact-val{font-family:var(--serif);font-size:1.7rem;letter-spacing:0;text-transform:none;color:#fff}
.fact-price{margin-left:auto}
.facts-inline{color:var(--muted);justify-content:space-between;padding:2rem 0;
  border-block:1px solid var(--line)}
.facts-inline .fact{color:var(--muted)}
.facts-inline .fact-val{color:var(--ink)}
.facts-inline .fact-ico{color:var(--brass)}

/* --- split --------------------------------------------------------------- */
.split{display:grid;gap:clamp(2.5rem,6vw,5rem);align-items:center}
@media(min-width:900px){.split{grid-template-columns:1fr 1fr}}
.split-rev .split-txt{order:2}
@media(max-width:899px){.split-rev .split-txt{order:0}}
.split-img{position:relative}
.split-img img{width:100%;aspect-ratio:4/3;object-fit:cover}
.split-img-sm{position:absolute;right:-1.5rem;bottom:-2.5rem;width:44%;max-width:230px;
  border:8px solid var(--paper);box-shadow:0 24px 50px -24px rgba(17,22,26,.45);display:none}
@media(min-width:900px){.split-img-sm{display:block}}
.split-img-sm img{aspect-ratio:1/1}
.split-map iframe{width:100%;aspect-ratio:4/3;border:0;filter:grayscale(.3) contrast(1.05)}

.note-free{display:flex;align-items:center;gap:.6rem;font-size:.9rem;color:var(--muted);
  margin:0 0 1.8rem}
.note-free .ico{width:18px;height:18px;color:var(--brass)}

/* --- highlights ---------------------------------------------------------- */
.hl-grid{display:grid;gap:1px;background:var(--line-lt)}
@media(min-width:680px){.hl-grid{grid-template-columns:repeat(2,1fr)}}
@media(min-width:1050px){.hl-grid{grid-template-columns:repeat(4,1fr)}}
.hl{background:var(--ink);padding:clamp(2rem,3.5vw,2.75rem)}
.hl-ico{display:grid;place-items:center;width:56px;height:56px;margin-bottom:1.6rem;
  border:1px solid rgba(198,168,104,.55);border-radius:50%;color:var(--brass-2)}
.hl h3{font-family:var(--serif);font-size:1.5rem;margin-bottom:.85rem;color:#fff}
.hl p{margin:0;font-size:.95rem;line-height:1.75;color:rgba(255,255,255,.64)}

.hl-ico .ico{width:25px;height:25px}

/* --- mosaic -------------------------------------------------------------- */
.mosaic{display:grid;grid-template-columns:repeat(2,1fr);gap:4px;margin-top:3rem}
@media(min-width:700px){.mosaic{grid-template-columns:repeat(4,1fr)}}
.mo{margin:0;overflow:hidden;position:relative}
.mo a{display:block;height:100%}
.mo img{width:100%;height:100%;object-fit:cover;aspect-ratio:1/1;
  transition:transform 1.1s var(--ease),filter .6s var(--ease)}
.mo:hover img{transform:scale(1.055)}
@media(min-width:700px){
  .mo-1{grid-column:span 2;grid-row:span 2}
  .mo-1 img{aspect-ratio:1/1}
  .mo-6{grid-column:span 2}
  .mo-6 img{aspect-ratio:2/1}
}
.mo figcaption{position:absolute;left:0;right:0;bottom:0;padding:1.4rem 1.2rem .9rem;
  font-size:.74rem;letter-spacing:.14em;text-transform:uppercase;color:#fff;
  background:linear-gradient(transparent,rgba(10,14,17,.78));opacity:0;
  transition:opacity .4s var(--ease)}
.mo:hover figcaption{opacity:1}

.strip{display:grid;grid-template-columns:repeat(2,1fr);gap:4px}
@media(min-width:700px){.strip{grid-template-columns:repeat(4,1fr)}}
.strip-item{margin:0;overflow:hidden}
.strip-item img{width:100%;aspect-ratio:3/4;object-fit:cover;
  transition:transform 1.1s var(--ease)}
.strip-item:hover img{transform:scale(1.055)}

/* --- gallery page -------------------------------------------------------- */
.filters{display:flex;flex-wrap:wrap;gap:.6rem;margin-bottom:3rem;justify-content:center}
.chip{padding:.62rem 1.3rem;background:transparent;border:1px solid var(--line);
  border-radius:100px;font-size:.72rem;letter-spacing:.15em;text-transform:uppercase;
  cursor:pointer;color:var(--muted);transition:all .35s var(--ease)}
.chip:hover{border-color:var(--brass);color:var(--brass)}
.chip.on{background:var(--ink);border-color:var(--ink);color:#fff}
.gal-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,300px),1fr));gap:1rem}
.gal-item{margin:0;overflow:hidden;position:relative;background:var(--cream)}
.gal-item.out{display:none}
.gal-item img{width:100%;aspect-ratio:3/2;object-fit:cover;
  transition:transform 1.1s var(--ease)}
.gal-item:hover img{transform:scale(1.05)}
.gal-item figcaption{position:absolute;inset:auto 0 0;padding:1.5rem 1.1rem .95rem;
  font-size:.73rem;letter-spacing:.13em;text-transform:uppercase;color:#fff;
  background:linear-gradient(transparent,rgba(10,14,17,.8));opacity:0;transition:opacity .4s}
.gal-item:hover figcaption{opacity:1}

/* --- layout / amenities -------------------------------------------------- */
.layout-grid{display:grid;gap:clamp(2rem,4vw,3rem)}
@media(min-width:900px){.layout-grid{grid-template-columns:1fr 1fr 1fr}}
.layout-card h3{font-family:var(--serif);font-size:1.75rem;margin-bottom:1.4rem;
  padding-bottom:1rem;border-bottom:1px solid var(--line)}
.layout-img img{width:100%;aspect-ratio:3/4;object-fit:cover}
.ticks{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.75rem}
.ticks li{display:flex;gap:.8rem;align-items:flex-start;font-size:.95rem;color:var(--muted)}
.tick{width:16px;height:16px;margin-top:.4rem;color:var(--brass);stroke-width:2}
.amen-grid{display:grid;gap:clamp(2rem,4vw,3rem)}
@media(min-width:620px){.amen-grid{grid-template-columns:1fr 1fr}}
@media(min-width:1050px){.amen-grid{grid-template-columns:repeat(4,1fr)}}
.amen h3{font-size:.76rem;letter-spacing:.2em;text-transform:uppercase;color:var(--brass);
  margin-bottom:1.3rem;padding-bottom:.9rem;border-bottom:1px solid var(--line)}

.terms-grid{display:grid;gap:1px;margin:0;background:var(--line-lt)}
@media(min-width:620px){.terms-grid{grid-template-columns:repeat(2,1fr)}}
@media(min-width:1050px){.terms-grid{grid-template-columns:repeat(4,1fr)}}
.terms-grid>div{background:var(--ink);padding:1.9rem}
.terms-grid .wide{grid-column:1/-1}
@media(min-width:1050px){.terms-grid .wide{grid-column:span 2}}
.terms-grid dt{font-size:.7rem;letter-spacing:.2em;text-transform:uppercase;
  color:var(--brass-2);margin-bottom:.7rem}
.terms-grid dd{margin:0;font-family:var(--serif);font-size:1.4rem;color:#fff}

/* --- reviews ------------------------------------------------------------- */
.rev-grid{display:grid;gap:clamp(1.5rem,3vw,2.2rem)}
@media(min-width:780px){.rev-grid{grid-template-columns:repeat(3,1fr)}}
.rev{margin:0;padding:clamp(2rem,3.5vw,2.6rem);background:var(--cream);border-top:2px solid var(--brass)}
.rev-stars{display:flex;gap:.25rem;margin-bottom:1.3rem;color:var(--brass)}
.star{width:15px;height:15px;fill:currentColor;stroke:none}
.rev p{margin:0 0 1.6rem;font-family:var(--serif);font-size:1.28rem;line-height:1.52;color:var(--ink)}
.rev footer{display:flex;flex-direction:column;font-size:.78rem;letter-spacing:.12em;
  text-transform:uppercase}
.rev footer span{color:var(--muted);margin-top:.25rem}

/* --- distances ----------------------------------------------------------- */
.dist-list{list-style:none;margin:2rem 0 0;padding:0}
.dist-list li{display:flex;justify-content:space-between;gap:1.5rem;padding:1rem 0;
  border-bottom:1px solid var(--line-lt);font-size:.95rem;color:rgba(255,255,255,.72)}
.dist-list li span:last-child{color:var(--brass-2);letter-spacing:.1em;font-size:.84rem}

/* --- activities ---------------------------------------------------------- */
.act-grid{display:grid;gap:clamp(2rem,4vw,2.8rem)}
@media(min-width:700px){.act-grid{grid-template-columns:repeat(2,1fr)}}
@media(min-width:1050px){.act-grid{grid-template-columns:repeat(3,1fr)}}
.act-img{overflow:hidden}
.act-img img{width:100%;aspect-ratio:4/3;object-fit:cover;transition:transform 1.1s var(--ease)}
.act:hover .act-img img{transform:scale(1.055)}
.act-body{padding-top:1.6rem}
.act-meta{display:flex;align-items:center;gap:.5rem;font-size:.7rem;letter-spacing:.18em;
  text-transform:uppercase;color:var(--brass);margin:0 0 .8rem}
.act-meta .ico{width:15px;height:15px}
.act h3{font-family:var(--serif);font-size:1.65rem;margin-bottom:.8rem}
.act p{margin:0;font-size:.95rem;color:var(--muted);line-height:1.76}

/* --- photo credits ------------------------------------------------------- */
.act-img{position:relative}
.credit{margin:.55rem 0 0;font-size:.68rem;letter-spacing:.04em;color:var(--muted-2);line-height:1.5}
.credit a{color:var(--muted);border-bottom:1px solid var(--line)}
.credit a:hover{color:var(--brass);border-color:var(--brass)}
.sec-credits{padding-block:0 clamp(3rem,6vw,4.5rem)}
.credit-foot{max-width:70ch;font-size:.72rem}

/* --- cta band ------------------------------------------------------------ */
.cta-band .hero-scrim{background:linear-gradient(180deg,rgba(10,14,17,.72),rgba(10,14,17,.6) 45%,rgba(10,14,17,.8))}
.cta-band{position:relative;padding-block:clamp(5rem,11vw,9rem);color:#fff;
  text-align:center;overflow:hidden}
.cta-in{position:relative;z-index:1}
.cta-in .hero-cta{justify-content:center;margin-top:2.4rem}
.cta-in p{max-width:46ch;margin-inline:auto}

/* --- contact ------------------------------------------------------------- */
.ct-grid{display:grid;gap:1px;background:var(--line)}
@media(min-width:620px){.ct-grid{grid-template-columns:repeat(2,1fr)}}
@media(min-width:1050px){.ct-grid{grid-template-columns:repeat(4,1fr)}}
.ct-card{background:var(--paper);padding:clamp(2rem,3.5vw,2.8rem);
  transition:background .4s var(--ease)}
.ct-card:hover{background:var(--cream)}
.ct-ico{display:grid;place-items:center;width:50px;height:50px;margin-bottom:1.4rem;
  border:1px solid var(--line);border-radius:50%;color:var(--brass)}
.ct-card h3{font-size:.72rem;letter-spacing:.2em;text-transform:uppercase;
  color:var(--muted);margin-bottom:.6rem}
.ct-card p{margin:0;font-family:var(--serif);font-size:1.3rem;color:var(--ink)}

.legal-dl{margin:2rem 0 0}
.legal-dl>div{display:grid;gap:.25rem;padding:1.05rem 0;border-bottom:1px solid var(--line)}
@media(min-width:560px){.legal-dl>div{grid-template-columns:auto 1fr;gap:2rem}}
.legal-dl dt{font-size:.7rem;letter-spacing:.18em;text-transform:uppercase;color:var(--muted-2)}
.legal-dl dd{margin:0;color:var(--ink)}
.legal-dl a{border-bottom:1px solid var(--line)}

/* --- FAQ ----------------------------------------------------------------- */
.faq details{border-bottom:1px solid var(--line)}
.faq summary{display:flex;align-items:center;justify-content:space-between;gap:1.5rem;
  padding:1.4rem 0;cursor:pointer;list-style:none;
  font-family:var(--serif);font-size:1.3rem;color:var(--ink);transition:color .3s}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"";width:12px;height:12px;flex:none;
  border-right:1px solid var(--brass);border-bottom:1px solid var(--brass);
  transform:rotate(45deg) translateY(-3px);transition:transform .35s var(--ease)}
.faq details[open] summary{color:var(--brass)}
.faq details[open] summary::after{transform:rotate(225deg) translateY(-3px)}
.faq p{margin:0 0 1.6rem;color:var(--muted);max-width:68ch}

/* --- prose --------------------------------------------------------------- */
.prose h2{font-family:var(--serif);font-size:1.75rem;font-weight:400;margin:2.8rem 0 1rem;color:var(--ink)}
.prose p,.prose li{color:var(--muted);line-height:1.8}
.prose ul{padding-left:1.2rem}
.prose li{margin-bottom:.5rem}
.prose a{color:var(--brass);border-bottom:1px solid rgba(168,134,63,.35)}

/* --- calendar ------------------------------------------------------------ */
.cal{display:grid;gap:2.5rem}
@media(min-width:620px){.cal{grid-template-columns:1fr 1fr}}
.cal-mini{background:var(--paper);padding:clamp(1.5rem,3vw,2.2rem);
  box-shadow:0 30px 60px -40px rgba(17,22,26,.4)}
.cal-nav{grid-column:1/-1;display:flex;align-items:center;justify-content:space-between;
  margin-bottom:-1rem}
.cal-nav button{width:40px;height:40px;border:1px solid var(--line);background:none;
  border-radius:50%;cursor:pointer;display:grid;place-items:center;color:var(--ink);
  transition:all .3s var(--ease)}
.cal-nav button:hover:not(:disabled){border-color:var(--brass);color:var(--brass)}
.cal-nav button:disabled{opacity:.3;cursor:not-allowed}
.cal-nav svg{width:18px;height:18px}
.cal-m-title{font-family:var(--serif);font-size:1.4rem;text-align:center;
  margin-bottom:1.1rem;text-transform:capitalize}
.cal-dow{display:grid;grid-template-columns:repeat(7,1fr);margin-bottom:.4rem}
.cal-dow span{text-align:center;font-size:.62rem;letter-spacing:.14em;text-transform:uppercase;
  color:var(--muted-2);padding-bottom:.5rem}
.cal-days{display:grid;grid-template-columns:repeat(7,1fr);gap:2px}
.cal-d{position:relative;aspect-ratio:1;border:0;background:transparent;cursor:pointer;
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;
  font-size:.88rem;color:var(--ink);border-radius:2px;
  transition:background .25s var(--ease),color .25s var(--ease)}
.cal-d .cal-rate{font-size:.56rem;letter-spacing:.02em;color:var(--muted-2)}
.cal-d:hover:not(:disabled){background:var(--cream-2)}
.cal-d.empty{visibility:hidden;cursor:default}
.cal-d.past,.cal-d:disabled{color:var(--muted-2);opacity:.38;cursor:not-allowed}
.cal-d.busy{color:var(--muted-2);cursor:not-allowed;
  background:repeating-linear-gradient(135deg,transparent,transparent 4px,rgba(17,22,26,.07) 4px,rgba(17,22,26,.07) 5px)}
.cal-d.busy .cal-rate{display:none}
.cal-d.sel{background:var(--ink);color:#fff}
.cal-d.sel .cal-rate{color:rgba(255,255,255,.6)}
.cal-d.edge{background:var(--brass);color:#fff}
.cal-d.edge .cal-rate{color:rgba(255,255,255,.75)}
.cal-d.in-range{background:var(--cream-2)}
.cal-legend{display:flex;flex-wrap:wrap;gap:1.4rem;margin-top:1.8rem;
  font-size:.74rem;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.cal-legend span{display:flex;align-items:center;gap:.5rem}
.sw{width:13px;height:13px;border-radius:2px;flex:none}
.sw-free{border:1px solid var(--line);background:var(--paper)}
.sw-busy{background:repeating-linear-gradient(135deg,#e8e4dc,#e8e4dc 4px,#cfc8bb 4px,#cfc8bb 5px)}
.sw-sel{background:var(--brass)}
.cal-loading{grid-column:1/-1;text-align:center;color:var(--muted-2);padding:3rem 0;font-size:.85rem}

/* --- booking form -------------------------------------------------------- */
.bk{display:grid;gap:clamp(2.5rem,5vw,4rem);align-items:start}
@media(min-width:950px){.bk{grid-template-columns:1fr 380px}}
.bk-step{margin-bottom:clamp(3rem,6vw,4.5rem)}
.step-h{display:flex;align-items:center;gap:1.1rem;font-family:var(--serif);
  font-size:1.9rem;margin-bottom:2rem}
.step-n{display:grid;place-items:center;width:38px;height:38px;flex:none;
  border:1px solid var(--brass);border-radius:50%;color:var(--brass);
  font-family:var(--sans);font-size:.82rem}
.guests{display:grid;grid-template-columns:1fr 1fr;gap:1.2rem;margin-top:2.2rem}
.fld-grid{display:grid;gap:1.2rem}
@media(min-width:620px){.fld-grid{grid-template-columns:1fr 1fr}}
.fld{display:flex;flex-direction:column;gap:.5rem}
.fld.wide{grid-column:1/-1}
.fld>span{font-size:.68rem;letter-spacing:.18em;text-transform:uppercase;color:var(--muted)}
.fld input,.fld select,.fld textarea{
  width:100%;padding:.95rem 1.05rem;font:inherit;font-size:.96rem;color:var(--ink);
  background:var(--paper);border:1px solid var(--line);border-radius:var(--r);
  transition:border-color .3s var(--ease)}
.fld input:focus,.fld select:focus,.fld textarea:focus{border-color:var(--brass);outline:none}
.fld textarea{resize:vertical;min-height:110px}
.fld.err input,.fld.err textarea{border-color:#b4452f}
.check{display:flex;gap:.85rem;align-items:flex-start;margin-top:1.8rem;
  font-size:.88rem;color:var(--muted);line-height:1.6}
.check input{margin-top:.3rem;width:17px;height:17px;flex:none;accent-color:var(--brass)}
.check a{color:var(--brass);border-bottom:1px solid rgba(168,134,63,.35)}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.form-err{margin:1.4rem 0 0;padding:.95rem 1.1rem;background:#fdf1ee;border-left:2px solid #b4452f;
  color:#8e3524;font-size:.9rem}

.bk-side{position:sticky;top:120px;display:grid;gap:1.5rem}
.quote{background:var(--cream);overflow:hidden}
.quote-img img{width:100%;aspect-ratio:16/9;object-fit:cover}
.quote-body{padding:clamp(1.6rem,3vw,2.1rem)}
.quote-body h3{font-size:.7rem;letter-spacing:.2em;text-transform:uppercase;
  color:var(--brass);margin-bottom:1.3rem}
.quote-empty{margin:0;font-size:.92rem;color:var(--muted)}
.quote-lines{margin:0}
.quote-lines>div{display:flex;justify-content:space-between;gap:1rem;padding:.6rem 0;
  font-size:.92rem;color:var(--muted)}
.quote-lines dt,.quote-lines dd{margin:0}
.quote-lines dd{color:var(--ink);white-space:nowrap}
.quote-lines .tot{border-top:1px solid var(--line);margin-top:.6rem;padding-top:1.1rem;
  font-family:var(--serif);font-size:1.5rem;color:var(--ink)}
.quote-lines .tot dt,.quote-lines .tot dd{color:var(--ink)}
.quote-lines .sub{font-size:.82rem}
.quote-note{margin:1.5rem 0 0;padding-top:1.2rem;border-top:1px solid var(--line);
  font-size:.78rem;line-height:1.6;color:var(--muted)}

.side-contact,.side-ota{padding:1.6rem 1.8rem;border:1px solid var(--line)}
.side-contact p,.side-ota p{margin:0 0 .9rem;font-size:.7rem;letter-spacing:.18em;
  text-transform:uppercase;color:var(--muted-2)}
.side-tel,.side-mail{display:flex;align-items:center;gap:.7rem;padding:.35rem 0;
  font-size:.98rem;color:var(--ink);transition:color .3s}
.side-tel:hover,.side-mail:hover{color:var(--brass)}
.side-tel .ico,.side-mail .ico{width:17px;height:17px;color:var(--brass)}
.ota-links{display:flex;gap:1.5rem;font-size:.92rem}
.ota-links a{color:var(--brass);border-bottom:1px solid rgba(168,134,63,.35)}

.thanks{text-align:center;padding:clamp(3rem,7vw,5rem) 0}
.thanks-ico{display:grid;place-items:center;width:72px;height:72px;margin:0 auto 2rem;
  border:1px solid var(--brass);border-radius:50%;color:var(--brass)}
.thanks-ico .ico{width:30px;height:30px;stroke-width:1.6}
.thanks .lead{margin-inline:auto;margin-bottom:2.2rem}

/* --- lightbox ------------------------------------------------------------ */
.lb{position:fixed;inset:0;z-index:120;background:rgba(10,13,16,.96);
  display:none;align-items:center;justify-content:center;opacity:0;
  transition:opacity .35s var(--ease)}
.lb.open{display:flex;opacity:1}
.lb img{max-width:92vw;max-height:84vh;object-fit:contain}
.lb-cap{position:absolute;left:0;right:0;bottom:2rem;text-align:center;color:rgba(255,255,255,.7);
  font-size:.76rem;letter-spacing:.16em;text-transform:uppercase}
.lb-btn{position:absolute;width:50px;height:50px;border:1px solid var(--line-lt);
  background:rgba(255,255,255,.05);border-radius:50%;color:#fff;cursor:pointer;
  display:grid;place-items:center;transition:background .3s}
.lb-btn:hover{background:rgba(255,255,255,.16)}
.lb-btn svg{width:20px;height:20px}
.lb-x{top:1.5rem;right:1.5rem}
.lb-p{left:1.5rem;top:50%;transform:translateY(-50%)}
.lb-n{right:1.5rem;top:50%;transform:translateY(-50%)}

/* --- footer -------------------------------------------------------------- */
.site-foot{background:var(--ink);color:rgba(255,255,255,.6);padding-top:clamp(4rem,8vw,6rem)}
.foot-grid{display:grid;gap:clamp(2.5rem,5vw,3.5rem);padding-bottom:3.5rem}
@media(min-width:700px){.foot-grid{grid-template-columns:repeat(2,1fr)}}
@media(min-width:1000px){.foot-grid{grid-template-columns:2fr 1fr 1fr 1.3fr}}
.foot-brand .brand-mark{width:44px;height:31px;color:var(--brass-2);margin-bottom:1.5rem}
.foot-tag{margin:0;max-width:34ch;line-height:1.75;font-size:.95rem}
.foot-social{display:flex;gap:1.4rem;margin-top:1.6rem;font-size:.78rem;letter-spacing:.14em;
  text-transform:uppercase}
.foot-social a:hover{color:var(--brass-2)}
.foot-col{display:flex;flex-direction:column;gap:.7rem}
.foot-col h3{font-size:.68rem;letter-spacing:.22em;text-transform:uppercase;
  color:var(--brass-2);margin-bottom:.7rem}
.foot-col a{font-size:.94rem;transition:color .3s}
.foot-col a:hover{color:#fff}
.foot-addr{margin:.4rem 0 0;font-size:.9rem}
.foot-base{display:flex;flex-wrap:wrap;gap:1rem;justify-content:space-between;
  padding-block:1.8rem;border-top:1px solid var(--line-lt);font-size:.78rem;
  color:rgba(255,255,255,.4)}
.foot-base p{margin:0}

/* --- reveal -------------------------------------------------------------- */
.reveal{opacity:0;transform:translateY(26px);
  transition:opacity .9s var(--ease),transform .9s var(--ease)}
.reveal.in{opacity:1;transform:none}
.reveal.d1{transition-delay:.1s}
.reveal.d2{transition-delay:.2s}
.reveal.d3{transition-delay:.3s}
@media (prefers-reduced-motion:reduce){
  .reveal{opacity:1;transform:none;transition:none}
  *{animation-duration:.01ms!important;transition-duration:.01ms!important}
}
