:root{
    --primary-color:#6b8e7f;
    --primary-dark:#4f6f63;
    --accent-color:#c9a96e;
    --accent-dark:#a88955;
    --dark-color:#2c3e3a;
    --text-color:#3a3a3a;
    --light-text:#6b6b6b;
    --bg-cream:#faf7f2;
    --bg-light:#f4f0e8;
    --white:#ffffff;
    --border-color:#e6e0d4;
    --shadow:0 4px 20px rgba(0,0,0,.08);
    --shadow-lg:0 10px 40px rgba(0,0,0,.12);
    --transition:all .3s ease;
}

*{margin:0;padding:0;box-sizing:border-box}

html{scroll-behavior:smooth}

body{
    font-family:'Georgia','Times New Roman',serif;
    color:var(--text-color);
    line-height:1.7;
    background:var(--bg-cream);
    overflow-x:hidden;
}

.container{max-width:1200px;margin:0 auto;padding:0 20px}

a{color:var(--primary-color);text-decoration:none;transition:var(--transition)}
a:hover{color:var(--accent-color)}

img{max-width:100%;height:auto;display:block}

h1,h2,h3,h4,h5,h6{font-family:'Playfair Display','Georgia',serif;color:var(--dark-color);font-weight:600;line-height:1.3}

h1{font-size:2.8rem;margin-bottom:1rem}
h2{font-size:2.2rem;margin-bottom:1.2rem}
h3{font-size:1.5rem;margin-bottom:.8rem}

p{margin-bottom:1rem}

/* ===== Top Bar ===== */
.top-bar{
    background:var(--dark-color);
    color:var(--white);
    padding:.5rem 0;
    font-size:.85rem;
}
.top-bar .container{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:.5rem}
.top-bar a{color:var(--white)}
.top-bar a:hover{color:var(--accent-color)}
.top-bar .top-info{display:flex;gap:1.5rem;flex-wrap:wrap}
.top-bar .top-info span{display:inline-flex;align-items:center;gap:.4rem}

/* ===== Header ===== */
header{
    background:var(--white);
    box-shadow:var(--shadow);
    position:sticky;
    top:0;
    z-index:1000;
}
header .container{display:flex;justify-content:space-between;align-items:center;padding-top:1rem;padding-bottom:1rem}

.logo a{display:flex;flex-direction:column;text-decoration:none}
.logo-text{
    font-family:'Playfair Display','Georgia',serif;
    font-size:1.5rem;
    font-weight:700;
    color:var(--primary-color);
    letter-spacing:.5px;
}
.logo-tagline{font-size:.7rem;color:var(--light-text);letter-spacing:2px;text-transform:uppercase}

nav ul{list-style:none;display:flex;gap:2rem;align-items:center}
nav ul li{position:relative}
nav ul li a{
    color:var(--dark-color);
    font-size:.95rem;
    font-weight:500;
    padding:.5rem 0;
    position:relative;
}
nav ul li a::after{
    content:'';
    position:absolute;
    bottom:0;
    left:0;
    width:0;
    height:2px;
    background:var(--accent-color);
    transition:width .3s ease;
}
nav ul li a:hover::after,nav ul li.active>a::after{width:100%}

/* Dropdown */
.has-dropdown>a::before{content:'';display:inline-block}
.dropdown{
    position:absolute;
    top:100%;
    left:0;
    background:var(--white);
    box-shadow:var(--shadow-lg);
    min-width:240px;
    padding:.5rem 0;
    opacity:0;
    visibility:hidden;
    transform:translateY(10px);
    transition:var(--transition);
    border-top:3px solid var(--accent-color);
}
.has-dropdown:hover .dropdown{opacity:1;visibility:visible;transform:translateY(0)}
.dropdown li{display:block}
.dropdown li a{
    display:block;
    padding:.6rem 1.2rem;
    font-size:.9rem;
    white-space:nowrap;
}
.dropdown li a:hover{background:var(--bg-light);color:var(--primary-color)}
.dropdown li a::after{display:none}

.menu-toggle{
    display:none;
    background:none;
    border:none;
    font-size:1.5rem;
    color:var(--dark-color);
    cursor:pointer;
}

