@font-face{font-family:"Archivo";font-style:normal;font-weight:100 900;font-stretch:62% 125%;font-display:swap;src:url(../fonts/archivo-latin-wdth-normal.woff2) format("woff2")}
@font-face{font-family:"Archivo";font-style:italic;font-weight:100 900;font-stretch:62% 125%;font-display:swap;src:url(../fonts/archivo-latin-wdth-italic.woff2) format("woff2")}
/* Shared chrome for every page: top line, header, side booking tab, buttons, footer. */
.label{font-family:var(--f-body);font-stretch:125%;font-size:.72rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.6em;min-height:50px;padding:0 1.6em;border-radius:0;font:600 .95rem/1 var(--f-body);letter-spacing:.02em;text-decoration:none;border:1.5px solid var(--ink);cursor:pointer;white-space:nowrap;transition:background .2s,color .2s,border-color .2s}
.btn svg{width:1.05em;height:1.05em}
.btn-ink{background:var(--ink);color:var(--white)}
.btn-ink:hover{background:var(--cherry);border-color:var(--cherry)}
.btn-line{background:transparent;color:var(--ink)}
.btn-line:hover{background:var(--ink);color:var(--white)}
.link{font-weight:600;text-decoration:underline;text-underline-offset:5px;text-decoration-thickness:1.5px}
.topline{background:var(--ink);color:#e9e5e0;font-size:.82rem}
.topline .wrap{display:flex;justify-content:space-between;align-items:center;gap:12px;min-height:36px}
.topline a{text-decoration:none}
.topline .status{padding:0;background:none;box-shadow:none;border-radius:0;font-size:inherit;color:inherit;display:inline-flex;align-items:center;gap:8px;white-space:nowrap;font-weight:600}
.topline .status .dot{width:8px;height:8px;border-radius:50%;background:#e9a35f}
.topline .status.open .dot{background:#4fd18a;box-shadow:0 0 0 4px rgba(79,209,138,.25)}
.tel{display:inline-flex;align-items:center;gap:6px;white-space:nowrap}
.tel svg{width:14px;height:14px}
.mast{position:sticky;top:env(safe-area-inset-top,0px);z-index:50;background:rgba(251,249,246,.94);backdrop-filter:blur(12px);border-bottom:1px solid var(--line)}
.mast .wrap{display:flex;align-items:center;gap:24px;min-height:78px}
.mbrand{display:flex;align-items:center;gap:12px;text-decoration:none;margin-right:auto}
.mbrand .mono{width:46px;height:46px;border-radius:50%;background:var(--ink);color:var(--white);display:grid;place-items:center;font-family:var(--f-display);font-style:italic;font-size:1.15rem}
.mbrand b{display:block;font-family:var(--f-display);font-weight:500;font-size:1.45rem;line-height:1;letter-spacing:.01em;white-space:nowrap}
.mbrand span{display:block;font-size:.72rem;letter-spacing:.2em;text-transform:uppercase;color:var(--mute);margin-top:4px;white-space:nowrap}
.mast nav{display:flex;gap:26px;font-size:.95rem;font-weight:500}
.mast nav a{text-decoration:none;padding:6px 0;border-bottom:2px solid transparent}
.mast nav a:hover,.mast nav a[aria-current="page"]{border-bottom-color:var(--cherry)}
.mburger{display:none;background:none;border:1.5px solid var(--ink);width:46px;height:46px;color:var(--ink);cursor:pointer;place-items:center}
.mburger svg{width:20px;height:20px}
.drawer{display:none}
@media (max-width:980px){
  .mast nav,.mast .btn{display:none}
  .mburger{display:grid}
  .drawer.open{display:grid;gap:2px;padding:8px clamp(16px,4vw,40px) 22px;border-top:1px solid var(--line)}
  .drawer a{font-family:var(--f-display);font-size:1.9rem;text-decoration:none;padding:4px 0}
  .drawer a.book{color:var(--cherry);font-style:italic}
}
@media (max-width:420px){.topline .hide-sm{display:none}.mbrand b{font-size:1.2rem}}
/* Fixed side tab, like a salon appointment card */
.sidetab{position:fixed;right:0;top:50%;transform:translateY(-50%);z-index:40;writing-mode:vertical-rl;background:var(--ink);color:var(--white);text-decoration:none;font-weight:600;font-size:.9rem;letter-spacing:.06em;padding:18px 12px;border-radius:0}
.sidetab:hover{background:var(--cherry)}
@media (max-width:980px){.sidetab{writing-mode:horizontal-tb;top:auto;bottom:0;left:0;right:0;transform:none;text-align:center;padding:16px 18px calc(16px + env(safe-area-inset-bottom,0px));font-size:1rem}body{padding-bottom:56px}}
/* ---------- Footer ---------- */
.foot{margin-top:clamp(64px,9vw,120px);background:var(--cobalt);color:#fff;padding-block:clamp(40px,6vw,72px) 26px}
.foot .big{font-family:var(--f-display);font-size:clamp(2.8rem,8vw,7rem);line-height:.92;margin-bottom:34px}
.foot .cols{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:24px;font-size:.95rem}
.foot h4,.foot .fh{font-weight:700;margin:0 0 8px;font-size:.78rem;letter-spacing:.16em;text-transform:uppercase}
.foot ul{list-style:none;margin:0;padding:0;display:grid;gap:4px;opacity:.88}
.foot a{text-decoration:none}
.foot a:hover{text-decoration:underline}
.foot .base{margin-top:30px;padding-top:16px;border-top:1px solid rgba(255,255,255,.3);display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;font-size:.82rem;opacity:.88}
@media (max-width:760px){.foot .cols{grid-template-columns:1fr 1fr}}

.mast,.foot,.topline,.sidetab{font-family:var(--f-body)}
.mast .btn{min-height:46px}

/* ===== Type: aspirational and personal. Fraunces (warm, soft serif) for headlines, Archivo for reading ===== */
@font-face{font-family:"Fraunces";font-style:normal;font-weight:100 900;font-display:swap;src:url(../fonts/fraunces-latin-opsz-normal.woff2) format("woff2")}
@font-face{font-family:"Fraunces";font-style:italic;font-weight:100 900;font-display:swap;src:url(../fonts/fraunces-latin-opsz-italic.woff2) format("woff2")}
:root{--f-display:"Fraunces",Georgia,"Times New Roman",serif;--f-body:"Archivo","Helvetica Neue",Arial,system-ui,sans-serif}
h1,h2,h3{font-family:var(--f-display)!important;font-weight:380!important;text-transform:none!important;letter-spacing:-.025em!important;line-height:1.02!important;font-style:normal;font-optical-sizing:auto}
h1 em,h2 em,h3 em{font-style:italic!important;font-weight:330;color:var(--cherry)}
.mbrand b{font-family:var(--f-display);font-weight:450;text-transform:none;letter-spacing:-.01em;font-size:1.5rem}
.mbrand .mono{font-family:var(--f-display);font-style:italic;font-size:1.1rem;letter-spacing:0}
.drawer a{font-family:var(--f-display);text-transform:none}
.drawer a.book{font-style:italic}
.foot .big{font-family:var(--f-display);font-weight:330;text-transform:none;line-height:1;letter-spacing:-.03em}
.foot .big em{font-style:italic;color:#ff8fa3}
blockquote,.q p,.bk blockquote,.field-card blockquote,.item-q,.review p,.review.feature p,.pop-q p,.card-q,.meet blockquote,.show-quote p,.rot p{font-family:var(--f-display)!important;font-style:italic;font-weight:360;letter-spacing:-.01em}
.stats b,.figures b,.trust b,.land-facts b,.field-card .price,.quote .total b,.step::before,.price{font-family:var(--f-display);font-weight:350}
.chip{font-family:var(--f-body);font-weight:700}
/* ===== Motion: reveal on scroll, hover zoom, hover fade ===== */
html.js .reveal{opacity:0;transform:translateY(30px);transition:opacity .9s ease,transform .9s cubic-bezier(.2,.7,.2,1)}
html.js .reveal.seen{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){html.js .reveal{opacity:1;transform:none}}
.mbrand b{color:var(--ink)}
p[style*="f-display"]{font-family:var(--f-body)!important;font-style:italic;font-weight:500}
/* Palette discipline */
.foot{background:var(--ink)}
@media (min-width:981px){.sidetab{display:none}}
:focus-visible{outline-color:var(--cherry)}

.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
/* ===== Signature: floating booking button + back to top (desktop) ===== */
.float-book,.totop{position:fixed;z-index:45;bottom:22px;opacity:0;visibility:hidden;transform:translateY(14px);transition:opacity .45s ease,transform .45s ease,visibility .45s,background .2s}
.float-book{left:22px;display:inline-flex;align-items:center;gap:.6em;min-height:50px;padding:0 1.4em;background:var(--ink);color:#fff;text-decoration:none;font:600 .92rem/1 var(--f-body);letter-spacing:.04em;box-shadow:0 10px 30px rgba(20,18,21,.22)}
.float-book svg{width:1.05em;height:1.05em}
.float-book:hover{background:var(--cherry)}
.totop{right:22px;width:50px;height:50px;display:grid;place-items:center;background:rgba(251,249,246,.94);color:var(--ink);border:1.5px solid var(--ink);cursor:pointer}
.totop svg{width:20px;height:20px}
.totop:hover{background:var(--ink);color:#fff}
.float-book.is-on,.totop.is-on{opacity:1;visibility:visible;transform:none}
@media (max-width:980px){.float-book,.totop{display:none}}
@media (prefers-reduced-motion:reduce){.float-book,.totop{transition:opacity .2s,visibility .2s;transform:none}}
body[data-page="book"] .float-book,body[data-page="diary"] .float-book{display:none}
