:root{
    --ink:#2b2624; --ink-soft:#6b615c; --cream:#faf7f3; --sand:#f1eae2;
    --blush:#e8d8cf; --bronze:#a8836a; --bronze-dark:#8a6a54; --line:#e3d9cf;
    --white:#ffffff; --err:#b4574e;
  }
  *{margin:0;padding:0;box-sizing:border-box}
  html{scroll-behavior:smooth}
  body{font-family:'Jost',sans-serif;font-weight:300;color:var(--ink);background:var(--cream);line-height:1.7;-webkit-font-smoothing:antialiased}
  h1,h2,h3,h4{font-family:'Cormorant Garamond',serif;font-weight:500;line-height:1.15}
  a{color:inherit}
  .wrap{max-width:1100px;margin:0 auto;padding:0 24px}
  .rv{opacity:0;transform:translateY(22px);transition:opacity .7s ease,transform .7s ease}
  .rv.in{opacity:1;transform:none}

  header{position:sticky;top:0;z-index:50;background:rgba(250,247,243,.92);backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}
  .nav{display:flex;align-items:center;justify-content:space-between;height:72px}
  .logo{font-family:'Cormorant Garamond',serif;font-size:1.55rem;letter-spacing:.06em;text-decoration:none}
  .logo span{color:var(--bronze)}
  .nav-links{display:flex;gap:30px;align-items:center;list-style:none}
  .nav-links a{text-decoration:none;font-size:.8rem;letter-spacing:.22em;text-transform:uppercase;color:var(--ink-soft);transition:color .2s}
  .nav-links a:hover{color:var(--bronze-dark)}
  .btn{display:inline-block;text-decoration:none;font-size:.78rem;letter-spacing:.24em;text-transform:uppercase;padding:14px 32px;border:1px solid var(--bronze);color:var(--bronze-dark);background:transparent;transition:background .25s,color .25s;cursor:pointer;font-family:'Jost',sans-serif}
  .btn:hover{background:var(--bronze);color:var(--white)}
  .btn.solid{background:var(--bronze);color:var(--white)}
  .btn.solid:hover{background:var(--bronze-dark);border-color:var(--bronze-dark)}
  .btn.ghost{border-color:var(--line);color:var(--ink-soft)}
  .btn.ghost:hover{background:var(--sand);color:var(--ink)}
  .btn.sm{padding:10px 20px;font-size:.7rem}
  .nav .btn{padding:11px 24px}
  @media(max-width:900px){.nav-links li:not(:last-child){display:none}}

  .hero{position:relative;overflow:hidden;background:var(--ink);text-align:center;padding:128px 24px 136px;color:var(--cream)}
  .hero-slides{position:absolute;inset:0}
  .hero-slides .slide{
    position:absolute;inset:-4%;background-size:cover;background-position:center 25%;
    opacity:0;animation:heroFade 16s infinite;filter:saturate(.92);
    will-change:opacity,transform;
  }
  @keyframes heroFade{
    0%{opacity:0;transform:scale(1)}
    5%{opacity:1}
    25%{opacity:1}
    33%{opacity:0;transform:scale(1.09)}
    100%{opacity:0}
  }
  .hero::before{content:"";position:absolute;inset:0;z-index:1;
    background:linear-gradient(180deg, rgba(30,25,22,.82) 0%, rgba(30,25,22,.66) 45%, rgba(30,25,22,.85) 100%)}
  .hero-inner{position:relative;z-index:2}
  .hero .eyebrow{font-size:.75rem;letter-spacing:.38em;text-transform:uppercase;color:var(--blush);margin-bottom:26px}
  .hero h1{font-size:clamp(2.6rem,6.5vw,4.6rem);max-width:16ch;margin:0 auto 24px;color:var(--white)}
  .hero h1 em{font-style:italic;color:var(--blush)}
  .hero p{max-width:52ch;margin:0 auto 40px;color:rgba(250,247,243,.85);font-size:1.05rem}
  .hero .actions{display:flex;gap:16px;justify-content:center;flex-wrap:wrap}
  .hero .btn{border-color:var(--blush);color:var(--cream)}
  .hero .btn:hover{background:var(--blush);color:var(--ink)}
  .hero .btn.solid{background:var(--bronze);border-color:var(--bronze);color:var(--white)}
  .hero .btn.solid:hover{background:var(--bronze-dark)}
  .hero .cities{margin-top:52px;font-size:.78rem;letter-spacing:.3em;text-transform:uppercase;color:rgba(250,247,243,.6)}
  .hero .cities b{font-weight:400;color:var(--cream)}
  .flourish{width:60px;height:1px;background:var(--blush);margin:34px auto 0;position:relative}
  .flourish::before,.flourish::after{content:"";position:absolute;top:-2.5px;width:6px;height:6px;border-radius:50%;background:var(--blush)}
  .flourish::before{left:-12px}.flourish::after{right:-12px}
  @media (prefers-reduced-motion: reduce){.hero-slides .slide{animation:none}.hero-slides .slide:first-child{opacity:1}}

  /* ---------- stats strip ---------- */
  .stats{background:var(--cream);border-bottom:1px solid var(--line);padding:0}
  .stats .row{display:grid;grid-template-columns:repeat(4,1fr);max-width:1100px;margin:0 auto}
  @media(max-width:680px){.stats .row{grid-template-columns:1fr 1fr}}
  .stats .cell{text-align:center;padding:30px 12px;border-right:1px solid var(--line)}
  .stats .cell:last-child{border-right:none}
  @media(max-width:680px){.stats .cell:nth-child(2){border-right:none}.stats .cell:nth-child(-n+2){border-bottom:1px solid var(--line)}}
  .stats .n{font-family:'Cormorant Garamond',serif;font-size:1.9rem;color:var(--bronze-dark);line-height:1.2}
  .stats .l{font-size:.7rem;letter-spacing:.26em;text-transform:uppercase;color:var(--ink-soft)}

  /* ---------- mobile nav + book bar ---------- */
  .burger{display:none;background:none;border:none;cursor:pointer;padding:8px;flex-direction:column;gap:5px}
  .burger span{display:block;width:22px;height:1.5px;background:var(--ink);transition:transform .25s,opacity .25s}
  @media(max-width:900px){
    .burger{display:flex}
    .nav-links{position:absolute;top:72px;left:0;right:0;background:var(--cream);border-bottom:1px solid var(--line);
      flex-direction:column;padding:18px 24px 24px;gap:18px;display:none;align-items:flex-start}
    .nav-links.open{display:flex}
    .nav-links li{display:block !important}
  }
  .mobbar{display:none;position:fixed;left:0;right:0;bottom:0;z-index:60;background:var(--bronze);text-align:center;
    box-shadow:0 -8px 24px -12px rgba(43,38,36,.4)}
  .mobbar a{display:block;color:var(--white);text-decoration:none;font-size:.8rem;letter-spacing:.26em;text-transform:uppercase;padding:16px}
  @media(max-width:680px){.mobbar.show{display:block}}

  section{padding:92px 0}
  .sec-head{text-align:center;margin-bottom:56px}
  .sec-head .eyebrow{font-size:.72rem;letter-spacing:.36em;text-transform:uppercase;color:var(--bronze);margin-bottom:14px}
  .sec-head h2{font-size:clamp(2rem,4vw,2.9rem)}
  .sec-head p{max-width:56ch;margin:16px auto 0;color:var(--ink-soft)}

  /* ---------- price menu ---------- */
  .services{background:var(--white);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
  .cat-tabs{display:flex;justify-content:center;flex-wrap:wrap;gap:8px;margin-bottom:44px}
  .cat-tabs button{font-family:'Jost',sans-serif;font-weight:300;font-size:.78rem;letter-spacing:.18em;text-transform:uppercase;padding:11px 20px;border:1px solid var(--line);background:var(--white);color:var(--ink-soft);cursor:pointer;transition:all .2s}
  .cat-tabs button:hover{border-color:var(--bronze);color:var(--bronze-dark)}
  .cat-tabs button.sel{background:var(--bronze);border-color:var(--bronze);color:var(--white)}
  .menu-cols{columns:2;column-gap:56px;max-width:900px;margin:0 auto}
  @media(max-width:760px){.menu-cols{columns:1}}
  .menu-item{display:flex;justify-content:space-between;align-items:baseline;gap:14px;padding:11px 0;border-bottom:1px dashed var(--line);break-inside:avoid;font-size:.96rem}
  .menu-item .n{flex:1}
  .menu-item .d{font-size:.78rem;color:#b0a69c;white-space:nowrap}
  .menu-item .p{color:var(--bronze-dark);font-weight:400;white-space:nowrap}
  .svc-note{text-align:center;margin-top:38px;color:var(--ink-soft);font-size:.9rem;font-style:italic}

  /* ---------- team ---------- */
  .team-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
  @media(max-width:900px){.team-grid{grid-template-columns:repeat(2,1fr)}}
  @media(max-width:600px){.team-grid{grid-template-columns:1fr}}
  .member{background:var(--white);border:1px solid var(--line);padding:38px 28px;text-align:center;cursor:pointer;transition:border-color .25s,transform .25s,box-shadow .25s}
  .member:hover{border-color:var(--bronze);transform:translateY(-3px);box-shadow:0 18px 40px -26px rgba(43,38,36,.35)}
  .member .initials{width:112px;height:112px;margin:0 auto 20px;border-radius:50%;background:linear-gradient(135deg,var(--blush),var(--sand));display:flex;align-items:center;justify-content:center;font-family:'Cormorant Garamond',serif;font-size:1.8rem;color:var(--bronze-dark);position:relative;overflow:hidden;border:3px solid var(--white);box-shadow:0 0 0 1px var(--blush)}
  .member .initials img,.modal-head .initials img{width:100%;height:100%;object-fit:cover;display:block}
  .member h3{font-size:1.4rem}
  .member .role{font-size:.72rem;letter-spacing:.26em;text-transform:uppercase;color:var(--bronze);margin:7px 0 12px}
  .member p{color:var(--ink-soft);font-size:.9rem;min-height:44px}
  .member .view{display:inline-block;margin-top:16px;font-size:.72rem;letter-spacing:.24em;text-transform:uppercase;color:var(--bronze-dark);border-bottom:1px solid var(--blush);padding-bottom:3px}

  /* stylist modal */
  .modal-bg{position:fixed;inset:0;background:rgba(43,38,36,.55);z-index:90;display:none;align-items:flex-start;justify-content:center;padding:40px 18px;overflow-y:auto}
  .modal-bg.open{display:flex}
  .modal{background:var(--cream);max-width:640px;width:100%;border:1px solid var(--line);position:relative;animation:mup .35s ease}
  @keyframes mup{from{opacity:0;transform:translateY(26px)}to{opacity:1;transform:none}}
  .modal .close{position:absolute;top:14px;right:16px;background:none;border:none;font-size:1.5rem;color:var(--ink-soft);cursor:pointer;line-height:1}
  .modal .close:hover{color:var(--ink)}
  .modal-head{display:flex;gap:22px;align-items:center;padding:38px 40px 24px;border-bottom:1px solid var(--line)}
  .modal-head .initials{width:88px;height:88px;border-radius:50%;background:linear-gradient(135deg,var(--blush),var(--sand));display:flex;align-items:center;justify-content:center;font-family:'Cormorant Garamond',serif;font-size:1.9rem;color:var(--bronze-dark);flex-shrink:0}
  .modal-head h3{font-size:1.9rem}
  .modal-head .role{font-size:.72rem;letter-spacing:.26em;text-transform:uppercase;color:var(--bronze);margin-top:4px}
  .modal-head .ig{display:inline-block;margin-top:8px;font-size:.85rem;color:var(--bronze-dark);text-decoration:none;border-bottom:1px solid var(--blush)}
  .modal-body{padding:26px 40px 38px}
  .modal-body .bio{color:var(--ink-soft);font-size:.95rem;margin-bottom:18px}
  .modal-body .socials{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:26px}
  .modal-body .socials a{
    display:inline-flex;align-items:center;gap:8px;text-decoration:none;
    font-size:.74rem;letter-spacing:.18em;text-transform:uppercase;color:var(--bronze-dark);
    border:1px solid var(--line);padding:9px 16px;transition:border-color .2s,background .2s;
  }
  .modal-body .socials a:hover{border-color:var(--bronze);background:var(--cream)}
  .modal-body .socials a .ic{font-size:.95rem;line-height:1}
  .modal-body h4{font-size:1.2rem;margin-bottom:10px}
  .modal-body .menu-item{font-size:.93rem}
  .modal-body .m-note{font-size:.85rem;font-style:italic;color:var(--ink-soft);margin-top:12px}
  .modal-body .book-row{margin-top:28px;text-align:center}
  @media(max-width:560px){.modal-head{padding:30px 22px 18px}.modal-body{padding:22px 22px 30px}}

  /* ---------- gallery ---------- */
  .gallery{background:var(--white);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
  .gal-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
  @media(max-width:900px){.gal-grid{grid-template-columns:repeat(2,1fr)}}
  .gal{aspect-ratio:1;border:1px solid var(--line);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;text-decoration:none;text-align:center;padding:18px;transition:border-color .25s,background .25s;background:
    radial-gradient(circle at 30% 25%, var(--blush) 0%, transparent 55%),
    radial-gradient(circle at 75% 80%, var(--sand) 0%, transparent 60%),var(--cream)}
  .gal:hover{border-color:var(--bronze);background:var(--sand)}
  .gal .glyph{font-family:'Cormorant Garamond',serif;font-size:2rem;color:var(--bronze)}
  .gal .t{font-size:.72rem;letter-spacing:.24em;text-transform:uppercase;color:var(--ink)}
  .gal .s{font-size:.82rem;color:var(--ink-soft)}

  /* ---------- booking wizard ---------- */
  .booking{background:var(--sand)}
  .wizard{max-width:860px;margin:0 auto;background:var(--white);border:1px solid var(--line);box-shadow:0 24px 60px -30px rgba(43,38,36,.25)}
  .with-chip{display:none;justify-content:center;padding:14px 20px 0}
  .with-chip.on{display:flex}
  .with-chip span{display:inline-flex;align-items:center;gap:10px;font-size:.8rem;letter-spacing:.14em;text-transform:uppercase;color:var(--bronze-dark);border:1px dashed var(--bronze);padding:8px 16px}
  .with-chip button{background:none;border:none;cursor:pointer;color:var(--ink-soft);font-size:1rem;line-height:1}
  .steps{display:flex;border-bottom:1px solid var(--line)}
  .steps .st{flex:1;text-align:center;padding:18px 6px;font-size:.68rem;letter-spacing:.22em;text-transform:uppercase;color:var(--ink-soft);border-bottom:2px solid transparent;white-space:nowrap}
  .steps .st b{display:inline-flex;width:22px;height:22px;border-radius:50%;border:1px solid var(--line);align-items:center;justify-content:center;font-weight:400;margin-right:8px;font-size:.7rem}
  .steps .st.active{color:var(--bronze-dark);border-bottom-color:var(--bronze)}
  .steps .st.active b{background:var(--bronze);border-color:var(--bronze);color:var(--white)}
  .steps .st.done b{background:var(--blush);border-color:var(--blush);color:var(--bronze-dark)}
  @media(max-width:680px){.steps .st span{display:none}.steps .st b{margin-right:0}}
  .pane{padding:48px 52px;display:none}
  .pane.active{display:block;animation:fadeUp .45s ease}
  @keyframes fadeUp{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
  @media(max-width:680px){.pane{padding:34px 20px}}
  .pane h3{font-size:1.9rem;margin-bottom:6px}
  .pane .sub{color:var(--ink-soft);margin-bottom:30px;font-size:.97rem}
  .cards{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
  @media(max-width:680px){.cards{grid-template-columns:1fr 1fr}}
  .card{border:1px solid var(--line);padding:18px 16px;cursor:pointer;text-align:left;background:var(--white);transition:border-color .2s,background .2s;position:relative}
  .card:hover{border-color:var(--bronze)}
  .card.sel{border-color:var(--bronze);background:var(--cream)}
  .card.sel::after{content:"✓";position:absolute;top:10px;right:14px;color:var(--bronze);font-size:.9rem}
  .card .nm{font-family:'Cormorant Garamond',serif;font-size:1.2rem;line-height:1.2}
  .card .dt{font-size:.78rem;color:var(--ink-soft);margin-top:5px}
  .card .pr{font-size:.83rem;color:var(--bronze-dark);margin-top:2px}
  .seg{display:inline-flex;border:1px solid var(--line);margin-bottom:28px}
  .seg button{font-family:'Jost',sans-serif;font-weight:300;font-size:.85rem;letter-spacing:.14em;text-transform:uppercase;padding:12px 26px;background:var(--white);border:none;cursor:pointer;color:var(--ink-soft);transition:background .2s,color .2s}
  .seg button.sel{background:var(--bronze);color:var(--white)}
  .cal-time{display:grid;grid-template-columns:1fr 1fr;gap:36px}
  @media(max-width:680px){.cal-time{grid-template-columns:1fr}}
  .cal-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}
  .cal-head h4{font-size:1.25rem}
  .cal-head button{background:none;border:1px solid var(--line);width:34px;height:34px;cursor:pointer;color:var(--bronze-dark);font-size:1rem;transition:background .2s}
  .cal-head button:hover:not(:disabled){background:var(--sand)}
  .cal-head button:disabled{opacity:.3;cursor:default}
  .cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;text-align:center}
  .cal-grid .dow{font-size:.68rem;letter-spacing:.1em;color:var(--ink-soft);text-transform:uppercase;padding:6px 0}
  .cal-grid .day{aspect-ratio:1;display:flex;align-items:center;justify-content:center;font-size:.9rem;cursor:pointer;border:1px solid transparent;background:none;font-family:'Jost',sans-serif;font-weight:300;color:var(--ink)}
  .cal-grid .day:hover:not(:disabled){border-color:var(--bronze)}
  .cal-grid .day:disabled{color:#c9beb4;cursor:default}
  .cal-grid .day.sel{background:var(--bronze);color:var(--white)}
  .slots-head{font-size:1.25rem;margin-bottom:14px;font-family:'Cormorant Garamond',serif}
  .slots{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;align-content:start}
  .slots button{font-family:'Jost',sans-serif;font-weight:300;font-size:.88rem;padding:11px 6px;border:1px solid var(--line);background:var(--white);cursor:pointer;transition:border-color .2s,background .2s}
  .slots button:hover{border-color:var(--bronze)}
  .slots button.sel{background:var(--bronze);border-color:var(--bronze);color:var(--white)}
  .slots .empty{grid-column:1/-1;color:var(--ink-soft);font-style:italic;font-size:.92rem}
  .fields{display:grid;grid-template-columns:1fr 1fr;gap:22px 24px}
  @media(max-width:680px){.fields{grid-template-columns:1fr}}
  .field{display:flex;flex-direction:column;gap:8px}
  .field.full{grid-column:1/-1}
  .field label{font-size:.72rem;letter-spacing:.26em;text-transform:uppercase;color:var(--ink-soft)}
  .field label span{text-transform:none;letter-spacing:0;font-style:italic}
  .field input,.field select,.field textarea{font-family:'Jost',sans-serif;font-weight:300;font-size:1rem;color:var(--ink);background:var(--cream);border:1px solid var(--line);border-radius:0;padding:13px 14px;outline:none;transition:border-color .2s;-webkit-appearance:none;appearance:none;width:100%}
  .field select{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M1 1l4 4 4-4' fill='none' stroke='%23a8836a' stroke-width='1.4'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 14px center;padding-right:36px}
  .field input:focus,.field select:focus,.field textarea:focus{border-color:var(--bronze)}
  .field input.errf{border-color:var(--err)}
  .field textarea{resize:vertical}
  .ferr{color:var(--err);font-size:.85rem;margin-top:14px;display:none}
  .summary{background:var(--cream);border:1px solid var(--line);padding:20px 24px;margin-bottom:28px;display:flex;flex-wrap:wrap;gap:8px 32px;font-size:.95rem}
  .summary div b{display:block;font-weight:400;font-size:.68rem;letter-spacing:.24em;text-transform:uppercase;color:var(--bronze)}
  .pane-nav{display:flex;justify-content:space-between;align-items:center;margin-top:36px;gap:14px}
  .pane-nav .spacer{flex:1}
  .confirmed{text-align:center;padding:60px 40px}
  .confirmed .bigcheck{width:74px;height:74px;border-radius:50%;border:1px solid var(--bronze);color:var(--bronze);font-size:2rem;display:flex;align-items:center;justify-content:center;margin:0 auto 26px;animation:pop .5s ease}
  @keyframes pop{0%{transform:scale(.6);opacity:0}70%{transform:scale(1.08)}100%{transform:scale(1);opacity:1}}
  .confirmed h3{font-size:2.2rem;margin-bottom:10px}
  .confirmed p{color:var(--ink-soft);max-width:46ch;margin:0 auto 10px}
  .confirmed .ref{display:inline-block;margin:18px auto 6px;padding:10px 26px;border:1px dashed var(--bronze);font-size:.9rem;letter-spacing:.2em;color:var(--bronze-dark)}
  .confirmed .sumline{margin-top:16px;font-family:'Cormorant Garamond',serif;font-size:1.35rem;color:var(--ink)}
  .book-fine{text-align:center;font-size:.82rem;color:var(--ink-soft);margin-top:28px;font-style:italic}

  .locations{background:var(--ink);color:var(--cream)}
  .locations .sec-head h2{color:var(--white)}
  .locations .sec-head .eyebrow{color:var(--blush)}
  .loc-grid{display:grid;grid-template-columns:1fr 1fr;gap:28px}
  @media(max-width:820px){.loc-grid{grid-template-columns:1fr}}
  .loc{border:1px solid rgba(250,247,243,.18);padding:46px 42px}
  .loc .city{font-size:.72rem;letter-spacing:.34em;text-transform:uppercase;color:var(--blush);margin-bottom:12px}
  .loc h3{font-size:1.9rem;color:var(--white);margin-bottom:18px}
  .loc p{color:rgba(250,247,243,.75);font-size:.97rem}
  .loc .addr{margin-bottom:22px}
  .hours{list-style:none;margin:0 0 28px;font-size:.94rem}
  .hours li{display:flex;justify-content:space-between;padding:7px 0;border-bottom:1px solid rgba(250,247,243,.12)}
  .hours li span:last-child{color:var(--blush)}
  .loc a.link{display:inline-block;font-size:.78rem;letter-spacing:.24em;text-transform:uppercase;color:var(--blush);text-decoration:none;border-bottom:1px solid var(--bronze);padding-bottom:4px;margin-right:22px}
  .loc a.link:hover{color:var(--white)}

  footer{background:var(--ink);color:rgba(250,247,243,.7);padding:56px 0;font-size:.9rem;border-top:1px solid rgba(250,247,243,.12)}
  .foot{display:flex;justify-content:space-between;align-items:center;gap:24px;flex-wrap:wrap}
  .foot .logo{color:var(--white);font-size:1.3rem}
  .foot nav{display:flex;gap:24px;flex-wrap:wrap}
  .foot nav a{text-decoration:none;letter-spacing:.18em;text-transform:uppercase;font-size:.72rem}
  .foot nav a:hover{color:var(--white)}