.btn-book{
    background:var(--accent-color);
    color:var(--white)!important;
    padding:.6rem 1.4rem!important;
    border-radius:30px;
    transition:var(--transition);
}
.btn-book:hover{background:var(--accent-dark);color:var(--white)!important}
.btn-book::after{display:none!important}

/* ===== Hero ===== */
.hero{
    position:relative;
    min-height:560px;
    display:flex;
    align-items:center;
    justify-content:center;
    background:linear-gradient(rgba(44,62,58,.55),rgba(44,62,58,.55)),url('/images/headspa-nyc-hero.jpg') center/cover;
    color:var(--white);
    text-align:center;
    padding:5rem 1rem;
}
.hero h1{color:var(--white);font-size:3.4rem;margin-bottom:1rem}
.hero .subtitle{
    font-size:1.2rem;
    max-width:720px;
    margin:0 auto 2rem;
    font-style:italic;
    color:rgba(255,255,255,.92);
}
.hero-buttons{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap}

.btn{
    display:inline-block;
    padding:.9rem 2rem;
    border-radius:30px;
    font-weight:600;
    letter-spacing:.5px;
    transition:var(--transition);
    border:none;
    cursor:pointer;
    font-family:inherit;
    font-size:1rem;
}
.btn-primary{background:var(--accent-color);color:var(--white)}
.btn-primary:hover{background:var(--accent-dark);color:var(--white);transform:translateY(-2px);box-shadow:var(--shadow-lg)}
.btn-outline{background:transparent;color:var(--white);border:2px solid var(--white)}
.btn-outline:hover{background:var(--white);color:var(--primary-color)}

/* ===== Section Common ===== */
section{padding:5rem 0}

.section-header{text-align:center;max-width:760px;margin:0 auto 3rem}
.section-header .eyebrow{
    color:var(--accent-color);
    text-transform:uppercase;
    letter-spacing:3px;
    font-size:.8rem;
    font-weight:600;
    margin-bottom:.5rem;
    display:inline-block;
}
.section-header h2{margin-bottom:1rem}
.section-header p{color:var(--light-text)}

.divider{
    width:60px;
    height:2px;
    background:var(--accent-color);
    margin:1rem auto;
}

/* ===== Services Grid (Homepage) ===== */
.services-section{background:var(--white)}
.services-grid{
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(280px,1fr));
    gap:2rem;
}
.service-card{
    background:var(--bg-cream);
    border:1px solid var(--border-color);
    border-radius:8px;
    overflow:hidden;
    transition:var(--transition);
}
.service-card:hover{transform:translateY(-5px);box-shadow:var(--shadow-lg)}
.service-card img{width:100%;height:240px;object-fit:cover}
.service-card .card-body{padding:1.5rem}
.service-card h3{margin-bottom:.6rem}
.service-card p{color:var(--light-text);font-size:.95rem;margin-bottom:1rem}
.service-card .read-more{
    color:var(--accent-color);
    font-weight:600;
    font-size:.9rem;
    letter-spacing:1px;
    text-transform:uppercase;
}

/* ===== About / Two-column ===== */
.two-col{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:4rem;
    align-items:center;
}
.two-col img{border-radius:8px;box-shadow:var(--shadow-lg)}
.two-col .eyebrow{
    color:var(--accent-color);
    text-transform:uppercase;
    letter-spacing:3px;
    font-size:.8rem;
    font-weight:600;
}
.two-col h2{margin:.6rem 0 1rem}
.two-col p{color:var(--light-text)}

