/*
Theme Name: Kasa Beauty Collective
Theme URI: https://www.kasabeautycollective.com
Author: Justin Ketah (Kaa Shaayi)
Description: Custom theme for Kasa Beauty Collective, ported from the approved homepage design.
Version: 0.5.2
Requires at least: 6.4
Requires PHP: 7.4
License: Proprietary
Text Domain: kasa
*/

  /* ---------------------------------------------------------------------------
     COLOR PALETTE  -  updated 2026-06-30 toward Danielle's "earth tones, a bit of
     grey, green accent" references. PREVIOUS VALUES (for one-step revert):
       --porcelain:#F7F3EC; --oat:#EDE3D2; --sand:#DFD2BC; --greige:#C7B49A;
       --sage:#6E6F58; --sage-deep:#53543F; --clay:#A87C58; --copper:#9A6A41;
       --espresso:#2B2722; --ink:#3A332C; --line:rgba(43,39,34,.14);
     --------------------------------------------------------------------------- */
  :root{
    --porcelain:#F3F1EC; --oat:#E7E1D6; --sand:#D6CDBE; --greige:#B9AFA0;
    --stone:#C7C2B8;                          /* new: cool stone grey */
    --sage:#686B58; --sage-deep:#4C5642; --cactus:#4C5642;   /* green accent */
    --clay:#9E7A59; --copper:#946A47;
    --espresso:#2C2B27; --charcoal:#34332F;   /* new: graphite, matches reception desk */
    --ink:#383530; --line:rgba(44,42,38,.14);
    --shadow:0 18px 50px -24px rgba(43,39,34,.45);
  }
  *{box-sizing:border-box;margin:0;padding:0}
  html{scroll-behavior:smooth}
  body{font-family:'Mulish',sans-serif;color:var(--espresso);background:var(--porcelain);line-height:1.7;-webkit-font-smoothing:antialiased;overflow-x:hidden}
  h1,h2,h3{font-family:'Cormorant Garamond',serif;font-weight:500;line-height:1.08;letter-spacing:.005em}
  .serif-i{font-style:italic;font-weight:400}
  .eyebrow{font-family:'Jost',sans-serif;font-weight:400;text-transform:uppercase;letter-spacing:.42em;font-size:.66rem;color:var(--copper)}
  .wrap{max-width:1200px;margin:0 auto;padding:0 40px}
  .btn{font-family:'Jost',sans-serif;font-weight:400;text-transform:uppercase;letter-spacing:.22em;font-size:.7rem;padding:16px 30px;border:1px solid var(--espresso);background:var(--espresso);color:var(--porcelain);cursor:pointer;display:inline-block;text-decoration:none;transition:.35s ease}
  .btn:hover{background:transparent;color:var(--espresso)}
  .btn-ghost{background:transparent;color:var(--porcelain);border-color:rgba(247,243,236,.6)}
  .btn-ghost:hover{background:var(--porcelain);color:var(--espresso);border-color:var(--porcelain)}
  .btn-copper{background:var(--copper);border-color:var(--copper);color:#fff}
  .btn-copper:hover{background:transparent;color:var(--copper)}
  .btn-line{background:transparent;color:var(--espresso);border-color:var(--espresso)}
  .btn-line:hover{background:var(--espresso);color:var(--porcelain)}

  /* announcement */
  .announce{background:var(--espresso);color:var(--porcelain);text-align:center;font-family:'Jost',sans-serif;font-size:.62rem;letter-spacing:.24em;text-transform:uppercase;padding:9px 20px}
  .announce a{color:var(--greige);text-decoration:none;border-bottom:1px solid rgba(199,180,154,.4)}

  /* nav */
  header{position:fixed;top:0;left:0;right:0;z-index:50;display:flex;align-items:center;justify-content:space-between;padding:22px 40px;transition:.4s ease}
  header.solid{background:rgba(247,243,236,.94);backdrop-filter:blur(10px);padding:13px 40px;box-shadow:0 1px 0 var(--line)}
  .logo{display:flex;flex-direction:column;align-items:center;line-height:1;transition:.4s}
  .logo .word{display:flex;align-items:center;gap:7px}
  .logo .asa{font-family:'Jost',sans-serif;font-weight:300;font-size:1.85rem;letter-spacing:.42em;padding-left:.42em;color:var(--espresso)}
  .logo .sub{font-family:'Jost',sans-serif;font-weight:300;font-size:.46rem;letter-spacing:.46em;color:var(--ink);margin-top:5px;text-transform:uppercase}
  header:not(.solid) .logo .asa,header:not(.solid) .logo .sub{color:var(--porcelain)}
  header:not(.solid) .logo svg path,header:not(.solid) .logo svg line{stroke:var(--porcelain)}
  nav{display:flex;align-items:center;gap:32px}
  nav a.link{font-family:'Jost',sans-serif;font-weight:400;text-transform:uppercase;letter-spacing:.18em;font-size:.72rem;color:var(--espresso);text-decoration:none;position:relative;padding:4px 0;transition:.3s}
  header:not(.solid) nav a.link{color:var(--porcelain)}
  nav a.link::after{content:'';position:absolute;left:0;bottom:-2px;width:0;height:1px;background:var(--copper);transition:.3s}
  nav a.link:hover::after{width:100%}
  .nav-book{font-family:'Jost',sans-serif;text-transform:uppercase;letter-spacing:.2em;font-size:.7rem;padding:11px 22px;background:var(--copper);color:#fff;text-decoration:none;transition:.3s}
  .nav-book:hover{background:var(--espresso)}
  .menu-toggle{display:none;flex-direction:column;gap:5px;background:none;border:none;cursor:pointer;padding:6px}
  .menu-toggle span{width:24px;height:1.5px;background:var(--porcelain);transition:.3s}
  header.solid .menu-toggle span{background:var(--espresso)}
  .mobile-menu{position:fixed;inset:0;z-index:55;background:var(--espresso);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;opacity:0;pointer-events:none;transition:.4s}
  .mobile-menu.open{opacity:1;pointer-events:auto}
  .mobile-menu a{font-family:'Cormorant Garamond',serif;font-size:2rem;color:var(--porcelain);text-decoration:none;padding:8px}
  .mobile-menu .mclose{position:absolute;top:22px;right:26px;font-size:1.5rem;color:var(--porcelain);background:none;border:none;cursor:pointer}

  /* hero */
  .hero{position:relative;height:100vh;min-height:660px;display:flex;align-items:center;overflow:hidden}
  .hero-media{position:absolute;inset:0;z-index:0}
  .hero-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0}
  .hero-media::before{content:'';position:absolute;inset:-10%;background:radial-gradient(120% 90% at 70% 20%,rgba(168,124,88,.55),transparent 55%),radial-gradient(120% 120% at 20% 90%,rgba(83,84,63,.85),transparent 60%),linear-gradient(120deg,#3a352b,#5c5642 55%,#7d6f54);animation:kenburns 22s ease-in-out infinite alternate}
  .hero-media::after,.hero-scrim{content:'';position:absolute;inset:0;background:linear-gradient(180deg,rgba(28,25,21,.55),rgba(28,25,21,.18) 35%,rgba(28,25,21,.62))}
  .hero-scrim{z-index:1}
  @keyframes kenburns{from{transform:scale(1) translate(0,0)}to{transform:scale(1.12) translate(-2%,-1%)}}
  .hero-inner{position:relative;z-index:2;color:var(--porcelain);max-width:780px}
  .hero .eyebrow{color:var(--sand)}
  .hero h1{font-size:clamp(3rem,7vw,5.8rem);color:var(--porcelain);margin:18px 0 10px}
  .hero p.lead{font-size:1.12rem;font-weight:300;max-width:540px;color:rgba(247,243,236,.9);margin-bottom:34px}
  .hero-cta{display:flex;gap:16px;flex-wrap:wrap}
  .video-chip{position:absolute;right:40px;bottom:120px;z-index:2;display:flex;align-items:center;gap:10px;color:var(--porcelain);font-family:'Jost',sans-serif;text-transform:uppercase;letter-spacing:.2em;font-size:.62rem}
  .video-chip .ring{width:42px;height:42px;border:1px solid rgba(247,243,236,.6);border-radius:50%;display:flex;align-items:center;justify-content:center}
  .video-chip .ring::before{content:'';border-left:8px solid var(--porcelain);border-top:5px solid transparent;border-bottom:5px solid transparent;margin-left:3px}
  .scroll-cue{position:absolute;left:50%;bottom:30px;transform:translateX(-50%);z-index:2;color:var(--porcelain);font-family:'Jost',sans-serif;letter-spacing:.3em;font-size:.6rem;text-transform:uppercase;text-align:center;opacity:.85}
  .scroll-cue span{display:block;width:1px;height:40px;background:rgba(247,243,236,.6);margin:10px auto 0;animation:cue 2s ease-in-out infinite}
  @keyframes cue{0%,100%{transform:scaleY(.3);transform-origin:top;opacity:.4}50%{transform:scaleY(1);opacity:1}}

  /* marquee */
  .marquee{background:var(--espresso);color:var(--sand);overflow:hidden;padding:16px 0;white-space:nowrap}
  .marquee-track{display:inline-block;animation:scroll 26s linear infinite;font-family:'Cormorant Garamond',serif;font-style:italic;font-size:1.5rem}
  .marquee-track span{padding:0 26px;opacity:.9}
  .marquee-track span::after{content:'✦';color:var(--clay);font-style:normal;margin-left:52px;font-size:.7rem;vertical-align:middle}
  @keyframes scroll{from{transform:translateX(0)}to{transform:translateX(-50%)}}

  .reveal{opacity:0;transform:translateY(34px);transition:opacity 1s cubic-bezier(.2,.6,.2,1),transform 1s cubic-bezier(.2,.6,.2,1)}
  .reveal.in{opacity:1;transform:none}

  /* intro */
  .intro{padding:120px 0 70px;text-align:center}
  .intro h2{font-size:clamp(2.1rem,4.2vw,3.4rem);max-width:880px;margin:18px auto 0}
  .intro .rule{width:60px;height:1px;background:var(--copper);margin:30px auto 0}

  /* story split */
  .story{padding:70px 0 100px}
  .story-grid{display:grid;grid-template-columns:1fr 1fr;gap:70px;align-items:center}
  .story-img{aspect-ratio:4/5;background:linear-gradient(150deg,#6e6f58,#3a352b);position:relative;overflow:hidden}
  .story-img::after{content:'';position:absolute;inset:0;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.06'/%3E%3C/svg%3E")}
  .story-img .cap{position:absolute;left:18px;bottom:16px;color:var(--porcelain);font-family:'Jost',sans-serif;font-size:.58rem;letter-spacing:.18em;text-transform:uppercase;opacity:.9}
  .story h2{font-size:clamp(2rem,4vw,3rem);margin:16px 0 20px}
  .story p{font-weight:300;color:var(--ink);margin-bottom:16px}
  .sig{font-family:'Cormorant Garamond',serif;font-style:italic;font-size:2rem;color:var(--copper);margin-top:22px;line-height:1}
  .sig small{display:block;font-family:'Jost',sans-serif;font-style:normal;font-size:.6rem;letter-spacing:.2em;text-transform:uppercase;color:var(--ink);margin-top:8px}

  /* services */
  .services{padding:100px 0;background:var(--oat)}
  .sec-head{display:flex;align-items:flex-end;justify-content:space-between;gap:30px;margin-bottom:50px;flex-wrap:wrap}
  .sec-head h2{font-size:clamp(2rem,4vw,3rem)}
  .svc-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line)}
  .svc{background:var(--porcelain);padding:38px 32px;transition:.4s}
  .svc:hover{background:#fff}
  .svc .no{font-family:'Jost',sans-serif;font-size:.7rem;letter-spacing:.2em;color:var(--clay)}
  .svc h3{font-size:1.7rem;margin:14px 0 8px}
  .svc p{font-size:.92rem;color:var(--ink);font-weight:300}
  .svc .from{display:inline-block;margin-top:16px;font-family:'Jost',sans-serif;font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;color:var(--copper)}
  .menu{margin-top:54px;display:grid;grid-template-columns:1fr 1fr;gap:6px 70px}
  .menu .row{display:flex;align-items:baseline;gap:10px;padding:11px 0;border-bottom:1px solid var(--line)}
  .menu .row .nm{font-size:1.02rem}
  .menu .row .dots{flex:1;border-bottom:1px dotted var(--greige);transform:translateY(-4px)}
  .menu .row .pr{font-family:'Jost',sans-serif;font-size:.8rem;letter-spacing:.06em;color:var(--sage-deep)}
  .menu-note{text-align:center;margin-top:34px;font-weight:300;color:var(--ink)}

  /* why */
  .why{padding:100px 0}
  .why-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:40px;margin-top:50px}
  .why-item .ic{width:46px;height:46px;color:var(--copper);margin-bottom:18px}
  .why-item h3{font-size:1.45rem;margin-bottom:8px}
  .why-item p{font-size:.9rem;font-weight:300;color:var(--ink)}

  /* collective */
  .collective{padding:100px 0;background:var(--sage-deep);color:var(--porcelain)}
  .collective .eyebrow{color:var(--sand)}
  .collective .sec-head h2{color:var(--porcelain)}
  .collective .sec-head p{max-width:320px;font-weight:300;color:rgba(247,243,236,.8)}
  .team-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:26px;margin-top:30px}
  .stylist{cursor:pointer;background:var(--porcelain);color:var(--espresso);transition:.45s}
  .stylist:hover{transform:translateY(-8px);box-shadow:var(--shadow)}
  .portrait{aspect-ratio:3/4;position:relative;overflow:hidden}
  .portrait .ph{position:absolute;inset:0;transition:transform .9s ease}
  .stylist:hover .portrait .ph{transform:scale(1.06)}
  .p1{background:linear-gradient(150deg,#b89a74,#6e5638)}
  .p2{background:linear-gradient(150deg,#a87c58,#5c4632)}
  .p3{background:linear-gradient(150deg,#9a6a41,#46342a)}
  .p4{background:linear-gradient(150deg,#8a8a6f,#4a4b39)}
  .portrait .ph::after{content:'';position:absolute;inset:0;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.06'/%3E%3C/svg%3E")}
  .portrait .tag{position:absolute;left:14px;bottom:14px;z-index:2;color:var(--porcelain);font-family:'Jost',sans-serif;font-size:.58rem;letter-spacing:.18em;text-transform:uppercase;opacity:.92}
  .stylist .body{padding:22px 22px 26px}
  .stylist .body .role{font-family:'Jost',sans-serif;font-size:.62rem;letter-spacing:.2em;text-transform:uppercase;color:var(--clay)}
  .stylist .body h3{font-size:1.5rem;margin:6px 0 10px}
  .stylist .body p{font-size:.86rem;color:var(--ink);font-weight:300;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
  .stylist .body .read{margin-top:14px;font-family:'Jost',sans-serif;font-size:.66rem;letter-spacing:.16em;text-transform:uppercase;color:var(--copper)}
  .join{margin-top:46px;display:flex;align-items:center;justify-content:space-between;gap:26px;flex-wrap:wrap;border:1px solid rgba(247,243,236,.22);padding:28px 34px}
  .join p{font-family:'Cormorant Garamond',serif;font-size:1.5rem;font-style:italic;color:var(--porcelain)}
  .join p small{display:block;font-family:'Mulish';font-style:normal;font-size:.85rem;letter-spacing:0;text-transform:none;color:rgba(247,243,236,.7);margin-top:4px}

  /* gallery */
  .gallery{padding:100px 0}
  .gal-grid{display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:175px;gap:14px;margin-top:46px}
  .gal{position:relative;overflow:hidden;background:var(--sand)}
  .gal.tall{grid-row:span 2}.gal.wide{grid-column:span 2}
  .gal .img{position:absolute;inset:0;opacity:0;transform:scale(1.04);transition:opacity 1.1s ease,transform 1.4s ease}
  .gal.loaded .img{opacity:1;transform:none}
  .gal .shimmer{position:absolute;inset:0;background:linear-gradient(100deg,var(--sand) 30%,var(--oat) 50%,var(--sand) 70%);background-size:200% 100%;animation:sh 1.4s infinite}
  .gal.loaded .shimmer{display:none}
  @keyframes sh{to{background-position:-200% 0}}
  .g1{background:linear-gradient(140deg,#6e6f58,#43442f)}.g2{background:linear-gradient(140deg,#a87c58,#6a4f37)}
  .g3{background:linear-gradient(140deg,#c7b49a,#8a7355)}.g4{background:linear-gradient(140deg,#9a6a41,#4d3727)}
  .g5{background:linear-gradient(140deg,#53543f,#2b2722)}.g6{background:linear-gradient(140deg,#8a8a6f,#5b5c46)}
  .g7{background:linear-gradient(140deg,#b89a74,#7a5d3a)}.g8{background:linear-gradient(140deg,#7d6f54,#403a2c)}
  .gal .lbl{position:absolute;left:12px;bottom:11px;z-index:2;color:rgba(247,243,236,.88);font-family:'Jost',sans-serif;font-size:.55rem;letter-spacing:.16em;text-transform:uppercase}
  .ig-handle{text-align:center;margin-top:34px;font-family:'Jost',sans-serif;letter-spacing:.2em;text-transform:uppercase;font-size:.72rem;color:var(--sage)}

  /* retail */
  .retail{padding:100px 0;background:var(--oat)}
  .retail-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px}
  .rcard{position:relative;min-height:330px;display:flex;flex-direction:column;justify-content:flex-end;padding:40px;overflow:hidden;color:var(--porcelain)}
  .rcard.a{background:linear-gradient(150deg,#5c5642,#2b2722)}
  .rcard.b{background:linear-gradient(150deg,#a87c58,#6a4a30)}
  .rcard .eyebrow{color:var(--sand)}
  .rcard h3{font-size:2.2rem;color:var(--porcelain);margin:10px 0 10px}
  .rcard p{font-weight:300;color:rgba(247,243,236,.85);max-width:330px;margin-bottom:22px}

  /* rating + testimonials */
  .testi{padding:100px 0;background:var(--espresso);color:var(--porcelain)}
  .rating{text-align:center;margin-bottom:54px}
  .rating .stars{color:var(--greige);font-size:1.4rem;letter-spacing:.2em}
  .rating .big{font-family:'Cormorant Garamond',serif;font-size:2.4rem;margin:6px 0 2px}
  .rating .sub{font-family:'Jost',sans-serif;font-size:.66rem;letter-spacing:.2em;text-transform:uppercase;color:var(--greige)}
  .testi-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:40px}
  .quote .stars{color:var(--clay);letter-spacing:.2em;font-size:.9rem}
  .quote p{font-family:'Cormorant Garamond',serif;font-size:1.4rem;line-height:1.4;font-weight:400;margin:14px 0 18px}
  .quote .who{font-family:'Jost',sans-serif;font-size:.66rem;letter-spacing:.18em;text-transform:uppercase;color:var(--sand)}

  /* visit */
  .visit{padding:100px 0}
  .visit-grid{display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:center}
  .map{aspect-ratio:1.3/1;background:linear-gradient(150deg,#c7b49a,#8a7355);position:relative;overflow:hidden}
  .map::before{content:'';position:absolute;inset:0;background:linear-gradient(rgba(43,39,34,.08),rgba(43,39,34,.08)),repeating-linear-gradient(0deg,transparent,transparent 38px,rgba(247,243,236,.25) 38px,rgba(247,243,236,.25) 40px),repeating-linear-gradient(90deg,transparent,transparent 38px,rgba(247,243,236,.25) 38px,rgba(247,243,236,.25) 40px)}
  .map .pin{position:absolute;top:46%;left:50%;transform:translate(-50%,-50%);z-index:2;text-align:center;color:var(--espresso)}
  .map .pin .dot{width:16px;height:16px;border-radius:50% 50% 50% 0;background:var(--copper);transform:rotate(-45deg);margin:0 auto 8px;box-shadow:0 6px 14px -4px rgba(43,39,34,.6)}
  .map .pin span{font-family:'Jost',sans-serif;font-size:.6rem;letter-spacing:.16em;text-transform:uppercase;background:var(--porcelain);padding:4px 9px}
  .visit h2{font-size:clamp(2rem,4vw,3rem);margin:14px 0 22px}
  .info-row{display:flex;gap:14px;padding:16px 0;border-bottom:1px solid var(--line)}
  .info-row .k{font-family:'Jost',sans-serif;font-size:.64rem;letter-spacing:.18em;text-transform:uppercase;color:var(--clay);min-width:90px;padding-top:3px}
  .info-row .v{font-weight:300}
  .info-row .v strong{font-weight:500}

  /* booking */
  .book{position:relative;padding:130px 0;text-align:center;overflow:hidden;background:linear-gradient(120deg,#3a352b,#5c5642 60%,#7d6f54)}
  .book>*{position:relative;z-index:2}
  .book .eyebrow{color:var(--sand)}
  .book h2{color:var(--porcelain);font-size:clamp(2.4rem,5vw,4rem);margin:16px auto 14px;max-width:760px}
  .book p{color:rgba(247,243,236,.85);font-weight:300;max-width:480px;margin:0 auto 32px}
  .book .phorest{margin-top:26px;font-family:'Jost',sans-serif;font-size:.6rem;letter-spacing:.22em;text-transform:uppercase;color:rgba(247,243,236,.6)}

  /* newsletter */
  .news{padding:84px 0;background:var(--oat);text-align:center}
  .news h3{font-size:2rem;margin:12px 0 6px}
  .news p{font-weight:300;color:var(--ink);margin-bottom:26px}
  .news form{display:flex;gap:10px;max-width:440px;margin:0 auto}
  .news input{flex:1;padding:15px 18px;border:1px solid var(--greige);background:var(--porcelain);font-family:'Mulish';font-size:.92rem;color:var(--espresso)}
  .news input::placeholder{color:var(--ink);opacity:.6}

  /* footer */
  footer{background:var(--espresso);color:var(--porcelain);padding:80px 0 34px}
  .foot-grid{display:grid;grid-template-columns:1.5fr 1fr 1fr 1fr;gap:40px}
  .foot h4{font-family:'Jost',sans-serif;font-weight:400;text-transform:uppercase;letter-spacing:.2em;font-size:.66rem;color:var(--greige);margin-bottom:18px}
  .foot a,.foot p{color:rgba(247,243,236,.78);text-decoration:none;font-weight:300;font-size:.9rem;display:block;margin-bottom:9px;transition:.3s}
  .foot a:hover{color:var(--copper)}
  .foot .logo{align-items:flex-start}
  .foot .logo .asa{color:var(--porcelain)}.foot .logo .sub{color:var(--greige)}
  .foot .logo svg path,.foot .logo svg line{stroke:var(--porcelain)}
  .foot-tag{font-weight:300;color:rgba(247,243,236,.6);font-size:.9rem;margin-top:18px;max-width:280px}
  .foot-bottom{border-top:1px solid rgba(247,243,236,.14);margin-top:54px;padding-top:24px;display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px;font-family:'Jost',sans-serif;font-size:.6rem;letter-spacing:.12em;text-transform:uppercase;color:rgba(247,243,236,.5)}

  /* modal */
  .modal{position:fixed;inset:0;z-index:100;display:none;align-items:stretch}
  .modal.open{display:flex}
  .modal .scrim{position:absolute;inset:0;background:rgba(28,25,21,.6);backdrop-filter:blur(3px)}
  .modal .panel{position:relative;margin-left:auto;width:min(560px,100%);background:var(--porcelain);height:100%;overflow-y:auto;box-shadow:var(--shadow);transform:translateX(40px);opacity:0;transition:.5s ease}
  .modal.open .panel{transform:none;opacity:1}
  .modal .hero-p{height:300px;position:relative}
  .modal .hero-p .tag{position:absolute;left:34px;bottom:24px;color:var(--porcelain);font-family:'Jost',sans-serif;font-size:.62rem;letter-spacing:.2em;text-transform:uppercase}
  .modal .close{position:absolute;top:20px;right:24px;z-index:5;width:40px;height:40px;border-radius:50%;background:rgba(247,243,236,.92);border:none;cursor:pointer;font-size:1.1rem;color:var(--espresso)}
  .modal .pbody{padding:38px 40px 50px}
  .modal .pbody .role{font-family:'Jost',sans-serif;font-size:.66rem;letter-spacing:.2em;text-transform:uppercase;color:var(--clay)}
  .modal .pbody h2{font-size:2.6rem;margin:8px 0 18px}
  .modal .pbody p{font-weight:300;margin-bottom:16px;color:var(--ink)}
  .modal .spec{margin:22px 0 28px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:18px 0}
  .modal .spec span{display:inline-block;font-family:'Jost',sans-serif;font-size:.62rem;letter-spacing:.14em;text-transform:uppercase;color:var(--sage);border:1px solid var(--line);padding:7px 12px;margin:0 6px 6px 0}

  .note{position:fixed;left:16px;bottom:16px;z-index:60;background:var(--espresso);color:var(--porcelain);font-family:'Jost',sans-serif;font-size:.58rem;letter-spacing:.14em;text-transform:uppercase;padding:9px 14px;border-radius:30px;opacity:.82}

  @media(max-width:1024px){
    .svc-grid,.team-grid,.testi-grid,.why-grid{grid-template-columns:repeat(2,1fr)}
    .gal-grid{grid-template-columns:repeat(2,1fr)}
    .story-grid,.visit-grid,.retail-grid,.menu{grid-template-columns:1fr;gap:36px}
    .foot-grid{grid-template-columns:1fr 1fr}
  }
  @media(max-width:680px){
    .wrap{padding:0 22px}
    nav a.link{display:none}
    .menu-toggle{display:flex}
    .svc-grid,.team-grid,.testi-grid,.why-grid,.foot-grid{grid-template-columns:1fr}
    .gal-grid{grid-template-columns:1fr 1fr;grid-auto-rows:135px}
    header{padding:14px 22px}.video-chip{display:none}
    .news form{flex-direction:column}
  }

/* ---- WordPress theme additions ---- */
a.logo{text-decoration:none}
.admin-bar header{top:32px}
@media(max-width:782px){.admin-bar header{top:46px}}
.stylist-single .stylist-hero{height:46vh;min-height:340px;position:relative;background:linear-gradient(150deg,#b89a74,#6e5638);display:flex;align-items:flex-end;padding-bottom:30px}
.stylist-single .stylist-hero::after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,rgba(28,25,21,.2),rgba(28,25,21,.55))}
.stylist-single .stylist-hero .wrap{position:relative;z-index:2}
.stylist-single .stylist-hero .tag{color:var(--porcelain);font-family:'Jost',sans-serif;font-size:.66rem;letter-spacing:.2em;text-transform:uppercase}
.stylist-body{max-width:780px;padding-top:50px;padding-bottom:90px}
.stylist-body .back{font-family:'Jost',sans-serif;font-size:.66rem;letter-spacing:.16em;text-transform:uppercase;color:var(--copper);text-decoration:none}
.stylist-body .role{font-family:'Jost',sans-serif;font-size:.7rem;letter-spacing:.2em;text-transform:uppercase;color:var(--clay);margin-top:22px}
.stylist-body h1{font-size:3rem;margin:8px 0 22px}
.stylist-body .bio{font-weight:300;color:var(--ink)}.stylist-body .bio p{margin-bottom:16px}
.stylist-body .spec{margin:26px 0 30px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:18px 0}
.stylist-body .spec span{display:inline-block;font-family:'Jost',sans-serif;font-size:.62rem;letter-spacing:.14em;text-transform:uppercase;color:var(--sage);border:1px solid var(--line);padding:7px 12px;margin:0 6px 6px 0}

/* ===================== v0.2 ENHANCEMENTS ===================== */
/* Header: announcement bar is now the top row INSIDE the fixed header (fixes mobile overlap) */
header#hdr{padding:0;display:block;background:transparent}
header#hdr .announce{position:relative}
header#hdr .nav-row{display:flex;align-items:center;justify-content:space-between;padding:18px 40px;transition:padding .4s ease}
header#hdr.solid{background:rgba(247,243,236,.94);backdrop-filter:blur(10px);box-shadow:0 1px 0 var(--line)}
header#hdr.solid .nav-row{padding:11px 40px}
.hero-media,.hero-video{will-change:transform}
.hero-inner{will-change:transform,opacity}

/* Sticky mobile booking bar */
.mobile-book{display:none}
@media(max-width:680px){
  header#hdr .nav-row{padding:12px 20px}
  header#hdr.solid .nav-row{padding:10px 20px}
  .announce{font-size:.55rem;letter-spacing:.1em;padding:8px 14px;line-height:1.5}
  .mobile-book{position:fixed;left:14px;right:14px;bottom:14px;z-index:48;display:block;text-align:center;background:var(--copper);color:#fff;font-family:'Jost',sans-serif;text-transform:uppercase;letter-spacing:.2em;font-size:.72rem;padding:15px;text-decoration:none;box-shadow:0 12px 30px -10px rgba(43,39,34,.6);transform:translateY(130%);transition:transform .45s cubic-bezier(.2,.7,.2,1)}
  .mobile-book.show{transform:none}
}

/* Lightbox */
.lightbox{position:fixed;inset:0;z-index:120;display:none;align-items:center;justify-content:center;background:rgba(28,25,21,.86);backdrop-filter:blur(4px);padding:30px}
.lightbox.open{display:flex}
.lightbox .lb-img{width:min(90vw,920px);aspect-ratio:4/3;background-size:cover;background-position:center;box-shadow:0 30px 80px -30px rgba(0,0,0,.7)}
.lightbox .lb-cap{position:absolute;bottom:24px;left:0;right:0;text-align:center;color:var(--sand);font-family:'Jost',sans-serif;font-size:.66rem;letter-spacing:.2em;text-transform:uppercase}
.lightbox .lb-close{position:absolute;top:22px;right:26px;width:44px;height:44px;border-radius:50%;border:1px solid rgba(247,243,236,.5);background:transparent;color:var(--porcelain);font-size:1.1rem;cursor:pointer;transition:.3s}
.lightbox .lb-close:hover{background:var(--porcelain);color:var(--espresso)}

/* Before / after slider */
.transform{padding:100px 0}
.ba{position:relative;aspect-ratio:16/10;max-width:980px;margin:46px auto 0;overflow:hidden;user-select:none;touch-action:none;box-shadow:var(--shadow)}
.ba-after,.ba-before{position:absolute;inset:0;background-size:cover;background-position:center}
.ba-img-a{background:linear-gradient(135deg,#8f8675,#56503f)}
.ba-img-b{background:linear-gradient(135deg,#b3835c,#6e4a2c)}
.ba-before{clip-path:inset(0 50% 0 0)}
.ba-tag{position:absolute;bottom:16px;font-family:'Jost',sans-serif;font-size:.6rem;letter-spacing:.18em;text-transform:uppercase;color:var(--porcelain);background:rgba(28,25,21,.4);padding:5px 10px}
.ba-tag-before{left:16px}.ba-tag-after{right:16px}
.ba-handle{position:absolute;top:0;bottom:0;left:50%;width:2px;background:var(--porcelain);transform:translateX(-50%);pointer-events:none;z-index:3}
.ba-grip{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:44px;height:44px;border-radius:50%;background:var(--porcelain);color:var(--espresso);display:flex;align-items:center;justify-content:center;font-size:1rem;box-shadow:0 6px 16px -6px rgba(0,0,0,.5)}
.ba-line{display:none}
.ba-range{position:absolute;inset:0;width:100%;height:100%;margin:0;opacity:0;cursor:ew-resize;z-index:4}

/* Hover & focus polish */
.svc{transition:background .4s ease, transform .4s ease}
.svc:hover{transform:translateY(-3px)}
.gal .img{transition:opacity 1.1s ease, transform .6s ease}
.gal:hover .img{transform:scale(1.05)}
a:focus-visible,button:focus-visible,.btn:focus-visible,input:focus-visible,.stylist:focus-visible{outline:2px solid var(--copper);outline-offset:3px}

/* 404 */
.kasa-404{min-height:70vh;display:flex;align-items:center;text-align:center;padding:170px 0 90px}
.kasa-404 .wrap{max-width:640px}
.kasa-404 h1{font-size:clamp(2.4rem,5vw,3.6rem);margin:14px 0 14px}
.kasa-404 p{font-weight:300;color:var(--ink);margin-bottom:30px}
.kasa-404 .e404-cta{display:flex;gap:14px;justify-content:center;flex-wrap:wrap}

/* Respect reduced-motion */
@media(prefers-reduced-motion:reduce){
  .reveal{opacity:1!important;transform:none!important}
  .hero-media::before,.marquee-track{animation:none!important}
}

/* Offset in-page anchor jumps so section tops clear the fixed header */
#story,#services,#collective,#gallery,#transform,#visit,#book{scroll-margin-top:120px}

/* ===== stylist slide-out panel: cards + links ===== */
.stylist{cursor:pointer}
.stylist:focus-visible{outline:2px solid var(--clay);outline-offset:3px}
.sm-bio{margin-bottom:6px}
.sm-links{display:flex;flex-wrap:wrap;gap:10px;margin-top:8px}
.sm-links .btn{font-size:.64rem;padding:13px 22px}

/* ===== Interior pages: Services & Pricing, Policies (added v0.4.0) ===== */
.page-head{padding:148px 0 26px;background:var(--porcelain)}
.page-head .eyebrow{margin-bottom:12px}
.page-head h1{font-size:clamp(2.6rem,6vw,4.1rem);line-height:1.04;margin-bottom:14px;color:var(--espresso)}
.page-head .lead{max-width:640px;font-weight:300;color:var(--ink);font-size:1.06rem;line-height:1.6}
.svc-menu{padding:24px 0 92px;background:var(--porcelain)}
.menu-note-box{border:1px solid var(--line);background:#fff;padding:18px 22px;margin-bottom:48px;font-weight:300;color:var(--ink);line-height:1.6;max-width:820px}
.menu-note-box strong{font-weight:600;color:var(--espresso)}
.menu-group{margin-bottom:46px}
.menu-group>h2{font-family:'Jost',sans-serif;font-size:.78rem;letter-spacing:.22em;text-transform:uppercase;color:var(--clay);border-bottom:1px solid var(--line);padding-bottom:12px;margin-bottom:20px}
.svc-item{padding:15px 0;border-bottom:1px solid var(--line)}
.svc-item:last-child{border-bottom:none}
.si-row{display:flex;align-items:baseline;gap:12px}
.si-name{font-family:'Cormorant Garamond',serif;font-size:1.55rem;color:var(--espresso);line-height:1.2}
.si-dots{flex:1 1 auto;min-width:18px;border-bottom:1px dotted rgba(43,39,34,.28);transform:translateY(-5px)}
.si-price{font-family:'Jost',sans-serif;font-size:.96rem;color:var(--espresso);white-space:nowrap}
.si-meta{font-family:'Jost',sans-serif;font-size:.6rem;letter-spacing:.16em;text-transform:uppercase;color:var(--sage);margin:5px 0 7px}
.si-desc{font-weight:300;color:var(--ink);max-width:700px;font-size:.97rem;line-height:1.62}
.si-tag{display:inline-block;font-family:'Jost',sans-serif;font-size:.54rem;letter-spacing:.14em;text-transform:uppercase;color:var(--clay);border:1px solid var(--line);padding:3px 8px;margin-left:10px;vertical-align:middle;white-space:nowrap}
.svc-item.soon .si-name,.svc-item.soon .si-price{opacity:.55}
.menu-foot{margin-top:34px;font-weight:300;color:var(--ink);max-width:740px;line-height:1.65}
.menu-cta{margin-top:28px;display:flex;gap:14px;flex-wrap:wrap}
.policy-wrap{padding:24px 0 92px;background:var(--porcelain)}
.policy{max-width:780px}
.policy h2{font-family:'Jost',sans-serif;font-size:.78rem;letter-spacing:.22em;text-transform:uppercase;color:var(--clay);border-bottom:1px solid var(--line);padding-bottom:12px;margin:40px 0 16px}
.policy h2:first-child{margin-top:0}
.policy p{font-weight:300;color:var(--ink);margin-bottom:14px;line-height:1.66}
.policy ul{list-style:none;margin:0 0 16px;padding:0}
.policy li{font-weight:300;color:var(--ink);padding:10px 0 10px 22px;position:relative;border-bottom:1px solid var(--line);line-height:1.6}
.policy li:before{content:'';position:absolute;left:0;top:18px;width:6px;height:6px;background:var(--clay);border-radius:50%}
.policy .pol-call{border:1px solid var(--line);background:#fff;padding:15px 20px;font-weight:500;color:var(--espresso);margin:18px 0}
@media(max-width:640px){.page-head{padding:128px 0 22px}.si-name{font-size:1.4rem}}

/* ===== Real wordmark logo (SVG: white on transparent header, black on solid header) ===== */
.logo .kasa-logo{height:40px;width:auto;display:block}
.logo .kasa-logo--dark{display:none}
header#hdr.solid .logo .kasa-logo--light{display:none}
header#hdr.solid .logo .kasa-logo--dark{display:block}
header#hdr.solid .custom-logo{filter:brightness(0)} /* fallback only if a Customizer logo is set */
.foot .kasa-logo-foot{height:46px;width:auto;display:block;margin-bottom:14px}
@media(max-width:640px){.logo .kasa-logo{height:32px}.foot .kasa-logo-foot{height:40px}}
