@font-face{font-family:'Bodoni Moda';font-style:normal;font-weight:400;font-display:swap;src:url(/assets/fonts/bodoni-400.woff2) format('woff2');}
@font-face{font-family:'Bodoni Moda';font-style:normal;font-weight:500;font-display:swap;src:url(/assets/fonts/bodoni-500.woff2) format('woff2');}
@font-face{font-family:'Pinyon Script';font-style:normal;font-weight:400;font-display:swap;src:url(/assets/fonts/pinyon-400.woff2) format('woff2');}
@font-face{font-family:'Poppins';font-style:normal;font-weight:300;font-display:swap;src:url(/assets/fonts/poppins-300.woff2) format('woff2');}
@font-face{font-family:'Poppins';font-style:normal;font-weight:400;font-display:swap;src:url(/assets/fonts/poppins-400.woff2) format('woff2');}
@font-face{font-family:'Poppins';font-style:normal;font-weight:500;font-display:swap;src:url(/assets/fonts/poppins-500.woff2) format('woff2');}

:root{
  --ivory:#FBF8F1; --paper:#FFFFFF; --sand:#F3EEE1; --ink:#15120D; --ink-soft:#6E665A;
  --line:#E3DCCB; --good:#3F7D52; --warn:#B4791F; --bad:#B23B3B;
  --shadow:0 34px 74px -34px rgba(40,32,18,.24);
  --didone:"Bodoni Moda","Didot","Bodoni MT",Georgia,serif;
  --script:"Pinyon Script","Snell Roundhand",cursive;
  --sans:"Poppins",system-ui,-apple-system,"Segoe UI",sans-serif;
  --maxw:1180px; --logo-filter:none;
}
@media (prefers-color-scheme:dark){:root{
  --ivory:#15120D; --paper:#1E1A13; --sand:#241F16; --ink:#F3ECDD; --ink-soft:#A99F8C; --line:#362F22;
  --good:#6FBF86; --warn:#E0B152; --bad:#E27B7B; --shadow:0 34px 74px -30px rgba(0,0,0,.6); --logo-filter:invert(1) brightness(1.6);
}}
:root[data-theme="light"]{--ivory:#FBF8F1;--paper:#FFFFFF;--sand:#F3EEE1;--ink:#15120D;--ink-soft:#6E665A;--line:#E3DCCB;--good:#3F7D52;--warn:#B4791F;--bad:#B23B3B;--shadow:0 34px 74px -34px rgba(40,32,18,.24);--logo-filter:none;}
:root[data-theme="dark"]{--ivory:#15120D;--paper:#1E1A13;--sand:#241F16;--ink:#F3ECDD;--ink-soft:#A99F8C;--line:#362F22;--good:#6FBF86;--warn:#E0B152;--bad:#E27B7B;--shadow:0 34px 74px -30px rgba(0,0,0,.6);--logo-filter:invert(1) brightness(1.6);}

*{box-sizing:border-box;}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;}
body{margin:0;background:var(--ivory);color:var(--ink);font-family:var(--sans);font-weight:300;font-size:16.5px;line-height:1.72;-webkit-font-smoothing:antialiased;overflow-x:hidden;}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 26px;}
a{color:inherit;text-decoration:none;}
img{max-width:100%;display:block;}
:focus-visible{outline:1.5px solid var(--ink);outline-offset:4px;}
.script{font-family:var(--script);font-weight:400;}
.eyebrow{font-family:var(--sans);font-weight:400;text-transform:uppercase;letter-spacing:.42em;font-size:11px;color:var(--ink-soft);margin:0;}