/* ===== Price Table ===== */
.price-section{background:var(--bg-light)}
.price-list{
    max-width:820px;
    margin:0 auto;
    background:var(--white);
    border-radius:8px;
    box-shadow:var(--shadow);
    overflow:hidden;
}
.price-list h3{
    background:var(--primary-color);
    color:var(--white);
    padding:1rem 1.5rem;
    margin:0;
    font-size:1.2rem;
    letter-spacing:.5px;
}
.price-list .price-row{
    display:flex;
    justify-content:space-between;
    align-items:baseline;
    padding:1rem 1.5rem;
    border-bottom:1px dashed var(--border-color);
    gap:1rem;
}
.price-list .price-row:last-child{border-bottom:none}
.price-list .price-row .name{flex:1;font-weight:500;color:var(--dark-color)}
.price-list .price-row .name small{display:block;color:var(--light-text);font-weight:400;font-size:.85rem;margin-top:.2rem}
.price-list .price-row .duration{color:var(--light-text);font-size:.9rem;min-width:80px;text-align:right}
.price-list .price-row .price{
    font-family:'Playfair Display','Georgia',serif;
    font-size:1.4rem;
    color:var(--accent-color);
    font-weight:700;
    min-width:90px;
    text-align:right;
}
.price-list .price-row .price del{color:#bbb;font-size:.85rem;display:block;font-weight:400}

/* ===== CTA Banner ===== */
.cta-banner{
    background:linear-gradient(rgba(44,62,58,.85),rgba(44,62,58,.85)),url('/images/blissful-difference-headspa-nyc.jpg') center/cover;
    color:var(--white);
    text-align:center;
    padding:4rem 1rem;
}
.cta-banner h2{color:var(--white);margin-bottom:1rem}
.cta-banner p{max-width:600px;margin:0 auto 1.5rem;color:rgba(255,255,255,.9)}

/* ===== Features ===== */
.features-grid{
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(220px,1fr));
    gap:2rem;
}
.feature-item{text-align:center;padding:1.5rem}
.feature-icon{
    width:70px;
    height:70px;
    line-height:70px;
    margin:0 auto 1rem;
    border-radius:50%;
    background:var(--bg-light);
    color:var(--accent-color);
    font-size:1.8rem;
    text-align:center;
}
.feature-item h3{font-size:1.1rem}
.feature-item p{font-size:.95rem;color:var(--light-text)}

/* ===== Contact Form ===== */
.contact-section{background:var(--bg-cream)}
.contact-grid{
    display:grid;
    grid-template-columns:1fr 1.2fr;
    gap:3rem;
}
.contact-info{padding:0}
.contact-info h3{margin-bottom:1rem}
.contact-info .info-block{margin-bottom:1.5rem;padding-left:0}
.contact-info .info-block strong{display:block;color:var(--accent-color);margin-bottom:.3rem;letter-spacing:1px;text-transform:uppercase;font-size:.85rem}
.contact-info .info-block a{color:var(--dark-color)}
.contact-info .info-block a:hover{color:var(--accent-color)}

.contact-form{
    background:var(--white);
    padding:2rem;
    border-radius:8px;
    box-shadow:var(--shadow);
}
.contact-form input,
.contact-form select,
.contact-form textarea{
    width:100%;
    padding:.8rem 1rem;
    margin-bottom:1rem;
    border:1px solid var(--border-color);
    border-radius:4px;
    font-family:inherit;
    font-size:1rem;
    background:var(--bg-cream);
    transition:var(--transition);
}
.contact-form input:focus,
.contact-form select:focus,
.contact-form textarea:focus{
    outline:none;
    border-color:var(--accent-color);
    background:var(--white);
}
.contact-form textarea{min-height:130px;resize:vertical}
.contact-form .form-row{display:grid;grid-template-columns:1fr 1fr;gap:.75rem;margin-bottom:1rem}
.contact-form .form-field{display:flex;flex-direction:column;margin-bottom:0}
.contact-form .form-label{font-size:.78rem;color:#6b6b6b;margin-bottom:.3rem;letter-spacing:.04em;text-transform:uppercase}
.contact-form .form-field input{margin-bottom:0}
@media (max-width:540px){.contact-form .form-row{grid-template-columns:1fr}}
.contact-form button{
    width:100%;
    background:var(--accent-color);
    color:var(--white);
    border:none;
    padding:1rem;
    font-size:1rem;
    font-weight:600;
    letter-spacing:1px;
    text-transform:uppercase;
    border-radius:30px;
    cursor:pointer;
    transition:var(--transition);
    font-family:inherit;
}
.contact-form button:hover{background:var(--accent-dark)}

/* ===== Page Header ===== */
.page-header{
    background:linear-gradient(rgba(44,62,58,.7),rgba(44,62,58,.7)),url('/images/headspa-nyc-hero.jpg') center/cover;
    color:var(--white);
    text-align:center;
    padding:5rem 1rem 3rem;
}
.page-header h1{color:var(--white);margin-bottom:.5rem}
.page-header .breadcrumb{font-size:.9rem;color:rgba(255,255,255,.85)}
.page-header .breadcrumb a{color:rgba(255,255,255,.95)}

/* ===== FAQ ===== */
.faq-list{max-width:800px;margin:0 auto}
.faq-item{
    background:var(--white);
    border:1px solid var(--border-color);
    border-radius:6px;
    margin-bottom:1rem;
    overflow:hidden;
}
.faq-item summary{
    padding:1.2rem 1.5rem;
    font-weight:600;
    color:var(--dark-color);
    cursor:pointer;
    list-style:none;
    position:relative;
    padding-right:3rem;
}
.faq-item summary::after{
    content:'+';
    position:absolute;
    right:1.5rem;
    top:50%;
    transform:translateY(-50%);
    font-size:1.5rem;
    color:var(--accent-color);
    transition:var(--transition);
}
.faq-item[open] summary::after{transform:translateY(-50%) rotate(45deg)}
.faq-item .faq-body{padding:0 1.5rem 1.2rem;color:var(--light-text)}

/* ===== Footer ===== */
footer{background:var(--dark-color);color:rgba(255,255,255,.85);padding:3rem 0 1rem;margin-top:0}
.footer-content{
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(220px,1fr));
    gap:2rem;
    margin-bottom:2rem;
}
.footer-section h3{color:var(--white);margin-bottom:1rem;font-size:1.1rem}
.footer-section p,.footer-section a{color:rgba(255,255,255,.75);line-height:1.8;font-size:.95rem}
.footer-section a:hover{color:var(--accent-color)}
.footer-section ul{list-style:none}
.footer-section ul li{margin-bottom:.4rem}

