/* =================================================================
   ALPHA BEAUTY — site.css
   The ONLY stylesheet for the public website. Self-contained:
   no dependency on the old style.css (which remains for legacy
   admin-related pages only). Design: quiet luxury — cream, ink,
   one gold accent, serif display headings.
   ================================================================= */

/* ---------- Tokens ---------- */
:root {
    --gold: #b08d57;
    --gold-dark: #8a6a3b;
    --gold-pale: #e9dcc3;
    --ink: #26201b;
    --ink-soft: #6b5f54;
    --cream: #faf7f2;
    --cream-deep: #f1eae0;
    --white: #ffffff;
    --line: #e5ddd1;
    --dark: #211a15;
    --shadow-sm: 0 2px 10px rgba(38, 32, 27, 0.06);
    --shadow-md: 0 10px 30px rgba(38, 32, 27, 0.1);
    --radius: 14px;
    --font-serif: 'Playfair Display', Georgia, serif;
    --font-sans: 'Montserrat', 'Segoe UI', sans-serif;
    --header-h: 122px;
}

/* ---------- Base ---------- */
*, *::before, *::after { box-sizing: border-box; }

html { scroll-behavior: smooth; }

body {
    margin: 0;
    background: var(--cream);
    color: var(--ink);
    font-family: var(--font-sans);
    font-size: 16px;
    line-height: 1.65;
    -webkit-font-smoothing: antialiased;
}

img { max-width: 100%; display: block; }

h1, h2, h3, h4 {
    font-family: var(--font-serif);
    font-weight: 600;
    line-height: 1.2;
    color: var(--ink);
    margin: 0 0 1rem;
}

p { margin: 0 0 1rem; }

a { color: var(--gold-dark); }

.visually-hidden {
    position: absolute;
    width: 1px; height: 1px;
    padding: 0; margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

/* ---------- Buttons ---------- */
.btn-gold, .btn-outline, .glass-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    font-family: var(--font-sans);
    font-size: 0.82rem;
    font-weight: 700;
    letter-spacing: 0.09em;
    text-transform: uppercase;
    text-decoration: none;
    border-radius: 999px;
    padding: 0.9rem 2rem;
    cursor: pointer;
    transition: all 0.25s ease;
}

.btn-gold {
    background: var(--gold);
    color: var(--white);
    border: 1px solid var(--gold);
}

.btn-gold:hover {
    background: var(--gold-dark);
    border-color: var(--gold-dark);
    transform: translateY(-1px);
    box-shadow: var(--shadow-md);
}

.btn-outline, .glass-button {
    background: transparent;
    color: var(--ink);
    border: 1px solid var(--line);
}

.btn-outline:hover, .glass-button:hover {
    border-color: var(--gold);
    color: var(--gold-dark);
}

/* ---------- Header ---------- */
.site-header {
    position: fixed;
    top: 0; left: 0; right: 0;
    z-index: 1000;
    background: rgba(250, 247, 242, 0.95);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    border-bottom: 1px solid var(--line);
    transition: box-shadow 0.3s ease;
}

.site-header.scrolled { box-shadow: var(--shadow-sm); }

.header-inner {
    display: grid;
    grid-template-columns: 1fr auto 1fr;
    align-items: center;
    max-width: 1140px;
    margin: 0 auto;
    padding: 0.7rem 1.5rem 0.4rem;
}
.header-inner::before { content: ''; grid-column: 1; }

.header-brand {
    display: flex;
    align-items: center;
    gap: 1rem;
    text-decoration: none;
}

.header-brand img {
    height: 46px;
    width: auto;
    transition: height 0.3s ease;
}

.site-header.scrolled .header-brand img { height: 38px; }

.brand-line {
    width: 48px;
    height: 1px;
    background: linear-gradient(90deg, transparent, var(--gold));
}

.brand-line:last-child { background: linear-gradient(90deg, var(--gold), transparent); }

.header-actions {
    justify-self: end;
    display: flex;
    align-items: center;
    gap: 1rem;
}

.hamburger {
    display: none;
    background: none;
    border: none;
    color: var(--ink);
    font-size: 1.3rem;
    cursor: pointer;
    padding: 0.4rem;
}

/* Nav */
.nav-pill-wrap {
    display: flex;
    justify-content: center;
    padding: 0 1rem 0.7rem;
}

.nav-pill {
    list-style: none;
    display: flex;
    gap: 0.2rem;
    margin: 0;
    padding: 0;
}

.nav-pill li a {
    display: block;
    color: var(--ink-soft);
    text-decoration: none;
    text-transform: uppercase;
    font-size: 0.76rem;
    letter-spacing: 0.12em;
    font-weight: 600;
    padding: 0.45rem 1.1rem;
    border-radius: 999px;
    transition: color 0.2s ease, background 0.2s ease;
}

.nav-pill li a:hover {
    color: var(--gold-dark);
    background: var(--cream-deep);
}

@media (max-width: 860px) {
    :root { --header-h: 64px; }
    .header-inner { grid-template-columns: 1fr auto 1fr; padding: 0.55rem 1rem; }
    .header-brand { justify-self: center; }
    .header-brand img { height: 40px; }
    .brand-line { width: 22px; }
    .hamburger { display: block; }
    .nav-pill-wrap { padding: 0; }
    .nav-pill {
        display: none;
        position: absolute;
        top: 100%; left: 0; right: 0;
        flex-direction: column;
        background: var(--cream);
        border-bottom: 1px solid var(--line);
        box-shadow: var(--shadow-md);
        padding: 0.4rem 0;
        text-align: center;
    }
    .nav-pill.active { display: flex; }
    .nav-pill li a { padding: 0.85rem 0; font-size: 0.85rem; }
}

/* ---------- Hero ---------- */
.hero-section {
    position: relative;
    height: 88vh;
    min-height: 540px;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    background: var(--dark);
}

.hero-media img, .hero-media video {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.kenburns { animation: kenburns 24s ease-in-out infinite alternate; }

@keyframes kenburns {
    from { transform: scale(1); }
    to   { transform: scale(1.08); }
}

.hero-overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, rgba(33, 26, 21, 0.35), rgba(33, 26, 21, 0.62));
}

.hero-content {
    position: relative;
    z-index: 2;
    text-align: center;
    max-width: 760px;
    padding: 0 1.5rem;
}

.hero-display {
    font-size: clamp(2.4rem, 5.5vw, 4rem);
    color: var(--white);
    margin-bottom: 1.2rem;
}

.hero-display em {
    font-style: italic;
    color: var(--gold-pale);
}

.hero-tagline {
    font-size: 1.05rem;
    font-weight: 300;
    letter-spacing: 0.04em;
    color: rgba(255, 255, 255, 0.88);
    margin-bottom: 2.2rem;
}

.hero-cta-row {
    display: flex;
    justify-content: center;
    gap: 1rem;
    flex-wrap: wrap;
}

.hero-cta-row .btn-gold { padding: 1.05rem 2.8rem; font-size: 0.88rem; }

.scroll-cue {
    position: absolute;
    bottom: 1.5rem;
    left: 50%;
    transform: translateX(-50%);
    color: rgba(255, 255, 255, 0.75);
    font-size: 1.1rem;
    z-index: 2;
    animation: cue 2.4s ease-in-out infinite;
}

@keyframes cue {
    0%, 100% { transform: translate(-50%, 0); opacity: 0.75; }
    50% { transform: translate(-50%, 7px); opacity: 1; }
}

/* Hero entrance */
html.js .hero-content > * {
    opacity: 0;
    transform: translateY(16px);
    animation: rise 0.8s ease forwards;
}

html.js .hero-content > *:nth-child(2) { animation-delay: 0.18s; }
html.js .hero-content > *:nth-child(3) { animation-delay: 0.36s; }

@keyframes rise { to { opacity: 1; transform: translateY(0); } }

/* ---------- Layout / sections ---------- */
main {
    display: block;
    max-width: 1140px;
    margin: 0 auto;
    padding: 5rem 1.5rem 0;
}

section { margin-bottom: 5.5rem; }

.section-heading {
    text-align: center;
    max-width: 620px;
    margin: 0 auto 2.75rem;
}

.section-heading h2 {
    font-size: clamp(1.8rem, 3.5vw, 2.4rem);
    margin-bottom: 0.4rem;
}

.section-heading h2::after {
    content: '';
    display: block;
    width: 52px;
    height: 2px;
    margin: 1rem auto 0;
    background: var(--gold);
}

/* ---------- Category cards (photo cards with caption) ---------- */
.category-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(270px, 1fr));
    gap: 1.5rem;
}

.category-card {
    position: relative;
    border-radius: var(--radius);
    overflow: hidden;
    cursor: pointer;
    box-shadow: var(--shadow-sm);
    aspect-ratio: 4 / 5;
    background: var(--cream-deep);
}

.category-card img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.6s ease;
}

.category-card:hover img { transform: scale(1.05); }

.category-card-caption {
    position: absolute;
    inset: auto 0 0 0;
    padding: 2.2rem 1.4rem 1.3rem;
    background: linear-gradient(180deg, transparent, rgba(33, 26, 21, 0.78));
    color: var(--white);
}

.category-card-caption h3 {
    color: var(--white);
    font-size: 1.35rem;
    margin: 0 0 0.25rem;
}

.category-card-link {
    font-size: 0.78rem;
    font-weight: 600;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--gold-pale);
    opacity: 0;
    transform: translateY(6px);
    transition: opacity 0.3s ease, transform 0.3s ease;
    display: inline-block;
}

.category-card:hover .category-card-link { opacity: 1; transform: translateY(0); }

@media (hover: none) {
    .category-card-link { opacity: 1; transform: none; }
}

/* ---------- Booking ---------- */
.booking-container {
    background: var(--white);
    border: 1px solid var(--line);
    border-radius: var(--radius);
    box-shadow: var(--shadow-sm);
    max-width: 780px;
    margin: 0 auto;
    padding: 2.5rem;
}

.booking-steps {
    display: flex;
    justify-content: center;
    gap: 2.25rem;
    list-style: none;
    margin: 0 0 2.25rem;
    padding: 0 0 1.75rem;
    border-bottom: 1px solid var(--line);
}

.booking-steps .step {
    display: flex;
    align-items: center;
    gap: 0.55rem;
    font-size: 0.76rem;
    font-weight: 600;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--ink-soft);
}

.booking-steps .step-num {
    width: 26px; height: 26px;
    border-radius: 50%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: var(--cream-deep);
    color: var(--ink-soft);
    font-family: var(--font-serif);
    font-size: 0.9rem;
}

.booking-steps .step.active .step-num,
.booking-steps .step.completed .step-num {
    background: var(--gold);
    color: var(--white);
}

.booking-steps .step.active { color: var(--ink); }

@media (max-width: 620px) {
    .booking-steps { gap: 1.2rem; }
    .booking-steps .step-label { display: none; }
}

.category-filters {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 0.6rem;
    margin-bottom: 1.75rem;
}

.category-filter-btn {
    background: var(--cream);
    border: 1px solid var(--line);
    border-radius: 999px;
    padding: 0.55rem 1.3rem;
    font-family: var(--font-sans);
    font-size: 0.82rem;
    font-weight: 600;
    color: var(--ink-soft);
    cursor: pointer;
    transition: all 0.2s ease;
}

.category-filter-btn:hover { border-color: var(--gold); color: var(--ink); }

.category-filter-btn.active {
    background: var(--gold);
    border-color: var(--gold);
    color: var(--white);
}

.service-selection-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(215px, 1fr));
    gap: 1.1rem;
}

/* AJAX-injected service cards (.service-card.glass-card) */
.service-card {
    background: var(--cream);
    border: 1px solid var(--line);
    border-radius: var(--radius);
    padding: 1.1rem;
    text-align: center;
    color: var(--ink);
    transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

.service-card:hover { border-color: var(--gold); box-shadow: var(--shadow-sm); }

.service-card.selected { border-color: var(--gold); box-shadow: 0 0 0 2px var(--gold-pale); }

.service-card img {
    width: 100%;
    height: 130px;
    object-fit: cover;
    border-radius: 10px;
    margin-bottom: 0.8rem;
}

.service-card h4 {
    font-family: var(--font-sans);
    font-size: 0.95rem;
    font-weight: 600;
    margin: 0 0 0.3rem;
    color: var(--ink);
}

.service-card p {
    font-size: 0.88rem;
    color: var(--ink-soft);
    margin: 0 0 0.9rem;
}

.service-card-buttons {
    display: flex;
    justify-content: center;
    gap: 0.5rem;
    flex-wrap: wrap;
}

.service-card-buttons .glass-button {
    padding: 0.5rem 1rem;
    font-size: 0.72rem;
}

.service-card-buttons .book-now-btn {
    background: var(--gold);
    border-color: var(--gold);
    color: var(--white);
}

.service-card-buttons .book-now-btn:hover { background: var(--gold-dark); }

/* Booking cards are loaded dynamically. Avoid parent-opacity animation plus
   backdrop-filter here: Firefox can rasterize that combination as a fuzzy layer. */
#services-container { transition: opacity .18s ease; }
#services-container.is-loading { opacity: .58; pointer-events: none; }
#services-container .service-card {
    isolation: isolate;
    background: linear-gradient(145deg, rgba(255,255,255,.94), rgba(247,244,248,.88));
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
}
#services-container .service-card img,
#services-container .service-card h4,
#services-container .service-card p,
#services-container .service-card-buttons { transform: translateZ(0); }
.booking-load-error { grid-column: 1 / -1; margin: 0; padding: 1rem; color: var(--ink-soft); text-align: center; }

.wizard-nav { margin-bottom: 1.5rem; }

/* ---------- Calendar (AJAX-injected markup) ---------- */
.calendar {
    background: var(--cream);
    border: 1px solid var(--line);
    border-radius: var(--radius);
    color: var(--ink);
    overflow: hidden;
}

.current-date {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 1rem 1.5rem;
    border-bottom: 1px solid var(--line);
}

.current-date h1 {
    font-size: 1.15rem;
    font-family: var(--font-serif);
    margin: 0;
    padding: 0;
}

.month-nav {
    color: var(--gold-dark);
    font-size: 1.5rem;
    text-decoration: none;
    line-height: 1;
    padding: 0 0.5rem;
}

.month-nav:hover { color: var(--gold); }

.week-days {
    display: grid;
    grid-template-columns: repeat(7, 1fr);
    text-align: center;
    list-style: none;
    margin: 0;
    padding: 0.9rem 0.5rem 0.5rem;
    font-size: 0.7rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    color: var(--ink-soft);
}

.weeks { padding: 0 0.5rem 0.75rem; }

.weeks div {
    display: grid;
    grid-template-columns: repeat(7, 1fr);
    text-align: center;
}

.weeks span {
    padding: 0.55rem 0;
    margin: 2px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 0.92rem;
    border-radius: 50%;
    aspect-ratio: 1;
    max-width: 42px;
    justify-self: center;
    width: 100%;
}

.weeks span.day { cursor: pointer; transition: background 0.2s ease; }

.weeks span.day:hover {
    background: var(--gold-pale);
    font-weight: 600;
}

.weeks span.last-month { color: var(--line); }

.weeks span.disabled {
    color: var(--line);
    cursor: not-allowed;
}

.weeks span.disabled:hover { background: none; font-weight: 400; }

.calendar .back {
    display: none;
    background: var(--cream);
    padding: 1.25rem;
}

/* ---------- Time slots & form ---------- */
#time-slots-container { padding: 0.5rem; text-align: center; }

#time-slots-date {
    font-family: var(--font-serif);
    font-size: 1.1rem;
    margin-bottom: 0.75rem;
}

.time-slots-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(88px, 1fr));
    gap: 0.6rem;
    margin-top: 0.75rem;
}

.time-slot {
    background: var(--white);
    border: 1px solid var(--line);
    border-radius: 10px;
    padding: 0.65rem 0.4rem;
    font-size: 0.88rem;
    cursor: pointer;
    transition: all 0.2s ease;
}

.time-slot:hover { border-color: var(--gold); }

.time-slot.selected {
    background: var(--gold);
    border-color: var(--gold);
    color: var(--white);
    font-weight: 600;
}

.time-slot.disabled {
    background: var(--cream-deep);
    color: var(--ink-soft);
    opacity: 0.55;
    cursor: not-allowed;
}

#booking-summary {
    margin: 1.25rem 0 0.5rem;
    font-size: 0.92rem;
    color: var(--ink-soft);
}

#booking-summary p { margin: 0.2rem 0; }

#booking-form, #select-time-btn { display: none; }

#booking-form { text-align: left; max-width: 420px; margin: 1rem auto 0; }

#booking-form label {
    display: block;
    font-size: 0.8rem;
    font-weight: 600;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--ink-soft);
    margin: 1rem 0 0.35rem;
}

#booking-form input {
    width: 100%;
    padding: 0.8rem 1rem;
    border: 1px solid var(--line);
    border-radius: 10px;
    background: var(--white);
    color: var(--ink);
    font-family: var(--font-sans);
    font-size: 0.95rem;
}

#booking-form input:focus {
    outline: none;
    border-color: var(--gold);
    box-shadow: 0 0 0 3px var(--gold-pale);
}

#booking-form button[type="submit"] {
    margin-top: 1.5rem;
    width: 100%;
    background: var(--gold);
    border: 1px solid var(--gold);
    color: var(--white);
}

#booking-form button[type="submit"]:hover { background: var(--gold-dark); }

