/* ============================================================
   MILÁN Beauty Studio — Design System v2
   ============================================================ */
:root {
    --navy:      #0f1729;
    --navy2:     #1a2d4a;
    --navy3:     #243a5e;
    --gold:      #c9a55c;
    --gold2:     #e5d5a8;
    --gold3:     #a8813a;
    --cream:     #faf8f5;
    --cream2:    #f3efe9;
    --white:     #ffffff;
    --text:      #1e293b;
    --muted:     #64748b;
    --border:    #e2e8f0;
    --danger:    #ef4444;
    --success:   #10b981;
    --radius:    18px;
    --radius-sm: 10px;
    --shadow:    0 8px 32px rgba(0,0,0,.08);
    --shadow-lg: 0 24px 64px rgba(0,0,0,.14);
    --shadow-gold: 0 8px 32px rgba(201,165,92,.25);
    --transition: all .3s cubic-bezier(.4,0,.2,1);
}

*, *::before, *::after { margin:0; padding:0; box-sizing:border-box; }
html { scroll-behavior:smooth; }
body {
    font-family: 'Inter', sans-serif;
    color: var(--text);
    background: var(--cream);
    line-height: 1.7;
    overflow-x: hidden;
}
h1,h2,h3,h4 { font-family:'Playfair Display',serif; color:var(--navy); line-height:1.25; }
a { text-decoration:none; transition:var(--transition); }
img { max-width:100%; height:auto; display:block; }
ul { list-style:none; }
button { font-family:inherit; }

/* ── NAVBAR ── */
.m-navbar {
    position:fixed; top:0; left:0; right:0; z-index:1000;
    padding:18px 7%;
    display:flex; align-items:center; justify-content:space-between;
    background:rgba(255,255,255,.97);
    backdrop-filter:blur(24px);
    -webkit-backdrop-filter:blur(24px);
    box-shadow:0 1px 0 var(--border);
    transition:padding .3s, box-shadow .3s;
}
.m-navbar.scrolled {
    padding:12px 7%;
    box-shadow:0 4px 30px rgba(0,0,0,.09);
}
.m-logo {
    font-family:'Playfair Display',serif;
    font-size:1.75rem; font-weight:700;
    color:var(--navy); letter-spacing:-.5px;
    display:flex; align-items:center; gap:2px;
}
.m-logo span { color:var(--gold); }
.m-nav-links { display:flex; gap:36px; }
.m-nav-links a {
    color:var(--text); font-weight:500; font-size:.88rem;
    position:relative; padding:4px 0;
    letter-spacing:.01em;
}
.m-nav-links a::after {
    content:''; position:absolute; bottom:-2px; left:0;
    width:0; height:2px; background:var(--gold);
    transition:width .3s;
}
.m-nav-links a:hover::after,
.m-nav-links a.active::after { width:100%; }
.m-nav-links a.active { color:var(--gold); }