.footer-bottom{
    text-align:center;
    padding-top:2rem;
    border-top:1px solid rgba(255,255,255,.1);
    color:rgba(255,255,255,.55);
    font-size:.85rem;
}
.footer-bottom p{margin-bottom:.5rem}
.footer-partner{margin-top:1rem;font-size:.85rem;color:rgba(255,255,255,.65)}
.footer-partner a{color:var(--accent-color);text-decoration:none}
.footer-partner a:hover{color:var(--white)}

/* ===== Responsive ===== */
@media(max-width:900px){
    h1{font-size:2.2rem}
    h2{font-size:1.8rem}
    .hero h1{font-size:2.4rem}
    .two-col{grid-template-columns:1fr;gap:2rem}
    .contact-grid{grid-template-columns:1fr;gap:2rem}
    .menu-toggle{display:block}
    nav ul{
        position:fixed;
        top:0;
        right:-100%;
        flex-direction:column;
        background:var(--white);
        width:280px;
        height:100vh;
        padding:5rem 2rem 2rem;
        gap:0;
        box-shadow:var(--shadow-lg);
        transition:right .3s ease;
        align-items:flex-start;
        overflow-y:auto;
    }
    nav ul.open{right:0}
    nav ul li{width:100%;border-bottom:1px solid var(--border-color)}
    nav ul li a{display:block;padding:.9rem 0;width:100%}
    .dropdown{
        position:static;
        opacity:1;
        visibility:visible;
        transform:none;
        box-shadow:none;
        border-top:none;
        padding:0 0 0 1rem;
        display:none;
    }
    .has-dropdown.open .dropdown{display:block}
}
@media(max-width:600px){
    .hero{min-height:480px;padding:3rem 1rem}
    .hero h1{font-size:1.9rem}
    .hero .subtitle{font-size:1rem}
    section{padding:3rem 0}
    .price-list .price-row{flex-wrap:wrap}
    .price-list .price-row .duration{order:3;text-align:left;min-width:auto;flex-basis:60%}
    .price-list .price-row .price{order:2}
    .top-bar .container{justify-content:center;text-align:center}
}

/* ==========================================================================
   LUXE HOMEPAGE COMPONENTS — editorial / high-end variant
   Only used by index.html; other pages unaffected.
   ========================================================================== */