input.invalid { border-color: #c0392b !important; }
input.valid { border-color: #7a9b6d !important; }

.error-message {
    color: #c0392b;
    font-size: 0.8rem;
    margin-top: 0.3rem;
}

.spinner {
    display: none;
    border: 3px solid rgba(255, 255, 255, 0.35);
    border-top-color: #fff;
    border-radius: 50%;
    width: 16px; height: 16px;
    animation: spin 0.9s linear infinite;
}

@keyframes spin { to { transform: rotate(360deg); } }

/* ---------- Gallery ---------- */
.gallery-container {
    position: relative;
    display: flex;
    align-items: center;
    gap: 0.75rem;
}

.gallery-arrow {
    flex-shrink: 0;
    width: 42px; height: 42px;
    border-radius: 50%;
    background: var(--white);
    border: 1px solid var(--line);
    color: var(--ink);
    font-size: 0.85rem;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: all 0.2s ease;
    z-index: 2;
}

.gallery-arrow:hover { border-color: var(--gold); color: var(--gold-dark); }

.gallery-scroller { overflow: hidden; width: 100%; }

.gallery-track { display: flex; cursor: grab; }

.gallery-track.active { cursor: grabbing; }

.gallery-slide {
    flex-shrink: 0;
    width: 280px;
    height: 210px;
    margin-right: 1rem;
    border-radius: var(--radius);
    overflow: hidden;
    cursor: pointer;
}

.gallery-slide img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.5s ease;
}

.gallery-slide:hover img { transform: scale(1.04); }

/* ---------- Website updates & Google reviews ---------- */
.updates-section, .reviews-section { padding: 5rem 0; }
.updates-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.25rem; }
.update-card { background: var(--white); border: 1px solid var(--line); border-radius: var(--radius); overflow: hidden; box-shadow: var(--shadow-sm); }
.update-card > img { width: 100%; height: 210px; object-fit: cover; display: block; }
.update-card-body { padding: 1.25rem; }.update-card-body h3 { font-size: 1.2rem; margin: .2rem 0 .65rem; }
.update-card-body p:last-child { font-size: .9rem; line-height: 1.65; margin: 0; display: -webkit-box; -webkit-line-clamp: 4; -webkit-box-orient: vertical; overflow: hidden; }
.update-date { color: var(--gold-dark); font-size: .72rem; font-weight: 700; letter-spacing: .09em; margin: 0; text-transform: uppercase; }
.updates-more { display:flex; justify-content:center; margin-top:2rem; }
.updates-archive-page { width:min(1180px,calc(100% - 2rem)); margin:0 auto; padding:clamp(7rem,12vw,10rem) 0 5rem; }
.updates-archive-hero { position:relative; overflow:hidden; max-width:900px; margin:0 auto 4rem; padding:clamp(2rem,6vw,4.5rem); text-align:center; border:1px solid rgba(255,255,255,.78); border-radius:30px; background:linear-gradient(135deg,rgba(255,255,255,.72),rgba(245,230,239,.5)); box-shadow:var(--shadow-glass); }
.updates-archive-hero::after { content:""; position:absolute; width:240px; height:240px; right:-90px; top:-100px; border-radius:50%; background:radial-gradient(circle,rgba(212,167,100,.26),transparent 68%); pointer-events:none; }
.updates-archive-hero h1 { margin:.35rem 0 1rem; font-size:clamp(2.5rem,7vw,5rem); }
.updates-archive-hero>p:last-child { max-width:630px; margin:0 auto; color:var(--ink-soft); line-height:1.8; }
.updates-archive-section { min-height:50vh; }
.updates-archive-grid { align-items:start; }
.updates-archive-grid .update-card { height:100%; }
.updates-load-sentinel { display:flex; align-items:center; justify-content:center; gap:.7rem; min-height:90px; margin:1.5rem auto 0; color:var(--gold-dark); font-size:.78rem; font-weight:700; letter-spacing:.05em; cursor:pointer; }
.updates-loader { width:22px; height:22px; border:2px solid rgba(128,96,57,.2); border-top-color:var(--gold-dark); border-radius:50%; animation:updates-spin .8s linear infinite; }
.updates-load-sentinel:not(.is-loading) .updates-loader { animation-play-state:paused; opacity:.55; }
.updates-load-sentinel.has-error .updates-loader { display:none; }
.updates-empty { max-width:620px; margin:3rem auto; padding:1.25rem; text-align:center; color:var(--ink-soft); border:1px solid rgba(255,255,255,.72); border-radius:18px; background:rgba(255,255,255,.5); }
@keyframes updates-spin { to { transform:rotate(360deg); } }
@media (max-width:560px) { .updates-archive-page { width:min(100% - 1.25rem,1180px); padding-top:6.5rem; }.updates-archive-hero { margin-bottom:2.5rem; border-radius:23px; }.updates-archive-grid .update-card>img { height:230px; } }
.reviews-section { background: var(--cream-deep); margin: 0 -2rem; padding-left: 2rem; padding-right: 2rem; }.reviews-summary { margin: .7rem 0 0; color: var(--gold-dark); font-weight: 600; }.reviews-verified-badge { display:inline-flex; align-items:center; gap:.45rem; margin-bottom:.35rem; color:var(--gold-dark); font-size:.78rem; letter-spacing:.04em; text-transform:uppercase; font-weight:700; }.reviews-verified-badge i { color:#3f8f68; }
.reviews-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.25rem; margin-top: 2rem; }.review-card { margin: 0; padding: 1.5rem; background: var(--white); border-radius: var(--radius); box-shadow: var(--shadow-sm); }.review-stars { color: var(--gold); letter-spacing: .13em; font-size: .85rem; }.review-card > p { font-family: var(--serif); line-height: 1.65; font-size: 1.03rem; }.review-card footer { display: flex; justify-content: space-between; gap: 1rem; font-size: .82rem; color: var(--muted); }.review-card footer strong { color: var(--ink); }.reviews-link { text-align: center; margin: 2rem 0 0; }.reviews-link a { color: var(--gold-dark); font-weight: 700; text-decoration: none; }
.reviews-controls { display: flex; justify-content: center; gap: .55rem; margin-top: 1.25rem; }.reviews-controls button { width: 38px; height: 38px; border: 1px solid rgba(147,101,46,.25); border-radius: 50%; color: var(--gold-dark); background: rgba(255,255,255,.5); cursor: pointer; }
.faq-list { max-width: 820px; margin: 0 auto; }.faq-list details { border: 1px solid rgba(255,255,255,.72); border-radius: 15px; margin-bottom: .7rem; background: rgba(255,255,255,.45); box-shadow: var(--shadow-sm); overflow: hidden; }.faq-list summary { padding: 1.05rem 1.25rem; cursor: pointer; list-style: none; font-weight: 700; color: var(--ink); }.faq-list summary::-webkit-details-marker { display: none; }.faq-list summary::after { content: '+'; float: right; color: var(--gold-dark); font-size: 1.2rem; line-height: 1; }.faq-list details[open] summary::after { content: '−'; }.faq-list details p { margin: 0; padding: 0 1.25rem 1.2rem; color: var(--ink-soft); font-size: .92rem; }
.cookie-consent { position: fixed; z-index: 1300; left: 1rem; right: 1rem; bottom: 1rem; display: flex; align-items: center; justify-content: space-between; gap: 1.25rem; padding: 1rem 1.2rem; border: 1px solid rgba(255,255,255,.8); border-radius: 18px; background: rgba(37,27,50,.9); color: #fff; box-shadow: 0 18px 50px rgba(25,15,35,.28); backdrop-filter: blur(18px); }.cookie-consent[hidden] { display: none; }.cookie-consent strong { color: var(--gold-pale); }.cookie-consent p { margin: .25rem 0 0; color: rgba(255,255,255,.78); font-size: .78rem; }.cookie-consent-actions { display: flex; align-items: center; gap: .55rem; flex-wrap: wrap; justify-content: flex-end; }.cookie-consent-actions a, .cookie-decline { color: #f5dfb4; background: transparent; border: 0; font: 600 .72rem/1 var(--font-sans); cursor: pointer; }.cookie-consent-actions .btn-gold { padding: .7rem 1rem; font-size: .7rem; }
.privacy-page { max-width: 860px; padding: 3rem 1.25rem; margin: 0 auto; }.privacy-back { display: inline-block; margin-bottom: 2rem; text-decoration: none; color: var(--gold-dark); }.privacy-card { padding: clamp(1.5rem, 5vw, 3rem); border: 1px solid rgba(255,255,255,.8); border-radius: 24px; background: rgba(255,255,255,.56); box-shadow: var(--shadow-glass); backdrop-filter: blur(16px); }.privacy-card h1 { font-size: clamp(2rem, 5vw, 3.5rem); }.privacy-card h2 { margin-top: 2rem; font-size: 1.4rem; }.privacy-card p { color: var(--ink-soft); }.privacy-note { margin-top: 2rem; font-size: .8rem; font-style: italic; }
@media (max-width: 700px) { .cookie-consent { flex-direction: column; align-items: stretch; }.cookie-consent-actions { justify-content: flex-start; } }
@media (max-width: 800px) { .updates-grid, .reviews-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 560px) { .updates-grid, .reviews-grid { grid-template-columns: 1fr; } .reviews-section { margin-left: -1rem; margin-right: -1rem; padding-left: 1rem; padding-right: 1rem; } }
@media (max-width: 560px) { .reviews-grid { display: flex; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; padding: .35rem .1rem .8rem; }.reviews-grid::-webkit-scrollbar { display: none; }.reviews-grid .review-card { flex: 0 0 88%; scroll-snap-align: center; } }

/* =================================================================
   ALPHA BEAUTY 2026 VISUAL REFRESH
   A single layer of refinements keeps the existing booking/content
   behavior intact while giving every section a more editorial finish.
   ================================================================= */
:root {
    --gold: #b99057;
    --gold-dark: #806039;
    --gold-pale: #eadcc4;
    --ink: #29231f;
    --ink-soft: #756b62;
    --cream: #fbf9f6;
    --cream-deep: #f2ece4;
    --line: #e9e1d7;
    --dark: #231c18;
    --shadow-sm: 0 8px 22px rgba(50, 37, 26, 0.06);
    --shadow-md: 0 18px 45px rgba(50, 37, 26, 0.13);
    --radius: 18px;
}
.hero-media .hero-intro-poster { z-index: 2; opacity: 1; transition: opacity .9s ease; pointer-events:none; }
.hero-media .hero-intro-poster.is-hidden { opacity: 0; }
.service-card { position: relative; }.service-badge { position: absolute; top: .85rem; right: .85rem; padding: .35rem .55rem; border-radius: 999px; font-size: .62rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }.service-badge.popular { color: #704c1f; background: #f4d59d; }.service-badge.new { color: #345347; background: #c8ded0; }

body { background: #fcfaf8; color: var(--ink); }
main { max-width: 1180px; padding: 6.5rem 2rem 0; }
section { margin-bottom: 7.5rem; }
.section-heading { margin-bottom: 3.25rem; }
.section-heading h2 { letter-spacing: -.02em; font-size: clamp(2rem, 4vw, 3rem); }
.section-heading h2::before { content: 'ALPHA BEAUTY'; display: block; margin-bottom: .75rem; color: var(--gold-dark); font: 700 .64rem/1 var(--font-sans); letter-spacing: .24em; }
.section-heading h2::after { width: 44px; height: 1px; margin-top: 1.2rem; }

.site-header { background: rgba(252, 250, 248, .9); border-bottom-color: rgba(185, 144, 87, .18); }
.header-inner { max-width: 1180px; padding: .9rem 2rem .55rem; }
.header-brand img { height: 50px; }
.nav-pill-wrap { padding-bottom: .85rem; }
.nav-pill { gap: .35rem; }
.nav-pill li a { color: #665d55; padding: .55rem 1.15rem; }
.nav-pill li a:hover { background: #f1e9df; color: var(--gold-dark); }

.hero-section { height: min(820px, 90vh); min-height: 620px; }
.hero-overlay { background: linear-gradient(90deg, rgba(28, 21, 17, .73) 0%, rgba(28, 21, 17, .34) 58%, rgba(28, 21, 17, .2) 100%); }
.hero-content { max-width: 1180px; width: 100%; text-align: left; padding: 5rem 2rem 2rem; }
.hero-display { max-width: 700px; font-size: clamp(3.2rem, 7vw, 6.3rem); line-height: .98; letter-spacing: -.045em; }
.hero-tagline { max-width: 510px; margin-bottom: 2.4rem; line-height: 1.7; }
.hero-cta-row { justify-content: flex-start; }
.hero-cta-row .btn-gold { box-shadow: 0 14px 28px rgba(0,0,0,.18); }
.scroll-cue { left: auto; right: 2rem; transform: none; }
@keyframes cue { 0%,100% { transform: translateY(0); opacity: .7; } 50% { transform: translateY(7px); opacity: 1; } }

.category-grid { grid-template-columns: repeat(3, 1fr); gap: 1.15rem; }
.category-card { border-radius: 22px; box-shadow: var(--shadow-sm); }
.category-card-caption { padding: 3.5rem 1.6rem 1.5rem; }
.category-card-caption h3 { font-size: 1.5rem; }

.booking-section { position: relative; }
.booking-container { max-width: 900px; border-color: rgba(185, 144, 87, .22); border-radius: 22px; box-shadow: var(--shadow-md); padding: clamp(1.35rem, 4vw, 3rem); }
.booking-steps { justify-content: space-around; }
.category-filter-btn { background: #fff; }
.service-card { border-radius: 15px; background: #fff; }
.service-card:hover { transform: translateY(-3px); box-shadow: var(--shadow-sm); }

.gallery-section { padding-top: 1rem; }
.gallery-container { gap: 1rem; }
.gallery-slide { width: 300px; height: 230px; border-radius: 18px; box-shadow: var(--shadow-sm); }
.gallery-arrow { width: 46px; height: 46px; background: #fff; box-shadow: var(--shadow-sm); }

.why-band { border-radius: 26px; padding: 5rem 2rem; background: radial-gradient(circle at 12% 0%, rgba(185,144,87,.18), transparent 35%), var(--dark); box-shadow: var(--shadow-md); }
.why-band h2 { font-size: clamp(2rem, 4vw, 2.7rem); }
.why-grid { gap: 2.5rem; }
.why-item i { font-size: 1.55rem; }

.updates-section { padding: 0; }
.updates-grid, .reviews-grid { gap: 1.4rem; }
.update-card, .review-card, .fb-card { border-radius: 18px; box-shadow: var(--shadow-sm); transition: transform .25s ease, box-shadow .25s ease; }
.update-card:hover, .review-card:hover, .fb-card:hover { transform: translateY(-4px); box-shadow: var(--shadow-md); }
.update-card > img { height: 230px; }
.update-card-body { padding: 1.45rem; }
.reviews-section { margin-left: calc((1180px - 100vw) / 2); margin-right: calc((1180px - 100vw) / 2); padding: 6rem max(2rem, calc((100vw - 1180px) / 2)); background: linear-gradient(135deg, #f3ece3, #fbf8f3); }
.review-card { border: 1px solid rgba(185, 144, 87, .12); }

.contact-grid { gap: 1.25rem; }
.contact-info { border-radius: 20px; box-shadow: var(--shadow-sm); padding: 2.5rem; }
.map-container { border-radius: 20px; box-shadow: var(--shadow-md); }
.floating-contact { position:fixed; z-index:1100; right:max(1rem, env(safe-area-inset-right)); bottom:max(1rem, env(safe-area-inset-bottom)); display:flex; flex-direction:column; align-items:flex-end; gap:.65rem; }
.floating-contact-actions { display:grid; gap:.55rem; pointer-events:none; opacity:0; transform:translateY(12px) scale(.96); transform-origin:bottom right; transition:opacity .22s ease,transform .22s ease; }
.floating-contact:hover .floating-contact-actions, .floating-contact:focus-within .floating-contact-actions, .floating-contact.is-open .floating-contact-actions { pointer-events:auto; opacity:1; transform:translateY(0) scale(1); }
.floating-contact-action { display:inline-flex; align-items:center; justify-content:flex-start; gap:.55rem; min-height:44px; padding:.62rem .9rem; border:1px solid rgba(255,255,255,.46); border-radius:999px; color:#fff; font:700 .7rem/1 var(--font-sans); text-decoration:none; box-shadow:0 10px 28px rgba(20,17,24,.24); backdrop-filter:blur(16px); -webkit-backdrop-filter:blur(16px); }
.floating-contact-action.call { background:rgba(48,42,52,.92); }.floating-contact-action.viber { background:rgba(103,77,160,.94); }.floating-contact-action:hover { color:#fff; transform:translateX(-2px); }
.floating-contact-trigger { display:grid; width:56px; height:56px; place-items:center; border:1px solid rgba(255,255,255,.62); border-radius:50%; background:linear-gradient(145deg,#d8b16e,#a97a38); color:#2c2027; box-shadow:0 14px 32px rgba(45,30,30,.3), inset 0 1px 0 rgba(255,255,255,.55); font-size:1.12rem; cursor:pointer; transition:transform .2s ease, box-shadow .2s ease; }.floating-contact-trigger:hover,.floating-contact.is-open .floating-contact-trigger { transform:scale(1.06); box-shadow:0 18px 38px rgba(45,30,30,.4),inset 0 1px 0 rgba(255,255,255,.6); }
@media (max-width:600px) { .floating-contact { right:max(.75rem, env(safe-area-inset-right)); bottom:max(.75rem, env(safe-area-inset-bottom)); }.floating-contact:hover .floating-contact-actions { pointer-events:none; opacity:0; transform:translateY(12px) scale(.96); }.floating-contact:focus-within .floating-contact-actions,.floating-contact.is-open .floating-contact-actions { pointer-events:auto; opacity:1; transform:translateY(0) scale(1); }.floating-contact-action { min-height:46px; padding:.68rem .9rem; }.floating-contact-trigger { width:54px; height:54px; } }
.main-footer { margin-top: 0; padding-top: 1rem; }
.footer-cta { padding: 5rem 1rem; }

@media (max-width: 900px) {
    main { padding-left: 1.25rem; padding-right: 1.25rem; }
    .hero-content { padding-left: 1.25rem; padding-right: 1.25rem; }
    .category-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .category-card-caption h3 { font-size: 1.2rem; }
    .reviews-section { margin-left: -1.25rem; margin-right: -1.25rem; padding-left: 1.25rem; padding-right: 1.25rem; }
}
@media (max-width: 680px) {
    main { padding-top: 4.5rem; }
    section { margin-bottom: 5rem; }
    .hero-section { height: 78vh; min-height: 570px; }
    .hero-overlay { background: linear-gradient(180deg, rgba(28,21,17,.3), rgba(28,21,17,.76)); }
    .hero-content { padding-top: 7rem; text-align: center; }
    .hero-display { margin-left: auto; margin-right: auto; font-size: clamp(2.9rem, 13vw, 4.8rem); }
    .hero-tagline { margin-left: auto; margin-right: auto; font-size: .95rem; }
    .hero-cta-row { justify-content: center; }
    .scroll-cue { right: 50%; transform: translateX(50%); }
    .category-grid { grid-template-columns: 1fr; max-width: 460px; margin: 0 auto; }
    .category-card { aspect-ratio: 16 / 10; }
    .category-card-caption { padding-top: 4rem; }
    .section-heading { margin-bottom: 2.4rem; }
    .section-heading h2::before { font-size: .58rem; }
    .booking-container { padding: 1.25rem; }
}

/* =================================================================
   FROSTED GOLD EDITION
   Richer contrast, glass surfaces and a very light ambient shimmer.
   ================================================================= */
:root {
    --gold: #d3a45f;
    --gold-dark: #93652e;
    --gold-pale: #f5dfb4;
    --ink: #281f2b;
    --ink-soft: #6f6471;
    --cream: #f9f7fb;
    --cream-deep: #eee8f2;
    --line: rgba(255,255,255,.52);
    --dark: #211a2c;
    --plum: #392744;
    --sage: #b7c9bd;
    --glass: rgba(255,255,255,.52);
    --glass-strong: rgba(255,255,255,.7);
    --glass-border: rgba(255,255,255,.76);
    --shadow-glass: 0 24px 60px rgba(49,32,67,.14), inset 0 1px 0 rgba(255,255,255,.68);
}

body {
    position: relative;
    isolation: isolate;
    background: radial-gradient(circle at 8% 11%, rgba(232,210,180,.34), transparent 29rem), radial-gradient(circle at 90% 43%, rgba(191,213,201,.28), transparent 32rem), linear-gradient(135deg, #fbf9fc 0%, #f7f2f8 48%, #f9f7f5 100%);
}

/* Ambient gold dust: deliberately soft, slow and pointer-free. */
body::after {
    content: '';
    position: fixed;
    inset: 0;
    z-index: 9999;
    pointer-events: none;
    opacity: .22;
    background-image: radial-gradient(circle, rgba(255,231,181,.95) 0 .7px, transparent 1.7px), radial-gradient(circle, rgba(211,164,95,.8) 0 .9px, transparent 1.9px), radial-gradient(circle, rgba(255,255,255,.9) 0 .65px, transparent 1.7px), radial-gradient(circle, rgba(229,190,119,.7) 0 1.1px, transparent 2.2px);
    background-size: 237px 283px, 347px 311px, 421px 379px, 563px 487px;
    background-position: 21px 48px, 119px 172px, 267px 93px, 71px 311px;
    mix-blend-mode: screen;
    filter: blur(.12px);
    animation: gold-dust 36s ease-in-out infinite alternate, gold-twinkle 9s ease-in-out infinite;
}
@keyframes gold-dust { from { transform: translate3d(-.35%, -.25%, 0); } to { transform: translate3d(.35%, .25%, 0); } }
@keyframes gold-twinkle { 0%, 100% { opacity: .14; } 42% { opacity: .23; } 53% { opacity: .34; } 62% { opacity: .17; } }

.site-header { background: rgba(250,248,252,.7); border-bottom: 1px solid rgba(211,164,95,.24); box-shadow: 0 8px 30px rgba(49,32,67,.07); }
.nav-pill li a:hover { background: rgba(211,164,95,.14); }
.btn-gold { background: linear-gradient(135deg, #e1b873, #b77f3e); border-color: rgba(255,255,255,.3); box-shadow: 0 10px 24px rgba(147,101,46,.22), inset 0 1px 0 rgba(255,255,255,.32); }
.btn-gold:hover { background: linear-gradient(135deg, #e8c483, #a96d31); box-shadow: 0 14px 30px rgba(147,101,46,.3); }

.hero-section { background: var(--plum); }
.hero-section::after { content: ''; position: absolute; inset: 0; background: radial-gradient(circle at 75% 30%, rgba(211,164,95,.24), transparent 25rem); pointer-events: none; }
.hero-overlay { background: linear-gradient(110deg, rgba(33,26,44,.82), rgba(47,31,57,.45) 52%, rgba(33,26,44,.3)); }
.hero-display em { color: #f4d7a5; text-shadow: 0 0 30px rgba(245,223,180,.24); }

.category-card, .booking-container, .service-card, .calendar, .contact-info, .fb-card, .update-card, .review-card {
    background: linear-gradient(145deg, rgba(255,255,255,.72), rgba(255,255,255,.38));
    border: 1px solid var(--glass-border);
    box-shadow: var(--shadow-glass);
    backdrop-filter: blur(18px) saturate(125%);
    -webkit-backdrop-filter: blur(18px) saturate(125%);
}
.category-card { box-shadow: 0 22px 50px rgba(49,32,67,.16), inset 0 1px 0 rgba(255,255,255,.4); }
.category-card::after { content: ''; position: absolute; inset: 0; border-radius: inherit; border: 1px solid rgba(255,255,255,.18); pointer-events: none; }
.category-card-caption { background: linear-gradient(180deg, transparent, rgba(33,26,44,.8)); }

.booking-section { position: relative; }
.booking-section::before { content: ''; position: absolute; width: 240px; height: 240px; top: -4rem; left: -5rem; border-radius: 50%; background: rgba(183,201,189,.3); filter: blur(55px); pointer-events: none; }
.booking-container { position: relative; overflow: hidden; border-radius: 28px; }
.booking-selected-service { display: flex; align-items: center; gap: .8rem; margin: -1rem auto 1.25rem; padding: .8rem 1rem; border: 1px solid rgba(211,164,95,.3); border-radius: 14px; background: rgba(255,255,255,.46); color: var(--ink-soft); font-size: .8rem; }.booking-selected-service strong { color: var(--ink); font-size: .95rem; }.booking-selected-service span:last-child { margin-left: auto; }.booking-selected-label { color: var(--gold-dark); font-size: .66rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.booking-container::after { content: ''; position: absolute; width: 230px; height: 230px; right: -90px; bottom: -110px; border-radius: 50%; background: rgba(211,164,95,.2); filter: blur(25px); pointer-events: none; }
.booking-steps { border-bottom-color: rgba(147,101,46,.2); }
.booking-steps .step-num { background: rgba(255,255,255,.65); border: 1px solid rgba(211,164,95,.28); }
.booking-steps .step.active .step-num, .booking-steps .step.completed .step-num { background: linear-gradient(135deg, #e0b774, #a96d31); box-shadow: 0 5px 15px rgba(147,101,46,.24); }
.category-filter-btn, .time-slot, #booking-form input { background: rgba(255,255,255,.66); border-color: rgba(255,255,255,.8); box-shadow: inset 0 1px 0 rgba(255,255,255,.6); }
.category-filter-btn.active, .time-slot.selected { background: linear-gradient(135deg, #d8ad6b, #aa7135); border-color: transparent; box-shadow: 0 7px 18px rgba(147,101,46,.2); }
.service-card.selected { box-shadow: 0 0 0 2px rgba(211,164,95,.55), var(--shadow-glass); }

.gallery-slide { box-shadow: var(--shadow-glass); }
.gallery-arrow { background: rgba(255,255,255,.72); border-color: var(--glass-border); backdrop-filter: blur(12px); }
.why-band { background: radial-gradient(circle at 82% 12%, rgba(211,164,95,.3), transparent 24rem), linear-gradient(135deg, #211a2c, #392744); }
.reviews-section { background: linear-gradient(135deg, rgba(238,232,242,.8), rgba(245,234,215,.78)); }
.reviews-summary, .review-stars, .update-date { color: var(--gold-dark); }
.map-container { border: 1px solid var(--glass-border); }

@media (max-width: 680px) {
    body::after { opacity: .2; background-size: 181px 219px, 273px 251px, 337px 304px, 451px 389px; }
    .hero-section::after { background: radial-gradient(circle at 50% 22%, rgba(211,164,95,.22), transparent 17rem); }
    .booking-container { border-radius: 22px; }
    .booking-steps { gap: .7rem; }
    .booking-steps .step-num { width: 30px; height: 30px; }
    .calendar { border-radius: 17px; }
}
@media (prefers-reduced-motion: reduce) { body::after { animation: none; opacity: .18; } }

/* Signature gallery treatment */
.gallery-section {
    position: relative;
    isolation: isolate;
    margin-left: calc((1180px - 100vw) / 2);
    margin-right: calc((1180px - 100vw) / 2);
    padding: 6rem max(2rem, calc((100vw - 1180px) / 2));
    background: radial-gradient(circle at 86% 12%, rgba(211,164,95,.2), transparent 25rem), linear-gradient(135deg, #251c31, #3d2a49 54%, #241c2d);
    border-radius: 30px;
    overflow: hidden;
}
.gallery-section::before { content: ''; position: absolute; inset: 0; z-index: -1; opacity: .25; background: repeating-linear-gradient(115deg, transparent 0 34px, rgba(255,255,255,.06) 35px, transparent 36px 70px); }
.gallery-section .section-heading h2 { color: #fbf5ec; }
.gallery-section .section-heading h2::before { color: var(--gold-pale); }
.gallery-section .section-heading h2::after { background: var(--gold-pale); }
.gallery-filters { display: flex; justify-content: center; flex-wrap: wrap; gap: .45rem; margin: -1.4rem auto 1.8rem; }
.gallery-filter { padding: .5rem .9rem; border: 1px solid rgba(245,223,180,.32); border-radius: 999px; background: rgba(255,255,255,.07); color: rgba(255,255,255,.72); font: 600 .7rem/1 var(--font-sans); letter-spacing: .08em; text-transform: uppercase; cursor: pointer; transition: all .2s ease; }
.gallery-filter:hover, .gallery-filter.active { color: #2b2130; background: var(--gold-pale); border-color: var(--gold-pale); }
.gallery-container { max-width: 1120px; margin: 0 auto; }
.gallery-scroller { padding: .6rem .25rem 1.8rem; scrollbar-width: none; }
.gallery-scroller::-webkit-scrollbar { display: none; }
.gallery-track { align-items: center; gap: 1.15rem; padding: 1rem .25rem 1.25rem; counter-reset: gallery-card; }
.gallery-slide {
    position: relative;
    width: 300px;
    height: 370px;
    margin: 0;
    border: 1px solid rgba(245,223,180,.42);
    border-radius: 20px 20px 8px 20px;
    box-shadow: 0 20px 35px rgba(12,8,18,.3), inset 0 0 0 5px rgba(255,255,255,.08);
    overflow: hidden;
    counter-increment: gallery-card;
    background: #2c2037;
    transform: rotate(-1deg);
    transition: transform .45s cubic-bezier(.2,.75,.25,1), box-shadow .45s ease;
    scroll-snap-align: center;
}
.gallery-slide:nth-child(2n) { height: 300px; border-radius: 8px 20px 20px 20px; transform: rotate(1.2deg); }
.gallery-slide:nth-child(3n) { height: 410px; border-radius: 20px 8px 20px 20px; transform: rotate(-.5deg); }
.gallery-slide::before { content: attr(data-gallery-reference); position: absolute; top: .8rem; left: .85rem; z-index: 2; min-width: 32px; height: 32px; padding: 0 .55rem; display: grid; place-items: center; border: 1px solid rgba(245,223,180,.7); border-radius: 999px; color: #f5dfb4; background: rgba(37,28,49,.52); font: 700 .62rem/1 var(--font-sans); letter-spacing: .04em; backdrop-filter: blur(8px); }
.gallery-slide::after { content: ''; position: absolute; inset: 0; pointer-events: none; background: linear-gradient(145deg, rgba(255,255,255,.22), transparent 18%, transparent 65%, rgba(14,8,20,.4)); opacity: .78; transition: opacity .4s ease; }
.gallery-slide img { position: relative; z-index: 1; width: 100%; height: 100%; object-fit: cover; filter: saturate(.9) contrast(1.03); transition: transform .7s cubic-bezier(.2,.75,.25,1), filter .5s ease; }
.gallery-slide:hover { z-index: 3; transform: rotate(0) translateY(-10px) scale(1.025); box-shadow: 0 28px 55px rgba(12,8,18,.43), 0 0 0 1px rgba(245,223,180,.62); }
.gallery-slide:hover img { transform: scale(1.09); filter: saturate(1.08) contrast(1.05); }
.gallery-slide:hover::after { opacity: .4; }
.gallery-arrow { color: #f5dfb4; background: rgba(255,255,255,.1); border-color: rgba(245,223,180,.42); box-shadow: none; backdrop-filter: blur(12px); }
.gallery-arrow:hover { color: #fff; background: rgba(211,164,95,.2); border-color: var(--gold-pale); }

@media (max-width: 1024px) {
    .gallery-section { margin-left: -1.25rem; margin-right: -1.25rem; padding-left: 1.25rem; padding-right: 1.25rem; }
}
@media (max-width: 600px) {
    .gallery-section { margin-left: -.85rem; margin-right: -.85rem; padding: 4.5rem .85rem; border-radius: 22px; }
    .gallery-filters { justify-content: flex-start; flex-wrap: nowrap; overflow-x: auto; margin-bottom: 1.2rem; padding-bottom: .35rem; scrollbar-width: none; }.gallery-filters::-webkit-scrollbar { display: none; }.gallery-filter { flex: 0 0 auto; }
    .gallery-container { position: relative; display: block; width: 100%; }
    .gallery-container .gallery-scroller { width: 100%; }
    .gallery-container .gallery-arrow { position: absolute; top: 50%; z-index: 5; transform: translateY(-50%); }
    .gallery-container .gallery-arrow:hover { transform: translateY(-50%) scale(1.05); }
    .gallery-container .gallery-arrow.prev { left: .35rem; }
    .gallery-container .gallery-arrow.next { right: .35rem; }
    .gallery-track { padding-left: calc((100% - 74vw) / 2); padding-right: calc((100% - 74vw) / 2); }
    .gallery-slide, .gallery-slide:nth-child(2n), .gallery-slide:nth-child(3n) { width: 74vw; height: 285px; border-radius: 18px 18px 7px 18px; transform: rotate(-.5deg); }
    .gallery-slide:nth-child(2n) { transform: rotate(.7deg); }
    .gallery-arrow { width: 36px; height: 36px; flex-shrink: 0; }
    .gallery-scroller { padding-bottom: 1.2rem; scroll-snap-type: x proximity; }
}

.lightbox { background: rgba(24,16,31,.82); backdrop-filter: blur(18px); -webkit-backdrop-filter: blur(18px); }
.lightbox img { max-width: min(88vw, 980px); max-height: 82vh; border: 1px solid rgba(245,223,180,.55); border-radius: 18px; box-shadow: 0 30px 90px rgba(0,0,0,.45), 0 0 0 8px rgba(255,255,255,.06); }
.close-lightbox { width: 44px; height: 44px; top: 1.25rem; right: 1.25rem; display: grid; place-items: center; border: 1px solid rgba(245,223,180,.48); border-radius: 50%; color: var(--gold-pale); background: rgba(255,255,255,.08); }
.lightbox-nav { position: absolute; top: 50%; transform: translateY(-50%); z-index: 2; width: 52px; height: 52px; display: grid; place-items: center; border: 1px solid rgba(245,223,180,.48); border-radius: 50%; color: var(--gold-pale); background: rgba(255,255,255,.09); cursor: pointer; backdrop-filter: blur(10px); transition: background .2s ease, transform .2s ease; }
.lightbox-nav:hover { background: rgba(211,164,95,.28); transform: translateY(-50%) scale(1.06); }
.lightbox-prev { left: 2rem; }.lightbox-next { right: 2rem; }
.update-card { cursor: pointer; }
.update-card:focus-visible { outline: 2px solid var(--gold); outline-offset: 5px; }
.update-open-hint { display: inline-flex; align-items: center; gap: .45rem; margin-top: .9rem; color: var(--gold-dark); font-size: .74rem; font-weight: 700; letter-spacing: .09em; text-transform: uppercase; }
.update-modal-content { max-width: 720px; padding: 1rem 1rem 2rem; text-align: left; }
.update-modal-content #update-modal-img { width: 100%; max-height: 330px; object-fit: cover; border-radius: 17px; margin-bottom: 1.5rem; }
.update-modal-content h2 { padding: 0 1rem; font-size: clamp(1.7rem, 4vw, 2.5rem); }
.update-modal-kicker, #update-modal-body { padding-left: 1rem; padding-right: 1rem; }
.update-modal-kicker { margin-bottom: .45rem; color: var(--gold-dark); font-size: .72rem; font-weight: 700; letter-spacing: .13em; text-transform: uppercase; }
#update-modal-body { color: var(--ink-soft); line-height: 1.8; white-space: pre-line; }
@media (max-width: 600px) { .lightbox-nav { width: 40px; height: 40px; top: auto; bottom: 1.25rem; transform: none; }.lightbox-nav:hover { transform: scale(1.05); }.lightbox-prev { left: 1rem; }.lightbox-next { right: 1rem; }.close-lightbox { top: 1rem; right: 1rem; }.update-modal-content { padding: .7rem .7rem 1.5rem; }.update-modal-content #update-modal-img { max-height: 250px; margin-bottom: 1rem; } }

/* Hero video: a soft frosted lens plus a readable glass content card. */
.hero-media { position: absolute; inset: 0; overflow: hidden; }
.hero-media::after { content: ''; position: absolute; inset: 0; background: rgba(255,255,255,.035); backdrop-filter: blur(2.5px) saturate(112%); -webkit-backdrop-filter: blur(2.5px) saturate(112%); }
.hero-content { position: relative; }
.hero-content::before { content: ''; position: absolute; z-index: -1; inset: 2.5rem auto 1.3rem .65rem; width: min(680px, calc(100% - 1.3rem)); border: 1px solid rgba(255,255,255,.25); border-radius: 26px; background: linear-gradient(135deg, rgba(255,255,255,.14), rgba(255,255,255,.035)); box-shadow: inset 0 1px 0 rgba(255,255,255,.24), 0 24px 50px rgba(20,12,27,.12); backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px); }
@media (max-width: 680px) { .hero-media::after { backdrop-filter: blur(1.7px) saturate(110%); -webkit-backdrop-filter: blur(1.7px) saturate(110%); }.hero-content::before { inset: 5.5rem .55rem 1rem; width: calc(100% - 1.1rem); border-radius: 22px; } }

/* Frosted dialog and booking feedback states */
.modal { background: rgba(33,26,44,.48); backdrop-filter: blur(9px); -webkit-backdrop-filter: blur(9px); }
.modal-content { background: linear-gradient(145deg, rgba(255,255,255,.82), rgba(247,241,249,.64)); border: 1px solid rgba(255,255,255,.82); border-radius: 24px; box-shadow: 0 28px 80px rgba(33,26,44,.28), inset 0 1px 0 rgba(255,255,255,.8); backdrop-filter: blur(22px) saturate(130%); -webkit-backdrop-filter: blur(22px) saturate(130%); }
.close-button { color: var(--gold-dark); width: 34px; height: 34px; display: grid; place-items: center; border-radius: 50%; background: rgba(255,255,255,.5); }
.close-button:hover { background: rgba(211,164,95,.16); color: var(--ink); }
.service-card-buttons .glass-button { background: rgba(255,255,255,.58); border-color: rgba(255,255,255,.8); }
.service-card-buttons .book-now-btn { background: linear-gradient(135deg, #d8ad6b, #aa7135); box-shadow: 0 7px 16px rgba(147,101,46,.2); }
#booking-form button[type="submit"] { background: linear-gradient(135deg, #d8ad6b, #aa7135); box-shadow: 0 10px 24px rgba(147,101,46,.2); }
#booking-form button[type="submit"]:disabled { opacity: .72; cursor: wait; }
.wizard-nav .btn-outline { background: rgba(255,255,255,.55); border-color: rgba(255,255,255,.8); }

/* Mobile stability pass */
@media (max-width: 1024px) {
    :root { --header-h: 64px; }
    .site-header .nav-pill-wrap { position: relative; }
    .site-header .main-nav .nav-links:not(.active) { display: none !important; }
    .site-header .main-nav .nav-links.active { display: flex !important; }
    .site-header .nav-pill { top: 100%; max-height: calc(100vh - 64px); overflow-y: auto; }
    .site-header .nav-pill li a { padding: .9rem 1rem; }
}

@media (max-width: 600px) {
    body { overflow-x: hidden; }
    main { width: 100%; max-width: 100%; padding: 4.25rem .85rem 0; }
    section { width: 100%; margin-bottom: 4.25rem; }
    .hero-section { width: 100vw; min-height: 590px; }
    .header-inner { padding-left: .85rem; padding-right: .85rem; }
    .hero-content { padding-left: 1rem; padding-right: 1rem; }
    .hero-display { max-width: 350px; }
    .booking-container { width: 100%; max-width: 100%; padding: 1rem .75rem; }
    .booking-steps { width: 100%; justify-content: space-between; padding-left: .15rem; padding-right: .15rem; }
    .service-selection-grid { grid-template-columns: 1fr; gap: .8rem; }
    .service-card { min-width: 0; padding: .9rem; }
    .service-card img { height: 150px; }
    .category-filters { justify-content: flex-start; overflow-x: auto; flex-wrap: nowrap; padding: .15rem .1rem .5rem; scrollbar-width: none; }
    .category-filters::-webkit-scrollbar { display: none; }
    .category-filter-btn { white-space: nowrap; flex: 0 0 auto; }
    .calendar { width: 100%; }
    .current-date { padding: .85rem .7rem; }
    .week-days { padding-left: 0; padding-right: 0; font-size: .62rem; }
    .weeks { padding-left: .15rem; padding-right: .15rem; }
    .weeks span { font-size: .78rem; margin: 1px; }
    .time-slots-grid { grid-template-columns: repeat(3, 1fr); gap: .45rem; }
    #booking-form { width: 100%; }
    .reviews-section { margin-left: -.85rem; margin-right: -.85rem; padding-left: .85rem; padding-right: .85rem; }
    .gallery-container { gap: .45rem; }
    .gallery-slide { width: min(76vw, 290px); height: 210px; }
    .gallery-arrow { width: 38px; height: 38px; }
    .modal-content { width: calc(100% - 1.5rem); margin: .75rem; padding: 1.2rem; }
}

@media (max-width: 380px) {
    .header-brand img { height: 34px; }
    .brand-line { display: none; }
    .hero-display { font-size: 2.65rem; }
    .booking-steps .step-num { width: 27px; height: 27px; }
    .time-slots-grid { grid-template-columns: repeat(2, 1fr); }
}

/* ---------- Why band (dark) ---------- */
.why-band {
    position: relative;
    isolation: isolate;
    overflow: hidden;
    background: radial-gradient(circle at 8% 12%, rgba(229,188,119,.24), transparent 24rem), radial-gradient(circle at 92% 88%, rgba(154,112,172,.2), transparent 22rem), linear-gradient(135deg,#21182b 0%,#38243f 58%,#261b30 100%);
    color: var(--cream);
    border: 1px solid rgba(245,223,180,.16);
    border-radius: 30px;
    padding: clamp(3rem,7vw,6rem) clamp(1.4rem,6vw,5rem);
    box-shadow: 0 28px 70px rgba(38,24,47,.24), inset 0 1px 0 rgba(255,255,255,.08);
}
.why-band::before { content:'AB'; position:absolute; right:-.02em; bottom:-.34em; z-index:-1; color:rgba(255,255,255,.025); font:700 clamp(13rem,34vw,28rem)/1 var(--serif); letter-spacing:-.12em; pointer-events:none; }
.why-band::after { content:''; position:absolute; inset:0; z-index:-1; opacity:.2; background:repeating-linear-gradient(115deg,transparent 0 48px,rgba(255,255,255,.045) 49px,transparent 50px 98px); pointer-events:none; }

.why-band-inner { max-width:1080px; margin:0 auto; display:grid; grid-template-columns:minmax(0,.9fr) minmax(440px,1.35fr); gap:clamp(2.5rem,7vw,6rem); align-items:center; }
.why-copy { text-align:left; }
.why-eyebrow { margin:0 0 .85rem; color:#e6c992; font-size:.69rem; font-weight:700; letter-spacing:.18em; text-transform:uppercase; }

.why-band h2 {
    color: var(--cream);
    font-size:clamp(2.35rem,5vw,4.2rem);
    line-height:1.04;
    margin:0 0 1.25rem;
}
.why-intro { max-width:480px; margin:0 0 1.8rem; color:rgba(250,247,242,.72); font-size:.95rem; line-height:1.85; }
.why-services-link { display:inline-flex; align-items:center; gap:.65rem; color:#f0d7a8; text-decoration:none; font-size:.75rem; font-weight:700; letter-spacing:.1em; text-transform:uppercase; }
.why-services-link i { transition:transform .2s ease; }.why-services-link:hover i { transform:translateX(5px); }

.why-grid {
    display: grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:.85rem;
    margin:0;
}

.why-item {
    display: flex;
    align-items:flex-start;
    gap:.9rem;
    min-height:150px;
    padding:1.25rem;
    color:rgba(250,247,242,.88);
    text-align:left;
    border:1px solid rgba(255,255,255,.1);
    border-radius:18px;
    background:linear-gradient(145deg,rgba(255,255,255,.09),rgba(255,255,255,.035));
    box-shadow:inset 0 1px 0 rgba(255,255,255,.08);
    backdrop-filter:blur(12px);
    transition:transform .25s ease,border-color .25s ease,background .25s ease;
}
.why-item:hover { transform:translateY(-4px); border-color:rgba(230,201,146,.34); background:rgba(255,255,255,.1); }
.why-item div { min-width:0; }.why-item strong { display:block; margin:0 0 .42rem; color:#fff8eb; font:600 1.05rem/1.3 var(--serif); }.why-item span { display:block; color:rgba(250,247,242,.63); font-size:.72rem; font-weight:400; line-height:1.65; }

.why-item i { flex:0 0 38px; display:grid; place-items:center; width:38px; height:38px; color:#e8ca91; font-size:1rem; border:1px solid rgba(232,202,145,.25); border-radius:50%; background:rgba(232,202,145,.08); }

.why-review-link {
    display: inline-block;
    color: var(--gold-pale);
    text-decoration: none;
    font-size: 0.88rem;
    font-weight: 600;
    letter-spacing: 0.05em;
    border: 1px solid rgba(233, 220, 195, 0.4);
    border-radius: 999px;
    padding: 0.7rem 1.7rem;
    transition: all 0.25s ease;
}

.why-review-link:hover { background: rgba(233, 220, 195, 0.1); border-color: var(--gold-pale); }

@media (max-width: 680px) {
    .why-band { border-radius:23px; }
    .why-band-inner { grid-template-columns:1fr; gap:2.25rem; }
    .why-copy { text-align:center; }.why-intro { margin-left:auto; margin-right:auto; }
    .why-grid { grid-template-columns:1fr; }
    .why-item { min-height:0; }
}

/* ---------- Facebook feed ---------- */
.fb-follow-link {
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
    margin-top: 0.6rem;
    font-size: 0.86rem;
    font-weight: 600;
    color: var(--gold-dark);
    text-decoration: none;
}

.fb-follow-link:hover { text-decoration: underline; }

.fb-feed-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(270px, 1fr));
    gap: 1.5rem;
}

.fb-card {
    background: var(--white);
    border: 1px solid var(--line);
    border-radius: var(--radius);
    box-shadow: var(--shadow-sm);
    overflow: hidden;
    display: flex;
    flex-direction: column;
    transition: box-shadow 0.25s ease;
}

.fb-card:hover { box-shadow: var(--shadow-md); }

.fb-card-media {
    position: relative;
    display: block;
    height: 190px;
}

.fb-card-media img { width: 100%; height: 100%; object-fit: cover; }

.fb-play-icon {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(33, 26, 21, 0.3);
    color: var(--white);
    font-size: 1.4rem;
}

.fb-card-body {
    padding: 1.1rem 1.25rem;
    display: flex;
    flex-direction: column;
    flex-grow: 1;
}

.fb-card-text {
    font-size: 0.9rem;
    color: var(--ink-soft);
    flex-grow: 1;
    margin-bottom: 0.9rem;
}

.fb-card-footer {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding-top: 0.7rem;
    border-top: 1px solid var(--line);
    font-size: 0.78rem;
    color: var(--ink-soft);
}

.fb-card-footer a { color: var(--gold-dark); font-size: 1rem; }

/* ---------- Contact ---------- */
.contact-grid {
    display: grid;
    grid-template-columns: 1fr 1.35fr;
    gap: 1.5rem;
    align-items: stretch;
}

.contact-info {
    background: var(--white);
    border: 1px solid var(--line);
    border-radius: var(--radius);
    box-shadow: var(--shadow-sm);
    padding: 2.25rem;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.contact-info p {
    display: flex;
    align-items: baseline;
    gap: 0.8rem;
    margin: 0 0 1rem;
    font-size: 0.97rem;
}

.contact-info i {
    color: var(--gold);
    width: 18px;
    text-align: center;
    font-size: 0.9rem;
}

.contact-link { color: var(--ink); text-decoration: none; }
.contact-link:hover { color: var(--gold-dark); }

.social-review-links {
    margin-top: 1.25rem;
    padding-top: 1.25rem;
    border-top: 1px solid var(--line);
    font-size: 0.92rem;
}

.map-container {
    border-radius: var(--radius);
    overflow: hidden;
    box-shadow: var(--shadow-sm);
    min-height: 300px;
}

.map-container iframe {
    width: 100%;
    height: 100%;
    min-height: 300px;
    border: 0;
    display: block;
}

@media (max-width: 800px) {
    .contact-grid { grid-template-columns: 1fr; }
}

/* ---------- Footer ---------- */
.main-footer {
    background: var(--dark);
    color: var(--cream);
    margin-top: 5rem;
    padding: 0 1.5rem 2rem;
}

.footer-cta {
    text-align: center;
    padding: 3.5rem 1rem;
    border-bottom: 1px solid rgba(250, 247, 242, 0.12);
    margin-bottom: 2.75rem;
}

.footer-cta h2 {
    color: var(--cream);
    font-size: clamp(1.5rem, 3.5vw, 2.2rem);
    margin-bottom: 1.6rem;
}

.footer-grid {
    max-width: 1050px;
    margin: 0 auto 2.25rem;
    display: grid;
    grid-template-columns: 1.1fr repeat(3, 1fr);
    gap: 2rem;
}

.footer-brand { display: flex; align-items: flex-start; }

.footer-logo { height: 52px; width: auto; }

.footer-grid h4 {
    color: var(--gold-pale);
    font-family: var(--font-sans);
    font-size: 0.78rem;
    font-weight: 700;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    margin: 0 0 0.85rem;
}

.footer-grid p {
    margin: 0 0 0.4rem;
    font-size: 0.88rem;
    line-height: 1.7;
    color: rgba(250, 247, 242, 0.8);
}

.footer-grid a {
    color: rgba(250, 247, 242, 0.8);
    text-decoration: none;
}

.footer-grid a:hover { color: var(--gold-pale); }

.footer-copy {
    text-align: center;
    max-width: 1050px;
    margin: 0 auto;
    padding-top: 1.4rem;
    border-top: 1px solid rgba(250, 247, 242, 0.12);
    font-size: 0.78rem;
    color: rgba(250, 247, 242, 0.55);
}

@media (max-width: 800px) {
    .footer-grid { grid-template-columns: repeat(2, 1fr); text-align: center; }
    .footer-brand { justify-content: center; }
}

@media (max-width: 460px) {
    .footer-grid { grid-template-columns: 1fr; }
}

/* ---------- Modals & lightbox ---------- */
.modal {
    display: none;
    position: fixed;
    inset: 0;
    z-index: 1100;
    background: rgba(33, 26, 21, 0.55);
    overflow: auto;
}

.modal-content {
    position: relative;
    background: var(--white);
    color: var(--ink);
    border-radius: var(--radius);
    box-shadow: var(--shadow-md);
    max-width: 480px;
    width: calc(100% - 2rem);
    margin: 12vh auto;
    padding: 2rem;
    text-align: center;
    animation: modal-in 0.3s ease;
}

@keyframes modal-in {
    from { transform: translateY(-18px); opacity: 0; }
    to { transform: translateY(0); opacity: 1; }
}

.modal-content .icon { font-size: 44px; margin-bottom: 0.8rem; }
.modal-content .icon.success { color: #7a9b6d; }
.modal-content .icon.error { color: #c0392b; }

.modal-content img { border-radius: 10px; }

.close-button {
    position: absolute;
    top: 0.7rem; right: 1rem;
    font-size: 1.6rem;
    font-weight: 600;
    color: var(--ink-soft);
    cursor: pointer;
    line-height: 1;
}

.close-button:hover { color: var(--ink); }

.lightbox {
    display: none;
    position: fixed;
    inset: 0;
    z-index: 1200;
    background: rgba(33, 26, 21, 0.9);
    justify-content: center;
    align-items: center;
}

.lightbox img {
    max-width: 92%;
    max-height: 84%;
    border-radius: 8px;
}

.close-lightbox {
    position: absolute;
    top: 1.5rem; right: 2rem;
    color: var(--white);
    font-size: 2rem;
    cursor: pointer;
}

/* ---------- Language toggle ---------- */
.lang-switcher { display: flex; align-items: center; }

.lang-switcher .button {
    position: relative;
    width: 64px;
    height: 30px;
    overflow: hidden;
    border-radius: 999px;
}

.lang-switcher .checkbox {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    margin: 0;
    opacity: 0;
    cursor: pointer;
    z-index: 3;
}

.lang-switcher .layer {
    position: absolute;
    inset: 0;
    background: var(--cream-deep);
    border: 1px solid var(--line);
    border-radius: 999px;
    z-index: 1;
}

.lang-switcher .knobs { position: absolute; inset: 0; z-index: 2; }

.lang-switcher .knobs::before {
    content: 'EN';
    position: absolute;
    top: 3px; left: 3px;
    width: 24px; height: 24px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 9px;
    font-weight: 700;
    color: var(--white);
    background: var(--gold);
    border-radius: 50%;
    transition: left 0.25s ease;
}

.lang-switcher .checkbox:checked + .knobs::before {
    content: 'BG';
    left: 37px;
}

/* ---------- Scroll reveal ---------- */
html.js .reveal {
    opacity: 0;
    transform: translateY(20px);
    transition: opacity 0.65s ease, transform 0.65s ease;
}

html.js .reveal.in-view { opacity: 1; transform: translateY(0); }

/* ---------- Scroll-controlled cinematic hero ---------- */
html.js .hero-scroll-stage.has-scroll-video {
    position: relative;
    height: 185vh;
    background: var(--plum, #33263d);
}

html.js .hero-scroll-stage.has-scroll-video .hero-scroll-controlled {
    position: sticky;
    top: 0;
    width: 100%;
    height: 100vh;
    min-height: 600px;
}

.hero-scroll-controlled .hero-media video {
    transform: scale(calc(1.025 + (var(--scroll-progress, 0) * .045)));
    filter: brightness(1.08) saturate(1.12) contrast(1.025);
    will-change: transform;
}

.hero-scroll-controlled .hero-overlay {
    background: linear-gradient(105deg, rgba(33,26,44,.48) 0%, rgba(37,28,47,.2) 52%, rgba(24,18,31,.08) 100%);
    opacity: calc(1 - (var(--scroll-progress, 0) * .28));
}

.hero-scroll-controlled .hero-media::after {
    background: rgba(255,255,255,.012);
    backdrop-filter: blur(.55px) saturate(108%);
    -webkit-backdrop-filter: blur(.55px) saturate(108%);
}

.hero-scroll-controlled .hero-content::before {
    background: linear-gradient(135deg, rgba(35,25,43,.27), rgba(255,255,255,.025));
    border-color: rgba(255,255,255,.2);
    backdrop-filter: blur(7px);
    -webkit-backdrop-filter: blur(7px);
}

.hero-scroll-controlled .hero-content {
    transform: translateY(calc(var(--scroll-progress, 0) * -22px));
    opacity: calc(1 - (var(--scroll-progress, 0) * .62));
    will-change: transform, opacity;
}

.hero-scroll-controlled .scroll-cue {
    opacity: calc(1 - (var(--scroll-progress, 0) * 2));
}

@media (max-width: 700px) {
    html.js .hero-scroll-stage.has-scroll-video { height: 160vh; }
    html.js .hero-scroll-stage.has-scroll-video .hero-scroll-controlled { min-height: 560px; }
    .hero-scroll-controlled .hero-content { transform: translateY(calc(var(--scroll-progress, 0) * -12px)); }
}

/* ---------- Accessibility ---------- */
a:focus-visible, button:focus-visible, input:focus-visible {
    outline: 2px solid var(--gold);
    outline-offset: 2px;
}

::selection { background: var(--gold-pale); color: var(--ink); }

@media (prefers-reduced-motion: reduce) {
    html { scroll-behavior: auto; }
    .kenburns, .scroll-cue { animation: none; }
    html.js .hero-content > * { animation: none; opacity: 1; transform: none; }
    html.js .reveal { opacity: 1; transform: none; transition: none; }
    *, *::before, *::after { transition-duration: 0.01ms !important; animation-duration: 0.01ms !important; }
    html.js .hero-scroll-stage.has-scroll-video { height: auto; }
    html.js .hero-scroll-stage.has-scroll-video .hero-scroll-controlled { position: relative; height: 88vh; }
    .hero-scroll-controlled .hero-content, .hero-scroll-controlled .hero-media video { transform: none; opacity: 1; }
}

/* ---------- Legacy standalone pages (services.php, contact.php, booking.php) ---------- */
.main-container {
    max-width: 1140px;
    margin: 0 auto;
    padding: calc(var(--header-h) + 2rem) 1.5rem 3rem;
}

.main-nav > ul {
    list-style: none;
    display: flex;
    gap: 1.5rem;
    margin: 0;
    padding: 0;
}

.services-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(270px, 1fr));
    gap: 1.5rem;
}

.glass-card {
    background: var(--white);
    border: 1px solid var(--line);
    border-radius: var(--radius);
    box-shadow: var(--shadow-sm);
    padding: 1.5rem;
    color: var(--ink);
}

.glass-panel {
    background: var(--white);
    border: 1px solid var(--line);
    border-radius: var(--radius);
    box-shadow: var(--shadow-sm);
    padding: 2rem;
    color: var(--ink);
}
.service-discovery { max-width: 1080px; margin: 2.4rem auto 0; padding: 1.5rem; border: 1px solid rgba(168,117,56,.2); border-radius: 24px; background: linear-gradient(135deg, rgba(255,255,255,.62), rgba(249,239,226,.45)); box-shadow: 0 16px 40px rgba(71,43,65,.08); }
.service-discovery-heading { text-align: center; margin-bottom: 1.1rem; }
.service-discovery-heading .eyebrow { display: block; margin-bottom: .35rem; }
.service-discovery-heading h3 { margin: 0; color: var(--ink); font-family: var(--font-display, Georgia, serif); font-size: clamp(1.3rem, 2.3vw, 1.8rem); }
.service-discovery-heading p { margin: .35rem auto 0; color: var(--ink-soft); font-size: .9rem; }
.service-seo-links { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .7rem; margin: 0; }
.service-seo-links a { display:flex; align-items:center; gap:.7rem; min-height:78px; color:var(--plum,#5b3d5f); text-decoration:none; padding:.8rem .85rem; border:1px solid rgba(168,117,56,.2); border-radius:17px; background:linear-gradient(145deg,rgba(255,255,255,.8),rgba(255,248,239,.52)); box-shadow:0 8px 20px rgba(71,43,65,.06),inset 0 1px 0 rgba(255,255,255,.8); transition:transform .25s ease,box-shadow .25s ease,border-color .25s ease,background .25s ease; }
.service-seo-links a>i { flex:0 0 2.1rem; display:grid; place-items:center; width:2.1rem; height:2.1rem; color:var(--gold-dark,#a87538); font-size:.9rem; border:1px solid rgba(168,117,56,.25); border-radius:50%; background:rgba(234,220,196,.38); }
.service-seo-links a span { display:flex; flex:1; min-width:0; flex-direction:column; gap:.28rem; }
.service-seo-links a strong { overflow:hidden; color:var(--ink); font:600 .78rem/1.25 var(--font-sans); text-overflow:ellipsis; }
.service-seo-links a small { color:var(--gold-dark); font-size:.6rem; font-weight:700; letter-spacing:.08em; text-transform:uppercase; }
.service-seo-links a b { color:var(--gold-dark); font-size:1.1rem; font-weight:400; transition:transform .2s ease; }
.service-seo-links a:hover { transform: translateY(-3px); border-color: rgba(168,117,56,.5); box-shadow: 0 10px 22px rgba(71,43,65,.1); background: rgba(255,255,255,.9); }
.service-seo-links a:hover>b { transform:translateX(4px); }
@media (max-width: 1000px) { .service-seo-links { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 700px) { .service-discovery { margin-inline:.75rem; padding:1rem; border-radius:18px; }.service-seo-links { grid-template-columns:repeat(2,minmax(0,1fr)); } .service-seo-links a { min-height:72px; } }
@media (max-width: 460px) { .service-seo-links { grid-template-columns:1fr; } }

/* Premium service directory: quiet editorial cards instead of a plain link list. */
.service-discovery { position:relative; overflow:hidden; padding:clamp(1.4rem,3vw,2.2rem); background:radial-gradient(circle at 8% 0%,rgba(236,197,125,.2),transparent 34%),linear-gradient(135deg,rgba(255,255,255,.82),rgba(246,231,211,.58)); }
.service-discovery::before { content:''; position:absolute; width:220px; height:220px; right:-90px; top:-120px; border-radius:50%; background:rgba(214,166,92,.16); filter:blur(2px); pointer-events:none; }
.service-discovery-heading { position:relative; }
.service-discovery-heading h3 { letter-spacing:-.02em; }
.service-seo-links { position:relative; grid-template-columns:repeat(3,minmax(0,1fr)); gap:.85rem; }
.service-seo-links a { min-height:92px; padding:1rem; border-radius:20px; background:linear-gradient(145deg,rgba(255,255,255,.9),rgba(251,241,226,.58)); }
.service-seo-links a>i { width:2.45rem; height:2.45rem; flex-basis:2.45rem; font-size:1rem; background:linear-gradient(145deg,rgba(239,218,180,.72),rgba(255,255,255,.55)); box-shadow:inset 0 1px 0 rgba(255,255,255,.9); }
.service-seo-links a strong { font-size:.84rem; }
.service-seo-links a small { font-size:.62rem; }
.service-seo-links a b { opacity:.65; }
@media (max-width:700px) { .service-seo-links { grid-template-columns:repeat(2,minmax(0,1fr)); gap:.65rem; } .service-seo-links a { min-height:86px; padding:.8rem; } }
@media (max-width:460px) { .service-seo-links { grid-template-columns:1fr; } }

/* Optional dark marble mode and the luminous under-card treatment inspired by
   the supplied Card Illumine reference. The glow stays subtle until hover. */
.theme-toggle { display:inline-grid; place-items:center; width:34px; height:34px; padding:0; border:1px solid rgba(176,141,87,.32); border-radius:50%; color:var(--gold-dark); background:rgba(255,255,255,.45); cursor:pointer; transition:transform .2s ease,background .2s ease,color .2s ease; }
.theme-toggle:hover { transform:translateY(-1px); }
body.dark-mode { --gold:#d5aa61; --gold-dark:#e4bd7a; --gold-pale:#5d482b; --ink:#f7efe4; --ink-soft:#c8b9a8; --cream:#171313; --cream-deep:#211b1a; --white:#292221; --line:rgba(232,199,146,.2); --dark:#0d0b0b; --shadow-sm:0 12px 30px rgba(0,0,0,.26); --shadow-md:0 22px 55px rgba(0,0,0,.38); background:radial-gradient(circle at 15% 0%,rgba(146,103,49,.16),transparent 34%),radial-gradient(circle at 90% 20%,rgba(255,255,255,.04),transparent 28%),#171313; }
body.dark-mode .site-header { background:rgba(19,15,15,.78); border-color:rgba(232,199,146,.16); }
body.dark-mode .theme-toggle { color:var(--gold); background:rgba(255,255,255,.08); }
body.dark-mode .service-discovery { background:radial-gradient(circle at 10% 0%,rgba(224,173,91,.18),transparent 35%),linear-gradient(145deg,rgba(55,43,35,.82),rgba(29,23,23,.72)); border-color:rgba(225,180,105,.28); box-shadow:0 24px 65px rgba(0,0,0,.35),inset 0 1px 0 rgba(255,255,255,.08); }
body.dark-mode .service-seo-links a { background:linear-gradient(145deg,rgba(74,60,50,.72),rgba(33,27,26,.76)); border-color:rgba(225,180,105,.23); color:var(--ink); }
body.dark-mode .service-seo-links a strong { color:#fff6e9; }
body.dark-mode .service-seo-links a>i { background:linear-gradient(145deg,rgba(211,166,91,.32),rgba(255,255,255,.06)); }
body.dark-mode .glass-panel, body.dark-mode .glass-card, body.dark-mode .service-card, body.dark-mode .booking-container, body.dark-mode .review-card, body.dark-mode .faq-list details { background:rgba(43,34,32,.72); border-color:rgba(232,199,146,.18); box-shadow:var(--shadow-sm),inset 0 1px 0 rgba(255,255,255,.06); }
body.dark-mode .service-card p, body.dark-mode .service-card h4, body.dark-mode .section-heading p { color:var(--ink-soft); }
.service-seo-links a { position:relative; isolation:isolate; overflow:visible; z-index:0; }
.service-seo-links a::after { content:''; position:absolute; z-index:-1; left:9%; right:9%; bottom:-11px; height:24px; border-radius:50%; background:radial-gradient(ellipse,rgba(194,142,61,.34),rgba(194,142,61,0) 70%); filter:blur(9px); opacity:.45; transition:opacity .3s ease,transform .3s ease; }
.service-seo-links a:hover::after { opacity:.95; transform:scale(1.12,1.35); }
.service-seo-links a::before { content:''; position:absolute; inset:1px; border-radius:inherit; pointer-events:none; background:linear-gradient(120deg,rgba(255,255,255,.32),transparent 34%,transparent 70%,rgba(231,190,119,.1)); opacity:.65; }
body.dark-mode .service-seo-links a::after { background:radial-gradient(ellipse,rgba(226,174,80,.55),rgba(226,174,80,0) 70%); opacity:.65; }
@media (prefers-reduced-motion: reduce) { .service-seo-links a, .service-seo-links a::after, .theme-toggle { transition:none; } }

/* Marble surfaces supplied for the two visual modes. The gradients remain as
   a graceful fallback until the image files are uploaded. */
.service-discovery { background-image:linear-gradient(135deg,rgba(238,240,241,.78),rgba(185,190,193,.58)),url('/images/light.png'); background-size:cover; background-position:center; }
.service-discovery::after { content:''; position:absolute; inset:0; pointer-events:none; background:linear-gradient(115deg,rgba(255,255,255,.28),transparent 42%,rgba(255,255,255,.1)); mix-blend-mode:screen; }
body.dark-mode { background-image:linear-gradient(rgba(8,8,9,.58),rgba(8,8,9,.72)),url('/images/dark.png'); background-size:cover; background-position:center; background-attachment:fixed; }
body.dark-mode .service-discovery { background-image:linear-gradient(135deg,rgba(32,34,36,.7),rgba(10,11,12,.64)),url('/images/dark.png'); box-shadow:0 28px 80px rgba(0,0,0,.55),inset 0 1px 0 rgba(255,255,255,.1); }
body.dark-mode .service-discovery::after { background:linear-gradient(120deg,rgba(255,255,255,.14),transparent 38%,rgba(218,170,87,.12)); }
body.dark-mode .service-seo-links a { background:linear-gradient(145deg,rgba(72,75,77,.46),rgba(14,15,16,.58)); backdrop-filter:blur(18px) saturate(125%); -webkit-backdrop-filter:blur(18px) saturate(125%); box-shadow:0 18px 28px rgba(0,0,0,.4),inset 0 1px 0 rgba(255,255,255,.14); }
body.dark-mode .service-seo-links a::after { bottom:-18px; height:34px; filter:blur(13px); opacity:.95; background:radial-gradient(ellipse,rgba(231,179,80,.78),rgba(231,179,80,0) 68%); }
body.dark-mode .service-seo-links a:hover { transform:translateY(-6px); border-color:rgba(235,190,107,.58); box-shadow:0 24px 38px rgba(0,0,0,.48),inset 0 1px 0 rgba(255,255,255,.2); }

/* Full-page marble backdrop; content sits above it in frosted layers. */
body { background-image:linear-gradient(rgba(245,245,244,.78),rgba(235,237,238,.86)),url('/images/light.png'); background-size:cover; background-position:center; background-attachment:fixed; }
body.dark-mode { background-image:linear-gradient(rgba(13,14,15,.68),rgba(8,9,10,.82)),url('/images/dark.png'); background-size:cover; background-position:center; background-attachment:fixed; }

/* Neutral frosted panel: the marble should remain visible around and through it. */
.service-discovery { background:rgba(215,218,220,.42); border-color:rgba(255,255,255,.58); box-shadow:0 24px 60px rgba(44,48,52,.16),inset 0 1px 0 rgba(255,255,255,.72); backdrop-filter:blur(20px) saturate(115%); -webkit-backdrop-filter:blur(20px) saturate(115%); }
.service-discovery::after { background:linear-gradient(120deg,rgba(255,255,255,.3),transparent 40%,rgba(255,255,255,.08)); mix-blend-mode:screen; }
body.dark-mode .service-discovery { background:rgba(52,55,57,.42); border-color:rgba(255,255,255,.19); box-shadow:0 30px 90px rgba(0,0,0,.5),inset 0 1px 0 rgba(255,255,255,.12); }

/* Always-on Card Illumine treatment: an inner light fold, glass face and a
   restrained gold pool of light underneath each service card. */
.service-seo-links a { isolation:isolate; overflow:visible; border-color:rgba(255,255,255,.64); background:linear-gradient(145deg,rgba(255,255,255,.62),rgba(237,240,241,.38)); box-shadow:0 18px 30px rgba(39,43,47,.16),inset 0 1px 0 rgba(255,255,255,.86),inset 0 -1px 0 rgba(255,255,255,.28); backdrop-filter:blur(18px) saturate(120%); -webkit-backdrop-filter:blur(18px) saturate(120%); }
.service-seo-links a::before { content:''; position:absolute; inset:1px; z-index:-1; border-radius:inherit; pointer-events:none; background:radial-gradient(ellipse at 50% 112%,rgba(224,183,111,.24),transparent 48%),linear-gradient(125deg,rgba(255,255,255,.4),transparent 33%,rgba(255,255,255,.08)); opacity:1; }
.service-seo-links a::after { content:''; position:absolute; z-index:-2; left:10%; right:10%; bottom:-15px; height:31px; border-radius:50%; pointer-events:none; background:radial-gradient(ellipse,rgba(177,132,67,.28),rgba(177,132,67,0) 69%); filter:blur(12px); opacity:1; transform:scale(1.03); }
body.dark-mode .service-seo-links a { border-color:rgba(255,255,255,.23); background:linear-gradient(145deg,rgba(82,85,87,.5),rgba(20,21,22,.62)); box-shadow:0 25px 38px rgba(0,0,0,.48),inset 0 1px 0 rgba(255,255,255,.2),inset 0 -1px 0 rgba(255,255,255,.06); }
body.dark-mode .service-seo-links a::before { background:radial-gradient(ellipse at 50% 112%,rgba(226,178,91,.34),transparent 50%),linear-gradient(125deg,rgba(255,255,255,.22),transparent 32%,rgba(229,183,99,.08)); }
body.dark-mode .service-seo-links a::after { background:radial-gradient(ellipse,rgba(226,178,91,.5),rgba(226,178,91,0) 70%); filter:blur(14px); }
.service-seo-links a:hover { transform:translateY(-4px); }

/* Dark-mode contrast pass for booking controls and labels. */
body.dark-mode .booking-container, body.dark-mode .calendar, body.dark-mode #booking-form, body.dark-mode .booking-selected-service { color:#f7efe4; }
body.dark-mode .booking-steps .step-label, body.dark-mode #booking-form label, body.dark-mode .calendar h1, body.dark-mode .calendar h3, body.dark-mode .week-days, body.dark-mode .current-date, body.dark-mode #time-slots-date { color:#f6eadc; }
body.dark-mode .category-filter-btn, body.dark-mode .time-slot, body.dark-mode #booking-form input, body.dark-mode #booking-form select, body.dark-mode #booking-form textarea { color:#fff8ed; background:rgba(28,29,30,.78); border-color:rgba(255,255,255,.23); box-shadow:inset 0 1px 0 rgba(255,255,255,.12); }
body.dark-mode .category-filter-btn:hover, body.dark-mode .time-slot:hover { color:#fff; border-color:rgba(228,189,122,.7); }
body.dark-mode .category-filter-btn.active, body.dark-mode .time-slot.selected { color:#241b12; background:linear-gradient(135deg,#e3bc77,#af783b); }
body.dark-mode .weeks span, body.dark-mode .calendar .month-nav, body.dark-mode .back-to-calendar-btn { color:#f2e5d6; }
body.dark-mode .booking-selected-service { background:rgba(24,25,26,.74); border-color:rgba(228,189,122,.3); }
body.dark-mode .booking-selected-service strong { color:#fff8ed; }
body.dark-mode .booking-consent { color:#dfd0c0; }

/* Homepage service links: compact frosted Card Illumine treatment. */
.service-seo-links .service-seo-card { position:relative; display:flex; min-height:108px; align-items:center; justify-content:center; overflow:hidden; isolation:isolate; padding:1rem .8rem 1.8rem; border-radius:1.15rem; background:rgba(235,237,238,.42); border:1px solid rgba(255,255,255,.62); backdrop-filter:blur(18px) saturate(125%); -webkit-backdrop-filter:blur(18px) saturate(125%); box-shadow:0 12px 25px rgba(44,48,52,.14),inset 0 1px 0 rgba(255,255,255,.72); transition:background .6s ease,border-color .6s ease,box-shadow .6s ease,transform .4s ease,color .6s ease; }
.service-seo-links .service-seo-card:hover { transform:translateY(-3px); }
.service-seo-light-layer { position:absolute; inset:0; z-index:0; pointer-events:none; }
.service-seo-slit { position:absolute; left:18%; right:18%; bottom:.82rem; height:2px; border-radius:50%; background:#5a5a5a; box-shadow:0 2px 5px rgba(0,0,0,.28); }
.service-seo-lumen,.service-seo-darken { position:absolute; inset:0; opacity:0; transition:opacity .6s ease; pointer-events:none; }
.service-seo-lumen { clip-path:inset(0 0 .72rem 0); }
.service-seo-lumen > span { position:absolute; left:0; right:0; bottom:0; margin:auto; background:linear-gradient(#fff0,#fff8); }
.service-seo-lumen .min { width:70%; height:3rem; transform:rotateX(-42deg); opacity:.4; }
.service-seo-lumen .mid { width:74%; height:8rem; transform:rotateX(-42deg); filter:blur(.8rem); opacity:.7; border-radius:100% 100% 0 0; }
.service-seo-lumen .hi { width:50%; height:8rem; transform:rotateX(22deg); filter:blur(.8rem); opacity:.5; border-radius:100% 100% 0 0; }
.service-seo-darken .sl,.service-seo-darken .ll { position:absolute; left:0; right:0; bottom:0; margin:auto; background:linear-gradient(#000,#0000); border-radius:0 0 100% 100%; }
.service-seo-darken .sl { width:64%; height:6rem; filter:blur:.2rem; opacity:.12; transform:rotateX(-22deg); }
.service-seo-darken .ll { width:62%; height:6rem; filter:blur:.7rem; opacity:.35; transform:rotateX(22deg); }
.service-seo-card-content { position:relative; z-index:2; display:flex; flex-direction:column; align-items:center; gap:.28rem; text-align:center; }
.service-seo-card-content strong { color:var(--ink); font-size:.82rem; line-height:1.25; }
.service-seo-card-content small { color:var(--gold-dark); font-size:.59rem; font-weight:700; letter-spacing:.07em; text-transform:uppercase; }
body.dark-mode .service-seo-links .service-seo-card { background:rgba(39,42,44,.48); border-color:rgba(255,255,255,.2); box-shadow:0 18px 30px rgba(0,0,0,.45),inset 0 1px 0 rgba(255,255,255,.14),inset 0 -3rem 2rem -2rem rgba(0,0,0,.7); }
body.dark-mode .service-seo-links .service-seo-card:hover { border-color:rgba(235,190,107,.45); }
body.dark-mode .service-seo-slit { background:#fff; box-shadow:0 0 .35rem .1rem rgba(255,255,255,.95),0 .3rem .45rem rgba(0,0,0,.9),0 .75rem 1rem rgba(0,0,0,.45); }
body.dark-mode .service-seo-slit::after { content:""; position:absolute; left:0; right:0; top:2px; height:3px; border-radius:50%; background:rgba(0,0,0,.72); filter:blur(3px); }
body.dark-mode .service-seo-lumen { opacity:1; }
body.dark-mode .service-seo-darken { opacity:.72; }
body.dark-mode .service-seo-card-content strong { color:#eee; text-shadow:0 -7px 11px rgba(0,0,0,.98),0 -3px 5px #333,0 2px 3px #000; }
body.dark-mode .service-seo-card-content small { color:#ddcfbf; text-shadow:0 -4px 8px rgba(0,0,0,.9); }
body.dark-mode .footer-cta h2 { color:#fff8ed; text-shadow:0 2px 8px rgba(0,0,0,.72); }
/* More visible silver-white frost behind the hero copy. */
.hero-content::before { background:linear-gradient(135deg,rgba(255,255,255,.34),rgba(232,237,240,.18) 55%,rgba(255,255,255,.08)); border-color:rgba(255,255,255,.46); box-shadow:inset 0 1px 0 rgba(255,255,255,.62),0 24px 50px rgba(20,25,30,.16); backdrop-filter:blur(16px) saturate(120%); -webkit-backdrop-filter:blur(16px) saturate(120%); }
body.dark-mode .hero-content::before { background:linear-gradient(135deg,rgba(235,239,242,.2),rgba(164,174,181,.1) 56%,rgba(255,255,255,.04)); border-color:rgba(255,255,255,.28); box-shadow:inset 0 1px 0 rgba(255,255,255,.35),0 24px 55px rgba(0,0,0,.42); }
body.dark-mode .service-availability { background:rgba(35,37,39,.5); border-color:rgba(255,255,255,.18); }
body.dark-mode .service-availability h2 { color:#fff8ed; }
body.dark-mode .service-availability p, body.dark-mode .availability-empty { color:#e4d8ca; }
body.dark-mode .availability-preview a { border-color:rgba(255,255,255,.22); background:rgba(30,32,33,.78); color:#fff8ed; box-shadow:inset 0 1px 0 rgba(255,255,255,.1); }
body.dark-mode .availability-preview a strong { color:#fff8ed; }
body.dark-mode .availability-preview a span { color:#f0c981; }
body.dark-mode .availability-preview a:hover { border-color:rgba(235,190,107,.65); background:rgba(67,57,47,.78); }
/* Global dark-mode readability: muted copy must remain readable on marble and glass. */
body.dark-mode p, body.dark-mode small, body.dark-mode label, body.dark-mode figcaption,
body.dark-mode .eyebrow, body.dark-mode .section-heading p, body.dark-mode .service-lead,
body.dark-mode .service-detail-grid p, body.dark-mode .faq-list p, body.dark-mode .footer-grid p,
body.dark-mode .footer-grid small, body.dark-mode .gallery-page-hero p:last-child,
body.dark-mode .gallery-page-card figcaption, body.dark-mode .update-card-body,
body.dark-mode .update-card-meta, body.dark-mode .reviews-section .review-card footer,
body.dark-mode .booking-consent, body.dark-mode .form-hint { color:#e4d8ca; }
body.dark-mode h1, body.dark-mode h2, body.dark-mode h3, body.dark-mode h4,
body.dark-mode .section-heading h2, body.dark-mode .current-date h1,
body.dark-mode .calendar h3 { color:#fff8ed; }
body.dark-mode a:not(.btn-gold):not(.glass-button):not(.book-now-btn) { color:#e2bd7b; }
body.dark-mode input::placeholder, body.dark-mode textarea::placeholder { color:rgba(238,226,211,.62); }
.gallery-view-all { display:flex; justify-content:center; margin:1.4rem 0 0; }
.footer-legal { display:flex; justify-content:center; flex-wrap:wrap; gap:.35rem 1rem; max-width:1100px; margin:1.25rem auto .85rem; padding:0 1rem; }
.footer-legal a { color:rgba(255,248,237,.78); font-size:.75rem; text-decoration:none; }
.footer-legal a:hover, .footer-legal a:focus-visible { color:var(--gold-pale); text-decoration:underline; }
@media (max-width:560px) { .footer-legal { justify-content:center; gap:.55rem .85rem; }.footer-legal a { font-size:.72rem; } }
.gallery-page { max-width:1180px; margin:0 auto; padding:calc(var(--header-h,76px) + 2rem) 1rem 3rem; }
.gallery-page-hero { margin-bottom:2rem; padding:clamp(1.5rem,4vw,3rem); text-align:center; }
.gallery-page-hero h1 { margin:.3rem 0 .7rem; color:var(--ink); font-family:var(--font-display,Georgia,serif); }
.gallery-page-hero p:last-child { max-width:58ch; margin:0 auto; color:var(--ink-soft); line-height:1.7; }
.gallery-page-section { padding:clamp(1rem,3vw,2rem); border:1px solid rgba(255,255,255,.55); border-radius:24px; background:rgba(230,232,233,.35); backdrop-filter:blur(18px); -webkit-backdrop-filter:blur(18px); }
.gallery-page-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:1rem; }
.gallery-page-card { position:relative; min-height:260px; margin:0; overflow:hidden; border-radius:18px; border:1px solid rgba(255,255,255,.55); background:rgba(255,255,255,.35); box-shadow:0 14px 30px rgba(38,30,44,.13); cursor:pointer; }
.gallery-page-card::before { content:attr(data-gallery-number); position:absolute; top:.7rem; left:.7rem; z-index:2; display:grid; min-width:34px; height:34px; padding:0 .55rem; place-items:center; border:1px solid rgba(245,223,180,.75); border-radius:999px; color:#f5dfb4; background:rgba(37,28,49,.62); font-size:.62rem; font-weight:700; letter-spacing:.04em; backdrop-filter:blur(8px); }
.gallery-page-card img { width:100%; height:100%; min-height:260px; display:block; object-fit:cover; transition:transform .5s ease; }
.gallery-page-card figcaption { position:absolute; right:0; bottom:0; left:0; padding:2rem .8rem .7rem; color:#fff; font-size:.72rem; background:linear-gradient(transparent,rgba(20,15,25,.78)); }
.gallery-page-card:hover img { transform:scale(1.05); }
.gallery-page-card:focus-visible { outline:3px solid #d4a764; outline-offset:3px; }
.gallery-load-sentinel { display:flex; align-items:center; justify-content:center; gap:.65rem; width:min(100%,360px); margin:1.4rem auto 0; padding:.85rem 1.2rem; border:1px solid rgba(255,255,255,.55); border-radius:999px; color:var(--ink); background:rgba(255,255,255,.34); backdrop-filter:blur(14px); -webkit-backdrop-filter:blur(14px); cursor:pointer; }
.gallery-load-sentinel .fa-spinner { opacity:.55; }
.gallery-load-sentinel.is-loading .fa-spinner { animation:gallery-spin .8s linear infinite; }
.gallery-load-sentinel.has-error { border-color:#b76666; }
@keyframes gallery-spin { to { transform:rotate(360deg); } }
body.dark-mode .gallery-page-section { background:rgba(43,46,48,.42); border-color:rgba(255,255,255,.18); }
body.dark-mode .gallery-page-card { border-color:rgba(255,255,255,.2); background:rgba(30,31,32,.5); }
body.dark-mode .gallery-load-sentinel { color:#f3edf3; border-color:rgba(255,255,255,.2); background:rgba(30,31,32,.56); }
@media(max-width:900px){.gallery-page-grid{grid-template-columns:repeat(3,minmax(0,1fr));}}
@media(max-width:620px){.gallery-page{padding:calc(var(--header-h,64px) + 1.2rem) .75rem 2rem}.gallery-page-section{padding:.8rem;border-radius:18px}.gallery-page-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.65rem}.gallery-page-card,.gallery-page-card img{min-height:220px}.gallery-page-card::before{width:auto;min-width:30px;height:30px;padding:0 .45rem;top:.5rem;left:.5rem;font-size:.56rem}}
@media(max-width:390px){.gallery-page-grid{grid-template-columns:1fr}.gallery-page-card,.gallery-page-card img{min-height:280px}}

/* Booking progress stepper: a clear connected timeline on desktop and mobile. */
.booking-steps { position:relative; display:grid; grid-template-columns:repeat(3,1fr); gap:0; align-items:start; margin:0 0 2rem; padding:0 1rem 1.35rem; border-bottom:0; }
.booking-steps::before { content:""; position:absolute; top:17px; left:16.5%; right:16.5%; height:2px; background:var(--line); }
.booking-steps .step { position:relative; z-index:1; display:flex; flex-direction:column; align-items:center; justify-content:flex-start; gap:.45rem; min-width:0; color:var(--ink-soft); font-size:.68rem; letter-spacing:.06em; text-align:center; text-transform:uppercase; }
.booking-steps .step-num { width:34px; height:34px; border:2px solid var(--line); background:var(--white); color:var(--ink-soft); box-shadow:0 3px 9px rgba(0,0,0,.08); transition:background .3s ease,border-color .3s ease,color .3s ease,box-shadow .3s ease; }
.booking-steps .step.active .step-num { border-color:var(--gold); background:linear-gradient(135deg,#e4be7a,#b47b3d); color:#fff; box-shadow:0 5px 14px rgba(180,123,61,.3); }
.booking-steps .step.completed .step-num { border-color:var(--gold); background:var(--gold); color:#fff; }
.booking-steps .step.active, .booking-steps .step.completed { color:var(--ink); }
.booking-steps .step-label { max-width:9rem; line-height:1.25; }
body.dark-mode .booking-steps::before { background:rgba(255,255,255,.2); }
body.dark-mode .booking-steps .step-num { background:rgba(33,35,36,.9); border-color:rgba(255,255,255,.28); color:#dfd0c0; }
body.dark-mode .booking-steps .step.active .step-num, body.dark-mode .booking-steps .step.completed .step-num { border-color:#e3bc77; background:linear-gradient(135deg,#e4be7a,#b47b3d); color:#241b12; box-shadow:0 5px 15px rgba(0,0,0,.4); }
body.dark-mode .booking-steps .step-label { color:#f6eadc; }
@media (max-width:620px) { .booking-steps { padding-left:.1rem; padding-right:.1rem; } .booking-steps::before { left:17%; right:17%; top:16px; } .booking-steps .step-num { width:32px; height:32px; } .booking-steps .step-label { display:block; max-width:6.5rem; font-size:.58rem; letter-spacing:.03em; } }

/* Keep service actions fully visible on narrow screens. */
@media (max-width:600px) {
    .service-card-buttons { width:100%; gap:.4rem; flex-wrap:nowrap; }
    .service-card-buttons .glass-button { min-width:0; flex:1 1 0; padding:.55rem .35rem; font-size:.68rem; white-space:nowrap; }
}

/* -----------------------------------------------------------------
   Mobile experience baseline
   This is intentionally shared by every public page: homepage, services,
   service detail, gallery, updates, booking and the client appointment page.
   It removes the common small-screen friction points without changing the
   desktop composition.
   ----------------------------------------------------------------- */
html { scroll-padding-top: calc(var(--header-h, 76px) + 1rem); -webkit-text-size-adjust:100%; text-size-adjust:100%; }
button, input, select, textarea { font:inherit; }
button, a, input, select, textarea, summary { -webkit-tap-highlight-color:transparent; }
a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible,
textarea:focus-visible, summary:focus-visible, [role="tab"]:focus-visible {
    outline:3px solid rgba(205,157,82,.92);
    outline-offset:3px;
}

@media (max-width: 760px) {
    /* 16px controls prevent iOS Safari from zooming into a form mid-booking. */
    input, select, textarea { font-size:16px !important; }
    .site-header { padding-top:env(safe-area-inset-top); }
    .site-header .nav-pill {
        max-height:calc(100svh - var(--header-h, 64px) - env(safe-area-inset-top));
        padding-bottom:max(.5rem, env(safe-area-inset-bottom));
        overscroll-behavior:contain;
        -webkit-overflow-scrolling:touch;
    }
    .hamburger { min-width:44px; min-height:44px; display:grid; place-items:center; }
    .hero-section, html.js .hero-scroll-stage.has-scroll-video .hero-scroll-controlled { min-height: min(88svh, 650px); }
    .hero-section { min-height:560px; }
    .cookie-consent {
        right:max(.75rem, env(safe-area-inset-right));
        bottom:max(.75rem, env(safe-area-inset-bottom));
        left:max(.75rem, env(safe-area-inset-left));
    }
    .cookie-consent-actions > * { min-height:44px; display:inline-flex; align-items:center; }
    .modal, .lightbox { padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left); }
    .update-modal-content, .modal-content { max-height:calc(100svh - 1.5rem); overflow-y:auto; -webkit-overflow-scrolling:touch; }
    .gallery-filter, .gallery-arrow, .lightbox-nav, .close-lightbox { min-width:44px; min-height:44px; }
    .gallery-filters, .catalogue-nav { scroll-padding-inline:.5rem; }
    .availability-preview a, .time-slot, .category-filter-btn { min-height:44px; }
}

@media (max-width: 420px) {
    /* Keep the booking choice usable on compact Android phones. */
    .time-slots-grid { grid-template-columns:repeat(2, minmax(0,1fr)); }
    .booking-container { padding:1rem .65rem; }
    .booking-steps .step-label { font-size:.56rem; max-width:5.8rem; }
    .service-seo-links { grid-template-columns:1fr; }
    .gallery-slide { width:min(78vw, 290px); }
}

@media (hover:none) and (pointer:coarse) {
    /* Do not leave touch users in a permanent hover state. */
    .gallery-slide:hover, .service-seo-links .service-seo-card:hover,
    .catalogue-card:hover { transform:none; }
    .gallery-slide:hover img, .gallery-page-card:hover img,
    .service-gallery-grid figure:hover img { transform:none; }
}

@media (prefers-reduced-motion: reduce) {
    html { scroll-behavior:auto; }
    *, *::before, *::after { animation-duration:.01ms !important; animation-iteration-count:1 !important; scroll-behavior:auto !important; transition-duration:.01ms !important; }
    html.js .hero-scroll-stage.has-scroll-video { height:auto; }
}

/* Disabled calendar days must remain clearly distinct in dark mode. */
body.dark-mode .weeks span.disabled,
body.dark-mode .weeks span.last-month.disabled { color:rgba(255,255,255,.24); background:transparent; opacity:.65; text-decoration:line-through; text-decoration-color:rgba(255,255,255,.22); }
body.dark-mode .weeks span.disabled:hover { color:rgba(255,255,255,.24); background:transparent; }
@media (max-width:700px) { .service-seo-links .service-seo-card { min-height:96px; } }

/* Remove legacy decorative pseudo-layers from the service-link anchors. */
.service-seo-links .service-seo-card::before,
.service-seo-links .service-seo-card::after { display:none; }
body.dark-mode .service-seo-card-content strong { color:#eee; text-shadow:0 -7px 11px rgba(0,0,0,.98),0 -3px 5px #333,0 2px 3px #000; }
body.dark-mode .service-seo-card-content small { color:#ddcfbf; text-shadow:0 -4px 8px rgba(0,0,0,.9); }

/* Service discovery cards: Card Illumine-inspired text and lower light bar.
   The luminous state is deliberately enabled only in dark mode. */
.service-seo-links a {
    display:flex;
    position:relative;
    min-height:150px;
    align-items:center;
    justify-content:center;
    overflow:hidden;
    text-align:center;
    padding:1.25rem 1rem 2.2rem;
    border-radius:1.1rem;
    transition:transform .25s ease, box-shadow .25s ease, border-color .25s ease;
}
.service-seo-card-content { position:relative; z-index:2; display:flex; flex-direction:column; align-items:center; gap:.38rem; }
.service-seo-card-content strong { font-size:1rem; line-height:1.3; color:var(--ink); }
.service-seo-card-content small { font-size:.72rem; letter-spacing:.08em; text-transform:uppercase; color:var(--ink-soft); }
.service-seo-lightbar { position:absolute; z-index:2; left:50%; bottom:.72rem; width:5.2rem; height:1.05rem; transform:translateX(-50%); border-radius:.35rem; opacity:0; background:#171717; box-shadow:inset 0 -6px 7px rgba(0,0,0,.5), inset 0 0 2px .16rem #d4d4d4, inset 0 -2px 1px .15rem #fff, 0 5px 15px rgba(0,0,0,.42); transition:opacity .3s ease; }
.service-seo-lightbar::before { content:''; position:absolute; left:50%; top:50%; width:3.7rem; height:.28rem; transform:translate(-50%,-50%); border-radius:.2rem; background:#fff; box-shadow:0 0 .55rem .22rem rgba(255,255,255,.85), 0 0 1.4rem .25rem rgba(255,255,255,.45); }
.service-seo-lightbar-handle { position:absolute; z-index:1; top:50%; left:2.68rem; width:1.45rem; height:.28rem; transform:translateY(-50%); border-radius:.18rem; background:#d9d9d9; box-shadow:inset 0 1px 7px #fff, 0 2px 5px rgba(0,0,0,.42); }
body.dark-mode .service-seo-links a { background:linear-gradient(145deg,rgba(73,76,78,.5),rgba(12,13,14,.68)); border-color:rgba(255,255,255,.22); box-shadow:0 22px 38px rgba(0,0,0,.48), inset 0 1px 0 rgba(255,255,255,.16), inset 0 -4.5rem 3rem -3rem rgba(0,0,0,.72); }
body.dark-mode .service-seo-links a::before { background:linear-gradient(120deg,rgba(255,255,255,.2),transparent 35%,transparent 72%,rgba(255,255,255,.06)); opacity:.8; }
body.dark-mode .service-seo-links a::after { background:radial-gradient(ellipse,rgba(255,255,255,.35),rgba(255,255,255,0) 68%); bottom:-18px; height:35px; filter:blur(13px); opacity:.8; }
body.dark-mode .service-seo-card-content strong { color:#fff8ed; text-shadow:0 -7px 13px rgba(255,255,255,.32), 0 2px 3px rgba(0,0,0,.8); }
body.dark-mode .service-seo-card-content small { color:#e2d5c7; text-shadow:0 -4px 9px rgba(255,255,255,.2), 0 2px 2px rgba(0,0,0,.75); }
body.dark-mode .service-seo-lightbar { opacity:1; }
@media (max-width:700px) { .service-seo-links a { min-height:132px; } }

/* Review and summary copy must remain high-contrast over the dark marble. */
body.dark-mode .reviews-section { background:rgba(25,25,26,.72); }
body.dark-mode .reviews-section h2, body.dark-mode .reviews-section .reviews-summary, body.dark-mode .reviews-section .review-card > p, body.dark-mode .reviews-section .review-card footer strong, body.dark-mode .reviews-section .reviews-no-text { color:#fff8ed; }
body.dark-mode .reviews-section .review-card { background:rgba(47,48,49,.72); border-color:rgba(255,255,255,.2); }
body.dark-mode .reviews-section .review-card footer, body.dark-mode .reviews-section .reviews-link a { color:#ddcfbf; }
body.dark-mode .reviews-verified-badge { color:#f2d49e; }
body.dark-mode .section-heading h2 { color:#fff8ed; }

/* Homepage gallery and review carousel: give compact phones a deliberate,
   edge-to-edge layout instead of a narrow strip inside the page gutter. */
@media (max-width: 600px) {
    #gallery.gallery-section,
    #reviews.reviews-section {
        width: 100vw;
        max-width: none;
        margin-left: calc(50% - 50vw);
        margin-right: calc(50% - 50vw);
        border-radius: 0;
    }

    #gallery.gallery-section {
        padding: 3rem max(.9rem, env(safe-area-inset-left)) 2.5rem;
    }

    /* The full gallery has filters; the homepage preview should stay calm. */
    #gallery .gallery-filters { display: none; }
    #gallery .gallery-container { width: 100%; }
    #gallery .gallery-track {
        gap: .75rem;
        padding: .5rem calc((100% - 86vw) / 2) 1rem;
    }
    #gallery .gallery-slide,
    #gallery .gallery-slide:nth-child(2n),
    #gallery .gallery-slide:nth-child(3n) {
        width: 86vw;
        height: 250px;
    }
    #gallery .gallery-view-all { margin-top: .85rem; }
    #gallery .gallery-view-all .btn-gold {
        min-height: 38px;
        padding: .58rem .9rem;
        font-size: .66rem;
        letter-spacing: .055em;
    }

    #reviews.reviews-section {
        padding: 3rem max(.9rem, env(safe-area-inset-left)) 2.75rem;
    }
    #reviews .reviews-grid {
        display: flex;
        gap: .8rem;
        margin-top: 1.35rem;
        padding: .2rem 0 .9rem;
        overflow-x: auto;
        scroll-padding-inline: 0;
        scroll-snap-type: x mandatory;
    }
    #reviews .reviews-grid .review-card {
        box-sizing: border-box;
        flex: 0 0 100%;
        min-width: 0;
        padding: 1.2rem;
        scroll-snap-align: center;
    }
    #reviews .review-card > p {
        display: -webkit-box;
        overflow: hidden;
        -webkit-box-orient: vertical;
        -webkit-line-clamp: 7;
        line-height: 1.55;
        font-size: .97rem;
    }
    #reviews .review-card footer { margin-top: .85rem; }
    #reviews .reviews-controls { margin-top: .55rem; }
}

/* Dedicated service pages: editorial layout instead of a plain SEO landing page. */
.service-page { max-width: 1180px; margin: 0 auto; padding: calc(var(--header-h, 76px) + 2rem) 1.25rem 4rem; }
.service-helpful-content { margin-top:2.2rem; padding:clamp(1.2rem,4vw,2.4rem); }
.service-helpful-content>p { max-width:74ch; margin:.75rem auto; color:var(--ink-soft); line-height:1.75; }
.service-faq-list { display:grid; gap:.65rem; max-width:800px; margin:1.3rem auto 0; }
.service-faq-list details { padding:.9rem 1rem; border:1px solid rgba(168,117,56,.16); border-radius:13px; background:rgba(255,255,255,.4); }
.service-faq-list summary { cursor:pointer; color:var(--ink); font-weight:700; }
.service-faq-list p { margin:.65rem 0 0; color:var(--ink-soft); line-height:1.65; }
.service-expanded-content { margin-top:2.4rem; }
.service-editorial-copy { max-width:920px; margin:0 auto 1rem; padding:clamp(1.25rem,4vw,2.4rem); }
.service-editorial-copy h2,.service-content-grid h2,.service-custom-faq>h2 { margin:.1rem 0 .85rem; color:var(--ink); font-family:var(--font-display,Georgia,serif); font-size:clamp(1.2rem,2.4vw,1.65rem); }
.service-editorial-copy p,.service-content-grid p,.service-content-grid li { color:var(--ink-soft); line-height:1.75; }
.service-editorial-copy p:last-child,.service-content-grid p:last-child { margin-bottom:0; }
.service-content-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1rem; }
.service-content-grid article { padding:clamp(1.1rem,3vw,1.6rem); }
.service-content-grid ul,.service-content-grid ol { margin:.5rem 0 0; padding-left:1.25rem; }
.service-content-grid li+li { margin-top:.55rem; }
.service-custom-faq { max-width:920px; margin:1rem auto 0; padding:clamp(1.2rem,4vw,2rem); }
body.dark-mode .service-helpful-content { background:rgba(38,41,43,.48); border-color:rgba(255,255,255,.18); }
body.dark-mode .service-faq-list details { background:rgba(25,27,28,.6); border-color:rgba(255,255,255,.2); }
body.dark-mode .service-faq-list summary { color:#fff8ed; }
body.dark-mode .service-editorial-copy h2,body.dark-mode .service-content-grid h2,body.dark-mode .service-custom-faq>h2 { color:#fff8ed; }
body.dark-mode .service-editorial-copy p,body.dark-mode .service-content-grid p,body.dark-mode .service-content-grid li,body.dark-mode .service-custom-faq p { color:#e7ded5; }
.service-page .breadcrumb { display: flex; gap: .55rem; align-items: center; margin-bottom: 1rem; color: var(--ink-soft); font-size: .78rem; }
.service-page .breadcrumb a { color: var(--gold-dark, #a87538); text-decoration: none; }
.service-hero { display: grid; grid-template-columns: 1.05fr .95fr; gap: clamp(1.5rem, 4vw, 4rem); align-items: center; overflow: hidden; padding: clamp(1.25rem, 4vw, 3rem); background: linear-gradient(120deg, rgba(255,255,255,.78), rgba(244,231,215,.58)); }
.service-hero h1 { margin: .35rem 0 1rem; color: var(--ink); font-family: var(--font-display, Georgia, serif); font-size: clamp(2rem, 5vw, 3.8rem); line-height: 1.05; }
.service-lead { max-width: 56ch; color: var(--ink-soft); font-size: 1.05rem; line-height: 1.75; }
.service-hero img { width: 100%; max-height: 430px; object-fit: cover; border-radius: 22px; box-shadow: 0 20px 45px rgba(60,38,52,.18); }
.service-detail-grid { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 1rem; margin-top: 1rem; }
.service-detail-grid article { min-height: 150px; padding: 1.5rem; }
.service-detail-grid h2, .service-related h2 { margin-top: 0; color: var(--ink); font-family: var(--font-display, Georgia, serif); }
.service-detail-grid p { color: var(--ink-soft); line-height: 1.65; }
.service-related { margin-top: 2.2rem; text-align: center; }
.service-links { display: grid; grid-template-columns: repeat(5, minmax(0,1fr)); gap: .7rem; }
.service-links a { display: flex; align-items: center; justify-content: center; min-height: 66px; padding: .8rem; color: var(--plum, #5b3d5f); text-decoration: none; font-size: .8rem; line-height: 1.3; border: 1px solid rgba(168,117,56,.2); border-radius: 14px; background: rgba(255,255,255,.62); transition: transform .2s ease, background .2s ease; }
.service-links a:hover { transform: translateY(-3px); background: rgba(255,255,255,.95); }
.reviews-no-text { max-width: 620px; margin: 1rem auto; text-align: center; color: var(--ink-soft); }
@media (max-width: 760px) { .service-page { padding-top: calc(var(--header-h, 76px) + 1rem); } .service-hero, .service-detail-grid,.service-content-grid { grid-template-columns: 1fr; } .service-hero img { max-height: 300px; order: -1; } .service-links { grid-template-columns: repeat(2, minmax(0,1fr)); } }
@media (max-width: 420px) { .service-links { grid-template-columns: 1fr; } }
.service-facts { display:flex; flex-wrap:wrap; gap:.6rem; margin:1.2rem 0 1.5rem; }.service-facts span { display:inline-flex; align-items:center; gap:.45rem; padding:.58rem .8rem; border:1px solid rgba(168,117,56,.22); border-radius:999px; background:rgba(255,255,255,.58); color:var(--plum); font-size:.78rem; font-weight:700; }.service-facts i,.service-detail-icon { color:var(--gold-dark); }
.service-detail-icon { display:grid; place-items:center; width:42px; height:42px; margin-bottom:.8rem; border-radius:13px; background:rgba(212,167,100,.15); }
.service-availability { display:grid; grid-template-columns:minmax(220px,1fr) minmax(280px,1.4fr) auto; align-items:center; gap:1.2rem; margin-top:1rem; padding:1.5rem; }.service-availability h2 { margin:.2rem 0 .35rem; font-family:var(--font-display,Georgia,serif); }.service-availability p { margin:.25rem 0; color:var(--ink-soft); }.availability-preview { display:grid; grid-template-columns:repeat(4,minmax(60px,1fr)); gap:.45rem; }.availability-preview a { display:flex; flex-direction:column; align-items:center; padding:.65rem .35rem; border:1px solid rgba(168,117,56,.2); border-radius:13px; background:rgba(255,255,255,.68); color:var(--plum); text-decoration:none; }.availability-preview a strong { font-size:.78rem; }.availability-preview a span { color:var(--gold-dark); font-size:.72rem; }.availability-empty { color:var(--ink-soft); font-size:.82rem; }
.service-gallery { margin-top:2.5rem; }.service-section-heading { text-align:center; margin-bottom:1rem; }.service-section-heading h2 { margin:.2rem 0; font-family:var(--font-display,Georgia,serif); }.service-gallery-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:.75rem; }.service-gallery-grid figure { position:relative; min-height:260px; margin:0; overflow:hidden; border-radius:18px; box-shadow:0 14px 32px rgba(51,38,59,.1); }.service-gallery-grid img { width:100%; height:100%; min-height:260px; object-fit:cover; transition:transform .4s ease; }.service-gallery-grid figure:hover img { transform:scale(1.035); }.service-gallery-grid figcaption { position:absolute; inset:auto 0 0; padding:2rem .8rem .7rem; color:#fff; font-size:.72rem; background:linear-gradient(transparent,rgba(30,22,35,.78)); }
.service-final-cta { margin-top:2.5rem; text-align:center; background:linear-gradient(135deg,rgba(255,255,255,.8),rgba(244,231,215,.62)); }.service-final-cta h2 { margin:.2rem 0 .5rem; font-family:var(--font-display,Georgia,serif); }.service-final-cta p:not(.eyebrow) { margin:0 auto 1.2rem; color:var(--ink-soft); }
@media(max-width:850px){.service-availability{grid-template-columns:1fr;}.service-availability .btn-gold{justify-self:start}.service-gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr));}}
@media(max-width:520px){.availability-preview{grid-template-columns:repeat(2,minmax(0,1fr));}.service-gallery-grid{grid-template-columns:1fr}.service-gallery-grid figure,.service-gallery-grid img{min-height:300px}}
.appointment-view-page { min-height:100vh; background:radial-gradient(circle at 18% 10%,rgba(212,167,100,.2),transparent 24rem),linear-gradient(135deg,#f7f1f7,#eee6ef); }.appointment-view-shell { width:min(680px,calc(100% - 2rem)); margin:0 auto; padding:2rem 0 4rem; }.appointment-view-card { padding:clamp(1.3rem,5vw,2.6rem); border:1px solid rgba(255,255,255,.85); border-radius:25px; background:rgba(255,255,255,.68); box-shadow:0 24px 65px rgba(51,38,59,.14); backdrop-filter:blur(18px); }.appointment-view-logo { display:block; width:92px; height:auto; margin:0 auto 1rem; }.appointment-view-card h1 { margin:.25rem 0 1rem; text-align:center; font-family:var(--font-display,Georgia,serif); }.appointment-view-card>.eyebrow { text-align:center; }.appointment-public-status { display:table; margin:0 auto 1.5rem; padding:.45rem .75rem; border-radius:999px; font-size:.68rem; font-weight:800; text-transform:uppercase; }.appointment-view-card dl { margin:0 0 1.2rem; overflow:hidden; border:1px solid rgba(118,105,121,.13); border-radius:16px; background:rgba(250,247,250,.75); }.appointment-view-card dl div { display:grid; grid-template-columns:110px 1fr; gap:1rem; padding:.8rem 1rem; border-bottom:1px solid rgba(118,105,121,.1); }.appointment-view-card dl div:last-child { border-bottom:0; }.appointment-view-card dt { color:var(--ink-soft); font-size:.72rem; }.appointment-view-card dd { margin:0; color:var(--ink); font-weight:700; text-align:right; }.appointment-view-actions { display:flex; flex-wrap:wrap; gap:.65rem; margin-top:1.25rem; }.appointment-view-actions a { display:inline-flex; align-items:center; justify-content:center; gap:.4rem; }.appointment-view-actions .btn-outline { padding:.75rem 1.1rem; border:1px solid rgba(168,117,56,.35); border-radius:999px; color:var(--plum); text-decoration:none; } @media(max-width:480px){.appointment-view-card dl div{grid-template-columns:1fr;gap:.2rem}.appointment-view-card dd{text-align:left}.appointment-view-actions a{width:100%}}

/* Public services catalogue — Google Business Profile destination. */
.services-catalogue-page { width:min(1220px,calc(100% - 2rem)); margin:0 auto; padding:calc(var(--header-h,76px) + 2.2rem) 0 4.5rem; }
.catalogue-hero { max-width:980px; margin:0 auto 1.15rem; padding:clamp(1.5rem,5vw,4rem); text-align:center; background:linear-gradient(135deg,rgba(255,255,255,.74),rgba(235,237,239,.42)); }
.catalogue-hero h1 { margin:.2rem 0 .85rem; color:var(--ink); font-family:var(--font-display,Georgia,serif); font-size:clamp(2.3rem,6vw,4.8rem); line-height:1; }
.catalogue-hero>p:not(.eyebrow) { max-width:65ch; margin:0 auto; color:var(--ink-soft); line-height:1.75; }
.catalogue-hero-actions { display:flex; justify-content:center; flex-wrap:wrap; gap:.65rem; margin-top:1.5rem; }
.catalogue-hero-actions .btn-outline { display:inline-flex; align-items:center; justify-content:center; padding:.78rem 1.1rem; border:1px solid rgba(168,117,56,.36); border-radius:999px; color:var(--plum); text-decoration:none; background:rgba(255,255,255,.45); }
.catalogue-nav { position:sticky; z-index:20; top:calc(var(--header-h,76px) + .35rem); display:flex; justify-content:center; gap:.55rem; overflow:auto; margin:1.15rem auto 2.8rem; padding:.45rem; scrollbar-width:none; }
.catalogue-nav::-webkit-scrollbar { display:none; }
.catalogue-nav a { flex:0 0 auto; padding:.62rem .95rem; border:1px solid rgba(255,255,255,.72); border-radius:999px; color:var(--ink); text-decoration:none; background:rgba(243,245,246,.74); box-shadow:0 7px 18px rgba(44,48,52,.08); backdrop-filter:blur(12px); }
.catalogue-nav a:hover { color:#241b12; background:linear-gradient(135deg,#e3bc77,#af783b); }
.catalogue-group { scroll-margin-top:calc(var(--header-h,76px) + 4.5rem); margin-top:3.4rem; }
.catalogue-group-heading { margin-bottom:1.1rem; text-align:center; }.catalogue-group-heading h2 { margin:.15rem 0; color:var(--ink); font-family:var(--font-display,Georgia,serif); font-size:clamp(1.8rem,4vw,3rem); }
.catalogue-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1rem; }
.catalogue-card { display:flex; flex-direction:column; min-width:0; overflow:hidden; border:1px solid rgba(255,255,255,.68); border-radius:22px; background:linear-gradient(145deg,rgba(255,255,255,.74),rgba(234,237,239,.44)); box-shadow:0 18px 42px rgba(40,44,48,.13),inset 0 1px 0 rgba(255,255,255,.72); transition:transform .25s ease,box-shadow .25s ease; }
.catalogue-card:hover { transform:translateY(-5px); box-shadow:0 26px 55px rgba(40,44,48,.18),inset 0 1px 0 rgba(255,255,255,.8); }
.catalogue-card-image { display:block; height:210px; overflow:hidden; background:linear-gradient(135deg,rgba(215,218,220,.8),rgba(194,178,157,.5)); }.catalogue-card-image img { width:100%; height:100%; object-fit:cover; transition:transform .45s ease; }.catalogue-card:hover .catalogue-card-image img { transform:scale(1.05); }.catalogue-card-image span { display:grid; width:100%; height:100%; place-items:center; color:var(--gold-dark); font-size:2rem; }
.catalogue-card-body { display:flex; flex:1; flex-direction:column; padding:1.1rem; }.catalogue-card-topline { display:flex; justify-content:space-between; gap:.5rem; color:var(--gold-dark); font-size:.64rem; font-weight:800; letter-spacing:.07em; text-transform:uppercase; }.catalogue-card-topline span:last-child { color:var(--ink-soft); white-space:nowrap; }
.catalogue-card h3 { margin:.55rem 0 .45rem; font-family:var(--font-display,Georgia,serif); font-size:1.4rem; line-height:1.18; }.catalogue-card h3 a { color:var(--ink); text-decoration:none; }.catalogue-card h3 a:hover { color:var(--gold-dark); }
.catalogue-description { min-height:4.9em; margin:0; color:var(--ink-soft); font-size:.83rem; line-height:1.65; }.catalogue-for { margin:.8rem 0 0; color:var(--ink-soft); font-size:.74rem; line-height:1.5; }.catalogue-for i { color:var(--gold-dark); }
.catalogue-card-footer { display:flex; flex-direction:column; gap:.8rem; margin-top:auto; padding-top:1rem; }.catalogue-card-footer>strong { color:var(--ink); font-size:1rem; }.catalogue-card-footer>div { display:flex; align-items:center; justify-content:space-between; gap:.5rem; }.catalogue-card-footer a { color:var(--gold-dark); font-size:.73rem; font-weight:800; text-decoration:none; }.catalogue-card-footer .catalogue-book { padding:.58rem .75rem; border-radius:999px; color:#271c12; background:linear-gradient(135deg,#e3bc77,#af783b); }
.catalogue-empty { padding:2rem; text-align:center; }.catalogue-empty p { margin:0; color:var(--ink-soft); }
body.dark-mode .catalogue-hero,body.dark-mode .catalogue-card,body.dark-mode .catalogue-empty { background:linear-gradient(145deg,rgba(43,47,49,.76),rgba(17,19,20,.68)); border-color:rgba(255,255,255,.17); }.dark-mode .catalogue-hero h1,.dark-mode .catalogue-group-heading h2,.dark-mode .catalogue-card h3 a,.dark-mode .catalogue-card-footer>strong { color:#fff8ed; }.dark-mode .catalogue-hero>p:not(.eyebrow),.dark-mode .catalogue-description,.dark-mode .catalogue-for,.dark-mode .catalogue-card-topline span:last-child,.dark-mode .catalogue-empty p { color:#e6ddd4; }.dark-mode .catalogue-nav a { color:#fff8ed; background:rgba(28,31,32,.82); border-color:rgba(255,255,255,.18); }.dark-mode .catalogue-card-footer>div>a:not(.catalogue-book) { color:#ffd99b; }.dark-mode .catalogue-card-footer .catalogue-book { color:#20170d !important; background:linear-gradient(135deg,#f0cb87,#c98a42); border:1px solid rgba(255,255,255,.25); box-shadow:0 7px 18px rgba(0,0,0,.32); text-shadow:none; }
.catalogue-nav a:focus-visible,.catalogue-card a:focus-visible,.catalogue-hero-actions a:focus-visible { outline:3px solid #e3bc77; outline-offset:3px; }
@media(max-width:900px){.catalogue-grid{grid-template-columns:repeat(2,minmax(0,1fr));}.catalogue-card-footer a{min-height:42px;display:inline-flex;align-items:center;justify-content:center;}}@media(max-width:600px){.services-catalogue-page{width:min(100% - 1.2rem,1220px);padding-top:calc(var(--header-h,76px) + 1.2rem)}.catalogue-hero{padding:1.35rem 1rem}.catalogue-hero-actions{display:grid;grid-template-columns:1fr;width:100%;}.catalogue-hero-actions a{min-height:46px;width:100%;}.catalogue-nav{justify-content:flex-start;margin-bottom:2.1rem;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch}.catalogue-nav a{min-height:42px;display:inline-flex;align-items:center}.catalogue-grid{grid-template-columns:1fr}.catalogue-card-image{height:220px}.catalogue-description{min-height:0}.catalogue-card-footer>div{display:grid;grid-template-columns:1fr;gap:.6rem}.catalogue-card-footer a{min-height:46px;width:100%;font-size:.78rem}.catalogue-card-footer .catalogue-book{order:-1}.catalogue-card-topline{font-size:.61rem}.catalogue-group{scroll-margin-top:calc(var(--header-h,76px) + 3.5rem)}}

/* Stable, touch-friendly booking cards on Android and iOS. */
@media(max-width:760px){#services-container .service-card{padding:1rem;min-height:0}#services-container .service-card img{height:170px}#services-container .service-card-buttons{display:grid;grid-template-columns:1fr 1fr;gap:.55rem}#services-container .service-card-buttons .glass-button{min-height:44px;white-space:normal;line-height:1.15}#services-container .service-card h4{font-size:1rem;line-height:1.3}#services-container .service-card p{font-size:.9rem}}@media(max-width:380px){#services-container .service-card-buttons{grid-template-columns:1fr}#services-container .service-card-buttons .book-now-btn{order:-1}}

/* Booking-service cards: retain crisp rendering after AJAX, but never allow
   the light-mode anti-blur layer to win over the dark theme. */
body.dark-mode #services-container .service-card {
    color:#fff8ed;
    background:linear-gradient(145deg,rgba(46,50,53,.86),rgba(17,19,21,.82));
    border-color:rgba(255,255,255,.22);
    box-shadow:0 18px 36px rgba(0,0,0,.42), inset 0 1px 0 rgba(255,255,255,.13);
    backdrop-filter:blur(16px) saturate(112%);
    -webkit-backdrop-filter:blur(16px) saturate(112%);
}
body.dark-mode #services-container .service-card:hover {
    border-color:rgba(227,188,119,.62);
    box-shadow:0 22px 42px rgba(0,0,0,.52), inset 0 1px 0 rgba(255,255,255,.16);
}
body.dark-mode #services-container .service-card h4 { color:#fff8ed; }
body.dark-mode #services-container .service-card p { color:#efe3d5; font-weight:700; }
body.dark-mode #services-container .service-card .read-more-btn {
    color:#fff8ed;
    background:rgba(255,255,255,.09);
    border-color:rgba(255,255,255,.32);
    text-shadow:none;
}
body.dark-mode #services-container .service-card .read-more-btn:hover {
    color:#fff;
    background:rgba(255,255,255,.16);
    border-color:rgba(236,201,130,.72);
}
body.dark-mode #services-container .service-card .book-now-btn {
    color:#25190e;
    background:linear-gradient(135deg,#f0cb87,#c4863e);
    border-color:rgba(255,255,255,.3);
    text-shadow:none;
}
body.dark-mode #services-container .service-card .service-badge.popular { color:#2b1b0b; background:#f0cb87; }
body.dark-mode #services-container .service-card .service-badge.new { color:#102b24; background:#c9e4d4; }

/* Marble gift-certificate preview matching the printable A5 voucher. */
@font-face{font-family:'Lora Voucher';src:url('/fonts/lora/Lora-Regular.ttf') format('truetype');font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:'Lora Voucher';src:url('/fonts/lora/Lora-SemiBold.ttf') format('truetype');font-weight:600;font-style:normal;font-display:swap}
@font-face{font-family:'Lora Voucher';src:url('/fonts/lora/Lora-Italic.ttf') format('truetype');font-weight:400;font-style:italic;font-display:swap}
.voucher-preview.voucher-certificate-preview{position:relative;display:block;aspect-ratio:210/148;padding:1rem 1.45rem .8rem;overflow:hidden;border-radius:0;color:#171318;background:#fbfaf7 url('/images/light.png') center/cover no-repeat;box-shadow:0 24px 65px rgba(30,20,31,.24);font-family:Arial,Helvetica,sans-serif}
.voucher-preview.voucher-certificate-preview:before{content:"";position:absolute;z-index:1;inset:.38rem;border:1px solid #b47b22;border-radius:0;clip-path:polygon(0 0,86% 0,91% 7%,100% 7%,100% 100%,0 100%)}
.certificate-corner{position:absolute;z-index:0;width:24%;height:34%;background:linear-gradient(135deg,#111 0 44%,#c28b2f 45% 49%,#171317 50% 66%,#d4a54e 67% 71%,transparent 72%)}
.certificate-corner.top{left:0;top:0;clip-path:polygon(0 0,100% 0,0 100%)}.certificate-corner.bottom{right:0;bottom:0;clip-path:polygon(100% 0,100% 100%,0 100%);background:linear-gradient(315deg,#111 0 44%,#c28b2f 45% 49%,#171317 50% 66%,#d4a54e 67% 71%,transparent 72%)}
.voucher-certificate-preview header,.voucher-certificate-preview .certificate-fields,.voucher-certificate-preview .certificate-meta,.voucher-certificate-preview .certificate-booking,.voucher-certificate-preview footer{position:relative;z-index:2}
.voucher-certificate-preview header{text-align:center}.voucher-certificate-preview header>img{display:block;width:74px;height:40px;margin:0 auto;object-fit:contain}.voucher-certificate-preview header h2{margin:-.15rem 0 0;color:#a66e14;font-family:Georgia,serif;font-size:clamp(1.15rem,3vw,1.75rem);font-weight:500;letter-spacing:.08em}.voucher-certificate-preview header em{display:block;margin:-.05rem 0 .25rem;color:#9f6a19;font-family:'Brush Script MT','Segoe Script',cursive;font-size:1.05rem}.certificate-ornament{display:flex;align-items:center;justify-content:center;height:.5rem;color:#ad761e}.certificate-ornament:before,.certificate-ornament:after{content:"";width:22%;height:1px;margin:0 .35rem;background:#b37a20}
.certificate-fields{display:grid;gap:.3rem}.certificate-fields>div{display:grid;grid-template-columns:18px auto 1fr;align-items:end;gap:.3rem;min-height:24px}.certificate-fields i{color:#ac741d;font-style:normal;text-align:center}.certificate-fields b{font-family:Georgia,serif;font-size:.58rem;white-space:nowrap}.certificate-fields span,.certificate-fields ul{min-width:0;margin:0;padding:0 .25rem .15rem;border-bottom:1px dotted #6f666e;font-family:Georgia,serif;font-size:.63rem;font-weight:700;line-height:1.2;list-style:none}.certificate-fields ul li:before{display:none}.certificate-meta{display:grid;grid-template-columns:repeat(3,1fr);gap:.55rem;margin-top:.45rem}.certificate-meta>span{display:flex;min-width:0;flex-direction:column;padding-left:.45rem;border-left:1px solid rgba(181,121,27,.55)}.certificate-meta>span:first-child{border-left:0}.certificate-meta b{color:#514351;font-size:.48rem}.certificate-meta strong{margin-top:.12rem;padding-bottom:.12rem;border-bottom:1px dotted #6f666e;font-family:Georgia,serif;font-size:.6rem}.certificate-booking{display:flex;align-items:center;gap:.35rem;margin:.5rem 0 .35rem!important;color:#2c222d!important;font-family:Georgia,serif;font-size:.54rem!important;text-align:center}.certificate-booking:before,.certificate-booking:after{content:"";flex:1;height:1px;background:#bd8730}
.voucher-certificate-preview footer{display:grid;grid-template-columns:1.15fr .45fr .5fr;align-items:center;gap:.55rem;min-height:52px;padding:.2rem .55rem 0;border-top:1px solid rgba(181,121,27,.65)}.voucher-certificate-preview footer>div:first-child{display:flex;align-items:flex-start;flex-direction:column;text-align:left}.voucher-certificate-preview footer strong{color:#171318;font-family:Georgia,serif;font-size:.6rem}.voucher-certificate-preview footer small{display:block;color:#514351;font-size:.43rem;line-height:1.25}.certificate-seal{width:42px!important;height:42px!important;margin:auto;object-fit:contain;border-left:1px solid rgba(181,121,27,.45);border-right:1px solid rgba(181,121,27,.45);padding:.18rem}.certificate-qr{text-align:center}.certificate-qr img{width:42px!important;height:42px!important;margin:auto;padding:2px;border:1px solid #ad761e;background:#fff}.voucher-certificate-preview .voucher-watermark{z-index:6;top:.65rem;right:-2.9rem}.dark-mode .voucher-preview.voucher-certificate-preview{color:#171318;background:#fbfaf7 url('/images/light.png') center/cover no-repeat}
@media(max-width:520px){.voucher-preview.voucher-certificate-preview{padding:.7rem .85rem .55rem}.voucher-certificate-preview header>img{width:58px;height:31px}.voucher-certificate-preview header h2{font-size:1rem}.voucher-certificate-preview header em{font-size:.78rem}.certificate-fields{gap:.18rem}.certificate-fields>div{grid-template-columns:14px auto 1fr;min-height:18px}.certificate-fields b{font-size:.46rem}.certificate-fields span,.certificate-fields ul{font-size:.48rem}.certificate-meta{gap:.2rem;margin-top:.28rem}.certificate-meta b{font-size:.37rem}.certificate-meta strong{font-size:.45rem}.certificate-booking{margin:.28rem 0 .2rem!important;font-size:.4rem!important}.voucher-certificate-preview footer{min-height:38px;gap:.2rem;padding:0 .25rem}.voucher-certificate-preview footer strong{font-size:.44rem}.voucher-certificate-preview footer small{font-size:.32rem}.certificate-seal,.certificate-qr img{width:31px!important;height:31px!important}}

/* Gift voucher builder and A5 live preview. */
.treatment-finder{display:flex;justify-content:center;flex-wrap:wrap;gap:.5rem;margin:1rem auto 1.4rem}.treatment-finder button{display:inline-flex;min-height:42px;align-items:center;gap:.45rem;padding:.62rem .85rem;border:1px solid rgba(168,117,56,.22);border-radius:999px;color:var(--ink);background:rgba(255,255,255,.52);font:inherit;font-size:.75rem;font-weight:800;cursor:pointer;backdrop-filter:blur(12px)}.treatment-finder button i{color:var(--gold-dark)}.treatment-finder button.active{color:#271d13;background:linear-gradient(135deg,#eccb91,#bd823d);box-shadow:0 9px 22px rgba(137,89,37,.24)}.service-seo-card[hidden]{display:none!important}body.dark-mode .treatment-finder button{color:#fff8ed;background:rgba(25,28,29,.72);border-color:rgba(255,255,255,.2)}body.dark-mode .treatment-finder button.active{color:#25190e;background:linear-gradient(135deg,#f0cb87,#c4863e)}@media(max-width:520px){.treatment-finder{display:grid;grid-template-columns:1fr 1fr}.treatment-finder button{justify-content:center;border-radius:14px}}

/* Mobile-first progressive service discovery.
   The source retains every crawlable service link, while JavaScript initially
   presents two balanced highlights from each treatment group. */
.service-seo-links {
    grid-template-columns:repeat(4,minmax(0,1fr));
    align-items:stretch;
    gap:.75rem;
}
html.js .service-seo-links[data-active-filter="featured"] .service-seo-card[data-treatment-featured="0"] {
    display:none;
}
.service-seo-links .service-seo-card {
    min-height:118px;
    padding:.95rem .72rem 1.65rem;
}
.service-seo-card-content {
    width:100%;
    gap:.25rem;
}
.service-seo-card-content strong {
    display:-webkit-box;
    overflow:hidden;
    min-height:2.5em;
    font-size:.88rem;
    line-height:1.25;
    -webkit-box-orient:vertical;
    -webkit-line-clamp:2;
}
.service-seo-card-content small {
    font-size:.6rem;
}
.service-seo-meta {
    display:block;
    margin-top:.18rem;
    color:var(--ink-soft);
    font-size:.68rem;
    font-weight:750;
    letter-spacing:.01em;
}
body.dark-mode .service-seo-meta {
    color:#eadfce;
    text-shadow:0 2px 4px rgba(0,0,0,.72);
}
.service-seo-slit {
    bottom:.62rem;
    left:24%;
    right:24%;
}
.service-discovery-footer {
    position:relative;
    z-index:2;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:1rem;
    margin-top:1.15rem;
    padding-top:1rem;
    border-top:1px solid rgba(168,117,56,.16);
}
.service-discovery-footer p {
    margin:0;
    color:var(--ink-soft);
    font-size:.76rem;
    line-height:1.45;
}
.service-catalogue-link {
    display:inline-flex;
    min-height:44px;
    flex:0 0 auto;
    align-items:center;
    justify-content:center;
    gap:.55rem;
    padding:.7rem 1rem;
    border:1px solid rgba(168,117,56,.3);
    border-radius:999px;
    color:var(--ink);
    background:rgba(255,255,255,.48);
    text-decoration:none;
    font-size:.75rem;
    font-weight:850;
    box-shadow:inset 0 1px 0 rgba(255,255,255,.68);
    backdrop-filter:blur(12px);
    -webkit-backdrop-filter:blur(12px);
}
.service-catalogue-link i {
    color:var(--gold-dark);
    transition:transform .2s ease;
}
.service-catalogue-link:hover i {
    transform:translateX(3px);
}
.treatment-finder button:focus-visible,
.service-seo-card:focus-visible,
.service-catalogue-link:focus-visible {
    outline:3px solid rgba(200,146,65,.5);
    outline-offset:3px;
}
body.dark-mode .service-discovery-footer {
    border-top-color:rgba(255,255,255,.13);
}
body.dark-mode .service-catalogue-link {
    color:#fff8ed;
    border-color:rgba(236,190,107,.36);
    background:rgba(20,21,22,.66);
}

@media (max-width:900px) {
    .service-seo-links {
        grid-template-columns:repeat(3,minmax(0,1fr));
    }
}

@media (max-width:600px) {
    .service-discovery {
        margin-top:1.35rem;
        margin-inline:.7rem;
        padding:1rem .75rem 1.05rem;
    }
    .service-discovery-heading {
        margin-bottom:.75rem;
    }
    .service-discovery-heading p {
        max-width:30rem;
        font-size:.8rem;
        line-height:1.45;
    }
    .treatment-finder {
        grid-template-columns:repeat(2,minmax(0,1fr));
        gap:.45rem;
        margin:.8rem 0 1rem;
    }
    .treatment-finder button {
        min-width:0;
        min-height:44px;
        justify-content:center;
        padding:.58rem .5rem;
        border-radius:13px;
        font-size:.68rem;
        line-height:1.15;
    }
    .treatment-finder button[data-treatment-filter="featured"] {
        grid-column:1 / -1;
    }
    .service-seo-links {
        grid-template-columns:repeat(2,minmax(0,1fr));
        gap:.55rem;
    }
    .service-seo-links .service-seo-card,
    .service-seo-links a {
        min-height:106px;
        padding:.72rem .55rem 1.45rem;
        border-radius:.9rem;
    }
    .service-seo-card-content strong {
        min-height:2.5em;
        font-size:.78rem;
    }
    .service-seo-card-content small {
        font-size:.52rem;
        letter-spacing:.045em;
    }
    .service-seo-meta {
        font-size:.61rem;
    }
    .service-seo-slit {
        bottom:.54rem;
        left:28%;
        right:28%;
    }
    .service-discovery-footer {
        flex-direction:column;
        align-items:stretch;
        gap:.7rem;
        margin-top:.9rem;
        padding-top:.85rem;
        text-align:center;
    }
    .service-catalogue-link {
        width:100%;
        border-radius:13px;
    }
}

@media (max-width:350px) {
    .service-seo-links {
        grid-template-columns:1fr;
    }
    .service-seo-links .service-seo-card,
    .service-seo-links a {
        min-height:96px;
    }
}
.veronika-story,.voucher-home-feature{display:grid;align-items:center;gap:clamp(1.2rem,4vw,3rem);width:min(1080px,calc(100% - 2rem));margin:clamp(2.5rem,6vw,5rem) auto;padding:clamp(1.4rem,4vw,2.6rem);border:1px solid rgba(255,255,255,.7);border-radius:28px;background:rgba(255,255,255,.58);box-shadow:0 22px 58px rgba(46,32,49,.13);backdrop-filter:blur(20px)}.veronika-story{grid-template-columns:auto 1fr auto}.veronika-monogram{display:grid;width:118px;height:118px;place-items:center;border:1px solid rgba(187,136,68,.42);border-radius:50%;background:radial-gradient(circle at 35% 25%,rgba(255,255,255,.92),rgba(226,206,220,.66));box-shadow:inset 0 0 0 8px rgba(255,255,255,.4),0 16px 36px rgba(51,38,59,.15)}.veronika-monogram span{color:#9b6b37;font-family:Georgia,serif;font-size:2rem;letter-spacing:.08em}.veronika-story h2,.voucher-home-feature h2{margin:.2rem 0 .6rem;color:var(--ink);font-family:var(--font-display,Georgia,serif);font-size:clamp(1.7rem,4vw,2.8rem);line-height:1.1}.veronika-story-copy>p:not(.eyebrow),.voucher-home-feature>div:last-child>p:not(.eyebrow){max-width:62ch;margin:.2rem 0;color:var(--ink-soft);line-height:1.7}.veronika-signature{display:block;margin-top:.8rem;color:var(--gold-dark);font-family:Georgia,serif;font-size:1.15rem;font-style:italic}.voucher-home-feature{grid-template-columns:minmax(280px,.8fr) minmax(0,1.2fr);overflow:hidden;background:linear-gradient(135deg,rgba(255,255,255,.7),rgba(235,222,233,.46))}.voucher-home-card{position:relative;display:flex;aspect-ratio:210/148;align-items:flex-start;justify-content:flex-end;flex-direction:column;padding:1.5rem;overflow:hidden;border:1px solid rgba(255,255,255,.85);border-radius:23px;background:linear-gradient(135deg,rgba(255,255,255,.94),rgba(229,211,226,.88)),url('/images/light.png') center/cover;box-shadow:0 22px 45px rgba(45,29,48,.2);transform:rotate(-2deg)}.voucher-home-card:after{content:"";position:absolute;inset:.6rem;border:1px solid rgba(177,126,58,.38);border-radius:17px}.voucher-home-card img{position:absolute;z-index:1;top:1.3rem;left:1.4rem;width:82px}.voucher-home-card span,.voucher-home-card strong{position:relative;z-index:1}.voucher-home-card span{color:#a67537;font-size:.6rem;font-weight:800;letter-spacing:.15em;text-transform:uppercase}.voucher-home-card strong{margin-top:.2rem;color:#3c2c3d;font-family:Georgia,serif;font-size:1.8rem}.voucher-home-feature .btn-gold{display:inline-flex;margin-top:1.1rem}body.dark-mode .veronika-story,body.dark-mode .voucher-home-feature{background:rgba(31,34,36,.7);border-color:rgba(255,255,255,.17)}body.dark-mode .veronika-story h2,body.dark-mode .voucher-home-feature h2{color:#fff8ed}body.dark-mode .veronika-story-copy>p:not(.eyebrow),body.dark-mode .voucher-home-feature>div:last-child>p:not(.eyebrow){color:#e7ded5}@media(max-width:760px){.veronika-story,.voucher-home-feature{grid-template-columns:1fr;text-align:center}.veronika-monogram{margin:auto}.veronika-story .btn-gold{justify-self:stretch}.voucher-home-card{width:min(100%,480px);margin:auto;text-align:left}}
.voucher-page{width:min(1220px,calc(100% - 2rem));margin:0 auto;padding:calc(var(--header-h,76px) + 2rem) 0 5rem}.voucher-hero{max-width:960px;margin:0 auto 1.4rem;padding:clamp(1.5rem,5vw,4rem);text-align:center;border:1px solid rgba(255,255,255,.72);border-radius:30px;background:linear-gradient(135deg,rgba(255,255,255,.76),rgba(237,229,237,.48));box-shadow:0 25px 65px rgba(49,34,53,.14);backdrop-filter:blur(18px)}.voucher-hero h1,.voucher-success h1{margin:.2rem 0 .8rem;color:var(--ink);font-family:var(--font-display,Georgia,serif);font-size:clamp(2.4rem,6vw,4.8rem);line-height:1}.voucher-hero>div>p:not(.eyebrow){max-width:65ch;margin:0 auto;color:var(--ink-soft);line-height:1.75}.voucher-promises{display:flex;justify-content:center;flex-wrap:wrap;gap:.65rem;margin-top:1.25rem}.voucher-promises span{display:inline-flex;align-items:center;gap:.5rem;padding:.65rem .85rem;border:1px solid rgba(168,117,56,.2);border-radius:999px;color:var(--ink-soft);background:rgba(255,255,255,.5);font-size:.75rem}.voucher-promises i{color:var(--gold-dark)}.voucher-builder{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(360px,.85fr);gap:1.2rem;align-items:start}.voucher-form fieldset{margin:0 0 1rem;padding:clamp(1.1rem,3vw,1.6rem);border:1px solid rgba(255,255,255,.72);border-radius:24px;background:rgba(255,255,255,.58);box-shadow:0 14px 38px rgba(45,32,49,.1);backdrop-filter:blur(18px)}.voucher-form legend{padding:0 .4rem;color:var(--ink);font-family:var(--font-display,Georgia,serif);font-size:1.25rem;font-weight:700}.voucher-services{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.55rem}.voucher-service{position:relative;display:flex;align-items:center;justify-content:space-between;min-height:74px;margin:0;padding:.85rem;border:1px solid rgba(168,117,56,.18);border-radius:16px;background:rgba(255,255,255,.5);cursor:pointer}.voucher-service input{position:absolute;opacity:0}.voucher-service strong,.voucher-service small{display:block}.voucher-service strong{color:var(--ink);font-size:.82rem}.voucher-service small{margin-top:.25rem;color:var(--ink-soft);font-size:.68rem}.voucher-service>i{display:grid;width:25px;height:25px;place-items:center;border:1px solid rgba(168,117,56,.25);border-radius:50%;color:transparent}.voucher-service:has(input:checked){border-color:#c7924e;background:rgba(225,194,145,.2);box-shadow:inset 0 0 0 1px rgba(199,146,78,.28)}.voucher-service:has(input:checked)>i{color:#fff;background:#b47c37}.voucher-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.8rem}.voucher-fields label,#voucher-date-field,.voucher-admin-form label{display:block;color:var(--ink-soft);font-size:.74rem;font-weight:700}.voucher-fields .wide{grid-column:1/-1}.voucher-fields input,.voucher-fields textarea,#voucher-date-field input{width:100%;margin-top:.35rem;padding:.78rem .85rem;border:1px solid rgba(118,93,120,.2);border-radius:13px;color:var(--ink);background:rgba(255,255,255,.7);font:inherit;font-size:.9rem}.voucher-fields textarea{resize:vertical}.voucher-fields label small{display:block;text-align:right}.voucher-choice{display:grid;gap:.5rem;margin-bottom:1rem}.voucher-choice label,.voucher-check{display:flex!important;align-items:flex-start;gap:.55rem;margin:.7rem 0;color:var(--ink-soft);font-size:.78rem;line-height:1.5}.voucher-choice input,.voucher-check input{margin-top:.18rem}.voucher-choice a,.voucher-check a{color:var(--gold-dark)}.voucher-submit{display:flex;width:100%;min-height:52px;align-items:center;justify-content:center;gap:.55rem;border:0;cursor:pointer}.hp-field{position:absolute!important;left:-9999px!important}.voucher-preview-wrap{position:sticky;top:calc(var(--header-h,76px) + 1rem);text-align:center}.voucher-preview{position:relative;aspect-ratio:210/148;overflow:hidden;padding:clamp(1.2rem,3vw,2.1rem);text-align:left;border:1px solid rgba(255,255,255,.82);border-radius:25px;background:linear-gradient(135deg,rgba(255,255,255,.91),rgba(238,225,234,.86)),url('/images/light.png') center/cover;box-shadow:0 24px 65px rgba(45,29,48,.2)}.voucher-preview:before{content:"";position:absolute;inset:.65rem;border:1px solid rgba(177,126,58,.45);border-radius:19px;pointer-events:none}.voucher-preview img{width:100px;height:auto}.voucher-kicker{margin:1rem 0 .2rem;color:#a67537;font-size:.6rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase}.voucher-preview h2{margin:0;font-family:Georgia,serif;font-size:clamp(1.7rem,4vw,2.6rem)}.voucher-preview ul{margin:.8rem 0;padding:0;list-style:none;color:#554456;font-size:.8rem;line-height:1.5}.voucher-preview ul li:before{content:"✦";margin-right:.4rem;color:#b78442}.voucher-preview blockquote{min-height:1.2em;margin:.7rem 0;color:#665367;font-family:Georgia,serif;font-size:.85rem;font-style:italic}.voucher-preview>p:not(.voucher-kicker){margin:.4rem 0;font-size:.75rem}.voucher-preview-bottom{position:absolute;right:1.6rem;bottom:1.5rem;display:flex;gap:1.3rem;text-align:right}.voucher-preview-bottom span{display:flex;flex-direction:column;color:#8b758b;font-size:.55rem;text-transform:uppercase}.voucher-preview-bottom strong{margin-top:.15rem;color:#473648;font-size:.78rem}.voucher-watermark{position:absolute;z-index:3;top:1rem;right:-2.5rem;padding:.35rem 3rem;transform:rotate(25deg);color:#7d2534;background:rgba(255,229,231,.8);font-size:.55rem;font-weight:900;letter-spacing:.08em}.voucher-error{margin:0 auto 1rem;padding:.85rem 1rem;border-radius:13px;color:#7b2431;background:#f8dfe3;text-align:center}.voucher-success{max-width:700px;margin:5vh auto;padding:clamp(2rem,6vw,4rem);text-align:center}.voucher-success>i{font-size:2.5rem;color:var(--gold-dark)}.voucher-success p:not(.eyebrow){color:var(--ink-soft);line-height:1.7}.voucher-success .btn-gold{display:inline-flex;margin-top:1rem}body.dark-mode .voucher-hero,body.dark-mode .voucher-form fieldset{background:rgba(31,34,36,.7);border-color:rgba(255,255,255,.18)}body.dark-mode .voucher-hero h1,body.dark-mode .voucher-form legend{color:#fff8ed}body.dark-mode .voucher-hero>div>p:not(.eyebrow),body.dark-mode .voucher-promises span,body.dark-mode .voucher-fields label,body.dark-mode .voucher-choice label,body.dark-mode .voucher-check{color:#e7ded5}body.dark-mode .voucher-service{background:rgba(20,22,23,.55);border-color:rgba(255,255,255,.16)}body.dark-mode .voucher-service strong{color:#fff8ed}body.dark-mode .voucher-service small{color:#e7ded5}body.dark-mode .voucher-fields input,body.dark-mode .voucher-fields textarea,body.dark-mode #voucher-date-field input{color:#fff;background:rgba(12,14,15,.68);border-color:rgba(255,255,255,.22)}@media(max-width:900px){.voucher-builder{grid-template-columns:1fr}.voucher-preview-wrap{position:static;order:-1;max-width:620px;margin:0 auto;width:100%}}@media(max-width:600px){.voucher-page{width:calc(100% - 1rem);padding-top:calc(var(--header-h,76px) + 1rem)}.voucher-hero{padding:1.5rem 1rem}.voucher-services,.voucher-fields{grid-template-columns:1fr}.voucher-fields .wide{grid-column:auto}.voucher-preview{border-radius:18px}.voucher-preview img{width:76px}.voucher-preview-bottom{right:1.1rem;bottom:1rem}.voucher-promises{align-items:stretch;flex-direction:column}.voucher-promises span{border-radius:14px}}

/* Keep certificate copy highly legible while retaining the marble texture. */
.voucher-preview.voucher-certificate-preview,
.dark-mode .voucher-preview.voucher-certificate-preview{
  background:#fbfaf7 url('/images/voucher-certificate-background.jpg') center/100% 100% no-repeat;
  font-family:'Lora Voucher',Georgia,serif;
}
.voucher-preview.voucher-certificate-preview:before,
.voucher-preview.voucher-certificate-preview .certificate-corner{display:none!important}
.voucher-certificate-preview header h2,
.voucher-certificate-preview header em,
.certificate-fields b,
.certificate-fields span,
.certificate-fields ul,
.certificate-meta b,
.certificate-meta strong,
.certificate-booking,
.voucher-certificate-preview footer strong,
.voucher-certificate-preview footer small{font-family:'Lora Voucher',Georgia,serif!important}
.voucher-certificate-preview header h2{font-weight:600!important;letter-spacing:.11em}
.voucher-certificate-preview header em,.certificate-fields .message span{font-style:italic}
.voucher-check:has(input[name="show_price"]),
.voucher-choice label:not(:first-child),#voucher-date-field,
.voucher-certificate-preview .certificate-meta>span:not(:last-child),
.voucher-success .eyebrow{display:none!important}
.voucher-certificate-preview .certificate-meta{grid-template-columns:1fr;justify-items:center}

/* Stable, proportional voucher preview: the copy stays inside its A5 artwork. */
.voucher-preview-wrap{container-type:inline-size}
.voucher-preview.voucher-certificate-preview{display:grid!important;grid-template-rows:auto minmax(0,1fr) auto auto auto;align-content:stretch;padding:3.5cqw 7cqw 3cqw!important}
.voucher-certificate-preview>.certificate-background{position:absolute;z-index:0;inset:0;width:100%!important;height:100%!important;object-fit:fill;pointer-events:none}.voucher-certificate-preview>header,.voucher-certificate-preview>.certificate-fields,.voucher-certificate-preview>.certificate-meta,.voucher-certificate-preview>.certificate-booking,.voucher-certificate-preview>footer{position:relative;z-index:2}
.voucher-certificate-preview header>img{width:14cqw!important;height:8cqw!important;max-width:82px;max-height:47px}
.voucher-certificate-preview header h2{font-size:clamp(.9rem,4.2cqw,1.65rem)!important;line-height:1!important}
.voucher-certificate-preview header em{margin:0!important;font-size:clamp(.65rem,2.5cqw,1rem)!important}
.voucher-certificate-preview .certificate-ornament{height:1.5cqw;min-height:4px}
.voucher-certificate-preview .certificate-fields{display:grid;align-content:center;gap:clamp(.12rem,.8cqw,.3rem);min-height:0}
.voucher-certificate-preview .certificate-fields>div{grid-template-columns:3.5cqw auto minmax(0,1fr);min-height:clamp(16px,5cqw,25px);gap:1cqw}
.voucher-certificate-preview .certificate-fields b{font-size:clamp(.38rem,1.55cqw,.58rem)}
.voucher-certificate-preview .certificate-fields span,.voucher-certificate-preview .certificate-fields ul{max-height:2.55em;overflow:hidden;padding-bottom:.25cqw;font-size:clamp(.4rem,1.65cqw,.63rem);overflow-wrap:anywhere}
.voucher-certificate-preview .certificate-fields ul li{display:inline}
.voucher-certificate-preview .certificate-fields ul li+li:before{content:" · ";color:#a66e14}
.voucher-certificate-preview .certificate-meta{margin-top:.3cqw!important}
.voucher-certificate-preview .certificate-meta b{font-size:clamp(.34rem,1.25cqw,.48rem)}
.voucher-certificate-preview .certificate-meta strong{font-size:clamp(.4rem,1.5cqw,.6rem)}
.voucher-certificate-preview .certificate-booking{margin:.7cqw 0 .45cqw!important;font-size:clamp(.34rem,1.35cqw,.54rem)!important;line-height:1.2}
.voucher-certificate-preview footer{min-height:clamp(34px,10cqw,52px);gap:1.2cqw;padding:0 1.5cqw}
.voucher-certificate-preview footer strong{font-size:clamp(.38rem,1.5cqw,.6rem)}
.voucher-certificate-preview footer small{font-size:clamp(.29rem,1.05cqw,.43rem)}
.voucher-certificate-preview .certificate-seal,.voucher-certificate-preview .certificate-qr img{width:clamp(28px,9cqw,42px)!important;height:clamp(28px,9cqw,42px)!important}

/* Secure gift-voucher redemption and combined-duration booking. */
.voucher-booking-page{width:min(1120px,calc(100% - 2rem));margin:0 auto;padding:calc(var(--header-h,76px) + 2rem) 0 5rem}.voucher-booking-hero{max-width:850px;margin:0 auto 1.25rem;padding:clamp(1.5rem,5vw,3.4rem);text-align:center}.voucher-booking-hero h1{margin:.25rem 0 .7rem;color:var(--ink);font-family:var(--font-display,Georgia,serif);font-size:clamp(2rem,5vw,4rem);line-height:1.05}.voucher-booking-hero>p:last-child{max-width:65ch;margin:auto;color:var(--ink-soft);line-height:1.7}.voucher-booking-layout{display:grid;grid-template-columns:minmax(280px,.78fr) minmax(0,1.22fr);align-items:start;gap:1rem}.voucher-bundle-card,.voucher-redemption-form,.voucher-booking-state{padding:clamp(1.2rem,3vw,2rem);border-radius:24px}.voucher-bundle-card{position:sticky;top:calc(var(--header-h,76px) + 1rem)}.voucher-bundle-card h2{margin:.25rem 0 1rem;color:var(--ink);font-family:var(--font-display,Georgia,serif)}.voucher-bundle-card ul{display:grid;gap:.55rem;margin:0;padding:0;list-style:none}.voucher-bundle-card li{display:grid;grid-template-columns:26px 1fr auto;align-items:center;gap:.55rem;padding:.75rem;border:1px solid rgba(169,118,55,.18);border-radius:14px;background:rgba(255,255,255,.46)}.voucher-bundle-card li i{color:var(--gold-dark)}.voucher-bundle-card li span{color:var(--ink);font-weight:700}.voucher-bundle-card li small{color:var(--ink-soft)}.voucher-duration{display:flex;justify-content:space-between;gap:1rem;margin-top:1rem;padding-top:1rem;border-top:1px solid rgba(169,118,55,.25);color:var(--ink-soft)}.voucher-duration strong{color:var(--ink)}.voucher-redemption-form{display:grid;gap:1rem}.voucher-redemption-form>label,.voucher-recipient-fields label{display:grid;gap:.38rem;color:var(--ink-soft);font-size:.78rem;font-weight:800}.voucher-redemption-form input:not([type=checkbox]),.voucher-recipient-fields input{width:100%;min-height:46px;padding:.72rem .8rem;border:1px solid rgba(118,93,120,.22);border-radius:13px;color:var(--ink);background:rgba(255,255,255,.7);font:inherit}.voucher-recipient-fields{display:grid;grid-template-columns:1fr 1fr;gap:.75rem}.voucher-recipient-fields label:last-child{grid-column:1/-1}.voucher-slot-section{padding:1rem;border:1px solid rgba(169,118,55,.18);border-radius:17px;background:rgba(255,255,255,.35)}.voucher-slot-section h3{margin:0 0 .75rem;color:var(--ink);font-family:var(--font-display,Georgia,serif)}.voucher-time-slots{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.5rem}.voucher-time-slot{min-height:42px;border:1px solid rgba(169,118,55,.3);border-radius:12px;color:var(--ink);background:rgba(255,255,255,.7);font:inherit;font-weight:800;cursor:pointer}.voucher-time-slot.selected{color:#25190e;background:linear-gradient(135deg,#f0cb87,#c4863e);box-shadow:0 8px 20px rgba(137,89,37,.22)}.voucher-booking-response{min-height:1.4em;margin:0;color:#267044;font-weight:800}.voucher-booking-response.error{color:#9a3441}.voucher-booking-state{max-width:700px;margin:1rem auto;text-align:center}.voucher-booking-state>i{color:var(--gold-dark);font-size:2rem}.voucher-booking-state h2{color:var(--ink);font-family:var(--font-display,Georgia,serif)}.voucher-booking-state .btn-gold{display:inline-flex;margin-top:1rem}body.dark-mode .voucher-booking-hero h1,body.dark-mode .voucher-bundle-card h2,body.dark-mode .voucher-slot-section h3,body.dark-mode .voucher-booking-state h2,body.dark-mode .voucher-bundle-card li span,body.dark-mode .voucher-duration strong{color:#fff8ed}body.dark-mode .voucher-booking-hero>p:last-child,body.dark-mode .voucher-redemption-form>label,body.dark-mode .voucher-recipient-fields label,body.dark-mode .voucher-bundle-card li small,body.dark-mode .voucher-duration{color:#e7ded5}body.dark-mode .voucher-bundle-card li,body.dark-mode .voucher-slot-section{background:rgba(18,21,22,.56);border-color:rgba(255,255,255,.16)}body.dark-mode .voucher-redemption-form input:not([type=checkbox]){color:#fff;background:rgba(10,12,13,.7);border-color:rgba(255,255,255,.2)}body.dark-mode .voucher-time-slot{color:#fff8ed;background:rgba(17,20,21,.78);border-color:rgba(255,255,255,.2)}body.dark-mode .voucher-time-slot.selected{color:#25190e;background:linear-gradient(135deg,#f0cb87,#c4863e)}@media(max-width:780px){.voucher-booking-layout{grid-template-columns:1fr}.voucher-bundle-card{position:static}.voucher-time-slots{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:520px){.voucher-booking-page{width:calc(100% - 1rem);padding-top:calc(var(--header-h,76px) + 1rem)}.voucher-booking-hero,.voucher-bundle-card,.voucher-redemption-form{padding:1rem;border-radius:18px}.voucher-bundle-card li{grid-template-columns:22px 1fr}.voucher-bundle-card li small{grid-column:2}.voucher-recipient-fields{grid-template-columns:1fr}.voucher-recipient-fields label:last-child{grid-column:auto}.voucher-time-slots{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* Voucher booking progress, clear slot selection and confirmation feedback. */
.voucher-slot-section{border-width:2px!important;box-shadow:inset 0 1px 0 rgba(255,255,255,.6),0 12px 28px rgba(50,34,53,.08)}
.voucher-slot-section h3{display:flex;align-items:center;gap:.55rem;font-size:1.3rem}.voucher-slot-section h3:before{content:"\f017";font-family:"Font Awesome 6 Free";font-weight:900;color:var(--gold-dark)}
.voucher-time-slots{grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:.7rem!important}
.voucher-time-slot{display:flex!important;min-height:54px!important;align-items:center;justify-content:center;gap:.5rem;border-width:2px!important;font-size:1rem!important;box-shadow:0 7px 17px rgba(44,30,47,.08);transition:transform .18s ease,box-shadow .18s ease,background .18s ease!important}
.voucher-time-slot i{display:none}.voucher-time-slot:hover{transform:translateY(-2px);box-shadow:0 11px 24px rgba(44,30,47,.14)}.voucher-time-slot.selected i{display:inline-block}.voucher-time-slot.selected{transform:translateY(-2px);border-color:#9c692e!important;box-shadow:0 12px 27px rgba(137,89,37,.3)!important}
.voucher-selected-time{display:flex;align-items:center;justify-content:center;gap:.45rem;margin:1rem 0 0;padding:.75rem;border:1px solid rgba(169,118,55,.25);border-radius:13px;color:var(--ink);background:rgba(232,205,160,.25);font-weight:700}.voucher-selected-time i{color:var(--gold-dark)}
.voucher-slots-loading,.voucher-no-slots{grid-column:1/-1;display:flex;min-height:70px;align-items:center;justify-content:center;gap:.65rem;margin:0;color:var(--ink-soft);text-align:center}
.voucher-process-spinner{display:inline-block;width:34px;height:34px;border:3px solid rgba(184,132,67,.22);border-top-color:#b57c37;border-radius:50%;animation:voucher-spin .75s linear infinite}.voucher-process-spinner.small{width:18px;height:18px;border-width:2px;vertical-align:middle}
@keyframes voucher-spin{to{transform:rotate(360deg)}}
.voucher-submit,.glass-button{gap:.55rem}.voucher-redemption-form.is-submitting{pointer-events:none;opacity:.82}
.voucher-process-modal{position:fixed;z-index:10050;inset:0;display:grid;place-items:center;padding:1rem;background:rgba(23,18,26,.58);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}.voucher-process-modal[hidden]{display:none}.voucher-process-dialog{width:min(440px,100%);padding:clamp(1.5rem,5vw,2.5rem);text-align:center;border:1px solid rgba(255,255,255,.75);border-radius:26px;background:rgba(251,247,250,.94);box-shadow:0 30px 90px rgba(18,12,20,.4);animation:modal-in .25s ease}.voucher-process-icon{display:grid;width:76px;height:76px;margin:0 auto 1rem;place-items:center;border-radius:50%;font-size:2rem}.voucher-process-modal.is-loading .voucher-process-icon{background:rgba(223,195,151,.2)}.voucher-process-modal.is-success .voucher-process-icon{color:#fff;background:linear-gradient(135deg,#7da17d,#4e7958);box-shadow:0 12px 30px rgba(63,111,73,.25)}.voucher-process-modal.is-error .voucher-process-icon{color:#fff;background:linear-gradient(135deg,#c86670,#963b48)}.voucher-process-dialog h2{margin:.2rem 0 .7rem;color:#392c3b;font-family:var(--font-display,Georgia,serif);font-size:clamp(1.5rem,4vw,2rem)}.voucher-process-dialog p{margin:0;color:#6b5b6d;line-height:1.65}.voucher-process-close{margin-top:1.2rem;border:0;cursor:pointer}.voucher-modal-open{overflow:hidden}
body.dark-mode .voucher-selected-time{color:#fff8ed;background:rgba(207,157,82,.15);border-color:rgba(236,201,130,.35)}body.dark-mode .voucher-slots-loading,body.dark-mode .voucher-no-slots{color:#e7ded5}body.dark-mode .voucher-process-dialog{border-color:rgba(255,255,255,.2);background:rgba(27,29,31,.96)}body.dark-mode .voucher-process-dialog h2{color:#fff8ed}body.dark-mode .voucher-process-dialog p{color:#e7ded5}
@media(max-width:520px){.voucher-time-slots{grid-template-columns:repeat(2,minmax(0,1fr))!important}.voucher-time-slot{min-height:52px!important}.voucher-process-dialog{border-radius:21px}}

/* Permanent gallery references and local inspiration list. */
.gallery-page-card,.gallery-slide{position:relative}.gallery-reference,.gallery-page-card figcaption{letter-spacing:.08em}.gallery-favourite{position:absolute;z-index:3;top:.65rem;right:.65rem;display:grid;width:42px;height:42px;padding:0;place-items:center;border:1px solid rgba(255,255,255,.7);border-radius:50%;color:#fff;background:rgba(32,24,35,.46);box-shadow:0 8px 22px rgba(20,15,23,.24);backdrop-filter:blur(12px);cursor:pointer}.gallery-favourite.is-selected{color:#5b2840;background:#f7dfdf}.gallery-favourites-bar{position:sticky;z-index:30;bottom:1rem;display:flex;align-items:center;justify-content:space-between;gap:1rem;width:min(780px,calc(100% - 1rem));margin:1.5rem auto 0;padding:.75rem .9rem;border:1px solid rgba(255,255,255,.72);border-radius:18px;background:rgba(249,245,248,.8);box-shadow:0 16px 38px rgba(40,27,43,.2);backdrop-filter:blur(18px)}.gallery-favourites-bar[hidden]{display:none}.gallery-favourites-bar strong{display:block;color:var(--ink)}.gallery-favourites-bar span{color:var(--ink-soft);font-size:.78rem}.gallery-favourites-bar .btn-gold{border:0;cursor:pointer}.gallery-reference{position:absolute;inset:auto .65rem .65rem auto;padding:.35rem .55rem;border-radius:999px;color:#fff;background:rgba(24,18,27,.58);font-size:.65rem;font-weight:800;box-shadow:0 6px 16px rgba(0,0,0,.2);backdrop-filter:blur(8px)}body.dark-mode .gallery-favourites-bar{background:rgba(30,32,34,.88);border-color:rgba(255,255,255,.2)}body.dark-mode .gallery-favourites-bar strong{color:#fff8ed}body.dark-mode .gallery-favourites-bar span{color:#e7ded5}@media(max-width:600px){.gallery-favourites-bar{align-items:stretch;flex-direction:column;bottom:.5rem}.gallery-favourites-bar .btn-gold{width:100%}}

/* Clear gallery sharing feedback and a dedicated copy-link fallback. */
.gallery-favourites-copy{min-width:0}.gallery-favourites-copy small{display:block;max-width:48ch;margin-top:.3rem;color:var(--ink-soft);font-size:.7rem;line-height:1.4}.gallery-share-controls{position:relative;display:flex;flex:0 0 auto;flex-wrap:wrap;justify-content:flex-end;gap:.5rem}.gallery-share-controls .btn-gold,.gallery-share-controls .btn-outline{display:inline-flex;min-height:42px;align-items:center;justify-content:center;gap:.45rem;padding:.65rem .85rem;white-space:nowrap}.gallery-share-status{position:absolute;right:0;bottom:calc(100% + .55rem);width:max-content;max-width:min(360px,80vw);margin:0;padding:.65rem .8rem;border:1px solid rgba(104,145,108,.35);border-radius:12px;color:#244b2b;background:rgba(239,251,240,.97);box-shadow:0 12px 28px rgba(24,35,26,.18);font-size:.75rem;line-height:1.4}.gallery-share-status[hidden]{display:none}.gallery-share-status.is-error{color:#71332f;border-color:rgba(176,92,83,.35);background:rgba(255,242,240,.98)}body.dark-mode .gallery-favourites-copy small{color:#e7ded5}body.dark-mode .gallery-copy-link{color:#fff8ed;border-color:rgba(255,255,255,.35);background:rgba(255,255,255,.07)}@media(max-width:700px){.gallery-share-controls{width:100%;display:grid;grid-template-columns:1fr 1fr}.gallery-share-controls .btn-gold,.gallery-share-controls .btn-outline{width:100%;padding-inline:.6rem}.gallery-share-status{right:auto;left:0;max-width:100%}}@media(max-width:430px){.gallery-share-controls{grid-template-columns:1fr}.gallery-favourites-copy small{font-size:.72rem}}

/* The collapsed Call/Viber fan must never cover nearby mobile controls. */
.floating-contact{pointer-events:none}.floating-contact-trigger{pointer-events:auto;touch-action:manipulation;-webkit-tap-highlight-color:transparent}.floating-contact-actions{visibility:hidden!important;pointer-events:none!important}.floating-contact-action{pointer-events:none;touch-action:manipulation;-webkit-tap-highlight-color:transparent}.floating-contact:hover .floating-contact-actions,.floating-contact:focus-within .floating-contact-actions,.floating-contact.is-open .floating-contact-actions{visibility:visible!important}.floating-contact:hover .floating-contact-action,.floating-contact:focus-within .floating-contact-action,.floating-contact.is-open .floating-contact-action{pointer-events:auto}
@media(hover:none),(pointer:coarse){.floating-contact:not(.is-open) .floating-contact-actions{visibility:hidden!important;pointer-events:none!important;opacity:0!important}.floating-contact:not(.is-open) .floating-contact-action{pointer-events:none!important}.floating-contact.is-open .floating-contact-actions{visibility:visible!important;opacity:1!important}.floating-contact.is-open .floating-contact-action{pointer-events:auto!important}}

/* Samsung/Android gallery sharing stability. */
.gallery-share-open{position:fixed;left:0;width:100%;overflow:hidden}.gallery-share-modal{height:100dvh;min-height:100%;touch-action:manipulation;overscroll-behavior:contain}.gallery-share-dialog{max-height:calc(100dvh - 2rem);overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}.gallery-share-controls button,.gallery-share-options button,.gallery-share-close{touch-action:manipulation;-webkit-tap-highlight-color:transparent}@media(max-width:700px){.gallery-favourites-bar{align-items:center;flex-direction:row;flex-wrap:wrap}.gallery-favourites-copy{flex:1 1 150px}.gallery-favourites-copy span{display:block;overflow-wrap:anywhere}.gallery-share-controls{flex:0 0 auto;width:auto}.gallery-share-controls .btn-gold{width:auto;max-width:100%;padding:.7rem .9rem}}@media(max-width:420px){.gallery-favourites-bar{padding:.7rem}.gallery-share-controls{margin-left:auto}.gallery-share-controls .btn-gold{font-size:.72rem}.gallery-share-dialog{max-height:calc(100dvh - 1.3rem);padding:1.15rem}}

/* Gallery share action sheet. */
.gallery-share-controls{display:flex}.gallery-share-controls .btn-gold{width:auto}.gallery-share-modal{position:fixed;z-index:10060;inset:0;display:grid;place-items:center;padding:1rem}.gallery-share-modal[hidden]{display:none}.gallery-share-backdrop{position:absolute;inset:0;width:100%;height:100%;padding:0;border:0;background:rgba(23,18,26,.58);backdrop-filter:blur(13px);-webkit-backdrop-filter:blur(13px);cursor:pointer}.gallery-share-dialog{position:relative;z-index:1;width:min(460px,100%);padding:clamp(1.35rem,5vw,2rem);border:1px solid rgba(255,255,255,.78);border-radius:26px;background:rgba(250,247,249,.94);box-shadow:0 30px 90px rgba(19,13,21,.42);animation:modal-in .24s ease}.gallery-share-close{position:absolute;top:.8rem;right:.8rem;display:grid;width:42px;height:42px;padding:0;place-items:center;border:1px solid rgba(81,62,83,.13);border-radius:50%;color:var(--ink);background:rgba(255,255,255,.62);cursor:pointer}.gallery-share-icon{display:grid;width:58px;height:58px;margin:0 auto .9rem;place-items:center;border-radius:50%;color:#fff;background:linear-gradient(135deg,#c49a5a,#94612e);box-shadow:0 12px 28px rgba(142,93,42,.3);font-size:1.25rem}.gallery-share-dialog h2{margin:.1rem 2rem .55rem;text-align:center;color:var(--ink);font-family:var(--font-display,Georgia,serif);font-size:clamp(1.45rem,5vw,2rem)}.gallery-share-dialog>p:not(.gallery-modal-status){margin:0 auto 1.15rem;text-align:center;color:var(--ink-soft);font-size:.88rem;line-height:1.55}.gallery-share-options{display:grid;gap:.65rem}.gallery-share-options button{display:grid;grid-template-columns:46px 1fr;align-items:center;gap:.75rem;width:100%;padding:.75rem;border:1px solid rgba(114,86,113,.14);border-radius:16px;text-align:left;color:var(--ink);background:rgba(255,255,255,.6);cursor:pointer;transition:transform .18s ease,border-color .18s ease,background .18s ease}.gallery-share-options button:hover,.gallery-share-options button:focus-visible{transform:translateY(-2px);border-color:rgba(183,132,65,.55);background:rgba(255,255,255,.9)}.gallery-share-options button>i{display:grid;width:46px;height:46px;place-items:center;border-radius:13px;color:#9d6a31;background:rgba(221,191,144,.22);font-size:1.05rem}.gallery-share-options button span{display:block;min-width:0}.gallery-share-options button strong,.gallery-share-options button small{display:block}.gallery-share-options button strong{font-size:.9rem}.gallery-share-options button small{margin-top:.16rem;color:var(--ink-soft);font-size:.7rem}.gallery-modal-status{margin:.8rem 0 0;padding:.7rem .8rem;border-radius:12px;color:#244b2b;background:rgba(223,244,225,.76);font-size:.76rem;line-height:1.4}.gallery-modal-status[hidden]{display:none}.gallery-modal-status.is-error{color:#71332f;background:rgba(255,226,222,.78)}.gallery-share-open{overflow:hidden}body.dark-mode .gallery-share-dialog{border-color:rgba(255,255,255,.18);background:rgba(28,30,32,.96)}body.dark-mode .gallery-share-close{color:#fff8ed;border-color:rgba(255,255,255,.18);background:rgba(255,255,255,.08)}body.dark-mode .gallery-share-dialog h2,body.dark-mode .gallery-share-options button{color:#fff8ed}body.dark-mode .gallery-share-dialog>p:not(.gallery-modal-status),body.dark-mode .gallery-share-options button small{color:#e7ded5}body.dark-mode .gallery-share-options button{border-color:rgba(255,255,255,.14);background:rgba(255,255,255,.06)}body.dark-mode .gallery-share-options button:hover{border-color:rgba(227,188,119,.55);background:rgba(255,255,255,.11)}@media(max-width:700px){.gallery-share-controls{display:flex;justify-content:flex-end}.gallery-share-controls .btn-gold{width:auto}}@media(max-width:520px){.gallery-share-modal{align-items:end;padding:.65rem}.gallery-share-dialog{border-radius:24px 24px 18px 18px}.gallery-share-options button{min-height:68px}}
.service-provider{display:flex;align-items:center;justify-content:space-between;gap:1.5rem;margin:1.25rem auto;padding:1.35rem 1.6rem}.service-provider h2,.service-provider p{margin:.25rem 0}.service-provider .btn-gold{flex:0 0 auto}
@media(max-width:640px){.service-provider{align-items:stretch;flex-direction:column}.service-provider .btn-gold{width:100%;text-align:center}}
.provider-story-photo{width:118px;height:118px;overflow:hidden;border:1px solid rgba(187,136,68,.42);border-radius:50%;box-shadow:0 16px 36px rgba(51,38,59,.18)}.provider-story-photo img{width:100%;height:100%;object-fit:cover}.provider-story-specialty{display:block;margin:.15rem 0 .65rem;color:var(--gold-dark);font-size:.82rem;letter-spacing:.06em;text-transform:uppercase}body.dark-mode .provider-story-specialty{color:#f1cf8e}@media(max-width:760px){.provider-story-photo{margin:auto}}
.contact-professionals{display:grid;gap:.8rem;margin-bottom:1.25rem}.contact-professional{display:flex;align-items:center;gap:.9rem;padding:1rem;border:1px solid rgba(180,135,74,.22);border-radius:16px;background:rgba(255,255,255,.35)}.contact-professional-icon{display:grid;width:42px;height:42px;flex:0 0 42px;place-items:center;border-radius:50%;background:rgba(183,132,67,.12);color:var(--gold-dark)}.contact-professional>div{display:grid;gap:.18rem}.contact-professional strong{color:var(--ink);font-family:var(--font-display,Georgia,serif);font-size:1.05rem}.contact-professional small{color:var(--ink-soft)}.contact-professional-phone{display:inline-flex;align-items:center;gap:.4rem;margin-top:.25rem;font-weight:700}.studio-contact-details{padding-top:1rem;border-top:1px solid rgba(180,135,74,.2)}body.dark-mode .contact-professional{border-color:rgba(238,199,132,.2);background:rgba(19,21,23,.38)}body.dark-mode .contact-professional strong{color:#fff8ed}body.dark-mode .contact-professional small{color:#ded4ca}@media(max-width:560px){.contact-info{padding:1.2rem}.contact-professional{align-items:flex-start}.contact-professional-icon{width:38px;height:38px;flex-basis:38px}}
.floating-contact-person{width:min(310px,calc(100vw - 1.5rem));padding:.65rem;border:1px solid rgba(255,255,255,.42);border-radius:18px;background:rgba(37,31,40,.9);box-shadow:0 14px 34px rgba(20,17,24,.28);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px)}.floating-contact-person>strong{display:block;margin:0 .3rem .5rem;color:#fff8ed;font-family:var(--font-display,Georgia,serif);font-size:.88rem}.floating-contact-person-actions{display:grid;grid-template-columns:1fr 1fr;gap:.45rem}.floating-contact-person .floating-contact-action{justify-content:center;min-width:0;padding:.65rem .7rem}.floating-contact-person .floating-contact-action span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media(max-width:420px){.floating-contact-person{width:min(280px,calc(100vw - 1.25rem));padding:.55rem}.floating-contact-person .floating-contact-action{min-height:44px;font-size:.68rem}}
/* Searchable editorial update pages */
.post-detail-page{width:min(1180px,calc(100% - 32px));margin:0 auto;padding:118px 0 72px}
.post-detail-page .breadcrumb{margin:0 0 24px}
.post-detail-article{max-width:920px;margin:0 auto;padding:clamp(22px,4vw,52px);overflow:hidden}
.post-detail-header{max-width:760px;margin:0 auto 28px;text-align:center}
.post-detail-header h1{margin:.35rem 0 .75rem;font-family:"Playfair Display",serif;font-size:clamp(2rem,5vw,4.3rem);line-height:1.06}
.post-detail-date{font-size:.82rem;letter-spacing:.11em;text-transform:uppercase;opacity:.72}
.post-detail-media{margin:0 0 clamp(24px,4vw,42px)}
.post-detail-media img{display:block;width:100%;height:auto;max-height:720px;object-fit:cover;border-radius:24px}
.post-detail-media figcaption{padding:.7rem .35rem 0;font-size:.82rem;opacity:.72}
.post-detail-copy{max-width:720px;margin:0 auto;font-size:clamp(1rem,1.6vw,1.12rem);line-height:1.85}
.post-detail-copy p{margin:0 0 1.3em}
.post-detail-cta{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-top:44px;padding:26px;border-top:1px solid rgba(175,132,48,.3)}
.post-detail-cta h2{margin:.25rem 0 0;font-size:clamp(1.35rem,3vw,2rem)}
.post-related-section{margin:64px auto 0}
.post-related-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
.post-related-card{display:flex;flex-direction:column;overflow:hidden;color:inherit;text-decoration:none}
.post-related-card img{width:100%;aspect-ratio:4/3;object-fit:cover}
.post-related-card span{display:grid;gap:8px;padding:18px}
.post-related-card small{opacity:.68}
.post-related-card strong{font-family:"Playfair Display",serif;font-size:1.2rem;line-height:1.25}
.update-permalink{position:relative;z-index:2;text-decoration:none}
@media(max-width:720px){
  .post-detail-page{width:min(100% - 20px,1180px);padding-top:92px}
  .post-detail-article{padding:18px;border-radius:24px}
  .post-detail-media img{border-radius:17px}
  .post-detail-cta{align-items:stretch;flex-direction:column;padding:22px 0 4px}
  .post-detail-cta .btn-gold{width:100%;text-align:center}
  .post-related-grid{grid-template-columns:1fr}
}
.hero-display{display:grid;gap:.45rem}
.hero-local-title{font-family:"Montserrat",sans-serif;font-size:clamp(.72rem,1.4vw,.95rem);font-style:normal;font-weight:600;letter-spacing:.18em;line-height:1.3;text-transform:uppercase}
.service-related-section{margin:clamp(48px,7vw,84px) auto 0}
.service-related-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px}
.service-related-card{display:flex;min-width:0;flex-direction:column;overflow:hidden;color:inherit;text-decoration:none;transition:transform .25s ease,border-color .25s ease}
.service-related-card:hover{transform:translateY(-5px);border-color:rgba(202,160,72,.55)}
.service-related-card img{width:100%;aspect-ratio:4/3;object-fit:cover}
.service-related-card span{display:grid;gap:7px;padding:17px}
.service-related-card small{font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;opacity:.68}
.service-related-card strong{font-family:"Playfair Display",serif;font-size:1.12rem;line-height:1.2}
.service-related-card em{font-style:normal;font-weight:650;color:var(--gold,#b48b3c)}
@media(max-width:900px){.service-related-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:560px){.service-related-grid{display:flex;gap:14px;overflow-x:auto;padding:2px 4px 14px;scroll-snap-type:x mandatory}.service-related-card{flex:0 0 min(78vw,290px);scroll-snap-align:start}}

/* Keep the homepage voucher logo proportional on every viewport. */
.voucher-home-card > .voucher-home-logo{
  width:clamp(76px,24%,104px);
  height:auto !important;
  max-width:32%;
  max-height:none !important;
  aspect-ratio:auto;
  object-fit:contain;
  object-position:center;
}
