/* ═══════════════════════════════════════════════════════════════════════════
   Meridian — Landing Page Styles
   Premium multi-page theme for TheraConnect
   ────────────────────────────────────────────
   Design: Warm, calm, distinguished.
   A psychotherapist's practice deserves a visual identity that feels
   like a quiet room — spacious, intentional, free of noise.
   ═══════════════════════════════════════════════════════════════════════════ */

/* ── Design Tokens ─────────────────────────────────────────────────────── */
:root {
    --clr-bg:        #fefcf9;
    --clr-bg-rgb:    254, 252, 249;
    --clr-text:      #2d2a26;
    --clr-text-light:#736b60;
    --clr-accent:    #8b6f47;
    --clr-accent-hover: #6b5333;
    --clr-border:    #e8e2d8;
    --clr-card:      #ffffff;
    --clr-alt:       #f7f4ee;
    --clr-invert:    #2d2a26;

    --font-heading:  "Merriweather", serif;
    --font-body:     "Inter", -apple-system, BlinkMacSystemFont, sans-serif;

    --header-h:      72px;
    --radius:        6px;
    --shadow-card:   0 1px 3px rgba(45,42,38,0.06), 0 1px 2px rgba(45,42,38,0.04);
    --shadow-hover:  0 4px 16px rgba(45,42,38,0.10), 0 2px 4px rgba(45,42,38,0.06);
    --shadow-header: 0 1px 0 rgba(45,42,38,0.06), 0 2px 8px rgba(45,42,38,0.04);
    --transition:    200ms ease;
}

/* ── Reset & Base ──────────────────────────────────────────────────────── */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

html { scroll-behavior: smooth; -webkit-font-smoothing: antialiased; }

body {
    font-family: var(--font-body);
    font-size: 1rem;
    font-weight: 400;
    line-height: 1.7;
    color: var(--clr-text);
    background: var(--clr-bg);
    padding-top: var(--header-h);
    -webkit-text-size-adjust: 100%;
}

img { max-width: 100%; height: auto; display: block; }
a  { color: inherit; text-decoration: none; }

/* ── Typography ────────────────────────────────────────────────────────── */
h1, h2, h3, h4 {
    font-family: var(--font-heading);
    font-weight: 300;
    line-height: 1.2;
    letter-spacing: -0.01em;
}

.section__heading {
    font-size: 2.25rem;
    font-weight: 300;
    margin-bottom: 2rem;
    color: var(--clr-text);
}

.section__heading--center { text-align: center; }

/* ── Buttons ───────────────────────────────────────────────────────────── */
.btn {
    display: inline-flex; align-items: center; justify-content: center;
    font-family: var(--font-body); font-weight: 500;
    padding: 0.75em 1.75em; border-radius: var(--radius);
    transition: all var(--transition);
    cursor: pointer; border: none;
    text-align: center; white-space: nowrap;
}
.btn--primary {
    background: var(--clr-accent); color: #fff;
}
.btn--primary:hover {
    background: var(--clr-accent-hover); transform: translateY(-2px);
    box-shadow: 0 6px 20px rgba(139,111,71,0.25);
}
.btn--lg { padding: 0.875em 2.25em; font-size: 1.05rem; }

/* ── Layout ────────────────────────────────────────────────────────────── */
.landing-main { min-height: 60vh; }