/* Cinematic full-viewport hero */
.luxe-hero{
    position:relative;
    height:100vh;
    min-height:640px;
    max-height:880px;
    color:var(--white);
    overflow:hidden;
    display:flex;
    align-items:center;
    justify-content:flex-start;
    padding:0 6vw;
    background:linear-gradient(rgba(20,30,28,.55),rgba(20,30,28,.65)),url('/images/headspa-nyc-hero.jpg') center/cover;
}
.luxe-hero::before{
    content:'';
    position:absolute;inset:0;
    background:linear-gradient(180deg,rgba(0,0,0,.25) 0%,transparent 30%,transparent 60%,rgba(0,0,0,.45) 100%);
    pointer-events:none;
}
.luxe-hero .hero-inner{
    position:relative;
    z-index:2;
    max-width:780px;
}
.luxe-hero .eyebrow-line{
    display:flex;align-items:center;gap:1rem;
    margin-bottom:1.5rem;
    text-transform:uppercase;
    letter-spacing:.5em;
    font-size:.72rem;
    color:rgba(255,255,255,.85);
}
.luxe-hero .eyebrow-line::before{
    content:'';display:block;width:60px;height:1px;background:var(--accent-color);
}
.luxe-hero h1{
    color:var(--white);
    font-size:clamp(2.6rem,6.5vw,5.4rem);
    font-weight:500;
    line-height:1.05;
    letter-spacing:-.02em;
    margin-bottom:1.6rem;
}
.luxe-hero h1 em{
    font-style:italic;
    color:#e2cfa6;
    font-weight:400;
}
.luxe-hero .lead{
    font-size:clamp(1rem,1.6vw,1.2rem);
    line-height:1.7;
    color:rgba(255,255,255,.85);
    max-width:540px;
    margin-bottom:2.4rem;
    font-family:'Georgia',serif;
}
.luxe-hero .hero-cta{display:flex;gap:1rem;flex-wrap:wrap}
.btn-ghost{
    background:transparent;
    border:1px solid rgba(255,255,255,.4);
    color:var(--white);
    padding:.9rem 2rem;
    letter-spacing:.18em;
    text-transform:uppercase;
    font-size:.78rem;
    font-weight:500;
    border-radius:0;
    transition:var(--transition);
    text-decoration:none;
    display:inline-block;
}
.btn-ghost:hover{background:rgba(255,255,255,.1);color:var(--white);border-color:var(--white)}
.btn-luxe{
    background:var(--accent-color);
    color:var(--white);
    border:1px solid var(--accent-color);
    padding:.9rem 2rem;
    letter-spacing:.18em;
    text-transform:uppercase;
    font-size:.78rem;
    font-weight:500;
    border-radius:0;
    transition:var(--transition);
    text-decoration:none;
    display:inline-block;
}
.btn-luxe:hover{background:var(--accent-dark);border-color:var(--accent-dark);color:var(--white);transform:translateY(-1px)}

.luxe-hero .hero-meta{
    position:absolute;
    bottom:3rem;left:6vw;right:6vw;
    z-index:2;
    display:flex;
    justify-content:space-between;
    align-items:flex-end;
    gap:2rem;
    color:rgba(255,255,255,.75);
    font-size:.78rem;
    letter-spacing:.2em;
    text-transform:uppercase;
    flex-wrap:wrap;
}
.luxe-hero .hero-meta .scroll-hint{
    display:flex;align-items:center;gap:.8rem;
}
.luxe-hero .hero-meta .scroll-hint::after{
    content:'';display:block;width:1px;height:40px;
    background:linear-gradient(180deg,rgba(255,255,255,.6),transparent);
    animation:scrollLine 2.4s ease-in-out infinite;
}
@keyframes scrollLine{
    0%,100%{opacity:.3;transform:scaleY(.6)}
    50%{opacity:1;transform:scaleY(1)}
}

/* Editorial section frame */
.editorial-block{
    padding:8rem 0;
    background:var(--bg-cream);
}
.editorial-block .container{max-width:1180px}

