:root{
  --ink:#1d1c1a;--muted:#74716b;--cream:#f8f5ef;--soft:#f2eee7;--line:#ded9d0;
  --accent:#b68c63;--white:#fff;--serif:"Playfair Display",serif;--sans:"DM Sans",sans-serif;
}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;color:var(--ink);font-family:var(--sans);background:#fff}a{text-decoration:none;color:inherit}
.topbar{position:fixed;z-index:1040;top:0;width:100%;height:32px;background:var(--ink);color:#fff;text-align:center;font-size:10px;letter-spacing:2px;padding:9px}.topbar span{margin:0 12px;color:#c6a27c}
.navbar{top:32px;height:82px;background:rgba(255,255,255,.94);backdrop-filter:blur(16px);transition:.3s}.navbar.scrolled{box-shadow:0 8px 30px rgba(0,0,0,.07)}
.navbar-brand{line-height:.8;display:flex;flex-direction:column;font-family:var(--serif);letter-spacing:2px;font-size:25px}.navbar-brand small{font:600 16px var(--sans);letter-spacing:1px;margin-top:7px;color:#777}.nav-link{font-size:12px;font-weight:600;letter-spacing:1px;text-transform:uppercase}.nav-link:hover,.nav-link.active{color:var(--accent)}
.hero{min-height:100vh;margin-top:114px;background:url("https://images.unsplash.com/photo-1560066984-138dadb4c035?auto=format&fit=crop&w=2200&q=90") center/cover;position:relative;display:flex;align-items:center;color:#fff}.hero-overlay{position:absolute;inset:0;background:linear-gradient(90deg,rgba(15,13,12,.72),rgba(15,13,12,.28),rgba(15,13,12,.1))}
.hero-content{max-width:680px;padding:100px 0}.eyebrow{font-size:10px;font-weight:700;letter-spacing:3px;margin-bottom:20px}.hero h1{font:600 clamp(54px,7vw,96px)/.98 var(--serif);margin:0 0 25px}.hero h1 em,.section-heading h2 em,h2 em{font-weight:500}.hero-copy{font-size:17px;line-height:1.8;max-width:520px;color:#eee;margin-bottom:32px}.hero-note{font-size:12px;letter-spacing:1px;margin-top:25px}.hero-note span{letter-spacing:3px;margin-right:10px;color:#f4d5ad}.hero-scroll{position:absolute;right:40px;bottom:35px;font-size:9px;letter-spacing:3px;writing-mode:vertical-rl}.hero-scroll span{margin-top:12px}
.section-pad{padding:115px 0}.bg-soft{background:var(--cream)}h2{font:600 clamp(42px,5vw,64px)/1.08 var(--serif);margin-bottom:25px}.muted{color:var(--muted);line-height:1.8}.eyebrow.dark{color:#9c7958}
.image-frame{position:relative;padding:0 25px 25px 0}.image-frame:after{content:"";position:absolute;right:0;bottom:0;width:85%;height:88%;border:1px solid var(--accent);z-index:0}.image-frame img{position:relative;width:100%;height:580px;object-fit:cover;z-index:1}.floating-card{position:absolute;z-index:2;right:-15px;bottom:35px;background:#fff;padding:22px 25px;display:flex;gap:15px;align-items:center;box-shadow:0 15px 40px #0001}.floating-card strong{font:600 34px var(--serif)}.floating-card span{font-size:10px;line-height:1.5;text-transform:uppercase;letter-spacing:1px}
.lead{font-size:18px}.signature{font:600 18px var(--serif);margin:28px 0}.signature span{font:400 12px var(--sans);color:#999;margin-left:10px}.text-link{font-weight:700;font-size:12px;letter-spacing:1px}.text-link span{margin-left:10px}
.section-heading{max-width:700px}.section-heading h2{margin-bottom:15px}.section-heading>p:last-child{max-width:580px}
.service-card{height:100%;background:#fff;border:1px solid var(--line);padding:34px 30px 30px;transition:.35s;position:relative}.service-card:hover{transform:translateY(-8px);box-shadow:0 20px 50px #33291b12}.service-card.featured{background:var(--ink);color:#fff}.service-card>span{font-size:10px;color:#a89987;letter-spacing:2px}.service-icon{font-size:32px;margin-bottom:28px;color:var(--accent)}.service-card h3{font:600 28px var(--serif);margin:20px 0 14px}.service-card p{font-size:13px;line-height:1.8;color:#858079;min-height:70px}.featured p{color:#c3bdb4}.service-card a{font-size:11px;font-weight:700;letter-spacing:1px}
.statement{padding:100px 0;text-align:center;background:var(--ink);color:#fff}.statement p{font-size:9px;letter-spacing:4px;color:#b9ab9a}.statement h2{font-size:clamp(45px,6vw,76px);margin:15px 0 0}
.price-list{border-top:1px solid var(--line)}.price-group{padding:25px 0;border-bottom:1px solid var(--line)}.price-group h4{font:600 22px var(--serif);margin-bottom:5px}.price-row{display:flex;justify-content:space-between;padding:14px 0;font-size:13px;color:var(--muted)}.price-row b{color:var(--ink);font-weight:600}
.gallery-grid{display:grid;grid-template-columns:1.15fr .85fr .85fr;grid-template-rows:250px 250px;gap:15px}.gallery-grid img{width:100%;height:100%;object-fit:cover;filter:saturate(.85)}.g1{grid-row:span 2}.g4{grid-column:2 / span 2}
blockquote{margin:0;height:100%;padding:38px;background:var(--cream);font:500 20px/1.65 var(--serif)}blockquote footer{font:600 10px/1 var(--sans);letter-spacing:2px;text-transform:uppercase;color:#8b8175;margin-top:25px}
.contact-section{padding:115px 0;background:#e9e1d7}.contact-card{box-shadow:0 25px 80px #35281b18}.contact-copy{padding:65px;background:var(--ink);color:#fff}.contact-copy h2{font-size:58px}.contact-copy>p:not(.eyebrow){color:#c5bfb7;line-height:1.8;max-width:480px}.contact-details{margin-top:45px;display:grid;gap:22px}.contact-details span{display:block;font-size:8px;letter-spacing:2px;color:#a99886;margin-bottom:6px}.contact-details strong{font-size:12px;line-height:1.7;font-weight:500}.booking-form{padding:65px;background:#fff}.booking-form h3{font:600 32px var(--serif);margin-bottom:30px}.booking-form input,.booking-form select,.booking-form textarea{width:100%;border:0;border-bottom:1px solid var(--line);padding:14px 2px;outline:0;font:13px var(--sans);background:transparent}.booking-form input:focus,.booking-form select:focus,.booking-form textarea:focus{border-color:var(--ink)}.form-message{display:block;margin-top:14px;color:#7c6044}
.footer{background:#151412;color:#fff;padding:55px 0 25px}.footer-logo{font:600 25px var(--serif);letter-spacing:2px}.footer p{color:#888;font-size:11px}.footer-links,.socials{display:flex;gap:25px;align-items:center;font-size:10px;text-transform:uppercase;letter-spacing:1px}.socials a{border:1px solid #444;border-radius:50%;width:32px;height:32px;display:grid;place-items:center;font-size:8px}.copyright{border-top:1px solid #333;margin-top:40px;padding-top:20px;color:#666;font-size:9px}
.floating-book{display:none;position:fixed;right:18px;bottom:18px;background:var(--ink);color:#fff;border-radius:50px;padding:13px 18px;font-size:10px;letter-spacing:1px;z-index:1030;box-shadow:0 8px 30px #0003}.floating-book span{margin-left:6px}
@media(max-width:991px){.navbar{height:72px}.navbar-collapse{background:#fff;padding:20px;margin:0 -12px}.hero{margin-top:104px}.hero-content{padding:90px 0}.image-frame img{height:480px}.contact-copy,.booking-form{padding:45px}.floating-book{display:block}}
@media(max-width:767px){.topbar{font-size:8px}.hero{min-height:88vh}.hero h1{font-size:55px}.hero-copy{font-size:15px}.hero-scroll{display:none}.section-pad{padding:80px 0}.image-frame{margin-bottom:20px}.image-frame img{height:390px}.floating-card{right:0}.gallery-grid{grid-template-columns:1fr 1fr;grid-template-rows:220px 180px 180px}.g1{grid-row:span 2}.g4{grid-column:1 / span 2}.contact-copy h2{font-size:45px}.footer-links{flex-wrap:wrap}.statement{padding:75px 20px}}
@media(max-width:480px){.hero h1{font-size:47px}.gallery-grid{display:grid;grid-template-columns:1fr 1fr;grid-template-rows:180px 150px 150px}.g1{grid-row:span 2}.hero-content{padding-top:70px}.floating-card{padding:16px}.floating-card strong{font-size:28px}}

/* ---------- Gallery slideshow ---------- */
.slideshow{position:relative;height:580px;background:#e9e1d7;overflow:hidden;box-shadow:0 25px 70px #35281b1c;user-select:none;touch-action:pan-y}
.ss-track{position:absolute;inset:0}
.ss-slide{position:absolute;inset:0;opacity:0;visibility:hidden;transition:opacity 1.1s ease,visibility 0s linear 1.1s}
.ss-slide.active{opacity:1;visibility:visible;transition:opacity 1.1s ease}
.ss-slide img{width:100%;height:100%;object-fit:cover;display:block;filter:saturate(.9);transform:scale(1.07);transition:transform 7s ease-out}
.ss-slide.active img{transform:scale(1)}
.slideshow:after{content:"";position:absolute;inset:auto 0 0 0;height:40%;background:linear-gradient(transparent,rgba(15,13,12,.55));pointer-events:none}
.ss-nav{position:absolute;top:50%;transform:translateY(-50%);z-index:3;width:52px;height:52px;border-radius:50%;border:1px solid rgba(255,255,255,.7);background:rgba(20,18,16,.25);color:#fff;font-size:30px;line-height:1;cursor:pointer;backdrop-filter:blur(4px);transition:.25s;padding:0 0 4px}
.ss-nav:hover{background:#fff;color:var(--ink)}
.ss-prev{left:22px}.ss-next{right:22px}
.ss-caption{position:absolute;z-index:3;left:34px;bottom:62px;right:34px;color:#fff;font:500 clamp(20px,2.4vw,30px)/1.3 var(--serif);text-shadow:0 2px 14px #0006}
.ss-count{position:absolute;z-index:3;right:34px;bottom:26px;color:#fff;font-size:11px;letter-spacing:3px;font-weight:600}
.ss-dots{position:absolute;z-index:3;left:34px;bottom:28px;display:flex;gap:9px;max-width:60%;flex-wrap:wrap}
.ss-dots button{width:9px;height:9px;padding:0;border-radius:50%;border:1px solid #fff;background:transparent;cursor:pointer;transition:.3s}
.ss-dots button.active{background:#fff;width:28px;border-radius:9px}
.slideshow.single .ss-nav,.slideshow.single .ss-dots,.slideshow.single .ss-count{display:none}
.slideshow button:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
@media(max-width:991px){.slideshow{height:460px}}
@media(max-width:767px){.slideshow{height:380px}.ss-nav{width:42px;height:42px;font-size:24px}.ss-prev{left:12px}.ss-next{right:12px}.ss-caption{left:20px;right:20px;bottom:56px}.ss-dots{left:20px}.ss-count{right:20px}}
@media(prefers-reduced-motion:reduce){.ss-slide,.ss-slide.active{transition:none}.ss-slide img,.ss-slide.active img{transform:none;transition:none}}

/* ---------- Locations ---------- */
.loc-head{max-width:640px;margin-bottom:56px}.loc-head h2{margin-bottom:16px}
.loc-card{height:100%;display:flex;flex-direction:column;background:#fff;border:1px solid var(--line)}
.loc-photo{aspect-ratio:4/3;background:#e9e1d7;overflow:hidden}
.loc-photo img{width:100%;height:100%;object-fit:cover;display:block;filter:saturate(.9)}
.loc-body{padding:30px 30px 32px;display:flex;flex-direction:column;flex:1}
.loc-body h3{font:600 30px/1.15 var(--serif);margin:0 0 14px}
.loc-address{font-style:normal;color:var(--muted);line-height:1.7;margin-bottom:16px}
.loc-phone{align-self:flex-start;font-weight:700;font-size:19px;letter-spacing:.3px;border-bottom:1px solid var(--accent);padding-bottom:2px;margin-bottom:22px}
.loc-phone:hover{color:#9c7958}
.loc-hours{margin:0 0 28px;padding-top:18px;border-top:1px solid var(--line);font-size:14px;color:var(--muted);line-height:1.9;display:grid;grid-template-columns:auto 1fr;gap:0 18px}
.loc-hours dt{font-weight:600;color:var(--ink)}.loc-hours dd{margin:0}
.loc-actions{margin-top:auto;display:flex;gap:10px;flex-wrap:wrap}
.loc-actions .btn{font-size:14px;font-weight:600}

/* ---------- Price list (loaded from admin) ---------- */
.price-group h4{margin-bottom:6px}
.price-row{align-items:baseline;gap:24px}
.price-row .pr-text{display:flex;flex-direction:column;gap:3px}
.price-row .pr-name{color:var(--ink);font-size:15px}
.price-row .pr-desc{font-size:13px;line-height:1.55;color:#8b8579}
.price-row b{white-space:nowrap;font-size:15px}
.price-status{padding:26px 0;color:var(--muted);margin:0}

/* ---------- Call to book ---------- */
.call-section{padding:110px 0;background:var(--ink);color:#fff}
.call-section h2{font-size:clamp(42px,5vw,64px);margin-bottom:14px}
.call-intro{color:#c5bfb7;font-size:17px;margin:0 0 50px}
.call-list{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid #3b3935}
.call-item{padding:30px 24px 0 0}
.call-item small{display:block;font-size:13px;color:#b9ab9a;margin-bottom:8px}
.call-item a{font:600 clamp(24px,2.6vw,32px)/1.2 var(--serif)}
.call-item a:hover{color:#d3b08c}
a:focus-visible,.btn:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
@media(max-width:767px){.call-section{padding:80px 0}.call-list{grid-template-columns:1fr}.call-item{padding-bottom:6px}.loc-body{padding:26px 22px 28px}}

/* Refined Dream Salon price list */

.pricing {background: #faf9f6; color: #292720;}
.pricing h2 {font-family: "Playfair Display", serif; font-size: clamp(38px, 4vw, 54px);font-weight: 500;line-height: 1.2;}
.pricing h2 em {color: #82735e;font-weight: 500;}
.pricing .muted {color: #77736d;font-size: 14px;line-height: 1.9;}
.price-group {margin-bottom: 36px;}
.price-category-label {display: block; margin-bottom: 8px; color: #93836b; font-family: "DM Sans", sans-serif; font-size: 9px; font-weight: 700; letter-spacing: 2px;}
.price-group-title {margin: 0; padding-bottom: 17px; border-bottom: 1px solid #dedbd4; color: #292720; font-family: "Playfair Display", serif; font-size: 28px; font-weight: 500;}
.price-row {display: flex; align-items: center; justify-content: space-between; gap: 22px; padding: 21px 0; border-bottom: 1px solid #eae7e1;}
.pr-text {display: flex;flex: 1;flex-direction: column;gap: 6px;}
.pr-name {color: #292720; font-size: 14px; font-weight: 600;}
.pr-desc {color: #77736d; font-size: 12px; line-height: 1.8;}
.pr-price {flex-shrink: 0; color: #82735e; font-family: "Playfair Display", serif; font-size: 22px; white-space: nowrap;}
.price-status {padding: 24px 0; color: #77736; font-size: 14px; line-height: 1.8;}

@media (max-width: 575.98px) {.price-group-title { font-size: 24px;}
  .price-row {gap: 12px;}
  .pr-name {font-size: 13px;}
  .pr-price {font-size: 19px;}
}


/* ---------- Location pages ---------- */
.loc-photo{display:block}
.loc-body h3 a:hover{color:#9c7958}
.loc-hero{padding:150px 0 90px;background:var(--cream)}
.crumbs{font-size:12px;letter-spacing:1px;color:var(--muted);margin-bottom:34px;display:flex;flex-wrap:wrap;gap:8px}
.crumbs a:hover{color:var(--accent)}.crumbs b{color:var(--ink);font-weight:600}
.loc-title{font:600 clamp(46px,6vw,80px)/1.02 var(--serif);margin:0 0 24px}.loc-title em{font-weight:500}
.loc-intro{font-size:17px;max-width:560px}
.loc-info{background:#fff;border:1px solid var(--line)}
.loc-info-photo{aspect-ratio:4/3;overflow:hidden;background:#e9e1d7}
.loc-info-photo img{width:100%;height:100%;object-fit:cover;display:block}
.loc-info-body{padding:28px 30px 30px}
.loc-info-body small{display:block;font-size:10px;letter-spacing:2px;color:#9c7958;font-weight:700;margin-bottom:6px}
.loc-info-body address,.loc-info-body p{font-style:normal;color:var(--muted);line-height:1.7;margin:0 0 20px}
.loc-info-body p a{color:var(--ink)}
.loc-hours-plain{border-top:0;padding-top:0;margin:0 0 20px}
.map-box{height:420px;background:#e9e1d7;border:1px solid var(--line)}
.map-box iframe{width:100%;height:100%;border:0;display:block}
.loc-faq .accordion-item{border:0;border-bottom:1px solid var(--line);background:transparent;border-radius:0}
.loc-faq .accordion-button{background:transparent;box-shadow:none;font:600 20px var(--serif);padding:24px 0;color:var(--ink)}
.loc-faq .accordion-button:not(.collapsed){color:#9c7958}
.loc-faq .accordion-body{padding:0 0 24px;color:var(--muted);line-height:1.8}
.near-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:20px}
.near-card{display:flex;flex-direction:column;gap:10px;padding:30px;border:1px solid var(--line);background:#fff;transition:.3s}
.near-card:hover{transform:translateY(-5px);box-shadow:0 18px 40px #33291b14}
.near-card strong{font:600 28px var(--serif)}.near-card span{color:var(--muted);line-height:1.6}
.near-card .near-go{font-weight:700;font-size:12px;letter-spacing:1px;color:var(--ink);margin-top:6px}
@media(max-width:767px){.loc-hero{padding:120px 0 60px}.map-box{height:320px}}

/* ---------- Services on location pages ---------- */
.svc-intro{max-width:560px;margin-bottom:70px}
.svc-block{margin-bottom:90px}.svc-block:last-child{margin-bottom:0}
.svc-img{aspect-ratio:4/3;overflow:hidden;background:#e9e1d7}
.svc-img img{width:100%;height:100%;object-fit:cover;display:block;filter:saturate(.9)}
.svc-label{font-size:11px;font-weight:700;letter-spacing:3px;color:#9c7958;text-transform:uppercase;margin-bottom:12px}
.svc-title{font:600 clamp(34px,4vw,48px)/1.1 var(--serif);margin:0 0 18px}
.svc-list{list-style:none;padding:0;margin:26px 0 30px;border-top:1px solid var(--line)}
.svc-list li{padding:13px 0;border-bottom:1px solid var(--line);color:var(--muted);font-size:15px;line-height:1.6}
.svc-list li b{color:var(--ink);font-weight:600}
@media(min-width:992px){.svc-block.flip .svc-img-col{order:2}}
@media(max-width:767px){.svc-block{margin-bottom:60px}.svc-intro{margin-bottom:46px}}

.loc-tag{font-size:11px;font-weight:700;letter-spacing:2px;text-transform:uppercase;color:#9c7958;margin:0 0 8px}
.loc-info-body address b{color:var(--ink);font-weight:600}
.price-notes p{margin:0 0 10px}
