body{
  margin:0;background:var(--cream);color:var(--ink);font-family:var(--sans);font-weight:300;
  font-size:clamp(1rem,.94rem + .28vw,1.0625rem);line-height:1.78;
  -webkit-font-smoothing:antialiased;overflow-x:hidden;
  display:flex;flex-direction:column;min-height:100vh;
}
[id]{scroll-margin-top:6.5rem}
.wrap{max-width:var(--maxw);margin-inline:auto;padding-inline:var(--gutter);width:100%}
.eyebrow{
  font-family:var(--cond);font-weight:400;font-size:clamp(.8125rem,.765rem + .2vw,.875rem);
  letter-spacing:.18em;text-transform:uppercase;color:var(--ink-soft);line-height:1;
}
.btn:hover::before,.btn:focus-visible::before{transform:translateY(0)}
.btn:hover,.btn:focus-visible{color:var(--ink-deep);border-color:var(--apricot)}

/* ============================ NAV ============================ */
.nav{
  position:fixed;top:0;left:0;right:0;z-index:100;padding:1.6rem 0;
  transition:background .5s var(--ease),box-shadow .5s var(--ease),padding .5s var(--ease);
}
.nav__sublink[aria-current="page"]{color:var(--terracotta)}


/* ========================= PAGE HEAD ========================= */
main{flex:1 0 auto}
.phead{background:var(--dune);padding:clamp(8.5rem,15vh,11rem) 0 clamp(3rem,6vw,5rem)}
.phead__t{
  font-family:var(--serif);font-size:clamp(2.6rem,1.4rem + 5.4vw,6rem);
  line-height:.94;letter-spacing:-.04em;margin-top:1.4rem;
}
.phead__t em{font-style:italic;color:var(--terracotta)}
.phead__sub{
  margin-top:clamp(1.2rem,2.4vw,1.8rem);max-width:52ch;
  font-family:var(--serif);font-size:clamp(1.1rem,.98rem + .6vw,1.45rem);
  line-height:1.4;color:var(--ink-soft);
}
/* Page-specific: this standfirst runs the full content measure instead of the
   shared 52ch, so it reads as one band across the head rather than a narrow
   column with empty dune beside it. Everything above stays identical to the
   other small pages. */
.phead__sub--wide{max-width:none}

/* ========================= PAGE BODY ========================= */
.pbody{padding:clamp(3.5rem,7vw,6rem) 0 clamp(5rem,10vw,8rem)}
.soon{
  border:1.5px solid #141211;padding:clamp(2.2rem,5vw,4rem) clamp(1.5rem,4vw,3.5rem);
  max-width:760px;
}
.soon__k{
  font-family:var(--script);font-size:clamp(2.2rem,1.6rem + 2.4vw,3.6rem);
  color:var(--terracotta);line-height:.9;display:inline-block;transform:rotate(-2deg);
}
.soon p{margin-top:1.6rem;color:var(--ink-soft);font-size:.9875rem;line-height:1.8;max-width:56ch}
.soon__cta{display:flex;flex-wrap:wrap;gap:.85rem;margin-top:clamp(1.8rem,3vw,2.4rem)}

.prose{max-width:70ch}
.prose h2{
  font-family:var(--serif);font-size:clamp(1.3rem,1.1rem + .8vw,1.75rem);
  letter-spacing:-.025em;margin:clamp(2.4rem,4.4vw,3.4rem) 0 1rem;
}
.prose h2:first-child{margin-top:0}
.prose h3{
  font-family:var(--cond);font-weight:500;font-size:.9375rem;letter-spacing:.14em;text-transform:uppercase;
  color:var(--ink-faint);margin:2rem 0 .8rem;
}
.prose p,.prose li{color:var(--ink-soft);font-size:.9875rem;line-height:1.8}
.prose ul{margin:0 0 1.15em;padding-left:1.2rem}
.prose li{margin-bottom:.5rem}
.prose a{color:var(--terracotta)}
.prose hr{border:0;height:1px;background:var(--hairline);margin:clamp(2.4rem,4.4vw,3.4rem) 0}
.todo{
  background:rgba(237,165,125,.18);border-left:2px solid var(--terracotta);
  padding:1.1em 1.3em;margin:0 0 1.6em;font-size:.9125rem;line-height:1.7;color:var(--ink-soft);
}
.todo b{font-weight:600}
.fill{
  background:rgba(83,79,81,.1);border-bottom:1px dashed var(--tan);
  padding:0 .35em;border-radius:2px;font-style:normal;
}
.linklist{list-style:none;margin:0;padding:0;display:grid;gap:0;max-width:760px}
.linklist li{border-top:1px solid var(--hairline)}
.linklist li:last-child{border-bottom:1px solid var(--hairline)}
.linklist a{
  display:flex;align-items:baseline;justify-content:space-between;gap:1.5rem;
  padding:clamp(1.1rem,2.2vw,1.6rem) 0;text-decoration:none;
  transition:padding-inline .45s var(--ease),color .45s var(--ease);
}
.linklist a:hover{padding-inline:.9rem;color:var(--terracotta)}
.linklist .t{font-family:var(--serif);font-size:clamp(1.2rem,1.05rem + .7vw,1.65rem);letter-spacing:-.025em}
.linklist .m{font-family:var(--cond);font-weight:500;font-size:.875rem;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-faint)}

/* The booking calendar itself is styled in css/consent-theme.css,
   alongside the consent banner it depends on. */

/* ========================= FOOTER ============================ */
.foot{background:var(--ink-deep);color:#FFFFFF;padding:clamp(2.75rem,5.5vw,4.25rem) 0 1.75rem;flex-shrink:0}

/* ====================== RESPONSIVE =========================== */
@media (max-width:1080px){
  .nav__links{
    position:fixed;inset:0 0 auto;top:0;background:var(--cream);
    flex-direction:column;justify-content:center;gap:2rem;height:100dvh;
    clip-path:inset(0 0 100% 0);transition:clip-path .7s var(--ease);margin-bottom:0;
  }
  .nav.is-open .nav__links{clip-path:inset(0 0 0 0)}
  .nav__link{font-size:1.5rem;font-family:var(--serif);letter-spacing:.04em;text-transform:none}
  .burger{display:block;position:relative;z-index:2}
}
@media (max-width:860px){
  .foot__grid{grid-template-columns:1fr 1fr}
  .foot__brand{grid-column:1/-1}
}
@media (max-width:640px){
  .foot__grid{grid-template-columns:1fr}
  .soon__cta .btn{justify-content:center;width:100%}
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.001ms!important;transition-duration:.001ms!important;scroll-behavior:auto!important}
}