.editorial-quote{
    max-width:880px;
    margin:0 auto;
    text-align:center;
}
.editorial-quote .quote-mark{
    font-family:'Playfair Display',serif;
    font-size:5rem;
    line-height:1;
    color:var(--accent-color);
    margin-bottom:1rem;
    font-weight:400;
}
.editorial-quote blockquote{
    font-family:'Playfair Display','Georgia',serif;
    font-size:clamp(1.6rem,3.2vw,2.6rem);
    line-height:1.4;
    font-style:italic;
    font-weight:400;
    color:var(--dark-color);
    margin-bottom:2rem;
    letter-spacing:-.01em;
}
.editorial-quote .attribution{
    text-transform:uppercase;
    letter-spacing:.4em;
    font-size:.7rem;
    color:var(--light-text);
}
.editorial-quote .attribution::before{
    content:'';display:inline-block;
    width:40px;height:1px;background:var(--accent-color);
    vertical-align:middle;margin-right:1rem;
}

/* Numbered editorial section labels */
.editorial-label{
    display:flex;
    align-items:baseline;
    gap:1.5rem;
    margin-bottom:2rem;
    text-transform:uppercase;
    letter-spacing:.4em;
    font-size:.7rem;
    color:var(--accent-color);
    font-weight:600;
}
.editorial-label .num{
    font-family:'Playfair Display',serif;
    font-size:1.4rem;
    color:var(--accent-color);
    letter-spacing:0;
    font-weight:400;
}

/* Split feature — full-bleed image + text */
.split-feature{
    display:grid;
    grid-template-columns:1fr 1fr;
    min-height:680px;
    background:var(--white);
}
.split-feature.reverse{direction:rtl}
.split-feature.reverse > *{direction:ltr}
.split-feature .split-img{
    background-size:cover;
    background-position:center;
    min-height:420px;
}
.split-feature .split-text{
    display:flex;
    flex-direction:column;
    justify-content:center;
    padding:5rem 6vw;
}
.split-feature .split-text h2{
    font-size:clamp(2rem,3.6vw,3rem);
    font-weight:500;
    line-height:1.15;
    letter-spacing:-.01em;
    margin-bottom:1.5rem;
}
.split-feature .split-text p{
    color:var(--light-text);
    font-size:1.05rem;
    line-height:1.85;
    max-width:480px;
    margin-bottom:1rem;
}
.split-feature .feature-meta{
    margin-top:2rem;
    padding-top:2rem;
    border-top:1px solid var(--border-color);
    display:flex;
    gap:2.5rem;
    flex-wrap:wrap;
}
.split-feature .feature-meta div{
    font-size:.85rem;
}
.split-feature .feature-meta strong{
    display:block;
    text-transform:uppercase;
    letter-spacing:.25em;
    font-size:.7rem;
    color:var(--accent-color);
    margin-bottom:.4rem;
    font-weight:600;
}
.split-feature .feature-meta span{
    color:var(--dark-color);
    font-family:'Playfair Display',serif;
    font-size:1.6rem;
}

/* Numbered services list */
.numbered-services{
    background:var(--bg-cream);
    padding:8rem 0;
}
.numbered-services .container{max-width:1180px}
.numbered-services-header{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:4rem;
    margin-bottom:5rem;
    align-items:end;
}
.numbered-services-header h2{
    font-size:clamp(2.2rem,4vw,3.4rem);
    font-weight:500;
    line-height:1.1;
    letter-spacing:-.01em;
}
.numbered-services-header p{
    color:var(--light-text);
    font-size:1.05rem;
    line-height:1.8;
}
.service-rows{border-top:1px solid var(--border-color)}
.service-row{
    display:grid;
    grid-template-columns:80px 2fr 3fr 1fr;
    gap:2.5rem;
    align-items:center;
    padding:2.4rem 0;
    border-bottom:1px solid var(--border-color);
    transition:var(--transition);
    text-decoration:none;
    color:inherit;
}
.service-row:hover{background:var(--white);padding-left:1.5rem;padding-right:1.5rem}
.service-row .num{
    font-family:'Playfair Display',serif;
    font-size:1.6rem;
    color:var(--accent-color);
    font-weight:400;
}
.service-row .title{
    font-family:'Playfair Display',serif;
    font-size:clamp(1.3rem,2vw,1.7rem);
    color:var(--dark-color);
    font-weight:500;
    letter-spacing:-.01em;
}
.service-row .desc{
    color:var(--light-text);
    font-size:.98rem;
    line-height:1.7;
}
.service-row .arrow{
    text-align:right;
    color:var(--accent-color);
    font-size:1.2rem;
    transition:var(--transition);
}
.service-row:hover .arrow{transform:translateX(8px)}