.dots{height:118px;width:100%;background-image:radial-gradient(circle at center,var(--ink) 5.5px,transparent 6.5px);background-size:50px 50px;background-position:center top;opacity:.92;-webkit-mask-image:linear-gradient(to bottom,#000 8%,transparent 96%);mask-image:linear-gradient(to bottom,#000 8%,transparent 96%);}

.btn{display:inline-flex;align-items:center;justify-content:center;gap:9px;font-family:var(--sans);font-weight:400;text-transform:uppercase;letter-spacing:.18em;font-size:12px;padding:15px 30px;border-radius:2px;border:1px solid var(--ink);color:var(--ink);background:transparent;cursor:pointer;transition:background .35s,color .35s,transform .25s;text-align:center;}
.btn:hover{background:var(--ink);color:var(--ivory);transform:translateY(-2px);}
.btn:disabled{opacity:.4;cursor:not-allowed;transform:none;}
.btn-solid{background:var(--ink);color:var(--ivory);}
.btn-solid:hover{background:transparent;color:var(--ink);}

nav{position:sticky;top:0;z-index:60;background:color-mix(in srgb,var(--ivory) 86%,transparent);backdrop-filter:blur(12px);border-bottom:1px solid var(--line);}
.nav-in{display:flex;align-items:center;justify-content:space-between;height:78px;}
.nav-logo{height:34px;width:auto;filter:var(--logo-filter);}
.nav-links{display:flex;align-items:center;gap:34px;}
.nav-links a:not(.btn){font-family:var(--sans);font-weight:400;text-transform:uppercase;letter-spacing:.16em;font-size:12px;color:var(--ink-soft);transition:color .3s;}
.nav-links a:not(.btn):hover,.nav-links a.active{color:var(--ink);}
.nav-toggle{display:none;background:none;border:none;cursor:pointer;flex-direction:column;gap:5px;padding:8px;}
.nav-toggle span{display:block;width:24px;height:1.5px;background:var(--ink);transition:transform .3s,opacity .3s;}
.nav-toggle.open span:nth-child(1){transform:translateY(6.5px) rotate(45deg);}
.nav-toggle.open span:nth-child(2){opacity:0;}
.nav-toggle.open span:nth-child(3){transform:translateY(-6.5px) rotate(-45deg);}
.nav-mobile{display:none;flex-direction:column;background:var(--ivory);border-bottom:1px solid var(--line);}
.nav-mobile.open{display:flex;}
.nav-mobile a{padding:15px 26px;text-transform:uppercase;letter-spacing:.16em;font-size:13px;color:var(--ink);border-top:1px solid var(--line);}
@media (max-width:860px){.nav-links{display:none;}.nav-toggle{display:flex;}}

.hero{text-align:center;padding-bottom:30px;position:relative;}
.hero .dots{position:absolute;top:0;left:0;}
.hero-inner{position:relative;z-index:1;padding-top:78px;}
.hero-logo{width:min(430px,74vw);height:auto;margin:0 auto 6px;filter:var(--logo-filter);}
.hero .tagline{font-family:var(--script);font-size:clamp(34px,6vw,58px);line-height:1;margin:4px 0 20px;}
.hero .lede{max-width:52ch;margin:0 auto 30px;color:var(--ink-soft);font-size:16.5px;}
.hero-cta{display:flex;gap:16px;justify-content:center;flex-wrap:wrap;}
.hero-photo{margin:46px auto 0;max-width:940px;}
.hero-photo .archimg{position:relative;overflow:hidden;box-shadow:var(--shadow);border-radius:50% 50% 8px 8px/34% 34% 3px 3px;aspect-ratio:16/10;}
.hero-photo .archimg img{width:100%;height:100%;object-fit:cover;}

section{padding:92px 0;}
.page-top{padding-top:64px;}
.stitle{text-align:center;margin-bottom:54px;}
.stitle .eyebrow{margin-bottom:14px;}
.stitle h2{font-family:var(--script);font-weight:400;font-size:clamp(52px,8vw,96px);line-height:.95;margin:0;}
.stitle h2 .cap{font-family:var(--didone);font-weight:500;letter-spacing:.04em;display:block;font-size:.62em;margin-top:-.06em;}
.stitle p{color:var(--ink-soft);max-width:56ch;margin:16px auto 0;}

.entry{margin-bottom:26px;}
.entry-head{border-top:1px solid var(--line);border-bottom:1px solid var(--line);text-align:center;padding:7px 0;}
.entry-head h3{font-family:var(--script);font-weight:400;font-size:clamp(28px,4vw,40px);margin:0;line-height:1.15;}
.entry-body{padding:18px 4px 0;color:var(--ink-soft);}
.entry-body p{margin:0 0 12px;}
.tips{list-style:none;padding:0;margin:8px 0 0;}
.tips li{position:relative;padding-left:26px;margin-bottom:6px;}
.tips li::before{content:"\2661";position:absolute;left:0;top:-1px;color:var(--ink);font-size:15px;}

.menu-cats{display:grid;grid-template-columns:1fr 1fr;gap:20px 56px;max-width:980px;margin:0 auto;}
.menu-cats .entry.full{grid-column:1/-1;}
.prow{display:flex;align-items:baseline;gap:14px;padding:9px 0;}
.prow .n{font-family:var(--sans);font-weight:300;text-transform:uppercase;letter-spacing:.08em;font-size:13.5px;color:var(--ink);}
.prow .n small{display:block;text-transform:none;letter-spacing:0;font-size:12px;color:var(--ink-soft);}
.prow .lead{flex:1;border-bottom:1px dotted var(--line);transform:translateY(-4px);}
.prow .p{font-family:var(--didone);font-weight:500;font-size:20px;color:var(--ink);font-variant-numeric:tabular-nums;white-space:nowrap;}
.prow .p .u{font-family:var(--sans);font-weight:300;font-size:11px;letter-spacing:.04em;color:var(--ink-soft);margin-left:3px;}
.addgrid{display:grid;grid-template-columns:1fr 1fr;gap:0 44px;}
.menu-note{text-align:center;margin:34px auto 0;font-family:var(--script);font-size:22px;color:var(--ink-soft);}
@media (max-width:720px){.menu-cats,.addgrid{grid-template-columns:1fr;}}

.work-grid{column-count:3;column-gap:16px;}
.tile{position:relative;break-inside:avoid;margin-bottom:16px;overflow:hidden;border-radius:3px;box-shadow:var(--shadow);background:var(--sand);}
.tile img{width:100%;height:auto;transition:transform .8s cubic-bezier(.16,1,.3,1);}
.tile:hover img{transform:scale(1.05);}
.tile figcaption{position:absolute;left:0;right:0;bottom:0;z-index:2;padding:22px 16px 14px;color:#fff;font-family:var(--sans);font-weight:300;text-transform:uppercase;letter-spacing:.16em;font-size:11px;background:linear-gradient(to top,rgba(20,16,8,.62),transparent);opacity:0;transform:translateY(6px);transition:.45s;}
.tile:hover figcaption{opacity:1;transform:none;}
@media (max-width:900px){.work-grid{column-count:2;}}
@media (max-width:520px){.work-grid{column-count:1;}}

.pol-wrap{max-width:760px;margin:0 auto;}
.pol-note{text-align:center;margin-top:40px;font-family:var(--sans);text-transform:uppercase;letter-spacing:.14em;font-size:11.5px;color:var(--ink-soft);line-height:1.9;}

.about-grid{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:center;max-width:1020px;margin:0 auto;}
.quote-panel{position:relative;background:var(--sand);border-radius:46% 46% 6px 6px/20% 20% 2px 2px;padding:56px 46px 50px;box-shadow:var(--shadow);}
.quote-panel .qmark{font-family:var(--didone);font-weight:500;font-size:78px;line-height:.4;color:var(--ink);opacity:.22;}
.quote-panel .qtext{font-family:var(--didone);font-weight:400;font-style:italic;font-size:clamp(18px,2.3vw,22px);line-height:1.55;color:var(--ink);margin:14px 0 24px;}
.quote-panel .qref{font-family:var(--sans);font-weight:400;text-transform:uppercase;letter-spacing:.2em;font-size:11px;color:var(--ink-soft);margin:0;}
.portrait{position:relative;aspect-ratio:3/4;overflow:hidden;box-shadow:var(--shadow);border-radius:50% 50% 6px 6px/26% 26% 2px 2px;background:var(--sand);display:grid;place-items:center;text-align:center;}
.portrait .ph{color:var(--ink-soft);padding:20px;}
.portrait .ph .em{font-family:var(--script);font-size:46px;color:var(--ink);}
.portrait .ph .tx{font-family:var(--sans);text-transform:uppercase;letter-spacing:.18em;font-size:10.5px;margin-top:8px;}
.about-body p{color:var(--ink-soft);margin:0 0 15px;max-width:52ch;}
.about-body .quote{font-family:var(--script);font-size:clamp(30px,4vw,44px);color:var(--ink);line-height:1.15;margin:8px 0 20px;}
.about-body .sig{font-family:var(--script);font-size:30px;color:var(--ink);}
@media (max-width:820px){.about-grid{grid-template-columns:1fr;gap:34px;}.portrait{max-width:340px;margin:0 auto;}}

.book-strip{background:var(--ink);color:var(--ivory);text-align:center;}
.book-strip .stitle h2,.book-strip .stitle .eyebrow{color:var(--ivory);}
.book-strip .lede{max-width:48ch;margin:0 auto;color:color-mix(in srgb,var(--ivory) 75%,transparent);}
.book-strip .btn{border-color:var(--ivory);color:var(--ivory);margin-top:30px;}
.book-strip .btn:hover{background:var(--ivory);color:var(--ink);}

footer{padding:64px 0 54px;text-align:center;background:var(--ivory);border-top:1px solid var(--line);}
.foot-logo{width:210px;height:auto;margin:0 auto 18px;filter:var(--logo-filter);}
footer p{color:var(--ink-soft);font-size:12.5px;letter-spacing:.04em;margin:5px 0;}
footer a.link{color:var(--ink);border-bottom:1px solid var(--line);}

.mbar{position:fixed;left:0;right:0;bottom:0;z-index:70;display:none;gap:10px;padding:12px 16px calc(12px + env(safe-area-inset-bottom));background:color-mix(in srgb,var(--ivory) 92%,transparent);backdrop-filter:blur(12px);border-top:1px solid var(--line);}
.mbar .btn{flex:1;}
@media (max-width:860px){.mbar{display:flex;}body.has-mbar{padding-bottom:78px;}}

[data-reveal]{opacity:0;transform:translateY(24px);transition:opacity .8s ease,transform .8s cubic-bezier(.16,1,.3,1);}
[data-reveal].in{opacity:1;transform:none;}
@media (prefers-reduced-motion:reduce){*{animation-duration:.001ms!important;transition-duration:.01ms!important;}html{scroll-behavior:auto;}[data-reveal]{opacity:1!important;transform:none!important;}}

/* ---------- Booking ---------- */
.booking{max-width:720px;margin:0 auto;}
.steps{display:flex;justify-content:center;gap:0;margin-bottom:40px;}
.step{display:flex;align-items:center;gap:10px;color:var(--ink-soft);font-size:11px;text-transform:uppercase;letter-spacing:.16em;}
.step .num{width:26px;height:26px;border-radius:50%;border:1px solid var(--line);display:grid;place-items:center;font-family:var(--didone);}
.step.active .num{background:var(--ink);color:var(--ivory);border-color:var(--ink);}
.step.done .num{border-color:var(--ink);color:var(--ink);}
.step .bar{width:34px;height:1px;background:var(--line);margin:0 12px;}
@media (max-width:560px){.step .lbl{display:none;}.step .bar{width:20px;}}
.bstep{display:none;}
.bstep.on{display:block;animation:fadeIn .4s ease;}
@keyframes fadeIn{from{opacity:0;transform:translateY(8px);}to{opacity:1;transform:none;}}
.svc-list{display:grid;gap:12px;}
.svc-card{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:18px 22px;border:1px solid var(--line);border-radius:4px;background:var(--paper);cursor:pointer;transition:border-color .25s,transform .2s;}
.svc-card:hover{border-color:var(--ink);transform:translateY(-2px);}
.svc-card.sel{border-color:var(--ink);box-shadow:inset 0 0 0 1px var(--ink);}
.svc-card .sv-name{font-family:var(--sans);font-weight:400;text-transform:uppercase;letter-spacing:.06em;font-size:14px;}
.svc-card .sv-dur{font-size:12px;color:var(--ink-soft);}
.svc-card .sv-price{font-family:var(--didone);font-weight:500;font-size:22px;}
.cal{background:var(--paper);border:1px solid var(--line);border-radius:6px;padding:16px;max-width:380px;width:100%;margin:0 auto;}
.cal-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px;}
.cal-head button{background:none;border:1px solid var(--line);border-radius:4px;width:34px;height:34px;cursor:pointer;color:var(--ink);font-size:16px;}
.cal-head button:disabled{opacity:.3;cursor:not-allowed;}
.cal-title{font-family:var(--didone);font-weight:500;letter-spacing:.06em;text-transform:uppercase;font-size:14px;}
.cal-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:3px;}
.cal-dow{text-align:center;font-size:10px;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-soft);padding:6px 0;min-width:0;}
.cal-day{aspect-ratio:1;border:none;background:none;border-radius:50%;cursor:pointer;font-family:var(--sans);font-size:14px;color:var(--ink);transition:background .2s;min-width:0;padding:0;}
.cal-day.empty{cursor:default;}
.cal-day.off{color:var(--line);cursor:not-allowed;}
.cal-day.avail:hover{background:var(--sand);}
.cal-day.sel{background:var(--ink);color:var(--ivory);}
.slots{display:grid;grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:10px;margin-top:8px;}
.slot{padding:12px;border:1px solid var(--line);border-radius:4px;background:var(--paper);cursor:pointer;font-size:13px;text-align:center;transition:border-color .2s;font-variant-numeric:tabular-nums;}
.slot:hover{border-color:var(--ink);}
.slot.sel{background:var(--ink);color:var(--ivory);border-color:var(--ink);}
.field{margin-bottom:18px;}
.field label{display:block;font-size:11px;text-transform:uppercase;letter-spacing:.14em;color:var(--ink-soft);margin-bottom:7px;}
.field input,.field textarea,.field select{width:100%;padding:13px 15px;border:1px solid var(--line);border-radius:4px;background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:15px;}
.field textarea{min-height:90px;resize:vertical;}
.contact-row{display:grid;grid-template-columns:150px 1fr;gap:12px;}
@media (max-width:520px){.contact-row{grid-template-columns:1fr;}}
.summary{background:var(--sand);border-radius:6px;padding:22px;margin-bottom:22px;}
.summary .row{display:flex;justify-content:space-between;padding:6px 0;font-size:14px;}
.summary .row b{font-family:var(--didone);font-weight:500;}
.bnav{display:flex;justify-content:space-between;gap:14px;margin-top:26px;}
.msg{padding:14px 18px;border-radius:4px;font-size:14px;margin-top:16px;}
.msg.err{background:color-mix(in srgb,var(--bad) 14%,var(--paper));color:var(--bad);}
.msg.ok{background:color-mix(in srgb,var(--good) 14%,var(--paper));color:var(--good);}
.confirm{text-align:center;padding:30px 0;}
.confirm .chk{font-family:var(--script);font-size:64px;color:var(--ink);}
.deposit-note{text-align:center;font-size:12.5px;color:var(--ink-soft);margin-top:16px;}

