:root{--paper:#f7f4ef;--ink:#201d1a;--dark:#25211e;--accent:#725140;--line:#d8cfc5}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font:16px/1.65 system-ui,sans-serif}a{color:inherit}a:focus-visible{outline:3px solid #a4775e;outline-offset:5px}header,footer{padding:16px clamp(20px,5vw,80px);display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap}header{background:white;border-bottom:1px solid var(--line)}.brand{display:inline-flex}.brand img{width:152px;height:auto;display:block}nav{display:flex;flex-wrap:wrap;gap:clamp(14px,3vw,42px);font-size:.86rem}nav a{text-decoration:none}nav a:hover,footer a:hover{text-decoration:underline}.button{display:inline-flex;align-items:center;gap:15px;background:var(--dark);color:white;padding:12px 20px;text-decoration:none;font-size:.88rem;font-weight:650;width:fit-content;border:1px solid transparent}.button:hover{background:var(--accent)}.hero,.split,.care,.contact{display:grid;grid-template-columns:1fr 1fr}.hero{min-height:min(700px,74vw)}.hero-copy{align-self:center;padding:clamp(36px,6vw,105px)}.eyebrow{color:var(--accent);text-transform:uppercase;font-size:.71rem;font-weight:740;letter-spacing:.19em;margin:0 0 20px}h1,h2,h3{font-family:Georgia,serif;font-weight:400;line-height:1.02;margin:0}h1{font-size:clamp(3.2rem,7.2vw,8rem);letter-spacing:-.065em}h1 em{color:var(--accent)}h2{font-size:clamp(2.6rem,5vw,5.3rem);letter-spacing:-.055em}h3{font-size:clamp(1.6rem,2.7vw,2.4rem);letter-spacing:-.035em}.hero p:not(.eyebrow){max-width:34ch;margin:26px 0}.hero figure,.split figure{margin:0;position:relative;min-height:420px}.hero img,.split img{width:100%;height:100%;position:absolute;object-fit:cover}.hero img{object-position:45% center}.hero figcaption{position:absolute;bottom:18px;right:18px;background:var(--paper);padding:7px 12px;font-size:.68rem;letter-spacing:.11em}.band{background:#dfd2c5;padding:15px 20px;text-align:center;letter-spacing:.2em;font-weight:720;font-size:.72rem;text-transform:uppercase}.section{padding:clamp(52px,8vw,115px) clamp(20px,7vw,110px)}.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;margin-top:40px}.cards article{border-top:1px solid var(--line);padding:22px 0}.cards p{max-width:35ch}.split{background:var(--dark);color:var(--paper)}.split img{object-position:center 40%}.split .section{align-self:center}.split .eyebrow,.contact .eyebrow{color:#e1c0ac}.care{gap:30px;border-bottom:1px solid var(--line)}.care p:first-child:not(.eyebrow){margin-top:0}.gallery-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:12px;margin-top:36px}.gallery-grid a{display:block;overflow:hidden;background:#ded3c9}.gallery-grid img{width:100%;display:block;aspect-ratio:3/4;object-fit:cover;transition:transform .25s}.gallery-grid a:hover img{transform:scale(1.04)}.contact{background:var(--dark);color:var(--paper);gap:42px}.contact .button{background:#dfd2c5;color:var(--ink)}.contact .button:hover{background:#f6eee6}.contact address{font-style:normal;margin:22px 0;overflow-wrap:anywhere}table{width:100%;border-collapse:collapse;margin-top:14px}th,td{text-align:left;padding:11px 0;border-bottom:1px solid #756961}td{text-align:right;padding-left:12px}footer{font-size:.8rem;background:white}.legal{max-width:850px;margin:auto}.legal h2{font-size:2rem;margin-top:32px}@media(max-width:740px){header nav{order:3;width:100%}header .brand img{width:122px}header .button{padding:9px 10px}.hero,.split,.care,.contact,.cards{grid-template-columns:1fr}.hero figure,.split figure{min-height:0;aspect-ratio:4/3}.hero-copy{padding:50px 20px}.cards,.care{gap:4px}.split figure{order:2}.gallery-grid{grid-template-columns:repeat(2,1fr)}.gallery-grid a:first-child{grid-column:span 2}.gallery-grid a:first-child img{aspect-ratio:3/2}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.gallery-grid img{transition:none}}

.credits{color:#61574f}.split h1,.contact h1{font-size:clamp(3rem,6vw,6rem)}

.salon-photo{position:relative;isolation:isolate;display:grid;place-items:center;min-height:clamp(340px,48vw,650px);margin:0;overflow:hidden;background:var(--dark)}
.salon-photo img{position:absolute;inset:0;display:block;width:100%;height:100%;object-fit:cover;object-position:center 45%;filter:blur(3px);transform:scale(1.035);z-index:-2}
.salon-photo::after{content:"";position:absolute;inset:0;background:#211c1999;z-index:-1}
.review-overlay{padding:44px 20px;color:var(--paper);text-align:center}
.review-overlay .eyebrow{color:#f1d4bd}
.review-overlay .button{margin-top:24px;background:#f1d4bd;color:var(--ink)}
.review-overlay .button:hover{background:white}

.menu-toggle{display:none}
.hero{background:#211c19;color:#f7f1e8;grid-template-columns:46% 54%;min-height:clamp(510px,53vw,780px)}
.hero-copy{padding:clamp(38px,6vw,108px);position:relative;z-index:1}
.hero .eyebrow{color:#e4bd9f;display:flex;align-items:center;gap:12px}
.hero .eyebrow::before{content:"";width:26px;height:1px;background:currentColor;flex-shrink:0}
.hero h1{font-size:clamp(3.4rem,6.5vw,8.2rem);line-height:.96}
.hero h1 em{color:#e4bd9f;font-weight:400}
.hero p:not(.eyebrow){color:#ded1c5}
.hero .button{background:#e4bd9f;color:#211c19}
.hero .button:hover{background:#f7f1e8}
.hero figure{overflow:hidden}
.hero figure::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,#211c1966,transparent 35%),linear-gradient(0deg,#211c1977,transparent 25%);pointer-events:none}
.hero img{object-position:center 43%}
.hero figcaption{z-index:1;background:none;color:white;bottom:22px;right:24px;letter-spacing:.17em}
@media(max-width:740px){
  .site-header{padding:9px 14px;gap:8px}
  .site-header .brand{margin-right:auto}
  .site-header .brand img{width:clamp(96px,30vw,132px)}
  .site-header .header-call{padding:7px 10px;font-size:.75rem;min-height:36px;gap:5px;white-space:nowrap}
  .has-mobile-menu .menu-toggle{display:grid;place-content:center;gap:4px;width:42px;height:42px;background:none;border:1px solid var(--line);color:var(--ink);cursor:pointer}
  .menu-toggle span{width:17px;height:1px;background:currentColor}
  .menu-toggle[aria-expanded=true] span:first-child{transform:translateY(5px) rotate(45deg)}
  .menu-toggle[aria-expanded=true] span:nth-child(2){visibility:hidden}
  .menu-toggle[aria-expanded=true] span:last-child{transform:translateY(-5px) rotate(-45deg)}
  .menu-toggle:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
  .has-mobile-menu nav{display:none}
  .has-mobile-menu nav.is-open{display:grid;gap:0;padding-top:4px}
  .site-header nav a{padding:9px 4px;border-top:1px solid var(--line)}
  .hero{grid-template-columns:1fr;min-height:0}
  .hero-copy{padding:42px 22px 33px}
  .hero h1{font-size:clamp(3.2rem,12vw,5rem)}
  .hero p:not(.eyebrow){margin:18px 0 21px}
  .hero figure{aspect-ratio: 5/4}
  .hero figure::after{background:linear-gradient(180deg,#211c1955,transparent 24%),linear-gradient(0deg,#211c1977,transparent 27%)}
}

.review-overlay{width:min(100%,760px);padding-block:32px}
.review-rating{margin:10px 0;color:#f1d4bd}
.review-cards{display:grid;align-items:center;padding:8px 0}
.review-card{grid-area:1/1}
.review-card[hidden]{display:block;visibility:hidden}
.review-card blockquote{margin:0;font:clamp(1.05rem,2.4vw,1.45rem)/1.45 Georgia,serif}
.review-author{margin:10px 0 0;font-size:.85rem;font-weight:700}
.review-controls:not([hidden]){display:flex;justify-content:center;gap:8px;margin-top:12px}
.review-controls button{min-height:40px;min-width:44px;padding:4px 10px;border:1px solid #f1d4bd;background:#211c19;color:white;font:inherit;cursor:pointer}

.review-cards{margin:16px auto 0;max-width:630px;padding:0}
.review-card{align-self:stretch;display:flex;flex-direction:column;justify-content:center;gap:14px;padding:clamp(20px,4vw,36px);border:1px solid #e8d9cb;border-radius:16px;background:#f7f4ef;color:#25211e;box-shadow:0 12px 32px #211c1955}
.review-card[hidden]{display:flex}
.review-card:not([hidden]){animation:review-enter .28s ease-out}
.review-card .review-author{margin:0;color:#725140}
.review-card .review-author::before{content:"";display:block;width:24px;height:1px;background:#b79077;margin:0 auto 10px}
@keyframes review-enter{from{opacity:0;transform:translateX(10px)}to{opacity:1;transform:translateX(0)}}
@media(prefers-reduced-motion:reduce){.review-card:not([hidden]){animation:none}}

.review-overlay:not(.is-ready) .review-cards{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;gap:12px}
.review-overlay:not(.is-ready) .review-card{flex:0 0 100%;min-width:0;scroll-snap-align:start}