/* Image mosaic gallery */
.mosaic{
    padding:8rem 0;
    background:var(--white);
}
.mosaic .container{max-width:1280px}
.mosaic-grid{
    display:grid;
    grid-template-columns:repeat(12,1fr);
    grid-auto-rows:140px;
    gap:1.2rem;
}
.mosaic-grid figure{margin:0;overflow:hidden;position:relative;background:#eee}
.mosaic-grid figure img{
    width:100%;height:100%;object-fit:cover;
    transition:transform 1.2s ease;
    display:block;
}
.mosaic-grid figure:hover img{transform:scale(1.05)}
.mosaic-grid figure figcaption{
    position:absolute;
    bottom:1.2rem;left:1.2rem;
    color:var(--white);
    background:rgba(0,0,0,.55);
    padding:.5rem 1rem;
    font-size:.72rem;
    text-transform:uppercase;
    letter-spacing:.25em;
    backdrop-filter:blur(8px);
    -webkit-backdrop-filter:blur(8px);
}
.mosaic-grid .m1{grid-column:span 7;grid-row:span 3}
.mosaic-grid .m2{grid-column:span 5;grid-row:span 2}
.mosaic-grid .m3{grid-column:span 5;grid-row:span 2}
.mosaic-grid .m4{grid-column:span 4;grid-row:span 2}
.mosaic-grid .m5{grid-column:span 4;grid-row:span 2}
.mosaic-grid .m6{grid-column:span 4;grid-row:span 2}

/* Press / value strip */
.press-strip{
    background:var(--dark-color);
    color:rgba(255,255,255,.85);
    padding:3rem 0;
    text-align:center;
}
.press-strip .marquee{
    display:flex;
    justify-content:space-around;
    align-items:center;
    gap:3rem;
    flex-wrap:wrap;
    font-family:'Playfair Display',serif;
    font-style:italic;
    font-size:1.05rem;
    color:rgba(255,255,255,.7);
}
.press-strip .marquee span{position:relative;padding:0 1rem}
.press-strip .marquee span:not(:last-child)::after{
    content:'·';
    position:absolute;right:-1rem;color:var(--accent-color);
}

/* Testimonials editorial */
.testimonials{
    padding:8rem 0;
    background:var(--bg-light);
}
.testimonials .container{max-width:1180px}
.testimonials-grid{
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(300px,1fr));
    gap:2.5rem;
    margin-top:4rem;
}
.testimonial{
    background:var(--white);
    padding:3rem 2.5rem;
    border:1px solid var(--border-color);
    position:relative;
}
.testimonial::before{
    content:'\201C';
    position:absolute;
    top:1rem;left:1.5rem;
    font-family:'Playfair Display',serif;
    font-size:5rem;
    line-height:1;
    color:var(--accent-color);
    opacity:.2;
}
.testimonial .stars{
    color:var(--accent-color);
    letter-spacing:.2em;
    margin-bottom:1.2rem;
    font-size:.95rem;
    position:relative;z-index:2;
}
.testimonial blockquote{
    font-family:'Georgia',serif;
    font-size:1.02rem;
    line-height:1.8;
    color:var(--dark-color);
    font-style:italic;
    margin-bottom:1.5rem;
    position:relative;z-index:2;
}
.testimonial cite{
    font-style:normal;
    text-transform:uppercase;
    letter-spacing:.25em;
    font-size:.72rem;
    color:var(--light-text);
    font-weight:600;
}
.testimonial cite::before{
    content:'';display:inline-block;
    width:30px;height:1px;background:var(--accent-color);
    vertical-align:middle;margin-right:.8rem;
}