.section {
    padding: 100px 24px;
    position: relative;
    overflow: hidden;
}
.section--alt   { background: var(--clr-alt); }
.section--accent { background: var(--clr-invert); color: #fff; }

.section__inner {
    max-width: 1120px; margin: 0 auto;
}

.section--has-bg {
    background-size: cover; background-position: center; background-attachment: fixed;
    color: #fff;
}
.section__bg-overlay {
    position: absolute; inset: 0;
    background: rgba(45,42,38,0.65);
    z-index: 0;
}
.section--has-bg .section__inner { position: relative; z-index: 1; }
.section--has-bg .section__heading { color: #fff; }

/* ── Fixed Header ──────────────────────────────────────────────────────── */
.landing-header {
    position: fixed; top: 0; left: 0; right: 0; z-index: 1000;
    height: var(--header-h);
    background: rgba(var(--clr-bg-rgb), 0.92);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    transition: box-shadow var(--transition);
    border-bottom: 1px solid transparent;
}
.landing-header--scrolled {
    box-shadow: var(--shadow-header);
    border-bottom-color: var(--clr-border);
}

.landing-header__inner {
    max-width: 1200px; margin: 0 auto;
    height: 100%;
    display: flex; align-items: center; justify-content: space-between;
    padding: 0 24px; gap: 32px;
}

.landing-header__logo {
    font-family: var(--font-heading); font-weight: 400;
    font-size: 1.35rem; letter-spacing: -0.02em;
    white-space: nowrap; flex-shrink: 0;
}

.landing-header__nav {
    display: flex; gap: 4px;
    flex: 1; justify-content: center;
}

.landing-header__link {
    padding: 8px 16px; border-radius: var(--radius);
    font-size: 0.925rem; font-weight: 450;
    color: var(--clr-text-light);
    transition: all var(--transition);
}
.landing-header__link:hover { color: var(--clr-text); background: var(--clr-alt); }
.landing-header__link--active { color: var(--clr-accent); font-weight: 500; }
.landing-header__link--ghost { font-size: 0.875rem; }

.landing-header__actions {
    display: flex; align-items: center; gap: 8px; flex-shrink: 0;
}

/* Hamburger */
.landing-header__hamburger {
    display: none; flex-direction: column; gap: 5px;
    background: none; border: none; padding: 8px 4px; cursor: pointer;
    z-index: 1002;
}
.landing-header__hamburger span {
    display: block; width: 22px; height: 1.5px;
    background: var(--clr-text); border-radius: 1px;
    transition: all var(--transition);
}
.landing-header__hamburger--open span:nth-child(1) { transform: translateY(6.5px) rotate(45deg); }
.landing-header__hamburger--open span:nth-child(2) { opacity: 0; }
.landing-header__hamburger--open span:nth-child(3) { transform: translateY(-6.5px) rotate(-45deg); }

/* Mobile drawer */
.landing-mobile-drawer {
    position: fixed; top: 0; right: 0; bottom: 0; width: 300px; max-width: 80vw;
    background: var(--clr-bg); z-index: 1001;
    transform: translateX(100%);
    transition: transform 300ms ease;
    padding: calc(var(--header-h) + 24px) 32px 32px;
    box-shadow: -4px 0 24px rgba(45,42,38,0.08);
}
.landing-mobile-drawer--open { transform: translateX(0); }

.landing-mobile-drawer__link {
    display: block; padding: 14px 0; font-size: 1.1rem;
    border-bottom: 1px solid var(--clr-border);
    color: var(--clr-text);
}
.landing-mobile-drawer__link--active { color: var(--clr-accent); font-weight: 500; }
.landing-mobile-drawer__cta { margin-top: 24px; width: 100%; }

.landing-mobile-overlay {
    position: fixed; inset: 0; background: rgba(45,42,38,0.3);
    z-index: 1000; opacity: 0; pointer-events: none;
    transition: opacity 300ms ease;
}
.landing-mobile-overlay--visible { opacity: 1; pointer-events: auto; }

/* ── Hero ──────────────────────────────────────────────────────────────── */
.hero {
    position: relative; display: flex; align-items: center;
    overflow: hidden;
    background: var(--clr-alt);
}
.hero--full { min-height: calc(100vh - var(--header-h)); }
.hero--sub  { min-height: 320px; }

.hero--has-bg {
    background-size: cover; background-position: center;
    color: #fff;
}
.hero__overlay {
    position: absolute; inset: 0;
    background: linear-gradient(
        135deg,
        rgba(45,42,38,0.55) 0%,
        rgba(45,42,38,0.30) 50%,
        rgba(45,42,38,0.45) 100%
    );
    z-index: 0;
}
.hero--has-bg .hero__overlay { display: block; }

.hero__content {
    position: relative; z-index: 2;
    max-width: 1120px; margin: 0 auto; padding: 40px 24px;
    width: 100%;
}

/* Golden-thread line — the signature element */
.hero__content::before {
    content: "";
    position: absolute; left: 0; top: 50px; bottom: 50px;
    width: 1px;
    background: linear-gradient(
        to bottom,
        transparent 0%,
        var(--clr-accent) 20%,
        var(--clr-accent) 80%,
        transparent 100%
    );
    opacity: 0.5;
}
.hero--has-bg .hero__content::before { opacity: 0.35; }

.hero__badge {
    display: inline-block;
    font-family: var(--font-body); font-size: 0.8rem; font-weight: 500;
    letter-spacing: 0.06em; text-transform: uppercase;
    padding: 6px 14px; border-radius: 20px;
    border: 1px solid var(--clr-accent);
    color: var(--clr-accent);
    margin-bottom: 1.5rem;
}
.hero--has-bg .hero__badge { border-color: rgba(255,255,255,0.5); color: #fff; }

.hero__headline {
    font-size: 3.25rem; font-weight: 300;
    line-height: 1.15; letter-spacing: -0.015em;
    max-width: 680px; margin-bottom: 1.25rem;
}
.hero__headline em { font-style: italic; color: var(--clr-accent); }
.hero--has-bg .hero__headline em { color: #fff; }

.hero__headline--sub { font-size: 2.5rem; }

.hero__subtext {
    font-size: 1.1rem; max-width: 520px;
    color: var(--clr-text-light); line-height: 1.6;
    margin-bottom: 2rem;
}
.hero--has-bg .hero__subtext { color: rgba(255,255,255,0.8); }

.hero__cta { margin-top: 0.5rem; }

.hero__photo {
    position: absolute; right: 48px; bottom: 60px; z-index: 1;
    width: 320px; height: 380px;
}
.hero__photo img {
    width: 100%; height: 100%; object-fit: cover;
    border-radius: 42% 58% 48% 52% / 55% 45% 55% 45%;
    box-shadow: 0 8px 40px rgba(45,42,38,0.12);
}

/* Breadcrumb */
.hero__breadcrumb {
    font-size: 0.875rem; margin-bottom: 1rem;
    color: var(--clr-text-light);
}
.hero--has-bg .hero__breadcrumb { color: rgba(255,255,255,0.65); }
.hero__breadcrumb a { transition: color var(--transition); }
.hero__breadcrumb a:hover { color: var(--clr-accent); }
.hero__breadcrumb-sep { margin: 0 6px; }

/* ── Approach Cards ────────────────────────────────────────────────────── */
.approach__grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 32px;
}

.approach__card {
    text-align: center; padding: 40px 28px;
    background: var(--clr-card); border-radius: var(--radius);
    box-shadow: var(--shadow-card);
    transition: transform var(--transition), box-shadow var(--transition);
}
.approach__card:hover {
    transform: translateY(-6px);
    box-shadow: var(--shadow-hover);
}

.approach__icon {
    display: inline-flex; align-items: center; justify-content: center;
    width: 56px; height: 56px; border-radius: 50%;
    background: var(--clr-alt); margin-bottom: 1.25rem;
}
.approach__icon i { font-size: 1.3rem; color: var(--clr-accent); }

.approach__title {
    font-size: 1.2rem; font-weight: 400; font-family: var(--font-heading);
    margin-bottom: 0.6rem;
}
.approach__desc {
    font-size: 0.925rem; color: var(--clr-text-light); line-height: 1.6;
}

/* ── About ─────────────────────────────────────────────────────────────── */
.about__grid {
    display: grid; grid-template-columns: 2fr 3fr;
    gap: 64px; align-items: center;
}

.about__photo-frame {
    position: relative; padding-bottom: 110%;
    overflow: hidden;
}
.about__photo {
    position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover;
    border-radius: 42% 58% 48% 52% / 55% 45% 55% 45%;
}

.about__text-col .section__heading { margin-bottom: 1.25rem; }

.about__text {
    font-size: 1.05rem; line-height: 1.75; color: var(--clr-text-light);
    margin-bottom: 1.5rem;
}

.about__credential {
    margin-top: 1.25rem; padding-top: 1.25rem;
    border-top: 1px solid var(--clr-border);
}
.about__credential strong {
    display: block; font-family: var(--font-heading); font-weight: 400;
    font-size: 1rem; margin-bottom: 0.25rem;
}
.about__credential p { font-size: 0.925rem; color: var(--clr-text-light); }

/* ── Services Grid ─────────────────────────────────────────────────────── */
.services__grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 28px;
}

.services__card {
    padding: 36px 28px; background: var(--clr-card);
    border-radius: var(--radius);
    box-shadow: var(--shadow-card);
    transition: transform var(--transition), box-shadow var(--transition);
    display: flex; flex-direction: column;
}
.services__card:hover {
    transform: translateY(-4px);
    box-shadow: var(--shadow-hover);
}

.services__card-icon {
    margin-bottom: 1rem;
    font-size: 1.4rem; color: var(--clr-accent);
}

.services__card-name {
    font-size: 1.15rem; font-weight: 400; font-family: var(--font-heading);
    margin-bottom: 0.5rem;
}
.services__card-desc {
    font-size: 0.9rem; color: var(--clr-text-light);
    flex: 1; margin-bottom: 1rem;
}
.services__card-meta {
    display: flex; justify-content: space-between; align-items: center;
    padding-top: 1rem; border-top: 1px solid var(--clr-border);
    font-size: 0.875rem; color: var(--clr-text-light);
}
.services__card-price { font-weight: 500; color: var(--clr-accent); }

/* ── Testimonials ──────────────────────────────────────────────────────── */
.testimonials__grid {
    display: grid; grid-template-columns: repeat(3, 1fr);
    gap: 28px;
}

.testimonials__card {
    padding: 32px 24px; background: var(--clr-card);
    border-radius: var(--radius);
    box-shadow: var(--shadow-card);
}

.testimonials__stars {
    margin-bottom: 1rem; font-size: 0.9rem; color: var(--clr-accent);
}
.testimonials__star--empty { opacity: 0.25; }

.testimonials__comment {
    font-size: 0.95rem; line-height: 1.65;
    margin-bottom: 1rem; font-style: italic;
}
.testimonials__author {
    font-size: 0.85rem; color: var(--clr-text-light);
}

/* ── Quote ─────────────────────────────────────────────────────────────── */
.quote { text-align: center; }

.quote__text {
    font-family: var(--font-heading); font-size: 1.75rem; font-weight: 300;
    line-height: 1.5; font-style: italic;
    max-width: 680px; margin: 0 auto 1rem;
}
.section--accent .quote__text { color: #fff; }

.quote__author {
    font-style: normal; font-family: var(--font-body);
    font-size: 0.95rem; font-weight: 450;
}
.section--accent .quote__author { color: rgba(255,255,255,0.6); }

/* ── CTA Block ─────────────────────────────────────────────────────────── */
.cta-block { text-align: center; }

.cta-block__title {
    font-size: 2rem; font-weight: 300; font-family: var(--font-heading);
    margin-bottom: 0.75rem; letter-spacing: -0.01em;
}
.cta-block__subtext {
    font-size: 1.05rem; color: var(--clr-text-light);
    max-width: 480px; margin: 0 auto 1.75rem;
}
.cta-block__btn { min-width: 200px; }

/* ── Contact Form ──────────────────────────────────────────────────────── */
.contact-form__grid {
    display: grid; grid-template-columns: 1fr 1fr;
    gap: 64px;
}

.contact-form__subtitle {
    font-size: 1rem; color: var(--clr-text-light); margin-bottom: 1.5rem;
}

.contact-form__detail {
    display: flex; align-items: center; gap: 10px;
    margin-bottom: 0.75rem;
    font-size: 0.95rem; color: var(--clr-text-light);
}
.contact-form__detail i { width: 18px; color: var(--clr-accent); }

.contact-form__field { margin-bottom: 1.25rem; }
.contact-form__field label {
    display: block; font-size: 0.85rem; font-weight: 500;
    margin-bottom: 0.35rem; color: var(--clr-text);
}
.contact-form__field input,
.contact-form__field textarea {
    width: 100%; padding: 12px 16px;
    border: 1px solid var(--clr-border); border-radius: var(--radius);
    background: var(--clr-card);
    font-family: var(--font-body); font-size: 0.95rem;
    color: var(--clr-text);
    transition: border-color var(--transition);
    resize: vertical;
}
.contact-form__field input:focus,
.contact-form__field textarea:focus {
    outline: none; border-color: var(--clr-accent);
}

.contact-form__submit { min-width: 160px; }

.contact-form__feedback {
    margin-top: 1rem; padding: 10px 16px; border-radius: var(--radius);
    font-size: 0.9rem;
}
.contact-form__feedback--success { background: #e8f0e3; color: #3c5130; }
.contact-form__feedback--error   { background: #f9e8e6; color: #7a302b; }

/* ── Footer ────────────────────────────────────────────────────────────── */
.landing-footer {
    background: var(--clr-invert); color: rgba(255,255,255,0.7);
    padding: 72px 24px 32px;
}
.landing-footer__inner {
    max-width: 1120px; margin: 0 auto;
    display: grid; grid-template-columns: 2fr 1fr 1fr;
    gap: 48px;
    margin-bottom: 48px;
}

.landing-footer__logo {
    font-family: var(--font-heading); font-weight: 400;
    font-size: 1.25rem; color: #fff; letter-spacing: -0.02em;
}
.landing-footer__tagline {
    font-size: 0.9rem; margin-top: 0.5rem; font-style: italic;
}
.landing-footer__location { font-size: 0.875rem; margin-top: 0.25rem; }

.landing-footer__heading {
    font-family: var(--font-body); font-weight: 500;
    font-size: 0.85rem; letter-spacing: 0.04em; text-transform: uppercase;
    color: rgba(255,255,255,0.45);
    margin-bottom: 1rem;
}

.landing-footer__link {
    display: block; padding: 4px 0;
    font-size: 0.9rem; transition: color var(--transition);
}
.landing-footer__link:hover { color: #fff; }

.landing-footer__bottom {
    max-width: 1120px; margin: 0 auto;
    display: flex; justify-content: space-between; align-items: center;
    padding-top: 24px;
    border-top: 1px solid rgba(255,255,255,0.08);
    font-size: 0.8rem;
}
.landing-footer__legal { display: flex; gap: 8px; }
.landing-footer__sep { color: rgba(255,255,255,0.25); }
.landing-footer__legal a { transition: color var(--transition); }
.landing-footer__legal a:hover { color: #fff; }

/* ── Scroll Reveal ─────────────────────────────────────────────────────── */
.reveal {
    opacity: 0; transform: translateY(24px);
    transition: opacity 600ms ease, transform 600ms ease;
}
.reveal--visible { opacity: 1; transform: translateY(0); }

@media (prefers-reduced-motion: reduce) {
    .reveal { opacity: 1; transform: none; transition: none; }
}
/* ═══════════════════════════════════════════════════════════════════════════
   Theme Variants — design tokens + structural overrides
   Each theme preserves its unique visual identity (not just colors).
   Scoped to body.theme-{name}. Override :root defaults + shared layout rules.
   ═══════════════════════════════════════════════════════════════════════════ */

/* ── Lumière — Playfair Display, circle portrait, serene warmth ────────── */
.theme-lumiere {
    --clr-bg:        #faf7f2;
    --clr-bg-rgb:    250, 247, 242;
    --clr-text:      #2c2c2c;
    --clr-text-light:#6b635b;
    --clr-accent:    #9c8b7a;
    --clr-accent-hover: #7a6b5e;
    --clr-border:    #e8e2d9;
    --clr-card:      #fffdf9;
    --clr-alt:       #f3efe8;
    --clr-invert:    #2c2c2c;
    --font-heading:  "Playfair Display", serif;
    --radius:        30px;
    --shadow-card:   0 2px 12px rgba(156,139,122,0.08), 0 1px 3px rgba(156,139,122,0.04);
    --shadow-hover:  0 8px 30px rgba(156,139,122,0.14), 0 2px 8px rgba(156,139,122,0.06);
    /* Warmer, more generous spacing */
    --section-pad: 120px;
}
/* ── Real linen texture on body (CC0, PIL-processed) ───────────────────── */
body.theme-lumiere {
    background: var(--clr-bg) url("/assets/images/landing/lumiere-linen.webp") repeat;
    background-size: 512px;
}

/* ═══════════════════════════════════════════════════════════════════════════
   HERO — spacious, emotional, organic
   ═══════════════════════════════════════════════════════════════════════════ */
.theme-lumiere .hero { padding: 100px 48px; gap: 72px; min-height: 80vh; }
.theme-lumiere .hero__headline {
    font-size: 4rem; font-weight: 300; color: #1f1c18;
    letter-spacing: -0.015em; line-height: 1.1; max-width: 600px;
}
.theme-lumiere .hero__headline em,
.theme-lumiere .hero__headline i { font-style: italic; color: var(--clr-accent); }
.theme-lumiere .hero__subtext { font-size: 1.15rem; max-width: 480px; line-height: 1.75; color: var(--clr-text-light); }
/* Badge: softer, pill-shaped */
.theme-lumiere .hero__badge {
    font-size: 0.75rem; text-transform: uppercase; letter-spacing: 0.18em;
    color: var(--clr-accent); font-weight: 500; border: 1px solid rgba(156,139,122,0.25);
    padding: 6px 18px; border-radius: 40px; background: rgba(250,247,242,0.7);
}
/* Photo: larger, with organic decorative blob behind */
.theme-lumiere .hero__photo { width: 380px; height: 440px; }
.theme-lumiere .hero__photo img {
    border-radius: 50%; box-shadow: 0 30px 100px rgba(156,139,122,0.28);
    transition: transform 0.6s cubic-bezier(0.25, 0.1, 0.25, 1);
}
.theme-lumiere .hero__photo img:hover { transform: scale(1.03); }
/* Organic blob decoration behind photo */
.theme-lumiere .hero__photo::after {
    content: "";
    position: absolute; top: -30px; right: -24px; width: 180px; height: 180px;
    background: rgba(156,139,122,0.07); border-radius: 63% 37% 54% 46% / 45% 58% 42% 55%;
    z-index: -1; animation: lumiereBlob 12s ease-in-out infinite;
}
@keyframes lumiereBlob {
    0%, 100% { border-radius: 63% 37% 54% 46% / 45% 58% 42% 55%; transform: rotate(0deg); }
    33%  { border-radius: 40% 60% 58% 42% / 52% 40% 60% 48%; transform: rotate(3deg); }
    66%  { border-radius: 55% 45% 42% 58% / 38% 52% 48% 62%; transform: rotate(-2deg); }
}
/* Buttons — dark bg, pill shape, uppercase (hero CTAs use .btn--primary) */
.theme-lumiere .btn--primary,
.theme-lumiere .hero__cta .btn--primary,
.theme-lumiere .landing-header__cta {
    background: #2c2c2c; color: #faf7f2; border-radius: 30px;
    padding: 14px 36px; font-size: 0.85rem; letter-spacing: 0.06em; text-transform: uppercase;
    transition: all 0.35s cubic-bezier(0.25, 0.1, 0.25, 1);
    border: none; text-decoration: none; display: inline-block;
}
.theme-lumiere .btn--primary:hover,
.theme-lumiere .hero__cta .btn--primary:hover { background: #4a4440; transform: translateY(-2px); box-shadow: 0 12px 30px rgba(44,44,44,0.2); }
/* No golden line */
.theme-lumiere .hero__content::before { display: none; }

/* ═══════════════════════════════════════════════════════════════════════════
   NAV — refined uppercase, softer hover
   ═══════════════════════════════════════════════════════════════════════════ */
.theme-lumiere .landing-header__link {
    text-transform: uppercase; letter-spacing: 0.06em; font-size: 0.75rem;
    transition: color 0.3s, opacity 0.3s;
}
.theme-lumiere .landing-header__link:hover { background: transparent; color: var(--clr-accent); opacity: 0.8; }
.theme-lumiere .landing-header__link--active { color: var(--clr-accent-hover); font-weight: 500; }
/* Readability: darker active state in mobile drawer (accent is too light on cream) */
.theme-lumiere .landing-mobile-drawer__link--active { color: var(--clr-accent-hover); }
/* Softer header bg */
.theme-lumiere .landing-header { background: rgba(250,247,242,0.85); backdrop-filter: blur(12px); }
.theme-lumiere .landing-header--scrolled { background: rgba(250,247,242,0.95); box-shadow: 0 1px 0 rgba(156,139,122,0.08); }

/* ═══════════════════════════════════════════════════════════════════════════
   SECTIONS — more generous, better rhythm
   ═══════════════════════════════════════════════════════════════════════════ */
.theme-lumiere .section { padding: var(--section-pad) 20px; }
.theme-lumiere .section__heading {
    font-weight: 400; font-size: 2.2rem; letter-spacing: -0.01em;
    margin-bottom: 0.75rem;
}
/* Subtle alternating section rhythm */
.theme-lumiere .section:nth-child(even):not(.section--accent):not(.section--alt) {
    background: linear-gradient(180deg, transparent 0%, rgba(156,139,122,0.02) 50%, transparent 100%);
}

/* ═══════════════════════════════════════════════════════════════════════════
   APPROACH CARDS — softer, editorial feel
   ═══════════════════════════════════════════════════════════════════════════ */
.theme-lumiere .approach { padding-top: calc(var(--section-pad) + 20px); }
.theme-lumiere .approach__card {
    background: var(--clr-card); border-radius: 20px;
    padding: 48px 32px; text-align: left;
    transition: transform 0.35s cubic-bezier(0.25, 0.1, 0.25, 1), box-shadow 0.35s ease;
    position: relative; overflow: hidden;
}
/* Subtle top accent line on hover */
.theme-lumiere .approach__card::before {
    content: ""; position: absolute; top: 0; left: 32px; right: 32px;
    height: 2px; background: var(--clr-accent);
    transform: scaleX(0); transform-origin: left;
    transition: transform 0.4s cubic-bezier(0.25, 0.1, 0.25, 1);
}
.theme-lumiere .approach__card:hover::before { transform: scaleX(1); }
.theme-lumiere .approach__card:hover { transform: translateY(-8px); box-shadow: var(--shadow-hover); }
.theme-lumiere .approach__icon {
    width: 52px; height: 52px; border-radius: 50%; background: transparent;
    border: 1px solid rgba(156,139,122,0.2); margin-bottom: 1.5rem;
    transition: background 0.3s, border-color 0.3s;
}
.theme-lumiere .approach__card:hover .approach__icon { background: rgba(156,139,122,0.06); border-color: var(--clr-accent); }
.theme-lumiere .approach__icon i { font-size: 1.15rem; color: var(--clr-accent); }
.theme-lumiere .approach__title { font-size: 1.3rem; font-weight: 400; margin-bottom: 0.75rem; }
.theme-lumiere .approach__desc { font-size: 0.95rem; line-height: 1.7; color: var(--clr-text-light); }

/* ═══════════════════════════════════════════════════════════════════════════
   SERVICES — elevated cards
   ═══════════════════════════════════════════════════════════════════════════ */
.theme-lumiere .services__card {
    border-radius: 20px; padding: 40px 28px;
    transition: transform 0.35s cubic-bezier(0.25, 0.1, 0.25, 1), box-shadow 0.35s ease;
    border: 1px solid rgba(156,139,122,0.06);
}
.theme-lumiere .services__card:hover { transform: translateY(-6px); box-shadow: var(--shadow-hover); }
.theme-lumiere .services__card-icon { font-size: 1.5rem; margin-bottom: 1.25rem; }
.theme-lumiere .services__card-name { font-size: 1.2rem; font-weight: 400; }
.theme-lumiere .services__card-price { color: var(--clr-accent-hover); font-weight: 500; }
.theme-lumiere .services__card-meta { border-top-color: rgba(156,139,122,0.1); }

/* ═══════════════════════════════════════════════════════════════════════════
   ABOUT — graceful two-column, generous
   ═══════════════════════════════════════════════════════════════════════════ */
.theme-lumiere .about__grid { gap: 80px; align-items: center; }
.theme-lumiere .about__photo-frame { padding-bottom: 100%; }
.theme-lumiere .about__photo { border-radius: 50%; }
.theme-lumiere .about__text { font-size: 1.05rem; line-height: 1.85; }
.theme-lumiere .about__credential { border-top-color: rgba(156,139,122,0.15); padding-top: 1.5rem; }

/* ═══════════════════════════════════════════════════════════════════════════
   QUOTE — dramatic, editorial
   ═══════════════════════════════════════════════════════════════════════════ */
.theme-lumiere .quote { padding: 100px 20px; }
.theme-lumiere .quote__text {
    font-size: 2rem; font-weight: 300; line-height: 1.55;
    max-width: 680px; font-style: italic; position: relative;
}
/* Large decorative quote mark */
.theme-lumiere .quote__text::before {
    content: "\201C"; display: block; font-size: 6rem; line-height: 1;
    color: rgba(156,139,122,0.15); font-family: var(--font-heading);
    margin-bottom: 0.5rem;
}
.theme-lumiere .quote__author { font-size: 1rem; letter-spacing: 0.06em; text-transform: uppercase; color: var(--clr-text-light); }

/* ═══════════════════════════════════════════════════════════════════════════
   TESTIMONIALS — refined cards
   ═══════════════════════════════════════════════════════════════════════════ */
.theme-lumiere .testimonials__card {
    border-radius: 16px; padding: 36px 28px;
    border: 1px solid rgba(156,139,122,0.06);
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}
.theme-lumiere .testimonials__card:hover { transform: translateY(-4px); box-shadow: var(--shadow-hover); }
.theme-lumiere .testimonials__stars { color: var(--clr-accent); font-size: 0.9rem; letter-spacing: 2px; }
.theme-lumiere .testimonials__comment { font-size: 0.95rem; line-height: 1.7; font-style: italic; }

/* ═══════════════════════════════════════════════════════════════════════════
   CTA — warm, inviting
   ═══════════════════════════════════════════════════════════════════════════ */
.theme-lumiere .cta-block { padding: 100px 20px; text-align: center; }
.theme-lumiere .cta-block__title {
    font-family: var(--font-heading); font-size: 2.2rem; font-weight: 400;
    letter-spacing: -0.01em;
}
.theme-lumiere .cta-block__subtext { font-size: 1.1rem; color: var(--clr-text-light); max-width: 500px; margin: 0 auto 2rem; }
.theme-lumiere .cta-block__btn {
    background: #2c2c2c; color: #faf7f2; border-radius: 30px;
    padding: 15px 40px; font-size: 0.85rem; letter-spacing: 0.08em;
    text-transform: uppercase; transition: all 0.35s ease;
    display: inline-block; text-decoration: none;
}
.theme-lumiere .cta-block__btn:hover { background: #4a4440; transform: translateY(-2px); box-shadow: 0 12px 30px rgba(44,44,44,0.2); }

/* ═══════════════════════════════════════════════════════════════════════════
   PAGE HERO (about/services/contact) — refined sub-page headers
   ═══════════════════════════════════════════════════════════════════════════ */
.theme-lumiere .hero--sub { min-height: 280px; padding: 80px 48px 40px; background: var(--clr-alt); }
.theme-lumiere .hero__headline--sub { font-size: 2.6rem; font-weight: 300; letter-spacing: -0.01em; }
.theme-lumiere .hero__breadcrumb { font-size: 0.8rem; text-transform: uppercase; letter-spacing: 0.06em; }

/* ═══════════════════════════════════════════════════════════════════════════
   CONTACT FORM — clean, spacious
   ═══════════════════════════════════════════════════════════════════════════ */
.theme-lumiere .contact-form { padding-top: 80px; padding-bottom: 80px; }
.theme-lumiere .contact-form__grid { gap: 80px; }
.theme-lumiere .contact-form__info { font-size: 1rem; }
.theme-lumiere .contact-form__detail { margin-bottom: 1.5rem; }
.theme-lumiere .contact-form__field input,
.theme-lumiere .contact-form__field textarea {
    border: 1px solid var(--clr-border); border-radius: 12px;
    padding: 14px 18px; font-family: var(--font-body); font-size: 0.95rem;
    background: #fffdf9; transition: border-color 0.3s, box-shadow 0.3s;
}
.theme-lumiere .contact-form__field input:focus,
.theme-lumiere .contact-form__field textarea:focus {
    border-color: var(--clr-accent); box-shadow: 0 0 0 3px rgba(156,139,122,0.1);
    outline: none;
}
.theme-lumiere .contact-form__submit {
    background: #2c2c2c; color: #faf7f2; border-radius: 30px;
    padding: 14px 32px; font-size: 0.85rem; letter-spacing: 0.08em;
    text-transform: uppercase; border: none; cursor: pointer;
    transition: all 0.35s ease;
}
.theme-lumiere .contact-form__submit:hover { background: #4a4440; transform: translateY(-2px); box-shadow: 0 8px 24px rgba(44,44,44,0.2); }

/* ═══════════════════════════════════════════════════════════════════════════
   FOOTER — understated (light bg ⇒ must re-ink every shared white text rule)
   ═══════════════════════════════════════════════════════════════════════════ */
.theme-lumiere .landing-footer { background: #f3efe8; border-top: 1px solid rgba(156,139,122,0.1); color: var(--clr-text); }
.theme-lumiere .landing-footer__logo { color: #2c2c2c; }
.theme-lumiere .landing-footer__tagline,
.theme-lumiere .landing-footer__location { color: #6b635b; }
.theme-lumiere .landing-footer__heading { font-family: var(--font-heading); font-weight: 400; font-size: 1rem; color: #4a4440; }
.theme-lumiere .landing-footer__link { font-size: 0.875rem; color: #6b635b; }
.theme-lumiere .landing-footer__link:hover { color: #2c2c2c; }
.theme-lumiere .landing-footer__bottom,
.theme-lumiere .landing-footer__bottom p,
.theme-lumiere .landing-footer__legal a { color: #6b635b; }
.theme-lumiere .landing-footer__legal a:hover { color: #2c2c2c; }
.theme-lumiere .landing-footer__sep { color: rgba(107,99,91,0.4); }
.theme-lumiere .landing-footer__bottom { border-top: 1px solid rgba(156,139,122,0.15); }

/* ═══════════════════════════════════════════════════════════════════════════
   SCROLL REVEAL — slower, more graceful
   ═══════════════════════════════════════════════════════════════════════════ */
.theme-lumiere .reveal { transition: opacity 0.8s ease, transform 0.8s cubic-bezier(0.25, 0.1, 0.25, 1); }

/* ═══════════════════════════════════════════════════════════════════════════
   PHOTO BACKGROUNDS — warm taupe overlays (not charcoal) for airy photos
   ═══════════════════════════════════════════════════════════════════════════ */
.theme-lumiere .hero__overlay {
    background: linear-gradient(
        135deg,
        rgba(51,44,38,0.78) 0%,
        rgba(58,50,43,0.55) 50%,
        rgba(51,44,38,0.65) 100%
    );
}
.theme-lumiere .section__bg-overlay { background: rgba(51,44,38,0.68); }
/* Home hero over photo: cream text replaces the dark ink */
.theme-lumiere .hero--has-bg .hero__headline { color: #ffffff; }
.theme-lumiere .hero--has-bg .hero__headline em,
.theme-lumiere .hero--has-bg .hero__headline i { color: #f0e4d0; }
.theme-lumiere .hero--has-bg .hero__subtext { color: #ffffff; text-shadow: 0 1px 10px rgba(0,0,0,0.25); }
.theme-lumiere .hero--has-bg .hero__badge {
    color: #ffffff; border-color: rgba(250,247,242,0.5);
    background: rgba(38,33,28,0.55);
}
.theme-lumiere .hero--has-bg .hero__breadcrumb,
.theme-lumiere .hero--has-bg .hero__breadcrumb a,
.theme-lumiere .hero--has-bg .hero__breadcrumb span { color: rgba(255,255,255,0.92); }
.theme-lumiere .hero--has-bg .btn--primary {
    background: #faf7f2; color: #2c2c2c;
}
.theme-lumiere .hero--has-bg .btn--primary:hover {
    background: #fff; box-shadow: 0 12px 30px rgba(0,0,0,0.25);
}
.theme-lumiere .hero--has-bg .hero__photo img { box-shadow: 0 30px 100px rgba(0,0,0,0.35); }
.theme-lumiere .hero--sub.hero--has-bg { min-height: 340px; background-position: center 35%; }
/* Sub-page heroes: flat stronger overlay — photos have bright spots behind the headline */
.theme-lumiere .hero--sub .hero__overlay { background: rgba(44,38,32,0.72); }
.theme-lumiere .hero--has-bg .hero__breadcrumb a:hover { color: #fff; }
.theme-lumiere .hero--has-bg .hero__headline--sub { color: #ffffff; }
/* Quote over photo: cream text, glowing quote mark */
.theme-lumiere .quote.section--has-bg { padding: 130px 20px; }
.theme-lumiere .quote.section--has-bg .quote__text { color: #ffffff; }
.theme-lumiere .quote.section--has-bg .quote__text::before { color: rgba(250,247,242,0.3); }
.theme-lumiere .quote.section--has-bg .quote__author { color: rgba(255,255,255,0.88); }
/* About/services over photo: heading + text readable */
.theme-lumiere .section--has-bg .about__text,
.theme-lumiere .section--has-bg .about__credential p { color: rgba(250,247,242,0.88); }
.theme-lumiere .section--has-bg .about__credential { border-top-color: rgba(250,247,242,0.25); color: #faf7f2; }

/* ═══════════════════════════════════════════════════════════════════════════
   SUB-PAGE POLISH — about / services / contact
   ═══════════════════════════════════════════════════════════════════════════ */
/* Breadcrumb: accent home link */
.theme-lumiere .hero__breadcrumb a { color: var(--clr-accent); }
/* About page: airy rhythm, drop-cap opener */
.theme-lumiere.page-about .about { padding-top: 90px; }
.theme-lumiere.page-about .about__text::first-letter {
    font-family: var(--font-heading); font-size: 3.2em; float: left;
    line-height: 0.85; padding: 6px 12px 0 0; color: var(--clr-accent);
}
.theme-lumiere.page-about .about__photo-frame { max-width: 380px; margin: 0 auto; }
/* Services page: centered intro, generous card grid */
.theme-lumiere.page-services .services { padding-top: 90px; }
.theme-lumiere.page-services .section__heading { text-align: center; }
.theme-lumiere.page-services .services__intro,
.theme-lumiere .services__subtitle {
    text-align: center; max-width: 560px; margin: 0 auto 3rem;
    color: var(--clr-text-light); font-size: 1.05rem; line-height: 1.7;
}
.theme-lumiere.page-services .services__grid { max-width: 760px; margin: 0 auto; }
.theme-lumiere.page-services .services__card { padding: 48px 36px; }
.theme-lumiere.page-services .services__card-desc { line-height: 1.7; color: var(--clr-text-light); }
/* Contact page: info panel gets warmth */
.theme-lumiere.page-contact .contact-form { padding-top: 90px; }
.theme-lumiere .contact-form__detail {
    display: flex; align-items: center; gap: 14px;
}
.theme-lumiere .contact-form__detail i {
    width: 40px; height: 40px; border-radius: 50%; flex: 0 0 40px;
    display: inline-flex; align-items: center; justify-content: center;
    border: 1px solid rgba(156,139,122,0.25); color: var(--clr-accent);
    font-size: 0.9rem; background: rgba(250,247,242,0.7);
}
.theme-lumiere .contact-form__subtitle {
    color: var(--clr-text-light); line-height: 1.75; margin-bottom: 2rem;
    font-size: 1.02rem;
}
.theme-lumiere .contact-form__form {
    background: var(--clr-card); border: 1px solid rgba(156,139,122,0.1);
    border-radius: 20px; padding: 40px 36px; box-shadow: var(--shadow-card);
}
.theme-lumiere .contact-form__field label {
    font-size: 0.78rem; text-transform: uppercase; letter-spacing: 0.08em;
    color: var(--clr-text-light);
}

/* ── Verdant — Lora, no side photo, nature greens, gradient ────────────── */
.theme-verdant {
    --clr-bg:        #f6f3ed;
    --clr-bg-rgb:    246, 243, 237;
    --clr-text:      #2d332a;
    --clr-text-light:#5c6b52;
    --clr-accent:    #7d9b76;
    --clr-accent-hover: #4a6743;
    --clr-border:    #dce0d3;
    --clr-card:      #ffffff;
    --clr-alt:       #eef2e8;
    --clr-invert:    #2d332a;
    --font-heading:  "Lora", serif;
    --radius:        12px;
    --shadow-card:   0 2px 12px rgba(77,103,67,0.06), 0 1px 3px rgba(77,103,67,0.03);
    --shadow-hover:  0 8px 28px rgba(77,103,67,0.10), 0 2px 6px rgba(77,103,67,0.05);
    --section-pad:   110px;
}

/* ═══ VERDANT HERO — centered text, the photo IS the stage ═══ */
.theme-verdant .hero { justify-content: center; }
.theme-verdant .hero--full { min-height: 84vh; }
.theme-verdant .hero__content { max-width: 780px; text-align: center; }
.theme-verdant .hero__photo { display: none; }
.theme-verdant .hero__headline { font-size: 3.4rem; font-weight: 400; max-width: none; line-height: 1.18; }
.theme-verdant .hero__headline em,
.theme-verdant .hero__headline span { color: var(--clr-accent-hover); font-style: italic; }
.theme-verdant .hero__subtext { max-width: 620px; margin-left: auto; margin-right: auto; font-size: 1.12rem; line-height: 1.75; }
.theme-verdant .hero__cta { margin-left: auto; margin-right: auto; }
.theme-verdant .hero__badge {
    display: inline-block; font-size: 0.75rem; letter-spacing: 0.14em; text-transform: uppercase;
    font-weight: 500; color: var(--clr-accent-hover);
    border: 1px solid rgba(125,155,118,0.4); background: rgba(238,242,232,0.7);
    border-radius: 24px; padding: 6px 16px;
}
/* Buttons: gradient green — darkened run (#3d5636→#587351) keeps white text ≥4.9:1
   across the whole gradient (original #7d9b76 light end measured 3.1:1) */
.theme-verdant .btn--primary,
.theme-verdant .hero__cta .btn--primary {
    background: linear-gradient(135deg, #3d5636 0%, #587351 100%);
    color: #fff; border-radius: 12px; padding: 14px 32px;
}
.theme-verdant .btn--primary:hover { background: linear-gradient(135deg, #33482d 0%, #4d6647 100%); box-shadow: 0 8px 24px rgba(74,103,67,0.25); }
.theme-verdant .cta-block__btn { background: linear-gradient(135deg, #3d5636 0%, #587351 100%); border-radius: 12px; }
/* Nav: underline hover instead of bg (Verdant signature) */
.theme-verdant .landing-header__link:hover { background: transparent; color: var(--clr-accent); text-decoration: underline; text-underline-offset: 4px; }
/* Readability: active nav/drawer links use the darker green (accent 2.7:1 on off-white fails WCAG) */
.theme-verdant .landing-header__link--active { color: var(--clr-accent-hover); font-weight: 500; }
.theme-verdant .landing-mobile-drawer__link--active { color: var(--clr-accent-hover); }
.theme-verdant .landing-header--scrolled { box-shadow: 0 1px 0 rgba(125,155,118,0.15), 0 2px 8px rgba(45,51,42,0.06); }
/* No golden line */
.theme-verdant .hero__content::before { display: none; }

/* ═══ VERDANT SECTIONS — calm rhythm ═══ */
.theme-verdant .section { padding: var(--section-pad) 20px; }
.theme-verdant .section__heading { font-weight: 500; font-size: 2.1rem; }

/* Approach cards — soft green frames, leaf icons */
.theme-verdant .approach__card {
    border-radius: 16px; padding: 44px 30px;
    border: 1px solid rgba(125,155,118,0.14); box-shadow: none;
    transition: transform 0.3s ease, box-shadow 0.3s ease, border-color 0.3s ease;
}
.theme-verdant .approach__card:hover { transform: translateY(-6px); box-shadow: var(--shadow-hover); border-color: rgba(125,155,118,0.3); }
.theme-verdant .approach__icon { background: var(--clr-alt); }
.theme-verdant .approach__icon i { color: var(--clr-accent-hover); font-size: 1.25rem; }
.theme-verdant .approach__desc { line-height: 1.7; }

/* Services — readable price (accent-hover), soft frames, centered intro */
.theme-verdant .services__card { border-radius: 16px; border: 1px solid rgba(125,155,118,0.12); }
.theme-verdant .services__card-price { color: var(--clr-accent-hover); font-weight: 500; }
.theme-verdant .services__card-meta { border-top-color: rgba(125,155,118,0.18); }
.theme-verdant .services__subtitle {
    text-align: center; max-width: 560px; margin: 0 auto 3rem;
    color: var(--clr-text-light); font-size: 1.05rem; line-height: 1.7;
}
.theme-verdant.page-services .services { padding-top: 90px; }
.theme-verdant.page-services .section__heading { text-align: center; }
.theme-verdant.page-services .services__grid { max-width: 760px; margin: 0 auto; }
.theme-verdant.page-services .services__card { padding: 44px 34px; }
.theme-verdant.page-services .services__card-desc { line-height: 1.7; }

/* Quote — serif italic, green quote mark */
.theme-verdant .quote { padding: 100px 20px; }
.theme-verdant .quote__text { font-size: 1.9rem; font-weight: 400; line-height: 1.55; position: relative; }
.theme-verdant .quote__text::before {
    content: "\201C"; display: block; font-size: 5.5rem; line-height: 1;
    color: rgba(125,155,118,0.3); font-family: var(--font-heading);
    margin-bottom: 0.4rem;
}
.theme-verdant .quote__author { font-size: 0.9rem; letter-spacing: 0.05em; text-transform: uppercase; }

/* About — rounded photo, drop-cap opener on the about page */
.theme-verdant .about__photo { border-radius: 16px; }
.theme-verdant .about__text { line-height: 1.8; }
.theme-verdant .about__credential { border-top-color: rgba(125,155,118,0.25); }
.theme-verdant.page-about .about { padding-top: 90px; }
.theme-verdant.page-about .about__text::first-letter {
    font-family: var(--font-heading); font-size: 3.1em; float: left;
    line-height: 0.85; padding: 5px 12px 0 0; color: var(--clr-accent-hover);
}
.theme-verdant.page-about .about__photo-frame { max-width: 400px; margin: 0 auto; }

/* Contact — card-framed form, icon-badged details */
.theme-verdant.page-contact .contact-form { padding-top: 90px; }
.theme-verdant .contact-form__form {
    background: var(--clr-card); border: 1px solid rgba(125,155,118,0.16);
    border-radius: 16px; padding: 40px 36px; box-shadow: var(--shadow-card);
}
.theme-verdant .contact-form__detail { gap: 14px; margin-bottom: 1.4rem; }
.theme-verdant .contact-form__detail i {
    width: 40px; height: 40px; border-radius: 50%; flex: 0 0 40px;
    display: inline-flex; align-items: center; justify-content: center;
    border: 1px solid rgba(125,155,118,0.35); color: var(--clr-accent-hover);
    background: var(--clr-alt); font-size: 0.9rem;
}
.theme-verdant .contact-form__subtitle { line-height: 1.75; margin-bottom: 2rem; }
.theme-verdant .contact-form__field input,
.theme-verdant .contact-form__field textarea { border-radius: 10px; padding: 13px 16px; }
.theme-verdant .contact-form__field input:focus,
.theme-verdant .contact-form__field textarea:focus {
    border-color: var(--clr-accent-hover); box-shadow: 0 0 0 3px rgba(125,155,118,0.15);
    outline: none;
}

/* Footer — deep moss (dark bg keeps the shared white text readable) */
.theme-verdant .landing-footer { background: #262d24; }
.theme-verdant .landing-footer__heading { color: rgba(255,255,255,0.55); }
.theme-verdant .landing-footer__sep { color: rgba(255,255,255,0.55); }

/* ═══ VERDANT PHOTO BACKGROUNDS — deep moss overlays ═══
   Centered hero text sits mid-photo ⇒ the overlay is strongest in the middle
   band (unlike Lumière's left-weighted 135deg gradient for left-aligned text).
   Photo set (ids 47-51) is darker than Lumière's — avg RGB 54-160 vs 187-212 —
   so alphas are lighter: white text still measures ≥10:1 on every slot. */
.theme-verdant .hero__overlay {
    background: linear-gradient(
        180deg,
        rgba(35,44,33,0.50) 0%,
        rgba(35,44,33,0.62) 38%,
        rgba(35,44,33,0.62) 72%,
        rgba(35,44,33,0.55) 100%
    );
}
.theme-verdant .section__bg-overlay { background: rgba(35,44,33,0.68); }
.theme-verdant .hero--has-bg .hero__headline { color: #ffffff; }
.theme-verdant .hero--has-bg .hero__headline em,
.theme-verdant .hero--has-bg .hero__headline span { color: #d9e6d2; }
.theme-verdant .hero--has-bg .hero__subtext { color: #ffffff; text-shadow: 0 1px 10px rgba(0,0,0,0.25); }
.theme-verdant .hero--has-bg .hero__badge {
    color: #ffffff; border-color: rgba(246,243,237,0.5);
    background: rgba(28,36,26,0.55);
}
.theme-verdant .hero--has-bg .hero__breadcrumb,
.theme-verdant .hero--has-bg .hero__breadcrumb a,
.theme-verdant .hero--has-bg .hero__breadcrumb span { color: rgba(255,255,255,0.92); }
.theme-verdant .hero--has-bg .hero__breadcrumb a:hover { color: #fff; }
/* CTA over photo: inverted (cream bg, dark ink) — white-on-light-green fails over photos */
.theme-verdant .hero--has-bg .btn--primary,
.theme-verdant .hero--has-bg .hero__cta .btn--primary { background: #f6f3ed; color: #2d332a; }
.theme-verdant .hero--has-bg .btn--primary:hover { background: #fff; box-shadow: 0 12px 30px rgba(0,0,0,0.25); }
.theme-verdant .hero--sub.hero--has-bg { min-height: 340px; background-position: center 40%; }
/* Sub-page heroes: flat overlay — 0.66 keeps ≥10:1 on the brightest slot (49, ferns) */
.theme-verdant .hero--sub .hero__overlay { background: rgba(30,38,28,0.66); }
.theme-verdant .hero--has-bg .hero__headline--sub { color: #ffffff; }
/* Quote over photo: pure white text, glowing mark */
.theme-verdant .quote.section--has-bg { padding: 120px 20px; }
.theme-verdant .quote.section--has-bg .quote__text { color: #ffffff; }
.theme-verdant .quote.section--has-bg .quote__text::before { color: rgba(246,243,237,0.3); }
.theme-verdant .quote.section--has-bg .quote__author { color: rgba(255,255,255,0.88); }

/* Breadcrumb (no photo): darker green home link for contrast */
.theme-verdant .hero__breadcrumb a { color: var(--clr-accent-hover); }

/* Reveal pacing — unhurried, like growth */
.theme-verdant .reveal { transition: opacity 0.7s ease, transform 0.7s ease; }

/* ── Aurum — Cormorant Garamond, gold, formal, photo LEFT ──────────────── */
.theme-aurum {
    --clr-bg:        #fffbf4;
    --clr-bg-rgb:    255, 251, 244;
    --clr-text:      #2e2218;
    --clr-text-light:#6b5540;
    --clr-accent:    #c9a96e;
    --clr-accent-hover: #7a5f33; /* readable gold ink on light bg (5.9:1 on #fffbf4) */
    --clr-border:    #ede0cc;
    --clr-card:      #ffffff;
    --clr-alt:       #fdf5e8;
    --clr-invert:    #2e2218;
    --font-heading:  "Cormorant Garamond", serif;
    --radius:        4px;
    --shadow-card:   0 1px 3px rgba(46,34,24,0.04), 0 1px 2px rgba(46,34,24,0.03);
    --shadow-hover:  0 4px 16px rgba(46,34,24,0.07), 0 2px 4px rgba(46,34,24,0.04);
    --section-pad:   110px;
}

/* ═══ AURUM HERO — portrait LEFT, text right, formal serif ═══ */
.theme-aurum .hero { flex-direction: row-reverse; }
/* NB: no flex-direction here — it must inherit row-reverse from .hero above
   (equal specificity + later position would put the portrait back on the right) */
.theme-aurum .hero--full { display: flex; align-items: center; gap: 0; min-height: 82vh; }
.theme-aurum .hero__content { max-width: none; flex: 1; padding-left: 48px; }
.theme-aurum .hero__headline { font-size: 3.8rem; font-weight: 300; letter-spacing: 0; max-width: 640px; line-height: 1.15; }
.theme-aurum .hero__headline em,
.theme-aurum .hero__headline span { color: var(--clr-accent-hover); font-style: italic; font-weight: 400; }
.theme-aurum .hero__subtext { max-width: 540px; font-size: 1.12rem; line-height: 1.75; }
.theme-aurum .hero__badge {
    display: inline-block; font-size: 0.72rem; letter-spacing: 0.18em; text-transform: uppercase;
    font-weight: 500; color: var(--clr-accent-hover);
    border: 1px solid rgba(201,169,110,0.55); background: rgba(253,245,232,0.75);
    border-radius: 2px; padding: 6px 16px;
}
.theme-aurum .hero__photo { position: relative; right: auto; bottom: auto; flex: 0 0 42%; height: auto; min-height: 500px; max-width: 420px; margin: 0; }
.theme-aurum .hero__photo img { border-radius: 4px; box-shadow: 0 20px 60px rgba(46,34,24,0.22); }
/* No golden line (we have real gold) */
.theme-aurum .hero__content::before { display: none; }

/* Buttons: bronze gradient — white text ≥5.3:1 across the run
   (the raw gold #c9a96e measures 2.2:1 with light text — never a button bg) */
.theme-aurum .btn--primary,
.theme-aurum .hero__cta .btn--primary {
    background: linear-gradient(135deg, #5f4a26 0%, #83672f 100%);
    color: #fff; border-radius: 4px; padding: 14px 34px; letter-spacing: 0.06em;
}
.theme-aurum .btn--primary:hover { background: linear-gradient(135deg, #503e20 0%, #715726 100%); box-shadow: 0 8px 24px rgba(95,74,38,0.3); }
.theme-aurum .cta-block__btn { background: linear-gradient(135deg, #5f4a26 0%, #83672f 100%); border-radius: 4px; letter-spacing: 0.06em; }

/* Nav: hairline header, gold-ink active (accent 2.2:1 / accent-hover 3.1:1 both fail) */
.theme-aurum .landing-header { background: rgba(255,251,244,0.9); backdrop-filter: blur(10px); border-bottom: 1px solid var(--clr-border); }
.theme-aurum .landing-header--scrolled { background: rgba(255,251,244,0.97); box-shadow: 0 2px 10px rgba(46,34,24,0.05); }
.theme-aurum .landing-header__link { letter-spacing: 0.04em; }
.theme-aurum .landing-header__link:hover { background: transparent; color: var(--clr-accent-hover); }
.theme-aurum .landing-header__link--active { color: var(--clr-accent-hover); font-weight: 500; }
.theme-aurum .landing-mobile-drawer__link--active { color: var(--clr-accent-hover); }

/* ═══ AURUM SECTIONS — formal rhythm, gold hairlines ═══ */
.theme-aurum .section { padding: var(--section-pad) 20px; }
.theme-aurum .section__heading { font-weight: 300; font-size: 2.3rem; letter-spacing: 0.02em; }
/* Signature: short gold rule under every section heading */
.theme-aurum .section__heading::after {
    content: ""; display: block; width: 56px; height: 2px;
    background: var(--clr-accent); margin: 0.9rem auto 0;
}
.theme-aurum .section--alt { background: var(--clr-alt); }

/* Approach cards: sharp rects, hairline gold frames */
.theme-aurum .approach__card {
    border-radius: 4px; padding: 44px 32px;
    border: 1px solid rgba(201,169,110,0.28); box-shadow: none;
    transition: transform 0.3s ease, box-shadow 0.3s ease, border-color 0.3s ease;
}
.theme-aurum .approach__card:hover { transform: translateY(-6px); box-shadow: var(--shadow-hover); border-color: rgba(201,169,110,0.55); }
.theme-aurum .approach__icon { background: var(--clr-alt); border-radius: 4px; border: 1px solid rgba(201,169,110,0.35); }
.theme-aurum .approach__icon i { color: var(--clr-accent-hover); font-size: 1.2rem; }
.theme-aurum .approach__title { font-weight: 400; font-size: 1.35rem; }
.theme-aurum .approach__desc { line-height: 1.7; }

/* Services: readable gold-ink price, sharp frames, centered intro */
.theme-aurum .services__card { border-radius: 4px; border: 1px solid rgba(201,169,110,0.22); }
.theme-aurum .services__card-price { color: var(--clr-accent-hover); font-weight: 500; }
.theme-aurum .services__card-meta { border-top-color: rgba(201,169,110,0.3); }
.theme-aurum .services__subtitle {
    text-align: center; max-width: 560px; margin: 0 auto 3rem;
    color: var(--clr-text-light); font-size: 1.05rem; line-height: 1.7;
}
.theme-aurum.page-services .services { padding-top: 90px; }
.theme-aurum.page-services .section__heading { text-align: center; }
.theme-aurum.page-services .services__grid { max-width: 760px; margin: 0 auto; }
.theme-aurum.page-services .services__card { padding: 44px 34px; }
.theme-aurum.page-services .services__card-desc { line-height: 1.7; }

/* Quote: grand serif italic, gold mark */
.theme-aurum .quote { padding: 100px 20px; }
.theme-aurum .quote__text { font-size: 2rem; font-weight: 300; font-style: italic; line-height: 1.5; position: relative; }
.theme-aurum .quote__text::before {
    content: "\201C"; display: block; font-size: 6rem; line-height: 1;
    color: rgba(201,169,110,0.45); font-family: var(--font-heading);
    margin-bottom: 0.3rem;
}
.theme-aurum .quote__author { font-size: 0.85rem; letter-spacing: 0.12em; text-transform: uppercase; }

/* About: sharp photo, gold-ink drop-cap on the about page */
.theme-aurum .about__photo { border-radius: 4px; }
.theme-aurum .about__text { line-height: 1.8; }
.theme-aurum .about__credential { border-top-color: rgba(201,169,110,0.35); }
.theme-aurum.page-about .about { padding-top: 90px; }
.theme-aurum.page-about .about__text::first-letter {
    font-family: var(--font-heading); font-size: 3.3em; float: left;
    line-height: 0.8; padding: 6px 12px 0 0; color: var(--clr-accent-hover);
}
.theme-aurum.page-about .about__photo-frame { max-width: 400px; margin: 0 auto; }

/* Contact: card-framed form, square gold icon badges */
.theme-aurum.page-contact .contact-form { padding-top: 90px; }
.theme-aurum .contact-form__form {
    background: var(--clr-card); border: 1px solid rgba(201,169,110,0.3);
    border-radius: 4px; padding: 40px 36px; box-shadow: var(--shadow-card);
}
.theme-aurum .contact-form__detail { gap: 14px; margin-bottom: 1.4rem; }
.theme-aurum .contact-form__detail i {
    width: 40px; height: 40px; border-radius: 4px; flex: 0 0 40px;
    display: inline-flex; align-items: center; justify-content: center;
    border: 1px solid rgba(201,169,110,0.5); color: var(--clr-accent-hover);
    background: var(--clr-alt); font-size: 0.9rem;
}
.theme-aurum .contact-form__subtitle { line-height: 1.75; margin-bottom: 2rem; }
.theme-aurum .contact-form__field input,
.theme-aurum .contact-form__field textarea { border-radius: 4px; padding: 13px 16px; }
.theme-aurum .contact-form__field input:focus,
.theme-aurum .contact-form__field textarea:focus {
    border-color: var(--clr-accent-hover); box-shadow: 0 0 0 3px rgba(201,169,110,0.18);
    outline: none;
}

/* Footer: deep umber (dark bg keeps the shared white footer text readable) */
.theme-aurum .landing-footer { background: #241b10; }
.theme-aurum .landing-footer__heading { color: rgba(255,255,255,0.55); }
.theme-aurum .landing-footer__sep { color: rgba(255,255,255,0.55); }

/* ═══ AURUM PHOTO BACKGROUNDS — warm umber overlays ═══
   Hero text sits on the RIGHT (portrait left) ⇒ 270deg gradient, strongest
   at the right edge (mirror of Lumière's left-weighted 135deg). Photo set
   (ids 52-56) is brighter than Verdant's — about linen avg [185,175,153] —
   so sub-hero alpha is 0.70 (vs Verdant 0.66): white text ≥9:1 everywhere,
   home text column ~11.8:1, quote ~12.7:1. */
.theme-aurum .hero__overlay {
    background: linear-gradient(
        270deg,
        rgba(40,30,18,0.72) 0%,
        rgba(40,30,18,0.62) 45%,
        rgba(40,30,18,0.48) 100%
    );
}
.theme-aurum .section__bg-overlay { background: rgba(40,30,18,0.68); }
.theme-aurum .hero--has-bg .hero__headline { color: #ffffff; }
.theme-aurum .hero--has-bg .hero__headline em,
.theme-aurum .hero--has-bg .hero__headline span { color: #e9d7ae; font-style: italic; }
.theme-aurum .hero--has-bg .hero__subtext { color: #ffffff; text-shadow: 0 1px 10px rgba(0,0,0,0.3); }
.theme-aurum .hero--has-bg .hero__badge {
    color: #ffffff; border-color: rgba(233,215,174,0.55);
    background: rgba(36,27,16,0.55);
}
.theme-aurum .hero--has-bg .hero__breadcrumb,
.theme-aurum .hero--has-bg .hero__breadcrumb a,
.theme-aurum .hero--has-bg .hero__breadcrumb span { color: rgba(255,255,255,0.92); }
.theme-aurum .hero--has-bg .hero__breadcrumb a:hover { color: #fff; }
/* CTA over photo: inverted (cream bg, dark ink) */
.theme-aurum .hero--has-bg .btn--primary,
.theme-aurum .hero--has-bg .hero__cta .btn--primary { background: #fffbf4; color: #2e2218; }
.theme-aurum .hero--has-bg .btn--primary:hover { background: #fff; box-shadow: 0 12px 30px rgba(0,0,0,0.28); }
.theme-aurum .hero--sub.hero--has-bg { min-height: 340px; background-position: center 40%; }
.theme-aurum .hero--sub .hero__overlay { background: rgba(36,27,16,0.70); }
.theme-aurum .hero--has-bg .hero__headline--sub { color: #ffffff; }
/* Quote over photo: white text, glowing gold mark */
.theme-aurum .quote.section--has-bg { padding: 120px 20px; }
.theme-aurum .quote.section--has-bg .quote__text { color: #ffffff; }
.theme-aurum .quote.section--has-bg .quote__text::before { color: rgba(233,215,174,0.5); }
.theme-aurum .quote.section--has-bg .quote__author { color: rgba(255,255,255,0.88); }
.theme-aurum .quote.section--has-bg .section__heading::after { background: rgba(233,215,174,0.7); }

/* Breadcrumb (no photo): gold-ink home link */
.theme-aurum .hero__breadcrumb a { color: var(--clr-accent-hover); }

/* Reveal pacing — stately */
.theme-aurum .reveal { transition: opacity 0.7s ease, transform 0.7s ease; }

/* ── Marea — Jost, ocean blues, modern sans-serif ──────────────────────── */
.theme-marea {
    --clr-bg:        #f7f9fb;
    --clr-bg-rgb:    247, 249, 251;
    --clr-text:      #1e2d34;
    --clr-text-light:#4e6670;
    --clr-accent:    #3d6b73;
    --clr-accent-hover: #2c545b;
    --clr-border:    #dce6eb;
    --clr-card:      #ffffff;
    --clr-alt:       #eef3f6;
    --clr-invert:    #1e2d34;
    --font-heading:  "Jost", sans-serif;
    --radius:        12px;
    --shadow-card:   0 2px 12px rgba(61,107,115,0.05), 0 1px 3px rgba(61,107,115,0.03);
    --shadow-hover:  0 8px 28px rgba(61,107,115,0.10), 0 2px 6px rgba(61,107,115,0.05);
    --section-pad:   110px;
}

/* ═══ MAREA HERO — text left, photo right (organic blob), airy sans ═══ */
.theme-marea .hero__headline { font-size: 3.2rem; font-weight: 300; letter-spacing: -0.01em; }
.theme-marea .hero__headline em,
.theme-marea .hero__headline strong { font-weight: 500; color: var(--clr-accent); font-style: normal; }
.theme-marea .hero__subtext { max-width: 500px; font-size: 1.12rem; line-height: 1.75; }
.theme-marea .hero__badge {
    display: inline-block; font-size: 0.75rem; letter-spacing: 0.12em; text-transform: uppercase;
    font-weight: 500; color: var(--clr-accent-hover);
    border: 1px solid rgba(61,107,115,0.35); background: rgba(238,243,246,0.8);
    border-radius: 20px; padding: 6px 16px;
}
/* Photo: organic blob (default), blue-tinted shadow */
.theme-marea .hero__photo img { box-shadow: 0 8px 40px rgba(61,107,115,0.15); }
/* No golden line */
.theme-marea .hero__content::before { display: none; }
/* Gradient hero bg tint (visible only when no photo is wired) */
.theme-marea .hero--full { background: linear-gradient(180deg, #f7f9fb 0%, #eef3f6 60%); }

/* Buttons: deep teal — white text measures 5.9:1 on #3d6b73, no darkening needed */
.theme-marea .btn--primary,
.theme-marea .hero__cta .btn--primary {
    background: var(--clr-accent); color: #fff; border-radius: 8px; padding: 14px 32px;
}
.theme-marea .btn--primary:hover { background: var(--clr-accent-hover); box-shadow: 0 10px 25px rgba(61,107,115,0.25); }
.theme-marea .cta-block__btn { background: var(--clr-accent); border-radius: 8px; }

/* Nav: solid white bar (Marea signature); accent is dark enough for active (5.9:1) */
.theme-marea .landing-header { background: #fff; border-bottom: 1px solid var(--clr-border); }
.theme-marea .landing-header--scrolled { background: rgba(255,255,255,0.95); box-shadow: 0 2px 10px rgba(30,45,52,0.06); }
.theme-marea .landing-header__link:hover { background: var(--clr-alt); color: var(--clr-accent-hover); }
.theme-marea .landing-header__link--active { color: var(--clr-accent-hover); font-weight: 500; }
.theme-marea .landing-mobile-drawer__link--active { color: var(--clr-accent-hover); }

/* ═══ MAREA SECTIONS — airy, rounded, cool ═══ */
.theme-marea .section { padding: var(--section-pad) 20px; }
.theme-marea .section__heading { font-weight: 300; letter-spacing: 0; font-size: 2.2rem; }
.theme-marea .section--alt { background: var(--clr-alt); }

/* Approach cards — rounded, wave-blue frames */
.theme-marea .approach__card {
    border-radius: 14px; padding: 44px 30px;
    border: 1px solid rgba(61,107,115,0.14); box-shadow: none;
    transition: transform 0.3s ease, box-shadow 0.3s ease, border-color 0.3s ease;
}
.theme-marea .approach__card:hover { transform: translateY(-6px); box-shadow: var(--shadow-hover); border-color: rgba(61,107,115,0.3); }
.theme-marea .approach__icon { background: var(--clr-alt); }
.theme-marea .approach__icon i { color: var(--clr-accent-hover); font-size: 1.25rem; }
.theme-marea .approach__desc { line-height: 1.7; }

/* Services — readable price, rounded frames, centered intro */
.theme-marea .services__card { border-radius: 14px; border: 1px solid rgba(61,107,115,0.12); }
.theme-marea .services__card-price { color: var(--clr-accent-hover); font-weight: 500; }
.theme-marea .services__card-meta { border-top-color: rgba(61,107,115,0.18); }
.theme-marea .services__subtitle {
    text-align: center; max-width: 560px; margin: 0 auto 3rem;
    color: var(--clr-text-light); font-size: 1.05rem; line-height: 1.7;
}
.theme-marea.page-services .services { padding-top: 90px; }
.theme-marea.page-services .section__heading { text-align: center; }
.theme-marea.page-services .services__grid { max-width: 760px; margin: 0 auto; }
.theme-marea.page-services .services__card { padding: 44px 34px; }
.theme-marea.page-services .services__card-desc { line-height: 1.7; }

/* Quote — light sans, wave-blue mark */
.theme-marea .quote { padding: 100px 20px; }
.theme-marea .quote__text { font-size: 1.9rem; font-weight: 300; line-height: 1.55; position: relative; }
.theme-marea .quote__text::before {
    content: "\201C"; display: block; font-size: 5.5rem; line-height: 1;
    color: rgba(61,107,115,0.3); font-family: var(--font-heading);
    margin-bottom: 0.4rem;
}
.theme-marea .quote__author { font-size: 0.9rem; letter-spacing: 0.08em; text-transform: uppercase; }

/* About — rounded photo, drop-cap opener on the about page */
.theme-marea .about__photo { border-radius: 14px; }
.theme-marea .about__text { line-height: 1.8; }
.theme-marea .about__credential { border-top-color: rgba(61,107,115,0.25); }
.theme-marea.page-about .about { padding-top: 90px; }
.theme-marea.page-about .about__text::first-letter {
    font-family: var(--font-heading); font-size: 3.1em; float: left;
    line-height: 0.85; padding: 5px 12px 0 0; color: var(--clr-accent-hover);
}
.theme-marea.page-about .about__photo-frame { max-width: 400px; margin: 0 auto; }

/* Contact — card-framed form, round icon badges */
.theme-marea.page-contact .contact-form { padding-top: 90px; }
.theme-marea .contact-form__form {
    background: var(--clr-card); border: 1px solid rgba(61,107,115,0.16);
    border-radius: 14px; padding: 40px 36px; box-shadow: var(--shadow-card);
}
.theme-marea .contact-form__detail { gap: 14px; margin-bottom: 1.4rem; }
.theme-marea .contact-form__detail i {
    width: 40px; height: 40px; border-radius: 50%; flex: 0 0 40px;
    display: inline-flex; align-items: center; justify-content: center;
    border: 1px solid rgba(61,107,115,0.35); color: var(--clr-accent-hover);
    background: var(--clr-alt); font-size: 0.9rem;
}
.theme-marea .contact-form__subtitle { line-height: 1.75; margin-bottom: 2rem; }
.theme-marea .contact-form__field input,
.theme-marea .contact-form__field textarea { border-radius: 10px; padding: 13px 16px; }
.theme-marea .contact-form__field input:focus,
.theme-marea .contact-form__field textarea:focus {
    border-color: var(--clr-accent-hover); box-shadow: 0 0 0 3px rgba(61,107,115,0.15);
    outline: none;
}

/* Footer — deep ocean ink (dark bg keeps the shared white footer text readable) */
.theme-marea .landing-footer { background: #16242b; }
.theme-marea .landing-footer__heading { color: rgba(255,255,255,0.55); }
.theme-marea .landing-footer__sep { color: rgba(255,255,255,0.55); }

/* ═══ MAREA PHOTO BACKGROUNDS — ocean-ink overlays ═══
   Hero text sits LEFT (photo blob right) ⇒ 135deg gradient, strongest
   top-left (same shape as Lumière). Photo set (ids 57-61) is the brightest
   yet — misty ocean avg [162,175,182], pier-in-fog [195,197,199] — so
   the hero stop is stepped to .78 / sub-hero 0.66 / quote 0.68.
   White text worst case: home gradient 0.50 stop → composite [90,103,108]
   → ≥5.6:1; contact pier at 0.66 → [77,85,90] → 7.3:1. */
.theme-marea .hero__overlay {
    background: linear-gradient(
        135deg,
        rgba(16,28,34,0.78) 0%,
        rgba(16,28,34,0.62) 55%,
        rgba(16,28,34,0.50) 100%
    );
}
.theme-marea .section__bg-overlay { background: rgba(20,33,40,0.68); }
.theme-marea .hero--has-bg .hero__headline { color: #ffffff; }
.theme-marea .hero--has-bg .hero__headline em,
.theme-marea .hero--has-bg .hero__headline strong { color: #cfe5e8; }
.theme-marea .hero--has-bg .hero__subtext { color: #ffffff; text-shadow: 0 1px 10px rgba(0,0,0,0.3); }
.theme-marea .hero--has-bg .hero__badge {
    color: #ffffff; border-color: rgba(207,229,232,0.5);
    background: rgba(16,28,34,0.55);
}
.theme-marea .hero--has-bg .hero__breadcrumb,
.theme-marea .hero--has-bg .hero__breadcrumb a,
.theme-marea .hero--has-bg .hero__breadcrumb span { color: rgba(255,255,255,0.92); }
.theme-marea .hero--has-bg .hero__breadcrumb a:hover { color: #fff; }
/* CTA over photo: inverted (cool off-white bg, ink text) */
.theme-marea .hero--has-bg .btn--primary,
.theme-marea .hero--has-bg .hero__cta .btn--primary { background: #f7f9fb; color: #1e2d34; }
.theme-marea .hero--has-bg .btn--primary:hover { background: #fff; box-shadow: 0 12px 30px rgba(0,0,0,0.28); }
.theme-marea .hero--sub.hero--has-bg { min-height: 340px; background-position: center 40%; }
.theme-marea .hero--sub .hero__overlay { background: rgba(16,28,34,0.66); }
.theme-marea .hero--has-bg .hero__headline--sub { color: #ffffff; }
/* Quote over photo: white text, glowing mark */
.theme-marea .quote.section--has-bg { padding: 120px 20px; }
.theme-marea .quote.section--has-bg .quote__text { color: #ffffff; }
.theme-marea .quote.section--has-bg .quote__text::before { color: rgba(207,229,232,0.4); }
.theme-marea .quote.section--has-bg .quote__author { color: rgba(255,255,255,0.88); }

/* Breadcrumb (no photo): darker teal home link */
.theme-marea .hero__breadcrumb a { color: var(--clr-accent-hover); }

/* Reveal pacing — tidal */
.theme-marea .reveal { transition: opacity 0.7s ease, transform 0.7s ease; }

/* ── Kanso — EB Garamond, zen minimal, photo LEFT, sharp ───────────────── */
.theme-kanso {
    --clr-bg:        #faf8f5;
    --clr-bg-rgb:    250, 248, 245;
    --clr-text:      #2b2724;
    --clr-text-light:#5c5651;
    --clr-accent:    #b8a59a;
    --clr-accent-hover: #6e6156; /* readable stone ink on light bg (5.7:1 on #faf8f5; the raw accent is 2.2:1) */
    --clr-border:    #e5e0d9;
    --clr-card:      #ffffff;
    --clr-alt:       #f5f1ed;
    --clr-invert:    #2b2724;
    --font-heading:  "EB Garamond", serif;
    --radius:        2px;
    --shadow-card:   none;
    --shadow-hover:  none;
    --section-pad:   120px; /* ma — the whitespace IS the decoration */
}

/* ═══ KANSO HERO — photo LEFT, text right, quiet serif ═══ */
.theme-kanso .hero { flex-direction: row-reverse; }
/* NB: no flex-direction here — it must inherit row-reverse from .hero above
   (equal specificity + later position would put the photo back on the right;
   this exact bug shipped on Aurum and was caught by pixel bands, not WCAG) */
.theme-kanso .hero--full { display: flex; align-items: center; gap: 0; min-height: 78vh; }
.theme-kanso .hero__content { max-width: none; flex: 1; padding-left: 48px; }
.theme-kanso .hero__headline { font-size: 2.9rem; font-weight: 400; letter-spacing: -0.005em; max-width: 580px; line-height: 1.25; }
.theme-kanso .hero__headline em,
.theme-kanso .hero__headline span { color: var(--clr-accent-hover); font-style: italic; font-weight: 400; }
.theme-kanso .hero__subtext { max-width: 460px; font-size: 1.02rem; line-height: 1.8; }
.theme-kanso .hero__badge {
    display: inline-block; font-size: 0.7rem; letter-spacing: 0.22em; text-transform: uppercase;
    font-weight: 500; color: var(--clr-accent-hover);
    border: 1px solid rgba(184,165,154,0.55); background: rgba(245,241,237,0.75);
    border-radius: 2px; padding: 6px 16px;
}
.theme-kanso .hero__photo { position: relative; right: auto; bottom: auto; flex: 0 0 38%; height: auto; min-height: 460px; max-width: 380px; margin: 0; }
.theme-kanso .hero__photo img { border-radius: 2px; box-shadow: 0 4px 20px rgba(43,39,36,0.08); }
/* No golden line — kanso decorates with nothing */
.theme-kanso .hero__content::before { display: none; }

/* Buttons: near-black, sharp — the accent #b8a59a is never a button bg (2.4:1) */
.theme-kanso .btn--primary,
.theme-kanso .hero__cta .btn--primary {
    background: #2b2724; color: #faf8f5; border-radius: 2px;
    padding: 13px 30px; font-size: 0.875rem; letter-spacing: 0.06em;
}
.theme-kanso .btn--primary:hover { background: #4a4440; box-shadow: none; }
.theme-kanso .cta-block__btn { background: #2b2724; border-radius: 2px; letter-spacing: 0.06em; }

/* Nav: hairline header, stone-ink active (accent 2.2:1 fails as link ink) */
.theme-kanso .landing-header { background: rgba(250,248,245,0.92); backdrop-filter: blur(10px); border-bottom: 1px solid var(--clr-border); }
.theme-kanso .landing-header--scrolled { background: rgba(250,248,245,0.98); box-shadow: 0 1px 6px rgba(43,39,36,0.05); }
.theme-kanso .landing-header__link { font-size: 0.85rem; letter-spacing: 0.05em; }
.theme-kanso .landing-header__link:hover { background: transparent; color: var(--clr-accent-hover); }
.theme-kanso .landing-header__link--active { color: var(--clr-accent-hover); font-weight: 500; }
.theme-kanso .landing-mobile-drawer__link--active { color: var(--clr-accent-hover); }

/* ═══ KANSO SECTIONS — bare, airy, hairline-framed ═══ */
.theme-kanso .section { padding: var(--section-pad) 20px; }
.theme-kanso .section__heading { font-size: 1.9rem; font-weight: 400; letter-spacing: 0.01em; }
.theme-kanso .section--alt { background: var(--clr-alt); }

/* Approach cards: sharp rects, hairline only, no shadow, no lift */
.theme-kanso .approach__card {
    border-radius: 2px; padding: 40px 30px;
    border: 1px solid var(--clr-border); box-shadow: none;
    transition: border-color 0.3s ease;
}
.theme-kanso .approach__card:hover { transform: none; box-shadow: none; border-color: var(--clr-accent); }
.theme-kanso .approach__icon { background: var(--clr-alt); border-radius: 2px; border: 1px solid var(--clr-border); }
.theme-kanso .approach__icon i { color: var(--clr-accent-hover); font-size: 1.1rem; }
.theme-kanso .approach__title { font-weight: 400; font-size: 1.3rem; }
.theme-kanso .approach__desc { line-height: 1.75; }

/* Services: stone-ink price, hairline frames, centered intro */
.theme-kanso .services__card { border-radius: 2px; border: 1px solid var(--clr-border); box-shadow: none; }
.theme-kanso .services__card:hover { transform: none; box-shadow: none; border-color: var(--clr-accent); }
.theme-kanso .services__card-price { color: var(--clr-accent-hover); font-weight: 500; }
.theme-kanso .services__card-meta { border-top-color: var(--clr-border); }
.theme-kanso .services__subtitle {
    text-align: center; max-width: 540px; margin: 0 auto 3rem;
    color: var(--clr-text-light); font-size: 1rem; line-height: 1.75;
}
.theme-kanso.page-services .services { padding-top: 90px; }
.theme-kanso.page-services .section__heading { text-align: center; }
.theme-kanso.page-services .services__grid { max-width: 760px; margin: 0 auto; }
.theme-kanso.page-services .services__card { padding: 42px 32px; }
.theme-kanso.page-services .services__card-desc { line-height: 1.75; }

/* Quote: plain italic garamond — no quote mark, no ornament */
.theme-kanso .quote { padding: 110px 20px; }
.theme-kanso .quote__text { font-size: 1.55rem; font-weight: 400; font-style: italic; line-height: 1.7; }
.theme-kanso .quote__author { font-size: 0.8rem; letter-spacing: 0.18em; text-transform: uppercase; }

/* About: sharp photo, stone drop-cap on the about page */
.theme-kanso .about__photo { border-radius: 2px; }
.theme-kanso .about__text { line-height: 1.85; }
.theme-kanso .about__credential { border-top-color: var(--clr-border); }
.theme-kanso.page-about .about { padding-top: 90px; }
.theme-kanso.page-about .about__text::first-letter {
    font-family: var(--font-heading); font-size: 3.2em; float: left;
    line-height: 0.8; padding: 6px 12px 0 0; color: var(--clr-accent-hover);
}
.theme-kanso.page-about .about__photo-frame { max-width: 400px; margin: 0 auto; }

/* Contact: card-framed form, sharp square stone icon badges */
.theme-kanso.page-contact .contact-form { padding-top: 90px; }
.theme-kanso .contact-form__form {
    background: var(--clr-card); border: 1px solid var(--clr-border);
    border-radius: 2px; padding: 40px 36px; box-shadow: none;
}
.theme-kanso .contact-form__detail { gap: 14px; margin-bottom: 1.4rem; }
.theme-kanso .contact-form__detail i {
    width: 40px; height: 40px; border-radius: 2px; flex: 0 0 40px;
    display: inline-flex; align-items: center; justify-content: center;
    border: 1px solid var(--clr-border); color: var(--clr-accent-hover);
    background: var(--clr-alt); font-size: 0.85rem;
}
.theme-kanso .contact-form__subtitle { line-height: 1.8; margin-bottom: 2rem; }
.theme-kanso .contact-form__field input,
.theme-kanso .contact-form__field textarea { border-radius: 2px; padding: 13px 16px; }
.theme-kanso .contact-form__field input:focus,
.theme-kanso .contact-form__field textarea:focus {
    border-color: var(--clr-accent-hover); box-shadow: 0 0 0 3px rgba(184,165,154,0.2);
    outline: none;
}

/* Footer: deep warm charcoal (dark bg keeps the shared white footer text readable) */
.theme-kanso .landing-footer { background: #262220; }
.theme-kanso .landing-footer__heading { color: rgba(255,255,255,0.55); }
.theme-kanso .landing-footer__sep { color: rgba(255,255,255,0.55); }

/* ═══ KANSO PHOTO BACKGROUNDS — warm stone-ink overlays ═══
   Hero text sits on the RIGHT (photo left) ⇒ 270deg gradient, strongest at
   the right edge (same shape as Aurum). Alphas tuned to photo avgRGBs:
   photo 62 (home dunes) is pure neutral grey avg [150,150,150] ⇒ strong
   stop 0.75 = 10.7:1 white, worst-case min stop 0.50 = 6.8:1; sub-heroes
   flat 0.70 (about parchment [191,187,176] → 8.6:1, services still life
   [109,106,98] → 12.5:1, contact horizon [192,188,181] → 8.5:1); quote
   glow [197,189,175] at 0.70 → 8.1:1. */
.theme-kanso .hero__overlay {
    background: linear-gradient(
        270deg,
        rgba(36,32,28,0.75) 0%,
        rgba(36,32,28,0.62) 45%,
        rgba(36,32,28,0.50) 100%
    );
}
.theme-kanso .section__bg-overlay { background: rgba(36,32,28,0.70); }
.theme-kanso .hero--has-bg .hero__headline { color: #ffffff; }
.theme-kanso .hero--has-bg .hero__headline em,
.theme-kanso .hero--has-bg .hero__headline span { color: #e6dcd2; font-style: italic; }
.theme-kanso .hero--has-bg .hero__subtext { color: #ffffff; text-shadow: 0 1px 10px rgba(0,0,0,0.3); }
.theme-kanso .hero--has-bg .hero__badge {
    color: #ffffff; border-color: rgba(230,220,210,0.5);
    background: rgba(36,32,28,0.55);
}
.theme-kanso .hero--has-bg .hero__breadcrumb,
.theme-kanso .hero--has-bg .hero__breadcrumb a,
.theme-kanso .hero--has-bg .hero__breadcrumb span { color: rgba(255,255,255,0.92); }
.theme-kanso .hero--has-bg .hero__breadcrumb a:hover { color: #fff; }
/* CTA over photo: inverted (paper bg, dark ink) */
.theme-kanso .hero--has-bg .btn--primary,
.theme-kanso .hero--has-bg .hero__cta .btn--primary { background: #faf8f5; color: #2b2724; }
.theme-kanso .hero--has-bg .btn--primary:hover { background: #fff; box-shadow: 0 8px 24px rgba(0,0,0,0.25); }
.theme-kanso .hero--sub.hero--has-bg { min-height: 320px; background-position: center 45%; }
.theme-kanso .hero--sub .hero__overlay { background: rgba(32,28,25,0.70); }
.theme-kanso .hero--has-bg .hero__headline--sub { color: #ffffff; }
/* Quote over photo: white italic, nothing else */
.theme-kanso .quote.section--has-bg { padding: 120px 20px; }
.theme-kanso .quote.section--has-bg .quote__text { color: #ffffff; }
.theme-kanso .quote.section--has-bg .quote__author { color: rgba(255,255,255,0.88); }

/* Breadcrumb (no photo): stone-ink home link */
.theme-kanso .hero__breadcrumb a { color: var(--clr-accent-hover); }

/* Reveal pacing — slow, calm */
.theme-kanso .reveal { transition: opacity 0.8s ease, transform 0.8s ease; }

/* ── Responsive: Tablet (≤900px) ───────────────────────────────────────── */
@media (max-width: 900px) {
    .section { padding: 72px 20px; }
    .section__heading { font-size: 1.85rem; }

    .landing-header__nav { display: none; }
    .landing-header__link--ghost { display: none; }
    .landing-header__hamburger { display: flex; }

    .hero__headline { font-size: 2.4rem; }
    .hero__photo { width: 200px; height: 260px; right: 16px; bottom: 32px; }

    .approach__grid,
    .services__grid,
    .testimonials__grid {
        grid-template-columns: repeat(2, 1fr);
    }

    .about__grid { grid-template-columns: 1fr; gap: 40px; }
    .about__photo-frame { max-width: 400px; margin: 0 auto; padding-bottom: 80%; }

    .contact-form__grid {
        grid-template-columns: 1fr; gap: 32px;
    }

    .landing-footer__inner {
        grid-template-columns: 1fr 1fr; gap: 32px;
    }
}

/* ── Responsive: Mobile (≤640px) ───────────────────────────────────────── */
@media (max-width: 640px) {
    :root { --header-h: 60px; }

    .section { padding: 56px 16px; }
    .section__heading { font-size: 1.6rem; margin-bottom: 1.25rem; }

    .landing-header__inner { padding: 0 16px; gap: 12px; }
    .landing-header__cta { padding: 0.5em 1em; font-size: 0.85rem; }

    .hero--full { min-height: calc(100vh - var(--header-h)); }
    .hero--sub  { min-height: 220px; }
    .hero__content { padding: 32px 16px; }
    .hero__content::before { display: none; }
    .hero__headline { font-size: 1.85rem; }
    .hero__headline--sub { font-size: 1.5rem; }
    .hero__subtext { font-size: 0.95rem; }
    .hero__photo { position: relative; right: auto; bottom: auto; width: 140px; height: 170px; margin: 32px auto 0; }

    .approach__grid,
    .services__grid,
    .testimonials__grid {
        grid-template-columns: 1fr; gap: 20px;
    }

    .approach__card { padding: 28px 20px; }

    .about__photo-frame { max-width: 280px; padding-bottom: 100%; }

    .quote__text { font-size: 1.3rem; }

    .cta-block__title { font-size: 1.5rem; }

    .contact-form__grid { gap: 24px; }

    .landing-footer__inner {
        grid-template-columns: 1fr; gap: 28px;
    }
    .landing-footer__bottom {
        flex-direction: column; gap: 8px; text-align: center;
    }
}