.m-nav-actions { display:flex; gap:10px; align-items:center; }
.m-btn {
    padding:9px 22px; border-radius:50px;
    font-weight:600; font-size:.84rem; border:none; cursor:pointer;
    display:inline-flex; align-items:center; gap:6px;
    transition:var(--transition);
}
.m-btn-dark { background:var(--navy); color:#fff; }
.m-btn-dark:hover { background:var(--gold); color:var(--navy); transform:translateY(-2px); }
.m-btn-gold { background:var(--gold); color:var(--navy); box-shadow:var(--shadow-gold); }
.m-btn-gold:hover { background:var(--gold2); transform:translateY(-2px); }
.m-btn-outline { background:transparent; border:2px solid var(--border); color:var(--text); }
.m-btn-outline:hover { border-color:var(--gold); color:var(--gold); }

/* Mobile toggle */
.m-toggle {
    display:none; font-size:1.5rem; cursor:pointer;
    color:var(--navy); background:none; border:none; padding:4px;
}
.m-mobile-menu {
    display:none; position:fixed; inset:0; z-index:999;
    background:var(--navy);
    flex-direction:column; align-items:center; justify-content:center; gap:8px;
}
.m-mobile-menu.open { display:flex; }
.mob-link {
    font-family:'Playfair Display',serif;
    color:rgba(255,255,255,.8); font-size:2rem; font-weight:600;
    padding:12px 40px; border-radius:12px;
    transition:var(--transition); width:100%; text-align:center;
}
.mob-link:hover, .mob-link.active { color:var(--gold); background:rgba(255,255,255,.04); }
.m-mobile-close {
    position:absolute; top:24px; right:7%;
    font-size:2rem; color:rgba(255,255,255,.6); cursor:pointer;
    background:none; border:none; transition:color .2s;
}
.m-mobile-close:hover { color:#fff; }
.m-mobile-footer {
    position:absolute; bottom:36px;
    display:flex; gap:16px;
}
.m-mobile-footer a {
    color:rgba(255,255,255,.4); font-size:1.2rem;
    transition:color .2s;
}
.m-mobile-footer a:hover { color:var(--gold); }

/* ── HERO (home) ── */
.m-hero {
    min-height:100svh;
    background: linear-gradient(145deg, var(--navy) 0%, var(--navy2) 55%, #162238 100%);
    display:grid; grid-template-columns:1fr 1fr;
    align-items:center; padding:0 7%;
    gap:60px; overflow:hidden;
    position:relative;
}
.m-hero::before {
    content:'';
    position:absolute; inset:0;
    background: radial-gradient(ellipse 60% 70% at 80% 50%, rgba(201,165,92,.08) 0%, transparent 70%);
    pointer-events:none;
}
.m-hero-text { position:relative; z-index:2; padding-top:80px; }
.m-hero-eyebrow {
    display:inline-flex; align-items:center; gap:10px;
    color:var(--gold); font-size:.78rem; font-weight:600;
    letter-spacing:3px; text-transform:uppercase;
    margin-bottom:24px;
}
.m-hero-eyebrow::before {
    content:''; display:block;
    width:30px; height:1.5px; background:var(--gold);
}
.m-hero h1 {
    color:#fff;
    font-size:clamp(2.8rem,5.5vw,4.5rem);
    margin-bottom:20px; line-height:1.1;
}
.m-hero h1 .accent { color:var(--gold); display:block; }
.m-hero-sub {
    color:rgba(255,255,255,.65); font-size:1.05rem;
    max-width:440px; margin-bottom:38px; line-height:1.8;
}
.m-hero-ctas { display:flex; gap:14px; flex-wrap:wrap; }
.m-hero-cta-main {
    padding:15px 32px; border-radius:50px;
    background:var(--gold); color:var(--navy);
    font-weight:700; font-size:.95rem; border:none; cursor:pointer;
    box-shadow:var(--shadow-gold); transition:var(--transition);
    display:inline-flex; align-items:center; gap:8px;
}
.m-hero-cta-main:hover { background:var(--gold2); transform:translateY(-3px); box-shadow:0 14px 40px rgba(201,165,92,.4); }
.m-hero-cta-sec {
    padding:15px 32px; border-radius:50px;
    border:2px solid rgba(255,255,255,.2); color:#fff;
    font-weight:600; font-size:.95rem; cursor:pointer;
    transition:var(--transition);
    display:inline-flex; align-items:center; gap:8px;
}
.m-hero-cta-sec:hover { background:rgba(255,255,255,.08); border-color:rgba(255,255,255,.35); transform:translateY(-3px); }
.m-hero-stats {
    display:flex; gap:32px; margin-top:48px;
    padding-top:36px; border-top:1px solid rgba(255,255,255,.1);
}
.m-hero-stat-val {
    font-family:'Playfair Display',serif;
    font-size:1.8rem; font-weight:700; color:var(--gold);
    line-height:1;
}
.m-hero-stat-lbl { color:rgba(255,255,255,.5); font-size:.78rem; margin-top:4px; }

.m-hero-visual { position:relative; z-index:2; padding-top:80px; }
.m-hero-mosaic {
    display:grid; grid-template-columns:1fr 1fr; gap:14px;
}
.m-hero-mosaic-img {
    border-radius:16px; overflow:hidden;
    box-shadow:0 20px 60px rgba(0,0,0,.3);
}
.m-hero-mosaic-img:nth-child(1) { grid-column:1; grid-row:1 2; }
.m-hero-mosaic-img:nth-child(2) { grid-column:2; }
.m-hero-mosaic-img:nth-child(3) { grid-column:2; }
.m-hero-mosaic-img img { width:100%; height:100%; object-fit:cover; }
.m-hero-mosaic-placeholder {
    background: linear-gradient(135deg,rgba(201,165,92,.15),rgba(201,165,92,.05));
    border-radius:16px; aspect-ratio:1;
    display:flex; flex-direction:column; align-items:center; justify-content:center;
    gap:8px; color:rgba(201,165,92,.6); font-size:.8rem;
    border:1px solid rgba(201,165,92,.15);
}
.m-hero-mosaic-placeholder i { font-size:2rem; }

/* Floating badge */
.m-hero-badge {
    position:absolute; bottom:-10px; left:-20px;
    background:var(--white); border-radius:14px;
    padding:14px 20px; box-shadow:var(--shadow-lg);
    display:flex; align-items:center; gap:12px;
    z-index:3; animation:float 3s ease-in-out infinite;
}
@keyframes float {
    0%,100% { transform:translateY(0); }
    50% { transform:translateY(-8px); }
}
.m-hero-badge-icon {
    width:40px; height:40px; border-radius:10px;
    background:linear-gradient(135deg,var(--gold),var(--gold3));
    display:flex; align-items:center; justify-content:center;
    font-size:1.1rem; color:#fff;
}
.m-hero-badge-text strong { font-size:.9rem; display:block; }
.m-hero-badge-text span { font-size:.75rem; color:var(--muted); }

/* ── PAGE HEADER (inner pages) ── */
.m-page-header {
    padding:140px 7% 80px;
    background:linear-gradient(145deg, var(--navy) 0%, var(--navy2) 100%);
    text-align:center; position:relative; overflow:hidden;
}
.m-page-header::before {
    content:'';
    position:absolute; inset:0;
    background:radial-gradient(circle at 70% 50%, rgba(201,165,92,.1) 0%, transparent 60%);
}
.m-page-header > * { position:relative; z-index:1; }
.m-page-label {
    display:inline-flex; align-items:center; gap:8px;
    color:var(--gold); font-size:.76rem; font-weight:600;
    letter-spacing:3px; text-transform:uppercase; margin-bottom:18px;
}
.m-page-label::before,
.m-page-label::after {
    content:''; display:block;
    width:20px; height:1.5px; background:var(--gold); opacity:.6;
}
.m-page-header h1 { color:#fff; font-size:clamp(2rem,5vw,3.2rem); margin-bottom:16px; }
.m-page-header p { color:rgba(255,255,255,.65); font-size:1.05rem; max-width:520px; margin:0 auto; }

/* ── SECTIONS ── */
.m-section { padding:96px 7%; }
.m-section-alt { background:var(--white); }
.m-section-dark { background:var(--navy); }
.m-section-header { text-align:center; max-width:560px; margin:0 auto 56px; }
.m-section-header h2 { font-size:clamp(1.8rem,3.5vw,2.6rem); margin-bottom:14px; }
.m-section-header p { color:var(--muted); font-size:1rem; line-height:1.8; }
.text-gold { color:var(--gold); }

/* ── FOOTER ── */
.m-footer {
    background:var(--navy);
    color:rgba(255,255,255,.65);
    padding:72px 7% 32px;
}
.m-footer-grid {
    display:grid; grid-template-columns:2fr 1fr 1fr 1fr;
    gap:52px; max-width:1200px; margin:0 auto 52px;
}
.m-footer .m-logo { color:#fff; margin-bottom:18px; font-size:1.5rem; }
.m-footer-brand p { font-size:.88rem; line-height:1.8; margin-bottom:24px; max-width:280px; }
.m-footer-social { display:flex; gap:10px; }
.m-footer-social a {
    width:42px; height:42px; border-radius:50%;
    background:rgba(255,255,255,.07); border:1px solid rgba(255,255,255,.08);
    display:flex; align-items:center; justify-content:center;
    color:rgba(255,255,255,.6); font-size:1rem;
    transition:var(--transition);
}
.m-footer-social a:hover { background:var(--gold); color:var(--navy); border-color:var(--gold); transform:translateY(-3px); }
.m-footer-col h4 {
    color:#fff; font-family:'Inter',sans-serif;
    font-size:.9rem; font-weight:600; letter-spacing:.02em;
    margin-bottom:20px;
}
.m-footer-col li { margin-bottom:10px; }
.m-footer-col a { color:rgba(255,255,255,.55); font-size:.85rem; transition:color .2s; }
.m-footer-col a:hover { color:var(--gold); }
.m-footer-col li:not(:has(a)) { font-size:.85rem; }
.m-footer-bottom {
    max-width:1200px; margin:0 auto;
    text-align:center; padding-top:28px;
    border-top:1px solid rgba(255,255,255,.07);
    font-size:.78rem; color:rgba(255,255,255,.3);
}

/* ── WHATSAPP FLOAT ── */
.m-wa {
    position:fixed; bottom:28px; right:28px; z-index:900;
    width:58px; height:58px; border-radius:50%;
    background:#25d366;
    display:flex; align-items:center; justify-content:center;
    box-shadow:0 8px 28px rgba(37,211,102,.45);
    font-size:1.5rem; color:#fff;
    transition:var(--transition);
}
.m-wa:hover { transform:scale(1.12) translateY(-3px); box-shadow:0 14px 40px rgba(37,211,102,.55); }

/* ── HERO BUTTONS (reuse across pages) ── */
.m-btn-hero {
    display:inline-flex; align-items:center; gap:8px;
    padding:14px 34px; border-radius:50px;
    font-weight:600; font-size:.95rem; border:none; cursor:pointer;
    transition:var(--transition);
}
.m-btn-hero-gold { background:var(--gold); color:var(--navy); box-shadow:var(--shadow-gold); }
.m-btn-hero-gold:hover { background:var(--gold2); transform:translateY(-3px); box-shadow:0 14px 36px rgba(201,165,92,.4); }
.m-btn-hero-outline { border:2px solid rgba(255,255,255,.25); color:#fff; }
.m-btn-hero-outline:hover { background:rgba(255,255,255,.08); transform:translateY(-3px); }
.m-btn-navy { background:var(--navy); color:#fff; }
.m-btn-navy:hover { background:var(--gold); color:var(--navy); transform:translateY(-2px); }

/* ── CARDS (generic) ── */
.m-card {
    background:var(--white); border-radius:var(--radius);
    box-shadow:var(--shadow); transition:var(--transition);
}
.m-card:hover { transform:translateY(-6px); box-shadow:var(--shadow-lg); }

/* ── FORM ELEMENTS ── */
.m-input {
    width:100%; padding:13px 16px;
    border:2px solid var(--border); border-radius:12px;
    font-size:.95rem; font-family:inherit;
    background:var(--white); color:var(--text);
    transition:border-color .2s, box-shadow .2s;
}
.m-input:focus { outline:none; border-color:var(--gold); box-shadow:0 0 0 3px rgba(201,165,92,.12); }
.m-label {
    display:block; font-weight:500; font-size:.88rem;
    color:var(--navy); margin-bottom:7px;
}
select.m-input { cursor:pointer; }
textarea.m-input { resize:vertical; min-height:90px; }

/* ── SCROLL REVEAL ── */
.reveal {
    opacity:0; transform:translateY(32px);
    transition:opacity .7s cubic-bezier(.4,0,.2,1), transform .7s cubic-bezier(.4,0,.2,1);
}
.reveal.visible { opacity:1; transform:translateY(0); }

/* ── HOME — SERVICES PREVIEW ── */
.m-srv-grid {
    display:grid; grid-template-columns:repeat(4,1fr); gap:24px;
}
.m-srv-card {
    background:var(--white); border-radius:var(--radius);
    overflow:hidden; box-shadow:var(--shadow);
    transition:var(--transition); cursor:pointer;
    border:2px solid transparent;
}
.m-srv-card:hover { transform:translateY(-8px); box-shadow:var(--shadow-lg); border-color:var(--gold); }
.m-srv-card-top {
    background:linear-gradient(145deg, var(--navy) 0%, var(--navy2) 100%);
    padding:36px 24px 28px; text-align:center;
}
.m-srv-icon {
    width:70px; height:70px; border-radius:50%;
    background:rgba(201,165,92,.15); border:2px solid rgba(201,165,92,.3);
    display:flex; align-items:center; justify-content:center;
    font-size:1.7rem; color:var(--gold); margin:0 auto 18px;
    transition:var(--transition);
}
.m-srv-card:hover .m-srv-icon { background:var(--gold); color:var(--navy); transform:scale(1.1); }
.m-srv-card-top h3 { color:#fff; font-size:1.15rem; margin-bottom:4px; }
.m-srv-worker { color:var(--gold); font-size:.76rem; font-weight:600; letter-spacing:1px; }
.m-srv-card-body { padding:22px 24px; }
.m-srv-desc { color:var(--muted); font-size:.88rem; margin-bottom:16px; line-height:1.7; }
.m-srv-footer { display:flex; align-items:center; justify-content:space-between; }
.m-srv-price { font-size:1.4rem; font-weight:700; color:var(--navy); }
.m-srv-cta {
    padding:8px 18px; border-radius:50px;
    background:var(--cream); color:var(--navy);
    font-weight:600; font-size:.8rem; border:none; cursor:pointer;
    transition:var(--transition);
}
.m-srv-card:hover .m-srv-cta { background:var(--gold); color:var(--navy); }

/* ── HOME — GALLERY PREVIEW ── */
.m-gal-preview {
    display:grid; grid-template-columns:repeat(3,1fr); gap:16px;
}
.m-gal-prev-item {
    border-radius:16px; overflow:hidden; aspect-ratio:4/5;
    position:relative; cursor:pointer;
    background:var(--cream2);
}
.m-gal-prev-item:first-child { aspect-ratio:4/6.5; }
.m-gal-prev-item img { width:100%; height:100%; object-fit:cover; transition:transform .5s; }
.m-gal-prev-item:hover img { transform:scale(1.07); }
.m-gal-prev-overlay {
    position:absolute; inset:0;
    background:linear-gradient(to top, rgba(15,23,41,.6) 0%, transparent 50%);
    opacity:0; transition:opacity .3s;
    display:flex; align-items:flex-end; padding:20px;
}
.m-gal-prev-item:hover .m-gal-prev-overlay { opacity:1; }
.m-gal-prev-overlay span { color:#fff; font-weight:600; font-size:.9rem; }

/* ── HOME — TESTIMONIALS ── */
.m-testi-grid {
    display:grid; grid-template-columns:repeat(3,1fr); gap:24px;
}
.m-testi-card {
    background:var(--white); border-radius:var(--radius);
    padding:28px; box-shadow:var(--shadow);
    border-top:3px solid var(--gold);
    transition:var(--transition);
}
.m-testi-card:hover { transform:translateY(-4px); box-shadow:var(--shadow-lg); }
.m-testi-stars { color:var(--gold); font-size:.9rem; margin-bottom:14px; letter-spacing:2px; }
.m-testi-text { color:var(--muted); font-size:.93rem; line-height:1.8; margin-bottom:20px; font-style:italic; }
.m-testi-author { display:flex; align-items:center; gap:12px; }
.m-testi-avatar {
    width:44px; height:44px; border-radius:50%;
    background:linear-gradient(135deg,var(--gold2),var(--gold));
    display:flex; align-items:center; justify-content:center;
    font-family:'Playfair Display',serif;
    font-size:1.1rem; font-weight:700; color:var(--navy);
    flex-shrink:0;
}
.m-testi-name { font-weight:600; font-size:.9rem; }
.m-testi-role { color:var(--muted); font-size:.78rem; }

/* ── HOME — CTA BANNER ── */
.m-cta-banner {
    background:linear-gradient(145deg, var(--navy) 0%, var(--navy2) 100%);
    border-radius:var(--radius); padding:72px 60px;
    text-align:center; position:relative; overflow:hidden;
}
.m-cta-banner::before {
    content:'';
    position:absolute; inset:0;
    background:radial-gradient(circle at 80% 50%, rgba(201,165,92,.12) 0%, transparent 60%);
}
.m-cta-banner::after {
    content:'M';
    position:absolute; right:-30px; top:50%; transform:translateY(-50%);
    font-family:'Playfair Display',serif;
    font-size:16rem; color:rgba(201,165,92,.05); line-height:1;
    pointer-events:none;
}
.m-cta-banner > * { position:relative; z-index:1; }
.m-cta-banner h2 { color:#fff; font-size:clamp(1.8rem,3.5vw,2.8rem); margin-bottom:14px; }
.m-cta-banner p { color:rgba(255,255,255,.65); margin-bottom:32px; font-size:1.05rem; }
.m-cta-banner-btns { display:flex; gap:14px; justify-content:center; flex-wrap:wrap; }

/* ── SERVICES PAGE ── */
.srv-grid {
    display:grid; grid-template-columns:repeat(auto-fill, minmax(300px,1fr));
    gap:28px; max-width:1200px; margin:0 auto;
}
.srv-card {
    background:var(--white); border-radius:var(--radius);
    overflow:hidden; box-shadow:var(--shadow);
    transition:var(--transition); display:flex; flex-direction:column;
    border:2px solid transparent;
}
.srv-card:hover { transform:translateY(-8px); box-shadow:var(--shadow-lg); border-color:rgba(201,165,92,.3); }
.srv-card-top {
    background:linear-gradient(145deg, var(--navy) 0%, var(--navy2) 100%);
    padding:36px 28px 28px; text-align:center; position:relative;
}
.srv-icon {
    width:72px; height:72px; border-radius:50%;
    background:rgba(201,165,92,.15); border:2px solid rgba(201,165,92,.3);
    display:flex; align-items:center; justify-content:center;
    font-size:1.8rem; color:var(--gold); margin:0 auto 16px;
    transition:var(--transition);
}
.srv-card:hover .srv-icon { background:var(--gold); color:var(--navy); }
.srv-card-top h3 { color:#fff; font-size:1.25rem; margin-bottom:6px; }
.srv-worker { color:var(--gold); font-size:.78rem; font-weight:600; letter-spacing:1px; }
.srv-card-body { padding:24px 28px; flex:1; display:flex; flex-direction:column; }
.srv-desc { color:var(--muted); font-size:.9rem; margin-bottom:20px; flex:1; line-height:1.75; }
.srv-meta { display:flex; gap:16px; flex-wrap:wrap; margin-bottom:20px; }
.srv-chip { display:flex; align-items:center; gap:6px; font-size:.8rem; color:var(--muted); }
.srv-chip i { color:var(--gold); }
.srv-footer {
    display:flex; align-items:center; justify-content:space-between;
    padding-top:18px; border-top:1px solid var(--border);
}
.srv-price { font-size:1.5rem; font-weight:700; color:var(--navy); }
.srv-btn {
    padding:10px 22px; border-radius:50px;
    background:var(--gold); color:var(--navy);
    font-weight:600; font-size:.86rem; border:none; cursor:pointer;
    transition:var(--transition);
}
.srv-btn:hover { background:var(--gold2); transform:translateY(-2px); }

/* Filter pills */
.m-filters {
    display:flex; gap:10px; flex-wrap:wrap;
    justify-content:center; margin-bottom:48px;
}
.m-filter-pill {
    padding:9px 22px; border-radius:50px;
    border:2px solid var(--border); background:var(--white);
    font-weight:500; font-size:.86rem; cursor:pointer; transition:var(--transition);
}
.m-filter-pill:hover { border-color:var(--gold); color:var(--gold); }
.m-filter-pill.active { background:var(--navy); border-color:var(--navy); color:#fff; }

/* ── GALLERY PAGE ── */
.gal-grid {
    columns:4 260px; column-gap:18px;
    max-width:1300px; margin:0 auto;
}
.gal-item {
    break-inside:avoid; margin-bottom:18px;
    border-radius:16px; overflow:hidden;
    position:relative; cursor:pointer;
    background:var(--cream2);
}
.gal-item img { width:100%; display:block; transition:transform .5s; }
.gal-item:hover img { transform:scale(1.06); }
.gal-overlay {
    position:absolute; inset:0;
    background:linear-gradient(to top, rgba(15,23,41,.75) 0%, transparent 55%);
    opacity:0; transition:opacity .3s;
    display:flex; flex-direction:column;
    justify-content:flex-end; padding:20px;
}
.gal-item:hover .gal-overlay { opacity:1; }
.gal-overlay h4 { color:#fff; font-size:1rem; margin-bottom:4px; }
.gal-overlay span { color:var(--gold); font-size:.78rem; font-weight:600; letter-spacing:1px; }

/* Lightbox */
.lightbox {
    display:none; position:fixed; inset:0; z-index:2000;
    background:rgba(0,0,0,.95);
    align-items:center; justify-content:center;
}
.lightbox.open { display:flex; }
.lb-img-wrap {
    max-width:90vw; max-height:90vh;
    position:relative;
}
.lb-img-wrap img {
    max-width:90vw; max-height:90vh;
    border-radius:12px; object-fit:contain;
    box-shadow:0 40px 80px rgba(0,0,0,.5);
}
.lb-close {
    position:absolute; top:24px; right:28px;
    font-size:2rem; color:rgba(255,255,255,.7); cursor:pointer;
    background:rgba(255,255,255,.1); border:none;
    width:48px; height:48px; border-radius:50%;
    display:flex; align-items:center; justify-content:center;
    transition:var(--transition);
}
.lb-close:hover { background:rgba(255,255,255,.2); color:#fff; }
.lb-nav {
    position:absolute; top:50%; transform:translateY(-50%);
    font-size:1.3rem; color:rgba(255,255,255,.8); cursor:pointer;
    background:rgba(255,255,255,.1); border:none;
    width:52px; height:52px; border-radius:50%;
    display:flex; align-items:center; justify-content:center;
    transition:var(--transition);
}
.lb-nav:hover { background:var(--gold); color:var(--navy); }
.lb-prev { left:24px; }
.lb-next { right:24px; }
.lb-caption {
    position:absolute; bottom:28px; left:50%; transform:translateX(-50%);
    background:rgba(15,23,41,.85); border-radius:10px;
    padding:10px 20px; text-align:center; backdrop-filter:blur(8px);
}
.lb-caption h4 { color:#fff; font-size:.95rem; margin-bottom:2px; }
.lb-caption span { color:var(--gold); font-size:.78rem; }

/* Gallery empty */
.gal-empty { text-align:center; padding:80px 20px; color:var(--muted); }
.gal-empty i { font-size:3.5rem; margin-bottom:16px; display:block; color:var(--gold); opacity:.5; }

/* ── STORE PAGE ── */
.shop-grid {
    display:grid; grid-template-columns:repeat(auto-fill, minmax(260px,1fr));
    gap:24px; max-width:1300px; margin:0 auto;
}
.prod-card {
    background:var(--white); border-radius:var(--radius);
    overflow:hidden; box-shadow:var(--shadow);
    transition:var(--transition); display:flex; flex-direction:column;
}
.prod-card:hover { transform:translateY(-6px); box-shadow:var(--shadow-lg); }
.prod-img {
    height:220px; position:relative;
    background:linear-gradient(135deg, var(--cream2), var(--gold2));
    display:flex; align-items:center; justify-content:center; overflow:hidden;
}
.prod-img img { width:100%; height:100%; object-fit:cover; transition:transform .4s; }
.prod-card:hover .prod-img img { transform:scale(1.06); }
.prod-img-placeholder { font-size:3.5rem; opacity:.6; }
.prod-badge {
    position:absolute; top:12px; left:12px;
    background:var(--gold); color:var(--navy);
    padding:4px 12px; border-radius:50px;
    font-size:.72rem; font-weight:700; letter-spacing:.5px;
}
.prod-body { padding:20px; flex:1; display:flex; flex-direction:column; }
.prod-cat {
    font-size:.72rem; font-weight:600; letter-spacing:1.5px;
    text-transform:uppercase; color:var(--gold); margin-bottom:6px;
}
.prod-name { font-size:1rem; font-weight:600; margin-bottom:8px; line-height:1.4; color:var(--navy); }
.prod-desc { color:var(--muted); font-size:.85rem; margin-bottom:16px; flex:1; line-height:1.65; }
.prod-footer { display:flex; align-items:center; justify-content:space-between; }
.prod-price { font-size:1.4rem; font-weight:700; color:var(--navy); }
.prod-btn {
    background:var(--navy); color:#fff;
    padding:9px 18px; border-radius:50px;
    border:none; cursor:pointer; font-size:.82rem; font-weight:600;
    display:flex; align-items:center; gap:6px; transition:var(--transition);
}
.prod-btn:hover { background:var(--gold); color:var(--navy); transform:scale(1.05); }

/* Featured strip */
.featured-scroll {
    display:flex; gap:18px; overflow-x:auto; scroll-behavior:smooth;
    scrollbar-width:none; padding-bottom:4px;
}
.featured-scroll::-webkit-scrollbar { display:none; }
.featured-item {
    min-width:210px; background:var(--white);
    border-radius:var(--radius-sm); overflow:hidden;
    box-shadow:var(--shadow); flex-shrink:0;
    transition:var(--transition);
}
.featured-item:hover { transform:translateY(-4px); box-shadow:var(--shadow-lg); }
.featured-img {
    height:155px; background:linear-gradient(135deg,var(--navy),var(--navy2));
    display:flex; align-items:center; justify-content:center;
    font-size:2.8rem; overflow:hidden; position:relative;
}
.featured-img img { width:100%; height:100%; object-fit:cover; }
.featured-body { padding:14px 16px; }
.featured-name { font-weight:600; font-size:.88rem; margin-bottom:4px; color:var(--navy); }
.featured-price { color:var(--gold); font-weight:700; font-size:.95rem; }

/* Cart sidebar */
.cart-toggle {
    position:fixed; bottom:100px; right:28px; z-index:800;
    background:var(--navy); color:#fff;
    width:56px; height:56px; border-radius:50%;
    display:flex; align-items:center; justify-content:center;
    font-size:1.25rem; box-shadow:0 8px 28px rgba(15,23,41,.3);
    cursor:pointer; border:none; transition:var(--transition);
}
.cart-toggle:hover { background:var(--gold); color:var(--navy); transform:scale(1.08); }
.cart-badge {
    position:absolute; top:-5px; right:-5px;
    background:var(--gold); color:var(--navy);
    width:22px; height:22px; border-radius:50%;
    font-size:.7rem; font-weight:700;
    display:flex; align-items:center; justify-content:center;
    border:2px solid #fff;
}
.cart-overlay {
    position:fixed; inset:0; z-index:1050;
    background:rgba(0,0,0,.4); display:none; backdrop-filter:blur(2px);
}
.cart-overlay.open { display:block; }
.cart-sidebar {
    position:fixed; top:0; right:-420px; bottom:0;
    width:400px; max-width:95vw;
    background:var(--white); z-index:1100;
    box-shadow:-4px 0 60px rgba(0,0,0,.15);
    display:flex; flex-direction:column;
    transition:right .35s cubic-bezier(.4,0,.2,1);
}
.cart-sidebar.open { right:0; }
.cart-head {
    padding:24px; display:flex; align-items:center; justify-content:space-between;
    border-bottom:1px solid var(--border);
}
.cart-head h3 { font-size:1.15rem; display:flex; align-items:center; gap:8px; }
.cart-close { background:none; border:none; font-size:1.4rem; cursor:pointer; color:var(--muted); padding:4px; border-radius:8px; transition:color .2s; }
.cart-close:hover { color:var(--navy); }
.cart-body { flex:1; overflow-y:auto; padding:16px; }
.cart-empty { text-align:center; padding:60px 20px; color:var(--muted); }
.cart-empty i { font-size:3rem; margin-bottom:12px; display:block; color:var(--border); }
.cart-item {
    display:flex; gap:14px; align-items:flex-start;
    padding:14px 0; border-bottom:1px solid var(--border);
}
.cart-item:last-child { border-bottom:none; }
.cart-item-img {
    width:62px; height:62px; border-radius:10px;
    background:var(--cream); display:flex; align-items:center;
    justify-content:center; font-size:1.5rem; flex-shrink:0; overflow:hidden;
}
.cart-item-img img { width:100%; height:100%; object-fit:cover; }
.cart-item-info { flex:1; }
.cart-item-name { font-weight:600; font-size:.9rem; margin-bottom:3px; line-height:1.4; }
.cart-item-price { color:var(--gold); font-weight:700; font-size:.93rem; }
.cart-qty { display:flex; align-items:center; gap:10px; margin-top:8px; }
.qty-btn {
    width:28px; height:28px; border-radius:50%;
    border:1.5px solid var(--border); background:var(--white);
    cursor:pointer; font-size:.95rem; display:flex; align-items:center; justify-content:center;
    transition:var(--transition);
}
.qty-btn:hover { border-color:var(--navy); background:var(--navy); color:#fff; }
.qty-num { font-weight:600; font-size:.9rem; min-width:20px; text-align:center; }
.cart-del { background:none; border:none; color:var(--muted); cursor:pointer; font-size:.95rem; padding:4px; border-radius:6px; transition:color .2s; }
.cart-del:hover { color:var(--danger); }
.cart-foot { padding:20px; border-top:1px solid var(--border); }
.cart-total { display:flex; justify-content:space-between; font-weight:700; font-size:1.1rem; margin-bottom:16px; }
.cart-checkout {
    width:100%; padding:15px; background:#25d366; color:#fff;
    border:none; border-radius:50px; font-weight:700; font-size:1rem; cursor:pointer;
    display:flex; align-items:center; justify-content:center; gap:8px;
    transition:var(--transition);
}
.cart-checkout:hover { background:#1db856; transform:translateY(-2px); box-shadow:0 8px 24px rgba(37,211,102,.35); }

/* ── BOOKING PAGE ── */
.stepper {
    display:flex; align-items:center; justify-content:center;
    gap:0; margin-bottom:52px; flex-wrap:wrap;
}
.step {
    display:flex; align-items:center; gap:10px;
    color:var(--muted); font-size:.86rem; font-weight:500;
}
.step.active { color:var(--navy); }
.step.done   { color:var(--gold); }
.step-num {
    width:38px; height:38px; border-radius:50%;
    border:2px solid currentColor;
    display:flex; align-items:center; justify-content:center;
    font-weight:700; font-size:.88rem; flex-shrink:0;
    transition:var(--transition);
}
.step.active .step-num { background:var(--navy); color:#fff; border-color:var(--navy); }
.step.done   .step-num { background:var(--gold); color:var(--navy); border-color:var(--gold); }
.step-line { width:64px; height:2px; background:var(--border); margin:0 8px; flex-shrink:0; }
.step.done ~ .step-line { background:var(--gold); }

/* Service selector */
.srv-sel-grid {
    display:grid; grid-template-columns:repeat(auto-fill, minmax(280px,1fr)); gap:20px;
}
.srv-sel-card {
    background:var(--white); border-radius:var(--radius); padding:24px;
    box-shadow:var(--shadow); cursor:pointer; border:2px solid transparent;
    transition:var(--transition);
}
.srv-sel-card:hover { transform:translateY(-4px); box-shadow:var(--shadow-lg); border-color:var(--gold); }
.srv-sel-card.selected { border-color:var(--navy); background:#f0f4fa; }
.srv-sel-top { display:flex; align-items:center; gap:14px; margin-bottom:12px; }
.srv-sel-icon {
    width:50px; height:50px; border-radius:12px;
    background:linear-gradient(135deg, var(--navy), var(--navy2));
    display:flex; align-items:center; justify-content:center;
    font-size:1.3rem; color:var(--gold); flex-shrink:0;
}
.srv-sel-name { font-family:'Playfair Display',serif; font-size:1.05rem; font-weight:600; }
.srv-sel-worker { font-size:.76rem; color:var(--gold); font-weight:600; margin-top:2px; }
.srv-sel-desc { color:var(--muted); font-size:.86rem; margin-bottom:16px; line-height:1.65; }
.srv-sel-foot { display:flex; justify-content:space-between; align-items:center; }
.srv-sel-price { font-size:1.3rem; font-weight:700; }
.srv-sel-duration { font-size:.78rem; color:var(--muted); display:flex; align-items:center; gap:4px; }
.srv-sel-btn {
    background:var(--navy); color:#fff;
    padding:8px 18px; border-radius:50px;
    font-size:.8rem; font-weight:600; border:none; cursor:pointer;
    transition:var(--transition);
}
.srv-sel-card:hover .srv-sel-btn { background:var(--gold); color:var(--navy); }

/* Calendar */
.agenda-box {
    background:var(--white); border-radius:var(--radius);
    padding:36px; box-shadow:var(--shadow);
}
.cal-header { display:flex; justify-content:space-between; align-items:center; margin-bottom:24px; }
.cal-title { font-size:1.3rem; }
.cal-nav { display:flex; gap:8px; }
.cal-nav button {
    width:38px; height:38px; border-radius:50%;
    border:2px solid var(--border); background:var(--white);
    cursor:pointer; display:flex; align-items:center; justify-content:center;
    transition:var(--transition);
}
.cal-nav button:hover { background:var(--navy); border-color:var(--navy); color:#fff; }
.cal-grid { display:grid; grid-template-columns:repeat(7,1fr); gap:6px; }
.cal-weekday {
    text-align:center; font-size:.72rem; font-weight:600;
    color:var(--muted); padding:8px 4px; text-transform:uppercase; letter-spacing:.5px;
}
.cal-day {
    aspect-ratio:1; display:flex; align-items:center; justify-content:center;
    border-radius:10px; font-weight:500; font-size:.86rem;
    cursor:pointer; transition:var(--transition);
}
.cal-day.avail { background:rgba(201,165,92,.1); color:var(--navy); }
.cal-day.avail:hover { background:var(--navy); color:#fff; }
.cal-day.today { outline:2px solid var(--gold); font-weight:700; }
.cal-day.selected { background:var(--navy) !important; color:#fff !important; }
.cal-day.disabled { color:var(--border); cursor:default; }
.slots-title { font-weight:600; margin:28px 0 14px; font-size:.95rem; display:flex; align-items:center; gap:8px; }
.slots-title i { color:var(--gold); }
.slots-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(110px,1fr)); gap:10px; }
.slot {
    padding:14px 8px; border:2px solid var(--border); border-radius:12px;
    text-align:center; cursor:pointer; transition:var(--transition);
    font-size:.86rem; font-weight:500;
}
.slot:hover:not(.booked) { border-color:var(--gold); background:rgba(201,165,92,.06); }
.slot.selected { background:var(--navy); border-color:var(--navy); color:#fff; }
.slot.booked { background:#fafafa; color:var(--border); cursor:not-allowed; }
.slot-status { font-size:.7rem; margin-top:3px; }

/* Booking form */
.booking-card {
    background:var(--white); border-radius:var(--radius);
    padding:44px; box-shadow:var(--shadow-lg);
    max-width:600px; margin:0 auto;
}
.booking-card h2 { font-size:1.9rem; text-align:center; margin-bottom:6px; }
.booking-card > p { color:var(--muted); text-align:center; margin-bottom:30px; }
.summary-box {
    background:var(--cream); border-radius:14px;
    padding:20px; margin-bottom:26px;
    border:1px solid var(--border);
}
.summary-row {
    display:flex; justify-content:space-between; align-items:center;
    padding:7px 0; font-size:.9rem; border-bottom:1px solid var(--border);
}
.summary-row:last-child { border:none; padding-top:12px; font-weight:700; font-size:1rem; }
.summary-row:last-child span:last-child { color:var(--gold); }
.form-actions { display:flex; gap:14px; margin-top:24px; }
.form-actions button { flex:1; padding:14px; border-radius:50px; font-weight:600; cursor:pointer; font-size:.95rem; font-family:inherit; border:none; transition:var(--transition); }
.btn-back { background:var(--cream); color:var(--text); border:2px solid var(--border) !important; }
.btn-back:hover { border-color:var(--gold) !important; color:var(--gold); }
.btn-submit { background:var(--gold); color:var(--navy); }
.btn-submit:hover { background:var(--gold2); }
.btn-submit:disabled { opacity:.6; cursor:not-allowed; }

/* Success */
.success-box { text-align:center; padding:60px 40px; }
.success-icon {
    width:86px; height:86px; border-radius:50%;
    background:linear-gradient(135deg, var(--navy), var(--navy2));
    color:var(--gold); display:flex; align-items:center; justify-content:center;
    font-size:2.4rem; margin:0 auto 26px;
    box-shadow:0 20px 50px rgba(15,23,41,.25);
}
.success-box h2 { margin-bottom:12px; }
.success-box p { color:var(--muted); margin-bottom:32px; }

/* ── RESPONSIVE ── */
@media (max-width:1200px) {
    .m-hero { grid-template-columns:1fr 1fr; gap:40px; }
    .m-srv-grid { grid-template-columns:repeat(2,1fr); }
}
@media (max-width:1024px) {
    .m-footer-grid { grid-template-columns:1fr 1fr; gap:36px; }
    .m-testi-grid { grid-template-columns:1fr 1fr; }
    .m-gal-preview { grid-template-columns:1fr 1fr; }
}
@media (max-width:768px) {
    .m-navbar { padding:14px 5%; }
    .m-nav-links, .m-nav-actions { display:none; }
    .m-toggle { display:block; }
    .m-hero { grid-template-columns:1fr; padding-top:100px; gap:28px; }
    .m-hero-text { padding-top:20px; }
    .m-hero-visual { display:none; }
    .m-hero h1 { font-size:2.8rem; }
    .m-page-header { padding:120px 5% 60px; }
    .m-section { padding:64px 5%; }
    .m-section-header { margin-bottom:40px; }
    .m-footer-grid { grid-template-columns:1fr 1fr; gap:28px; }
    .m-srv-grid { grid-template-columns:1fr; }
    .m-testi-grid { grid-template-columns:1fr; }
    .gal-grid { columns:2 160px; }
    .stepper { gap:0; }
    .step-line { width:28px; }
    .booking-card { padding:28px 20px; }
    .form-actions { flex-direction:column; }
}
@media (max-width:480px) {
    .m-hero h1 { font-size:2.2rem; }
    .m-hero-ctas { flex-direction:column; }
    .m-hero-stats { gap:20px; }
    .m-footer-grid { grid-template-columns:1fr; }
    .gal-grid { columns:1; }
    .shop-grid { grid-template-columns:1fr; }
    .srv-sel-grid { grid-template-columns:1fr; }
    .m-cta-banner { padding:48px 28px; }
}

/* ══════════════════════════════════════════════════════════════
   PRO UPGRADE v3 — MILÁN Beauty Studio
   Luxury micro-interactions, animations & visual polish
══════════════════════════════════════════════════════════════ */

/* ── Scrollbar ── */
::-webkit-scrollbar { width:7px; }
::-webkit-scrollbar-track { background:var(--cream); }
::-webkit-scrollbar-thumb { background:var(--gold); border-radius:4px; }
::-webkit-scrollbar-thumb:hover { background:var(--gold3); }
::selection { background:rgba(201,165,92,.22); color:var(--navy); }

/* ── Typography polish ── */
body { font-feature-settings:'kern' 1,'liga' 1; -webkit-font-smoothing:antialiased; }
h1,h2,h3,h4 { font-feature-settings:'kern' 1,'liga' 1; }

/* ── Keyframes ── */
@keyframes proSlideLeft  { from{opacity:0;transform:translateX(-48px)} to{opacity:1;transform:translateX(0)} }
@keyframes proSlideRight { from{opacity:0;transform:translateX(48px)}  to{opacity:1;transform:translateX(0)} }
@keyframes proFadeUp     { from{opacity:0;transform:translateY(36px)}  to{opacity:1;transform:translateY(0)} }
@keyframes proFadeIn     { from{opacity:0} to{opacity:1} }
@keyframes orb1  { 0%,100%{transform:translate(0,0) scale(1)} 40%{transform:translate(-70px,50px) scale(1.15)} 70%{transform:translate(50px,-40px) scale(.88)} }
@keyframes orb2  { 0%,100%{transform:translate(0,0) scale(1)} 35%{transform:translate(60px,-80px) scale(.9)} 65%{transform:translate(-40px,60px) scale(1.1)} }
@keyframes floatBadge { 0%,100%{transform:translateY(0)} 50%{transform:translateY(-10px)} }
@keyframes badgePulse { 0%,100%{opacity:0;transform:scale(1)} 50%{opacity:.3;transform:scale(1.06)} }
@keyframes shimmer    { 0%{background-position:-200% 0} 100%{background-position:200% 0} }
@keyframes spin       { from{transform:rotate(0deg)} to{transform:rotate(360deg)} }
@keyframes expandLine { from{width:0;opacity:0} to{width:20px;opacity:.6} }
@keyframes particleFloat {
    0%   { transform:translateY(0) translateX(0) rotate(0deg); opacity:.6; }
    33%  { transform:translateY(-40px) translateX(20px) rotate(120deg); opacity:.4; }
    66%  { transform:translateY(-20px) translateX(-15px) rotate(240deg); opacity:.7; }
    100% { transform:translateY(0) translateX(0) rotate(360deg); opacity:.6; }
}
@keyframes gradientShift {
    0%,100% { background-position:0% 50%; }
    50%     { background-position:100% 50%; }
}

/* ── NAVBAR pro ── */
.m-navbar { border-bottom:1px solid rgba(255,255,255,.06); }
.m-navbar.scrolled {
    border-bottom:1px solid rgba(201,165,92,.15);
    background:rgba(255,255,255,.99);
}
.m-logo {
    position:relative;
    background:linear-gradient(135deg, var(--navy) 0%, var(--navy3) 100%);
    -webkit-background-clip:text; -webkit-text-fill-color:transparent;
    background-clip:text;
    filter:drop-shadow(0 2px 4px rgba(15,23,41,.1));
}
.m-logo span {
    background:linear-gradient(135deg, var(--gold) 0%, var(--gold2) 60%, var(--gold3) 100%);
    -webkit-background-clip:text; -webkit-text-fill-color:transparent;
    background-clip:text;
}
/* Footer logo — white on dark background */
.m-footer .m-logo {
    background:linear-gradient(135deg, #fff 0%, rgba(255,255,255,.85) 100%);
    -webkit-background-clip:text; -webkit-text-fill-color:transparent;
    background-clip:text; filter:none;
}
.m-footer .m-logo span {
    background:linear-gradient(135deg, var(--gold) 0%, var(--gold2) 60%, var(--gold3) 100%);
    -webkit-background-clip:text; -webkit-text-fill-color:transparent;
    background-clip:text;
}

/* ── HERO animated particles ── */
.m-hero-particles {
    position:absolute; inset:0; pointer-events:none; overflow:hidden; z-index:1;
}
.m-hero-particles span {
    position:absolute;
    display:block;
    width:4px; height:4px;
    border-radius:50%;
    background:var(--gold);
    opacity:.4;
}
.m-hero-particles span:nth-child(1) { top:20%; left:10%; width:3px; height:3px; animation:particleFloat 7s ease-in-out infinite; }
.m-hero-particles span:nth-child(2) { top:60%; left:20%; width:5px; height:5px; animation:particleFloat 9s ease-in-out infinite .5s; opacity:.25; }
.m-hero-particles span:nth-child(3) { top:30%; left:80%; width:3px; height:3px; animation:particleFloat 6s ease-in-out infinite 1s; opacity:.35; }
.m-hero-particles span:nth-child(4) { top:75%; left:75%; width:4px; height:4px; animation:particleFloat 11s ease-in-out infinite 2s; opacity:.2; }
.m-hero-particles span:nth-child(5) { top:45%; left:90%; width:3px; height:3px; animation:particleFloat 8s ease-in-out infinite .8s; opacity:.3; }
.m-hero-particles span:nth-child(6) { top:85%; left:35%; width:5px; height:5px; animation:particleFloat 10s ease-in-out infinite 1.5s; opacity:.2; }

/* Hero animated orbs */
.m-hero-orb {
    position:absolute; border-radius:50%; pointer-events:none; z-index:1;
}
.m-hero-orb-1 {
    width:650px; height:650px;
    background:radial-gradient(circle, rgba(201,165,92,.07) 0%, transparent 65%);
    top:-200px; right:-150px;
    animation:orb1 12s ease-in-out infinite;
}
.m-hero-orb-2 {
    width:450px; height:450px;
    background:radial-gradient(circle, rgba(26,45,74,.4) 0%, transparent 70%);
    bottom:-100px; left:-80px;
    animation:orb2 15s ease-in-out infinite .5s;
}

/* Hero text entrance */
.m-hero-text { animation:proSlideLeft .9s cubic-bezier(.4,0,.2,1) both; }
.m-hero-visual { animation:proSlideRight .9s cubic-bezier(.4,0,.2,1) .15s both; }

/* Gradient accent text */
.m-hero h1 .accent {
    background:linear-gradient(135deg, var(--gold) 0%, var(--gold2) 50%, var(--gold3) 100%);
    background-size:200% 200%;
    -webkit-background-clip:text; -webkit-text-fill-color:transparent;
    background-clip:text;
    animation:gradientShift 4s ease infinite;
}

/* Hero mosaic enhancements */
.m-hero-mosaic-img {
    position:relative;
    transition:transform .4s cubic-bezier(.4,0,.2,1);
}
.m-hero-mosaic-img:hover { transform:scale(1.02); z-index:5; }
.m-hero-mosaic-img::after {
    content:'';
    position:absolute; inset:0;
    background:linear-gradient(135deg, rgba(255,255,255,.06) 0%, transparent 60%);
    border-radius:16px; pointer-events:none;
}
.m-hero-mosaic-img:nth-child(1) { aspect-ratio:3/5; grid-row:span 2; }
.m-hero-mosaic-img:nth-child(2),
.m-hero-mosaic-img:nth-child(3) { aspect-ratio:1; }

/* Badge pro */
.m-hero-badge {
    animation:floatBadge 3.5s ease-in-out infinite;
    border:1px solid rgba(201,165,92,.2);
    position:relative;
}
.m-hero-badge::before {
    content:'';
    position:absolute; inset:-3px;
    border-radius:17px;
    background:linear-gradient(135deg, var(--gold), transparent, var(--gold3));
    opacity:0;
    animation:badgePulse 3s ease-in-out infinite;
    z-index:-1;
}

/* ── FEATURES BAR pro ── */
.m-feature {
    transition:background .3s, box-shadow .3s;
    position:relative; overflow:hidden;
}
.m-feature::after {
    content:'';
    position:absolute;
    bottom:0; left:0; right:0;
    height:3px;
    background:linear-gradient(90deg, var(--gold), var(--gold2), var(--gold));
    transform:scaleX(0); transform-origin:left;
    transition:transform .35s cubic-bezier(.4,0,.2,1);
}
.m-feature:hover::after { transform:scaleX(1); }
.m-feature:hover { background:var(--cream); box-shadow:inset 0 -3px 0 transparent; }
.m-feature-icon { transition:var(--transition); }
.m-feature:hover .m-feature-icon {
    background:var(--gold);
    color:var(--navy);
    transform:scale(1.12) rotate(6deg);
    box-shadow:0 8px 20px rgba(201,165,92,.3);
}

/* ── SERVICE CARDS pro ── */
.m-srv-card {
    position:relative;
}
.m-srv-card::before {
    content:'';
    position:absolute; inset:-2px;
    border-radius:calc(var(--radius) + 2px);
    background:linear-gradient(135deg, var(--gold), transparent 60%, var(--gold3));
    opacity:0;
    transition:opacity .35s;
    z-index:-1;
}
.m-srv-card:hover::before { opacity:1; }
.m-srv-icon { position:relative; }
.m-srv-icon::after {
    content:'';
    position:absolute; inset:-6px;
    border-radius:50%;
    background:radial-gradient(circle, rgba(201,165,92,.2) 0%, transparent 70%);
    opacity:0;
    transition:opacity .3s;
}
.m-srv-card:hover .m-srv-icon::after { opacity:1; }
.m-srv-price {
    font-family:'Playfair Display',serif;
    background:linear-gradient(135deg, var(--navy), var(--navy3));
    -webkit-background-clip:text; -webkit-text-fill-color:transparent;
    background-clip:text;
}

/* ── STATS pro ── */
.m-stats-section { position:relative; overflow:hidden; }
.m-stats-section::before {
    content:'';
    position:absolute;
    width:800px; height:800px; border-radius:50%;
    background:radial-gradient(circle, rgba(201,165,92,.08) 0%, transparent 65%);
    top:-350px; left:-250px; pointer-events:none;
}
.m-stats-section::after {
    content:'';
    position:absolute;
    width:500px; height:500px; border-radius:50%;
    background:radial-gradient(circle, rgba(201,165,92,.06) 0%, transparent 65%);
    bottom:-200px; right:-100px; pointer-events:none;
}
.m-stats-grid > div {
    position:relative;
}
.m-stats-grid > div:not(:last-child)::after {
    content:'';
    position:absolute;
    right:0; top:15%;
    height:70%; width:1px;
    background:linear-gradient(to bottom, transparent, rgba(255,255,255,.15), transparent);
}
.m-stat-val {
    background:linear-gradient(135deg, var(--gold) 0%, var(--gold2) 60%, var(--gold3) 100%);
    background-size:200% 200%;
    -webkit-background-clip:text; -webkit-text-fill-color:transparent;
    background-clip:text;
    animation:gradientShift 5s ease infinite;
    filter:drop-shadow(0 0 20px rgba(201,165,92,.35));
}

/* ── GALLERY PREVIEW pro ── */
.m-gal-prev-item {
    transition:transform .4s cubic-bezier(.4,0,.2,1), box-shadow .4s;
    box-shadow:0 8px 32px rgba(0,0,0,.06);
}
.m-gal-prev-item:hover {
    transform:translateY(-10px);
    box-shadow:0 28px 64px rgba(0,0,0,.2);
}
.m-gal-prev-overlay {
    background:linear-gradient(to top, rgba(15,23,41,.75) 0%, rgba(15,23,41,.1) 60%, transparent 100%);
}

/* ── TESTIMONIALS pro ── */
.m-testi-card {
    position:relative; overflow:hidden;
    background:var(--white);
    border-top:none;
    border-left:none;
    border:1px solid var(--border);
    border-radius:var(--radius);
}
.m-testi-card::before {
    content:'\201C';
    font-family:'Playfair Display',serif;
    font-size:9rem; line-height:1;
    color:var(--gold); opacity:.07;
    position:absolute; top:-16px; left:12px;
    pointer-events:none; user-select:none;
}
.m-testi-card::after {
    content:'';
    position:absolute; inset:0;
    border-radius:var(--radius);
    border:2px solid transparent;
    background:linear-gradient(var(--white),var(--white)) padding-box,
                linear-gradient(135deg,var(--gold),transparent,var(--gold3)) border-box;
    opacity:0;
    transition:opacity .35s;
    pointer-events:none;
}
.m-testi-card:hover::after { opacity:1; }
.m-testi-card:hover { border-color:transparent; }
.m-testi-stars {
    background:linear-gradient(90deg, var(--gold), var(--gold2));
    -webkit-background-clip:text; -webkit-text-fill-color:transparent;
    background-clip:text;
    letter-spacing:2px;
}
.m-testi-avatar {
    box-shadow:0 8px 20px rgba(201,165,92,.3);
    background:linear-gradient(135deg, var(--gold2) 0%, var(--gold) 50%, var(--gold3) 100%);
}

/* ── PROCESS STEPS pro ── */
.m-process-num {
    position:relative;
    background:linear-gradient(135deg, var(--white) 50%, var(--cream));
    transition:var(--transition);
}
.m-process-num::after {
    content:'';
    position:absolute; inset:-8px;
    border-radius:50%;
    border:1px solid rgba(201,165,92,.15);
    transition:opacity .3s;
}
.m-process-step:hover .m-process-num {
    background:var(--navy);
    color:var(--gold);
    border-color:var(--gold);
    transform:scale(1.12);
    box-shadow:0 12px 32px rgba(201,165,92,.3);
}
.m-process-step:hover .m-process-num::after {
    opacity:0;
}

/* ── SPECIALIST CARDS pro ── */
.m-specialist-avatar { transition:var(--transition); }
.m-specialist-card:hover .m-specialist-avatar {
    transform:scale(1.08);
    box-shadow:0 16px 40px rgba(201,165,92,.35);
    background:rgba(201,165,92,.25);
    border-color:rgba(201,165,92,.6);
}

/* ── CTA BANNER pro ── */
.m-cta-banner {
    background:linear-gradient(145deg, var(--navy) 0%, var(--navy3) 45%, #0c1b37 100%);
    position:relative; overflow:hidden;
    border:1px solid rgba(201,165,92,.12);
}
.m-cta-orbit {
    position:absolute !important; border-radius:50%;
    border:1px solid rgba(201,165,92,.07);
    pointer-events:none; z-index:0 !important;
}
.m-cta-orbit-1 { width:320px; height:320px; top:-140px; left:-80px; animation:spin 20s linear infinite; }
.m-cta-orbit-2 { width:220px; height:220px; bottom:-80px; right:10%; animation:spin 15s linear infinite reverse; border-color:rgba(201,165,92,.05); }
.m-cta-orbit-3 { width:500px; height:500px; top:50%; left:50%; transform:translate(-50%,-50%); animation:spin 35s linear infinite; border-color:rgba(201,165,92,.04); }

/* ── FOOTER pro ── */
.m-footer { position:relative; }
.m-footer::before {
    content:'';
    position:absolute; top:0; left:7%; right:7%;
    height:1px;
    background:linear-gradient(90deg, transparent, var(--gold), transparent);
    opacity:.35;
}
.m-footer-social a {
    position:relative; overflow:hidden;
}
.m-footer-social a::before {
    content:'';
    position:absolute; inset:0; border-radius:50%;
    background:var(--gold); opacity:0; transform:scale(0);
    transition:all .3s cubic-bezier(.4,0,.2,1);
}
.m-footer-social a:hover::before { opacity:1; transform:scale(1); }
.m-footer-social a i { position:relative; z-index:1; }

/* ── BUTTONS pro — shine sweep ── */
.m-btn-gold, .m-hero-cta-main, .m-btn-hero-gold, .srv-btn, .m-specialist-btn {
    position:relative; overflow:hidden;
}
.m-btn-gold::after, .m-hero-cta-main::after, .m-btn-hero-gold::after, .srv-btn::after, .m-specialist-btn::after {
    content:'';
    position:absolute; top:0; left:-100%;
    width:60%; height:100%;
    background:linear-gradient(90deg, transparent, rgba(255,255,255,.25), transparent);
    transform:skewX(-20deg);
    transition:none;
}
.m-btn-gold:hover::after, .m-hero-cta-main:hover::after, .m-btn-hero-gold:hover::after, .srv-btn:hover::after, .m-specialist-btn:hover::after {
    left:150%;
    transition:left .5s ease;
}

/* ── PAGE HEADER pro ── */
.m-page-header h1 {
    animation:proFadeUp .8s cubic-bezier(.4,0,.2,1) both;
}
.m-page-label {
    animation:proFadeIn .6s ease both;
}
.m-page-label::before,
.m-page-label::after {
    animation:expandLine .7s ease .3s both;
}

/* ── SECTION HEADER gradient underline ── */
.m-section-header h2 {
    position:relative; display:inline-block;
}
.m-section-header h2::after {
    content:'';
    position:absolute; bottom:-10px; left:50%;
    transform:translateX(-50%);
    width:48px; height:2px;
    background:linear-gradient(90deg, var(--gold), var(--gold2));
    border-radius:2px;
    transition:width .4s ease;
}
.m-section-header:hover h2::after { width:100%; }

/* ── FILTER PILLS pro ── */
.m-filter-pill {
    transition:var(--transition);
    position:relative; overflow:hidden;
}
.m-filter-pill.active {
    background:linear-gradient(135deg, var(--navy), var(--navy3));
    box-shadow:0 6px 20px rgba(15,23,41,.25);
}
.m-filter-pill::after {
    content:'';
    position:absolute; top:0; left:-100%;
    width:60%; height:100%;
    background:linear-gradient(90deg, transparent, rgba(255,255,255,.12), transparent);
    transform:skewX(-20deg);
}
.m-filter-pill.active:hover::after { left:150%; transition:left .4s ease; }

/* ── GALLERY items pro ── */
.gal-item {
    transition:transform .4s cubic-bezier(.4,0,.2,1), box-shadow .4s;
}
.gal-item:hover {
    transform:translateY(-6px);
    box-shadow:0 24px 60px rgba(0,0,0,.2);
}

/* ── PRODUCT CARD pro ── */
.prod-card {
    position:relative;
}
.prod-card::before {
    content:'';
    position:absolute; inset:-2px;
    border-radius:calc(var(--radius) + 2px);
    background:linear-gradient(135deg, var(--gold), transparent 60%, var(--gold3));
    opacity:0; transition:opacity .3s; z-index:-1;
}
.prod-card:hover::before { opacity:.7; }

/* ── SRV CARDS page pro ── */
.srv-card { position:relative; }
.srv-card::before {
    content:'';
    position:absolute; inset:-2px;
    border-radius:calc(var(--radius) + 2px);
    background:linear-gradient(135deg, rgba(201,165,92,.5), transparent 50%, rgba(168,129,58,.4));
    opacity:0; transition:opacity .35s; z-index:-1;
}
.srv-card:hover::before { opacity:1; }

/* ── BOOKING / SLOTS pro ── */
.slot { transition:var(--transition); }
.slot:hover:not(.booked) {
    box-shadow:0 6px 20px rgba(201,165,92,.2);
}
.slot.selected {
    background:linear-gradient(135deg, var(--navy), var(--navy3));
    box-shadow:0 8px 24px rgba(15,23,41,.3);
}

/* ── MOBILE — disable heavy animations ── */
@media (max-width:768px) {
    .m-hero-particles { display:none; }
    .m-hero-orb-1, .m-hero-orb-2 { display:none; }
    .m-cta-orbit { display:none; }
    .m-hero-text { animation:proFadeUp .7s ease both; }
    .m-hero-visual { animation:none; }
}
@media (prefers-reduced-motion:reduce) {
    .m-hero-text, .m-hero-visual,
    .m-hero h1 .accent, .m-stat-val,
    .m-hero-particles span, .m-hero-orb, .m-cta-orbit,
    .m-hero-badge { animation:none !important; }
}