/* Luxe booking strip */
.luxe-cta{
    position:relative;
    color:var(--white);
    text-align:center;
    padding:8rem 1rem;
    overflow:hidden;
    background:linear-gradient(rgba(20,30,28,.7),rgba(20,30,28,.8)),url('/images/blissful-difference-headspa-nyc.jpg') center/cover fixed;
}
.luxe-cta .eyebrow-line{
    display:flex;align-items:center;justify-content:center;gap:1rem;
    margin-bottom:1.5rem;
    text-transform:uppercase;
    letter-spacing:.5em;
    font-size:.72rem;
    color:rgba(255,255,255,.85);
}
.luxe-cta .eyebrow-line::before,
.luxe-cta .eyebrow-line::after{
    content:'';display:block;width:50px;height:1px;background:var(--accent-color);
}
.luxe-cta h2{
    color:var(--white);
    font-size:clamp(2.2rem,5vw,4rem);
    font-weight:500;
    line-height:1.1;
    margin-bottom:1.5rem;
    letter-spacing:-.01em;
}
.luxe-cta h2 em{font-style:italic;color:#e2cfa6;font-weight:400}
.luxe-cta p{
    max-width:580px;
    margin:0 auto 2.5rem;
    color:rgba(255,255,255,.8);
    font-size:1.05rem;
    line-height:1.8;
}
.luxe-cta .cta-buttons{
    display:flex;gap:1rem;justify-content:center;flex-wrap:wrap;
}
.luxe-cta .phone-num{
    display:block;
    margin-top:2.5rem;
    font-family:'Playfair Display',serif;
    font-size:2rem;
    color:#e2cfa6;
    letter-spacing:.05em;
    text-decoration:none;
}

/* Signature offerings grid (alternate to numbered) */
.offerings-stat-strip{
    padding:5rem 0;
    background:var(--white);
    border-top:1px solid var(--border-color);
    border-bottom:1px solid var(--border-color);
}
.offerings-stat-strip .grid{
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(180px,1fr));
    gap:3rem;
    text-align:center;
}
.offerings-stat-strip .stat .num{
    font-family:'Playfair Display',serif;
    font-size:3rem;
    color:var(--accent-color);
    font-weight:400;
    line-height:1;
    display:block;
    margin-bottom:.6rem;
}
.offerings-stat-strip .stat .label{
    text-transform:uppercase;
    letter-spacing:.3em;
    font-size:.75rem;
    color:var(--light-text);
    font-weight:600;
}

/* Visit info strip — minimal, magazine-style */
.visit-strip{
    padding:6rem 0;
    background:var(--bg-cream);
}
.visit-strip .container{max-width:1180px}
.visit-grid{
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(220px,1fr));
    gap:3rem;
}
.visit-cell strong{
    display:block;
    text-transform:uppercase;
    letter-spacing:.35em;
    font-size:.7rem;
    color:var(--accent-color);
    margin-bottom:.8rem;
    font-weight:600;
}
.visit-cell{
    border-top:1px solid var(--border-color);
    padding-top:1.5rem;
}
.visit-cell p,.visit-cell a{
    color:var(--dark-color);
    font-family:'Playfair Display',serif;
    font-size:1.1rem;
    line-height:1.6;
}
.visit-cell a:hover{color:var(--accent-color)}

/* ===== Luxe responsive ===== */
@media(max-width:900px){
    .luxe-hero{height:auto;min-height:540px;padding:7rem 6vw 5rem}
    .luxe-hero .hero-meta{position:static;margin-top:3rem;padding:0}
    .split-feature{grid-template-columns:1fr;min-height:auto}
    .split-feature .split-img{min-height:340px}
    .split-feature .split-text{padding:3rem 6vw}
    .numbered-services-header{grid-template-columns:1fr;gap:1.5rem;margin-bottom:3rem}
    .service-row{grid-template-columns:50px 1fr;gap:1rem;padding:1.8rem 0}
    .service-row .desc,.service-row .arrow{display:none}
    .mosaic-grid{grid-template-columns:repeat(2,1fr);grid-auto-rows:160px}
    .mosaic-grid .m1{grid-column:span 2;grid-row:span 2}
    .mosaic-grid .m2,.mosaic-grid .m3,.mosaic-grid .m4,.mosaic-grid .m5,.mosaic-grid .m6{grid-column:span 1;grid-row:span 1}
    .editorial-block{padding:5rem 0}
    .numbered-services{padding:5rem 0}
    .mosaic{padding:5rem 0}
    .testimonials{padding:5rem 0}
    .luxe-cta{padding:5rem 1rem;background-attachment:scroll}
    .visit-strip{padding:4rem 0}
}