/* ---------- Admin ---------- */
.admin-wrap{max-width:1000px;margin:0 auto;}
.login-box{max-width:360px;margin:60px auto;text-align:center;}
.tabs{display:flex;gap:6px;border-bottom:1px solid var(--line);margin-bottom:28px;flex-wrap:wrap;}
.tab{padding:12px 20px;background:none;border:none;border-bottom:2px solid transparent;cursor:pointer;font-family:var(--sans);text-transform:uppercase;letter-spacing:.12em;font-size:12px;color:var(--ink-soft);}
.tab.active{color:var(--ink);border-bottom-color:var(--ink);}
.tab .badge{display:inline-block;min-width:18px;padding:0 5px;margin-left:7px;background:var(--ink);color:var(--ivory);border-radius:10px;font-size:11px;line-height:18px;}
.tabpane{display:none;}
.tabpane.on{display:block;}
.bk-card{border:1px solid var(--line);border-radius:6px;padding:18px 20px;margin-bottom:14px;background:var(--paper);}
.bk-top{display:flex;justify-content:space-between;align-items:flex-start;gap:14px;flex-wrap:wrap;}
.bk-when{font-family:var(--didone);font-weight:500;font-size:18px;}
.bk-svc{font-size:13px;color:var(--ink-soft);text-transform:uppercase;letter-spacing:.08em;margin-top:2px;}
.bk-meta{font-size:13.5px;margin-top:10px;line-height:1.7;}
.bk-meta a{border-bottom:1px solid var(--line);}
.pill{display:inline-block;padding:3px 11px;border-radius:20px;font-size:11px;text-transform:uppercase;letter-spacing:.08em;}
.pill.pending{background:color-mix(in srgb,var(--warn) 18%,var(--paper));color:var(--warn);}
.pill.confirmed{background:color-mix(in srgb,var(--good) 18%,var(--paper));color:var(--good);}
.pill.declined,.pill.cancelled{background:color-mix(in srgb,var(--bad) 14%,var(--paper));color:var(--bad);}
.pill.paid{background:color-mix(in srgb,var(--good) 18%,var(--paper));color:var(--good);}
.pill.awaiting{background:color-mix(in srgb,var(--warn) 18%,var(--paper));color:var(--warn);}
.bk-actions{display:flex;gap:8px;margin-top:14px;flex-wrap:wrap;}
.mini{padding:8px 16px;font-size:11px;border-radius:3px;border:1px solid var(--line);background:none;cursor:pointer;text-transform:uppercase;letter-spacing:.1em;color:var(--ink);}
.mini:hover{border-color:var(--ink);}
.mini.go{background:var(--ink);color:var(--ivory);border-color:var(--ink);}
.mini.no:hover{border-color:var(--bad);color:var(--bad);}
.hours-row{display:grid;grid-template-columns:120px 60px 1fr 1fr;gap:12px;align-items:center;padding:10px 0;border-bottom:1px solid var(--line);}
.hours-row .day{font-weight:400;text-transform:uppercase;letter-spacing:.08em;font-size:13px;}
.time-in{padding:9px;border:1px solid var(--line);border-radius:4px;background:var(--paper);color:var(--ink);width:100%;}
.block-row{display:flex;justify-content:space-between;align-items:center;padding:12px 0;border-bottom:1px solid var(--line);font-size:14px;}
.admin-actions{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px;flex-wrap:wrap;gap:12px;}
.empty{text-align:center;color:var(--ink-soft);padding:40px;font-family:var(--script);font-size:24px;}
