/**
 * OLIV editorial v1.1.1 — COMPACT
 * v1.1.1: spacing + delimitation cleanup (tightened section rhythm,
 * removed fake intra-section tonal fades, chapter ordinals, double
 * dividers; constrained hero photo strip). See v1.1.1 block at file end.
 * Post-audit clean rebuild: 15 geological layers merged into one flat,
 * ordered, maintainable stylesheet. All winning visual rules preserved.
 * Dead code, superseded overrides, and unused selectors removed.
 *
 * Sections:
 *   0. Base typography + utilities
 *   1. Hero
 *   2. Manifest (3-pillar)
 *   3. Approach (2×2 process)
 *   4. Two arms (brand / wedding)
 *   5. Founder pull-quote
 *   6. Selected work
 *   7. OLIV World (masonry)
 *   8. World stories preview
 *   9. Sibiu / Transilvania dark split
 *  10. About teaser
 *  11. Contact CTA
 *  12. Marquee
 *  13. Trust strip
 *  14. Header + nav
 *  15. Footer
 *  16. Breadcrumbs
 *  17. Mobile menu overlay
 *  18. Hover + texture lifts
 *  19. Animation scaffolding (word reveal, countup, curtain, etc.)
 *  20. Full-bleed breakout
 *  21. Responsive staircase
 *  22. Accessibility + reduced motion
 */

/* ================================================================
   0. BASE TYPOGRAPHY + UTILITIES
   ================================================================ */

body {
    font-family: var(--oliv-font-sans);
    font-weight: 400;
    background: var(--oliv-warm-white);
    color: var(--oliv-charcoal);
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    --ast-container-max-width: 96rem;
}

h1, h2, h3, h4, h5, h6 {
    font-family: var(--oliv-font-serif);
    font-weight: 400;
    letter-spacing: -0.015em;
    color: var(--oliv-muted-black);
    text-transform: none !important;
}

/* Kill Astra forced uppercase on headings — sentence case everywhere */
.entry-content :where(h1, h2, h3, h4, h5, h6),
.site-title, .site-title a,
.wp-block-heading,
.uagb-heading-text {
    text-transform: none !important;
}

h1 {
    font-size: clamp(2.75rem, 6.5vw, 6rem);
    line-height: 1.02;
    letter-spacing: -0.025em;
}

h2 {
    font-size: var(--oliv-h2);
    line-height: 1.08;
}

h3 {
    font-size: clamp(1.5rem, 2.6vw, 2.25rem);
    line-height: 1.15;
}

p {
    line-height: 1.6;
    max-width: 62ch;
    text-wrap: pretty;
    hyphens: auto;
    -webkit-hyphens: auto;
}

a {
    color: inherit;
    text-decoration: none;
    transition: color 0.4s var(--oliv-ease-cinematic);
}

a:hover {
    color: var(--oliv-accent-hover);
}

img {
    display: block;
    max-width: 100%;
    height: auto;
}

::selection {
    background: var(--oliv-chartreuse-bright);
    color: var(--oliv-muted-black);
}

/* Utility classes */
.oliv-script {
    font-family: var(--oliv-font-script);
    font-weight: 400;
    color: var(--oliv-accent);
    letter-spacing: 0;
    line-height: 1;
}

.oliv-eyebrow {
    font-family: var(--oliv-font-sans);
    font-size: 0.75rem;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: var(--oliv-earthy);
}

.oliv-bg-dark {
    background: var(--oliv-muted-black);
    color: var(--oliv-warm-white);
}
.oliv-bg-dark h1,
.oliv-bg-dark h2,
.oliv-bg-dark h3 {
    color: var(--oliv-warm-white);
}

/* Script eyebrow used in sections 2-7 */
.eyebrow-script {
    font-family: var(--oliv-font-script);
    font-size: var(--oliv-eyebrow-script);
    color: var(--oliv-chartreuse-shadow);
    letter-spacing: 0;
    line-height: 1;
    margin: 0 0 var(--oliv-rhythm-eyebrow-mb);
    text-transform: none;
}

.scope-dark .eyebrow-script,
[data-scope="dark"] .eyebrow-script {
    color: var(--oliv-chartreuse-bright);
}

/* Re-add uppercase ONLY on intentional elements */
.oliv-eyebrow, .oliv-tag-line, .scope-tag,
.scope-pill, .trust-label,
.main-header-menu a, .main-navigation a,
.ast-nav-menu a, .menu-item > a {
    text-transform: uppercase !important;
}

/* Text heading overflow safety — Romanian diacritics */
.hero-h1, .manifest-title, .approach-title, .contact-title,
.pillar-title, .step-title, .arm-title, .work-card-title {
    overflow-wrap: break-word;
    hyphens: auto;
    text-wrap: balance;
}

/* Hide Astra entry-title on Home (prevents 2× H1) */
.home .entry-title,
.home .ast-single-post .entry-title,
body.home header.entry-header {
    display: none !important;
}

/* Hide page title (Astra entry header) on ALL pages */
.entry-header.ast-no-thumbnail,
.entry-title:not(.hero-h1):not(.wp-block-heading) {
    display: none !important;
}

/* ================================================================
   0b. SECTION SYSTEM — universal rhythm + inner wrappers
   ================================================================ */

.oliv-section {
    position: relative;
}

.oliv-section[data-scope="dark"],
.oliv-section.scope-dark {
    background: var(--oliv-muted-black);
    color: var(--oliv-text-inverse);
}
.oliv-section[data-scope="dark"] h1,
.oliv-section[data-scope="dark"] h2,
.oliv-section[data-scope="dark"] h3,
.oliv-section.scope-dark h1,
.oliv-section.scope-dark h2,
.oliv-section.scope-dark h3 {
    color: var(--oliv-warm-white);
}

/* Universal section padding — single source of truth */
.oliv-section, .manifest-section, .approach-section, .work-section,
.world-section, .stories-section, .about-section, .contact-cta-section,
.arms-section, .founder-quote-section {
    padding-block: clamp(56px, 6vw, 96px);
}
.founder-quote-section, .contact-cta-section {
    padding-block: var(--oliv-rhythm-mega-py);
}

/* Inner wrapper unification */
.hero-inner, .manifest-inner, .approach-inner, .arms-inner,
.founder-quote-inner, .work-inner, .world-inner, .stories-inner,
.sibiu-inner, .about-inner, .contact-inner {
    max-width: var(--oliv-max-content);
    margin-inline: auto;
    padding-inline: var(--oliv-pad-inline);
    padding-block: 0;
    box-sizing: border-box;
}

/* Section H2 → consistent rhythm */
.manifest-title, .approach-title, .work-title, .world-title,
.stories-title, .sibiu-title, .about-title, .contact-title {
    font-family: var(--oliv-font-serif);
    font-size: var(--oliv-h2);
    line-height: 1.05;
    letter-spacing: -0.02em;
    font-weight: 400;
    text-transform: none;
    margin: 0 0 var(--oliv-rhythm-h2-mb);
}

/* Pillar/step/card sub-titles */
.pillar-title, .step-title, .arm-title, .story-title {
    font-size: clamp(1.35rem, 2vw, 1.75rem);
    line-height: 1.25;
    font-weight: 400;
    letter-spacing: -0.01em;
    text-transform: none;
}

/* Body text lock */
.manifest-body, .about-body, .hero-sub, .sibiu-body,
.about p, .arm-body, .step-body, .pillar-body,
.manifest-pillar p, .approach-step p {
    font-size: clamp(1.05rem, 1.3vw, 1.2rem);
    line-height: 1.7;
    max-width: var(--oliv-max-prose);
}

/* Eyebrow label lock (Inter caps tracked) */
.pillar-label, .step-label, .work-eyebrow, .story-eyebrow,
.sibiu-eyebrow, .founder-eyebrow,
.manifest-pillar .pillar-label, .approach-step .step-label {
    font-family: 'Inter', system-ui, sans-serif;
    font-size: clamp(0.85rem, 1vw, 1rem);
    letter-spacing: 0.18em;
    text-transform: uppercase;
    font-weight: 500;
    color: var(--oliv-text-quiet);
}

/* All sections full-bleed — edges cleared */
.hero-section, .arms-section, .work-section, .world-section,
.sibiu-section, .founder-quote-section, .contact-cta-section,
.oliv-marquee, .manifest-section, .approach-section {
    max-width: 100%;
    padding-inline: 0;
}

/* Inner container max-width */
.manifest-section .manifest-inner,
.approach-section .approach-inner,
.work-section .work-header,
.work-section .work-grid,
.world-section .world-header,
.world-section .world-gallery,
.about-section .about-columns,
.stories-section .stories-grid,
.sibiu-section .sibiu-inner {
    max-width: 96rem;
}

/* Re-add padding on inner blocks outside sections */
.entry-content > .wp-block-group:not(.alignfull):not(.alignwide),
.entry-content > p,
.entry-content > h2,
.entry-content > h3 {
    padding-inline: clamp(1.5rem, 5vw, 5rem);
    max-width: 80rem;
    margin-inline: auto;
}

/* ================================================================
   1. HERO — full-bleed atmospheric with Ken Burns
   ================================================================ */

.hero-section {
    padding-block: 0;
    min-height: clamp(520px, 78vh, 740px);
    position: relative;
    color: #FBF8F2;
    display: flex;
    align-items: flex-end;
    background: none;
    isolation: isolate;
    overflow: hidden;
}

/* Ken Burns bg via ::before */
.hero-section::before {
    content: "";
    position: absolute;
    inset: 0;
    background-image: linear-gradient(180deg, rgba(20,18,15,0.25) 0%, rgba(20,18,15,0.6) 100%),
                      radial-gradient(ellipse at center, transparent 35%, rgba(20,18,15,0.5) 100%),
                      var(--oliv-hero-img, url('/wp-content/uploads/oliv-stock/world-14.jpg'));
    background-size: cover, cover, cover;
    background-position: center, center, center calc(35% + var(--hero-parallax, 0px));
    animation: oliv-hero-kenburns 24s ease-in-out infinite alternate;
    z-index: -1;
}
@keyframes oliv-hero-kenburns {
    0%   { transform: scale(1) translate3d(0, 0, 0); }
    100% { transform: scale(1.08) translate3d(-1%, -1%, 0); }
}

.hero-inner {
    max-width: min(1240px, 92vw);
    margin: 0 auto;
    padding-block: clamp(48px, 7vh, 88px);
    padding-inline: clamp(24px, 5vw, 56px);
    display: block;
}

.hero-section .chartreuse-line {
    border: 0;
    border-top: 2px solid var(--oliv-gold-foil);
    height: 2px;
    background: var(--oliv-gold-foil);
    width: 4rem;
    margin: 0 0 2rem 0;
    opacity: 0.9;
}

.hero-h1,
.hero-h1 *,
.hero-section .uagb-heading-text,
.hero-section h1 {
    color: #FBF8F2 !important;
    max-width: 18ch;
    font-family: var(--oliv-font-serif);
    font-size: clamp(2.5rem, 9vw, 8rem);
    line-height: 0.95;
    letter-spacing: -0.02em;
    font-weight: 400;
    overflow-wrap: break-word;
    hyphens: auto;
    text-transform: none !important;
}

/* Kill hardcoded <br> in hero H1 */
.hero-h1 br,
.hero-section .uagb-heading-text br,
.hero-section h1 br {
    display: none !important;
}

.hero-section .hero-script {
    font-family: var(--oliv-font-script);
    font-size: clamp(2.75rem, 6.5vw, 5.5rem);
    color: var(--oliv-chartreuse-shadow);
    line-height: 0.9;
    margin: 1.25rem 0 0.5rem;
}

.hero-sub,
.hero-section p {
    color: rgba(251, 248, 242, 0.88) !important;
    max-width: 52ch;
    font-family: var(--oliv-font-sans);
    font-size: clamp(1rem, 1.25vw, 1.25rem);
    line-height: 1.55;
    margin-top: 1.5rem;
}

.hero-eyebrow,
.hero-section .eyebrow-script,
.hero-section .oliv-script,
.hero-section .oliv-eyebrow-script {
    font-family: 'Allison', cursive !important;
    font-size: clamp(2.5rem, 4vw, 3.5rem);
    line-height: 1;
    color: var(--oliv-chartreuse-bright, #C5CC4C) !important;
    display: block;
    margin-bottom: clamp(0.5rem, 1vw, 1rem);
    letter-spacing: 0;
    text-transform: none;
    opacity: 0.95;
}

.hero-section .hero-ctas {
    margin-top: 2.5rem;
    gap: 1rem 1.25rem;
    display: flex;
    flex-wrap: wrap;
}

.hero-section .hero-ctas .wp-block-button .wp-block-button__link {
    background: transparent;
    border: 1px solid currentColor;
    color: #FBF8F2;
    padding: 0.95rem 1.75rem;
    font-family: var(--oliv-font-sans);
    font-size: 0.95rem;
    border-radius: 0;
    transition: background var(--oliv-dur-normal) var(--oliv-ease-cinematic),
                color var(--oliv-dur-normal) var(--oliv-ease-cinematic),
                border-color var(--oliv-dur-normal) var(--oliv-ease-cinematic);
}
/* Brand CTA: muted ghost — editorial restraint */
.hero-ctas .scope-brand .wp-block-button__link { border-color: rgba(251,248,242,0.45); }
/* Wedding CTA: filled chartreuse — warm, inviting */
.hero-ctas .scope-wedding .wp-block-button__link {
    background: var(--oliv-chartreuse-bright);
    border-color: var(--oliv-chartreuse-bright);
    color: var(--oliv-muted-black);
}
.hero-ctas .scope-wedding .wp-block-button__link:hover {
    background: var(--oliv-chartreuse-glow);
    border-color: var(--oliv-chartreuse-glow);
    color: var(--oliv-muted-black);
}

/* Hero rise animation */
.hero-h1 { animation: oliv-hero-rise 1.6s cubic-bezier(.2,.7,.2,1) both 0.4s; }
.hero-section .hero-eyebrow, .hero-section .eyebrow-script {
    animation: oliv-hero-rise 1.2s cubic-bezier(.2,.7,.2,1) both 0.1s;
}
.hero-section .hero-sub, .hero-section p:not(.hero-h1) {
    animation: oliv-hero-rise 1.4s cubic-bezier(.2,.7,.2,1) both 0.8s;
}
@keyframes oliv-hero-rise {
    0%   { opacity: 0; transform: translateY(40%); filter: blur(8px); }
    100% { opacity: 1; transform: translateY(0); filter: blur(0); }
}

/* ================================================================
   2. MANIFEST — 3-pillar grid with watermark
   ================================================================ */

.manifest-section {
    background: var(--oliv-bg-page);
    position: relative;
    overflow: hidden;
}

/* Oversized Allison watermark decor */
.manifest-section::after {
    content: "manifest";
    position: absolute;
    top: 50%; left: 50%;
    transform: translate(-50%, -50%);
    font-family: 'Allison', cursive;
    font-size: clamp(15vw, 22vw, 28vw);
    color: var(--oliv-gold-foil);
    opacity: 0.05;
    z-index: 0;
    pointer-events: none;
    white-space: nowrap;
    user-select: none;
}
.manifest-section .manifest-inner { position: relative; z-index: 1; }

.manifest-section .manifest-inner {
    max-width: 88rem;
    padding-inline: clamp(1.5rem, 5vw, 5rem);
    text-align: center;
}

.manifest-section .manifest-title {
    font-size: var(--oliv-h2-mega);
    line-height: 1;
    text-align: center;
    margin: 1rem 0 clamp(2rem, 4vh, 3rem);
}

.manifest-section .manifest-title h2,
.manifest-section .manifest-title .uagb-heading-text {
    font-size: var(--oliv-h2-mega);
    text-transform: none !important;
}

.manifest-section .manifest-grid {
    gap: clamp(24px, 3vw, 40px);
    margin-top: 0;
}

.manifest-pillar {
    padding: 0;
    border-top: none;
    display: flex;
    flex-direction: column;
    gap: 0;
    text-align: center;
}
.manifest-pillar > * {
    text-align: center;
    margin-inline: auto;
}

.manifest-pillar .pillar-label {
    margin: 0 0 var(--oliv-rhythm-pillar-gap);
}
.manifest-pillar .pillar-title {
    font-family: var(--oliv-font-serif);
    font-size: clamp(1.25rem, 1.6vw, 1.5rem);
    line-height: 1.25;
    letter-spacing: -0.01em;
    text-transform: none;
    font-weight: 400;
    max-width: 22ch;
    margin: 0 0 var(--oliv-rhythm-pillar-body);
}
.manifest-pillar .pillar-body {
    font-family: var(--oliv-font-sans);
    font-size: 0.95rem;
    line-height: 1.65;
    color: var(--oliv-text-quiet);
    margin: 0;
    max-width: 32ch;
    margin-inline: auto;
}

.manifest-section .manifest-body {
    font-family: var(--oliv-font-serif);
    font-style: italic;
    font-size: clamp(1.1rem, 1.5vw, 1.4rem);
    line-height: 1.55;
    color: var(--oliv-text-quiet);
    max-width: 56ch;
    margin: 2.5rem auto 0;
}

/* Spectra block centering override */
.manifest-section .uagb-ifb-content,
.manifest-section .uagb-infobox-content-wrap,
.manifest-section .wp-block-uagb-info-box,
.manifest-section .wp-block-uagb-info-box-wrap {
    text-align: center;
    align-items: center;
    justify-content: center;
}

/* ================================================================
   3. APPROACH — 2×2 process grid
   ================================================================ */

.approach-section {
    background: var(--oliv-bg-subtle);
}

.approach-section .approach-inner {
    max-width: 92rem;
    margin-inline: auto;
    padding-inline: clamp(1.5rem, 5vw, 5rem);
}

.approach-section .approach-title {
    text-align: center;
    max-width: 24ch;
    margin-inline: auto;
}

.approach-section .approach-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: clamp(1.5rem, 3vw, 2.5rem);
    max-width: 88rem;
    margin-inline: auto;
}

.approach-step {
    padding: clamp(2rem, 3vw, 2.75rem) clamp(1.75rem, 2.5vw, 2.5rem);
    background: var(--oliv-bg-page);
    border: 1px solid var(--oliv-border);
    border-top: 2px solid var(--oliv-gold-foil);
    border-radius: 2px;
    position: relative;
    text-align: center;
    transition: transform 0.4s var(--oliv-ease-cinematic),
                box-shadow 0.4s var(--oliv-ease-cinematic);
}
.approach-step > * {
    text-align: center;
    margin-inline: auto;
}

.approach-step:hover {
    transform: translateY(-3px);
    box-shadow: 0 16px 40px -20px rgba(77, 86, 21, 0.2);
}

.approach-step .step-num {
    font-family: var(--oliv-font-display);
    font-style: italic;
    font-weight: 600;
    font-size: clamp(3rem, 5vw, 4.5rem);
    color: var(--oliv-gold-text, var(--oliv-gold-foil));
    line-height: 1;
    letter-spacing: -0.02em;
    text-transform: none;
    margin: 0 0 0.5rem;
}

.approach-step .step-label,
.approach-step .oliv-script {
    font-family: var(--oliv-font-script);
    font-size: clamp(2rem, 3vw, 2.5rem);
    color: var(--oliv-chartreuse-shadow);
    line-height: 1;
    margin: 0 0 1.5rem;
    text-transform: none;
    letter-spacing: 0;
}

.approach-step h3,
.approach-step .step-title {
    font-family: var(--oliv-font-serif);
    font-size: clamp(1.5rem, 2vw, 1.875rem);
    line-height: 1.2;
    font-weight: 400;
    letter-spacing: -0.015em;
    text-transform: none;
    color: var(--oliv-muted-black);
    margin: 0 0 1.25rem;
    max-width: 28ch;
}

.approach-step p,
.approach-step .step-body {
    font-family: var(--oliv-font-sans);
    font-size: 1rem;
    line-height: 1.7;
    color: var(--oliv-text-quiet);
    margin: 0;
    max-width: 36ch;
}

/* Approach hairline draw */
.approach-step::after {
    content: "";
    position: absolute;
    left: 0; bottom: -1rem;
    height: 1px; width: 0;
    background: var(--oliv-gold-foil, #B89B4A);
    transition: width 900ms cubic-bezier(.2,.7,.15,1) 200ms;
}
.approach-step.is-visible::after { width: 48px; }

/* ================================================================
   4. TWO ARMS — edge-to-edge 50/50 split
   ================================================================ */

.arms-section {
    background: var(--oliv-bg-page);
}

.arms-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0;
    max-width: none;
}

.arm-col {
    padding: clamp(56px, 8vw, 96px) clamp(32px, 5vw, 80px);
    position: relative;
}
.arm-col.arm-brand {
    background: #F1ECDF;
}
.arm-col.arm-brand::before {
    content: '';
    position: absolute;
    top: 0; left: 0; right: 0;
    height: 1px;
    background: var(--oliv-chartreuse-muted);
}
.arm-col.arm-wedding {
    background: #F6F1E8;
}
.arm-col.arm-wedding::before {
    content: '';
    position: absolute;
    top: 0; left: 0; right: 0;
    height: 1px;
    background: var(--oliv-chartreuse-bright);
}

.arms-section .arm-title {
    font-family: var(--oliv-font-serif);
    font-size: clamp(1.875rem, 3vw, 2.75rem);
    line-height: 1.1;
    letter-spacing: -0.015em;
    font-weight: 400;
    text-transform: none;
    margin: 0 0 1.5rem;
    max-width: 18ch;
}
.arms-section .arm-brand .arm-title { color: var(--oliv-chartreuse-shadow); }
.arms-section .arm-wedding .arm-title { color: var(--oliv-muted-black); }

.arms-section .arm-col .oliv-script,
.arms-section .arm-col .oliv-eyebrow-script {
    font-family: var(--oliv-font-script);
    font-size: clamp(2.5rem, 4vw, 3.5rem);
    color: var(--oliv-accent-text);
    line-height: 1;
    margin: 0 0 1.5rem;
}

.arms-section .arm-list {
    list-style: none;
    padding: 0;
    margin: 0 0 2rem;
    font-family: var(--oliv-font-sans);
    font-size: 1rem;
    color: var(--oliv-text-primary);
}
.arms-section .arm-list li {
    padding: 0.85rem 0;
    border-bottom: 1px solid var(--oliv-stone);
}
.arms-section .arm-list li:last-child { border-bottom: 0; }

.arms-section .arm-cta .wp-block-button__link {
    background: transparent;
    color: currentColor;
    border: 1px solid currentColor;
    border-radius: 0;
    padding: 0.85rem 1.5rem;
    font-family: var(--oliv-font-sans);
    font-size: 0.9rem;
    transition: background var(--oliv-dur-normal) var(--oliv-ease-cinematic),
                color var(--oliv-dur-normal) var(--oliv-ease-cinematic);
}
.arms-section .arm-brand .arm-cta .wp-block-button__link:hover {
    background: var(--oliv-chartreuse-muted);
    color: var(--oliv-warm-white);
}
.arms-section .arm-wedding .arm-cta .wp-block-button__link:hover {
    background: var(--oliv-chartreuse-bright);
    color: var(--oliv-muted-black);
}
/* Differentiated rest states: brand = editorial outline, wedding = filled warm */
.arms-section .arm-brand .arm-cta .wp-block-button__link {
    border-color: var(--oliv-chartreuse-muted);
    color: var(--oliv-chartreuse-deep);
}
.arms-section .arm-wedding .arm-cta .wp-block-button__link {
    background: var(--oliv-chartreuse-bright);
    border-color: var(--oliv-chartreuse-bright);
    color: var(--oliv-muted-black);
}
.arms-section .arm-wedding .arm-cta .wp-block-button__link:hover {
    background: var(--oliv-chartreuse-glow);
    border-color: var(--oliv-chartreuse-glow);
    color: var(--oliv-muted-black);
    transform: translateY(-2px);
}

/* ================================================================
   5. FOUNDER PULL-QUOTE — editorial statement, premium & spacious
   Portrait sits as a refined plate ABOVE a confident wide quote.
   Fixes the cramped narrow column (quote was wrapping 1-2 words/line),
   the oversized portrait, and the stray blockquote border-left.
   ================================================================ */

.founder-quote-section {
    background:
        radial-gradient(120% 90% at 50% 0%, rgba(184, 155, 74, 0.06) 0%, transparent 55%),
        linear-gradient(180deg, #EFE8D8 0%, #EAE2CF 100%);
    padding-block: var(--oliv-rhythm-section-py) !important;
    text-align: center;
}

/* Inner: roomy measure so the statement reads on 2-3 lines, not crammed */
.founder-quote-section .founder-quote-inner {
    max-width: min(46rem, 92vw);
    margin-inline: auto;
    padding-block: clamp(1.5rem, 3vh, 2.75rem);
    padding-inline: var(--oliv-pad-inline, clamp(1.5rem, 5vw, 5rem));
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: clamp(1.5rem, 3vh, 2.5rem);
    position: relative;
    text-align: center;
}

/* Refined portrait plate — moderate, centred, gold-foil offset frame */
.founder-quote-section .founder-portrait {
    position: relative;
    margin: 0;
    width: 100%;
    max-width: clamp(220px, 26vw, 300px);
    aspect-ratio: 4 / 5;
    isolation: isolate;
}
.founder-quote-section .founder-portrait::before {
    content: "";
    position: absolute;
    inset: clamp(0.6rem, 1vw, 1rem) auto auto clamp(0.6rem, 1vw, 1rem);
    width: 100%;
    height: 100%;
    border: 1px solid var(--oliv-gold-foil);
    opacity: 0.5;
    z-index: -1;
    transition: transform var(--oliv-dur-normal) var(--oliv-ease-organic), opacity var(--oliv-dur-normal) ease;
}
.founder-quote-section .founder-portrait img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center 28%;
    box-shadow: var(--oliv-shadow-card);
    transition: transform 600ms var(--oliv-ease-cinematic), box-shadow 600ms var(--oliv-ease-cinematic);
}
@media (hover: hover) {
    .founder-quote-section .founder-portrait:hover img { transform: scale(1.03); box-shadow: var(--oliv-shadow-cinematic); }
    .founder-quote-section .founder-portrait:hover::before { transform: translate(-4px, -4px); opacity: 0.75; }
}

/* Blockquote — RESET the inherited border-left + padding (the stray line) */
.founder-quote-section blockquote,
.founder-quote-section .founder-script {
    border: 0;
    margin: 0;
    padding: 0;
    max-width: none;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: clamp(1.1rem, 2.2vh, 1.6rem);
    position: relative;
}

/* Eyebrow — gold dot + caps */
.founder-quote-section .founder-eyebrow {
    font-family: var(--oliv-font-sans);
    font-size: var(--oliv-eyebrow-caps, 0.72rem);
    letter-spacing: 0.26em;
    text-transform: uppercase;
    font-weight: 600;
    color: var(--oliv-gold-deep);
    margin: 0;
    display: inline-flex;
    align-items: center;
}
.founder-quote-section .founder-eyebrow::before {
    content: "";
    display: inline-block;
    width: 6px;
    height: 6px;
    background: var(--oliv-gold-foil);
    border-radius: 50%;
    margin-right: 0.65rem;
    box-shadow: 0 0 0 4px rgba(184, 155, 74, 0.12);
    flex: 0 0 auto;
}

/* The statement — Fraunces, confident but not so large it crams */
.founder-quote-section .founder-script p,
.founder-quote-section blockquote p {
    font-family: var(--oliv-font-serif);
    font-weight: 400;
    font-style: italic;
    font-size: clamp(1.85rem, 3.4vw, 3rem);
    line-height: 1.2;
    letter-spacing: -0.015em;
    color: var(--oliv-text-heading);
    text-transform: none !important;
    margin: 0;
    padding: 0;
    max-width: 24ch;
    text-wrap: balance;
}

/* Dramatic open-quote foil ornament above the statement */
.founder-quote-section .founder-script::before,
.founder-quote-section blockquote::before {
    content: "\201C";
    font-family: var(--oliv-font-serif);
    font-style: italic;
    font-size: clamp(4rem, 7vw, 6.5rem);
    line-height: 0.5;
    height: 0.45em;
    color: var(--oliv-gold-foil);
    background: var(--oliv-grad-gold);
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
    opacity: 0.7;
    pointer-events: none;
}

/* Short gold hairline under the quote (the .gold-hairline span) */
.founder-quote-section .gold-hairline {
    display: block;
    width: clamp(48px, 8vw, 84px);
    height: 1px;
    background: linear-gradient(90deg, transparent, var(--oliv-gold-foil) 50%, transparent);
    opacity: 0.85;
}

/* Attribution — Inter caps, quiet */
.founder-quote-section cite,
.founder-quote-section .founder-attrib {
    font-family: var(--oliv-font-sans);
    font-style: normal;
    font-weight: 600;
    font-size: 0.78rem;
    letter-spacing: 0.22em;
    text-transform: uppercase;
    color: var(--oliv-gold-deep);
    margin: 0;
    display: inline-block;
}

/* ---- MOBILE (<=767) ---- */
@media (max-width: 767px) {
    .founder-quote-section { padding-block: clamp(3.25rem, 11vh, 4.5rem) !important; }
    .founder-quote-section .founder-quote-inner {
        max-width: 92vw;
        gap: clamp(1.25rem, 4vh, 1.75rem);
    }
    .founder-quote-section .founder-portrait { max-width: clamp(180px, 52vw, 240px); }
    .founder-quote-section .founder-script p,
    .founder-quote-section blockquote p {
        font-size: clamp(1.6rem, 7vw, 2.1rem);
        max-width: 18ch;
    }
}

/* Reduced motion: static section, nothing to disable beyond portrait hover */
@media (prefers-reduced-motion: reduce) {
    .founder-quote-section .founder-portrait img,
    .founder-quote-section .founder-portrait::before { transition: none; }
    .founder-quote-section .founder-portrait:hover img { transform: none; }
}

/* ================================================================
   6. SELECTED WORK — full-bleed dark grid
   ================================================================ */

.work-section {
    background: var(--oliv-bg-deep);
    color: var(--oliv-text-inverse);
}

.work-header {
    max-width: min(1240px, 92vw);
    margin: 0 auto clamp(48px, 6vw, 96px);
    padding-inline: clamp(24px, 5vw, 56px);
    text-align: center;
}

.work-section .work-title {
    color: var(--oliv-warm-white);
}

.work-section .work-lead {
    font-family: var(--oliv-font-sans);
    color: var(--oliv-stone);
    font-size: 1.05rem;
    line-height: 1.55;
    max-width: 56ch;
}

.work-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 0;
    max-width: none;
}

.work-card {
    aspect-ratio: 4/5;
    position: relative;
    overflow: hidden;
    isolation: isolate;
    color: var(--oliv-warm-white);
}
.work-card img {
    width: 100%; height: 100%;
    object-fit: cover;
    transition: transform 600ms cubic-bezier(.2, .7, .2, 1);
}
.work-card:hover img { transform: scale(1.03); }

/* Scope tag pill */
.work-card[data-scope-tag]::before {
    content: attr(data-scope-tag);
    position: absolute;
    top: 1rem; left: 1rem;
    z-index: 2;
    font-family: var(--oliv-font-sans);
    font-size: 0.65rem;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    padding: 0.35rem 0.65rem;
    border-radius: var(--oliv-radius-pill);
}
.work-card[data-scope-tag="brand"]::before {
    background: var(--oliv-chartreuse-muted);
    color: var(--oliv-warm-white);
}
.work-card[data-scope-tag="wedding"]::before {
    background: var(--oliv-chartreuse-bright);
    color: var(--oliv-muted-black);
}

.work-card .uagb-ifb-title,
.work-card h3 {
    font-family: var(--oliv-font-serif);
    font-size: clamp(1.25rem, 1.8vw, 1.625rem);
    line-height: 1.2;
    color: var(--oliv-warm-white);
    margin: 0 0 0.35rem;
    font-weight: 400;
    text-transform: none;
}

.work-card .uagb-ifb-desc {
    color: var(--oliv-stone);
    font-size: 0.9rem;
    margin: 0 0 0.75rem;
}

.work-card .uagb-ifb-cta-link {
    color: var(--oliv-accent);
    font-size: 0.85rem;
    text-decoration: none;
    border-bottom: 1px solid currentColor;
    padding-bottom: 2px;
}

/* Work card caption reveal */
.work-card-caption, .work-card .work-card-overlay {
    position: absolute;
    inset: auto 0 0 0;
    padding: clamp(20px, 3vw, 32px);
    background: linear-gradient(0deg, rgba(20,18,15,0.85) 0%, transparent 100%);
    color: #FBF8F2;
    transform: translateY(20px);
    opacity: 0;
    transition: transform 600ms cubic-bezier(.2,.7,.2,1),
                opacity 600ms cubic-bezier(.2,.7,.2,1);
}
.work-card:hover .work-card-caption,
.work-card:hover .work-card-overlay {
    transform: translateY(0);
    opacity: 1;
}

.work-section .work-footer-cta { margin-top: clamp(2rem, 4vh, 3.25rem); }
.work-section .work-footer-cta .wp-block-button__link {
    background: transparent;
    border: 1px solid var(--oliv-warm-white);
    color: var(--oliv-warm-white);
    border-radius: 0;
    padding: 0.85rem 1.75rem;
}
.work-section .work-footer-cta .wp-block-button__link:hover {
    background: var(--oliv-warm-white);
    color: var(--oliv-muted-black);
}

/* ================================================================
   7. OLIV WORLD — editorial mosaic (3-col, tiles cleanly)
   v1.4 — 6 images tile PERFECTLY in 3 columns: hero 2x2 (top-left),
   2 tall tiles beside it, 3 tiles across the bottom. No orphan tile,
   no uneven rows. Portrait 4:5 tiles; rows sized uniformly by the
   single tiles so the hero's 2x2 span aligns exactly.
   Hover simplified: lift + zoom + gold frame (no dark veil — there is
   no <figcaption> in the DOM, so the veil rose over nothing).
   ================================================================ */

.world-section {
    background: var(--oliv-bg-page);
    position: relative;
    isolation: isolate;
}

.world-section .world-header {
    max-width: 60ch;
    margin: 0 auto;
    padding-inline: var(--oliv-pad-inline);
    text-align: center;
}
.world-section .world-header .eyebrow-script { display: block; margin-bottom: var(--oliv-rhythm-eyebrow-mb); }
.world-section .world-title { margin-bottom: 0; }

/* Grid container — constrained + centred */
.world-section .world-gallery {
    max-width: 78rem;
    margin-inline: auto;
    margin-top: clamp(1.75rem, 3.5vh, 2.75rem);
    padding-inline: var(--oliv-pad-inline);
    box-sizing: border-box;
}

/* 3-column mosaic. Single tiles are portrait 4:5 -> they set a uniform
   row height; the hero spans 2 cols x 2 rows and fills exactly. */
.world-section .world-gallery .oliv-masonry {
    --gap: clamp(8px, 0.9vw, 14px);
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    grid-auto-flow: row dense;
    gap: var(--gap);
}

.world-section .world-gallery figure {
    position: relative;
    margin: 0;
    overflow: hidden;
    border-radius: var(--oliv-radius-sm);
    aspect-ratio: 4 / 5;
    background: var(--oliv-bg-subtle);
    box-shadow: var(--oliv-shadow-soft);
    isolation: isolate;
    transition: transform var(--oliv-dur-normal) var(--oliv-ease-organic),
                box-shadow var(--oliv-dur-normal) var(--oliv-ease-organic);
}

/* Hero tile — first figure spans 2x2 and fills it exactly */
.world-section .world-gallery figure:first-child {
    grid-column: span 2;
    grid-row: span 2;
    aspect-ratio: auto;
    height: 100%;
}

.world-section .world-gallery figure img {
    display: block;
    width: 100%;
    height: 100%;
    aspect-ratio: auto;
    object-fit: cover;
    object-position: center 40%;
    transform: scale(1.001);
    transition: transform var(--oliv-dur-cinematic) var(--oliv-ease-organic);
    backface-visibility: hidden;
}

/* Gold frame line — appears on hover (premium signal, no dark veil) */
.world-section .world-gallery figure::after {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 2;
    pointer-events: none;
    border: 0 solid var(--oliv-gold-foil);
    transition: border-width var(--oliv-dur-normal) var(--oliv-ease-quick, cubic-bezier(.2,.7,.15,1));
}

/* ---- HOVER: lift + zoom + gold frame ---- */
@media (hover: hover) {
    .world-section .world-gallery figure:hover {
        transform: translateY(-5px);
        box-shadow: var(--oliv-shadow-cinematic);
        z-index: 3;
    }
    .world-section .world-gallery figure:hover img { transform: scale(1.05); }
    .world-section .world-gallery figure:hover::after { border-width: 2px; }
}
.world-section .world-gallery figure:focus-within::after { border-width: 2px; }

/* ---- CTA: outline button, gold-grow on hover ---- */
.world-section .world-cta { margin-top: clamp(2rem, 4vh, 3.25rem); text-align: center; }
.world-section .world-cta .wp-block-button__link {
    background: transparent;
    border: 1px solid var(--oliv-accent);
    color: var(--oliv-accent-text);
    border-radius: 0;
    padding: 0.85rem 1.85rem;
    font-family: var(--oliv-font-sans);
    letter-spacing: 0.08em;
    transition: background var(--oliv-dur-normal) var(--oliv-ease-cinematic),
                color var(--oliv-dur-normal) var(--oliv-ease-cinematic),
                transform var(--oliv-dur-normal) var(--oliv-ease-organic);
}
.world-section .world-cta .wp-block-button__link:hover {
    background: var(--oliv-accent);
    color: var(--oliv-text-inverse);
    transform: translateY(-3px);
}

/* ================================================================
   RESPONSIVE
   ================================================================ */

/* Tablet 768–1199: keep 3 cols, hero spans 2x2 (same clean layout) */
@media (max-width: 1199px) and (min-width: 768px) {
    .world-section .world-gallery { max-width: 56rem; }
}

/* Mobile <=767: 2 columns, hero becomes a full-width banner */
@media (max-width: 767px) {
    .world-section .world-header { max-width: 36ch; }
    .world-section .world-gallery { margin-top: clamp(1.25rem, 4vw, 1.75rem); }
    .world-section .world-gallery .oliv-masonry {
        --gap: 8px;
        grid-template-columns: repeat(2, 1fr);
    }
    .world-section .world-gallery figure { aspect-ratio: 4 / 5; height: auto; }
    .world-section .world-gallery figure:first-child {
        grid-column: span 2;
        grid-row: span 1;
        aspect-ratio: 16 / 10;
        height: auto;
    }
}

/* Reduced motion — kill zoom/lift */
@media (prefers-reduced-motion: reduce) {
    .world-section .world-gallery figure,
    .world-section .world-gallery figure img {
        transition: none !important;
        transform: none !important;
    }
    .world-section .world-gallery figure:first-child { transform: none !important; }
    .world-section .world-gallery figure:hover img { transform: none !important; }
}

/* ================================================================
   8. POVEȘTI RECENTE — journal cards (curated magazine index)
   GODMODE rebuild, bound to the LIVE DOM:
     section.stories-section > .stories-inner
       header.stories-header > .stories-eyebrow + h2.stories-title
       .stories-grid > article.story-card
         figure > img | span.story-date | h3.story-title | p.story-dek
   Centers the header, rounds the cards, rebuilds hover on the real
   nodes, and NEUTRALISES the global .story-card::before card-wash
   (editorial.css ~L1702) so the hover wash reads only over the image,
   not the text well.
   ================================================================ */

.stories-section {
    background: var(--oliv-bg-subtle);
}

/* ---- Centered header block (eyebrow + title) ------------------- */
.stories-section .stories-header {
    text-align: center;
    max-width: 60ch;
    margin-inline: auto;
    margin-bottom: clamp(2.5rem, 5vh, 4rem);
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: var(--oliv-rhythm-eyebrow-mb);
}

.stories-section .stories-eyebrow {
    font-family: var(--oliv-font-sans);
    font-size: var(--oliv-eyebrow-caps);
    letter-spacing: 0.24em;
    text-transform: uppercase;
    font-weight: 500;
    color: var(--oliv-gold-text);
    margin: 0;
    /* gold hairline rule centered under the eyebrow */
    padding-bottom: 0.85rem;
    position: relative;
}
.stories-section .stories-eyebrow::after {
    content: "";
    position: absolute;
    left: 50%;
    bottom: 0;
    transform: translateX(-50%);
    width: 2.25rem;
    height: 1px;
    background: var(--oliv-gold-foil);
}

.stories-section .stories-title {
    /* inherits the shared .stories-title H2 lock (Fraunces, --oliv-h2);
       re-confirm centering + kill any inherited left drift */
    text-align: center;
    margin: 0;
    color: var(--oliv-text-heading);
}

/* ---- Grid: 3-up, equal-height, centered ----------------------- */
.stories-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: var(--oliv-gap-grid);
    align-items: stretch;
    max-width: 96rem;
    margin-inline: auto;
}

/* ---- Card shell ----------------------------------------------- */
.story-card {
    position: relative;
    display: flex;
    flex-direction: column;
    height: 100%;
    background: var(--oliv-bg-card);
    text-decoration: none;
    color: inherit;
    overflow: hidden;
    isolation: isolate;
    border: 1px solid var(--oliv-border);
    border-radius: var(--oliv-radius-lg);
    box-shadow: var(--oliv-shadow-soft);
    transition:
        transform 520ms cubic-bezier(.2,.7,.15,1),
        box-shadow 520ms cubic-bezier(.2,.7,.15,1),
        border-color 520ms cubic-bezier(.2,.7,.15,1);
    will-change: transform;
}

/* Neutralise the global .work-card/.story-card::before multiply wash
   (editorial.css ~L1702): on story cards it covered the whole card —
   including the text well — and double-stacked with our figure wash. */
.story-card::before { content: none; }

/* Figure — rounded top corners, fixed editorial ratio */
.story-card > figure {
    position: relative;
    margin: 0;
    overflow: hidden;
    aspect-ratio: 4 / 5;
    border-radius: var(--oliv-radius-lg) var(--oliv-radius-lg) 0 0;
    background: var(--oliv-bg-subtle);
}
.story-card > figure img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center 35%;
    display: block;
    transition:
        transform 900ms cubic-bezier(.2,.7,.15,1),
        filter 600ms ease;
}

/* Warm gold wash that fades in on hover — drawn over the IMAGE only */
.story-card > figure::after {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 2;
    pointer-events: none;
    background: linear-gradient(
        180deg,
        rgba(184, 155, 74, 0)    45%,
        rgba(184, 155, 74, 0.14) 100%);
    opacity: 0;
    transition: opacity 600ms ease;
}

/* ---- Floating date chip (short caps string — legible) --------- */
.story-card .story-date {
    position: absolute;
    top: 0.9rem;
    left: 0.9rem;
    z-index: 3;
    font-family: var(--oliv-font-sans);
    font-size: 0.68rem;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    font-weight: 500;
    color: var(--oliv-gold-deep);
    background: rgba(250, 246, 236, 0.82); /* --oliv-cream @ .82 */
    -webkit-backdrop-filter: blur(6px);
    backdrop-filter: blur(6px);
    padding: 0.38rem 0.8rem;
    border-radius: var(--oliv-radius-pill);
    line-height: 1;
    box-shadow: 0 2px 8px rgba(28, 28, 26, 0.08); /* --oliv-charcoal @ .08 */
}

/* ---- Card text well — consistent internal padding ------------- */
.story-card .story-title,
.story-card .story-dek {
    margin-inline: clamp(1.25rem, 1.6vw, 1.75rem);
}

.story-card .story-title {
    font-family: var(--oliv-font-serif);
    font-size: clamp(1.35rem, 1.9vw, 1.7rem);
    line-height: 1.2;
    font-weight: 400;
    letter-spacing: -0.01em;
    text-transform: none;
    color: var(--oliv-text-heading);
    margin-top: clamp(1.4rem, 2vw, 1.75rem);
    margin-bottom: 0.6rem;
    /* gold underline grows full text-width on hover (animated bg-size).
       NOTE: bg-size % is relative to the title's own box, which is
       already inset by margin-inline — so the target is 100%, NOT
       100% minus the margins (that under-ran the text). */
    background-image: linear-gradient(var(--oliv-gold-foil), var(--oliv-gold-foil));
    background-repeat: no-repeat;
    background-position: 0 100%;
    background-size: 0% 1.5px;
    padding-bottom: 2px;
    transition: background-size 560ms cubic-bezier(.2,.7,.15,1);
}

.story-card .story-dek {
    font-family: var(--oliv-font-sans);
    font-size: 0.97rem;
    line-height: 1.62;
    color: var(--oliv-text-quiet);
    /* auto top-margin pushes the dek down so all cards bottom-align */
    margin-top: auto;
    margin-bottom: clamp(1.5rem, 2.2vw, 1.9rem);
}

/* ---- HOVER LANGUAGE: lift + zoom + underline + wash + shadow --- */
.story-card:hover,
.story-card:focus-within {
    transform: translateY(-5px);
    box-shadow: var(--oliv-shadow-card);
    border-color: var(--oliv-gold-foil);
}
.story-card:hover > figure img,
.story-card:focus-within > figure img {
    transform: scale(1.045);
    filter: saturate(1.04);
}
.story-card:hover > figure::after,
.story-card:focus-within > figure::after {
    opacity: 1;
}
.story-card:hover .story-title,
.story-card:focus-within .story-title {
    background-size: 100% 1.5px;
}

.story-card:focus-visible {
    outline: 2px solid var(--oliv-gold-foil);
    outline-offset: 4px;
}

/* ================================================================
   RESPONSIVE — stories section
   ================================================================ */

/* Tablet 768–1199: 2-up, slightly tighter header rhythm */
@media (max-width: 1199px) and (min-width: 768px) {
    .stories-grid { grid-template-columns: repeat(2, 1fr); }
    .stories-section .stories-header { margin-bottom: clamp(2rem, 4vh, 3rem); }
}

/* Mobile <=767: single column, centered, no inherited dead space.
   Aligned to <=767 so it dovetails with the global <=768 1-col switch
   (editorial.css L1951) — the max-width cap kills full-bleed dead space. */
@media (max-width: 767px) {
    .stories-grid {
        grid-template-columns: 1fr;
        gap: clamp(1.5rem, 6vw, 2rem);
        max-width: 30rem;
    }
    .stories-section .stories-header { margin-bottom: clamp(1.75rem, 7vw, 2.5rem); }
    .story-card > figure { aspect-ratio: 3 / 4; }
    .story-card .story-title { font-size: 1.35rem; }
}

/* Touch / no-hover devices — single authoritative guard.
   (The global L1921-1924 hover:none rule already wins via !important
   for img/card transform; this keeps the shadow flat on touch too.) */
@media (hover: none) {
    .story-card:hover,
    .story-card:focus-within {
        transform: none;
        box-shadow: var(--oliv-shadow-soft);
    }
    .story-card:hover > figure img,
    .story-card:focus-within > figure img { transform: none; }
}

/* Reduced motion — kill transitions/transforms for the REAL nodes */
@media (prefers-reduced-motion: reduce) {
    .story-card,
    .story-card > figure img,
    .story-card .story-title,
    .story-card > figure::after { transition: none; }
    .story-card:hover,
    .story-card:focus-within { transform: none; }
    .story-card:hover > figure img,
    .story-card:focus-within > figure img { transform: none; }
}

/* ================================================================
   9. SIBIU / TRANSILVANIA — dark editorial split  (GODMODE, fixed)
   Two-column: featured atmospheric photo (left) | text (right).
   Eyebrow is Inter tracked-caps in gold-foil — NOT Allison script.
   Section rides the scope-dark token system + bridges to footer.

   IMPORTANT fixes vs reviewed draft:
   - Shell selector raised to .sibiu-section.scope-dark / .oliv-section
     .sibiu-section so the intentional gradient is NOT defeated by the
     flat-black .oliv-section.scope-dark rule (editorial.css L191-195).
   - color set to --oliv-warm-white directly (under scope-dark the token
     --oliv-text-inverse flips to muted-black => black-on-black trap).
   - Eyebrow gold forced deterministically over .scope-dark .eyebrow-script
     (editorial.css L149) regardless of source order.
   - Old gold-frame (L1715-1724) + sweep (L1740-1748) explicitly reset.
   ================================================================ */

/* --- Shell: full-bleed dark band, tokenised, gradient survives --- */
.sibiu-section.scope-dark,
.sibiu-section[data-scope="dark"],
.oliv-section.sibiu-section {
    position: relative;
    padding: 0;
    /* Intentional vertical gradient: warm gold haze top-left, resolving
       to muted-black at the bottom so it bridges into the dark footer. */
    background:
        radial-gradient(120% 90% at 18% 22%,
            rgba(184, 155, 74, 0.10) 0%, transparent 55%),
        linear-gradient(180deg,
            var(--oliv-charcoal) 0%,
            var(--oliv-muted-black) 78%,
            var(--oliv-muted-black) 100%) !important;
    color: var(--oliv-warm-white);
    overflow: hidden;
    max-width: none;
    isolation: isolate;
}
/* Ensure headings stay light even if a global dark rule recolors them */
.sibiu-section.scope-dark h2,
.oliv-section.sibiu-section h2 { color: var(--oliv-warm-white); }

/* Single gold-foil hairline at the TOP only — bottom flows into the
   footer (no fake delimiter; bg shift + rhythm separate the bands). */
.sibiu-section::before {
    content: "";
    position: absolute;
    left: 50%; top: 0;
    transform: translateX(-50%);
    width: min(60%, 800px); height: 1px;
    background: linear-gradient(90deg,
        transparent, var(--oliv-gold-foil) 28%,
        var(--oliv-gold-foil) 72%, transparent);
    opacity: 0.55;
    z-index: 4;
}
.sibiu-section::after { content: none; } /* kill the old bottom hairline */

/* --- Grid: image left, text right ------------------------------ */
.sibiu-section .sibiu-inner {
    display: grid;
    grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr);
    align-items: stretch;
    min-height: clamp(480px, 62vh, 660px);
    max-width: none;
    gap: 0;
    padding: 0;
}

/* --- Featured atmospheric photo (fills the dead left half) ------ */
.sibiu-section figure,
.sibiu-section .sibiu-photo {
    position: relative;
    margin: 0;
    height: 100%;
    min-height: clamp(340px, 50vh, 660px);
    overflow: hidden;
    z-index: 1;
}
.sibiu-section figure img,
.sibiu-section .sibiu-photo img {
    width: 100%; height: 100%;
    object-fit: cover;
    object-position: center 32%;
    display: block;
    filter: saturate(0.92) contrast(1.03);
    transform: scale(1.005);
    transition: transform 1200ms var(--oliv-ease-cinematic, cubic-bezier(.2,.7,.15,1)),
                filter 700ms var(--oliv-ease-organic, ease);
    z-index: 1;
}
/* Cinematic vignette + edge-blend toward the text column so the photo
   dissolves into the dark instead of leaving a hard rectangular seam. */
.sibiu-section figure::before {
    content: "";
    position: absolute; inset: 0;
    pointer-events: none; z-index: 2;
    background:
        linear-gradient(90deg, transparent 62%, rgba(10,9,8,0.55) 100%),
        linear-gradient(0deg, rgba(10,9,8,0.45) 0%, transparent 38%),
        radial-gradient(130% 100% at 30% 35%, transparent 55%, rgba(10,9,8,0.40) 100%);
}
/* Gold-foil frame line — explicit default kept at 0 so the editorial.css
   L1715-1724 duplicate cannot leave a stuck 2px border regardless of order.
   Sibiu-scoped (0,1,2) matches the global; both resolve to 0 at rest. */
.sibiu-section figure::after {
    content: "";
    position: absolute; inset: 0;
    pointer-events: none; z-index: 3;
    border: 0 solid var(--oliv-gold-foil);
    transition: border-width var(--oliv-dur-normal, .4s)
                var(--oliv-ease-quick, cubic-bezier(.2,.7,.15,1));
}

/* Hover language — lift photo column + scale + warm the frame */
.sibiu-section:hover figure img,
.sibiu-section:focus-within figure img {
    transform: scale(1.045);
    filter: saturate(1) contrast(1.05);
}
.sibiu-section:hover figure::after,
.sibiu-section:focus-within figure::after { border-width: 2px; }

/* --- Text column ----------------------------------------------- */
.sibiu-section .sibiu-text,
.sibiu-section .sibiu-content {
    position: relative;
    z-index: 2;
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: clamp(0.9rem, 1.4vw, 1.4rem);            /* aired-out rhythm */
    padding-block: clamp(3rem, 6vw, 5rem);
    padding-inline: clamp(1.75rem, 5vw, 4.5rem);
    max-width: 60ch;
}

/* --- Eyebrow: LEGIBLE Inter tracked-caps in gold-foil ----------
   Beats both .eyebrow-script (Allison, 0,1,0) and the dark-scope
   chartreuse rule .scope-dark .eyebrow-script (editorial.css L149,
   0,2,0). We tie at (0,2,0) for the .sibiu-section .eyebrow-script
   variant; the .oliv-section.sibiu-section .sibiu-eyebrow variant
   (0,3,0) guarantees the win even if load order regresses. */
.sibiu-section .sibiu-eyebrow,
.sibiu-section .oliv-script,
.sibiu-section .eyebrow-script,
.oliv-section.sibiu-section .sibiu-eyebrow {
    font-family: var(--oliv-font-sans);
    font-size: var(--oliv-eyebrow-caps, 0.72rem);
    font-weight: 600;
    letter-spacing: 0.26em;
    text-transform: uppercase;
    line-height: 1.4;
    color: var(--oliv-gold-foil);                 /* legible gold on dark */
    margin: 0;
    display: inline-flex;
    align-items: center;
    gap: 0.7em;
    opacity: 0.95;
}
/* Small gold rule before the eyebrow for an editorial signal */
.sibiu-section .sibiu-eyebrow::before,
.sibiu-section .eyebrow-script::before {
    content: "";
    width: clamp(28px, 4vw, 48px); height: 1px;
    background: var(--oliv-gold-foil);
    opacity: 0.7;
    flex: 0 0 auto;
}

/* --- Title: Fraunces display ----------------------------------- */
.sibiu-section .sibiu-title,
.sibiu-section h2,
.sibiu-section .uagb-heading-text {
    font-family: var(--oliv-font-serif);
    font-size: var(--oliv-h2, clamp(2.25rem, 4.5vw, 4rem));
    line-height: 1.04;
    letter-spacing: -0.02em;
    font-weight: 400;
    text-transform: none;
    color: var(--oliv-warm-white);
    margin: 0;
    text-wrap: balance;
}

/* --- Pull-quote body ------------------------------------------- */
.sibiu-section p,
.sibiu-section .sibiu-body {
    position: relative;
    font-family: var(--oliv-font-serif);          /* serif pull-quote */
    font-weight: 300;
    font-style: italic;
    font-size: clamp(1.15rem, 1.6vw, 1.4rem);
    line-height: 1.55;
    letter-spacing: 0.002em;
    color: rgba(245, 241, 232, 0.90);
    max-width: 46ch;
    margin: 0;
    padding-left: clamp(0.9rem, 1.4vw, 1.4rem);
    border-left: 2px solid var(--oliv-gold-foil);
}

/* Optional signature / attribution line under the quote */
.sibiu-section .sibiu-signature {
    font-family: var(--oliv-font-sans);
    font-style: normal;
    font-size: 0.8rem;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    color: var(--oliv-stone);
    border-left: 0;
    padding-left: 0;
    margin-top: 0.25rem;
}

/* --- Hover sweep (JS-injected) — retoned, overrides L1740-1748 -- */
.sibiu-section > .sibiu-sweep {
    position: absolute; inset: 0;
    pointer-events: none; z-index: 3;
    background: linear-gradient(120deg,
        transparent 30%, rgba(197, 204, 76, 0.08) 50%, transparent 70%);
    transform: translateX(-100%);
    transition: transform 1.2s var(--oliv-ease-cinematic, cubic-bezier(.2,.7,.15,1));
}
.sibiu-section:hover > .sibiu-sweep { transform: translateX(100%); }

/* ================================================================
   RESPONSIVE
   ================================================================ */

/* Desktop (>=1200) inherits the rules above. */

/* Tablet (768-1199): stack, photo on top as a wide banner.
   Single source of truth for the stacked state — supersedes the
   editorial.css L1932-1933 (max-width:1024px) rule for Sibiu. */
@media (max-width: 1199px) {
    .sibiu-section .sibiu-inner {
        grid-template-columns: 1fr;
        min-height: auto;
    }
    .sibiu-section figure,
    .sibiu-section .sibiu-photo {
        aspect-ratio: 16 / 9;
        min-height: 0;
        height: auto;
    }
    .sibiu-section figure::before {
        /* fade toward the text BELOW the photo, not the side */
        background:
            linear-gradient(0deg, rgba(10,9,8,0.70) 0%, transparent 42%),
            radial-gradient(130% 100% at 50% 30%, transparent 58%, rgba(10,9,8,0.35) 100%);
    }
    .sibiu-section .sibiu-text,
    .sibiu-section .sibiu-content {
        max-width: var(--oliv-max-prose, 72ch);
        margin-inline: auto;
        padding-block: clamp(2.5rem, 7vw, 4rem);
        padding-inline: var(--oliv-pad-inline, clamp(1.5rem, 5vw, 5rem));
        align-items: flex-start;
    }
}

/* Mobile (<=767): tighter banner, no dead space ----------------- */
@media (max-width: 767px) {
    .sibiu-section figure,
    .sibiu-section .sibiu-photo {
        aspect-ratio: 4 / 3;
    }
    .sibiu-section figure img,
    .sibiu-section .sibiu-photo img { object-position: center 30%; }
    .sibiu-section .sibiu-text,
    .sibiu-section .sibiu-content {
        gap: 0.85rem;
        padding-block: clamp(2.25rem, 9vw, 3rem);
    }
    .sibiu-section .sibiu-title,
    .sibiu-section h2 {
        font-size: clamp(2rem, 8vw, 2.75rem);
    }
    .sibiu-section p,
    .sibiu-section .sibiu-body {
        font-size: 1.1rem;
        max-width: none;
    }
    .sibiu-section .sibiu-eyebrow::before,
    .sibiu-section .eyebrow-script::before {
        width: 24px;
    }
}

/* Touch devices: disable hover transforms (perf + no stuck state) */
@media (hover: none) {
    .sibiu-section:hover figure img { transform: scale(1.005); }
    .sibiu-section:hover figure::after { border-width: 0; }
    .sibiu-section > .sibiu-sweep { display: none; }
}

/* Reduced motion */
@media (prefers-reduced-motion: reduce) {
    .sibiu-section figure img,
    .sibiu-section > .sibiu-sweep { transition: none; }
    .sibiu-section:hover figure img { transform: scale(1); }
}

/* ================================================================
   10. ABOUT TEASER — "Amalia Precup — fondatoare"
   Editorial two-column: portrait (left) + lede/CTA (right).
   Replaces editorial.css §10 (L1215-1277) and the §21 about
   overrides at L1970-1971. Scope-aware via var() tokens.
   ================================================================ */

.about-section {
    background: var(--oliv-bg-page);
    /* tonal lift off the neighbouring band — separation by background
       shift + rhythm, no fake divider borders */
    background-image:
        radial-gradient(120% 90% at 8% 0%,
            rgba(184, 155, 74, 0.06) 0%, transparent 46%);
    content-visibility: auto;
    contain-intrinsic-size: auto 760px;
    /* unify section rhythm with the rest of the page */
    padding-block: var(--oliv-rhythm-section-py);
    overflow: clip;
}

/* ---- Two-column grid: portrait | content ---- */
.about-section .about-columns {
    display: grid;
    grid-template-columns: minmax(0, 0.92fr) minmax(0, 1fr);
    align-items: center;
    gap: clamp(2.5rem, 5vw, 5.5rem);
    max-width: var(--oliv-max-content, 88rem);
    margin-inline: auto;
    padding-inline: var(--oliv-pad-inline, clamp(1.5rem, 5vw, 5rem));
    box-sizing: border-box;
}

/* ---- Portrait (LEFT half — was empty) ----
   aspect-ratio defines a TRUE 4:5 box; centered in the row.
   No height:100% / align-self:stretch — those let a short content
   column squish the image (definite height beats aspect-ratio). */
.about-section .about-portrait {
    position: relative;
    margin: 0;
    align-self: center;
    /* gold-foil frame offset behind the image — premium signal */
    isolation: isolate;
}
.about-section .about-portrait::before {
    content: "";
    position: absolute;
    inset: clamp(0.75rem, 1.4vw, 1.25rem) auto auto clamp(0.75rem, 1.4vw, 1.25rem);
    width: 100%;
    height: 100%;
    border: 1px solid var(--oliv-gold-foil);
    opacity: 0.55;
    z-index: -1;
    transition: transform var(--oliv-dur-normal) var(--oliv-ease-organic),
                opacity var(--oliv-dur-normal) var(--oliv-ease-organic);
}
.about-section .about-portrait img {
    display: block;
    width: 100%;
    height: auto;
    aspect-ratio: 4 / 5;
    object-fit: cover;
    object-position: center 22%;
    background: var(--oliv-bg-subtle);
    box-shadow: var(--oliv-shadow-card);
    transition: transform 600ms var(--oliv-ease-cinematic),
                box-shadow 600ms var(--oliv-ease-cinematic);
}
/* tactile hover on the portrait block: image zoom + frame slide.
   Pointer devices only — large touchscreens must not "stick" zoomed. */
@media (hover: hover) and (pointer: fine) {
    .about-section .about-portrait:hover img,
    .about-section .about-portrait:focus-within img {
        transform: scale(1.035);
        box-shadow: var(--oliv-shadow-cinematic);
    }
    .about-section .about-portrait:hover::before,
    .about-section .about-portrait:focus-within::before {
        transform: translate(-4px, -4px);
        opacity: 0.8;
    }
}

/* ---- Content (RIGHT half) ---- */
.about-section .about-content {
    max-width: 46ch;
}

/* Allison script accent — short word only, on cream → legible.
   var()'s 2nd arg is the font-size FALLBACK (token already a clamp). */
.about-section .oliv-script,
.about-section .oliv-eyebrow-script {
    font-family: var(--oliv-font-script);
    font-size: var(--oliv-eyebrow-script, clamp(1.75rem, 2.5vw, 2.25rem));
    line-height: 1;
    color: var(--oliv-gold-deep);
    margin: 0 0 var(--oliv-rhythm-eyebrow-mb, 0.5rem);
}

.about-section .about-title {
    font-family: var(--oliv-font-serif);
    font-size: var(--oliv-h2, clamp(2.25rem, 4.5vw, 4rem));
    line-height: 1.05;
    letter-spacing: -0.02em;
    font-weight: 400;
    color: var(--oliv-text-heading);
    margin: 0 0 var(--oliv-rhythm-h2-mb, 1.5rem);
    text-wrap: balance;
}

/* Lede — hold the strong editorial size. Do NOT consume --oliv-body
   (that token is the SMALL 15–17px body; using it here shrinks the
   lede below the shared lock at editorial.css L248-254). */
.about-section .about-body {
    font-family: var(--oliv-font-sans);
    font-size: clamp(1.05rem, 1.3vw, 1.2rem);
    line-height: 1.7;
    color: var(--oliv-text-primary);
    max-width: 52ch;
    margin: 0 0 clamp(1.75rem, 3vh, 2.5rem);
}

/* Failsafe — about content always visible (covers both script classes) */
.about-section .about-title,
.about-section .about-body,
.about-section .oliv-script,
.about-section .oliv-eyebrow-script { opacity: 1; }

/* ---- "DESPRE OLIV" button — tactile premium hover ---- */
.about-section .about-cta .wp-block-button__link,
.about-section .wp-block-button__link {
    position: relative;
    display: inline-block;
    background: transparent;
    border: 1px solid var(--oliv-accent);
    color: var(--oliv-accent-text, var(--oliv-accent));
    border-radius: 0;
    padding: 0.9rem 1.9rem;
    font-family: var(--oliv-font-sans);
    font-size: 0.82rem;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    font-weight: 500;
    overflow: hidden;
    isolation: isolate;
    transition: color var(--oliv-dur-normal) var(--oliv-ease-cinematic),
                border-color var(--oliv-dur-normal) var(--oliv-ease-cinematic),
                transform var(--oliv-dur-normal) var(--oliv-ease-organic),
                box-shadow var(--oliv-dur-normal) var(--oliv-ease-organic);
}
/* accent wipe fills from the bottom */
.about-section .wp-block-button__link::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: -1;
    background: var(--oliv-accent);
    transform: scaleY(0);
    transform-origin: bottom;
    transition: transform var(--oliv-dur-normal) var(--oliv-ease-cinematic);
}
/* gold underline grows under the label */
.about-section .wp-block-button__link::after {
    content: "";
    position: absolute;
    left: 1.9rem;
    right: 1.9rem;
    bottom: 0.7rem;
    height: 1px;
    background: var(--oliv-gold-foil);
    transform: scaleX(0);
    transform-origin: left;
    transition: transform var(--oliv-dur-normal) var(--oliv-ease-cinematic);
}
.about-section .wp-block-button__link:hover,
.about-section .wp-block-button__link:focus-visible {
    color: var(--oliv-text-inverse);
    border-color: var(--oliv-accent);
    transform: translateY(-4px);
    box-shadow: var(--oliv-shadow-accent);
}
.about-section .wp-block-button__link:hover::before,
.about-section .wp-block-button__link:focus-visible::before { transform: scaleY(1); }
.about-section .wp-block-button__link:hover::after,
.about-section .wp-block-button__link:focus-visible::after { transform: scaleX(1); }

/* ---- Trust strip (optional, below grid) ---- */
.about-section .trust-num {
    font-family: var(--oliv-font-serif);
    font-size: clamp(2.5rem, 4vw, 4rem);
    line-height: 1;
    color: var(--oliv-gold-text);
    font-weight: 500;
    margin: 0 0 0.5rem;
}

/* ================================================================
   RESPONSIVE — About teaser
   ================================================================ */

/* Tablet 768–1199: keep two columns but tighten + ease ratio */
@media (max-width: 1199px) and (min-width: 768px) {
    .about-section .about-columns {
        grid-template-columns: 0.85fr 1fr;
        gap: clamp(2rem, 4vw, 3rem);
    }
    .about-section .about-content { max-width: none; }
}

/* Mobile <=767: stack, portrait first, no inherited dead space */
@media (max-width: 767px) {
    .about-section {
        padding-block: clamp(3.25rem, 8vh, 5rem);
    }
    .about-section .about-columns {
        grid-template-columns: 1fr;
        gap: clamp(1.75rem, 6vw, 2.5rem);
        text-align: left;
    }
    .about-section .about-portrait {
        order: -1;
        max-width: 30rem;
        margin-inline: auto;
        width: 100%;
    }
    .about-section .about-portrait::before {
        inset: 0.6rem auto auto 0.6rem;
    }
    .about-section .about-content { max-width: 60ch; }
}

/* Disable portrait zoom + frame slide on touch (no hover intent).
   Belt-and-braces with the @media(hover:hover) gate above. */
@media (hover: none) {
    .about-section .about-portrait:hover img,
    .about-section .about-portrait:focus-within img { transform: none; box-shadow: var(--oliv-shadow-card); }
    .about-section .about-portrait:hover::before,
    .about-section .about-portrait:focus-within::before { transform: none; opacity: 0.55; }
}

/* Small phone <=600: trust strip stacks (carried over from original) */
@media (max-width: 600px) {
    .about-section .trust-grid { grid-template-columns: 1fr; gap: 1rem; }
    .about-section .trust-num { font-size: 2rem; }
}

/* ---- Reduced motion: neutralize all new transforms/wipes ---- */
@media (prefers-reduced-motion: reduce) {
    .about-section .about-portrait img,
    .about-section .about-portrait::before,
    .about-section .wp-block-button__link,
    .about-section .wp-block-button__link::before,
    .about-section .wp-block-button__link::after {
        transition: none !important;
    }
    .about-section .about-portrait:hover img,
    .about-section .about-portrait:focus-within img { transform: none !important; }
    .about-section .about-portrait:hover::before,
    .about-section .about-portrait:focus-within::before { transform: none !important; }
    .about-section .wp-block-button__link:hover,
    .about-section .wp-block-button__link:focus-visible { transform: none !important; }
    .about-section .wp-block-button__link:hover::before,
    .about-section .wp-block-button__link:focus-visible::before { transform: scaleY(1) !important; }
    .about-section .wp-block-button__link:hover::after,
    .about-section .wp-block-button__link:focus-visible::after { transform: scaleX(0) !important; }
}

/* ================================================================
   11. CONTACT CTA
   ================================================================ */

.contact-cta-section {
    background: var(--oliv-bg-deep);
    color: var(--oliv-text-inverse);
    display: flex;
    align-items: center;
    justify-content: center;
}

.contact-cta-section .contact-inner {
    max-width: min(1100px, 92vw);
    margin: 0 auto;
    padding-inline: clamp(24px, 5vw, 56px);
    text-align: center;
    width: 100%;
}

.contact-cta-section .contact-title h2,
.contact-cta-section .contact-title .uagb-heading-text {
    font-size: var(--oliv-h2-mega);
    color: var(--oliv-warm-white);
    text-transform: none;
    line-height: 1.05;
}

.contact-cta-section .contact-sub {
    font-family: var(--oliv-font-sans);
    color: var(--oliv-stone);
    font-size: 1.05rem;
    line-height: 1.55;
    max-width: 52ch;
    margin: 0 auto 2.5rem;
}

.contact-cta-section .contact-mkt-btn a,
.contact-cta-section .uagb-marketing-btn__link {
    background: var(--oliv-accent);
    color: var(--oliv-text-inverse);
    font-family: var(--oliv-font-sans);
    font-size: 1.125rem;
    padding: 1.25rem 3rem;
    border: none;
    border-radius: 0;
    text-decoration: none;
    box-shadow: var(--oliv-shadow-accent);
    transition: background var(--oliv-dur-normal) var(--oliv-ease-cinematic),
                transform var(--oliv-dur-normal) var(--oliv-ease-cinematic);
}
.contact-cta-section .contact-mkt-btn a:hover,
.contact-cta-section .uagb-marketing-btn__link:hover {
    background: var(--oliv-accent-hover);
    transform: translateY(-2px);
}

/* ================================================================
   12. MARQUEE
   ================================================================ */

.oliv-marquee {
    overflow: hidden;
    padding-block: clamp(2.75rem, 4.5vh, 4rem);
    border-top: 1px solid rgba(184, 155, 74, 0.18);
    border-bottom: 1px solid rgba(184, 155, 74, 0.18);
    background: radial-gradient(130% 150% at 50% 50%, rgba(197, 204, 76, 0.05) 0%, transparent 60%);
}
.oliv-marquee-track {
    display: flex; gap: 2.5rem;
    white-space: nowrap;
    will-change: transform;
    animation: oliv-marquee 38s linear infinite;
    font-family: var(--oliv-font-serif);
    font-style: italic; font-weight: 400;
    font-size: clamp(2.5rem, 5vw, 4.5rem);
    color: var(--oliv-chartreuse-deep);
    transition: color .5s ease, filter .6s ease;
}
.oliv-marquee:hover .oliv-marquee-track {
    animation-play-state: paused;
    color: var(--oliv-chartreuse-muted);
}
@keyframes oliv-marquee { to { transform: translate3d(-50%, 0, 0); } }

/* ================================================================
   13. TRUST STRIP
   ================================================================ */

.trust-row {
    margin-top: 0;
    padding-top: clamp(4rem, 8vh, 6rem);
    border-top: 1px solid var(--oliv-border);
}

.trust-grid, .trust-strip {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    align-items: stretch;
    gap: 0;
}
.trust-grid > *, .trust-strip > * {
    padding: clamp(16px, 2vw, 28px) clamp(24px, 3vw, 48px);
    border-right: 1px solid rgba(60, 50, 40, 0.15);
    text-align: center;
}
.trust-grid > *:last-child, .trust-strip > *:last-child { border-right: none; }

.trust-label {
    font-family: var(--oliv-font-sans);
    font-size: 0.9rem;
    line-height: 1.4;
    color: var(--oliv-text-quiet);
    max-width: 18ch;
    margin-inline: auto;
}

/* ================================================================
   14. HEADER + NAV
   ================================================================ */

.site-header {
    position: sticky;
    top: 0;
    z-index: 100;
    transition: background-color var(--oliv-dur-normal) var(--oliv-ease-cinematic),
                box-shadow var(--oliv-dur-normal) var(--oliv-ease-cinematic);
}
.site-header.is-scrolled {
    background-color: var(--oliv-bg-page);
    box-shadow: 0 1px 0 rgba(28, 28, 26, 0.06);
}

.site-header, .ast-main-header, .main-header-bar,
.ast-primary-header-bar {
    padding-block: clamp(12px, 1.5vw, 20px);
    background: var(--oliv-bg-page, #FAF6EC);
    border-bottom: 1px solid rgba(60, 50, 40, 0.08);
}

.main-header-menu, .main-navigation ul,
.ast-builder-menu ul, .main-header-bar-navigation ul {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: flex-start;
    gap: clamp(4px, 1vw, 18px);
    list-style: none;
    padding: 0; margin: 0;
}

.main-header-menu .menu-item > a,
.main-navigation .menu-item > a,
.ast-builder-menu .menu-item > a {
    font-family: var(--oliv-font-sans);
    font-size: 0.78rem;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    padding: 8px 10px;
    color: var(--oliv-ink, #1A1814);
    text-decoration: none;
    transition: opacity 0.3s ease;
    position: relative;
}

/* OLIV site title — Astra native branding (display-site-title: on).
   Replaces the former oliv-wordmark-item nav injection. */
.site-branding .ast-site-title-wrap,
.site-branding .site-title { line-height: 1; margin: 0; padding: 0; }
.ast-site-title a,
.site-branding .site-title a {
    font-family: var(--oliv-font-serif);
    font-style: italic;
    font-weight: 600;
    font-size: clamp(1.5rem, 2.2vw, 1.85rem);
    letter-spacing: -0.005em;
    text-transform: none !important;
    color: var(--oliv-ink, #1A1814);
    text-decoration: none;
    background: none !important;
    padding: 4px 0;
    display: inline-block;
    line-height: 1.2;
}
.ast-site-title a::after,
.site-branding .site-title a::after {
    content: ".";
    color: var(--oliv-gold-foil, #B89B4A);
    font-style: normal;
    font-weight: 700;
    margin-left: 1px;
}
.ast-site-title a:hover,
.site-branding .site-title a:hover {
    opacity: 0.75;
    color: var(--oliv-ink, #1A1814) !important;
    background: none !important;
}

/* RO/EN lang items — last, subtle */
.menu-item.oliv-lang-item > a {
    font-family: var(--oliv-font-sans);
    font-size: 0.7rem;
    letter-spacing: 0.22em;
    text-transform: uppercase;
    opacity: 0.6;
    padding: 8px 8px;
}
.menu-item.oliv-lang-item.current-menu-item > a,
.menu-item.oliv-lang-item > a:hover { opacity: 1; }

/* Centre the nav: wordmark stays left (margin-right:auto) and the lang
   group is pushed right (first lang gets margin-left:auto) so the nav
   items sit centred between them instead of bunched on the right. */
.menu-item.oliv-lang-item { margin-left: auto; }
.menu-item.oliv-lang-item ~ .menu-item.oliv-lang-item { margin-left: 0; }

/* Quiet header CTA — appears before RO·EN, subtle pill on hover goes gold */
.menu-item.oliv-header-cta .oliv-header-cta-link {
    font-family: var(--oliv-font-sans) !important;
    font-size: 0.72rem !important;
    font-weight: 500 !important;
    letter-spacing: 0.1em !important;
    text-transform: uppercase !important;
    color: var(--oliv-charcoal, #1C1C1A) !important;
    border: 1px solid rgba(28, 28, 26, 0.22) !important;
    padding: 0.42rem 0.95rem !important;
    border-radius: var(--oliv-radius-pill, 999px) !important;
    transition: border-color 200ms ease, color 200ms ease, background 200ms ease !important;
    text-decoration: none;
}
.menu-item.oliv-header-cta .oliv-header-cta-link:hover {
    border-color: var(--oliv-gold-foil) !important;
    color: var(--oliv-gold-text, #8B6F2E) !important;
    background: rgba(184, 155, 74, 0.06) !important;
}

/* Dropdown panels — editorial cream, gold top seam, Fraunces links */
.main-header-menu .sub-menu {
    background: var(--oliv-cream, #FAF6EC) !important;
    border: 1px solid rgba(184, 155, 74, 0.14) !important;
    border-top: 2px solid var(--oliv-gold-foil) !important;
    border-radius: 0 0 var(--oliv-radius-md, 6px) var(--oliv-radius-md, 6px) !important;
    box-shadow: 0 16px 40px rgba(28, 28, 26, 0.1), 0 4px 10px rgba(28, 28, 26, 0.05) !important;
    padding: 0.5rem 0 !important;
    min-width: 230px !important;
}
/* Sub-item links: Fraunces light, slide-right on hover */
.main-header-menu .sub-menu .menu-link {
    font-family: var(--oliv-font-serif) !important;
    font-weight: 300 !important;
    font-size: 0.975rem !important;
    letter-spacing: 0.01em !important;
    text-transform: none !important;
    color: var(--oliv-charcoal, #1C1C1A) !important;
    padding: 0.58rem 1.4rem !important;
    background: none !important;
    transition: color 160ms ease, padding-left 220ms var(--oliv-ease-organic, cubic-bezier(.22,1,.36,1)) !important;
}
.main-header-menu .sub-menu .menu-link:hover {
    color: var(--oliv-gold-text, #8B6F2E) !important;
    padding-left: 1.75rem !important;
    background: none !important;
}
/* Hair-thin gold separator between items */
.main-header-menu .sub-menu > li + li {
    border-top: 1px solid rgba(184, 155, 74, 0.08);
}
/* Arm descriptor eyebrow inside each dropdown (Allison script above items) */
li:has(> a[href*="/nunti/"]) > .sub-menu::before {
    content: "pentru nunți";
    display: block;
    font-family: var(--oliv-font-script, "Allison", cursive);
    font-size: 1.15rem;
    color: var(--oliv-gold-foil);
    padding: 0.4rem 1.4rem 0.6rem;
    border-bottom: 1px solid rgba(184, 155, 74, 0.12);
    margin-bottom: 0.15rem;
    pointer-events: none;
}
li:has(> a[href*="/pentru-branduri/"]) > .sub-menu::before {
    content: "pentru branduri";
    display: block;
    font-family: var(--oliv-font-script, "Allison", cursive);
    font-size: 1.15rem;
    color: var(--oliv-chartreuse-shadow);
    padding: 0.4rem 1.4rem 0.6rem;
    border-bottom: 1px solid rgba(78, 86, 21, 0.12);
    margin-bottom: 0.15rem;
    pointer-events: none;
}
/* Dropdown toggle arrow: smaller, muted, animates on hover */
.main-header-menu .ast-arrow-svg {
    width: 10px !important;
    height: auto !important;
    opacity: 0.4;
    transition: opacity 200ms ease, transform 220ms ease;
}
.main-header-menu .menu-item-has-children:hover .ast-arrow-svg {
    opacity: 0.8;
    transform: rotate(180deg);
}

/* CSS hide legal pages from menu (defense-in-depth) */
li.menu-item:has(> a[href*="/politica-cookies"]),
li.menu-item:has(> a[href*="/politica-confidentialitate"]),
li.menu-item:has(> a[href*="/politica-de-confidentialitate"]),
li.menu-item:has(> a[href*="/termeni-conditii"]) { display: none; }

/* Hide legal pages from primary nav (Astra fallback path) */
.main-header-menu .menu-item.page-item-intrebari-frecvente,
.main-header-menu .menu-item.page-item-politica-cookies,
.main-header-menu .menu-item.page-item-politica-de-confidentialitate,
.main-header-menu .menu-item.page-item-termeni-si-conditii,
.ast-primary-header .page_item:not(.menu-item) {
    display: none;
}

/* ================================================================
   15. FOOTER — GODMODE editorial masthead (v1.2.1)
   Full-bleed dark continuation; composed wordmark + 4-col lheavy
   masthead + muted legal fine-print. Bound to the REAL Astra footer
   DOM (.site-footer / .site-*-footer-wrap / .site-footer-primary-
   section-N / .oliv-footer-legal) — NOT the non-existent
   .ast-builder-footer-wrap. The universal '.site-footer *{color}'
   sledgehammer is removed; colour is set per role.
   ================================================================ */

:root { --oliv-footer-ink: #1A1814; }

/* --- 1. Band killer: zero the footer top margin (footer-scoped). --- */
footer.site-footer,
.site-footer { margin-top: 0 !important; }

/* --- 2. Full-bleed ink fill — footer + every LIVE wrap, edge to edge.
   !important justified: overrides Astra footer-builder Customizer bg. --- */
footer.site-footer,
.site-footer,
#colophon,
.site-footer > .ast-builder-grid-row-container,
.site-above-footer-wrap,
.site-primary-footer-wrap,
.site-below-footer-wrap {
    background-color: var(--oliv-footer-ink) !important;
    border: 0;
}
footer.site-footer,
.site-footer {
    position: relative;
    width: 100vw;
    max-width: 100vw;
    margin-left: calc(50% - 50vw);
    margin-right: calc(50% - 50vw);
    background-image:
        radial-gradient(120% 80% at 50% 0%, rgba(184, 155, 74, 0.06) 0%, transparent 55%),
        linear-gradient(180deg, #1A1814 0%, #14120F 100%) !important;
    overflow: hidden;
}

/* --- 3. Colour per role (replaces the universal '*' sledgehammer) --- */
.site-footer { color: var(--oliv-cream, #FAF6EC); }
.site-footer p,
.site-footer li,
.site-footer span,
.site-footer cite,
.site-footer .ast-builder-html-element { color: var(--oliv-cream, #FAF6EC); }

/* --- 3b. SHARED WIDTH / ALIGNMENT — the wordmark band, the 4-col row and
   the legal row all share ONE width + centring so their left/right edges
   line up (was the "amalgam": wordmark at 88rem stuck out left of Astra's
   1200px columns). Gutter moves onto the full-bleed wraps. !important beats
   Astra's .site-primary-footer-wrap[data-section] .ast-builder-grid-row. --- */
.site-above-footer-wrap,
.site-primary-footer-wrap,
.site-below-footer-wrap {
    padding-inline: clamp(1.5rem, 5vw, 4rem);
}
.site-above-footer-wrap .site-above-footer-inner-wrap,
.site-primary-footer-wrap .site-primary-footer-inner-wrap,
.site-primary-footer-wrap .ast-builder-grid-row,
.site-below-footer-wrap .site-below-footer-inner-wrap {
    max-width: 1240px !important;
    margin-inline: auto !important;
    padding-inline: 0 !important;
}

/* --- 4. ABOVE-FOOTER masthead: oversized wordmark + Fraunces tagline --- */
.site-above-footer-wrap .site-above-footer-inner-wrap {
    padding-top: clamp(2.5rem, 4vh, 3.25rem);
    padding-bottom: clamp(0.75rem, 1.5vh, 1.25rem);
    text-align: left;
}
.site-above-footer-wrap .ast-footer-html-2 { max-width: 44ch; }
.oliv-wordmark-footer {
    display: block;
    font-family: var(--oliv-font-serif);
    font-weight: 300;
    font-size: clamp(2.4rem, 4.5vw, 3.6rem);
    line-height: 0.95;
    letter-spacing: 0.015em;
    text-transform: uppercase;
    color: var(--oliv-chartreuse-muted) !important;
    margin: 0 0 0.65rem;
}
.oliv-tagline-footer {
    font-family: var(--oliv-font-serif);
    font-style: italic;
    font-weight: 400;
    font-size: clamp(1.05rem, 1.6vw, 1.4rem);
    line-height: 1.35;
    letter-spacing: 0.005em;
    color: var(--oliv-gold-foil) !important;
    opacity: 0.95;
    max-width: 34ch;
    margin: 0;
}

/* --- 5. PRIMARY 4-col lheavy masthead grid + faint divider seam --- */
.site-primary-footer-wrap { border-top: 1px solid rgba(184, 155, 74, 0.16); }
.site-primary-footer-inner-wrap {
    padding-top: clamp(1.5rem, 3vh, 2.25rem);
    padding-bottom: clamp(2rem, 4vh, 3rem);
    column-gap: clamp(2rem, 4vw, 4rem);
    row-gap: clamp(2.5rem, 5vh, 3.5rem);
    align-items: start;
}
/* Astra already lays the columns as a 2fr 1fr 1fr 1fr grid (left-heavy) —
   we keep that and only set gaps + alignment above. */
.site-footer-primary-section-1 { max-width: 42ch; }

/* --- 6. Column titles (widget + Astra footer-menu headings) --- */
.site-primary-footer-wrap .widget-title,
.site-primary-footer-wrap .widgettitle,
.site-primary-footer-wrap .ast-footer-menu-title,
.site-primary-footer-wrap h2 {
    color: var(--oliv-gold-foil) !important;
    font-family: var(--oliv-font-sans);
    font-size: 0.7rem;
    font-weight: 600;
    letter-spacing: 0.24em;
    text-transform: uppercase;
    margin: 0 0 1.6rem;
    opacity: 0.88;
}

/* --- 7. Column link + contact-line vertical rhythm --- */
.site-footer .menu li,
.site-footer .ast-footer-menu li { margin: 0 0 0.6rem; line-height: 1.5; }
.site-footer .menu li:last-child { margin-bottom: 0; }
.site-footer-primary-section-4 p { margin: 0 0 0.55rem; line-height: 1.55; max-width: 34ch; }

/* --- 8. Premium link hover — gold underline grow --- */
.site-footer a {
    color: var(--oliv-cream, #FAF6EC) !important;
    text-decoration: none;
    background-image: linear-gradient(var(--oliv-gold-foil), var(--oliv-gold-foil));
    background-size: 0% 1px;
    background-repeat: no-repeat;
    background-position: 0 100%;
    padding-bottom: 2px;
    transition: color var(--oliv-dur-normal, 400ms) var(--oliv-ease-organic, cubic-bezier(.2, .7, .15, 1)),
                background-size var(--oliv-dur-normal, 400ms) var(--oliv-ease-organic, cubic-bezier(.2, .7, .15, 1));
}
.site-footer a:hover { color: var(--oliv-chartreuse-bright, #C5CC4C) !important; background-size: 100% 1px; }
.site-footer a:focus-visible { outline: 2px solid var(--oliv-gold-foil); outline-offset: 3px; border-radius: 1px; }

/* --- 9. Social pair — gold hairline-ring touch targets --- */
.ast-footer-social-1-wrap { display: inline-flex; gap: 0.75rem; margin-top: 1rem; }
.site-footer .ast-builder-social-element {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    border: 1px solid rgba(184, 155, 74, 0.28);
    border-radius: var(--oliv-radius-pill, 999px);
    transition: transform var(--oliv-dur-normal) var(--oliv-ease-organic),
                border-color var(--oliv-dur-normal) ease, background var(--oliv-dur-normal) ease;
}
.site-footer .ast-builder-social-element:hover {
    transform: translateY(-3px);
    border-color: var(--oliv-gold-foil);
    background: rgba(184, 155, 74, 0.08);
}
.site-footer .ast-builder-social-element svg { width: 17px; height: 17px; fill: var(--oliv-cream, #FAF6EC) !important; transition: fill var(--oliv-dur-normal) ease; }
.site-footer .ast-builder-social-element:hover svg { fill: var(--oliv-chartreuse-bright) !important; }

/* --- 10. BELOW-FOOTER: copyright + muted legal fine-print --- */
.site-below-footer-wrap { margin-top: 0; }
.site-below-footer-wrap .site-below-footer-inner-wrap {
    padding-top: clamp(1.5rem, 3vh, 2.25rem);
    padding-bottom: clamp(1.5rem, 3vh, 2.25rem);
    border-top: 1px solid rgba(184, 155, 74, 0.16);
}
/* Copyright + legal side-by-side. !important beats Astra's 0-4-0 tablet-stack
   compound selector; width:auto resets any hidden width:100% on children. */
.site-footer .site-footer-below-section-1 {
    display: flex !important;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem 1.5rem;
    width: 100%;
}
.site-footer .site-footer-below-section-1 > * {
    width: auto !important;
    margin-bottom: 0 !important;
}
.site-footer .ast-footer-copyright { flex: 1 1 auto !important; }
.site-footer .ast-footer-copyright p { margin: 0; }
.site-footer .ast-footer-html-1 { flex: 0 1 auto !important; }
.site-below-footer-wrap,
.site-below-footer-wrap span,
.site-below-footer-wrap p {
    font-family: var(--oliv-font-sans);
    font-size: 0.72rem;
    letter-spacing: 0.12em;
    color: var(--oliv-stone, #D4CFC0);
}
.oliv-footer-legal {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0;
    font-family: var(--oliv-font-sans);
    font-size: 0.68rem;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    margin: 0;
    padding: 0;
}
.oliv-footer-legal a { color: var(--oliv-stone, #D4CFC0) !important; opacity: 0.72; background-size: 0 1px; }
.oliv-footer-legal a:hover { opacity: 1; color: var(--oliv-gold-foil) !important; }
/* .oliv-sep are inline <span> separators already in the HTML */
.oliv-footer-legal .oliv-sep { opacity: 0.45; margin-inline: 0.35rem; letter-spacing: 0; }

/* --- 11. Top gold hairline — the single divider, centred, tapered --- */
.site-footer::before {
    content: "";
    position: absolute;
    top: 0;
    left: 50%;
    transform: translateX(-50%);
    width: min(var(--oliv-max-content, 88rem), 86vw);
    height: 1px;
    background: linear-gradient(90deg, transparent 0%, var(--oliv-gold-foil) 50%, transparent 100%);
    opacity: 0.55;
    pointer-events: none;
    z-index: 1;
}

/* --- 12. Wedding scope — deeper near-black, gold wordmark --- */
.scope-wedding footer.site-footer,
.scope-wedding .site-footer {
    background-image:
        radial-gradient(120% 80% at 50% 0%, rgba(184, 155, 74, 0.05) 0%, transparent 55%),
        linear-gradient(180deg, #0F0E0B 0%, #0A0908 100%) !important;
}
.scope-wedding .oliv-wordmark-footer { color: var(--oliv-gold-foil) !important; }

/* ================================================================
   FOOTER — RESPONSIVE
   ================================================================ */

/* Tablet (768–1199): 2-up grid, brand column spans full width */
@media (min-width: 768px) and (max-width: 1199px) {
    .ast-builder-grid-row-4-lheavy.site-primary-footer-inner-wrap {
        grid-template-columns: 1fr 1fr;
        column-gap: clamp(1.5rem, 3vw, 3rem);
    }
    .site-footer-primary-section-1 { grid-column: 1 / -1; max-width: none; }
}

/* Mobile (<=767): single column, capped wordmark, centred legal */
@media (max-width: 767px) {
    .site-above-footer-wrap .site-above-footer-inner-wrap,
    .site-primary-footer-inner-wrap,
    .site-below-footer-wrap .site-below-footer-inner-wrap {
        padding-inline: clamp(1.25rem, 6vw, 1.75rem);
    }
    .ast-builder-grid-row-4-lheavy.site-primary-footer-inner-wrap {
        grid-template-columns: 1fr;
        row-gap: clamp(2rem, 6vh, 2.5rem);
        text-align: left;
    }
    .site-footer-primary-section-1 { max-width: none; }
    .oliv-wordmark-footer { font-size: clamp(2.75rem, 14vw, 3.75rem); }
    .site-footer .site-footer-below-section-1 {
        flex-direction: column;
        align-items: center;
        text-align: center;
    }
    .oliv-footer-legal { justify-content: center; }
}

/* ================================================================
   16. BREADCRUMBS
   ================================================================ */

.oliv-breadcrumbs-wrap {
    max-width: var(--oliv-container, 1240px);
    margin: 0 auto;
    padding: clamp(18px, 2.4vw, 28px) clamp(16px, 3vw, 32px) 0;
}
.rank-math-breadcrumb p, .rank-math-breadcrumb {
    font-family: var(--oliv-font-sans);
    font-size: .72rem;
    letter-spacing: .2em;
    text-transform: uppercase;
    color: var(--oliv-text-quiet);
    display: flex; flex-wrap: wrap;
    gap: .55rem; align-items: center;
    margin: 0;
}
.rank-math-breadcrumb a {
    color: var(--oliv-text-quiet);
    text-decoration: none;
    background-image: linear-gradient(var(--oliv-gold-foil), var(--oliv-gold-foil));
    background-size: 0 1px;
    background-repeat: no-repeat;
    background-position: 0 100%;
    transition: color .35s ease, background-size .45s cubic-bezier(.2,.7,.2,1);
}
.rank-math-breadcrumb a:hover { color: var(--oliv-gold-foil); background-size: 100% 1px; }
.rank-math-breadcrumb .separator { opacity: .45; color: var(--oliv-chartreuse-muted); }
.rank-math-breadcrumb .last, .rank-math-breadcrumb [aria-current="page"] {
    color: var(--oliv-chartreuse-shadow); font-weight: 500; position: relative;
}
.rank-math-breadcrumb .last::before {
    content: ""; display: inline-block; width: 14px; height: 1px;
    background: var(--oliv-chartreuse-bright); margin-right: .55rem;
    vertical-align: middle;
}
.scope-wedding .rank-math-breadcrumb .last { color: var(--oliv-gold-text); }
.scope-wedding .rank-math-breadcrumb .last::before { background: var(--oliv-gold-foil); }
.scope-dark .rank-math-breadcrumb { color: var(--oliv-cream-deep); }
.scope-dark .rank-math-breadcrumb a { color: var(--oliv-cream-warm); }

/* ================================================================
   17. MOBILE MENU OVERLAY
   ================================================================ */

@media (max-width: 921px) {
    .ast-mobile-popup-drawer {
        position: fixed !important;
        top: 0 !important; left: 0 !important; right: 0 !important; bottom: 0 !important;
        z-index: 9999 !important;
        width: 100vw !important; height: 100vh !important;
        opacity: 0;
        pointer-events: none;
        transform: translateY(-8px);
        transition: opacity var(--oliv-dur-normal, 480ms) var(--oliv-ease-cinematic),
                    transform var(--oliv-dur-normal, 480ms) var(--oliv-ease-cinematic);
        background-color: #131210;
    }
    .ast-mobile-popup-drawer.active {
        opacity: 1;
        pointer-events: auto;
        transform: none;
    }
    .ast-mobile-popup-drawer.active .ast-mobile-popup-inner,
    .ast-mobile-popup-drawer.active .ast-mobile-popup-content,
    .ast-mobile-header-wrap .ast-mobile-header-content {
        background-color: #131210 !important;
        max-width: 100% !important; width: 100% !important;
    }
    .ast-mobile-popup-drawer.active .ast-mobile-popup-inner {
        height: 100vh !important;
        overflow-y: auto !important;
    }
    body.ast-main-header-nav-open,
    body.ast-mobile-popup-drawer-open {
        overflow: hidden !important;
        width: 100% !important;
    }
    .ast-mobile-popup-drawer .menu-item > a,
    .ast-mobile-popup-drawer .menu-link,
    .ast-mobile-popup-drawer .page_item > a {
        font-family: var(--oliv-font-display);
        font-weight: 500;
        text-transform: none;
        font-size: clamp(1.25rem, 4.5vw, 1.75rem);
        line-height: 1.4;
        color: #F5F1E8 !important;
        padding: 0.75rem 1.5rem !important;
    }
    .ast-mobile-popup-drawer .menu-item > a:hover { color: var(--oliv-accent) !important; }

    /* Hide wp_page_menu fallback items + legal pages */
    .ast-mobile-popup-content .page_item:not(.menu-item),
    .ast-mobile-popup-content .page-item-politica-cookies,
    .ast-mobile-popup-content .page-item-termeni-si-conditii,
    .ast-mobile-popup-content .page-item-politica-de-confidentialitate {
        display: none !important;
    }

    /* Mobile header structural — OLIV centered, burger stays right.
       Left section is absolutely centered in the bar; burger pinned right
       with margin-left:auto so it can't drift if the grid collapses to one
       auto column once the left section leaves the flow. */
    #ast-mobile-header .ast-primary-header-bar { position: relative; }
    #ast-mobile-header .site-header-primary-section-left {
        position: absolute;
        left: 50%;
        top: 50%;
        transform: translate(-50%, -50%);
        z-index: 1;
        width: auto;
        margin: 0;
    }
    #ast-mobile-header .site-header-primary-section-right {
        margin-left: auto;
    }
    .ast-site-title a,
    .site-branding .site-title a { font-size: 1.6rem !important; }
    .main-header-menu, .main-navigation ul {
        flex-direction: column;
        align-items: stretch;
    }
}

/* ================================================================
   18. HOVER + TEXTURE LIFTS
   ================================================================ */

/* Menu underline draw */
.main-header-menu .menu-item > a::after {
    content: "";
    position: absolute;
    left: 50%; bottom: 2px;
    width: 0; height: 2px;
    background: var(--oliv-chartreuse-bright);
    transition: width .4s cubic-bezier(.2,.7,.2,1), left .4s cubic-bezier(.2,.7,.2,1);
}
.main-header-menu .menu-item > a:hover::after { width: 80%; left: 10%; }
.main-header-menu .menu-item > a:hover { color: var(--oliv-chartreuse-deep); opacity: 1; }

/* Gold-chartreuse multiply wash on cards */
.work-card::before, .story-card::before {
    content: "";
    position: absolute; inset: 0;
    opacity: 0; z-index: 2;
    background: linear-gradient(135deg, rgba(184,155,74,.18) 0%, rgba(197,204,76,.12) 100%);
    mix-blend-mode: multiply;
    pointer-events: none;
    transition: opacity 600ms cubic-bezier(.2,.7,.2,1);
}
.work-card:hover::before, .story-card:hover::before { opacity: 1; }

/* Gold-foil edge frame on images */
.world-section figure, .work-card, .sibiu-section figure { position: relative; }
.world-section figure::after, .work-card::after, .sibiu-section figure::after {
    content: "";
    position: absolute; inset: 0;
    pointer-events: none;
    border: 0 solid var(--oliv-gold-foil);
    transition: border-width .4s cubic-bezier(.2,.7,.2,1);
    z-index: 3;
}
.world-section figure:hover::after, .work-card:hover::after,
.sibiu-section figure:hover::after { border-width: 2px; }

/* Marquee glow */
.oliv-marquee:hover .oliv-marquee-track {
    filter: drop-shadow(0 0 14px rgba(197,204,76,.45));
}

/* Paper grain — injected by JS on dark sections */
.oliv-grain {
    position: absolute; inset: 0;
    pointer-events: none; z-index: 0;
    opacity: .05; mix-blend-mode: overlay;
    background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='300' height='300'><filter id='n2'><feTurbulence type='fractalNoise' baseFrequency='0.65' numOctaves='3' seed='3'/></filter><rect width='100%25' height='100%25' filter='url(%23n2)' opacity='0.4'/></svg>");
}

/* Sibiu sweep — injected by JS */
.sibiu-section > .sibiu-sweep {
    position: absolute; inset: 0;
    pointer-events: none;
    background: linear-gradient(120deg, transparent 30%, rgba(197,204,76,.10) 50%, transparent 70%);
    transform: translateX(-100%);
    transition: transform 1.2s cubic-bezier(.2,.7,.2,1);
    z-index: 1;
}
.sibiu-section:hover > .sibiu-sweep { transform: translateX(100%); }

/* ================================================================
   19. ANIMATION SCAFFOLDING
   ================================================================ */

/* Fade-up reveal */
.oliv-fade-up {
    opacity: 0;
    transform: translateY(24px);
    transition: opacity 0.7s var(--oliv-ease-cinematic), transform 0.7s var(--oliv-ease-cinematic);
}
.oliv-fade-up.is-visible {
    opacity: 1;
    transform: none;
}

/* Failsafe — unrevealed items show after 3s */
.oliv-fade-up:not(.is-visible) {
    animation: oliv-failsafe-show 1s 1.4s forwards;
}
@keyframes oliv-failsafe-show {
    to { opacity: 1; transform: none; }
}

/* Stagger reveal */
.oliv-reveal-stagger {
    opacity: 0;
    transform: translateY(24px);
    transition: opacity 0.55s var(--oliv-ease-cinematic), transform 0.55s var(--oliv-ease-cinematic);
}
.oliv-reveal-stagger.oliv-section-in { opacity: 1; transform: none; }

/* Clip-path reveal */
.oliv-reveal-clip {
    clip-path: inset(0 0 100% 0);
    transition: clip-path var(--oliv-dur-cinematic, 1.2s) var(--oliv-ease-cinematic);
}
.oliv-reveal-clip.is-visible,
.oliv-reveal-clip.is-in {
    clip-path: inset(0 0 0 0);
}
/* Failsafe — reveal-clip elements MUST become visible even if JS never adds
   .is-visible. Regression guard: the IntersectionObserver in animations.js
   historically did NOT observe .oliv-reveal-clip, so .sibiu-photo /
   .about-portrait / .founder-portrait stayed clipped to invisible (empty
   Sibiu/Amalia halves + founder-quote dead space). initClipReveal() now
   reveals them on scroll; this animation is the no-JS / failed-JS safety net. */
.oliv-reveal-clip:not(.is-visible):not(.is-in) {
    animation: oliv-clip-failsafe 0.8s 0.6s forwards;
}
@keyframes oliv-clip-failsafe {
    to { clip-path: inset(0 0 0 0); }
}

/* Curtain reveal on images */
.curtain-img {
    clip-path: inset(0 0 100% 0);
    transition: clip-path 1100ms cubic-bezier(.7, 0, .2, 1);
}
.curtain-img.is-visible,
.curtain-img.is-revealed {
    clip-path: inset(0 0 0 0);
}

/* Word-by-word reveal */
.oliv-word-reveal .word {
    display: inline-block;
    overflow: hidden;
    vertical-align: bottom;
    line-height: inherit;
}
.oliv-word-reveal .word + .word { margin-left: 0.18em; }
.oliv-word-reveal .word-i {
    display: inline-block;
    transform: translate3d(0, 110%, 0);
    transition: transform 900ms cubic-bezier(.2,.7,.15,1);
    transition-delay: calc(var(--i, 0) * 40ms);
}
.oliv-word-reveal.is-visible .word-i { transform: translate3d(0, 0, 0); }

/* Count-up scaffolding */
[data-countup] {
    font-variant-numeric: tabular-nums;
    display: inline-block;
    min-width: 1.5ch;
}

/* Magnetic CTA */
.oliv-magnetic, .arm-cta, .hero-ctas .wp-block-button, .sibiu-cta {
    transition: transform 320ms cubic-bezier(.2,.7,.15,1),
                background-color 280ms ease, color 280ms ease, border-color 280ms ease;
    will-change: transform;
}

/* Lazy image fade */
img[loading="lazy"] {
    opacity: 0;
    transition: opacity 0.6s var(--oliv-ease-cinematic);
}
img[loading="lazy"].is-loaded,
img[loading="lazy"].oliv-img-in { opacity: 1; }

/* Section divider gold glint */
.section-divider { position: relative; overflow: hidden; }
.section-divider::after {
    content: "";
    position: absolute; top: 50%; left: -30%;
    width: 30%; height: 1px;
    background: linear-gradient(90deg, rgba(184,155,74,0) 0%, rgba(184,155,74,0.85) 50%, rgba(184,155,74,0) 100%);
    transform: translateY(-50%);
    opacity: 0; pointer-events: none;
}
.section-divider.is-visible::after {
    animation: olivGoldGlint 1400ms cubic-bezier(.2,.7,.15,1) 200ms 1 forwards;
}
@keyframes olivGoldGlint {
    0%   { left: -30%; opacity: 0; }
    15%  { opacity: 1; }
    85%  { opacity: 1; }
    100% { left: 100%; opacity: 0; }
}

/* Gold dot accent */
.oliv-gold-dot-accent {
    display: inline-block;
    width: 6px; height: 6px;
    border-radius: 50%;
    background: var(--oliv-gold-foil, #B89B4A);
    vertical-align: middle;
    opacity: 0;
    transform: scale(0.6);
    transition: opacity 420ms ease, transform 520ms cubic-bezier(.2,.7,.15,1);
}
*:hover > .oliv-gold-dot-accent,
.oliv-gold-dot-accent.is-visible { opacity: 1; transform: scale(1); }

/* Magazine signals — section positioning context.
   v1.1.1: removed arbitrary 3-of-13 top gold hairlines and the
   chapter-ordinal block (I./II./III. — "delimitări ireale"). */
.manifest-section, .world-section, .stories-section { position: relative; }

/* ================================================================
   20. FULL-BLEED BREAKOUT
   ================================================================ */

/* Prevent horizontal scroll from 100vw */
#page,
.site-content {
    overflow-x: clip;
}

/* Every top-level .oliv-section breaks out to full viewport width.
   v1.1.0 — works on ALL page templates (not just Page Builder). */
.entry-content > .oliv-section,
.entry-content > .oliv-marquee,
.entry-content[data-ast-blocks-layout] > .oliv-section,
.entry-content[data-ast-blocks-layout] > .oliv-marquee {
    margin-left: calc(50% - 50vw) !important;
    margin-right: calc(50% - 50vw) !important;
    max-width: 100vw !important;
    width: 100vw !important;
}

/* ================================================================
   21. RESPONSIVE STAIRCASE
   ================================================================ */

/* Image overflow lockdown */
.oliv-section img, .work-card img, .world-tile img,
.sibiu-inner img, .world-gallery img {
    max-width: 100%; height: auto; object-fit: cover;
}

/* Aspect-ratio CLS guards */
.hero-photo-strip img { aspect-ratio: 3 / 4; }
.world-gallery figure img { aspect-ratio: 4 / 5; }
.work-card img { aspect-ratio: 3 / 4; }

/* Object-position discipline */
.founder-portrait img, .about-section img { object-position: center 25%; }
.story-card img { object-position: center 35%; }
.sibiu-photo img { object-position: center 30%; }

/* Gate hover transforms to pointer devices */
@media (hover: none) {
    .work-card:hover, .story-card:hover,
    .work-card:hover img, .story-card:hover img { transform: none !important; }
    /* Touch devices: show card captions always (no hover available) */
    .work-card .uagb-ifb-content,
    .work-card .work-card-caption,
    .work-card .work-card-overlay {
        opacity: 1 !important;
        transform: translateY(0) !important;
        visibility: visible !important;
    }
}
/* Keyboard: reveal caption on focus-within for accessibility */
.work-card:focus-within .uagb-ifb-content,
.work-card:focus-within .work-card-caption,
.work-card:focus-within .work-card-overlay {
    opacity: 1;
    transform: translateY(0);
    visibility: visible;
}

/* Tablet: 1024px */
@media (max-width: 1024px) {
    .work-grid { grid-template-columns: repeat(2, 1fr) !important; }
    .world-grid { grid-template-columns: repeat(2, 1fr); }
    .world-gallery > *:first-child,
    .world-tile:first-child { grid-column: span 2; grid-row: auto; }
    .sibiu-inner { grid-template-columns: 1fr; min-height: auto; }
    .sibiu-section figure { aspect-ratio: 16/10; }
    .hero-section { background-position: center 40%; min-height: clamp(560px, 70vh, 720px); }
}

/* Tablet manifest 3→2 */
@media (max-width: 921px) and (min-width: 641px) {
    .manifest-section .manifest-grid { grid-template-columns: repeat(2, 1fr); }
}

/* Phone: 768px */
@media (max-width: 768px) {
    .arms-grid { grid-template-columns: 1fr; }
    .arm-col { padding: clamp(64px, 12vw, 96px) clamp(24px, 6vw, 40px); }
    .work-grid { grid-template-columns: 1fr !important; }
    .world-grid { grid-template-columns: 1fr 1fr; gap: 2px; }
    .hero-section { min-height: clamp(520px, 75vh, 680px); }
    .hero-h1 { font-size: clamp(2.2rem, 9vw, 3.6rem); }
    .manifest-section .manifest-grid { display: flex; flex-direction: column; align-items: center; gap: clamp(28px, 7vw, 2.5rem); }
    .manifest-section .manifest-pillar { width: 100%; max-width: 30rem; align-items: center; text-align: center; }
    .stories-grid { grid-template-columns: 1fr; }
    .trust-grid > *, .trust-strip > * {
        border-right: none;
        border-bottom: 1px solid rgba(60, 50, 40, 0.15);
        flex: 1 1 45%;
    }
    .oliv-marquee, .oliv-marquee-track { font-size: clamp(2.4rem, 8vw, 3.6rem); }
    .story-card .story-figure { aspect-ratio: 3 / 4; }
    .story-card .story-title { font-size: 1.35rem; }
    .site-footer .site-footer-below-section-1 { flex-direction: column; align-items: center; text-align: center; }
}

/* Approach → 1 col at 720px */
@media (max-width: 720px) {
    .approach-section .approach-grid { grid-template-columns: 1fr; }
}

/* Small phone: 600px */
@media (max-width: 600px) {
    .about-section .trust-grid { grid-template-columns: 1fr; gap: 1rem; }
    .about-section .trust-num { font-size: 2rem; }
}

/* Smallest phone: 480px */
@media (max-width: 480px) {
    .hero-h1 { font-size: clamp(2rem, 10vw, 3rem); }
}

/* ================================================================
   22. ACCESSIBILITY + REDUCED MOTION
   ================================================================ */

html { scroll-behavior: smooth; }
[id] { scroll-margin-top: var(--oliv-header-h, 88px); }

a:focus-visible, button:focus-visible, .wp-block-button__link:focus-visible,
.work-card:focus-visible, .story-card:focus-visible,
input:focus-visible, textarea:focus-visible, select:focus-visible {
    outline: 2px solid var(--oliv-chartreuse-shadow);
    outline-offset: 3px;
    border-radius: 2px;
}

button:active, .wp-block-button__link:active { transform: translateY(1px); }
button:disabled, .wp-block-button__link:disabled, [aria-disabled="true"] {
    opacity: 0.5; cursor: not-allowed; pointer-events: none;
}

@media (prefers-reduced-motion: reduce) {
    html { scroll-behavior: auto; }
    .oliv-fade-up, .oliv-reveal-stagger { opacity: 1; transform: none; transition: none; }
    .oliv-word-reveal .word-i { transform: none !important; transition: none !important; }
    .hero-section::before { animation: none !important; }
    .hero-h1, .hero-section .hero-eyebrow, .hero-section .hero-sub,
    .hero-section .eyebrow-script, .hero-section p {
        animation: none !important; opacity: 1 !important; transform: none !important;
    }
    .story-card, .story-card .story-figure, .story-card .story-figure img,
    .story-card .story-title, .story-card .story-readmore::after,
    .story-card .story-readmore::before { transition: none !important; }
    .story-card:hover .story-figure,
    .story-card:hover .story-figure img { transform: none !important; }
    .approach-step::after { transition: none !important; width: 48px; }
    .curtain-img { clip-path: inset(0 0 0 0) !important; transition: none !important; }
    .section-divider.is-visible::after { animation: none !important; }
    .oliv-magnetic, .arm-cta, .hero-ctas .wp-block-button, .sibiu-cta {
        transform: none !important;
    }
    .oliv-marquee-track { animation: none !important; }
    .work-card::before, .story-card::before,
    .world-section figure::after, .work-card::after, .sibiu-section figure::after,
    .sibiu-section > .sibiu-sweep, .oliv-marquee-track,
    .rank-math-breadcrumb a {
        transition: none !important; animation: none !important;
    }
}

/* === END v1.1.0 COMPACT === */

/* ================================================================
   === v1.1.1 spacing + delimitation ===
   New rules only (all other v1.1.1 changes are in-place value swaps
   above). Hero photo strip had NO rule in v1.1.0 -> rendered as raw
   stacked images (CLS / dead-tail). Constrain to a tight cinematic band.
   ================================================================ */
.hero-photo-strip {
    display: flex;
    gap: 4px;
    margin-top: clamp(24px, 4vh, 48px);
    max-height: clamp(120px, 18vh, 200px);
    overflow: hidden;
}
.hero-photo-strip img {
    flex: 1 1 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}
/* Desktop: the 2-image strip reads cramped under the CTAs — the Ken Burns
   bg + headline carry the hero on wide screens. Kept on mobile (works there). */
@media (min-width: 769px) {
    .hero-photo-strip { display: none; }
}
/* === END v1.1.1 === */

/* ================================================================
   19. SERVICE LANDING (hub) — service-hero, service-grid, FAQ
   Used by /pentru-branduri/ + /nunti/ (+ EN). Scope skin
   (scope-brand / scope-wedding) applied via body_class filter,
   so accent + tonal bg adapt automatically per arm.
   ================================================================ */

/* --- Service hero: light text hero (no Ken Burns), centered --- */
.service-hero {
    padding-block: clamp(64px, 8vw, 120px) clamp(48px, 6vw, 88px);
    text-align: center;
    background:
        radial-gradient(120% 80% at 50% 0%, rgba(184, 155, 74, 0.06) 0%, transparent 55%),
        var(--oliv-bg-page, #FAF6EC);
}
.service-hero-inner {
    max-width: 60rem;
    margin-inline: auto;
    padding-inline: var(--oliv-pad-inline, clamp(1.5rem, 5vw, 5rem));
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.35rem;
}
.service-hero .oliv-eyebrow {
    font-family: var(--oliv-font-sans);
    font-size: clamp(0.85rem, 1vw, 1rem);
    letter-spacing: 0.2em;
    text-transform: uppercase;
    font-weight: 500;
    color: var(--oliv-text-quiet);
    margin: 0;
}
.service-hero .chartreuse-line {
    width: 48px;
    margin: 0.75rem auto 0.25rem;
    border: none;
    border-top: 2px solid var(--oliv-accent);
    opacity: 0.9;
}
.service-hero .hero-eyebrow {
    font-family: var(--oliv-font-script);
    font-size: clamp(2.2rem, 4vw, 3.4rem);
    line-height: 1;
    color: var(--oliv-gold-foil);
    display: block;
}
.service-hero .hero-h1 {
    font-family: var(--oliv-font-serif);
    font-size: var(--oliv-h1, clamp(2.4rem, 5vw, 4rem));
    line-height: 1.05;
    letter-spacing: -0.02em;
    font-weight: 400;
    text-transform: none;
    margin: 0.5rem 0 0;
    max-width: 20ch;
}
.service-hero .service-hero-sub {
    font-family: var(--oliv-font-sans);
    font-size: clamp(1.05rem, 1.3vw, 1.2rem);
    line-height: 1.7;
    color: var(--oliv-text-quiet);
    max-width: 46ch;
    margin: 1.25rem 0 0;
}
.service-hero .hero-ctas {
    margin-top: 2rem;
    gap: 0.75rem 1rem;
    justify-content: center;
}

/* --- Service grid: 2x2 child-service cards --- */
.service-grid-section .service-grid-inner {
    max-width: 96rem;
    margin-inline: auto;
    padding-inline: var(--oliv-pad-inline, clamp(1.5rem, 5vw, 5rem));
}
.service-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: clamp(16px, 2vw, 28px);
    margin-top: clamp(2rem, 4vh, 3.5rem);
}
.service-card {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 0.5rem;
    padding: clamp(1.75rem, 3vw, 2.75rem);
    background: var(--oliv-bg-card, var(--oliv-warm-white));
    border: 1px solid rgba(60, 50, 40, 0.1);
    border-radius: 2px;
    text-decoration: none;
    color: inherit;
    position: relative;
    transition: transform var(--oliv-dur-normal, 480ms) var(--oliv-ease-cinematic, ease),
                border-color var(--oliv-dur-normal, 480ms) var(--oliv-ease-cinematic, ease),
                box-shadow var(--oliv-dur-normal, 480ms) var(--oliv-ease-cinematic, ease);
}
.service-card-num {
    font-family: var(--oliv-font-sans);
    font-size: 0.8rem;
    letter-spacing: 0.18em;
    font-weight: 600;
    color: var(--oliv-accent-text, var(--oliv-accent));
}
.service-card-title {
    font-family: var(--oliv-font-serif);
    font-size: clamp(1.3rem, 1.9vw, 1.65rem);
    line-height: 1.2;
    letter-spacing: -0.01em;
    font-weight: 400;
    text-transform: none;
    margin: 0.15rem 0 0;
}
.service-card-dek {
    font-family: var(--oliv-font-sans);
    font-size: 0.98rem;
    line-height: 1.6;
    color: var(--oliv-text-quiet);
    margin: 0;
    max-width: 38ch;
}
.service-card-cta {
    font-family: var(--oliv-font-sans);
    font-size: 0.82rem;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    font-weight: 500;
    color: var(--oliv-gold-text, var(--oliv-gold-deep));
    margin-top: auto;
    padding-top: 0.75rem;
    transition: transform var(--oliv-dur-fast, 240ms) var(--oliv-ease-cinematic, ease);
}
.service-card:hover,
.service-card:focus-visible {
    transform: translateY(-4px);
    border-color: var(--oliv-gold-foil);
    box-shadow: 0 18px 40px -24px rgba(60, 50, 40, 0.4);
    outline: none;
}
.service-card:hover .service-card-cta,
.service-card:focus-visible .service-card-cta {
    transform: translateX(4px);
}

/* --- FAQ: native <details> accordion --- */
.faq-section .faq-inner {
    max-width: 56rem;
    margin-inline: auto;
    padding-inline: var(--oliv-pad-inline, clamp(1.5rem, 5vw, 5rem));
}
.faq-list {
    margin-top: clamp(2rem, 4vh, 3rem);
    border-top: 1px solid rgba(60, 50, 40, 0.14);
}
.faq-item {
    border-bottom: 1px solid rgba(60, 50, 40, 0.14);
}
.faq-q {
    font-family: var(--oliv-font-serif);
    font-size: clamp(1.1rem, 1.6vw, 1.35rem);
    line-height: 1.35;
    font-weight: 400;
    color: var(--oliv-text-heading, var(--oliv-muted-black));
    padding: clamp(1.1rem, 2vw, 1.6rem) 2.5rem clamp(1.1rem, 2vw, 1.6rem) 0;
    cursor: pointer;
    position: relative;
    list-style: none;
    transition: color var(--oliv-dur-fast, 240ms) ease;
}
.faq-q::-webkit-details-marker { display: none; }
.faq-q::after {
    content: "+";
    position: absolute;
    right: 0;
    top: 50%;
    transform: translateY(-50%);
    font-family: var(--oliv-font-sans);
    font-size: 1.5rem;
    font-weight: 300;
    color: var(--oliv-gold-foil);
    transition: transform var(--oliv-dur-normal, 480ms) var(--oliv-ease-cinematic, ease);
}
.faq-item[open] .faq-q::after {
    content: "–";
    transform: translateY(-50%) rotate(180deg);
}
.faq-q:hover { color: var(--oliv-gold-deep); }
.faq-a {
    padding: 0 2.5rem clamp(1.2rem, 2vw, 1.7rem) 0;
}
.faq-a p {
    font-family: var(--oliv-font-sans);
    font-size: 1rem;
    line-height: 1.7;
    color: var(--oliv-text-quiet);
    margin: 0;
    max-width: 60ch;
}

/* Lone trailing card (odd count, e.g. 5 wedding services) spans full width */
.service-grid .service-card:last-child:nth-child(odd) {
    grid-column: 1 / -1;
}

/* --- Service-landing responsive --- */
@media (max-width: 781px) {
    .service-grid { grid-template-columns: 1fr; }
    .service-grid .service-card:last-child:nth-child(odd) { grid-column: auto; }
    .service-hero .hero-h1 { max-width: 16ch; }
}

/* === END v1.3.7 SERVICE LANDING === */

/* ================================================================
   20. SERVICE DETAIL (child pages) — editorial body + deliverables
   ================================================================ */

/* --- Editorial body: lead + prose paragraphs --- */
.service-body .service-body-inner {
    max-width: 50rem;
    margin-inline: auto;
    padding-inline: var(--oliv-pad-inline, clamp(1.5rem, 5vw, 5rem));
}
.service-body .service-lead {
    font-family: var(--oliv-font-serif);
    font-size: clamp(1.4rem, 2.4vw, 1.9rem);
    line-height: 1.4;
    letter-spacing: -0.01em;
    font-weight: 400;
    color: var(--oliv-text-heading, var(--oliv-muted-black));
    margin: 0 0 clamp(1.5rem, 3vh, 2.25rem);
}
.service-body .service-para {
    font-family: var(--oliv-font-sans);
    font-size: clamp(1.02rem, 1.25vw, 1.15rem);
    line-height: 1.75;
    color: var(--oliv-text-quiet);
    margin: 0 0 1.25rem;
}
.service-body .service-para:last-child { margin-bottom: 0; }

/* --- Deliverables checklist --- */
.deliverables-section .deliverables-inner {
    max-width: 56rem;
    margin-inline: auto;
    padding-inline: var(--oliv-pad-inline, clamp(1.5rem, 5vw, 5rem));
}
.deliverables {
    list-style: none;
    margin: clamp(2rem, 4vh, 3rem) 0 0;
    padding: 0;
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: clamp(12px, 1.6vw, 20px);
}
.deliverables li {
    position: relative;
    padding-left: 2rem;
    font-family: var(--oliv-font-sans);
    font-size: clamp(1rem, 1.2vw, 1.1rem);
    line-height: 1.55;
    color: var(--oliv-text-primary, var(--oliv-charcoal));
}
.deliverables li::before {
    content: "";
    position: absolute;
    left: 0;
    top: 0.55em;
    width: 14px;
    height: 8px;
    border-left: 2px solid var(--oliv-accent);
    border-bottom: 2px solid var(--oliv-accent);
    transform: rotate(-45deg) translateY(-2px);
}
@media (max-width: 781px) {
    .deliverables { grid-template-columns: 1fr; }
}

/* === END v1.3.9 SERVICE DETAIL === */

/* ================================================================
   21. CONTACT PAGE — hero trust line, form + sidebar, SureForms theme
   ================================================================ */

.contact-trust {
    font-family: var(--oliv-font-sans);
    font-size: clamp(0.8rem, 1vw, 0.92rem);
    letter-spacing: 0.04em;
    color: var(--oliv-text-quiet);
    margin: 1.5rem 0 0;
    max-width: 52ch;
    text-align: center;
}

.contact-form-section .contact-page-grid {
    max-width: 80rem;
    margin-inline: auto;
    padding-inline: var(--oliv-pad-inline, clamp(1.5rem, 5vw, 5rem));
    display: grid;
    grid-template-columns: 1.6fr 1fr;
    gap: clamp(2rem, 5vw, 4.5rem);
    align-items: start;
}
.contact-form-col .eyebrow-script { margin: 0 0 0.25rem; }
.contact-form-col .manifest-title { text-align: left; margin-bottom: 0.75rem; }
.contact-form-intro {
    font-family: var(--oliv-font-sans);
    font-size: clamp(1rem, 1.2vw, 1.12rem);
    line-height: 1.7;
    color: var(--oliv-text-quiet);
    margin: 0 0 clamp(1.75rem, 3vh, 2.5rem);
    max-width: 48ch;
}

/* Sidebar info cards */
.contact-sidebar {
    display: flex;
    flex-direction: column;
    gap: clamp(1rem, 2vh, 1.5rem);
    position: sticky;
    top: clamp(90px, 12vh, 130px);
}
.contact-info-card {
    padding: clamp(1.25rem, 2vw, 1.75rem);
    background: var(--oliv-bg-card, var(--oliv-warm-white));
    border: 1px solid rgba(60, 50, 40, 0.1);
    border-radius: 2px;
}
.contact-info-label {
    font-family: var(--oliv-font-sans);
    font-size: 0.78rem;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    font-weight: 600;
    color: var(--oliv-accent-text, var(--oliv-accent));
    display: block;
    margin-bottom: 0.5rem;
}
.contact-info-line {
    font-family: var(--oliv-font-serif);
    font-size: clamp(1.1rem, 1.6vw, 1.3rem);
    line-height: 1.3;
    color: var(--oliv-text-heading, var(--oliv-muted-black));
    margin: 0 0 0.4rem;
}
.contact-info-note {
    font-family: var(--oliv-font-sans);
    font-size: 0.9rem;
    line-height: 1.55;
    color: var(--oliv-text-quiet);
    margin: 0;
}

/* SureForms field theming → match OLIV editorial */
.contact-form-wrap .srfm-input,
.contact-form-wrap input[type="text"],
.contact-form-wrap input[type="email"],
.contact-form-wrap input[type="tel"],
.contact-form-wrap textarea,
.contact-form-wrap select {
    font-family: var(--oliv-font-sans) !important;
    font-size: 1rem !important;
    color: var(--oliv-text-primary, var(--oliv-charcoal)) !important;
    background: var(--oliv-cream, #FAF6EC) !important;
    border: 1px solid rgba(60, 50, 40, 0.2) !important;
    border-radius: 2px !important;
    padding: 0.85rem 1rem !important;
    transition: border-color var(--oliv-dur-fast, 240ms) ease !important;
}
.contact-form-wrap .srfm-input:focus,
.contact-form-wrap input:focus,
.contact-form-wrap textarea:focus,
.contact-form-wrap select:focus {
    border-color: var(--oliv-gold-foil) !important;
    outline: none !important;
    box-shadow: 0 0 0 3px rgba(184, 155, 74, 0.15) !important;
}
.contact-form-wrap label,
.contact-form-wrap .srfm-block-label {
    font-family: var(--oliv-font-sans) !important;
    font-size: 0.88rem !important;
    letter-spacing: 0.04em !important;
    color: var(--oliv-text-heading, var(--oliv-muted-black)) !important;
    font-weight: 500 !important;
}
.contact-form-wrap .srfm-submit-btn,
.contact-form-wrap button[type="submit"] {
    font-family: var(--oliv-font-sans) !important;
    font-size: 0.82rem !important;
    letter-spacing: 0.14em !important;
    text-transform: uppercase !important;
    font-weight: 500 !important;
    background: var(--oliv-muted-black) !important;
    color: var(--oliv-warm-white) !important;
    border: none !important;
    border-radius: 2px !important;
    padding: 1rem 2rem !important;
    cursor: pointer !important;
    transition: background var(--oliv-dur-fast, 240ms) ease, transform var(--oliv-dur-fast, 240ms) ease !important;
}
.contact-form-wrap .srfm-submit-btn:hover,
.contact-form-wrap button[type="submit"]:hover {
    background: var(--oliv-gold-deep, #8B6F2E) !important;
    transform: translateY(-2px) !important;
}

@media (max-width: 880px) {
    .contact-form-section .contact-page-grid { grid-template-columns: 1fr; }
    .contact-sidebar { position: static; }
    .contact-form-col .manifest-title { text-align: center; }
    .contact-form-intro { margin-inline: auto; text-align: center; }
}

/* === END v1.4.0 CONTACT === */

/* ================================================================
   22. VISUAL UPGRADE (v1.5.0) — richer cards, hero depth, section
   rhythm, scope differentiation. Scoped to inner pages so the
   homepage (front page, body.home) stays exactly as approved.
   service-*/faq/deliverables classes are inner-page-only → global.
   ================================================================ */

/* --- Per-scope accent tokens (brand = bronze-cool, wedding = gold-warm) --- */
body.scope-brand   { --oliv-scope-accent: var(--oliv-gold-deep, #8B6F2E); --oliv-scope-tint: rgba(139, 111, 46, 0.07); }
body.scope-wedding { --oliv-scope-accent: var(--oliv-gold-foil, #B89B4A); --oliv-scope-tint: rgba(184, 155, 74, 0.08); }
body.scope-neutral { --oliv-scope-accent: var(--oliv-gold-foil, #B89B4A); --oliv-scope-tint: rgba(184, 155, 74, 0.06); }

/* --- Section rhythm: alternating warm tints on inner pages only.
   Special media sections (hero, founder-quote, sibiu, about, work)
   keep their own backgrounds — only plain content sections alternate. --- */
body:not(.home) .oliv-section:nth-of-type(even):not(.scope-dark):not([data-scope="dark"]):not(.service-hero):not(.founder-quote-section):not(.sibiu-section):not(.about-section):not(.work-section) {
    background: var(--oliv-warm-white, #F5F1E8);
}
body:not(.home) .oliv-section:nth-of-type(odd):not(.scope-dark):not([data-scope="dark"]):not(.service-hero):not(.founder-quote-section):not(.sibiu-section):not(.about-section):not(.work-section) {
    background: var(--oliv-cream, #FAF6EC);
}

/* --- Service hero: layered depth + scope-tinted glow --- */
.service-hero {
    background:
        radial-gradient(140% 90% at 50% -10%, var(--oliv-scope-tint, rgba(184,155,74,0.07)) 0%, transparent 60%),
        radial-gradient(80% 50% at 50% 110%, rgba(20, 18, 15, 0.03) 0%, transparent 70%),
        var(--oliv-bg-page, #FAF6EC);
    overflow: hidden;
}
.service-hero::before {
    content: "";
    position: absolute;
    top: 0; left: 50%;
    width: 1px; height: clamp(32px, 5vw, 56px);
    background: linear-gradient(180deg, var(--oliv-scope-accent, var(--oliv-gold-foil)), transparent);
    transform: translateX(-50%);
    opacity: 0.5;
}
.service-hero .hero-eyebrow { color: var(--oliv-scope-accent, var(--oliv-gold-foil)); }
.service-hero .chartreuse-line { border-top-color: var(--oliv-scope-accent, var(--oliv-accent)); }

/* --- Service cards: editorial watermark number + animated accent rail --- */
.service-card {
    overflow: hidden;
    padding-top: clamp(2.25rem, 3.5vw, 3.25rem);
}
.service-card::before {
    content: "";
    position: absolute;
    top: 0; left: 0;
    width: 100%; height: 2px;
    background: var(--oliv-scope-accent, var(--oliv-gold-foil));
    transform: scaleX(0);
    transform-origin: left;
    transition: transform var(--oliv-dur-normal, 480ms) var(--oliv-ease-cinematic, ease);
}
.service-card:hover::before,
.service-card:focus-visible::before { transform: scaleX(1); }
.service-card-num {
    position: absolute;
    top: clamp(0.9rem, 1.6vw, 1.4rem);
    right: clamp(1.1rem, 2vw, 1.75rem);
    font-family: var(--oliv-font-serif);
    font-style: italic;
    font-size: clamp(2.4rem, 4vw, 3.6rem);
    font-weight: 400;
    letter-spacing: 0;
    color: var(--oliv-scope-accent, var(--oliv-gold-foil));
    opacity: 0.16;
    line-height: 1;
    transition: opacity var(--oliv-dur-normal, 480ms) var(--oliv-ease-cinematic, ease);
    pointer-events: none;
}
.service-card:hover .service-card-num,
.service-card:focus-visible .service-card-num { opacity: 0.28; }
.service-card:hover,
.service-card:focus-visible {
    transform: translateY(-6px);
    border-color: var(--oliv-scope-accent, var(--oliv-gold-foil));
    box-shadow: 0 24px 50px -28px rgba(40, 32, 20, 0.45);
}
.service-card-cta { color: var(--oliv-scope-accent, var(--oliv-gold-deep)); }

/* --- Manifest pillars: hairline separators + editorial index --- */
body:not(.home) .manifest-pillar {
    position: relative;
    padding-top: clamp(1.5rem, 2.5vw, 2.25rem);
}
body:not(.home) .manifest-pillar::before {
    content: "";
    position: absolute;
    top: 0; left: 50%;
    width: clamp(28px, 4vw, 44px); height: 1px;
    background: var(--oliv-scope-accent, var(--oliv-gold-foil));
    transform: translateX(-50%);
    opacity: 0.55;
}
body:not(.home) .manifest-pillar .pillar-label { color: var(--oliv-scope-accent, var(--oliv-gold-deep)); }

/* --- Approach steps: progression rail + bolder numerals --- */
body:not(.home) .approach-step { position: relative; }
body:not(.home) .approach-step .step-num {
    font-family: var(--oliv-font-serif);
    font-style: italic;
    font-size: clamp(1.8rem, 2.6vw, 2.4rem);
    color: var(--oliv-scope-accent, var(--oliv-gold-foil));
    opacity: 0.85;
    line-height: 1;
    margin-bottom: 0.5rem;
}
body:not(.home) .approach-step::after {
    content: "";
    position: absolute;
    top: 0.7em; left: calc(50% + 1.5rem);
    width: calc(100% - 3rem); height: 1px;
    background: linear-gradient(90deg, var(--oliv-scope-accent, var(--oliv-gold-foil)) 0%, transparent 100%);
    opacity: 0.3;
}
body:not(.home) .approach-grid .approach-step:last-child::after { display: none; }
@media (max-width: 921px) {
    body:not(.home) .approach-step::after { display: none; }
}

/* --- Deliverables: card surface + scope check --- */
.deliverables {
    padding: clamp(1.75rem, 3vw, 2.75rem);
    background: var(--oliv-bg-card, var(--oliv-warm-white));
    border: 1px solid rgba(60, 50, 40, 0.1);
    border-radius: 2px;
}
.deliverables li::before { border-color: var(--oliv-scope-accent, var(--oliv-accent)); }

/* --- FAQ: smooth answer reveal + scope marker --- */
.faq-a {
    display: grid;
    grid-template-rows: 1fr;
}
.faq-q::after { color: var(--oliv-scope-accent, var(--oliv-gold-foil)); }
.faq-item[open] .faq-q { color: var(--oliv-scope-accent, var(--oliv-gold-deep)); }
.faq-item { transition: border-color var(--oliv-dur-fast, 240ms) ease; }
.faq-item[open] { border-bottom-color: var(--oliv-scope-accent, var(--oliv-gold-foil)); }

/* --- Service body lead: scope drop-accent on first line --- */
.service-body .service-lead { position: relative; padding-left: clamp(1rem, 2vw, 1.5rem); }
.service-body .service-lead::before {
    content: "";
    position: absolute;
    left: 0; top: 0.35em; bottom: 0.35em;
    width: 2px;
    background: var(--oliv-scope-accent, var(--oliv-gold-foil));
    opacity: 0.7;
}

/* --- Contact info cards: scope accent label + hover lift --- */
.contact-info-card {
    transition: transform var(--oliv-dur-fast, 240ms) ease, border-color var(--oliv-dur-fast, 240ms) ease;
}
.contact-info-card:hover {
    transform: translateY(-3px);
    border-color: var(--oliv-scope-accent, var(--oliv-gold-foil));
}
.contact-info-label { color: var(--oliv-scope-accent, var(--oliv-gold-deep)); }

/* --- Section eyebrow scripts: warmer scope tint on inner pages --- */
body:not(.home) .eyebrow-script { color: var(--oliv-scope-accent, var(--oliv-gold-foil)); }

/* --- Full-bleed image band: breaks text rhythm on detail pages --- */
.service-image-band-section {
    padding-block: 0 !important;
    max-width: 100%;
    overflow: hidden;
    position: relative;
}
.service-image-band {
    margin: 0;
    position: relative;
    line-height: 0;
}
.service-image-band img {
    display: block;
    width: 100%;
    height: clamp(260px, 40vh, 500px);
    object-fit: cover;
    filter: saturate(0.96) contrast(1.02);
}
.service-image-band::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, rgba(20,18,15,0.12) 0%, transparent 25%, transparent 70%, rgba(20,18,15,0.22) 100%);
    pointer-events: none;
}
.service-image-band .band-caption {
    position: absolute;
    left: clamp(1.5rem, 5vw, 5rem);
    bottom: clamp(1.25rem, 3vw, 2.25rem);
    margin: 0;
    font-family: var(--oliv-font-script);
    font-size: clamp(1.8rem, 3.4vw, 3rem);
    line-height: 1;
    color: var(--oliv-warm-white, #F5F1E8);
    text-shadow: 0 2px 24px rgba(20,18,15,0.5);
    z-index: 1;
}

/* === END v1.5.1 IMAGE BAND === */

/* ================================================================
   23. EDITORIAL MODE (v1.6.0) — Bold Editorial prototype.
   SCOPED to body.oliv-editorial (/pentru-branduri/) ONLY, for client
   review. Direction: oversized type, asymmetric editorial layout,
   chartreuse-dominant, archive/index feel — creative consultancy,
   NOT service agency. Gold accents removed; chartreuse predominates.
   ================================================================ */

body.oliv-editorial {
    --ed-accent: #A4AC2C;        /* vivid chartreuse — display + decoration */
    --ed-accent-text: #4D5615;   /* AAA chartreuse — small text */
    --ed-ink: #15140F;
    --ed-line: rgba(21, 20, 15, 0.16);
}

/* Kill alternating tints + reset section bg to a single warm canvas */
body.oliv-editorial .oliv-section:not(.scope-dark):not([data-scope="dark"]) {
    background: var(--oliv-cream, #FAF6EC) !important;
}

/* --- HERO: left-aligned, oversized, chartreuse rule --- */
body.oliv-editorial .service-hero {
    text-align: left;
    padding-block: clamp(72px, 11vw, 168px) clamp(40px, 6vw, 80px);
    background: var(--oliv-cream, #FAF6EC) !important;
}
body.oliv-editorial .service-hero::before { display: none; }
body.oliv-editorial .service-hero-inner {
    max-width: 78rem;
    align-items: flex-start;
    gap: 0;
}
body.oliv-editorial .service-hero .oliv-eyebrow {
    font-family: var(--oliv-font-sans);
    font-size: clamp(0.72rem, 0.95vw, 0.85rem);
    letter-spacing: 0.28em;
    color: var(--ed-accent-text);
    margin: 0 0 clamp(1.5rem, 4vw, 3rem);
}
body.oliv-editorial .service-hero .oliv-eyebrow::before { content: "01 / "; color: var(--ed-accent); font-weight: 600; }
body.oliv-editorial .service-hero .chartreuse-line { display: none; }
body.oliv-editorial .service-hero .hero-eyebrow {
    font-family: var(--oliv-font-script);
    font-size: clamp(2rem, 4vw, 3.4rem);
    color: var(--ed-accent-text);
    margin: 0 0 0.5rem;
    align-self: flex-start;
}
body.oliv-editorial .service-hero .hero-h1 {
    font-family: var(--oliv-font-serif);
    font-size: clamp(2.9rem, 8.5vw, 7rem);
    line-height: 0.96;
    letter-spacing: -0.03em;
    font-weight: 400;
    max-width: 16ch;
    margin: 0;
    text-align: left;
}
body.oliv-editorial .service-hero .service-hero-sub {
    font-size: clamp(1.1rem, 1.5vw, 1.4rem);
    line-height: 1.6;
    max-width: 44ch;
    margin: clamp(2rem, 4vw, 3rem) 0 0;
    text-align: left;
    border-left: 3px solid var(--ed-accent);
    padding-left: clamp(1rem, 1.5vw, 1.5rem);
}
body.oliv-editorial .service-hero .hero-ctas { justify-content: flex-start; margin-top: clamp(2.5rem, 5vw, 4rem); gap: clamp(1rem,3vw,2.5rem); }
/* Buttons → editorial underlined text links (kill the agency button) */
body.oliv-editorial .service-hero .wp-block-button__link {
    background: transparent !important;
    color: var(--ed-ink) !important;
    border: none !important;
    border-radius: 0 !important;
    padding: 0 0 0.35rem !important;
    font-family: var(--oliv-font-sans);
    font-size: clamp(0.95rem, 1.2vw, 1.1rem);
    letter-spacing: 0.02em;
    text-transform: none;
    border-bottom: 2px solid var(--ed-accent) !important;
    transition: color var(--oliv-dur-fast,240ms) ease, border-color var(--oliv-dur-fast,240ms) ease;
}
body.oliv-editorial .service-hero .wp-block-button__link:hover { color: var(--ed-accent-text) !important; border-bottom-color: var(--ed-ink) !important; }

/* --- Section eyebrows + titles: editorial, oversized, left --- */
body.oliv-editorial .manifest-section .manifest-inner,
body.oliv-editorial .service-grid-section .service-grid-inner,
body.oliv-editorial .approach-section .approach-inner,
body.oliv-editorial .faq-section .faq-inner { max-width: 82rem; }

body.oliv-editorial .eyebrow-script {
    font-family: var(--oliv-font-sans) !important;
    font-style: normal;
    text-transform: uppercase;
    letter-spacing: 0.28em;
    font-size: clamp(0.72rem, 0.95vw, 0.85rem) !important;
    color: var(--ed-accent-text) !important;
    text-align: left !important;
}
body.oliv-editorial .manifest-title,
body.oliv-editorial .approach-title {
    text-align: left !important;
    font-size: clamp(2.2rem, 5.5vw, 4.5rem);
    line-height: 1;
    letter-spacing: -0.025em;
    max-width: 18ch;
    margin: 0.5rem 0 clamp(2.5rem, 5vw, 4rem);
}

/* --- MANIFEST → asymmetric editorial index (I / II / III) --- */
body.oliv-editorial .manifest-grid { gap: 0 !important; display: block; }
body.oliv-editorial .manifest-pillar {
    display: grid;
    grid-template-columns: clamp(3rem, 7vw, 7rem) 1fr;
    gap: clamp(1rem, 3vw, 3rem);
    align-items: start;
    text-align: left;
    padding: clamp(1.75rem, 3vw, 2.75rem) 0;
    border-top: 1px solid var(--ed-line);
    max-width: none;
}
body.oliv-editorial .manifest-pillar:last-child { border-bottom: 1px solid var(--ed-line); }
body.oliv-editorial .manifest-pillar::before { display: none; }
body.oliv-editorial .manifest-pillar > * { margin-inline: 0; text-align: left; }
body.oliv-editorial .manifest-pillar .pillar-label {
    grid-row: span 3;
    font-family: var(--oliv-font-serif);
    font-style: italic;
    font-size: clamp(2.4rem, 5vw, 4.5rem);
    color: var(--ed-accent);
    letter-spacing: -0.02em;
    text-transform: none;
}
body.oliv-editorial .manifest-pillar .pillar-title {
    font-size: clamp(1.6rem, 2.6vw, 2.4rem);
    line-height: 1.1;
    max-width: none;
    margin: 0 0 0.75rem;
}
body.oliv-editorial .manifest-pillar .pillar-body { font-size: clamp(1.02rem, 1.3vw, 1.18rem); max-width: 48ch; }

/* --- SERVICE GRID → editorial archive index (the key de-agency move) --- */
body.oliv-editorial .service-grid {
    display: block;
    margin-top: clamp(1rem, 2vw, 2rem);
    border-top: 1px solid var(--ed-line);
}
body.oliv-editorial .service-card {
    display: grid;
    grid-template-columns: clamp(3rem, 7vw, 7rem) 1fr auto;
    align-items: baseline;
    column-gap: clamp(1.25rem, 3vw, 3rem);
    row-gap: 0.5rem;
    padding: clamp(1.75rem, 3.5vw, 3rem) 0;
    border: none;
    border-bottom: 1px solid var(--ed-line);
    border-radius: 0;
    background: transparent !important;
    box-shadow: none !important;
    transform: none !important;
    transition: background var(--oliv-dur-fast,240ms) ease;
    overflow: visible;
}
body.oliv-editorial .service-card::before { display: none; }
body.oliv-editorial .service-card:hover {
    background: rgba(164, 172, 44, 0.06) !important;
    transform: none !important;
    box-shadow: none !important;
    border-color: var(--ed-accent) !important;
}
body.oliv-editorial .service-card-num {
    position: static;
    font-family: var(--oliv-font-serif);
    font-style: italic;
    font-size: clamp(2.2rem, 5vw, 4.2rem);
    color: var(--ed-accent);
    opacity: 1;
    line-height: 0.9;
    grid-row: span 2;
}
body.oliv-editorial .service-card-title {
    font-size: clamp(1.7rem, 3.5vw, 3rem);
    line-height: 1;
    letter-spacing: -0.02em;
    margin: 0;
    grid-column: 2;
    align-self: center;
}
body.oliv-editorial .service-card-dek {
    grid-column: 2;
    font-size: clamp(1rem, 1.25vw, 1.15rem);
    max-width: 52ch;
    margin: 0;
}
body.oliv-editorial .service-card-cta {
    grid-column: 3;
    grid-row: span 2;
    align-self: center;
    margin: 0;
    padding: 0;
    color: var(--ed-accent-text);
    font-size: clamp(1.4rem, 2.5vw, 2.2rem);
}
body.oliv-editorial .service-card:hover .service-card-cta { transform: translateX(8px); }

/* --- IMAGE BAND: taller, chartreuse caption --- */
body.oliv-editorial .service-image-band img { height: clamp(340px, 56vh, 640px); }
body.oliv-editorial .service-image-band .band-caption { color: var(--ed-accent); font-size: clamp(2.4rem, 5vw, 4.5rem); }

/* --- APPROACH → editorial numbered rows --- */
body.oliv-editorial .approach-grid { display: block; }
body.oliv-editorial .approach-step {
    display: grid;
    grid-template-columns: clamp(3rem, 7vw, 7rem) 1fr;
    gap: clamp(1rem, 3vw, 3rem);
    text-align: left;
    padding: clamp(1.5rem, 3vw, 2.5rem) 0;
    border-top: 1px solid var(--ed-line);
}
body.oliv-editorial .approach-step::after { display: none !important; }
body.oliv-editorial .approach-step .step-num {
    font-family: var(--oliv-font-serif);
    font-style: italic;
    font-size: clamp(2.2rem, 5vw, 4rem);
    color: var(--ed-accent);
    opacity: 1;
    grid-row: span 3;
    margin: 0;
}
body.oliv-editorial .approach-step .step-label { color: var(--ed-accent-text) !important; text-align: left; }
body.oliv-editorial .approach-step .step-title { font-size: clamp(1.5rem, 2.4vw, 2.1rem); text-align: left; margin: 0.25rem 0 0.5rem; }
body.oliv-editorial .approach-step .step-body { text-align: left; max-width: 52ch; }

/* --- FAQ: oversized editorial --- */
body.oliv-editorial .faq-section .manifest-title,
body.oliv-editorial .faq-section .eyebrow-script { text-align: left !important; }
body.oliv-editorial .faq-q { font-size: clamp(1.3rem, 2.2vw, 1.9rem); }
body.oliv-editorial .faq-q::after { color: var(--ed-accent); }
body.oliv-editorial .faq-item[open] .faq-q { color: var(--ed-accent-text); }
body.oliv-editorial .faq-item[open] { border-bottom-color: var(--ed-accent); }

/* --- CONTACT CTA: oversized chartreuse --- */
body.oliv-editorial .contact-cta-section .contact-title { font-size: clamp(2.6rem, 7vw, 6rem); line-height: 0.98; }
body.oliv-editorial .contact-cta-section .eyebrow-script { color: var(--ed-accent) !important; text-align: center !important; }
body.oliv-editorial .contact-cta-section .contact-mkt-btn .wp-block-button__link {
    background: var(--ed-accent) !important;
    color: var(--ed-ink) !important;
    border-radius: 0 !important;
    font-weight: 500;
}

@media (max-width: 781px) {
    body.oliv-editorial .service-card { grid-template-columns: clamp(2.5rem,12vw,4rem) 1fr; }
    body.oliv-editorial .service-card-cta { grid-column: 2; grid-row: auto; font-size: 1.3rem; }
    body.oliv-editorial .manifest-pillar .pillar-label,
    body.oliv-editorial .approach-step .step-num { grid-row: span 1; }
}

/* === END v1.6.0 EDITORIAL MODE (prototype: page-id-57) === */

/* ================================================================
   23b. EDITORIAL MODE — mega-improvement (v1.6.1, page-id-57)
   Client review fixes: black H1 (was invisible cream-on-cream),
   more black + luxury, fixed manifest index, glassmorphism dark
   process, roomier FAQ. Chartreuse stays dominant.
   ================================================================ */

/* --- HERO: deep-black H1 + force left-align editorial --- */
body.oliv-editorial .service-hero { text-align: left !important; }
body.oliv-editorial .service-hero-inner { align-items: flex-start !important; }
body.oliv-editorial .service-hero-inner > * { text-align: left !important; }
body.oliv-editorial .service-hero .hero-h1 {
    color: var(--ed-ink) !important;
    -webkit-text-fill-color: var(--ed-ink);
}
body.oliv-editorial .service-hero .hero-eyebrow { align-self: flex-start; }

/* --- MANIFEST: roman-numeral index (I/II/III), word becomes kicker --- */
body.oliv-editorial .manifest-grid { counter-reset: olivpil; }
body.oliv-editorial .manifest-pillar {
    grid-template-columns: clamp(4rem, 9vw, 9rem) 1fr;
    counter-increment: olivpil;
    column-gap: clamp(1.5rem, 4vw, 4rem);
    padding-block: clamp(2rem, 4vw, 3.5rem);
}
body.oliv-editorial .manifest-pillar::after {
    content: counter(olivpil, upper-roman);
    grid-column: 1;
    grid-row: 1 / span 3;
    font-family: var(--oliv-font-serif);
    font-style: italic;
    font-size: clamp(2.6rem, 6vw, 5.5rem);
    line-height: 0.85;
    color: var(--ed-accent);
    align-self: start;
}
body.oliv-editorial .manifest-pillar .pillar-label {
    grid-column: 2;
    grid-row: auto;
    font-family: var(--oliv-font-sans) !important;
    font-style: normal;
    font-size: clamp(0.72rem, 0.95vw, 0.85rem);
    letter-spacing: 0.24em;
    text-transform: uppercase;
    color: var(--ed-accent-text);
    margin: 0 0 0.75rem;
}
body.oliv-editorial .manifest-pillar .pillar-title {
    grid-column: 2;
    color: var(--ed-ink);
    font-size: clamp(1.7rem, 2.8vw, 2.6rem);
    margin: 0 0 0.85rem;
}
body.oliv-editorial .manifest-pillar .pillar-body { grid-column: 2; color: var(--oliv-text-quiet); }

/* --- PROCESS: black section + glassmorphism step panels (luxury) --- */
body.oliv-editorial .approach-section {
    background: #0E0D0A !important;
    position: relative;
    overflow: hidden;
    padding-block: clamp(64px, 8vw, 120px);
}
body.oliv-editorial .approach-section::before {
    content: "";
    position: absolute;
    inset: 0;
    background:
        radial-gradient(42% 34% at 18% 16%, rgba(164, 172, 44, 0.22), transparent 62%),
        radial-gradient(46% 36% at 84% 82%, rgba(164, 172, 44, 0.14), transparent 64%),
        radial-gradient(30% 24% at 60% 50%, rgba(184, 155, 74, 0.08), transparent 70%);
    pointer-events: none;
}
body.oliv-editorial .approach-inner { position: relative; z-index: 1; }
body.oliv-editorial .approach-section .eyebrow-script { color: var(--ed-accent) !important; }
body.oliv-editorial .approach-section .approach-title { color: var(--oliv-warm-white, #F5F1E8); }
body.oliv-editorial .approach-grid { display: flex; flex-direction: column; gap: clamp(0.85rem, 1.5vw, 1.25rem); }
body.oliv-editorial .approach-section .approach-step {
    border: 1px solid rgba(164, 172, 44, 0.22);
    border-top: 1px solid rgba(164, 172, 44, 0.22);
    border-radius: 6px;
    background: rgba(255, 255, 255, 0.05);
    -webkit-backdrop-filter: blur(14px) saturate(1.3);
    backdrop-filter: blur(14px) saturate(1.3);
    padding: clamp(1.5rem, 3vw, 2.5rem) clamp(1.5rem, 3vw, 2.75rem);
    transition: background var(--oliv-dur-normal, 480ms) var(--oliv-ease-cinematic, ease), border-color var(--oliv-dur-normal, 480ms) ease;
}
body.oliv-editorial .approach-section .approach-step:hover {
    background: rgba(164, 172, 44, 0.1);
    border-color: rgba(164, 172, 44, 0.45);
}
body.oliv-editorial .approach-section .step-num { color: var(--ed-accent); opacity: 1; }
body.oliv-editorial .approach-section .step-label { color: var(--ed-accent) !important; }
body.oliv-editorial .approach-section .step-title { color: var(--oliv-warm-white, #F5F1E8); }
body.oliv-editorial .approach-section .step-body { color: rgba(245, 241, 232, 0.72); }

/* --- FAQ: generous padding + margin, luxury spacing --- */
body.oliv-editorial .faq-section { padding-block: clamp(72px, 9vw, 132px); }
body.oliv-editorial .faq-list { margin-top: clamp(2.5rem, 5vw, 4rem); }
body.oliv-editorial .faq-q {
    padding-block: clamp(1.6rem, 3vw, 2.4rem);
    padding-right: 3rem;
}
body.oliv-editorial .faq-a { padding-bottom: clamp(1.6rem, 3vw, 2.2rem); }
body.oliv-editorial .faq-a p { font-size: clamp(1.02rem, 1.25vw, 1.15rem); line-height: 1.75; }

/* --- General: richer black on titles for luxury contrast --- */
body.oliv-editorial .manifest-title,
body.oliv-editorial .approach-title,
body.oliv-editorial .service-card-title,
body.oliv-editorial .faq-q { color: var(--ed-ink); }
body.oliv-editorial .approach-section .approach-title { color: var(--oliv-warm-white, #F5F1E8); }

/* === END v1.6.1 EDITORIAL MEGA-IMPROVEMENT === */

/* ================================================================
   23c. EDITORIAL MODE — dark luxury canvas (v1.6.2, page-id-57)
   Client direction: predominantly BLACK, text white/cream, chartreuse
   as accent font, more CENTERED, clean H1-H4 hierarchy. New elements:
   marquee, editorial pull-quote, image band.
   ================================================================ */

body.oliv-editorial { background: #131210; }
body.oliv-editorial .ed-accent-bright { --ed-accent: #BFC74A; }

/* --- Black canvas: sections black EXCEPT statement (chartreuse) + the
   two white "20%" sections (manifest, project teaser) --- */
body.oliv-editorial .oliv-section:not(.scope-dark):not([data-scope="dark"]):not(.ed-statement-section):not(.manifest-section):not(.ed-projects-section) {
    background: radial-gradient(125% 85% at 50% -8%, rgba(191, 199, 74, 0.05) 0%, transparent 58%), #131210 !important;
    color: var(--oliv-warm-white, #F5F1E8);
}
body.oliv-editorial .service-image-band-section { background: #131210 !important; }

/* --- Type hierarchy on dark: headings cream, body muted, accents chartreuse --- */
body.oliv-editorial .hero-h1,
body.oliv-editorial .manifest-title,
body.oliv-editorial .approach-title,
body.oliv-editorial .pillar-title,
body.oliv-editorial .service-card-title,
body.oliv-editorial .step-title,
body.oliv-editorial .faq-q,
body.oliv-editorial .contact-title {
    color: var(--oliv-warm-white, #F5F1E8) !important;
    -webkit-text-fill-color: var(--oliv-warm-white, #F5F1E8);
}
body.oliv-editorial .pillar-body,
body.oliv-editorial .service-card-dek,
body.oliv-editorial .step-body,
body.oliv-editorial .faq-a p,
body.oliv-editorial .service-hero-sub,
body.oliv-editorial .contact-sub { color: rgba(245, 241, 232, 0.72) !important; }
body.oliv-editorial .eyebrow-script,
body.oliv-editorial .oliv-eyebrow { color: var(--ed-accent) !important; }

/* --- HERO: centered, cream H1, no left bar --- */
body.oliv-editorial .service-hero { text-align: center !important; background: #0E0D0A !important; }
body.oliv-editorial .service-hero-inner { align-items: center !important; max-width: 66rem; }
body.oliv-editorial .service-hero-inner > * { text-align: center !important; }
body.oliv-editorial .service-hero .hero-h1 { max-width: 20ch; margin-inline: auto; }
body.oliv-editorial .service-hero .hero-eyebrow { color: var(--ed-accent) !important; align-self: center; }
body.oliv-editorial .service-hero .service-hero-sub {
    border-left: none !important;
    padding-left: 0 !important;
    margin-inline: auto;
    max-width: 50ch;
}
body.oliv-editorial .service-hero .hero-ctas { justify-content: center !important; }
body.oliv-editorial .service-hero .wp-block-button__link { color: var(--oliv-warm-white, #F5F1E8) !important; }
body.oliv-editorial .service-hero .wp-block-button__link:hover { color: var(--ed-accent) !important; }

/* --- Centered section headers --- */
body.oliv-editorial .manifest-title,
body.oliv-editorial .approach-title {
    text-align: center !important;
    margin-inline: auto;
    max-width: 22ch;
}
body.oliv-editorial .eyebrow-script { text-align: center !important; }

/* --- MARQUEE (new) --- */
body.oliv-editorial .ed-marquee {
    background: #0E0D0A;
    border-block: 1px solid rgba(164, 172, 44, 0.22);
    padding-block: clamp(1rem, 2vw, 1.85rem);
    overflow: hidden;
}
body.oliv-editorial .ed-marquee span {
    font-family: var(--oliv-font-serif);
    font-style: italic;
    font-size: clamp(1.4rem, 2.8vw, 2.5rem);
    color: var(--ed-accent);
    letter-spacing: 0;
    text-transform: none;
}

/* --- MANIFEST: centered 3-col, roman numeral on top --- */
body.oliv-editorial .manifest-grid {
    display: grid !important;
    grid-template-columns: repeat(3, 1fr);
    gap: clamp(2rem, 4vw, 4.5rem);
    counter-reset: olivpil;
}
body.oliv-editorial .manifest-pillar {
    display: flex !important;
    flex-direction: column;
    align-items: center;
    text-align: center;
    border: none !important;
    padding: clamp(1rem, 2vw, 2rem) 0 !important;
    counter-increment: olivpil;
    grid-template-columns: none;
}
body.oliv-editorial .manifest-pillar::after {
    content: counter(olivpil, upper-roman);
    order: -1;
    grid-row: auto;
    grid-column: auto;
    font-family: var(--oliv-font-serif);
    font-style: italic;
    font-size: clamp(2.6rem, 4.5vw, 4.2rem);
    line-height: 1;
    color: var(--ed-accent);
    margin-bottom: clamp(1rem, 2vw, 1.5rem);
    align-self: center;
}
body.oliv-editorial .manifest-pillar .pillar-label { grid-column: auto !important; text-align: center; color: var(--ed-accent) !important; margin: 0 0 0.6rem; }
body.oliv-editorial .manifest-pillar .pillar-title { grid-column: auto !important; text-align: center; max-width: none; margin: 0 0 0.85rem; }
body.oliv-editorial .manifest-pillar .pillar-body { grid-column: auto !important; text-align: center; margin-inline: auto; max-width: 34ch; }

/* --- SERVICE INDEX on dark --- */
body.oliv-editorial .service-grid { border-top-color: rgba(164, 172, 44, 0.25); }
body.oliv-editorial .service-card { border-bottom-color: rgba(164, 172, 44, 0.18) !important; }
body.oliv-editorial .service-card:hover { background: rgba(164, 172, 44, 0.08) !important; border-color: rgba(164, 172, 44, 0.4) !important; }
body.oliv-editorial .service-card-cta { color: var(--ed-accent) !important; }

/* --- EDITORIAL PULL-QUOTE (new) --- */
body.oliv-editorial .editorial-quote-section {
    background: #0E0D0A !important;
    padding-block: clamp(80px, 11vw, 170px) !important;
    text-align: center;
    position: relative;
}
body.oliv-editorial .editorial-quote {
    max-width: 26ch;
    margin: 0 auto;
    padding-inline: var(--oliv-pad-inline, clamp(1.5rem, 5vw, 5rem));
    border: none;
}
body.oliv-editorial .editorial-quote p {
    font-family: var(--oliv-font-serif);
    font-size: clamp(2rem, 5.2vw, 4.4rem);
    line-height: 1.08;
    letter-spacing: -0.02em;
    color: var(--oliv-warm-white, #F5F1E8);
    margin: 0;
}
body.oliv-editorial .editorial-quote em { color: var(--ed-accent); font-style: italic; }
body.oliv-editorial .editorial-quote cite {
    display: block;
    margin-top: clamp(1.5rem, 3vw, 2.25rem);
    font-family: var(--oliv-font-sans);
    font-style: normal;
    text-transform: uppercase;
    letter-spacing: 0.22em;
    font-size: 0.8rem;
    color: var(--ed-accent);
}

/* --- FAQ on dark --- */
body.oliv-editorial .faq-list { border-top-color: rgba(164, 172, 44, 0.25); }
body.oliv-editorial .faq-item { border-bottom-color: rgba(164, 172, 44, 0.16); }
body.oliv-editorial .faq-q::after { color: var(--ed-accent); }
body.oliv-editorial .faq-item[open] .faq-q { color: var(--ed-accent) !important; }
body.oliv-editorial .faq-q:hover { color: var(--ed-accent); }

/* --- CONTACT CTA: chartreuse eyebrow on its own dark --- */
body.oliv-editorial .contact-cta-section .eyebrow-script { color: var(--ed-accent) !important; }

@media (max-width: 781px) {
    body.oliv-editorial .manifest-grid { grid-template-columns: 1fr; gap: clamp(1.5rem, 6vw, 3rem); }
}

/* === END v1.6.2 EDITORIAL DARK CANVAS === */

/* ================================================================
   23d. EDITORIAL MODE — client review fixes #2 (v1.6.3, page-id-57)
   1) H1 cream (was invisible dark-on-black, specificity fix)
   2) pull-quote width (ch→rem, was collapsing per-character)
   3) image band darker/moodier (overlay + filter)
   4) FAQ header centered (was left)
   5) breadcrumb cleaned (kill double separator) + dark styling
   ================================================================ */

/* 1 — HERO H1 visible cream (override §23b ink, equal specificity, later wins) */
body.oliv-editorial .service-hero .hero-h1 {
    color: var(--oliv-warm-white, #F5F1E8) !important;
    -webkit-text-fill-color: var(--oliv-warm-white, #F5F1E8) !important;
}

/* 2 — PULL-QUOTE: rem-based width so the huge <p> font fits (no per-char break) */
body.oliv-editorial .editorial-quote {
    max-width: min(90vw, 52rem) !important;
    width: 100%;
    margin-inline: auto !important;
}
body.oliv-editorial .editorial-quote p {
    max-width: none !important;
    overflow-wrap: normal;
    word-break: normal;
}

/* 3 — IMAGE BAND: darken bright photo to sit on the dark canvas */
body.oliv-editorial .service-image-band img {
    filter: saturate(0.9) brightness(0.8) contrast(1.05);
}
body.oliv-editorial .service-image-band::after {
    background: linear-gradient(180deg,
        rgba(14, 13, 10, 0.55) 0%,
        rgba(14, 13, 10, 0.15) 32%,
        rgba(14, 13, 10, 0.25) 68%,
        rgba(14, 13, 10, 0.72) 100%) !important;
}

/* 4 — FAQ header centered (consistent with other sections) */
body.oliv-editorial .faq-section .manifest-title,
body.oliv-editorial .faq-section .eyebrow-script {
    text-align: center !important;
    margin-inline: auto;
}

/* 5 — BREADCRUMB: kill the redundant dash, clean dark styling */
body.oliv-editorial .rank-math-breadcrumb .last::before { display: none !important; }
body.oliv-editorial .rank-math-breadcrumb {
    text-transform: uppercase;
    letter-spacing: 0.18em;
}
body.oliv-editorial .rank-math-breadcrumb a { color: rgba(245, 241, 232, 0.55); }
body.oliv-editorial .rank-math-breadcrumb a:hover { color: var(--ed-accent); }
body.oliv-editorial .rank-math-breadcrumb .separator { color: var(--ed-accent); opacity: 0.7; }
body.oliv-editorial .rank-math-breadcrumb .last { color: var(--ed-accent); font-weight: 500; }

/* === END v1.6.3 EDITORIAL FIXES #2 === */

/* ================================================================
   23e. EDITORIAL MODE — experiential index + dramatic principles
   (v1.6.4, page-id-57). Hover-reveal images, mono archive tags,
   number watermark, title underline draw, grain on principles.
   ================================================================ */

/* --- Service index: explicit grid with tag row + relative for image --- */
body.oliv-editorial .service-card {
    grid-template-columns: clamp(3rem, 7vw, 7rem) 1fr auto;
    position: relative;
    overflow: hidden;
    padding-right: clamp(1rem, 3vw, 3rem);
}
body.oliv-editorial .service-card-num { grid-column: 1; grid-row: 1 / span 3; transform-origin: left center; transition: transform .55s cubic-bezier(.2,.7,.2,1); }
body.oliv-editorial .service-card-tag { grid-column: 2; grid-row: 1; }
body.oliv-editorial .service-card-title { grid-column: 2; grid-row: 2; position: relative; }
body.oliv-editorial .service-card-dek { grid-column: 2; grid-row: 3; }
body.oliv-editorial .service-card-cta { grid-column: 3; grid-row: 1 / span 3; align-self: center; }

/* Mono archive tag with trailing rule */
body.oliv-editorial .service-card-tag {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    font-family: ui-monospace, "SF Mono", "Cascadia Code", "Roboto Mono", monospace;
    font-size: clamp(0.62rem, 0.8vw, 0.74rem);
    letter-spacing: 0.22em;
    text-transform: uppercase;
    color: var(--ed-accent);
    margin: 0 0 0.5rem;
}
body.oliv-editorial .service-card-tag::after {
    content: "";
    height: 1px;
    width: clamp(2rem, 6vw, 7rem);
    background: rgba(164, 172, 44, 0.32);
}

/* Hover-reveal editorial image */
body.oliv-editorial .service-card-img {
    position: absolute;
    right: clamp(6.5rem, 15vw, 15rem);
    top: 50%;
    width: clamp(150px, 16vw, 230px);
    height: clamp(150px, 15vw, 210px);
    background-size: cover;
    background-position: center;
    border-radius: 4px;
    opacity: 0;
    pointer-events: none;
    transform: translateY(-50%) scale(0.94);
    clip-path: inset(0 0 100% 0);
    filter: saturate(0.92) brightness(0.82);
    transition: opacity .5s ease, transform .6s cubic-bezier(.2,.7,.2,1), clip-path .6s cubic-bezier(.2,.7,.2,1);
    z-index: 2;
}
body.oliv-editorial .service-card:hover .service-card-img,
body.oliv-editorial .service-card:focus-visible .service-card-img {
    opacity: 1;
    transform: translateY(-50%) scale(1);
    clip-path: inset(0 0 0 0);
}
/* Number watermark grows on hover */
body.oliv-editorial .service-card:hover .service-card-num,
body.oliv-editorial .service-card:focus-visible .service-card-num { transform: scale(1.22); }
/* Title underline draws on hover */
body.oliv-editorial .service-card-title::after {
    content: "";
    position: absolute;
    left: 0; bottom: -0.4rem;
    height: 2px; width: 100%;
    background: var(--ed-accent);
    transform: scaleX(0);
    transform-origin: left;
    transition: transform .55s cubic-bezier(.2,.7,.2,1);
}
body.oliv-editorial .service-card:hover .service-card-title::after,
body.oliv-editorial .service-card:focus-visible .service-card-title::after { transform: scaleX(1); }

/* --- Principles: dramatic numerals + film grain + depth --- */
body.oliv-editorial .manifest-section {
    position: relative;
    background:
        radial-gradient(70% 55% at 50% 38%, rgba(164, 172, 44, 0.05), transparent 72%),
        #0E0D0A !important;
}
body.oliv-editorial .manifest-section::before {
    content: "";
    position: absolute;
    inset: 0;
    pointer-events: none;
    z-index: 0;
    opacity: 0.5;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.06'/%3E%3C/svg%3E");
}
body.oliv-editorial .manifest-section .manifest-inner { position: relative; z-index: 1; }
body.oliv-editorial .manifest-pillar::after {
    font-size: clamp(3rem, 6.5vw, 6rem);
    opacity: 0.92;
}

@media (max-width: 781px) {
    body.oliv-editorial .service-card { grid-template-columns: clamp(2.5rem, 12vw, 4rem) 1fr; overflow: visible; }
    body.oliv-editorial .service-card-img { display: none; }
    body.oliv-editorial .service-card-cta { grid-column: 2; grid-row: auto; }
    body.oliv-editorial .service-card-tag,
    body.oliv-editorial .service-card-title,
    body.oliv-editorial .service-card-dek { grid-column: 2; }
}

/* === END v1.6.4 EXPERIENTIAL INDEX === */

/* ================================================================
   23f. GODMODE LAYER (v1.6.6, page-id-57) — filmic grain, duotone
   imagery, full-chartreuse statement, custom cursor, preloader,
   kinetic marquee, mobile glass index (touch-friendly, no hover).
   ================================================================ */

/* --- Filmic grain over the whole page --- */
body.oliv-editorial::after {
    content: "";
    position: fixed;
    inset: 0;
    z-index: 9998;
    pointer-events: none;
    opacity: 0.045;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='g'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.8' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23g)'/%3E%3C/svg%3E");
    mix-blend-mode: overlay;
}

/* --- Duotone imagery (black→chartreuse), full colour on hover --- */
body.oliv-editorial .service-image-band { position: relative; }
body.oliv-editorial .service-image-band img { filter: grayscale(0.85) brightness(0.78) contrast(1.08); transition: filter .6s ease; }
body.oliv-editorial .service-image-band::before {
    content: "";
    position: absolute; inset: 0; z-index: 1;
    background: var(--ed-accent);
    mix-blend-mode: color;
    opacity: 0.32;
    pointer-events: none;
    transition: opacity .6s ease;
}
body.oliv-editorial .service-image-band:hover img { filter: grayscale(0) brightness(0.92) contrast(1.02); }
body.oliv-editorial .service-image-band:hover::before { opacity: 0; }
/* hover-reveal thumbnails: duotone too */
body.oliv-editorial .service-card-img { filter: grayscale(0.9) brightness(0.8) contrast(1.08); }

/* --- Full-chartreuse STATEMENT section --- */
body.oliv-editorial .ed-statement-section {
    background: var(--ed-accent) !important;
    color: #0E0D0A;
    padding-block: clamp(80px, 12vw, 180px) !important;
    text-align: center;
    position: relative;
    overflow: hidden;
}
body.oliv-editorial .ed-statement {
    font-family: var(--oliv-font-serif);
    font-size: clamp(2.4rem, 7vw, 6rem);
    line-height: 0.98;
    letter-spacing: -0.025em;
    color: #0E0D0A;
    max-width: 16ch;
    margin: 0 auto;
    padding-inline: var(--oliv-pad-inline, clamp(1.5rem, 5vw, 5rem));
}
body.oliv-editorial .ed-statement-accent { font-style: italic; }

/* --- Custom cursor (desktop only; native cursor hidden) --- */
body.oliv-editorial.oliv-has-cursor,
body.oliv-editorial.oliv-has-cursor a,
body.oliv-editorial.oliv-has-cursor button,
body.oliv-editorial.oliv-has-cursor summary { cursor: none; }
.oliv-cursor-dot, .oliv-cursor-ring, .oliv-cursor-label {
    position: fixed; top: 0; left: 0; z-index: 10000; pointer-events: none;
    will-change: transform;
}
.oliv-cursor-dot {
    width: 7px; height: 7px; margin: -3.5px 0 0 -3.5px;
    background: var(--ed-accent, #A4AC2C); border-radius: 50%;
}
.oliv-cursor-ring {
    width: 36px; height: 36px; margin: -18px 0 0 -18px;
    border: 1px solid rgba(164, 172, 44, 0.6); border-radius: 50%;
    transition: width .3s ease, height .3s ease, margin .3s ease, background-color .3s ease, border-color .3s ease;
}
body.oliv-cursor-hover .oliv-cursor-ring { width: 54px; height: 54px; margin: -27px 0 0 -27px; border-color: rgba(164,172,44,0.9); }
body.oliv-cursor-active .oliv-cursor-ring { width: 0; height: 0; opacity: 0; }
.oliv-cursor-label {
    margin: -14px 0 0 22px;
    font-family: var(--oliv-font-sans); font-size: 0.72rem; letter-spacing: 0.18em; text-transform: uppercase;
    color: #0E0D0A; background: var(--ed-accent, #A4AC2C);
    padding: 0.5rem 0.85rem; border-radius: 2px; white-space: nowrap;
    opacity: 0; transform-origin: left center; transition: opacity .25s ease;
}
body.oliv-cursor-active .oliv-cursor-label { opacity: 1; }

/* --- Preloader --- */
.oliv-preloader {
    position: fixed; inset: 0; z-index: 10001;
    background: #0E0D0A; display: flex; align-items: center; justify-content: center;
    transition: opacity .8s ease; opacity: 1;
}
.oliv-preloader.is-done { opacity: 0; pointer-events: none; }
.oliv-preloader-mark {
    font-family: var(--oliv-font-serif); font-style: italic;
    font-size: clamp(2.5rem, 6vw, 4.5rem); color: var(--oliv-warm-white, #F5F1E8);
    letter-spacing: 0.02em; position: relative; padding-bottom: 1rem;
}
.oliv-preloader-line {
    position: absolute; left: 0; bottom: 0; height: 2px; width: 100%;
    background: var(--ed-accent, #A4AC2C); transform: scaleX(0); transform-origin: left;
    animation: oliv-pl-line 1.2s cubic-bezier(.7,0,.3,1) forwards;
}
@keyframes oliv-pl-line { to { transform: scaleX(1); } }

/* --- Kinetic marquee: hand control to JS --- */
body.oliv-editorial .ed-marquee .oliv-marquee-track { animation: none !important; }

/* --- MOBILE: glass index cards with VISIBLE duotone images + movement --- */
@media (max-width: 781px) {
    body.oliv-editorial .service-grid { border-top: none; display: flex; flex-direction: column; gap: 1.25rem; }
    body.oliv-editorial .service-card {
        display: flex !important;
        flex-direction: column;
        border: 1px solid rgba(164, 172, 44, 0.22) !important;
        border-radius: 10px;
        background: rgba(255, 255, 255, 0.045) !important;
        -webkit-backdrop-filter: blur(14px) saturate(1.3);
        backdrop-filter: blur(14px) saturate(1.3);
        padding: 0 !important;
        overflow: hidden;
        position: relative;
    }
    body.oliv-editorial .service-card:hover { background: rgba(164,172,44,0.1) !important; }
    /* image visible on top */
    body.oliv-editorial .service-card-img {
        display: block !important;
        order: -1;
        position: relative !important;
        right: auto; top: auto;
        width: 100% !important; height: 180px !important;
        opacity: 1 !important;
        transform: none !important;
        clip-path: none !important;
        border-radius: 0 !important;
        filter: grayscale(0.85) brightness(0.78) contrast(1.08);
    }
    body.oliv-editorial .service-card-img::after {
        content: ""; position: absolute; inset: 0;
        background: var(--ed-accent); mix-blend-mode: color; opacity: 0.3;
    }
    /* number as overlay on image */
    body.oliv-editorial .service-card-num {
        position: absolute !important;
        top: 0.6rem; left: 1rem;
        transform: none !important;
        font-size: 2.4rem; z-index: 2;
        text-shadow: 0 2px 16px rgba(0,0,0,0.6);
    }
    body.oliv-editorial .service-card-tag { padding: 1.1rem 1.25rem 0; }
    body.oliv-editorial .service-card-title { padding: 0 1.25rem; font-size: clamp(1.5rem, 6vw, 2rem); }
    body.oliv-editorial .service-card-dek { padding: 0.5rem 1.25rem 0; }
    body.oliv-editorial .service-card-cta { padding: 0.85rem 1.25rem 1.35rem; }
    body.oliv-editorial .service-card-title::after { display: none; }
    /* hide custom cursor bits on touch (safety) */
    .oliv-cursor-dot, .oliv-cursor-ring, .oliv-cursor-label { display: none; }
}

/* === END v1.6.6 GODMODE LAYER === */

/* ================================================================
   23g. MOBILE FIX (v1.6.7, page-id-57) — process steps stack
   cleanly (title was breaking into a narrow column).
   ================================================================ */
@media (max-width: 781px) {
    body.oliv-editorial .approach-section .approach-grid { gap: 1rem; }
    body.oliv-editorial .approach-section .approach-step {
        grid-template-columns: 1fr !important;
        row-gap: 0.4rem;
        padding: clamp(1.4rem, 5vw, 2rem) clamp(1.25rem, 5vw, 1.75rem);
    }
    body.oliv-editorial .approach-section .approach-step .step-num,
    body.oliv-editorial .approach-section .approach-step .step-label,
    body.oliv-editorial .approach-section .approach-step .step-title,
    body.oliv-editorial .approach-section .approach-step .step-body {
        grid-column: 1 !important;
        grid-row: auto !important;
        text-align: left;
        max-width: none;
    }
    body.oliv-editorial .approach-section .approach-step .step-num { font-size: clamp(2rem, 9vw, 3rem); margin-bottom: 0.15rem; }
    body.oliv-editorial .approach-section .approach-step .step-title { font-size: clamp(1.4rem, 6vw, 1.9rem); margin: 0.2rem 0 0.4rem; }
}

/* === END v1.6.7 MOBILE PROCESS FIX === */

/* ================================================================
   23h. GODMODE+ (v1.6.8, page-id-57) — stats band, scroll progress,
   dot-nav, section mask wipe, tablet-touch index, 3D reveal image.
   ================================================================ */

/* --- Stats band with count-up --- */
body.oliv-editorial .ed-stats-section { padding-block: clamp(56px, 7vw, 100px) !important; }
body.oliv-editorial .ed-stats {
    max-width: 82rem;
    margin-inline: auto;
    padding-inline: var(--oliv-pad-inline, clamp(1.5rem, 5vw, 5rem));
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: clamp(1.5rem, 4vw, 3rem);
}
body.oliv-editorial .ed-stat {
    text-align: center;
    position: relative;
    padding-inline: clamp(0.5rem, 1.5vw, 1.5rem);
}
body.oliv-editorial .ed-stat + .ed-stat::before {
    content: "";
    position: absolute;
    left: 0; top: 12%; bottom: 12%;
    width: 1px;
    background: rgba(164, 172, 44, 0.25);
}
body.oliv-editorial .ed-stat-num {
    display: block;
    font-family: var(--oliv-font-serif);
    font-style: italic;
    font-size: clamp(2.4rem, 5vw, 4rem);
    line-height: 1;
    color: var(--ed-accent);
    margin-bottom: 0.6rem;
}
body.oliv-editorial .ed-stat-label {
    font-family: var(--oliv-font-sans);
    font-size: clamp(0.78rem, 1vw, 0.92rem);
    letter-spacing: 0.04em;
    color: rgba(245, 241, 232, 0.7);
}

/* --- Scroll progress bar --- */
.oliv-progress {
    position: fixed; top: 0; left: 0; z-index: 10002;
    height: 3px; width: 100%;
    background: var(--ed-accent, #A4AC2C);
    transform: scaleX(0); transform-origin: left;
    pointer-events: none;
}

/* --- Side dot-nav --- */
.oliv-dotnav {
    position: fixed; right: clamp(14px, 2vw, 28px); top: 50%;
    transform: translateY(-50%);
    z-index: 9997;
    display: flex; flex-direction: column; gap: 14px;
    align-items: flex-end;
}
.oliv-dot {
    width: 9px; height: 9px; border-radius: 50%;
    border: 1px solid rgba(164, 172, 44, 0.5);
    background: transparent;
    position: relative;
    transition: background-color .3s ease, border-color .3s ease, transform .3s ease;
}
.oliv-dot.is-active { background: var(--ed-accent); border-color: var(--ed-accent); transform: scale(1.25); }
.oliv-dot-label {
    position: absolute; right: 20px; top: 50%; transform: translateY(-50%);
    font-family: var(--oliv-font-sans); font-size: 0.66rem; letter-spacing: 0.16em; text-transform: uppercase;
    color: var(--oliv-warm-white, #F5F1E8); white-space: nowrap;
    opacity: 0; pointer-events: none; transition: opacity .25s ease;
}
.oliv-dot:hover .oliv-dot-label { opacity: 0.9; }
@media (max-width: 921px) { .oliv-dotnav { display: none; } }

/* --- Section mask wipe (chartreuse) --- */
body.oliv-editorial .ed-mask { position: relative; }
body.oliv-editorial .ed-mask::after {
    content: ""; position: absolute; inset: 0; z-index: 6;
    background: var(--ed-accent);
    transform-origin: bottom; transform: scaleY(1);
    transition: transform 1s cubic-bezier(.76, 0, .24, 1);
    pointer-events: none;
}
body.oliv-editorial .ed-mask.is-revealed::after { transform: scaleY(0); }

/* --- 3D depth on hover-reveal thumbnail (desktop) --- */
@media (hover: hover) and (pointer: fine) {
    body.oliv-editorial .service-card-img { transform: translateY(-50%) scale(0.94) perspective(700px) rotateY(-9deg); }
    body.oliv-editorial .service-card:hover .service-card-img,
    body.oliv-editorial .service-card:focus-visible .service-card-img { transform: translateY(-50%) scale(1) perspective(700px) rotateY(0deg); }
}

/* --- TABLET (touch, wide): visible glass index cards like mobile --- */
@media (hover: none) and (min-width: 782px) {
    body.oliv-editorial .service-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1.5rem; border-top: none; }
    body.oliv-editorial .service-card {
        display: flex !important; flex-direction: column;
        border: 1px solid rgba(164, 172, 44, 0.22) !important; border-radius: 10px;
        background: rgba(255, 255, 255, 0.045) !important;
        -webkit-backdrop-filter: blur(14px) saturate(1.3); backdrop-filter: blur(14px) saturate(1.3);
        padding: 0 !important; overflow: hidden; position: relative;
    }
    body.oliv-editorial .service-card-img {
        display: block !important; order: -1; position: relative !important;
        right: auto; top: auto; width: 100% !important; height: 200px !important;
        opacity: 1 !important; transform: none !important; clip-path: none !important; border-radius: 0 !important;
        filter: grayscale(0.85) brightness(0.78) contrast(1.08);
    }
    body.oliv-editorial .service-card-img::after { content: ""; position: absolute; inset: 0; background: var(--ed-accent); mix-blend-mode: color; opacity: 0.3; }
    body.oliv-editorial .service-card-num { position: absolute !important; top: 0.6rem; left: 1rem; transform: none !important; font-size: 2.4rem; z-index: 2; text-shadow: 0 2px 16px rgba(0,0,0,0.6); }
    body.oliv-editorial .service-card-tag { padding: 1.1rem 1.25rem 0; }
    body.oliv-editorial .service-card-title { padding: 0 1.25rem; }
    body.oliv-editorial .service-card-title::after { display: none; }
    body.oliv-editorial .service-card-dek { padding: 0.5rem 1.25rem 0; }
    body.oliv-editorial .service-card-cta { padding: 0.85rem 1.25rem 1.35rem; }
}

/* --- Stats responsive --- */
@media (max-width: 781px) {
    body.oliv-editorial .ed-stats { grid-template-columns: repeat(2, 1fr); gap: clamp(2rem, 6vw, 3rem) 1rem; }
    body.oliv-editorial .ed-stat:nth-child(odd)::before { display: none; }
    body.oliv-editorial .ed-stat:nth-child(3)::before,
    body.oliv-editorial .ed-stat:nth-child(4)::before { top: -1rem; }
}

/* === END v1.6.8 GODMODE+ === */

/* ================================================================
   23i. EDITORIAL HEADER/FOOTER + hero living bg + h-scroll + project
   teaser (v1.6.9, page-id-57). Header/footer scoped to this page so
   the rest of the (still cream) site is untouched.
   ================================================================ */

/* --- HEADER: SOLID editorial dark (was transparent; the is-scrolled JS
   hook proved unreliable and the sticky transparent bar floated over
   content on scroll — user call: solid, consistent with the mobile bar) --- */
body.oliv-editorial .site-header,
body.oliv-editorial .ast-primary-header-bar,
body.oliv-editorial .main-header-bar,
body.oliv-editorial .ast-main-header-wrap,
body.oliv-editorial #ast-mobile-header .ast-primary-header-bar {
    background: #131210 !important;
    border-bottom: 1px solid rgba(164, 172, 44, 0.16) !important;
}
body.oliv-editorial .site-header.is-scrolled {
    background: #131210 !important;
    box-shadow: 0 1px 0 rgba(191, 199, 74, 0.10);
}
body.oliv-editorial .site-title a,
body.oliv-editorial .ast-site-title a { color: var(--oliv-warm-white, #F5F1E8) !important; }
body.oliv-editorial .site-title a::after,
body.oliv-editorial .ast-site-title a::after { color: var(--ed-accent) !important; }
body.oliv-editorial .main-header-menu .menu-item > a,
body.oliv-editorial .main-navigation .menu-item > a,
body.oliv-editorial .ast-builder-menu .menu-item > a {
    color: rgba(245, 241, 232, 0.82) !important;
}
body.oliv-editorial .main-header-menu .menu-item > a:hover,
body.oliv-editorial .ast-builder-menu .menu-item > a:hover { color: var(--ed-accent) !important; }
/* nav underline accent → chartreuse */
body.oliv-editorial .main-header-menu .menu-item > a::after { background: var(--ed-accent) !important; }
/* mobile burger → cream */
body.oliv-editorial .ast-mobile-header-wrap .menu-toggle,
body.oliv-editorial .menu-toggle .ast-icon,
body.oliv-editorial .ast-button-wrap .menu-toggle { color: var(--oliv-warm-white, #F5F1E8) !important; }
body.oliv-editorial .menu-toggle svg { fill: var(--oliv-warm-white, #F5F1E8) !important; }

/* --- FOOTER: dark editorial masthead --- */
body.oliv-editorial .site-footer {
    background: #0E0D0A !important;
    border-top: 1px solid rgba(164, 172, 44, 0.18);
}
body.oliv-editorial .oliv-wordmark-footer {
    color: var(--oliv-warm-white, #F5F1E8) !important;
    font-size: clamp(4rem, 16vw, 13rem) !important;
    line-height: 0.86 !important;
}
body.oliv-editorial .oliv-tagline-footer { color: var(--ed-accent) !important; }
body.oliv-editorial .site-footer,
body.oliv-editorial .site-footer p,
body.oliv-editorial .site-footer .ast-footer-copyright,
body.oliv-editorial .site-footer span { color: rgba(245, 241, 232, 0.6) !important; }
body.oliv-editorial .site-footer a { color: rgba(245, 241, 232, 0.78) !important; text-decoration: none; }
body.oliv-editorial .site-footer a:hover { color: var(--ed-accent) !important; }
body.oliv-editorial .site-footer h2,
body.oliv-editorial .site-footer h3,
body.oliv-editorial .site-footer .widget-title { color: var(--oliv-warm-white, #F5F1E8) !important; }
body.oliv-editorial .site-below-footer-wrap,
body.oliv-editorial .site-primary-footer-wrap { border-top: 1px solid rgba(164, 172, 44, 0.12) !important; }

/* --- HERO: living animated background --- */
body.oliv-editorial .service-hero { position: relative; }
body.oliv-editorial .service-hero::after {
    content: "";
    position: absolute; inset: -10%;
    z-index: 0; pointer-events: none;
    background:
        radial-gradient(38% 46% at 28% 32%, rgba(164, 172, 44, 0.14), transparent 60%),
        radial-gradient(42% 50% at 74% 68%, rgba(164, 172, 44, 0.09), transparent 62%),
        radial-gradient(30% 36% at 55% 50%, rgba(184, 155, 74, 0.06), transparent 70%);
    animation: oliv-hero-drift 20s ease-in-out infinite alternate;
}
@keyframes oliv-hero-drift {
    0%   { transform: translate(0, 0) scale(1); }
    100% { transform: translate(3.5%, -3%) scale(1.12); }
}
body.oliv-editorial .service-hero-inner { position: relative; z-index: 1; }
@media (prefers-reduced-motion: reduce) {
    body.oliv-editorial .service-hero::after { animation: none; }
}

/* --- HORIZONTAL-SCROLL atmosphere strip --- */
body.oliv-editorial .ed-hscroll-section { padding-block: clamp(56px, 8vw, 110px) !important; overflow: hidden; }
body.oliv-editorial .ed-hscroll-head {
    max-width: 82rem; margin: 0 auto clamp(2rem, 4vw, 3rem);
    padding-inline: var(--oliv-pad-inline, clamp(1.5rem, 5vw, 5rem));
    text-align: center;
}
body.oliv-editorial .ed-hscroll {
    display: flex;
    gap: clamp(12px, 1.5vw, 22px);
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    padding-inline: clamp(1.5rem, 5vw, 5rem);
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
    cursor: grab;
}
body.oliv-editorial .ed-hscroll::-webkit-scrollbar { display: none; }
body.oliv-editorial .ed-hscroll.is-dragging { cursor: grabbing; scroll-snap-type: none; }
body.oliv-editorial .ed-hslide {
    flex: 0 0 auto;
    width: clamp(240px, 38vw, 440px);
    aspect-ratio: 4 / 5;
    margin: 0;
    scroll-snap-align: center;
    overflow: hidden;
    border-radius: 4px;
}
body.oliv-editorial .ed-hslide img {
    width: 100%; height: 100%; object-fit: cover;
    filter: grayscale(0.85) brightness(0.8) contrast(1.08);
    transition: filter .6s ease, transform .8s cubic-bezier(.2,.7,.2,1);
}
body.oliv-editorial .ed-hslide:hover img { filter: grayscale(0) brightness(0.95); transform: scale(1.04); }

/* --- PROJECT TEASER --- */
body.oliv-editorial .ed-projects-inner {
    max-width: 82rem; margin-inline: auto;
    padding-inline: var(--oliv-pad-inline, clamp(1.5rem, 5vw, 5rem));
    text-align: center;
}
body.oliv-editorial .ed-projects {
    display: grid; grid-template-columns: repeat(2, 1fr);
    gap: clamp(1.5rem, 3vw, 3rem);
    margin: clamp(2rem, 4vw, 3.5rem) 0 clamp(2rem, 3vw, 2.5rem);
}
body.oliv-editorial .ed-project { display: block; text-decoration: none; color: inherit; text-align: left; }
body.oliv-editorial .ed-project-img {
    display: block; width: 100%; aspect-ratio: 4 / 3;
    background-size: cover; background-position: center;
    border-radius: 4px; overflow: hidden;
    filter: grayscale(0.85) brightness(0.8) contrast(1.08);
    transition: filter .6s ease, transform .7s cubic-bezier(.2,.7,.2,1);
}
body.oliv-editorial .ed-project:hover .ed-project-img { filter: grayscale(0) brightness(0.95); transform: scale(1.02); }
body.oliv-editorial .ed-project-meta { display: flex; justify-content: space-between; align-items: baseline; margin-top: 1rem; gap: 1rem; }
body.oliv-editorial .ed-project-title {
    font-family: var(--oliv-font-serif); font-size: clamp(1.25rem, 2vw, 1.75rem);
    color: var(--oliv-warm-white, #F5F1E8); line-height: 1.15;
}
body.oliv-editorial .ed-project-year {
    font-family: ui-monospace, "SF Mono", "Roboto Mono", monospace;
    font-size: 0.85rem; color: var(--ed-accent); letter-spacing: 0.1em;
}
body.oliv-editorial .ed-projects-all {
    display: inline-block;
    font-family: var(--oliv-font-sans); font-size: 0.9rem; letter-spacing: 0.04em;
    color: var(--oliv-warm-white, #F5F1E8); text-decoration: none;
    border-bottom: 2px solid var(--ed-accent); padding-bottom: 0.35rem;
    transition: color .25s ease;
}
body.oliv-editorial .ed-projects-all:hover { color: var(--ed-accent); }

@media (max-width: 781px) {
    body.oliv-editorial .ed-projects { grid-template-columns: 1fr; }
    body.oliv-editorial .oliv-wordmark-footer { font-size: clamp(3.5rem, 22vw, 7rem) !important; }
}

/* === END v1.6.9 EDITORIAL HEADER/FOOTER + SECTIONS === */

/* ================================================================
   23j. CRAFT & FINISH PASS (v1.7.0, page-id-57) — micro-typography,
   accessibility, rhythm, performance. The "intentional, not busy"
   layer that separates a studio page from a demo reel.
   ================================================================ */

/* --- Micro-typography --- */
body.oliv-editorial { text-rendering: optimizeLegibility; -webkit-font-smoothing: antialiased; }
/* Balanced headline line-breaks — no orphan words */
body.oliv-editorial .hero-h1,
body.oliv-editorial .manifest-title,
body.oliv-editorial .approach-title,
body.oliv-editorial .ed-statement,
body.oliv-editorial .contact-title,
body.oliv-editorial .ed-project-title,
body.oliv-editorial .pillar-title,
body.oliv-editorial .service-card-title,
body.oliv-editorial .step-title,
body.oliv-editorial .editorial-quote p { text-wrap: balance; }
/* Prettier paragraph rag — no orphan last lines */
body.oliv-editorial .service-hero-sub,
body.oliv-editorial .pillar-body,
body.oliv-editorial .service-card-dek,
body.oliv-editorial .step-body,
body.oliv-editorial .faq-a p,
body.oliv-editorial .contact-sub,
body.oliv-editorial .service-para,
body.oliv-editorial .service-lead { text-wrap: pretty; }
/* Fraunces optical sizing for display serif */
body.oliv-editorial .hero-h1,
body.oliv-editorial .manifest-title,
body.oliv-editorial .approach-title,
body.oliv-editorial .ed-statement,
body.oliv-editorial .contact-title,
body.oliv-editorial .pillar-title,
body.oliv-editorial .service-card-title,
body.oliv-editorial .editorial-quote p,
body.oliv-editorial .oliv-wordmark-footer { font-optical-sizing: auto; }
/* Lining figures on numerals */
body.oliv-editorial .service-card-num,
body.oliv-editorial .step-num,
body.oliv-editorial .ed-stat-num,
body.oliv-editorial .ed-project-year,
body.oliv-editorial .manifest-pillar::after { font-variant-numeric: lining-nums; }

/* --- Accessibility: visible focus (works even with cursor: none) --- */
body.oliv-editorial a:focus-visible,
body.oliv-editorial button:focus-visible,
body.oliv-editorial summary:focus-visible,
body.oliv-editorial .service-card:focus-visible,
body.oliv-editorial .oliv-dot:focus-visible {
    outline: 2px solid var(--ed-accent) !important;
    outline-offset: 4px;
    border-radius: 2px;
}
/* Keyboard users always get a real cursor on focus (cursor:none guard) */
body.oliv-editorial.oliv-has-cursor:focus-within { cursor: auto; }

/* --- Rhythm: anchored sections clear the sticky header --- */
body.oliv-editorial #hero,
body.oliv-editorial #manifest,
body.oliv-editorial #servicii,
body.oliv-editorial #approach,
body.oliv-editorial #faq,
body.oliv-editorial #contact-cta { scroll-margin-top: clamp(70px, 9vh, 110px); }

/* --- Performance: composite-friendly hints, trim heavy blur on mobile --- */
.oliv-cursor-ring, .oliv-cursor-dot { will-change: transform; }
@media (max-width: 781px) {
    /* lighter glass on phones to keep scroll smooth */
    body.oliv-editorial .service-card,
    body.oliv-editorial .approach-section .approach-step {
        -webkit-backdrop-filter: blur(9px) saturate(1.2);
        backdrop-filter: blur(9px) saturate(1.2);
    }
}
@media (prefers-reduced-motion: reduce) {
    body.oliv-editorial .ed-marquee .oliv-marquee-track { transform: none !important; }
    .oliv-progress { display: none; }
}

/* === END v1.7.0 CRAFT & FINISH === */

/* ================================================================
   23k. SERVICE INDEX HOVER — rethought (v1.7.1, page-id-57).
   Desktop only (@media hover:hover): the image fills the WHOLE row
   as a darkened duotone backdrop, wiping in from the left, text on
   top — no overlap with the CTA. Mobile/tablet untouched.
   ================================================================ */
@media (hover: hover) and (pointer: fine) {
    /* overflow:visible so the italic numeral's left bearing isn't clipped;
       the hover image is inset:0 so it stays card-bounded regardless. */
    body.oliv-editorial .service-card { isolation: isolate; overflow: visible; }
    body.oliv-editorial .service-card:hover .service-card-num,
    body.oliv-editorial .service-card:focus-visible .service-card-num { transform: scale(1.1); }
    /* full-cover backdrop (overrides the floating-thumbnail concept) */
    body.oliv-editorial .service-card-img {
        position: absolute;
        inset: 0;
        right: auto; top: auto;
        width: 100%; height: 100%;
        background-size: cover; background-position: center;
        border-radius: 0;
        opacity: 0;
        clip-path: inset(0 100% 0 0);
        transform: none;
        filter: grayscale(0.8) brightness(0.78) contrast(1.05);
        transition: opacity .4s ease, clip-path .7s cubic-bezier(.2, .7, .2, 1);
        z-index: 0;
    }
    /* light, even scrim — image stays clearly visible, text stays readable */
    body.oliv-editorial .service-card-img::after {
        content: "";
        position: absolute; inset: 0;
        background: linear-gradient(90deg, rgba(14, 13, 10, 0.68) 0%, rgba(14, 13, 10, 0.3) 55%, rgba(14, 13, 10, 0.4) 100%);
    }
    body.oliv-editorial .service-card:hover .service-card-img,
    body.oliv-editorial .service-card:focus-visible .service-card-img {
        opacity: 1;
        transform: none;
        clip-path: inset(0 0 0 0);
    }
    /* keep text above the backdrop */
    body.oliv-editorial .service-card-tag,
    body.oliv-editorial .service-card-num,
    body.oliv-editorial .service-card-title,
    body.oliv-editorial .service-card-dek,
    body.oliv-editorial .service-card-cta { position: relative; z-index: 1; }
    /* text-shadow on hover so it floats legibly over the now-visible image */
    body.oliv-editorial .service-card:hover .service-card-tag,
    body.oliv-editorial .service-card:hover .service-card-title,
    body.oliv-editorial .service-card:hover .service-card-dek,
    body.oliv-editorial .service-card:hover .service-card-cta,
    body.oliv-editorial .service-card:focus-visible .service-card-title,
    body.oliv-editorial .service-card:focus-visible .service-card-dek {
        text-shadow: 0 1px 14px rgba(0, 0, 0, 0.92), 0 0 4px rgba(0, 0, 0, 0.55);
    }
    /* the image IS the hover surface now — drop the flat chartreuse tint */
    body.oliv-editorial .service-card:hover,
    body.oliv-editorial .service-card:focus-visible { background: transparent !important; }
}

/* === END v1.7.1 INDEX HOVER REWORK === */

/* ================================================================
   23l. MOBILE RESPONSIVENESS PASS (v1.7.2, page-id-57) — every new
   section tuned for phones: no overflow, right scale, readable.
   ================================================================ */
@media (max-width: 781px) {
    /* Statement: fit phone width */
    body.oliv-editorial .ed-statement { font-size: clamp(2rem, 8.5vw, 3.4rem); max-width: 18ch; }
    /* Horizontal strip: sized + snap-padded for thumb swipe */
    body.oliv-editorial .ed-hscroll { scroll-padding-inline: clamp(1.25rem, 5vw, 2rem); padding-inline: clamp(1.25rem, 5vw, 2rem); }
    body.oliv-editorial .ed-hslide { width: clamp(220px, 74vw, 300px); }
    body.oliv-editorial .ed-hscroll-head { padding-inline: clamp(1.25rem, 5vw, 2rem); }
    /* Project teaser */
    body.oliv-editorial .ed-projects-inner { padding-inline: clamp(1.25rem, 5vw, 2rem); }
    body.oliv-editorial .ed-project-meta { flex-direction: column; gap: 0.25rem; }
    /* Stats */
    body.oliv-editorial .ed-stat-num { font-size: clamp(2rem, 9vw, 3rem); }
    body.oliv-editorial .ed-stat-label { font-size: clamp(0.74rem, 3.4vw, 0.9rem); }
    /* Index glass card: image complete, title scaled */
    body.oliv-editorial .service-card-title { font-size: clamp(1.45rem, 6.5vw, 2rem); line-height: 1.06; }
    body.oliv-editorial .service-card-dek { font-size: clamp(0.95rem, 4vw, 1.05rem); }
    /* Hero headline never overflows */
    body.oliv-editorial .service-hero .hero-h1 { font-size: clamp(2.5rem, 11vw, 4rem); max-width: 16ch; }
    /* Footer wordmark never overflows the viewport */
    body.oliv-editorial .oliv-wordmark-footer { word-break: break-word; overflow-wrap: anywhere; }
    /* Lighten fixed grain on phones (scroll-paint perf) */
    body.oliv-editorial::after { opacity: 0.03; }
}

/* Guard: no stray horizontal scroll from wide decorative elements */
body.oliv-editorial .ed-marquee,
body.oliv-editorial .ed-hscroll-section,
body.oliv-editorial .ed-statement-section { max-width: 100vw; }

/* === END v1.7.2 MOBILE RESPONSIVENESS === */

/* ================================================================
   23m. FOOTER MASTHEAD CLARITY (v1.7.4, page-id-57) — the giant OLIV
   wordmark was wrapping to "OLI / V". Force single line, centered,
   fitting size; kill the word-break safety that caused the wrap.
   ================================================================ */
body.oliv-editorial .site-above-footer-wrap {
    padding-block: clamp(3rem, 6vw, 5.5rem) clamp(1.5rem, 3vw, 2.5rem);
    text-align: center;
}
body.oliv-editorial .site-above-footer-wrap .ast-builder-grid-row,
body.oliv-editorial .site-above-footer-inner-wrap,
body.oliv-editorial .site-footer-above-section-1,
body.oliv-editorial .ast-footer-html-2,
body.oliv-editorial .site-above-footer-wrap .ast-builder-html-element { width: 100% !important; max-width: none !important; text-align: center; }
body.oliv-editorial .oliv-wordmark-footer {
    white-space: nowrap !important;
    word-break: keep-all !important;
    overflow-wrap: normal !important;
    font-size: clamp(3.4rem, 13vw, 10rem) !important;
    line-height: 0.9 !important;
    text-align: center !important;
    letter-spacing: 0.012em;
    margin: 0 auto;
}
body.oliv-editorial .oliv-tagline-footer {
    text-align: center !important;
    font-size: clamp(1rem, 1.6vw, 1.35rem);
    margin-top: 0.6rem;
}
body.oliv-editorial .oliv-desc-footer {
    text-align: center;
    font-family: var(--oliv-font-sans);
    font-size: clamp(0.95rem, 1.25vw, 1.1rem);
    line-height: 1.6;
    color: rgba(245, 241, 232, 0.58);
    margin: 1rem auto 0;
    max-width: 42ch;
}
@media (max-width: 781px) {
    body.oliv-editorial .oliv-wordmark-footer { font-size: clamp(2.6rem, 16vw, 5rem) !important; }
}

/* The brand block moved up to the masthead → drop the now-empty col-1
   and balance the 3 nav columns, centered. */
body.oliv-editorial .site-footer-primary-section-1 { display: none !important; }
body.oliv-editorial .site-primary-footer-inner-wrap {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    max-width: 76rem;
    margin-inline: auto;
    gap: clamp(2rem, 5vw, 5rem);
}
@media (max-width: 921px) {
    body.oliv-editorial .site-primary-footer-inner-wrap { grid-template-columns: 1fr 1fr !important; }
}
@media (max-width: 600px) {
    body.oliv-editorial .site-primary-footer-inner-wrap { grid-template-columns: 1fr !important; }
}

/* === END v1.7.4 FOOTER MASTHEAD === */

/* ================================================================
   23n. FOOTER — fully centered, CLEAN. The messiness before came from
   the menu <ul> default padding-left (~40px) shifting the "centered"
   text right. Reset all list indentation → true centering. Symmetric
   3 equal columns, even spacing. Identical desktop = mobile.
   (v1.7.9, page-id-57).
   ================================================================ */
/* Masthead centered (reinforce) */
body.oliv-editorial .site-above-footer-wrap,
body.oliv-editorial .site-above-footer-inner-wrap,
body.oliv-editorial .site-footer-above-section-1 { text-align: center; }

/* 3 symmetric equal columns, centered group */
body.oliv-editorial .site-primary-footer-inner-wrap {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    max-width: 70rem;
    margin-inline: auto;
    gap: clamp(2rem, 5vw, 4rem);
    justify-items: center;
}
/* True centering — kill every source of list/box indentation */
body.oliv-editorial .site-footer-section,
body.oliv-editorial .site-footer .footer-widget-area,
body.oliv-editorial .site-footer .widget-title,
body.oliv-editorial .site-footer .footer-widget-area li,
body.oliv-editorial .site-footer .footer-widget-area p { text-align: center; }
body.oliv-editorial .site-footer .footer-widget-area,
body.oliv-editorial .site-footer .footer-widget-area ul,
body.oliv-editorial .site-footer .footer-widget-area .menu,
body.oliv-editorial .site-footer .footer-widget-area .textwidget {
    list-style: none;
    padding-left: 0 !important;
    margin-left: 0 !important;
}
body.oliv-editorial .site-footer .footer-widget-area li { margin-inline: auto; }
/* Social icons centered */
body.oliv-editorial .site-footer .ast-builder-social-element,
body.oliv-editorial .site-footer .ast-social-stack-desktop,
body.oliv-editorial .site-footer [class*="social"] { justify-content: center !important; text-align: center; }
/* Below-footer (copyright + legal) centered & stacked */
body.oliv-editorial .site-below-footer-wrap .ast-builder-grid-row { justify-items: center; }
body.oliv-editorial .site-below-footer-section-1,
body.oliv-editorial .site-below-footer-section-2 { text-align: center !important; width: 100%; }
body.oliv-editorial .ast-footer-copyright,
body.oliv-editorial .ast-footer-copyright p { text-align: center !important; }

/* Even vertical rhythm when columns stack (mobile/tablet) */
@media (max-width: 921px) {
    body.oliv-editorial .site-primary-footer-inner-wrap { grid-template-columns: 1fr !important; max-width: 30rem; }
    body.oliv-editorial .site-footer-section { margin-bottom: clamp(2rem, 6vw, 3rem); }
}

/* === END v1.7.9 FOOTER CENTERED CLEAN === */

/* ================================================================
   23o. FOOTER MASTHEAD — perfect centering + balanced rhythm.
   Force the whole Astra HTML wrapper chain to full-width/center so
   OLIV + tagline + desc share one true center axis, with balanced
   vertical proportion. (v1.7.10, page-id-57).
   ================================================================ */
body.oliv-editorial .site-above-footer-wrap .ast-builder-grid-row-container-inner,
body.oliv-editorial .site-above-footer-inner-wrap,
body.oliv-editorial .site-footer-above-section-1,
body.oliv-editorial .site-above-footer-wrap .footer-widget-area,
body.oliv-editorial .ast-footer-html-2,
body.oliv-editorial .site-above-footer-wrap .ast-header-html,
body.oliv-editorial .site-above-footer-wrap .ast-header-html .inner-link-style-,
body.oliv-editorial .site-above-footer-wrap .ast-builder-html-element {
    width: 100% !important;
    max-width: none !important;
    margin-inline: auto !important;
    text-align: center !important;
    float: none !important;
}
/* The three masthead lines — one center axis, balanced rhythm */
body.oliv-editorial .oliv-wordmark-footer {
    display: block;
    width: 100%;
    text-align: center !important;
    margin: 0 auto !important;
    font-size: clamp(3.2rem, 11.5vw, 8.5rem) !important;
    line-height: 0.92 !important;
    letter-spacing: 0.015em;
}
body.oliv-editorial .oliv-tagline-footer {
    display: block;
    width: 100%;
    text-align: center !important;
    margin: clamp(0.6rem, 1.4vw, 1rem) auto 0 !important;
    font-size: clamp(1.05rem, 1.5vw, 1.3rem) !important;
}
body.oliv-editorial .oliv-desc-footer {
    display: block;
    width: 100%;
    max-width: 44ch;
    text-align: center !important;
    margin: clamp(0.9rem, 1.8vw, 1.4rem) auto 0 !important;
    font-size: clamp(0.95rem, 1.2vw, 1.08rem);
    line-height: 1.6;
    color: rgba(245, 241, 232, 0.58);
}

/* === END v1.7.10 FOOTER MASTHEAD CENTERED === */

/* ================================================================
   23p. HEADER MENUS — dark editorial (v1.7.11, page-id-57).
   Desktop dropdowns + mobile popup were cream; recolour to black +
   chartreuse to match the dark page. Scoped to page-57.
   ================================================================ */

/* --- Desktop dropdown submenus --- */
body.oliv-editorial .main-header-menu .sub-menu,
body.oliv-editorial .ast-builder-menu .sub-menu {
    background: #0E0D0A !important;
    border: 1px solid rgba(164, 172, 44, 0.22) !important;
    border-top: 2px solid var(--ed-accent, #A4AC2C) !important;
    box-shadow: 0 22px 54px -18px rgba(0, 0, 0, 0.7) !important;
}
body.oliv-editorial .main-header-menu .sub-menu .menu-link,
body.oliv-editorial .main-header-menu .sub-menu .menu-item > a {
    color: rgba(245, 241, 232, 0.82) !important;
}
body.oliv-editorial .main-header-menu .sub-menu .menu-link:hover,
body.oliv-editorial .main-header-menu .sub-menu .menu-item > a:hover {
    color: var(--ed-accent, #A4AC2C) !important;
    background: rgba(164, 172, 44, 0.07) !important;
}
body.oliv-editorial .main-header-menu .sub-menu > li + li { border-top-color: rgba(164, 172, 44, 0.1) !important; }
/* dropdown script eyebrows → chartreuse */
body.oliv-editorial li:has(> a[href*="/nunti/"]) > .sub-menu::before,
body.oliv-editorial li:has(> a[href*="/pentru-branduri/"]) > .sub-menu::before {
    color: var(--ed-accent, #A4AC2C) !important;
    border-bottom-color: rgba(164, 172, 44, 0.18) !important;
}

/* --- Mobile popup menu --- */
body.oliv-editorial .ast-mobile-popup-drawer.active .ast-mobile-popup-inner,
body.oliv-editorial .ast-mobile-popup-drawer.active .ast-mobile-popup-content,
body.oliv-editorial .ast-mobile-popup-drawer .ast-mobile-popup-content,
body.oliv-editorial .ast-mobile-header-wrap .ast-mobile-header-content {
    background-color: #0E0D0A !important;
}
body.oliv-editorial .ast-mobile-popup-drawer .menu-item > a,
body.oliv-editorial .ast-mobile-popup-drawer .menu-link,
body.oliv-editorial .ast-mobile-popup-drawer .page_item > a,
body.oliv-editorial .ast-mobile-popup-drawer .sub-menu .menu-link {
    color: rgba(245, 241, 232, 0.9) !important;
}
body.oliv-editorial .ast-mobile-popup-drawer .menu-item > a:hover,
body.oliv-editorial .ast-mobile-popup-drawer .menu-link:hover { color: var(--ed-accent, #A4AC2C) !important; }
body.oliv-editorial .ast-mobile-popup-drawer .sub-menu { background: transparent !important; border: none !important; }
/* close (X) icon + toggle → cream */
body.oliv-editorial .ast-mobile-popup-drawer .menu-toggle-close,
body.oliv-editorial .ast-mobile-popup-drawer .ast-close-icon,
body.oliv-editorial .ast-mobile-popup-drawer .menu-toggle-close .ast-icon { color: var(--oliv-warm-white, #F5F1E8) !important; }
body.oliv-editorial .ast-mobile-popup-drawer .menu-toggle-close svg { fill: var(--oliv-warm-white, #F5F1E8) !important; }
/* language switcher items in menu */
body.oliv-editorial .ast-mobile-popup-drawer .oliv-lang-item > a,
body.oliv-editorial .main-header-menu .oliv-lang-item > a { color: var(--ed-accent, #A4AC2C) !important; }

/* === END v1.7.11 HEADER MENUS DARK === */

/* (chartreuse-dominant palette v1.8 removed — reverted to black canvas) */

/* ================================================================
   25. MORE CHARTREUSE on black (v1.8.2) — client: black canvas, but
   chartreuse much more present as vivid type/accent (not cream).
   Brighter accent + chartreuse on more elements.
   ================================================================ */
body.oliv-editorial { --ed-accent: #BFC74A; }   /* brighter chartreuse, pops on black */

/* Eyebrows / scripts — bigger, vivid chartreuse */
body.oliv-editorial .eyebrow-script {
    color: var(--ed-accent) !important;
    font-size: clamp(0.78rem, 1.05vw, 0.95rem) !important;
}
body.oliv-editorial .service-hero .oliv-eyebrow,
body.oliv-editorial .service-hero .oliv-eyebrow::before,
body.oliv-editorial .service-card-tag { color: var(--ed-accent) !important; }
body.oliv-editorial .service-hero .hero-eyebrow {
    color: var(--ed-accent) !important;
    font-size: clamp(2.4rem, 4.6vw, 3.8rem) !important;
}

/* Section H2 titles → chartreuse on BLACK sections (big serif carries colour) */
body.oliv-editorial .service-grid-section .manifest-title,
body.oliv-editorial .approach-title,
body.oliv-editorial .faq-section .manifest-title,
body.oliv-editorial .ed-hscroll-head .manifest-title,
body.oliv-editorial .deliverables-section .manifest-title {
    color: var(--ed-accent) !important;
    -webkit-text-fill-color: var(--ed-accent) !important;
}

/* ============ 20% WHITE — manifest + project teaser ============ */
body.oliv-editorial .manifest-section,
body.oliv-editorial .ed-projects-section {
    background: #FAFAF8 !important;
    color: #0E0D0A !important;
}
body.oliv-editorial .manifest-section::before { display: none !important; }
body.oliv-editorial .manifest-section .manifest-title,
body.oliv-editorial .ed-projects-section .manifest-title,
body.oliv-editorial .manifest-pillar .pillar-title,
body.oliv-editorial .ed-project-title {
    color: #0E0D0A !important;
    -webkit-text-fill-color: #0E0D0A !important;
}
body.oliv-editorial .manifest-section .eyebrow-script,
body.oliv-editorial .ed-projects-section .eyebrow-script,
body.oliv-editorial .manifest-pillar .pillar-label,
body.oliv-editorial .ed-project-year {
    color: #4D5615 !important;   /* AAA chartreuse on white */
    -webkit-text-fill-color: #4D5615 !important;
}
body.oliv-editorial .manifest-pillar .pillar-body { color: rgba(14, 13, 10, 0.7) !important; }
body.oliv-editorial .manifest-pillar::after { color: #A4AC2C !important; }  /* big roman numeral, vibrant decorative */
body.oliv-editorial .manifest-pillar { border-color: rgba(14, 13, 10, 0.12) !important; }
body.oliv-editorial .ed-projects-all { color: #0E0D0A !important; border-bottom-color: #A4AC2C !important; }
body.oliv-editorial .ed-projects-all:hover { color: #4D5615 !important; }

/* Numbers / numerals — vivid chartreuse */
body.oliv-editorial .service-card-num,
body.oliv-editorial .step-num,
body.oliv-editorial .ed-stat-num,
body.oliv-editorial .manifest-pillar::after,
body.oliv-editorial .service-card-cta,
body.oliv-editorial .faq-q::after { color: var(--ed-accent) !important; }

/* Hero H1 — keep cream, but emphasis word can pick up chartreuse via <em> */
body.oliv-editorial .service-hero .hero-h1 em { color: var(--ed-accent) !important; -webkit-text-fill-color: var(--ed-accent) !important; font-style: italic; }

/* Marquee + pull-quote accent — vivid chartreuse */
body.oliv-editorial .ed-marquee span { color: var(--ed-accent) !important; }
body.oliv-editorial .editorial-quote em { color: var(--ed-accent) !important; }

/* Service index titles glow chartreuse on hover */
body.oliv-editorial .service-card:hover .service-card-title { color: var(--ed-accent) !important; }

/* Stats labels + dividers a touch more chartreuse */
body.oliv-editorial .ed-stat + .ed-stat::before { background: rgba(191, 199, 74, 0.3) !important; }

/* === END v1.8.2 MORE CHARTREUSE === */

/* ================================================================
   26. LIGHT FOOTER (v1.8.3) — client wants a brighter footer.
   Warm-white surface, black OLIV, chartreuse-deep accents.
   ================================================================ */
body.oliv-editorial .site-footer {
    background: #FAFAF8 !important;
    background-image: none !important;   /* kill the §15 dark gradient that painted over the white */
    background-color: #FAFAF8 !important;
    border-top: 1px solid rgba(14, 13, 10, 0.12) !important;
}
/* recolour the gold seam line; drop any dark glow pseudo on the light footer */
body.oliv-editorial .site-footer::before { background: rgba(14, 13, 10, 0.1) !important; }
body.oliv-editorial .site-footer::after { display: none !important; }
/* THE REAL culprit (audit): §15 sets `#colophon { background: var(--oliv-footer-ink:#1A1814) }`
   — an ID selector (1,0,0) that beats every class-based fix. Override the ID. */
body.oliv-editorial #colophon,
body.oliv-editorial footer#colophon.site-footer {
    background: #FAFAF8 !important;
    background-image: none !important;
    background-color: #FAFAF8 !important;
}
/* inner footer layers transparent so the single white surface shows through */
body.oliv-editorial #colophon .ast-builder-grid-row-container,
body.oliv-editorial #colophon .ast-builder-grid-row-container-inner,
body.oliv-editorial #colophon .site-above-footer-wrap,
body.oliv-editorial #colophon .site-primary-footer-wrap,
body.oliv-editorial #colophon .site-below-footer-wrap,
body.oliv-editorial #colophon .footer-widget-area,
body.oliv-editorial #colophon .site-footer-section {
    background: transparent !important;
    background-image: none !important;
    background-color: transparent !important;
}
body.oliv-editorial .oliv-wordmark-footer {
    color: #0E0D0A !important;
    -webkit-text-fill-color: #0E0D0A !important;
}
body.oliv-editorial .oliv-tagline-footer { color: #4D5615 !important; }
body.oliv-editorial .oliv-desc-footer { color: rgba(14, 13, 10, 0.6) !important; }
body.oliv-editorial .site-footer,
body.oliv-editorial .site-footer p,
body.oliv-editorial .site-footer span,
body.oliv-editorial .site-footer .ast-footer-copyright,
body.oliv-editorial .site-footer .ast-footer-copyright p { color: rgba(14, 13, 10, 0.62) !important; }
body.oliv-editorial .site-footer a { color: rgba(14, 13, 10, 0.82) !important; }
body.oliv-editorial .site-footer a:hover { color: #4D5615 !important; }
body.oliv-editorial .site-footer .widget-title { color: #0E0D0A !important; }
body.oliv-editorial .site-primary-footer-wrap,
body.oliv-editorial .site-below-footer-wrap { border-top-color: rgba(14, 13, 10, 0.1) !important; }
/* social icons → dark on light */
body.oliv-editorial .site-footer .ast-builder-social-element a,
body.oliv-editorial .site-footer [class*="social"] a,
body.oliv-editorial .site-footer .ast-social-color-type-official a { color: #0E0D0A !important; border-color: rgba(14, 13, 10, 0.25) !important; }
body.oliv-editorial .site-footer .ast-builder-social-element a:hover { color: #4D5615 !important; }

/* === END v1.8.3 LIGHT FOOTER === */

/* ================================================================
   27. CURSOR — desktop-only (v1.8.8). The custom cursor + "Vezi"
   label only suit a real pointer. The old hide was ≤781px but the
   mobile header activates ≤921px, so between 782–921 the chartreuse
   label overlapped the mobile logo. Hide on any non-desktop.
   ================================================================ */
@media (max-width: 1024px), (hover: none), (pointer: coarse) {
    .oliv-cursor-dot,
    .oliv-cursor-ring,
    .oliv-cursor-label { display: none !important; }
    body.oliv-editorial.oliv-has-cursor,
    body.oliv-editorial.oliv-has-cursor a,
    body.oliv-editorial.oliv-has-cursor button,
    body.oliv-editorial.oliv-has-cursor summary { cursor: auto !important; }
}

/* === END v1.8.8 CURSOR DESKTOP-ONLY === */

/* ================================================================
   29. HOMEPAGE (ed-home) — contrast + harmony pass (v1.9.4)
   Homepage sections use their OWN class vocabulary (founder-quote,
   about, sibiu, stories, world, work, arms) which the hub-oriented
   base type hierarchy doesn't cover -> text rendered dark-on-dark.
   This makes every text element readable + harmonised on the lifted
   black canvas. NO bespoke section backgrounds (lesson of old §28).
   ================================================================ */

/* Section titles -> cream serif */
body.oliv-editorial :is(.about-title, .sibiu-title, .stories-title,
.world-title, .work-title, .story-title, .uagb-ifb-title) {
    color: #F5F1E8 !important;
    -webkit-text-fill-color: #F5F1E8;
}
/* arms-section is the homepage's LIGHT (cream) moment — its cards are
   #F1ECDF/#F6F1E8. Keep the base DARK text (arm-title chartreuse-shadow /
   muted-black, arm-list dark). Do NOT force cream here — it would be
   invisible on the cream cards. */

/* Body copy -> muted cream */
body.oliv-editorial :is(.about-body, .sibiu-body, .work-lead,
.story-dek, .uagb-ifb-desc) {
    color: rgba(245, 241, 232, 0.74) !important;
}
/* Eyebrows / scripts / kicker labels -> chartreuse */
body.oliv-editorial :is(.founder-eyebrow, .founder-script,
.sibiu-eyebrow, .stories-eyebrow, .story-date) {
    color: var(--ed-accent, #BFC74A) !important;
}

/* Founder quote (showpiece) */
body.oliv-editorial .founder-quote-section blockquote,
body.oliv-editorial .founder-quote-section blockquote p {
    color: #F5F1E8 !important;
    -webkit-text-fill-color: #F5F1E8;
}
body.oliv-editorial .founder-quote-section cite {
    color: var(--ed-accent, #BFC74A) !important;
    opacity: 1;
}
body.oliv-editorial .gold-hairline {
    background: var(--ed-accent, #BFC74A) !important;
    border-color: var(--ed-accent, #BFC74A) !important;
}

/* Trust stats (about) */
body.oliv-editorial .trust-num { color: #F5F1E8 !important; }
body.oliv-editorial .trust-num--accent { color: var(--ed-accent, #BFC74A) !important; }
body.oliv-editorial .trust-label { color: rgba(245, 241, 232, 0.6) !important; }

/* Inline links + outline buttons -> chartreuse */
body.oliv-editorial :is(.uagb-ifb-cta-link, .story-card a,
.sibiu-text a, .about-text-col a, .world-cta .wp-block-button__link, .work-card a) {
    color: var(--ed-accent, #BFC74A) !important;
}
body.oliv-editorial .wp-block-button.is-style-outline .wp-block-button__link {
    color: var(--ed-accent, #BFC74A) !important;
    border-color: rgba(191, 199, 74, 0.5) !important;
}
body.oliv-editorial .wp-block-button.is-style-outline .wp-block-button__link:hover {
    color: #131210 !important;
    background: var(--ed-accent, #BFC74A) !important;
    border-color: var(--ed-accent, #BFC74A) !important;
}

/* Story cards: hairline separation, no boxes */
body.oliv-editorial .story-card {
    border-top: 1px solid rgba(191, 199, 74, 0.18);
    padding-top: clamp(1.25rem, 2vw, 1.75rem);
}
/* ================================================================
   30. EDITORIAL PROSE CONTRAST — site-wide (v1.9.6)
   `.service-body` (service-lead/service-para/headings) is used on the
   despre bio + ALL service detail pages; `.about-text-col` prose on
   despre/about. These sit on the dark canvas (never the light arms
   cards) -> force readable cream. Lesson P3/P8 generalised.
   ================================================================ */
body.oliv-editorial .service-body :is(h2, h3, h4) {
    color: #F5F1E8 !important;
    -webkit-text-fill-color: #F5F1E8;
}
body.oliv-editorial .service-body :is(p, li) { color: rgba(245, 241, 232, 0.74) !important; }
body.oliv-editorial .service-body .service-lead { color: rgba(245, 241, 232, 0.86) !important; }
body.oliv-editorial .service-body strong { color: #F5F1E8 !important; }
body.oliv-editorial .service-body a { color: var(--ed-accent, #BFC74A) !important; }
body.oliv-editorial .about-text-col p:not(.eyebrow-script) { color: rgba(245, 241, 232, 0.74) !important; }
/* ================================================================
   31. CONTACT (.ed-contact) — godmode form-on-dark  [v1.9.7, godmode-elevation workflow]
   ================================================================ */
/* =====================================================================
   ED-CONTACT — godmode dark editorial for /contact/  (.ed-contact)
   Scoped to body.oliv-editorial.ed-contact ONLY. Dark canvas throughout,
   ONE coherent system: cream/chartreuse type on near-black, dark-glass
   SureForms, glass info cards. No header/footer/copy touched.
   Palette: canvas #131210 · cream #F5F1E8 · muted rgba(245,241,232,.74)
            chartreuse var(--ed-accent) · ink #131210
   Adversarial pass: verified .contact-trust rescued from dark-on-dark;
   hero/form/faq surfaces confirmed dark; SureForms overrides confirmed
   to beat §21 (0,2,1)!important and the inline container vars (0,1,0);
   added min-width:0 grid guard; grids stack + sidebar destickies <=781px.
   ===================================================================== */

body.oliv-editorial.ed-contact {
    --edc-accent: var(--ed-accent, #BFC74A);
    --edc-cream: #F5F1E8;
    --edc-muted: rgba(245, 241, 232, 0.74);
    --edc-faint: rgba(245, 241, 232, 0.5);
    --edc-ink: #131210;
    --edc-hair: rgba(245, 241, 232, 0.14);
    --edc-glass: rgba(245, 241, 232, 0.045);
    --edc-glass-2: rgba(245, 241, 232, 0.06);
    --edc-dur: 280ms;
}

/* ---------------------------------------------------------------------
   1. HERO — contact masthead
   Base already sets .service-hero dark (#0E0D0A) + centered + cream sub
   (editorial.css L4234-4242). We deepen/retypeset on dark only; the
   "01 / " numeral on .oliv-eyebrow comes from base ::before and is kept.
   --------------------------------------------------------------------- */
body.oliv-editorial.ed-contact .service-hero {
    background: radial-gradient(120% 80% at 50% -10%, rgba(191,199,74,0.07) 0%, transparent 60%), #0E0D0A !important;
    padding-block: clamp(78px, 12vw, 170px) clamp(40px, 6vw, 84px) !important;
}
body.oliv-editorial.ed-contact .service-hero-inner {
    max-width: 60rem;
    align-items: center !important;
}
/* numbered chartreuse eyebrow (numeral prefix supplied by base ::before) */
body.oliv-editorial.ed-contact .service-hero .oliv-eyebrow {
    font-family: var(--oliv-font-sans);
    font-size: clamp(0.72rem, 0.95vw, 0.84rem);
    letter-spacing: 0.32em;
    text-transform: uppercase;
    color: var(--edc-accent) !important;
    margin: 0 0 clamp(1.1rem, 2.4vw, 1.8rem);
}
/* the WP <hr> separator becomes a drawn chartreuse hairline (base hides it) */
body.oliv-editorial.ed-contact .service-hero .chartreuse-line {
    display: block !important;
    width: clamp(48px, 7vw, 96px);
    height: 0 !important;
    margin: 0 auto clamp(1.6rem, 3.5vw, 2.6rem) !important;
    border: 0 !important;
    border-top: 1.5px solid var(--edc-accent) !important;
    opacity: 0.9 !important;
    background: none !important;
}
body.oliv-editorial.ed-contact .service-hero .hero-h1 {
    color: var(--edc-cream) !important;
    -webkit-text-fill-color: var(--edc-cream);
    font-family: var(--oliv-font-serif);
    font-size: clamp(2.9rem, 8.5vw, 6.6rem);
    line-height: 0.96;
    letter-spacing: -0.025em;
    font-weight: 400;
    /* rem/ch width guard: never break char-by-char */
    max-width: 18ch !important;
    margin: 0 auto !important;
}
body.oliv-editorial.ed-contact .service-hero .service-hero-sub {
    color: var(--edc-muted) !important;
    font-family: var(--oliv-font-sans);
    font-size: clamp(1.05rem, 1.4vw, 1.3rem);
    line-height: 1.62;
    max-width: 48ch;
    margin: clamp(1.8rem, 3.5vw, 2.8rem) auto 0 !important;
    border-left: none !important;
    padding-left: 0 !important;
}
/* trust / credential strip — base color is DARK ink (invisible on dark);
   force cream here so it is NOT dark-on-dark. */
body.oliv-editorial.ed-contact .contact-trust {
    font-family: var(--oliv-font-sans);
    font-size: clamp(0.78rem, 0.95vw, 0.9rem);
    letter-spacing: 0.06em;
    line-height: 1.9;
    color: var(--edc-faint) !important;
    max-width: 60ch;
    margin: clamp(1.6rem, 3vw, 2.4rem) auto 0 !important;
    text-align: center !important;
    text-wrap: balance;
}

/* ---------------------------------------------------------------------
   2. FORM SECTION shell + heading group
   (Section bg stays the base blanket dark #131210 — correct dark surface.)
   --------------------------------------------------------------------- */
body.oliv-editorial.ed-contact .contact-form-section .contact-page-grid {
    max-width: 80rem;
    grid-template-columns: 1.55fr 1fr;
    gap: clamp(2.25rem, 5vw, 4.5rem);
    align-items: start;
}
/* hardening: prevent a long unbroken string from blowing out a track */
body.oliv-editorial.ed-contact .contact-form-section .contact-form-col,
body.oliv-editorial.ed-contact .contact-form-section .contact-sidebar {
    min-width: 0;
}
body.oliv-editorial.ed-contact .contact-form-col .eyebrow-script,
body.oliv-editorial.ed-contact .contact-form-col .oliv-script {
    color: var(--edc-accent) !important;
    text-align: left !important;
    margin: 0 0 0.35rem;
}
body.oliv-editorial.ed-contact .contact-form-col .manifest-title {
    color: var(--edc-cream) !important;
    -webkit-text-fill-color: var(--edc-cream);
    text-align: left !important;
    font-family: var(--oliv-font-serif);
    font-size: clamp(2rem, 4vw, 3.2rem);
    line-height: 1.02;
    letter-spacing: -0.02em;
    margin: 0 0 0.9rem;
}
body.oliv-editorial.ed-contact .contact-form-intro {
    color: var(--edc-muted) !important;
    font-family: var(--oliv-font-sans);
    font-size: clamp(1rem, 1.15vw, 1.1rem);
    line-height: 1.7;
    max-width: 50ch;
    margin: 0 0 clamp(1.75rem, 3vw, 2.5rem) !important;
    text-align: left !important;
}

/* ---------------------------------------------------------------------
   3. SUREFORMS — dark glass. First retune SureForms' OWN engine vars on
   the scoped container ((0,3,0) > inline (0,1,0), wins for custom props),
   THEN hard-override the §21 cream baseline (which used !important).
   --------------------------------------------------------------------- */
body.oliv-editorial.ed-contact .srfm-form-container {
    --srfm-color-input-label: var(--edc-cream);
    --srfm-color-input-text: var(--edc-cream);
    --srfm-color-input-description: var(--edc-muted);
    --srfm-color-input-placeholder: var(--edc-faint);
    --srfm-color-input-prefix: var(--edc-muted);
    --srfm-color-input-background: rgba(245, 241, 232, 0.045);
    --srfm-color-input-background-hover: rgba(245, 241, 232, 0.07);
    --srfm-color-input-border: rgba(245, 241, 232, 0.18);
    --srfm-color-input-border-hover: rgba(191, 199, 74, 0.55);
    --srfm-color-input-border-focus-glow: rgba(191, 199, 74, 0.22);
    --srfm-color-input-selected: rgba(191, 199, 74, 0.14);
    --srfm-color-scheme-primary: var(--edc-accent);
    --srfm-color-scheme-text-on-primary: var(--edc-ink);
    --srfm-color-scheme-text: var(--edc-cream);
    --srfm-btn-color-hover: #CDD45C;
    background: transparent !important;
    border: 0 !important;
    padding: 0 !important;
    border-radius: 0 !important;
}
/* kill the wrapper slab + any srfm bg overlay (inline pad/radius lives here) */
body.oliv-editorial.ed-contact .contact-form-wrap,
body.oliv-editorial.ed-contact .srfm-bg-color,
body.oliv-editorial.ed-contact .srfm-form,
body.oliv-editorial.ed-contact .srfm-single-form {
    background: transparent !important;
    box-shadow: none !important;
}

/* Inputs / email / textarea / select — dark glass (overrides §21 cream) */
body.oliv-editorial.ed-contact .contact-form-wrap .srfm-input-common,
body.oliv-editorial.ed-contact .contact-form-wrap .srfm-input-input,
body.oliv-editorial.ed-contact .contact-form-wrap .srfm-input-email,
body.oliv-editorial.ed-contact .contact-form-wrap .srfm-input-textarea,
body.oliv-editorial.ed-contact .contact-form-wrap input[type="text"],
body.oliv-editorial.ed-contact .contact-form-wrap input[type="email"],
body.oliv-editorial.ed-contact .contact-form-wrap input[type="tel"],
body.oliv-editorial.ed-contact .contact-form-wrap textarea,
body.oliv-editorial.ed-contact .contact-form-wrap select {
    font-family: var(--oliv-font-sans) !important;
    font-size: 1rem !important;
    color: var(--edc-cream) !important;
    background: var(--edc-glass) !important;
    border: 1px solid var(--edc-hair) !important;
    border-radius: 14px !important;
    padding: 0.9rem 1.05rem !important;
    min-height: 50px !important;
    box-shadow: none !important;
    -webkit-appearance: none;
    appearance: none;
    transition: border-color var(--edc-dur) ease,
                background var(--edc-dur) ease,
                box-shadow var(--edc-dur) ease !important;
}
body.oliv-editorial.ed-contact .contact-form-wrap textarea,
body.oliv-editorial.ed-contact .contact-form-wrap .srfm-input-textarea {
    min-height: 130px !important;
    line-height: 1.6 !important;
    resize: vertical;
}
body.oliv-editorial.ed-contact .contact-form-wrap .srfm-input-common:hover,
body.oliv-editorial.ed-contact .contact-form-wrap input:hover,
body.oliv-editorial.ed-contact .contact-form-wrap textarea:hover,
body.oliv-editorial.ed-contact .contact-form-wrap select:hover {
    background: var(--edc-glass-2) !important;
    border-color: rgba(245, 241, 232, 0.28) !important;
}
/* focus — chartreuse hairline + soft glow ring (in-box, no overflow) */
body.oliv-editorial.ed-contact .contact-form-wrap .srfm-input-common:focus,
body.oliv-editorial.ed-contact .contact-form-wrap input:focus,
body.oliv-editorial.ed-contact .contact-form-wrap textarea:focus,
body.oliv-editorial.ed-contact .contact-form-wrap select:focus {
    outline: none !important;
    border-color: var(--edc-accent) !important;
    background: var(--edc-glass-2) !important;
    box-shadow: 0 0 0 3px rgba(191, 199, 74, 0.18) !important;
}
/* placeholders legible on dark */
body.oliv-editorial.ed-contact .contact-form-wrap ::placeholder {
    color: var(--edc-faint) !important;
    opacity: 1 !important;
}
/* autofill: keep dark, prevent white wash */
body.oliv-editorial.ed-contact .contact-form-wrap input:-webkit-autofill,
body.oliv-editorial.ed-contact .contact-form-wrap textarea:-webkit-autofill {
    -webkit-text-fill-color: var(--edc-cream) !important;
    -webkit-box-shadow: 0 0 0 1000px #1A1916 inset !important;
    caret-color: var(--edc-cream);
    transition: background-color 9999s ease 0s;
}
/* labels (override §21 dark-on-dark) */
body.oliv-editorial.ed-contact .contact-form-wrap label,
body.oliv-editorial.ed-contact .contact-form-wrap .srfm-block-label,
body.oliv-editorial.ed-contact .contact-form-wrap .srfm-block .srfm-label {
    font-family: var(--oliv-font-sans) !important;
    font-size: 0.84rem !important;
    letter-spacing: 0.05em !important;
    color: var(--edc-cream) !important;
    font-weight: 500 !important;
}
/* required asterisk in chartreuse */
body.oliv-editorial.ed-contact .contact-form-wrap .srfm-required {
    color: var(--edc-accent) !important;
}
/* error text — legible warm-red on dark, not the default light tone */
body.oliv-editorial.ed-contact .contact-form-wrap .srfm-error-message,
body.oliv-editorial.ed-contact .contact-form-wrap .srfm-error-content {
    color: #E8896B !important;
    font-family: var(--oliv-font-sans) !important;
    font-size: 0.82rem !important;
}
body.oliv-editorial.ed-contact .contact-form-wrap .srfm-input-common.srfm-input-error,
body.oliv-editorial.ed-contact .contact-form-wrap input.srfm-input-error,
body.oliv-editorial.ed-contact .contact-form-wrap textarea.srfm-input-error {
    border-color: rgba(232, 137, 107, 0.7) !important;
    box-shadow: 0 0 0 3px rgba(232, 137, 107, 0.14) !important;
}
/* success confirmation legible on dark */
body.oliv-editorial.ed-contact .contact-form-wrap .srfm-success-box-description {
    color: var(--edc-cream) !important;
    font-family: var(--oliv-font-sans) !important;
}

/* Submit button — solid chartreuse pill, dark ink (override §21 black btn).
   Live button is <button id="srfm-submit-btn" class="srfm-btn-frontend
   srfm-button srfm-submit-button"> with NO type attr — target real classes,
   not button[type=submit]. §21's .srfm-submit-btn never matches it. */
body.oliv-editorial.ed-contact .contact-form-wrap .srfm-btn-frontend,
body.oliv-editorial.ed-contact .contact-form-wrap .srfm-submit-button,
body.oliv-editorial.ed-contact .contact-form-wrap button[type="submit"],
body.oliv-editorial.ed-contact .contact-form-wrap #srfm-submit-btn {
    font-family: var(--oliv-font-sans) !important;
    font-size: 0.82rem !important;
    letter-spacing: 0.16em !important;
    text-transform: uppercase !important;
    font-weight: 600 !important;
    color: var(--edc-ink) !important;
    background: var(--edc-accent) !important;
    border: 1px solid var(--edc-accent) !important;
    border-radius: 999px !important;
    padding: 1rem 2.4rem !important;
    min-height: 52px !important;
    margin-top: 0.4rem !important;
    cursor: pointer !important;
    box-shadow: none !important;
    transition: background var(--edc-dur) ease,
                transform var(--edc-dur) ease,
                box-shadow var(--edc-dur) ease !important;
}
body.oliv-editorial.ed-contact .contact-form-wrap .srfm-btn-frontend:hover,
body.oliv-editorial.ed-contact .contact-form-wrap .srfm-submit-button:hover,
body.oliv-editorial.ed-contact .contact-form-wrap button[type="submit"]:hover,
body.oliv-editorial.ed-contact .contact-form-wrap #srfm-submit-btn:hover {
    background: #CDD45C !important;
    transform: translateY(-2px) !important;
    box-shadow: 0 10px 28px -12px rgba(191, 199, 74, 0.55) !important;
}
/* submit label sits in .srfm-submit-wrap (a div) — keep dark ink on chartreuse */
body.oliv-editorial.ed-contact .contact-form-wrap .srfm-submit-button .srfm-submit-wrap {
    color: var(--edc-ink) !important;
    gap: 0.6rem;
}
body.oliv-editorial.ed-contact .contact-form-wrap .srfm-submit-container {
    margin-top: clamp(0.5rem, 2vw, 1rem);
}

/* ---------------------------------------------------------------------
   4. SIDEBAR — dark glassmorphism info cards
   (Base paints these as pale cream slabs; override to dark glass so the
   labels/lines/notes are cream/chartreuse on dark, not dark-on-cream.)
   --------------------------------------------------------------------- */
body.oliv-editorial.ed-contact .contact-sidebar {
    position: sticky;
    top: clamp(92px, 12vh, 132px);
    gap: clamp(0.9rem, 1.8vw, 1.3rem);
}
body.oliv-editorial.ed-contact .contact-info-card {
    background: rgba(245, 241, 232, 0.04) !important;
    -webkit-backdrop-filter: blur(10px) saturate(120%);
    backdrop-filter: blur(10px) saturate(120%);
    border: 1px solid var(--edc-hair) !important;
    border-radius: 16px !important;
    padding: clamp(1.3rem, 2vw, 1.7rem) !important;
    position: relative;
    overflow: hidden;
    transition: transform var(--edc-dur) ease,
                border-color var(--edc-dur) ease,
                background var(--edc-dur) ease !important;
}
body.oliv-editorial.ed-contact .contact-info-card:hover {
    transform: translateY(-3px);
    border-color: rgba(191, 199, 74, 0.45) !important;
    background: rgba(245, 241, 232, 0.06) !important;
}
body.oliv-editorial.ed-contact .contact-info-label {
    font-family: var(--oliv-font-sans);
    font-size: 0.72rem;
    letter-spacing: 0.2em;
    text-transform: uppercase;
    font-weight: 600;
    color: var(--edc-accent) !important;
    display: inline-flex;
    align-items: center;
    gap: 0.6rem;
    margin-bottom: 0.7rem;
}
body.oliv-editorial.ed-contact .contact-info-label::before {
    content: "";
    width: clamp(18px, 2.5vw, 26px);
    height: 1px;
    background: var(--edc-accent);
    opacity: 0.7;
    flex: 0 0 auto;
}
body.oliv-editorial.ed-contact .contact-info-line {
    font-family: var(--oliv-font-serif);
    font-size: clamp(1.15rem, 1.5vw, 1.35rem);
    line-height: 1.3;
    color: var(--edc-cream) !important;
    margin: 0 0 0.45rem;
}
body.oliv-editorial.ed-contact .contact-info-note {
    font-family: var(--oliv-font-sans);
    font-size: 0.88rem;
    line-height: 1.6;
    color: var(--edc-muted) !important;
    margin: 0;
}

/* ---------------------------------------------------------------------
   5. FAQ — dark editorial accordion (contact-specific refinement)
   <details.faq-item>/<summary.faq-q>/.faq-a — section is base-dark.
   Base already draws +/- glyph & open color at (0,1,1)/(0,2,2); our
   (0,4,1)/(0,4,2) scope wins cleanly.
   --------------------------------------------------------------------- */
body.oliv-editorial.ed-contact .faq-section .faq-inner { max-width: 56rem; }
body.oliv-editorial.ed-contact .faq-section .eyebrow-script,
body.oliv-editorial.ed-contact .faq-section .oliv-script {
    color: var(--edc-accent) !important;
    text-align: center !important;
}
body.oliv-editorial.ed-contact .faq-section .manifest-title {
    color: var(--edc-cream) !important;
    -webkit-text-fill-color: var(--edc-cream);
    text-align: center !important;
    font-family: var(--oliv-font-serif);
    margin: 0.4rem auto clamp(1.75rem, 3.5vw, 2.75rem);
}
body.oliv-editorial.ed-contact .faq-list {
    border-top: 1px solid var(--edc-hair);
}
body.oliv-editorial.ed-contact .faq-item {
    border-bottom: 1px solid var(--edc-hair) !important;
    transition: border-color var(--edc-dur) ease;
}
body.oliv-editorial.ed-contact .faq-q {
    font-family: var(--oliv-font-serif) !important;
    font-size: clamp(1.2rem, 2.2vw, 1.7rem) !important;
    line-height: 1.3;
    color: var(--edc-cream) !important;
    -webkit-text-fill-color: var(--edc-cream);
    padding: clamp(1rem, 2.2vw, 1.5rem) 2.5rem clamp(1rem, 2.2vw, 1.5rem) 0;
    min-height: 48px;
    cursor: pointer;
    list-style: none;
    position: relative;
    transition: color var(--edc-dur) ease;
}
body.oliv-editorial.ed-contact .faq-q::-webkit-details-marker { display: none; }
/* +/- glyph in chartreuse (overrides base + / minus) */
body.oliv-editorial.ed-contact .faq-q::after {
    content: "+";
    position: absolute;
    right: 0;
    top: 50%;
    transform: translateY(-50%);
    font-family: var(--oliv-font-sans);
    font-size: 1.6rem;
    line-height: 1;
    color: var(--edc-accent) !important;
    transition: transform var(--edc-dur) ease;
}
body.oliv-editorial.ed-contact .faq-item[open] > .faq-q {
    color: var(--edc-accent) !important;
    -webkit-text-fill-color: var(--edc-accent);
}
body.oliv-editorial.ed-contact .faq-item[open] > .faq-q::after {
    content: "\2212"; /* minus */
    transform: translateY(-50%) rotate(180deg);
}
body.oliv-editorial.ed-contact .faq-item[open] {
    border-bottom-color: rgba(191, 199, 74, 0.5) !important;
}
body.oliv-editorial.ed-contact .faq-a {
    padding: 0 2.5rem clamp(1.2rem, 2.5vw, 1.7rem) 0;
}
body.oliv-editorial.ed-contact .faq-a p {
    color: var(--edc-muted) !important;
    font-family: var(--oliv-font-sans);
    font-size: clamp(0.98rem, 1.1vw, 1.08rem);
    line-height: 1.7;
    max-width: 60ch;
    margin: 0;
}

/* ---------------------------------------------------------------------
   6. RESPONSIVE
   --------------------------------------------------------------------- */
/* Tablet 782–1024px */
@media (min-width: 782px) and (max-width: 1024px) {
    body.oliv-editorial.ed-contact .contact-form-section .contact-page-grid {
        grid-template-columns: 1.35fr 1fr;
        gap: clamp(1.75rem, 3.5vw, 2.75rem);
    }
}

/* Mobile <=781px — stack to 1 col, full-width controls, big-type guards */
@media (max-width: 781px) {
    body.oliv-editorial.ed-contact .contact-form-section .contact-page-grid {
        grid-template-columns: 1fr !important;
        gap: clamp(2rem, 7vw, 3rem);
    }
    body.oliv-editorial.ed-contact .contact-sidebar {
        position: static !important;
        top: auto !important;
    }
    /* keep form heading left-aligned (atelier voice) but allow wrap */
    body.oliv-editorial.ed-contact .contact-form-col .manifest-title {
        font-size: clamp(1.9rem, 8.5vw, 2.6rem);
    }
    /* hero H1: full column, prevent char-by-char break */
    body.oliv-editorial.ed-contact .service-hero .hero-h1 {
        font-size: clamp(2.6rem, 12vw, 3.8rem);
        max-width: 100% !important;
        line-height: 1.0;
    }
    body.oliv-editorial.ed-contact .service-hero .service-hero-sub,
    body.oliv-editorial.ed-contact .contact-trust { max-width: 100%; }
    /* submit goes full-width, tap target preserved (>=44px) */
    body.oliv-editorial.ed-contact .contact-form-wrap .srfm-btn-frontend,
    body.oliv-editorial.ed-contact .contact-form-wrap .srfm-submit-button,
    body.oliv-editorial.ed-contact .contact-form-wrap button[type="submit"],
    body.oliv-editorial.ed-contact .contact-form-wrap #srfm-submit-btn {
        width: 100% !important;
        padding: 1rem 1.5rem !important;
    }
    body.oliv-editorial.ed-contact .contact-form-wrap .srfm-submit-container .wp-block-button {
        width: 100%;
    }
    /* inputs stay >=44px tap target (already 50px) */
    body.oliv-editorial.ed-contact .faq-q {
        font-size: clamp(1.1rem, 5.2vw, 1.4rem) !important;
        padding-right: 2rem;
    }
}

/* Honor reduced-motion: drop hover translate/glow transitions */
@media (prefers-reduced-motion: reduce) {
    body.oliv-editorial.ed-contact .contact-info-card,
    body.oliv-editorial.ed-contact .contact-form-wrap .srfm-btn-frontend,
    body.oliv-editorial.ed-contact .contact-form-wrap .srfm-submit-button {
        transition: none !important;
    }
    body.oliv-editorial.ed-contact .contact-info-card:hover,
    body.oliv-editorial.ed-contact .contact-form-wrap .srfm-submit-button:hover {
        transform: none !important;
    }
}
/* === END ed-contact === */

/* ================================================================
   32. FAQ (.ed-faq) — editorial accordion (page content pending)  [v1.9.7, godmode-elevation workflow]
   ================================================================ */
/* =================================================================
   OLIV GODMODE — page type: FAQ  (body.oliv-editorial.ed-faq)

   ADVERSARIAL-REVIEW VERDICT: REJECT (do not ship as a "styled" page).
   REASON: _build/faq_live.html has an EMPTY content body. The sole
   content slot <div class="entry-content clear"> (lines 204-211) is
   blank. NONE of the proposal's selectors exist in the live DOM:
   .service-hero / .hero-h1 / .service-hero-sub / .faq-quicklinks /
   .faq-section / .faq-inner / .faq-list / .faq-item / .faq-q / .faq-a /
   .faq-cat / .contact-cta-section / .contact-title / .eyebrow-script /
   .wp-block-button__link  ->  ALL match ZERO elements on this page.
   (Every textual match for those names is in the <head> stylesheets on
   lines 55/66, and "Intrebari frecvente" only appears in title/OG/
   breadcrumb chrome — never as content.) Shipping CSS now styles
   nothing; the real fix is UPSTREAM: author the FAQ content in
   WordPress, re-export faq_live.html, then re-run this review against
   real markup.

   The block below is the CORRECTED, do-no-harm version: every latent
   bug in the proposal is fixed so that IF/WHEN the matching markup is
   authored with these class names, it renders correctly (dark surfaces,
   contrast-safe cream/chartreuse text, working glass surfaces, sane
   counters, no overflow). It is fully scoped to .ed-faq and touches no
   header/footer and no copy. It is INERT on the current empty page.

   Palette: canvas #131210 / cream #F5F1E8 / muted rgba(245,241,232,.74)
   / accent #BFC74A / AAA dark-chartreuse #4D5615 (light surfaces only).
   ================================================================= */

body.oliv-editorial.ed-faq {
    --faq-accent: #BFC74A;
    --faq-ink: #131210;
    --faq-cream: #F5F1E8;
    --faq-muted: rgba(245, 241, 232, 0.74);
    --faq-hair: rgba(191, 199, 74, 0.20);
    --faq-hair-soft: rgba(245, 241, 232, 0.10);
    --faq-glass: rgba(245, 241, 232, 0.045);
    --faq-glass-line: rgba(191, 199, 74, 0.28);
}

/* ---------------------------------------------------------------
   1. HERO + INTRO — dark canvas, tame the long RO word, accent
   --------------------------------------------------------------- */
body.oliv-editorial.ed-faq .service-hero {
    padding-block: clamp(78px, 12vw, 180px) clamp(36px, 6vw, 72px) !important;
}
body.oliv-editorial.ed-faq .service-hero .hero-eyebrow,
body.oliv-editorial.ed-faq .service-hero .oliv-eyebrow {
    color: var(--faq-accent) !important;
}
body.oliv-editorial.ed-faq .service-hero .hero-h1 {
    font-size: clamp(2.7rem, 8vw, 6.4rem) !important;
    line-height: 0.98 !important;
    letter-spacing: -0.025em;
    max-width: 18ch;
    margin-inline: auto !important;
    overflow-wrap: normal;
    word-break: keep-all;
    hyphens: none;
}
body.oliv-editorial.ed-faq .service-hero .service-hero-sub {
    color: var(--faq-muted) !important;
    font-size: clamp(1.05rem, 1.5vw, 1.32rem) !important;
    line-height: 1.6 !important;
    max-width: 46ch !important;
    margin: clamp(1.6rem, 3vw, 2.4rem) auto 0 !important;
    padding-top: clamp(1.4rem, 2.5vw, 2rem);
    position: relative;
}
body.oliv-editorial.ed-faq .service-hero .service-hero-sub::before {
    content: "";
    position: absolute;
    top: 0; left: 50%;
    transform: translateX(-50%);
    width: clamp(40px, 6vw, 72px);
    height: 2px;
    background: var(--faq-accent);
}

/* ---------------------------------------------------------------
   2. CATEGORY QUICK-LINKS / anchor nav — chartreuse hairline row
   (in-content only; never the site nav)
   --------------------------------------------------------------- */
body.oliv-editorial.ed-faq .faq-quicklinks,
body.oliv-editorial.ed-faq .faq-anchors,
body.oliv-editorial.ed-faq .faq-inner > nav ul {
    list-style: none;
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: clamp(0.5rem, 1.5vw, 1.1rem) clamp(1rem, 2.5vw, 2rem);
    margin: clamp(1.5rem, 4vh, 3rem) auto clamp(2rem, 5vh, 3.5rem);
    padding: 0;
    max-width: 64rem;
}
body.oliv-editorial.ed-faq .faq-quicklinks a,
body.oliv-editorial.ed-faq .faq-anchors a,
body.oliv-editorial.ed-faq .faq-inner > nav a {
    display: inline-flex;
    align-items: center;
    min-height: 44px;
    padding: 0.25rem 0.1rem;
    font-family: var(--oliv-font-sans);
    font-size: clamp(0.72rem, 0.95vw, 0.85rem);
    letter-spacing: 0.16em;
    text-transform: uppercase;
    color: var(--faq-muted);
    text-decoration: none;
    border-bottom: 1px solid transparent;
    transition: color var(--oliv-dur-fast, 240ms) ease,
                border-color var(--oliv-dur-fast, 240ms) ease;
}
body.oliv-editorial.ed-faq .faq-quicklinks a:hover,
body.oliv-editorial.ed-faq .faq-quicklinks a:focus-visible,
body.oliv-editorial.ed-faq .faq-anchors a:hover,
body.oliv-editorial.ed-faq .faq-anchors a:focus-visible,
body.oliv-editorial.ed-faq .faq-inner > nav a:hover,
body.oliv-editorial.ed-faq .faq-inner > nav a:focus-visible {
    color: var(--faq-accent);
    border-bottom-color: var(--faq-accent);
    outline: none;
}

/* ---------------------------------------------------------------
   3. ACCORDION SHELL + category headers
   FIX: counter scoped to the faq inner (not .faq-list), single reset.
   --------------------------------------------------------------- */
body.oliv-editorial.ed-faq .faq-section .faq-inner {
    max-width: 64rem !important;
    margin-inline: auto;
    padding-inline: clamp(1.25rem, 5vw, 4rem);
    counter-reset: faqcat 0;              /* category numerals live here */
}
body.oliv-editorial.ed-faq .faq-section .eyebrow-script {
    color: var(--faq-accent) !important;
}
body.oliv-editorial.ed-faq .faq-cat,
body.oliv-editorial.ed-faq .faq-category,
body.oliv-editorial.ed-faq .faq-cat-title,
body.oliv-editorial.ed-faq .faq-inner > h2,
body.oliv-editorial.ed-faq .faq-inner > h3 {
    counter-increment: faqcat;
    display: flex;
    align-items: baseline;
    gap: clamp(0.75rem, 2vw, 1.5rem);
    margin: clamp(3rem, 6vh, 5rem) 0 clamp(1rem, 2vw, 1.75rem);
    padding-top: clamp(1.5rem, 3vh, 2.5rem);
    border-top: 1px solid var(--faq-hair);
    font-family: var(--oliv-font-serif);
    font-weight: 400;
    font-size: clamp(1.5rem, 3.2vw, 2.6rem);
    line-height: 1.05;
    letter-spacing: -0.02em;
    color: var(--faq-cream) !important;
    -webkit-text-fill-color: var(--faq-cream);
}
body.oliv-editorial.ed-faq .faq-inner > :is(.faq-cat, .faq-category, .faq-cat-title, h2, h3):first-child {
    margin-top: clamp(1rem, 2vh, 1.5rem);
}
body.oliv-editorial.ed-faq .faq-cat::before,
body.oliv-editorial.ed-faq .faq-category::before,
body.oliv-editorial.ed-faq .faq-cat-title::before,
body.oliv-editorial.ed-faq .faq-inner > h2::before,
body.oliv-editorial.ed-faq .faq-inner > h3::before {
    content: counter(faqcat, upper-roman);
    font-style: italic;
    font-size: 0.62em;
    color: var(--faq-accent);
    flex: 0 0 auto;
    line-height: 1;
}

/* ---------------------------------------------------------------
   4. ACCORDION ITEMS — index numeral, glass open-state
   FIX: single counter-reset for faqitem; glass surface forced with
   !important so it beats the base blanket rule; <summary> display.
   --------------------------------------------------------------- */
body.oliv-editorial.ed-faq .faq-list {
    counter-reset: faqitem 0;
    border-top: 1px solid var(--faq-hair);
}
body.oliv-editorial.ed-faq .faq-item {
    counter-increment: faqitem;
    border-bottom: 1px solid var(--faq-hair-soft) !important;
    position: relative;
    transition: border-color var(--oliv-dur-fast, 240ms) ease;
}

body.oliv-editorial.ed-faq .faq-q {
    display: block;                       /* normalize <summary> */
    font-family: var(--oliv-font-serif) !important;
    font-size: clamp(1.18rem, 2vw, 1.65rem) !important;
    line-height: 1.32 !important;
    font-weight: 400;
    color: var(--faq-cream) !important;
    -webkit-text-fill-color: var(--faq-cream);
    padding: clamp(1.2rem, 2.2vw, 1.75rem) 3rem clamp(1.2rem, 2.2vw, 1.75rem)
             clamp(2.4rem, 5vw, 4.2rem) !important;
    cursor: pointer;
    position: relative;
    list-style: none;
    min-height: 44px;
    box-sizing: border-box;
    overflow-wrap: break-word;            /* long RO questions never overflow */
    transition: color var(--oliv-dur-fast, 240ms) ease;
}
body.oliv-editorial.ed-faq .faq-q::-webkit-details-marker { display: none; }

body.oliv-editorial.ed-faq .faq-q::before {
    content: counter(faqitem, decimal-leading-zero);
    position: absolute;
    left: 0;
    top: clamp(1.25rem, 2.3vw, 1.85rem);
    font-family: var(--oliv-font-serif);
    font-style: italic;
    font-size: clamp(0.85rem, 1.2vw, 1.05rem);
    color: var(--faq-accent);
    opacity: 0.72;
    transition: opacity var(--oliv-dur-fast, 240ms) ease;
}
body.oliv-editorial.ed-faq .faq-q::after {
    content: "+";
    position: absolute;
    right: clamp(0.25rem, 1vw, 0.75rem);
    top: 50%;
    transform: translateY(-50%);
    font-family: var(--oliv-font-sans);
    font-size: 1.6rem;
    font-weight: 300;
    line-height: 1;
    color: var(--faq-accent) !important;
    transition: transform var(--oliv-dur-normal, 480ms) var(--oliv-ease-cinematic, ease);
}
body.oliv-editorial.ed-faq .faq-q:hover,
body.oliv-editorial.ed-faq .faq-q:focus-visible {
    color: var(--faq-accent) !important;
    -webkit-text-fill-color: var(--faq-accent);
    outline: none;
}
body.oliv-editorial.ed-faq .faq-q:hover::before,
body.oliv-editorial.ed-faq .faq-q:focus-visible::before { opacity: 1; }

/* OPEN STATE — glass lift. FIX: background forced with !important so it
   actually paints over the high-specificity base blanket charcoal rule. */
body.oliv-editorial.ed-faq .faq-item[open] {
    border-bottom-color: var(--faq-glass-line) !important;
    background: var(--faq-glass) !important;
    -webkit-backdrop-filter: blur(10px) saturate(1.15);
    backdrop-filter: blur(10px) saturate(1.15);
    box-shadow: inset 0 1px 0 rgba(191, 199, 74, 0.16),
                inset 2px 0 0 var(--faq-accent);
    border-radius: 2px;
}
body.oliv-editorial.ed-faq .faq-item[open] .faq-q {
    color: var(--faq-accent) !important;
    -webkit-text-fill-color: var(--faq-accent);
}
body.oliv-editorial.ed-faq .faq-item[open] .faq-q::before { opacity: 1; }
body.oliv-editorial.ed-faq .faq-item[open] .faq-q::after {
    content: "\2013";
    transform: translateY(-50%) rotate(180deg);
}

/* ANSWER — readable muted-cream on dark, comfortable measure */
body.oliv-editorial.ed-faq .faq-a {
    padding: 0 clamp(1rem, 3vw, 3rem) clamp(1.4rem, 2.4vw, 2rem)
             clamp(2.4rem, 5vw, 4.2rem) !important;
}
body.oliv-editorial.ed-faq .faq-a p {
    font-family: var(--oliv-font-sans) !important;
    font-size: clamp(1rem, 1.2vw, 1.08rem) !important;
    line-height: 1.75 !important;
    color: var(--faq-muted) !important;
    max-width: 60ch;
    margin: 0;
}
body.oliv-editorial.ed-faq .faq-a a {
    color: var(--faq-accent) !important;
    text-underline-offset: 3px;
}
body.oliv-editorial.ed-faq .faq-item[open] .faq-a {
    animation: edFaqAnswerIn var(--oliv-dur-normal, 480ms) var(--oliv-ease-cinematic, ease) both;
}
@keyframes edFaqAnswerIn {
    from { opacity: 0; }
    to   { opacity: 1; }
}

/* ---------------------------------------------------------------
   5. CONTACT CTA — glass card on dark.
   FIX: glass surface forced with !important so it beats the blanket
   rule; title is cream on that dark glass (contrast-safe).
   --------------------------------------------------------------- */
body.oliv-editorial.ed-faq .contact-cta-section {
    padding-block: clamp(4rem, 9vw, 8rem) !important;
}
body.oliv-editorial.ed-faq .contact-cta-section .contact-cta-inner,
body.oliv-editorial.ed-faq .contact-cta-section > .oliv-section-inner,
body.oliv-editorial.ed-faq .contact-cta-section .container {
    max-width: 50rem;
    margin-inline: auto;
    padding: clamp(2.25rem, 5vw, 4rem) clamp(1.5rem, 4vw, 3.5rem);
    background: var(--faq-glass) !important;
    -webkit-backdrop-filter: blur(14px) saturate(1.2);
    backdrop-filter: blur(14px) saturate(1.2);
    border: 1px solid var(--faq-glass-line);
    border-radius: 4px;
    text-align: center;
    box-shadow: 0 24px 60px -30px rgba(0, 0, 0, 0.7);
}
body.oliv-editorial.ed-faq .contact-cta-section .eyebrow-script {
    color: var(--faq-accent) !important;
    text-align: center !important;
}
body.oliv-editorial.ed-faq .contact-cta-section .contact-title {
    color: var(--faq-cream) !important;
    -webkit-text-fill-color: var(--faq-cream);
    font-size: clamp(2.3rem, 6vw, 4.6rem) !important;
    line-height: 1 !important;
    letter-spacing: -0.025em;
    max-width: 16ch;
    margin-inline: auto;
    overflow-wrap: break-word;
}
body.oliv-editorial.ed-faq .contact-cta-section .contact-sub {
    color: var(--faq-muted) !important;
    max-width: 42ch;
    margin: clamp(1rem, 2vw, 1.5rem) auto 0;
}
/* primary button — solid chartreuse ink button (dark text on chartreuse = AA+) */
body.oliv-editorial.ed-faq .contact-cta-section .wp-block-button__link {
    background: var(--faq-accent) !important;
    color: var(--faq-ink) !important;
    border: 1px solid var(--faq-accent) !important;
    border-radius: 0 !important;
    font-family: var(--oliv-font-sans);
    font-weight: 600;
    letter-spacing: 0.02em;
    padding: clamp(0.85rem, 1.4vw, 1.1rem) clamp(1.75rem, 3vw, 2.5rem) !important;
    min-height: 44px;
    transition: transform var(--oliv-dur-fast, 240ms) ease,
                background var(--oliv-dur-fast, 240ms) ease,
                color var(--oliv-dur-fast, 240ms) ease;
}
/* hover: ghost button — chartreuse text/border on the dark glass = readable */
body.oliv-editorial.ed-faq .contact-cta-section .wp-block-button__link:hover,
body.oliv-editorial.ed-faq .contact-cta-section .wp-block-button__link:focus-visible {
    background: transparent !important;
    color: var(--faq-accent) !important;
    transform: translateY(-2px);
    outline: none;
}
/* secondary (WhatsApp) link — underlined chartreuse on dark */
body.oliv-editorial.ed-faq .contact-cta-section a:not(.wp-block-button__link) {
    display: inline-flex;
    align-items: center;
    min-height: 44px;
    color: var(--faq-accent) !important;
    text-decoration: underline;
    text-underline-offset: 4px;
    text-decoration-thickness: 1px;
    letter-spacing: 0.02em;
}

/* ---------------------------------------------------------------
   6. RESPONSIVE — tablet 782-1024, mobile <=781
   --------------------------------------------------------------- */
@media (min-width: 782px) and (max-width: 1024px) {
    body.oliv-editorial.ed-faq .faq-section .faq-inner { max-width: 52rem !important; }
    body.oliv-editorial.ed-faq .faq-q { font-size: clamp(1.2rem, 2.3vw, 1.5rem) !important; }
}

@media (max-width: 781px) {
    body.oliv-editorial.ed-faq .service-hero .hero-h1 {
        font-size: clamp(2.2rem, 11vw, 3.4rem) !important;
        max-width: 100% !important;
        line-height: 1.02 !important;
    }
    body.oliv-editorial.ed-faq .service-hero .service-hero-sub { max-width: 100% !important; }

    body.oliv-editorial.ed-faq .faq-quicklinks,
    body.oliv-editorial.ed-faq .faq-anchors,
    body.oliv-editorial.ed-faq .faq-inner > nav ul {
        justify-content: flex-start;
        gap: 0.6rem 1.1rem;
    }

    body.oliv-editorial.ed-faq .faq-cat,
    body.oliv-editorial.ed-faq .faq-category,
    body.oliv-editorial.ed-faq .faq-cat-title,
    body.oliv-editorial.ed-faq .faq-inner > h2,
    body.oliv-editorial.ed-faq .faq-inner > h3 {
        flex-direction: column;
        gap: 0.35rem;
        font-size: clamp(1.45rem, 7vw, 2rem);
    }

    body.oliv-editorial.ed-faq .faq-q {
        font-size: clamp(1.1rem, 5vw, 1.32rem) !important;
        padding-left: 2rem !important;
        padding-right: 2.4rem !important;
    }
    body.oliv-editorial.ed-faq .faq-q::before { top: clamp(1.25rem, 5vw, 1.5rem); }
    body.oliv-editorial.ed-faq .faq-a {
        padding-left: 2rem !important;
        padding-right: 1.25rem !important;
    }
    body.oliv-editorial.ed-faq .faq-a p { max-width: 100%; }

    body.oliv-editorial.ed-faq .contact-cta-section .contact-cta-inner,
    body.oliv-editorial.ed-faq .contact-cta-section > .oliv-section-inner,
    body.oliv-editorial.ed-faq .contact-cta-section .container {
        padding: clamp(1.75rem, 7vw, 2.5rem) clamp(1.25rem, 5vw, 1.75rem);
    }
    body.oliv-editorial.ed-faq .contact-cta-section .contact-title {
        font-size: clamp(2rem, 10vw, 3rem) !important;
        max-width: 100%;
    }
    body.oliv-editorial.ed-faq .contact-cta-section .wp-block-button__link {
        display: block;
        width: 100%;
        text-align: center;
    }
}

@media (prefers-reduced-motion: reduce) {
    body.oliv-editorial.ed-faq .faq-item[open] .faq-a { animation: none; }
}


/* ================================================================
   33. LEGAL (.ed-legal) — max readability (page content pending)  [v1.9.7, godmode-elevation workflow]
   ================================================================ */
/* =========================================================================
   OLIV — ed-legal  (Politică confidențialitate / Termeni / Cookies)
   Page type: LEGAL — sober, document-grade, maximum long-form readability.

   REVIEWER NOTE (load-bearing): in the live DOM the .entry-content is EMPTY
   (whitespace only) and the article header is ast-no-title — the ONLY element
   that renders today is .oliv-breadcrumbs-wrap. The prose rules below are
   therefore DEFENSIVE scaffolding that activate only if/when the legal copy
   is actually published (it is currently empty server-side). They are kept
   because the brief asks us to style the .entry-content prose tag-tree, and
   they have been made internally consistent (the contradictory meta-line
   color declaration was removed). Verify the page body actually has content
   before expecting the document styling to appear.

   Surface model: charcoal canvas everywhere (base blanket rule) + ONE
   restrained cream masthead band around the title/metadata IF it exists.
   Every selector scoped to body.oliv-editorial.ed-legal. Header/footer/copy
   untouched.
   ========================================================================= */

/* ---- Local tokens (brief: --prose-max-width 65ch, --prose-line-height 1.7) */
body.oliv-editorial.ed-legal{
  --legal-canvas:#131210;
  --legal-cream:#F5F1E8;
  --legal-cream-muted:rgba(245,241,232,.74);
  --legal-cream-faint:rgba(245,241,232,.14);
  --legal-accent:#BFC74A;
  --legal-ink:#1C1C1A;
  --legal-ink-accent:#4D5615;     /* AAA dark-chartreuse, ONLY on light */
  --legal-card:#F6F1E8;
  --legal-measure:68ch;           /* visible text measure */
  --legal-lh:1.75;
  --legal-gap:clamp(2.4rem,5vw,4rem); /* ~ --space-2xl between sections */
}

/* ---- Reading spine: neutralise theme article chrome, center the column --- */
body.oliv-editorial.ed-legal #content,
body.oliv-editorial.ed-legal #primary,
body.oliv-editorial.ed-legal .site-main,
body.oliv-editorial.ed-legal article.ast-article-single{
  background:transparent !important;
  border:0 !important;
  box-shadow:none !important;
}
body.oliv-editorial.ed-legal .ast-container{
  max-width:none;
}
body.oliv-editorial.ed-legal #primary{
  width:100%;
  margin-inline:auto;
  padding-block:clamp(2rem,6vw,5rem) clamp(3rem,8vw,6rem);
}
body.oliv-editorial.ed-legal article.ast-article-single{
  max-width:72ch;
  margin-inline:auto;
  padding-inline:clamp(1.25rem,5vw,2rem);
}

/* ---- Breadcrumbs rail  (THE ONLY ELEMENT THAT RENDERS TODAY) ------------- */
body.oliv-editorial.ed-legal .oliv-breadcrumbs-wrap{
  max-width:72ch;
  margin-inline:auto;
  padding:clamp(1.5rem,5vw,2.5rem) clamp(1.25rem,5vw,2rem) 0;
}
body.oliv-editorial.ed-legal .oliv-breadcrumbs-wrap .rank-math-breadcrumb p{
  margin:0;
  font-size:.74rem;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--legal-cream-muted);
}
body.oliv-editorial.ed-legal .oliv-breadcrumbs-wrap a{
  color:var(--legal-cream-muted);
  text-decoration:none;
  border-bottom:1px solid transparent;
  transition:color .25s ease,border-color .25s ease;
}
body.oliv-editorial.ed-legal .oliv-breadcrumbs-wrap a:hover,
body.oliv-editorial.ed-legal .oliv-breadcrumbs-wrap a:focus-visible{
  color:var(--legal-accent);
  border-bottom-color:var(--legal-accent);
}
/* DOM: the "·" lives in an inner span.separator nested inside an outer
   span.separator; dimming both is correct and harmless. */
body.oliv-editorial.ed-legal .oliv-breadcrumbs-wrap .separator{
  color:rgba(245,241,232,.4);
  padding-inline:.15em;
}
body.oliv-editorial.ed-legal .oliv-breadcrumbs-wrap .last{
  color:var(--legal-cream);
}

/* ---- The prose container (counter root) --------------------------------- */
body.oliv-editorial.ed-legal .entry-content{
  counter-reset:legal-h2;
  color:var(--legal-cream-muted);
  font-size:clamp(1rem,.97rem + .2vw,1.0625rem);
  line-height:var(--legal-lh);
}
/* Reading measure for every flowing block */
body.oliv-editorial.ed-legal .entry-content > *{
  max-width:var(--legal-measure);
  margin-inline:auto;
}
body.oliv-editorial.ed-legal .entry-content > hr{
  max-width:var(--legal-measure);
}

/* =========================================================================
   TITLE + METADATA  — the ONE light "20%" moment (defensive; no h1 today)
   First h1 of the entry becomes a cream masthead band; the immediately
   following paragraph (the "Ultima actualizare …" meta line) joins it.
   ========================================================================= */
body.oliv-editorial.ed-legal .entry-content > h1:first-child{
  max-width:none;
  margin:0 0 clamp(2rem,5vw,3.25rem);
  padding:clamp(2.4rem,6vw,4rem) clamp(1.5rem,5vw,2.5rem) clamp(1.6rem,4vw,2.4rem);
  background:var(--legal-card);
  border-radius:4px;
  position:relative;
  font-family:"Fraunces",Georgia,serif;
  font-weight:600;
  line-height:1.04;
  letter-spacing:-.01em;
  font-size:clamp(2.1rem,1.4rem + 4vw,3.9rem);
  color:var(--legal-ink);
  overflow-wrap:break-word;
  word-break:normal;
  hyphens:none;
}
body.oliv-editorial.ed-legal .entry-content > h1:first-child::after{
  content:"";
  position:absolute;
  left:clamp(1.5rem,5vw,2.5rem);
  bottom:clamp(1rem,3vw,1.6rem);
  width:3.5rem;height:2px;
  background:var(--legal-accent);
}
/* "Ultima actualizare …" meta line sits on CHARCOAL (outside the band):
   single correct on-dark chartreuse declaration. (Removed the prior
   contradictory --legal-ink-accent #4D5615 declaration, which is for LIGHT
   surfaces and would have been near-invisible on charcoal.) */
body.oliv-editorial.ed-legal .entry-content > h1:first-child + p{
  max-width:var(--legal-measure);
  margin-top:-1.4rem;
  margin-bottom:clamp(2.4rem,5vw,3.5rem);
  font-family:"Inter",system-ui,sans-serif;
  font-size:.78rem;
  letter-spacing:.12em;
  text-transform:uppercase;
  color:var(--legal-accent);
}

/* =========================================================================
   BODY HEADINGS — cream hierarchy on charcoal, anchored, eyebrow rules
   ========================================================================= */
body.oliv-editorial.ed-legal .entry-content h2{
  margin:var(--legal-gap) auto .9rem;
  scroll-margin-top:120px;
  position:relative;
  padding-top:1.4rem;
  font-family:"Fraunces",Georgia,serif;
  font-weight:600;
  line-height:1.12;
  letter-spacing:-.005em;
  font-size:clamp(1.5rem,1.2rem + 1.5vw,2.15rem);
  color:var(--legal-cream);
  overflow-wrap:break-word;
  counter-increment:legal-h2;
}
body.oliv-editorial.ed-legal .entry-content h2::before{
  content:"";
  position:absolute;top:0;left:0;
  width:2.5rem;height:2px;
  background:var(--legal-accent);
}
body.oliv-editorial.ed-legal .entry-content h2::after{
  content:counter(legal-h2,decimal-leading-zero);
  position:absolute;top:1.4rem;right:0;
  font-family:"Inter",system-ui,sans-serif;
  font-weight:600;
  font-size:.7rem;
  letter-spacing:.1em;
  color:rgba(191,199,74,.6);
}
body.oliv-editorial.ed-legal .entry-content h3{
  margin:2.4rem auto .6rem;
  scroll-margin-top:120px;
  font-family:"Fraunces",Georgia,serif;
  font-weight:600;
  line-height:1.2;
  font-size:clamp(1.18rem,1.05rem + .6vw,1.45rem);
  color:var(--legal-cream);
}
body.oliv-editorial.ed-legal .entry-content h4{
  margin:1.8rem auto .5rem;
  font-family:"Inter",system-ui,sans-serif;
  font-weight:700;
  font-size:.8rem;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--legal-accent);
}

/* =========================================================================
   BODY PROSE — muted cream, long-form measure, strong = cream emphasis
   ========================================================================= */
body.oliv-editorial.ed-legal .entry-content p{
  margin:0 auto 1.25em;
  color:var(--legal-cream-muted);
}
/* standfirst: first body paragraph after the meta line reads brighter */
body.oliv-editorial.ed-legal .entry-content > h1:first-child + p + p{
  font-size:clamp(1.08rem,1rem + .4vw,1.2rem);
  line-height:1.65;
  color:var(--legal-cream);
}
body.oliv-editorial.ed-legal .entry-content strong,
body.oliv-editorial.ed-legal .entry-content b{
  color:var(--legal-cream);
  font-weight:650;
}
body.oliv-editorial.ed-legal .entry-content em,
body.oliv-editorial.ed-legal .entry-content i{
  color:var(--legal-cream);
  font-style:italic;
}

/* ---- Inline links (cross-legal links, mailto DPO) ----------------------- */
body.oliv-editorial.ed-legal .entry-content a:not(.wp-element-button):not(.button){
  color:var(--legal-accent);
  text-decoration:none;
  border-bottom:1px solid rgba(191,199,74,.55);
  padding-bottom:1px;
  transition:color .22s ease,border-color .22s ease;
}
body.oliv-editorial.ed-legal .entry-content a:not(.wp-element-button):not(.button):hover,
body.oliv-editorial.ed-legal .entry-content a:not(.wp-element-button):not(.button):focus-visible{
  color:var(--legal-cream);
  border-bottom-color:var(--legal-cream);
}
body.oliv-editorial.ed-legal .entry-content a:visited:not(.wp-element-button):not(.button){
  color:var(--legal-accent);
}

/* =========================================================================
   LISTS — chartreuse markers hung in the gutter
   ========================================================================= */
body.oliv-editorial.ed-legal .entry-content ul,
body.oliv-editorial.ed-legal .entry-content ol{
  margin:0 auto 1.4em;
  padding-left:1.4em;
  color:var(--legal-cream-muted);
}
body.oliv-editorial.ed-legal .entry-content li{
  margin-bottom:.55em;
  line-height:1.65;
}
body.oliv-editorial.ed-legal .entry-content ul{list-style:none;padding-left:1.5em;}
body.oliv-editorial.ed-legal .entry-content ul > li{position:relative;}
body.oliv-editorial.ed-legal .entry-content ul > li::before{
  content:"";
  position:absolute;left:-1.5em;top:.62em;
  width:.42em;height:.42em;
  background:var(--legal-accent);
}
body.oliv-editorial.ed-legal .entry-content ol{
  list-style:none;counter-reset:legal-li;padding-left:1.9em;
}
body.oliv-editorial.ed-legal .entry-content ol > li{
  position:relative;counter-increment:legal-li;
}
body.oliv-editorial.ed-legal .entry-content ol > li::before{
  content:counter(legal-li) ".";
  position:absolute;left:-1.9em;top:0;
  min-width:1.5em;
  font-family:"Inter",system-ui,sans-serif;
  font-weight:600;
  font-size:.92em;
  color:var(--legal-accent);
}
body.oliv-editorial.ed-legal .entry-content li ul,
body.oliv-editorial.ed-legal .entry-content li ol{
  margin:.55em auto .2em;
}

/* =========================================================================
   TABLES — legible dark data table (cookie name/purpose/duration/3rd-party)
   ========================================================================= */
body.oliv-editorial.ed-legal .entry-content table{
  width:100%;
  max-width:var(--legal-measure);
  margin:1.8rem auto 2rem;
  border-collapse:collapse;
  font-size:.94rem;
  line-height:1.55;
}
body.oliv-editorial.ed-legal .entry-content thead th,
body.oliv-editorial.ed-legal .entry-content table th{
  text-align:left;
  padding:.85rem 1rem;
  font-family:"Inter",system-ui,sans-serif;
  font-weight:700;
  font-size:.72rem;
  letter-spacing:.1em;
  text-transform:uppercase;
  color:var(--legal-accent);
  background:rgba(191,199,74,.08);
  -webkit-backdrop-filter:blur(6px);
  backdrop-filter:blur(6px);
  border-bottom:1px solid rgba(191,199,74,.35);
}
body.oliv-editorial.ed-legal .entry-content tbody td,
body.oliv-editorial.ed-legal .entry-content table td{
  padding:.8rem 1rem;
  color:var(--legal-cream-muted);
  border-bottom:1px solid var(--legal-cream-faint);
  vertical-align:top;
}
body.oliv-editorial.ed-legal .entry-content tbody tr:hover td{
  background:rgba(245,241,232,.03);
}

/* =========================================================================
   STRUCTURAL ACCENTS — hr divider, blockquote pull register
   ========================================================================= */
body.oliv-editorial.ed-legal .entry-content hr{
  border:0;height:1px;
  margin:var(--legal-gap) auto;
  background:linear-gradient(90deg,var(--legal-accent),transparent);
}
body.oliv-editorial.ed-legal .entry-content blockquote{
  margin:1.8rem auto;
  padding:.4rem 0 .4rem 1.4rem;
  border-left:2px solid var(--legal-accent);
  color:var(--legal-cream);
  font-style:normal;
}
body.oliv-editorial.ed-legal .entry-content blockquote p{
  color:var(--legal-cream);
}

/* =========================================================================
   CONTACT-LINK FOOTER BLOCK (brief §3) — chartreuse-outline pill CTA
   ========================================================================= */
body.oliv-editorial.ed-legal .entry-content .wp-block-button,
body.oliv-editorial.ed-legal .entry-content .wp-block-buttons{
  margin:1.6rem auto;
}
body.oliv-editorial.ed-legal .entry-content .wp-element-button,
body.oliv-editorial.ed-legal .entry-content a.button,
body.oliv-editorial.ed-legal .entry-content .wp-block-button__link{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:44px;
  padding:.8rem 1.6rem;
  border:1px solid var(--legal-accent);
  border-radius:999px;
  background:transparent;
  color:var(--legal-accent) !important;
  font-family:"Inter",system-ui,sans-serif;
  font-weight:600;
  font-size:.9rem;
  letter-spacing:.04em;
  text-decoration:none;
  transition:background-color .25s ease,color .25s ease;
}
body.oliv-editorial.ed-legal .entry-content .wp-element-button:hover,
body.oliv-editorial.ed-legal .entry-content .wp-element-button:focus-visible,
body.oliv-editorial.ed-legal .entry-content a.button:hover,
body.oliv-editorial.ed-legal .entry-content a.button:focus-visible,
body.oliv-editorial.ed-legal .entry-content .wp-block-button__link:hover,
body.oliv-editorial.ed-legal .entry-content .wp-block-button__link:focus-visible{
  background:var(--legal-accent);
  color:var(--legal-ink) !important;
  border-color:var(--legal-accent);
}

/* Focus visibility everywhere in the prose + breadcrumb */
body.oliv-editorial.ed-legal .entry-content a:focus-visible,
body.oliv-editorial.ed-legal .oliv-breadcrumbs-wrap a:focus-visible{
  outline:2px solid var(--legal-accent);
  outline-offset:3px;
  border-radius:2px;
}

/* =========================================================================
   RESPONSIVE
   ========================================================================= */
/* Tablet 782–1024px: slightly tighter spine */
@media (min-width:782px) and (max-width:1024px){
  body.oliv-editorial.ed-legal article.ast-article-single{
    max-width:68ch;
  }
}

/* Mobile <=781px */
@media (max-width:781px){
  body.oliv-editorial.ed-legal #primary{
    padding-block:1.5rem 3rem;
  }
  body.oliv-editorial.ed-legal article.ast-article-single,
  body.oliv-editorial.ed-legal .oliv-breadcrumbs-wrap{
    padding-inline:1.25rem;
  }
  body.oliv-editorial.ed-legal .entry-content > h1:first-child{
    padding:1.9rem 1.25rem 1.5rem;
    font-size:clamp(2rem,7vw + .5rem,2.7rem);
    line-height:1.08;
  }
  body.oliv-editorial.ed-legal .entry-content h2::after{
    display:none;
  }
  body.oliv-editorial.ed-legal .entry-content h2{
    padding-top:1.2rem;
    font-size:clamp(1.4rem,5.5vw,1.8rem);
  }
  body.oliv-editorial.ed-legal .entry-content table{
    display:block;
    width:100%;
    overflow-x:auto;
    -webkit-overflow-scrolling:touch;
    white-space:nowrap;
  }
  body.oliv-editorial.ed-legal .entry-content thead th,
  body.oliv-editorial.ed-legal .entry-content tbody td{
    white-space:normal;
    min-width:9rem;
  }
  body.oliv-editorial.ed-legal .entry-content .wp-element-button,
  body.oliv-editorial.ed-legal .entry-content a.button,
  body.oliv-editorial.ed-legal .entry-content .wp-block-button__link{
    display:flex;
    width:100%;
  }
}

/* Respect reduced motion (transitions only — no JS-reveal conflict) */
@media (prefers-reduced-motion:reduce){
  body.oliv-editorial.ed-legal .entry-content a,
  body.oliv-editorial.ed-legal .entry-content .wp-element-button,
  body.oliv-editorial.ed-legal .oliv-breadcrumbs-wrap a{
    transition:none;
  }
}

/* ================================================================
   34. PROIECTE (.ed-proiecte) — portfolio index  [v1.9.7, godmode-elevation workflow]
   ================================================================ */
/* =====================================================================
   OLIV — page type: PROIECTE (archive / editorial index)
   Scope: body.oliv-editorial.ed-proiecte  (mandatory on every selector)
   Surfaces: all three sections render DARK (charcoal) from the base.
   No header/footer/copy touched. Motion via existing .oliv-fade-up.
   ===================================================================== */

/* ---- local tokens (scoped, no globals leaked) ---- */
body.oliv-editorial.ed-proiecte {
  --pj-canvas: #131210;
  --pj-cream: #F5F1E8;
  --pj-cream-muted: rgba(245, 241, 232, 0.74);
  --pj-cream-faint: rgba(245, 241, 232, 0.46);
  --pj-accent: #BFC74A;
  --pj-hair: rgba(191, 199, 74, 0.30);
  --pj-hair-soft: rgba(245, 241, 232, 0.12);
  --pj-glass: rgba(245, 241, 232, 0.035);
  --pj-glass-hover: rgba(245, 241, 232, 0.06);
}

/* =====================================================================
   1. HERO — archive masthead
   ===================================================================== */
body.oliv-editorial.ed-proiecte #hero.service-hero {
  padding-block: clamp(7rem, 16vh, 12rem) clamp(3.5rem, 8vh, 6rem);
}
body.oliv-editorial.ed-proiecte #hero .service-hero-inner {
  max-width: 1180px;
  margin-inline: auto;
  padding-inline: clamp(1.25rem, 5vw, 3rem);
}

/* eyebrow */
body.oliv-editorial.ed-proiecte #hero .eyebrow.oliv-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 0.7em;
  margin: 0 0 1.4rem;
  font-family: "Inter", system-ui, sans-serif;
  font-size: clamp(0.66rem, 1vw, 0.74rem);
  font-weight: 600;
  letter-spacing: 0.42em;
  text-transform: uppercase;
  color: var(--pj-accent);
}
body.oliv-editorial.ed-proiecte #hero .eyebrow.oliv-eyebrow::before {
  content: "";
  width: clamp(28px, 5vw, 52px);
  height: 1px;
  background: var(--pj-accent);
  opacity: 0.8;
}

/* the chartreuse rule between eyebrow and h1 */
body.oliv-editorial.ed-proiecte #hero .chartreuse-line {
  width: clamp(56px, 9vw, 96px);
  height: 0;
  margin: 0 0 1.6rem;
  border: 0;
  border-top: 1px solid var(--pj-accent);
  opacity: 0.55;
}

/* hero H1 — rem-based widths so big type never breaks char-by-char */
body.oliv-editorial.ed-proiecte #hero .hero-h1 {
  margin: 0 0 1.5rem;
  max-width: 18ch;
  font-family: "Fraunces", Georgia, serif;
  font-weight: 300;
  font-size: clamp(2.7rem, 8vw, 6rem);
  line-height: 0.98;
  letter-spacing: -0.015em;
  color: var(--pj-cream);
  text-wrap: balance;
}

/* hero sub — editorial measure */
body.oliv-editorial.ed-proiecte #hero .service-hero-sub {
  max-width: 46ch;
  margin: 0;
  font-family: "Inter", system-ui, sans-serif;
  font-size: clamp(1rem, 1.5vw, 1.16rem);
  line-height: 1.6;
  color: var(--pj-cream-muted);
}

/* =====================================================================
   2. WORK SECTION — header + archive-index grid
   ===================================================================== */
body.oliv-editorial.ed-proiecte #work.work-section {
  padding-block: clamp(3rem, 7vh, 5.5rem) clamp(5rem, 12vh, 9rem);
}
body.oliv-editorial.ed-proiecte #work .work-header,
body.oliv-editorial.ed-proiecte #work .work-grid {
  max-width: 1240px;
  margin-inline: auto;
  padding-inline: clamp(1.25rem, 5vw, 3rem);
}

/* header */
body.oliv-editorial.ed-proiecte #work .work-header {
  position: relative;
  margin-bottom: clamp(2.5rem, 6vh, 4.5rem);
  padding-bottom: clamp(1.6rem, 4vh, 2.6rem);
  border-bottom: 1px solid var(--pj-hair);
}
body.oliv-editorial.ed-proiecte #work .work-header::before {
  content: "Index";
  display: block;
  margin-bottom: 1.1rem;
  font-family: "Inter", system-ui, sans-serif;
  font-size: 0.7rem;
  font-weight: 600;
  letter-spacing: 0.4em;
  text-transform: uppercase;
  color: var(--pj-accent);
}
body.oliv-editorial.ed-proiecte #work .work-title {
  margin: 0 0 1rem;
  max-width: 16ch;
  font-family: "Fraunces", Georgia, serif;
  font-weight: 300;
  font-size: clamp(2.1rem, 5.5vw, 4rem);
  line-height: 1.02;
  letter-spacing: -0.01em;
  color: var(--pj-cream);
  text-wrap: balance;
}
body.oliv-editorial.ed-proiecte #work .work-lead {
  max-width: 52ch;
  margin: 0;
  font-family: "Inter", system-ui, sans-serif;
  font-size: clamp(0.98rem, 1.4vw, 1.12rem);
  line-height: 1.6;
  color: var(--pj-cream-muted);
}

/* ---- the archive grid: override UAGB column flex ---- */
body.oliv-editorial.ed-proiecte #work .work-grid.wp-block-columns {
  display: grid !important;
  grid-template-columns: repeat(3, 1fr);
  gap: clamp(1.1rem, 2.4vw, 2rem);
  counter-reset: pj-idx;
  align-items: stretch;
}
/* neutralise inline UAGB column widths/flex */
body.oliv-editorial.ed-proiecte #work .work-grid > .wp-block-column {
  flex: unset !important;
  width: auto !important;
  margin: 0 !important;
  min-width: 0;
  counter-increment: pj-idx;
  display: flex;
}

/* ---- the card: dark glass tile ---- */
body.oliv-editorial.ed-proiecte #work .work-card {
  position: relative;
  display: flex;
  flex-direction: column;
  width: 100%;
  padding: clamp(0.85rem, 1.4vw, 1.15rem);
  border: 1px solid var(--pj-hair-soft);
  border-radius: 4px;
  background: var(--pj-glass);
  backdrop-filter: blur(6px) saturate(1.05);
  -webkit-backdrop-filter: blur(6px) saturate(1.05);
  overflow: hidden;
  isolation: isolate;
  transition: border-color 0.5s ease, background 0.5s ease,
              transform 0.5s cubic-bezier(0.22, 1, 0.36, 1);
}
/* giant chartreuse index numeral — FIX: was z-index:0 and got buried behind
   the opaque (z-index:1) image, so it never rendered. Now z-index:2 so it
   reads as a faint chartreuse archive overlay ON the grayscale image. */
body.oliv-editorial.ed-proiecte #work .wp-block-column > .work-card::before {
  content: counter(pj-idx, decimal-leading-zero);
  position: absolute;
  top: 0.55rem;
  right: 0.85rem;
  z-index: 2;
  font-family: "Fraunces", Georgia, serif;
  font-weight: 300;
  font-size: clamp(3rem, 6vw, 4.6rem);
  line-height: 1;
  color: var(--pj-accent);
  opacity: 0.5;
  mix-blend-mode: screen;
  pointer-events: none;
  transition: opacity 0.5s ease;
}
body.oliv-editorial.ed-proiecte #work .work-card:hover,
body.oliv-editorial.ed-proiecte #work .work-card:focus-within {
  border-color: var(--pj-hair);
  background: var(--pj-glass-hover);
  transform: translateY(-4px);
}
body.oliv-editorial.ed-proiecte #work .work-card:hover::before,
body.oliv-editorial.ed-proiecte #work .work-card:focus-within::before {
  opacity: 0.85;
}

/* ---- image: duotone grayscale -> full colour on hover ---- */
body.oliv-editorial.ed-proiecte #work .work-card .uagb-ifb-image-content {
  position: relative;
  z-index: 1;
  margin: 0;
  border-radius: 3px;
  overflow: hidden;
  aspect-ratio: 4 / 5;
}
body.oliv-editorial.ed-proiecte #work .work-card .uagb-ifb-image-content::after {
  content: "";
  position: absolute;
  inset: 0;
  box-shadow: inset 0 0 0 1px rgba(191, 199, 74, 0);
  transition: box-shadow 0.55s ease;
  pointer-events: none;
}
body.oliv-editorial.ed-proiecte #work .work-card .uagb-ifb-image-content img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  filter: grayscale(1) contrast(1.04) brightness(0.92);
  transform: scale(1.01);
  transition: filter 0.6s ease, transform 0.7s cubic-bezier(0.22, 1, 0.36, 1);
}
body.oliv-editorial.ed-proiecte #work .work-card:hover .uagb-ifb-image-content img,
body.oliv-editorial.ed-proiecte #work .work-card:focus-within .uagb-ifb-image-content img {
  filter: grayscale(0) contrast(1) brightness(1);
  transform: scale(1.045);
}
body.oliv-editorial.ed-proiecte #work .work-card:hover .uagb-ifb-image-content::after,
body.oliv-editorial.ed-proiecte #work .work-card:focus-within .uagb-ifb-image-content::after {
  box-shadow: inset 0 0 0 1px var(--pj-hair);
}

/* ---- card content (text on dark) ---- */
body.oliv-editorial.ed-proiecte #work .work-card .uagb-ifb-content {
  position: relative;
  z-index: 1;
  padding: 1.1rem 0.35rem 0.4rem;
}
body.oliv-editorial.ed-proiecte #work .work-card .uagb-ifb-title-wrap {
  margin: 0;
}
body.oliv-editorial.ed-proiecte #work .work-card .uagb-ifb-title {
  margin: 0 0 0.4rem;
  font-family: "Fraunces", Georgia, serif;
  font-weight: 400;
  font-size: clamp(1.15rem, 1.9vw, 1.45rem);
  line-height: 1.12;
  letter-spacing: -0.005em;
  color: var(--pj-cream);
}
body.oliv-editorial.ed-proiecte #work .work-card .uagb-ifb-desc {
  margin: 0;
  font-family: "Inter", system-ui, sans-serif;
  font-size: 0.78rem;
  font-weight: 500;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--pj-cream-muted);
}

/* ---- scope-tag pill (brand / wedding) — both readable on dark, no gold ---- */
body.oliv-editorial.ed-proiecte #work .work-card[data-scope-tag] .uagb-ifb-content::before {
  display: inline-block;
  margin-bottom: 0.7rem;
  padding: 0.28em 0.7em;
  border: 1px solid var(--pj-hair);
  border-radius: 999px;
  font-family: "Inter", system-ui, sans-serif;
  font-size: 0.62rem;
  font-weight: 600;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  line-height: 1;
}
body.oliv-editorial.ed-proiecte #work .work-card[data-scope-tag="brand"] .uagb-ifb-content::before {
  content: "Brand";
  color: var(--pj-accent);
  border-color: var(--pj-hair);
  background: rgba(191, 199, 74, 0.07);
}
body.oliv-editorial.ed-proiecte #work .work-card[data-scope-tag="wedding"] .uagb-ifb-content::before {
  content: "Wedding";
  color: var(--pj-cream);
  border-color: var(--pj-hair-soft);
  background: rgba(245, 241, 232, 0.05);
}

/* =====================================================================
   3. CONTACT CTA — editorial close
   ===================================================================== */
body.oliv-editorial.ed-proiecte #contact-cta.contact-cta-section {
  padding-block: clamp(4.5rem, 11vh, 8rem);
}
body.oliv-editorial.ed-proiecte #contact-cta .contact-inner {
  position: relative;
  max-width: 760px;
  margin-inline: auto;
  padding-inline: clamp(1.25rem, 5vw, 3rem);
  padding-top: clamp(3rem, 7vh, 5rem);
  text-align: center;
}
body.oliv-editorial.ed-proiecte #contact-cta .contact-inner::before {
  content: "";
  position: absolute;
  top: 0;
  left: 50%;
  transform: translateX(-50%);
  width: clamp(64px, 12vw, 120px);
  height: 1px;
  background: var(--pj-hair);
}
body.oliv-editorial.ed-proiecte #contact-cta .eyebrow-script,
body.oliv-editorial.ed-proiecte #contact-cta .oliv-script {
  margin: 0 0 0.9rem;
  font-size: clamp(1.5rem, 3vw, 2.1rem);
  line-height: 1;
  color: var(--pj-accent);
}
body.oliv-editorial.ed-proiecte #contact-cta .contact-title {
  margin: 0 0 1.1rem;
  font-family: "Fraunces", Georgia, serif;
  font-weight: 300;
  font-size: clamp(2.1rem, 6vw, 4.2rem);
  line-height: 1.02;
  letter-spacing: -0.012em;
  color: var(--pj-cream);
  text-wrap: balance;
}
body.oliv-editorial.ed-proiecte #contact-cta .contact-sub {
  max-width: 42ch;
  margin: 0 auto 2.2rem;
  font-family: "Inter", system-ui, sans-serif;
  font-size: clamp(1rem, 1.5vw, 1.14rem);
  line-height: 1.6;
  color: var(--pj-cream-muted);
}

/* ghost -> chartreuse-fill button, AAA dark text on fill, tap target >=52px */
body.oliv-editorial.ed-proiecte #contact-cta .contact-mkt-btn .wp-block-button__link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 52px;
  padding: 0.95rem 2rem;
  border: 1px solid var(--pj-accent);
  border-radius: 999px;
  background: transparent;
  font-family: "Inter", system-ui, sans-serif;
  font-size: 0.86rem;
  font-weight: 600;
  letter-spacing: 0.06em;
  color: var(--pj-accent);
  text-decoration: none;
  transition: background 0.4s ease, color 0.4s ease, transform 0.4s ease;
}
body.oliv-editorial.ed-proiecte #contact-cta .contact-mkt-btn .wp-block-button__link:hover,
body.oliv-editorial.ed-proiecte #contact-cta .contact-mkt-btn .wp-block-button__link:focus-visible {
  background: var(--pj-accent);
  color: var(--pj-canvas);
  transform: translateY(-2px);
}

/* =====================================================================
   4. RESPONSIVE
   ===================================================================== */
/* tablet 782–1024px: 2-col index */
@media (min-width: 782px) and (max-width: 1024px) {
  body.oliv-editorial.ed-proiecte #work .work-grid.wp-block-columns {
    grid-template-columns: repeat(2, 1fr);
  }
}

/* mobile <=781px: single column, guard big type against char-break */
@media (max-width: 781px) {
  body.oliv-editorial.ed-proiecte #hero.service-hero {
    padding-block: 5.5rem 3rem;
  }
  body.oliv-editorial.ed-proiecte #hero .hero-h1 {
    max-width: 100%;
    font-size: clamp(2.4rem, 11vw, 3.4rem);
    line-height: 1.0;
    word-break: normal;
    overflow-wrap: break-word;
    hyphens: none;
  }
  body.oliv-editorial.ed-proiecte #hero .service-hero-sub,
  body.oliv-editorial.ed-proiecte #work .work-lead,
  body.oliv-editorial.ed-proiecte #contact-cta .contact-sub {
    max-width: 100%;
  }
  body.oliv-editorial.ed-proiecte #work .work-title,
  body.oliv-editorial.ed-proiecte #contact-cta .contact-title {
    max-width: 100%;
    font-size: clamp(2rem, 9vw, 2.8rem);
    word-break: normal;
    overflow-wrap: break-word;
  }
  body.oliv-editorial.ed-proiecte #work .work-grid.wp-block-columns {
    grid-template-columns: 1fr;
    gap: 1.4rem;
  }
  /* slightly larger index numeral reads well at full width */
  body.oliv-editorial.ed-proiecte #work .wp-block-column > .work-card::before {
    font-size: clamp(2.8rem, 14vw, 4rem);
    opacity: 0.6;
  }
  /* on touch (no hover), reveal imagery in colour so it isn't permanently grey */
  body.oliv-editorial.ed-proiecte #work .work-card .uagb-ifb-image-content img {
    filter: grayscale(0.55) contrast(1.02) brightness(0.96);
    transform: scale(1);
  }
  body.oliv-editorial.ed-proiecte #contact-cta .contact-mkt-btn .wp-block-button__link {
    width: 100%;
    max-width: 340px;
  }
}

/* coarse-pointer fallback: don't trap colour behind hover on any touch device */
@media (hover: none) {
  body.oliv-editorial.ed-proiecte #work .work-card .uagb-ifb-image-content img {
    filter: grayscale(0.45) contrast(1.02) brightness(0.97);
  }
}

/* reduced motion: kill transforms/scale, keep colour states */
@media (prefers-reduced-motion: reduce) {
  body.oliv-editorial.ed-proiecte #work .work-card,
  body.oliv-editorial.ed-proiecte #work .work-card .uagb-ifb-image-content img,
  body.oliv-editorial.ed-proiecte #contact-cta .contact-mkt-btn .wp-block-button__link {
    transition: filter 0.3s ease, color 0.3s ease, background 0.3s ease;
    transform: none !important;
  }
}

/* ================================================================
   35. WORLD (.ed-world) — journal archive (entries pending)  [v1.9.7, godmode-elevation workflow]
   ================================================================ */
/* ============================================================
   OLIV — ed-world  (oliv_world CPT ARCHIVE / "OLIV WORLD" journal index)
   Astra DEFAULT archive markup — NO .oliv-section wrappers exist here,
   so the base blanket dark rule does NOT reach #content. We establish
   the warm-charcoal journal canvas explicitly and style the breadcrumb
   running-head, archive title, empty-state search, the (future)
   populated loop grid, and pagination. Header/footer/copy untouched.
   Every selector scoped to body.oliv-editorial.ed-world.

   ADVERSARIAL FIXES vs. proposed draft:
   - .oliv-breadcrumbs-wrap lives OUTSIDE #content in the real DOM
     (sibling before #content) -> it was relying on a dark canvas it
     never received and would have rendered cream-on-white. Now painted
     #131210 explicitly.
   - icon search-submit bumped 40 -> 44px tap target.
   - container side padding promoted to a base rule (all breakpoints),
     not just the tablet query, to kill edge overflow.
   - search field right padding widened so text clears the icon button.
   ============================================================ */

/* ---- 1. Journal canvas (base auto-dark misses Astra archive markup) ---- */
body.oliv-editorial.ed-world #content.site-content{
  position: relative;
  background-color: #131210;
  background-image:
    radial-gradient(120% 90% at 50% -10%, rgba(191,199,74,0.10) 0%, rgba(191,199,74,0) 55%);
  color: #F5F1E8;
}
body.oliv-editorial.ed-world #content.site-content::before{
  content: "";
  position: absolute; inset: 0;
  pointer-events: none;
  background-image:
    radial-gradient(circle at 18% 28%, rgba(245,241,232,0.025) 0, transparent 0.12%),
    radial-gradient(circle at 72% 64%, rgba(245,241,232,0.025) 0, transparent 0.12%);
  background-size: 3px 3px, 4px 4px;
  opacity: 0.5;
  z-index: 0;
}
body.oliv-editorial.ed-world #content.site-content > .ast-container{
  position: relative;
  z-index: 1;
  max-width: 1280px;
  /* base gutters for ALL breakpoints — was previously only set in the
     782–1024 query, leaving mobile + wide desktop edge-to-edge */
  padding-left: clamp(1.25rem, 5vw, 3rem);
  padding-right: clamp(1.25rem, 5vw, 3rem);
  padding-top: clamp(2.5rem, 7vw, 6rem);
  padding-bottom: clamp(4rem, 10vw, 9rem);
}
body.oliv-editorial.ed-world #primary.content-area{
  background: transparent;
  width: 100%;
}

/* ---- 2. Breadcrumbs — mono micro running-head ----
   FIX: this wrap is a SIBLING that sits BEFORE #content in the markup,
   so it never inherits the #content dark canvas and the base .oliv-section
   blanket does not reach it. Paint it dark explicitly or the muted-cream
   micro-label lands cream-on-(default light) and disappears. */
body.oliv-editorial.ed-world .oliv-breadcrumbs-wrap{
  position: relative;
  z-index: 1;
  background-color: #131210;
  padding: clamp(1.5rem, 4vw, 2.75rem) clamp(1.25rem, 5vw, 3rem) 0;
}
body.oliv-editorial.ed-world .oliv-breadcrumbs-wrap .rank-math-breadcrumb p{
  max-width: 1280px;
  margin: 0 auto;
  font-family: ui-monospace, "SFMono-Regular", "Menlo", monospace;
  font-size: 0.68rem;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: rgba(245,241,232,0.55);
}
body.oliv-editorial.ed-world .oliv-breadcrumbs-wrap .rank-math-breadcrumb a{
  color: rgba(245,241,232,0.74);
  text-decoration: none;
  transition: color 0.3s ease;
}
body.oliv-editorial.ed-world .oliv-breadcrumbs-wrap .rank-math-breadcrumb a:hover{
  color: #BFC74A;
}
body.oliv-editorial.ed-world .oliv-breadcrumbs-wrap .rank-math-breadcrumb .separator{
  color: rgba(191,199,74,0.7);
}
body.oliv-editorial.ed-world .oliv-breadcrumbs-wrap .rank-math-breadcrumb .last{
  color: #BFC74A;
}

/* ---- 3. Archive masthead — oversized "OLIV WORLD" serif header ---- */
body.oliv-editorial.ed-world .ast-archive-description{
  position: relative;
  z-index: 1;
  text-align: left;
  padding: clamp(1rem, 4vw, 3rem) 0 clamp(2rem, 5vw, 3.5rem);
  margin-bottom: clamp(2rem, 6vw, 4.5rem);
  border-bottom: 1px solid rgba(245,241,232,0.12);
}
body.oliv-editorial.ed-world .ast-archive-description::before{
  content: "OLIV · JURNAL — ÎNSEMNĂRI DIN ATELIER";
  display: block;
  font-family: ui-monospace, "SFMono-Regular", "Menlo", monospace;
  font-size: 0.7rem;
  letter-spacing: 0.34em;
  text-transform: uppercase;
  color: #BFC74A;
  margin-bottom: clamp(1rem, 2.5vw, 1.6rem);
}
body.oliv-editorial.ed-world h1.page-title.ast-archive-title{
  font-family: "Fraunces", Georgia, "Times New Roman", serif;
  font-weight: 300;
  font-style: normal;
  color: #F5F1E8;
  font-size: clamp(2.9rem, 11vw, 8.5rem);
  line-height: 0.92;
  letter-spacing: -0.02em;
  margin: 0;
  max-width: 16ch;
  text-wrap: balance;
}
body.oliv-editorial.ed-world .ast-archive-description::after{
  content: "";
  display: block;
  width: clamp(3rem, 8vw, 6rem);
  height: 2px;
  margin-top: clamp(1.2rem, 3vw, 2rem);
  background: #BFC74A;
}

/* ---- 4. Main / loop region ---- */
body.oliv-editorial.ed-world #main.site-main{
  position: relative;
  z-index: 1;
  background: transparent;
  counter-reset: oliv-entry;
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: clamp(1.5rem, 4vw, 3.5rem);
}
/* -- 4a. Populated journal grid (FUTURE: Astra default loop markup) -- */
body.oliv-editorial.ed-world #main.site-main > article,
body.oliv-editorial.ed-world #main.site-main .ast-row,
body.oliv-editorial.ed-world #main.site-main .ast-grid-common-col{
  background: transparent;
}
/* a no-results / single message block or nav spans the full width
   (CURRENT live state: the single .no-results child uses this) */
body.oliv-editorial.ed-world #main.site-main > .no-results,
body.oliv-editorial.ed-world #main.site-main > nav,
body.oliv-editorial.ed-world #main.site-main > .ast-pagination{
  grid-column: 1 / -1;
}

/* entry card — glassmorphism on dark */
body.oliv-editorial.ed-world #main.site-main > article{
  counter-increment: oliv-entry;
  position: relative;
  display: flex;
  flex-direction: column;
  margin: 0;
  padding: 0 0 1.75rem;
  border-radius: 14px;
  border: 1px solid rgba(245,241,232,0.10);
  background: rgba(245,241,232,0.03);
  -webkit-backdrop-filter: blur(8px) saturate(120%);
  backdrop-filter: blur(8px) saturate(120%);
  overflow: hidden;
  transition: transform 0.5s cubic-bezier(.2,.7,.2,1),
              border-color 0.4s ease,
              background 0.4s ease;
}
body.oliv-editorial.ed-world #main.site-main > article::before{
  content: "";
  position: absolute; top: 0; left: 0;
  width: 100%; height: 2px;
  background: #BFC74A;
  transform: scaleX(0);
  transform-origin: left;
  transition: transform 0.55s cubic-bezier(.2,.7,.2,1);
}
body.oliv-editorial.ed-world #main.site-main > article:hover{
  transform: translateY(-6px);
  border-color: rgba(191,199,74,0.4);
  background: rgba(245,241,232,0.05);
}
body.oliv-editorial.ed-world #main.site-main > article:hover::before{
  transform: scaleX(1);
}
body.oliv-editorial.ed-world #main.site-main > article > .ast-article-inner::after,
body.oliv-editorial.ed-world #main.site-main > article > header::after{
  content: counter(oliv-entry, decimal-leading-zero);
  position: absolute; top: 1rem; right: 1.1rem;
  font-family: ui-monospace, "SFMono-Regular", "Menlo", monospace;
  font-size: 0.72rem;
  letter-spacing: 0.18em;
  color: rgba(191,199,74,0.8);
  z-index: 2;
}

/* duotone thumbnail */
body.oliv-editorial.ed-world #main.site-main > article .post-thumb,
body.oliv-editorial.ed-world #main.site-main > article .ast-post-image,
body.oliv-editorial.ed-world #main.site-main > article .post-thumb-img-content{
  display: block;
  margin: 0 0 1.4rem;
  overflow: hidden;
  background: #0e0d0b;
}
body.oliv-editorial.ed-world #main.site-main > article img.wp-post-image,
body.oliv-editorial.ed-world #main.site-main > article .post-thumb img{
  display: block;
  width: 100%;
  height: clamp(190px, 24vw, 280px);
  object-fit: cover;
  filter: grayscale(0.45) contrast(1.05) sepia(0.18) saturate(1.15) brightness(0.92);
  transform: scale(1.01);
  transition: filter 0.6s ease, transform 0.7s cubic-bezier(.2,.7,.2,1);
}
body.oliv-editorial.ed-world #main.site-main > article:hover img.wp-post-image,
body.oliv-editorial.ed-world #main.site-main > article:hover .post-thumb img{
  filter: grayscale(0.1) contrast(1.04) saturate(1.05);
  transform: scale(1.05);
}

/* text padding inside card body */
body.oliv-editorial.ed-world #main.site-main > article .ast-article-inner,
body.oliv-editorial.ed-world #main.site-main > article > header,
body.oliv-editorial.ed-world #main.site-main > article .entry-content,
body.oliv-editorial.ed-world #main.site-main > article .entry-header{
  padding-left: clamp(1.1rem, 2.2vw, 1.6rem);
  padding-right: clamp(1.1rem, 2.2vw, 1.6rem);
  background: transparent;
}

/* meta — mono date / category tags */
body.oliv-editorial.ed-world #main.site-main > article .entry-meta,
body.oliv-editorial.ed-world #main.site-main > article .post-meta,
body.oliv-editorial.ed-world #main.site-main > article .ast-taxonomy-container,
body.oliv-editorial.ed-world #main.site-main > article .posted-on,
body.oliv-editorial.ed-world #main.site-main > article .cat-links{
  font-family: ui-monospace, "SFMono-Regular", "Menlo", monospace;
  font-size: 0.66rem;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: rgba(245,241,232,0.6);
  margin-bottom: 0.7rem;
}
body.oliv-editorial.ed-world #main.site-main > article .entry-meta a,
body.oliv-editorial.ed-world #main.site-main > article .post-meta a,
body.oliv-editorial.ed-world #main.site-main > article .ast-taxonomy-container a,
body.oliv-editorial.ed-world #main.site-main > article .cat-links a{
  color: #BFC74A;
  text-decoration: none;
  transition: opacity 0.3s ease;
}
body.oliv-editorial.ed-world #main.site-main > article .entry-meta a:hover,
body.oliv-editorial.ed-world #main.site-main > article .cat-links a:hover{
  opacity: 0.7;
}

/* entry title — oversized serif, cream → chartreuse on hover */
body.oliv-editorial.ed-world #main.site-main > article .entry-title{
  font-family: "Fraunces", Georgia, serif;
  font-weight: 400;
  font-size: clamp(1.5rem, 2.6vw, 2.1rem);
  line-height: 1.06;
  letter-spacing: -0.01em;
  margin: 0 0 0.9rem;
  max-width: 22ch;
}
body.oliv-editorial.ed-world #main.site-main > article .entry-title a{
  color: #F5F1E8;
  text-decoration: none;
  background-image: linear-gradient(#BFC74A, #BFC74A);
  background-repeat: no-repeat;
  background-position: 0 100%;
  background-size: 0% 1px;
  transition: color 0.35s ease, background-size 0.45s cubic-bezier(.2,.7,.2,1);
}
body.oliv-editorial.ed-world #main.site-main > article .entry-title a:hover{
  color: #BFC74A;
  background-size: 100% 1px;
}

/* excerpt / lead prose on dark */
body.oliv-editorial.ed-world #main.site-main > article .entry-content,
body.oliv-editorial.ed-world #main.site-main > article .entry-content p,
body.oliv-editorial.ed-world #main.site-main > article .entry-excerpt p{
  color: rgba(245,241,232,0.74);
  font-size: 0.98rem;
  line-height: 1.6;
}

/* read-more — chartreuse arrow link */
body.oliv-editorial.ed-world #main.site-main > article .read-more a,
body.oliv-editorial.ed-world #main.site-main > article a.read-more,
body.oliv-editorial.ed-world #main.site-main > article .ast-button{
  display: inline-flex;
  align-items: center;
  gap: 0.5em;
  margin-top: 1rem;
  font-family: ui-monospace, "SFMono-Regular", "Menlo", monospace;
  font-size: 0.7rem;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: #BFC74A;
  text-decoration: none;
  background: transparent;
  border: 0;
  padding: 0;
  min-height: 44px;
  transition: gap 0.35s ease, color 0.3s ease;
}
body.oliv-editorial.ed-world #main.site-main > article .read-more a::after,
body.oliv-editorial.ed-world #main.site-main > article a.read-more::after,
body.oliv-editorial.ed-world #main.site-main > article .ast-button::after{
  content: "→";
  transition: transform 0.35s ease;
}
body.oliv-editorial.ed-world #main.site-main > article .read-more a:hover,
body.oliv-editorial.ed-world #main.site-main > article a.read-more:hover,
body.oliv-editorial.ed-world #main.site-main > article .ast-button:hover{
  gap: 0.9em;
  color: #F5F1E8;
}

/* ---- 5. Empty-state (CURRENT live render: .no-results + search form) ---- */
body.oliv-editorial.ed-world .no-results.not-found{
  position: relative;
  z-index: 1;
  margin: 0;
  padding: clamp(2.5rem, 6vw, 4.5rem) clamp(1.5rem, 5vw, 3.5rem);
  border-radius: 16px;
  border: 1px solid rgba(245,241,232,0.12);
  background: rgba(245,241,232,0.035);
  -webkit-backdrop-filter: blur(10px) saturate(120%);
  backdrop-filter: blur(10px) saturate(120%);
  text-align: center;
}
body.oliv-editorial.ed-world .no-results .page-content{
  max-width: 46ch;
  margin: 0 auto;
}
body.oliv-editorial.ed-world .no-results .page-content > p{
  font-family: "Fraunces", Georgia, serif;
  font-weight: 300;
  font-size: clamp(1.2rem, 3vw, 1.65rem);
  line-height: 1.4;
  color: #F5F1E8;
  margin: 0 0 1.8rem;
}
/* search form as dark glass */
body.oliv-editorial.ed-world .no-results .search-form{
  display: flex;
  align-items: stretch;
  gap: 0.6rem;
  max-width: 30rem;
  margin: 0 auto;
}
body.oliv-editorial.ed-world .no-results .search-form label{
  display: flex;
  flex: 1 1 auto;
  margin: 0;
  position: relative;
}
body.oliv-editorial.ed-world .no-results .search-field{
  flex: 1 1 auto;
  width: 100%;
  min-height: 48px;
  /* extra right padding clears the absolute icon submit button */
  padding: 0 3.25rem 0 1.1rem;
  background: rgba(19,18,16,0.6);
  border: 1px solid rgba(245,241,232,0.18);
  border-radius: 10px;
  color: #F5F1E8;
  font-family: ui-monospace, "SFMono-Regular", "Menlo", monospace;
  font-size: 0.85rem;
  letter-spacing: 0.04em;
  transition: border-color 0.3s ease, box-shadow 0.3s ease;
}
body.oliv-editorial.ed-world .no-results .search-field::placeholder{
  color: rgba(245,241,232,0.45);
}
body.oliv-editorial.ed-world .no-results .search-field:focus{
  outline: none;
  border-color: #BFC74A;
  box-shadow: 0 0 0 3px rgba(191,199,74,0.22);
}
/* Live form: button.search-submit.ast-search-submit (icon) sits INSIDE the
   <label>; a duplicate input.search-submit (text pill) follows the label.
   Style both; the icon is the inline affordance, the pill the primary CTA. */
body.oliv-editorial.ed-world .no-results .search-form button.search-submit{
  position: absolute;
  right: 0.35rem; top: 50%;
  transform: translateY(-50%);
  /* FIX: was 40px — below the 44px tap-target minimum */
  width: 44px; height: 44px;
  min-width: 44px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  background: transparent;
  border: 0;
  color: #BFC74A;
  cursor: pointer;
  transition: color 0.3s ease;
}
body.oliv-editorial.ed-world .no-results .search-form button.search-submit svg{
  width: 18px; height: 18px;
  fill: currentColor;
}
body.oliv-editorial.ed-world .no-results .search-form button.search-submit:hover{
  color: #F5F1E8;
}
body.oliv-editorial.ed-world .no-results .search-form input.search-submit{
  flex: 0 0 auto;
  min-height: 48px;
  min-width: 96px;
  padding: 0 1.4rem;
  background: #BFC74A;
  color: #1C1C1A;            /* dark ink on chartreuse pill — AA+ */
  border: 0;
  border-radius: 10px;
  font-family: ui-monospace, "SFMono-Regular", "Menlo", monospace;
  font-size: 0.72rem;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  cursor: pointer;
  transition: background 0.3s ease, transform 0.3s ease;
}
body.oliv-editorial.ed-world .no-results .search-form input.search-submit:hover{
  background: #d2da64;
  transform: translateY(-1px);
}

/* ---- 6. Pagination — mono numerals (FUTURE paginated journal) ---- */
body.oliv-editorial.ed-world .ast-pagination,
body.oliv-editorial.ed-world #main .pagination,
body.oliv-editorial.ed-world #main nav.posts-navigation{
  margin-top: clamp(2.5rem, 6vw, 4rem);
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  justify-content: center;
}
body.oliv-editorial.ed-world .ast-pagination a,
body.oliv-editorial.ed-world .ast-pagination span,
body.oliv-editorial.ed-world #main .page-numbers{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 44px;
  min-height: 44px;
  padding: 0 0.6rem;
  font-family: ui-monospace, "SFMono-Regular", "Menlo", monospace;
  font-size: 0.8rem;
  letter-spacing: 0.08em;
  color: rgba(245,241,232,0.7);
  border: 1px solid rgba(245,241,232,0.14);
  border-radius: 8px;
  text-decoration: none;
  transition: border-color 0.3s ease, color 0.3s ease;
}
body.oliv-editorial.ed-world #main .page-numbers:hover,
body.oliv-editorial.ed-world .ast-pagination a:hover{
  border-color: rgba(191,199,74,0.5);
  color: #F5F1E8;
}
body.oliv-editorial.ed-world #main .page-numbers.current,
body.oliv-editorial.ed-world .ast-pagination .current{
  color: #131210;
  background: #BFC74A;
  border-color: #BFC74A;
}

/* ============================================================
   RESPONSIVE
   ============================================================ */

/* Tablet 782–1024px: keep 2-up but tighten gap */
@media (min-width: 782px) and (max-width: 1024px){
  body.oliv-editorial.ed-world #main.site-main{
    gap: clamp(1.25rem, 3vw, 2rem);
  }
}

/* Mobile <=781px: single column, char-break + tap-target guards */
@media (max-width: 781px){
  body.oliv-editorial.ed-world #main.site-main{
    grid-template-columns: 1fr;          /* stack to 1 col */
    gap: 1.5rem;
  }
  body.oliv-editorial.ed-world h1.page-title.ast-archive-title{
    font-size: clamp(2.4rem, 14vw, 3.6rem);
    line-height: 0.96;
    max-width: 100%;
    word-break: keep-all;
    overflow-wrap: normal;
    hyphens: none;
  }
  body.oliv-editorial.ed-world .ast-archive-description::before{
    font-size: 0.6rem;
    letter-spacing: 0.24em;
  }
  body.oliv-editorial.ed-world #main.site-main > article .entry-title{
    font-size: clamp(1.5rem, 7vw, 2rem);
    max-width: 100%;
    word-break: keep-all;
    overflow-wrap: normal;
  }
  body.oliv-editorial.ed-world #main.site-main > article img.wp-post-image,
  body.oliv-editorial.ed-world #main.site-main > article .post-thumb img{
    height: clamp(200px, 56vw, 280px);
  }
  /* search form stacks; every control keeps >=44px tap target.
     Icon button stays absolute over the (full-width) field; pill goes
     full width below it. */
  body.oliv-editorial.ed-world .no-results .search-form{
    flex-direction: column;
    gap: 0.75rem;
  }
  body.oliv-editorial.ed-world .no-results .search-form input.search-submit{
    width: 100%;
  }
}

/* Reduced motion — respect the JS-reveal-friendly contract */
@media (prefers-reduced-motion: reduce){
  body.oliv-editorial.ed-world #main.site-main > article,
  body.oliv-editorial.ed-world #main.site-main > article img.wp-post-image,
  body.oliv-editorial.ed-world #main.site-main > article .entry-title a{
    transition: none;
  }
}

/* ================================================================
   36. SERVICE DETAIL (.ed-service) — glass deliverables, image-band  [v1.9.7, godmode-elevation workflow]
   ================================================================ */
/* =====================================================================
   OLIV - godmode - page type SERVICE (.ed-service)  [reviewed + hardened]
   Scope: every selector under body.oliv-editorial.ed-service
   Dark editorial canvas already supplied by editorial.css - this block
   only ADDS elevation (glass, numerals, hairlines, duotone, hover).
   Header / footer / copy untouched. Shared across all detail pages.
   Adversarial review notes:
     - All sections verified DARK in live DOM -> no contrast inversion.
     - WP inline flex-wrap:nowrap on .approach-grid confirmed; mobile
       column-stack rule (0,4,1) correctly beats it (0,1,0).
     - Ghosted numerals given @supports fallback so they can never
       render fully invisible if text-stroke is unsupported.
     - .approach-grid given explicit display:flex defensively.
   ===================================================================== */

/* ---- tokens (local, do not redefine global scope vars) ------------- */
body.oliv-editorial.ed-service {
  --eds-cream: #F5F1E8;
  --eds-muted: rgba(245,241,232,0.74);
  --eds-faint: rgba(245,241,232,0.12);
  --eds-accent: #BFC74A;
  --eds-glass: rgba(245,241,232,0.045);
  --eds-glass-bd: rgba(191,199,74,0.28);
  --eds-ink: #1C1C1A;
  --eds-gut: clamp(1.25rem, 4vw, 2.25rem);
}

/* ---- 0. BREADCRUMB DATELINE (top chrome, NOT site header/footer) --- */
body.oliv-editorial.ed-service .oliv-breadcrumbs-wrap {
  background: transparent;
  padding-block: clamp(1.5rem, 4vw, 2.75rem) clamp(0.75rem, 2vw, 1.25rem);
  border-bottom: 1px solid var(--eds-faint);
}
body.oliv-editorial.ed-service .oliv-breadcrumbs-wrap .rank-math-breadcrumb p {
  font-size: 0.72rem;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--eds-muted);
  margin: 0;
}
body.oliv-editorial.ed-service .oliv-breadcrumbs-wrap a {
  color: var(--eds-muted);
  text-decoration: none;
  transition: color .35s ease;
}
body.oliv-editorial.ed-service .oliv-breadcrumbs-wrap a:hover { color: var(--eds-accent); }
body.oliv-editorial.ed-service .oliv-breadcrumbs-wrap .separator { color: var(--eds-accent); opacity: .55; }
body.oliv-editorial.ed-service .oliv-breadcrumbs-wrap .last { color: var(--eds-cream); }

/* ===================================================================
   1. HERO - #hero.service-hero (DARK)
   =================================================================== */
body.oliv-editorial.ed-service .service-hero {
  padding-block: clamp(3.5rem, 9vw, 7.5rem) clamp(3rem, 7vw, 6rem);
  position: relative;
}
body.oliv-editorial.ed-service .service-hero-inner {
  max-width: 1080px;
  margin-inline: auto;
  padding-inline: var(--eds-gut);
}
body.oliv-editorial.ed-service .service-hero .oliv-eyebrow,
body.oliv-editorial.ed-service .service-hero .eyebrow {
  color: var(--eds-accent);
  font-size: 0.78rem;
  letter-spacing: 0.34em;
  text-transform: uppercase;
  margin: 0 0 1.1rem;
}
body.oliv-editorial.ed-service .service-hero .chartreuse-line {
  border: 0;
  height: 1px;
  width: clamp(56px, 9vw, 120px);
  margin: 0 0 1.6rem;
  background: var(--eds-accent);
  opacity: .9;
}
body.oliv-editorial.ed-service .service-hero .hero-h1 {
  color: var(--eds-cream);
  font-size: clamp(2.5rem, 7vw, 5.5rem);
  line-height: 0.98;
  letter-spacing: -0.02em;
  max-width: 16ch;
  margin: 0 0 1.5rem;
  text-wrap: balance;
}
body.oliv-editorial.ed-service .service-hero .service-hero-sub,
body.oliv-editorial.ed-service .service-hero .sub {
  color: var(--eds-muted);
  font-size: clamp(1.05rem, 1.7vw, 1.3rem);
  line-height: 1.55;
  max-width: 52ch;
  margin: 0 0 2.4rem;
}
body.oliv-editorial.ed-service .service-hero .hero-ctas .wp-block-button__link {
  display: inline-flex;
  align-items: center;
  gap: 0.6em;
  min-height: 48px;
  padding: 0.95rem 1.9rem;
  border: 1px solid var(--eds-accent);
  border-radius: 999px;
  background: transparent;
  color: var(--eds-accent);
  font-size: 0.95rem;
  letter-spacing: 0.06em;
  text-decoration: none;
  transition: background .4s ease, color .4s ease, transform .4s ease;
}
body.oliv-editorial.ed-service .service-hero .hero-ctas .wp-block-button__link:hover {
  background: var(--eds-accent);
  color: var(--eds-ink);
  transform: translateY(-2px);
}

/* ===================================================================
   2. SERVICE BODY - .service-body (DARK prose)
   =================================================================== */
body.oliv-editorial.ed-service .service-body {
  padding-block: clamp(2.5rem, 6vw, 5rem);
}
body.oliv-editorial.ed-service .service-body-inner {
  max-width: 760px;
  margin-inline: auto;
  padding-inline: var(--eds-gut);
}
body.oliv-editorial.ed-service .service-body .service-lead {
  color: var(--eds-cream);
  font-size: clamp(1.4rem, 2.6vw, 2rem);
  line-height: 1.32;
  letter-spacing: -0.01em;
  margin: 0 0 1.8rem;
  padding-left: 1.25rem;
  border-left: 2px solid var(--eds-accent);
}
body.oliv-editorial.ed-service .service-body .service-para {
  color: var(--eds-muted);
  font-size: clamp(1.02rem, 1.5vw, 1.18rem);
  line-height: 1.7;
  margin: 0 0 1.3rem;
}

/* ===================================================================
   3. IMAGE BAND - .service-image-band-section (IMAGE / duotone)
   =================================================================== */
body.oliv-editorial.ed-service .service-image-band-section {
  padding: 0 !important;
  margin-block: clamp(2rem, 5vw, 4rem);
}
body.oliv-editorial.ed-service .service-image-band {
  position: relative;
  margin: 0;
  width: 100%;
  overflow: hidden;
  aspect-ratio: 21 / 9;
}
@media (max-width: 781px) {
  body.oliv-editorial.ed-service .service-image-band { aspect-ratio: 4 / 3; }
}
body.oliv-editorial.ed-service .service-image-band img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  filter: grayscale(0.35) contrast(1.05);
  transform: scale(1.02);
  transition: transform 1.2s cubic-bezier(.16,.84,.44,1), filter .8s ease;
}
body.oliv-editorial.ed-service .service-image-band::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  background:
    linear-gradient(180deg, rgba(19,18,16,0.10) 0%, rgba(19,18,16,0.72) 100%),
    radial-gradient(120% 120% at 20% 0%, rgba(191,199,74,0.16), transparent 55%);
  mix-blend-mode: multiply;
  pointer-events: none;
}
body.oliv-editorial.ed-service .service-image-band:hover img { transform: scale(1.06); }
body.oliv-editorial.ed-service .service-image-band .band-caption {
  position: absolute;
  left: clamp(1.25rem, 4vw, 3rem);
  bottom: clamp(1rem, 3vw, 2.25rem);
  z-index: 2;
  color: var(--eds-accent);
  font-size: clamp(1.6rem, 4vw, 3rem);
  line-height: 1;
  margin: 0;
  text-shadow: 0 2px 24px rgba(19,18,16,0.6);
}

/* ===================================================================
   4. APPROACH / PROCESS - #approach.approach-section (DARK)
   NOTE: live DOM carries WP inline .wp-container-core-...{flex-wrap:nowrap}
   so we set display/flex explicitly here for robustness.
   =================================================================== */
body.oliv-editorial.ed-service .approach-section {
  padding-block: clamp(3.5rem, 8vw, 6.5rem);
}
body.oliv-editorial.ed-service .approach-inner {
  max-width: 1180px;
  margin-inline: auto;
  padding-inline: var(--eds-gut);
}
body.oliv-editorial.ed-service .approach-section .eyebrow-script {
  color: var(--eds-accent);
  font-size: clamp(1.3rem, 2.4vw, 1.8rem);
  margin: 0 0 0.4rem;
}
body.oliv-editorial.ed-service .approach-section .approach-title {
  color: var(--eds-cream);
  font-size: clamp(2rem, 5vw, 3.6rem);
  line-height: 1.02;
  letter-spacing: -0.015em;
  margin: 0 0 clamp(2.5rem, 5vw, 4rem);
  text-wrap: balance;
}
body.oliv-editorial.ed-service .approach-grid {
  display: flex;
  flex-wrap: nowrap;
  gap: clamp(1.5rem, 3vw, 2.5rem);
  align-items: stretch;
}
body.oliv-editorial.ed-service .approach-step {
  position: relative;
  padding-top: 1.6rem;
  border-top: 1px solid var(--eds-faint);
  transition: border-color .5s ease;
}
body.oliv-editorial.ed-service .approach-step:hover { border-top-color: var(--eds-accent); }
body.oliv-editorial.ed-service .approach-step .step-num {
  font-size: clamp(2.4rem, 4vw, 3.4rem);
  line-height: 1;
  font-weight: 400;
  color: transparent;
  -webkit-text-stroke: 1px var(--eds-accent);
  opacity: .85;
  margin: 0 0 0.9rem;
}
/* fallback: never let the ghosted numeral go fully invisible */
@supports not ((-webkit-text-stroke: 1px var(--eds-accent)) or (text-stroke: 1px var(--eds-accent))) {
  body.oliv-editorial.ed-service .approach-step .step-num { color: rgba(191,199,74,0.55); }
}
body.oliv-editorial.ed-service .approach-step .step-label {
  color: var(--eds-accent);
  font-size: 1.15rem;
  margin: 0 0 0.45rem;
}
body.oliv-editorial.ed-service .approach-step .step-title {
  color: var(--eds-cream);
  font-size: clamp(1.2rem, 1.8vw, 1.5rem);
  line-height: 1.18;
  letter-spacing: -0.01em;
  margin: 0 0 0.7rem;
}
body.oliv-editorial.ed-service .approach-step .step-body {
  color: var(--eds-muted);
  font-size: 0.98rem;
  line-height: 1.6;
  margin: 0;
}

/* ===================================================================
   5. DELIVERABLES - .deliverables-section (DARK + GLASS cards)
   =================================================================== */
body.oliv-editorial.ed-service .deliverables-section {
  padding-block: clamp(3.5rem, 8vw, 6.5rem);
}
body.oliv-editorial.ed-service .deliverables-inner {
  max-width: 920px;
  margin-inline: auto;
  padding-inline: var(--eds-gut);
}
body.oliv-editorial.ed-service .deliverables-section .eyebrow-script {
  color: var(--eds-accent);
  font-size: clamp(1.3rem, 2.4vw, 1.8rem);
  margin: 0 0 0.4rem;
}
body.oliv-editorial.ed-service .deliverables-section .manifest-title {
  color: var(--eds-cream);
  font-size: clamp(2rem, 5vw, 3.6rem);
  line-height: 1.02;
  letter-spacing: -0.015em;
  margin: 0 0 clamp(2.2rem, 4vw, 3.25rem);
  text-wrap: balance;
}
body.oliv-editorial.ed-service .deliverables {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: clamp(0.85rem, 1.8vw, 1.25rem);
}
body.oliv-editorial.ed-service .deliverables li {
  position: relative;
  margin: 0;
  padding: 1.3rem 1.4rem 1.3rem 3.1rem;
  color: var(--eds-cream);
  font-size: clamp(1rem, 1.4vw, 1.12rem);
  line-height: 1.4;
  overflow-wrap: break-word;
  background: var(--eds-glass);
  border: 1px solid var(--eds-glass-bd);
  border-radius: 14px;
  -webkit-backdrop-filter: blur(10px);
  backdrop-filter: blur(10px);
  transition: transform .4s ease, border-color .4s ease, background .4s ease;
}
body.oliv-editorial.ed-service .deliverables li::before {
  content: "";
  position: absolute;
  left: 1.4rem;
  top: 1.55rem;
  width: 12px;
  height: 7px;
  border-left: 2px solid var(--eds-accent);
  border-bottom: 2px solid var(--eds-accent);
  transform: rotate(-45deg);
}
body.oliv-editorial.ed-service .deliverables li:hover {
  transform: translateY(-3px);
  border-color: var(--eds-accent);
  background: rgba(245,241,232,0.07);
}
body.oliv-editorial.ed-service .deliverables li:last-child:nth-child(odd) {
  grid-column: 1 / -1;
}

/* ===================================================================
   6. FAQ - #faq.faq-section (DARK accordion)
   =================================================================== */
body.oliv-editorial.ed-service .faq-section {
  padding-block: clamp(3.5rem, 8vw, 6.5rem);
}
body.oliv-editorial.ed-service .faq-inner {
  max-width: 820px;
  margin-inline: auto;
  padding-inline: var(--eds-gut);
}
body.oliv-editorial.ed-service .faq-section .eyebrow-script {
  color: var(--eds-accent);
  font-size: clamp(1.3rem, 2.4vw, 1.8rem);
  margin: 0 0 0.4rem;
}
body.oliv-editorial.ed-service .faq-section .manifest-title {
  color: var(--eds-cream);
  font-size: clamp(2rem, 5vw, 3.6rem);
  line-height: 1.02;
  letter-spacing: -0.015em;
  margin: 0 0 clamp(2rem, 4vw, 3rem);
  text-wrap: balance;
}
body.oliv-editorial.ed-service .faq-list { border-top: 1px solid var(--eds-faint); }
body.oliv-editorial.ed-service .faq-item {
  border-bottom: 1px solid var(--eds-faint);
  transition: background .4s ease;
}
body.oliv-editorial.ed-service .faq-item[open] { background: rgba(191,199,74,0.04); }
body.oliv-editorial.ed-service .faq-q {
  position: relative;
  cursor: pointer;
  list-style: none;
  display: flex;
  align-items: center;
  min-height: 48px;
  padding: 1.4rem 3rem 1.4rem 0;
  color: var(--eds-cream);
  font-size: clamp(1.1rem, 1.9vw, 1.4rem);
  line-height: 1.3;
  letter-spacing: -0.01em;
  transition: color .35s ease;
}
body.oliv-editorial.ed-service .faq-q::-webkit-details-marker { display: none; }
body.oliv-editorial.ed-service .faq-item[open] .faq-q { color: var(--eds-accent); }
body.oliv-editorial.ed-service .faq-q::after {
  content: "";
  position: absolute;
  right: 0.4rem;
  top: 50%;
  width: 14px;
  height: 14px;
  background:
    linear-gradient(var(--eds-accent), var(--eds-accent)) center / 14px 2px no-repeat,
    linear-gradient(var(--eds-accent), var(--eds-accent)) center / 2px 14px no-repeat;
  transform: translateY(-50%) rotate(0deg);
  transition: transform .4s cubic-bezier(.16,.84,.44,1);
}
body.oliv-editorial.ed-service .faq-item[open] .faq-q::after {
  transform: translateY(-50%) rotate(135deg);
}
body.oliv-editorial.ed-service .faq-a {
  padding: 0 3rem 1.6rem 0;
}
body.oliv-editorial.ed-service .faq-a p {
  color: var(--eds-muted);
  font-size: clamp(1rem, 1.4vw, 1.1rem);
  line-height: 1.65;
  margin: 0;
  max-width: 62ch;
}

/* ===================================================================
   7. RELATED SERVICES - #related.service-grid-section (DARK index)
   =================================================================== */
body.oliv-editorial.ed-service .service-grid-section {
  padding-block: clamp(3.5rem, 8vw, 6.5rem);
}
body.oliv-editorial.ed-service .service-grid-inner {
  max-width: 1180px;
  margin-inline: auto;
  padding-inline: var(--eds-gut);
}
body.oliv-editorial.ed-service .service-grid-section .eyebrow-script {
  color: var(--eds-accent);
  font-size: clamp(1.3rem, 2.4vw, 1.8rem);
  margin: 0 0 0.4rem;
}
body.oliv-editorial.ed-service .service-grid-section .manifest-title {
  color: var(--eds-cream);
  font-size: clamp(2rem, 5vw, 3.6rem);
  line-height: 1.02;
  letter-spacing: -0.015em;
  margin: 0 0 clamp(2.5rem, 5vw, 3.75rem);
  text-wrap: balance;
}
body.oliv-editorial.ed-service .service-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: clamp(1.25rem, 2.5vw, 2rem);
}
body.oliv-editorial.ed-service .service-card {
  position: relative;
  display: flex;
  flex-direction: column;
  padding: 1.9rem 1.6rem 1.7rem;
  text-decoration: none;
  border-top: 1px solid var(--eds-faint);
  transition: transform .45s ease, border-color .45s ease, background .45s ease;
}
body.oliv-editorial.ed-service .service-card::after {
  content: "";
  position: absolute;
  top: -1px; left: 0;
  height: 1px; width: 0;
  background: var(--eds-accent);
  transition: width .5s cubic-bezier(.16,.84,.44,1);
}
body.oliv-editorial.ed-service .service-card:hover {
  transform: translateY(-4px);
  background: rgba(245,241,232,0.03);
}
body.oliv-editorial.ed-service .service-card:hover::after { width: 100%; }
body.oliv-editorial.ed-service .service-card-num {
  display: block;
  font-size: clamp(1.6rem, 2.6vw, 2.2rem);
  line-height: 1;
  color: transparent;
  -webkit-text-stroke: 1px var(--eds-accent);
  opacity: .7;
  margin-bottom: 1.1rem;
}
/* fallback: never let the ghosted numeral go fully invisible */
@supports not ((-webkit-text-stroke: 1px var(--eds-accent)) or (text-stroke: 1px var(--eds-accent))) {
  body.oliv-editorial.ed-service .service-card-num { color: rgba(191,199,74,0.55); }
}
body.oliv-editorial.ed-service .service-card-title {
  color: var(--eds-cream);
  font-size: clamp(1.25rem, 1.9vw, 1.55rem);
  line-height: 1.15;
  letter-spacing: -0.01em;
  margin: 0 0 0.7rem;
  transition: color .35s ease;
}
body.oliv-editorial.ed-service .service-card:hover .service-card-title { color: var(--eds-accent); }
body.oliv-editorial.ed-service .service-card-dek {
  color: var(--eds-muted);
  font-size: 0.97rem;
  line-height: 1.55;
  margin: 0 0 1.4rem;
  flex: 1 1 auto;
}
body.oliv-editorial.ed-service .service-card-cta {
  color: var(--eds-accent);
  font-size: 0.86rem;
  letter-spacing: 0.04em;
  display: inline-flex;
  gap: 0.4em;
  transition: gap .35s ease;
}
body.oliv-editorial.ed-service .service-card:hover .service-card-cta { gap: 0.8em; }

/* ===================================================================
   8. CONTACT CTA - #contact-cta.contact-cta-section.scope-dark (DARK closer)
   button wrapper in live DOM is .contact-mkt-btn (descendant match holds)
   =================================================================== */
body.oliv-editorial.ed-service .contact-cta-section {
  position: relative;
  padding-block: clamp(4rem, 9vw, 7.5rem);
  overflow: hidden;
}
body.oliv-editorial.ed-service .contact-cta-section::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 0;
  background: radial-gradient(80% 120% at 50% 0%, rgba(191,199,74,0.12), transparent 60%);
  pointer-events: none;
}
body.oliv-editorial.ed-service .contact-inner {
  position: relative;
  z-index: 1;
  max-width: 880px;
  margin-inline: auto;
  padding-inline: var(--eds-gut);
}
body.oliv-editorial.ed-service .contact-cta-section .eyebrow-script {
  color: var(--eds-accent);
  font-size: clamp(1.3rem, 2.4vw, 1.8rem);
  margin: 0 0 0.5rem;
}
body.oliv-editorial.ed-service .contact-cta-section .contact-title {
  color: var(--eds-cream);
  font-size: clamp(2.4rem, 6vw, 4.5rem);
  line-height: 1.0;
  letter-spacing: -0.02em;
  margin: 0 0 1.4rem;
  text-wrap: balance;
}
body.oliv-editorial.ed-service .contact-cta-section .contact-sub {
  color: var(--eds-muted);
  font-size: clamp(1.05rem, 1.6vw, 1.25rem);
  line-height: 1.55;
  max-width: 46ch;
  margin: 0 auto 2.4rem;
}
body.oliv-editorial.ed-service .contact-cta-section .wp-block-button__link {
  display: inline-flex;
  align-items: center;
  gap: 0.6em;
  min-height: 52px;
  padding: 1rem 2.2rem;
  border: 1px solid var(--eds-accent);
  border-radius: 999px;
  background: var(--eds-accent);
  color: var(--eds-ink);
  font-size: 1rem;
  letter-spacing: 0.05em;
  text-decoration: none;
  transition: background .4s ease, color .4s ease, transform .4s ease;
}
body.oliv-editorial.ed-service .contact-cta-section .wp-block-button__link:hover {
  background: transparent;
  color: var(--eds-accent);
  transform: translateY(-2px);
}

/* ===================================================================
   RESPONSIVE - tablet 782-1024, mobile <=781
   =================================================================== */
@media (max-width: 1024px) {
  body.oliv-editorial.ed-service .approach-grid { flex-wrap: wrap; }
  body.oliv-editorial.ed-service .approach-step { flex: 1 1 calc(50% - 1.25rem); }
  body.oliv-editorial.ed-service .service-grid { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 781px) {
  body.oliv-editorial.ed-service .approach-grid {
    display: flex;
    flex-direction: column;
    gap: 1.5rem;
  }
  body.oliv-editorial.ed-service .approach-step { flex: 1 1 100%; }
  body.oliv-editorial.ed-service .deliverables { grid-template-columns: 1fr; }
  body.oliv-editorial.ed-service .deliverables li:last-child:nth-child(odd) { grid-column: auto; }
  body.oliv-editorial.ed-service .service-grid { grid-template-columns: 1fr; }

  body.oliv-editorial.ed-service .service-hero .hero-h1,
  body.oliv-editorial.ed-service .approach-section .approach-title,
  body.oliv-editorial.ed-service .deliverables-section .manifest-title,
  body.oliv-editorial.ed-service .faq-section .manifest-title,
  body.oliv-editorial.ed-service .service-grid-section .manifest-title,
  body.oliv-editorial.ed-service .contact-cta-section .contact-title {
    max-width: 100%;
    word-break: normal;
    overflow-wrap: break-word;
    hyphens: none;
  }
  body.oliv-editorial.ed-service .service-hero .hero-h1 { font-size: clamp(2.3rem, 11vw, 3.4rem); }
  body.oliv-editorial.ed-service .contact-cta-section .contact-title { font-size: clamp(2.2rem, 11vw, 3.2rem); }

  body.oliv-editorial.ed-service .service-hero .hero-ctas .wp-block-button__link,
  body.oliv-editorial.ed-service .contact-cta-section .wp-block-button__link {
    width: 100%;
    justify-content: center;
  }
  body.oliv-editorial.ed-service .faq-a { padding-right: 0; }
  body.oliv-editorial.ed-service .faq-q { padding-right: 2.5rem; }
}

@media (prefers-reduced-motion: reduce) {
  body.oliv-editorial.ed-service .service-image-band img,
  body.oliv-editorial.ed-service .deliverables li,
  body.oliv-editorial.ed-service .service-card,
  body.oliv-editorial.ed-service .wp-block-button__link {
    transition: none !important;
    transform: none !important;
  }
}

/* ================================================================
   38. ED-404 — editorial 404 over Astra native markup (v1.9.8)
   ================================================================ */
body.oliv-editorial.ed-404 #content.site-content{ background:#131210; background-image:radial-gradient(120% 90% at 50% -10%, rgba(191,199,74,0.10) 0%, transparent 55%); color:#F5F1E8; }
body.oliv-editorial.ed-404 #content.site-content > .ast-container{ max-width:70rem; }
body.oliv-editorial.ed-404 #primary{ width:100%; padding-block:clamp(4rem,12vw,9rem); text-align:center; }
body.oliv-editorial.ed-404 .error-404{ text-align:center; }
body.oliv-editorial.ed-404 .error-404::before{ content:"404"; display:block; font-family:var(--oliv-font-serif); font-weight:300; font-style:italic; color:#BFC74A; font-size:clamp(7rem,26vw,19rem); line-height:0.82; letter-spacing:-0.04em; margin-bottom:clamp(1rem,3vw,2rem); }
body.oliv-editorial.ed-404 .ast-404-layout-1{ display:flex; flex-direction:column; align-items:center; }
body.oliv-editorial.ed-404 .page-header{ margin:0; }
body.oliv-editorial.ed-404 .page-title{ font-family:var(--oliv-font-serif); font-weight:400; color:#F5F1E8; font-size:clamp(1.6rem,4vw,2.6rem); line-height:1.1; letter-spacing:-0.01em; margin:0; }
body.oliv-editorial.ed-404 .page-content{ max-width:48ch; margin:clamp(1.2rem,3vw,2rem) auto 0; }
body.oliv-editorial.ed-404 .page-sub-title{ font-family:var(--oliv-font-sans); font-size:clamp(1rem,1.6vw,1.2rem); line-height:1.6; color:rgba(245,241,232,0.78); margin:0 0 clamp(1.6rem,4vw,2.4rem); }
body.oliv-editorial.ed-404 .ast-404-search{ margin:0 auto; max-width:30rem; }
body.oliv-editorial.ed-404 .ast-404-search .search-form{ display:flex; gap:0.6rem; }
body.oliv-editorial.ed-404 .ast-404-search .search-field{ flex:1 1 auto; width:100%; min-height:50px; padding:0 1.1rem; background:rgba(19,18,16,0.6); border:1px solid rgba(245,241,232,0.18); border-radius:10px; color:#F5F1E8; font-family:var(--oliv-font-sans); }
body.oliv-editorial.ed-404 .ast-404-search .search-field::placeholder{ color:rgba(245,241,232,0.55); }
body.oliv-editorial.ed-404 .ast-404-search .search-field:focus{ outline:none; border-color:#BFC74A; box-shadow:0 0 0 3px rgba(191,199,74,0.22); }
body.oliv-editorial.ed-404 .ast-404-search .search-submit{ flex:0 0 auto; min-height:50px; min-width:54px; padding:0 1.3rem; background:#BFC74A; color:#131210; border:0; border-radius:10px; font-weight:600; cursor:pointer; transition:background .3s; }
body.oliv-editorial.ed-404 .ast-404-search .search-submit:hover{ background:#d2da64; }
body.oliv-editorial.ed-404 .oliv-404-home{ margin:clamp(2rem,5vw,3rem) 0 0; text-align:center; }
body.oliv-editorial.ed-404 .oliv-404-home a{ color:#BFC74A; text-decoration:none; letter-spacing:0.16em; text-transform:uppercase; font-size:0.78rem; font-family:var(--oliv-font-sans); border-bottom:1px solid rgba(191,199,74,0.4); padding-bottom:5px; transition:color .3s ease, border-color .3s ease; }
body.oliv-editorial.ed-404 .oliv-404-home a:hover{ color:#F5F1E8; border-bottom-color:#F5F1E8; }
@media (max-width:781px){
  body.oliv-editorial.ed-404 .error-404::before{ font-size:clamp(5.5rem,30vw,9rem); }
  body.oliv-editorial.ed-404 .ast-404-search .search-form{ flex-direction:column; }
  body.oliv-editorial.ed-404 .ast-404-search .search-submit{ width:100%; }
}

/* ================================================================
   39. ED-SEARCH — minimal dark canvas for search results
   ================================================================ */
body.oliv-editorial.ed-search #content.site-content{ background:#131210; color:#F5F1E8; }
body.oliv-editorial.ed-search #content.site-content > .ast-container{ max-width:72rem; padding-block:clamp(3rem,8vw,6rem); }
body.oliv-editorial.ed-search h1.page-title, body.oliv-editorial.ed-search .ast-archive-description .page-title{ font-family:var(--oliv-font-serif); font-weight:300; color:#F5F1E8; }
body.oliv-editorial.ed-search .entry-title a{ color:#F5F1E8; text-decoration:none; }
body.oliv-editorial.ed-search .entry-title a:hover{ color:#BFC74A; }
body.oliv-editorial.ed-search .entry-content, body.oliv-editorial.ed-search .entry-summary{ color:rgba(245,241,232,0.74); }
body.oliv-editorial.ed-search a{ color:#BFC74A; }
/* ================================================================
   40. AUDIT FIXES (v1.9.9) — verified-real issues from the mega-audit.
   NOTE: the audit's "cream-on-cream SECTIONS" P0 was a FALSE POSITIVE —
   the charcoal blanket (0,7,1) beats the cream flip (0,4,1), so sections
   render dark and the §29 cream text is correct (user-confirmed). The
   REAL cream bug was LIGHT CARDS (story cards #FFF) inside dark sections.
   ================================================================ */

/* 1. STORY CARDS are white (--oliv-bg-card) — §29 forced cream title/dek = invisible. Restore dark + chartreuse (no gold). */
body.oliv-editorial .story-card .story-title { color: var(--oliv-text-heading, #0A0908) !important; -webkit-text-fill-color: var(--oliv-text-heading, #0A0908); }
body.oliv-editorial .story-card .story-dek { color: var(--oliv-text-quiet, #5C5142) !important; }
body.oliv-editorial .story-card .story-date { color: #4D5615 !important; }
body.oliv-editorial .story-card .story-title { background-image: linear-gradient(#4D5615, #4D5615) !important; }
body.oliv-editorial .story-card > figure::after { background: linear-gradient(180deg, rgba(191,199,74,0) 45%, rgba(191,199,74,0.16) 100%) !important; }

/* 2. FILLED CTAs were dark-chartreuse text on dark = invisible (e.g. despre "Începe o conversație"). Make proper chartreuse pills. */
body.oliv-editorial .wp-block-button:not(.is-style-outline) > .wp-block-button__link {
  background: var(--ed-accent, #A4AC2C) !important;
  color: #131210 !important;
  border: 1px solid var(--ed-accent, #A4AC2C) !important;
}
body.oliv-editorial .wp-block-button:not(.is-style-outline) > .wp-block-button__link:hover {
  background: #BFC74A !important; border-color: #BFC74A !important; color: #131210 !important;
}

/* 3. NO-GOLD brief: chartreuse the gold radial leak on the editorial hero (footer untouched). */
body.oliv-editorial .service-hero::after { background: radial-gradient(circle at 80% 20%, rgba(191,199,74,0.07) 0%, transparent 70%) !important; }

/* 4. LOW OPACITY (client flagged "opacități joase"): lift the contact trust strip. */
body.oliv-editorial.ed-contact .contact-trust { color: rgba(245,241,232,0.76) !important; }

/* 5. ARMS 50/50: bespoke split CSS targeted .arms-grid but the DOM container is .arms-columns. */
body.oliv-editorial .arms-columns { display: grid !important; grid-template-columns: 1fr 1fr; gap: 0; }
@media (max-width: 781px){ body.oliv-editorial .arms-columns { grid-template-columns: 1fr !important; } }

/* 6. FAQ category anchors were jumping under the sticky header. */
body.oliv-editorial.ed-faq .faq-cat { scroll-margin-top: 110px; }
body.oliv-editorial.ed-faq .faq-quicklinks a { scroll-margin-top: 110px; }
/* ================================================================
   41. BREADCRUMBS de-dup + editorial recolour (v1.9.10)
   Canonical = original rank_math breadcrumb (.oliv-breadcrumbs-wrap).
   Its base styling (L2682+) used --oliv-text-quiet (dark) + gold-foil =
   dark-on-dark + off-brief gold on the editorial canvas. Repaint
   cream/chartreuse for ALL editorial pages (per-type bespoke still wins).
   ================================================================ */
body.oliv-editorial .oliv-breadcrumbs-wrap .rank-math-breadcrumb,
body.oliv-editorial .oliv-breadcrumbs-wrap .rank-math-breadcrumb p { color: rgba(245,241,232,0.62) !important; }
body.oliv-editorial .oliv-breadcrumbs-wrap .rank-math-breadcrumb a { color: rgba(245,241,232,0.78) !important; background-image: none !important; }
body.oliv-editorial .oliv-breadcrumbs-wrap .rank-math-breadcrumb a:hover { color: #BFC74A !important; }
body.oliv-editorial .oliv-breadcrumbs-wrap .rank-math-breadcrumb .separator { color: rgba(191,199,74,0.7) !important; }
body.oliv-editorial .oliv-breadcrumbs-wrap .rank-math-breadcrumb .last,
body.oliv-editorial .oliv-breadcrumbs-wrap .rank-math-breadcrumb [aria-current="page"] { color: #BFC74A !important; }
/* ================================================================
   42. MOBILE MENU = editorial dark + LOGO ligature fix (v1.9.14)
   ================================================================ */
/* Logo: kill Fraunces italic ligatures/alternates that merged "OLIV" -> "ŒLIV". */
.site-branding .site-title a, .ast-site-title a {
  font-variant-ligatures: none !important;
  -webkit-font-feature-settings: "liga" 0, "dlig" 0, "clig" 0, "calt" 0 !important;
  font-feature-settings: "liga" 0, "dlig" 0, "clig" 0, "calt" 0 !important;
}

@media (max-width: 921px) {
  /* Mobile drawer surface -> dark editorial (was warm-white/cream) */
  body.oliv-editorial .ast-mobile-popup-drawer,
  body.oliv-editorial .ast-mobile-popup-drawer.active .ast-mobile-popup-inner,
  body.oliv-editorial .ast-mobile-popup-drawer.active .ast-mobile-popup-content,
  body.oliv-editorial .ast-mobile-header-wrap .ast-mobile-header-content {
    background-color: #131210 !important;
    background-image: radial-gradient(120% 70% at 50% 0%, rgba(191,199,74,0.06) 0%, transparent 55%) !important;
  }
  /* Menu items -> cream, hover/current -> chartreuse */
  body.oliv-editorial .ast-mobile-popup-drawer .menu-item > a,
  body.oliv-editorial .ast-mobile-popup-drawer .menu-link,
  body.oliv-editorial .ast-mobile-popup-drawer .page_item > a {
    color: #F5F1E8 !important;
    border-bottom: 1px solid rgba(245,241,232,0.08);
  }
  body.oliv-editorial .ast-mobile-popup-drawer .menu-item > a:hover,
  body.oliv-editorial .ast-mobile-popup-drawer .menu-item.current-menu-item > a,
  body.oliv-editorial .ast-mobile-popup-drawer .current-menu-item > .menu-link {
    color: #BFC74A !important;
  }
  /* Sub-menu items quieter cream */
  body.oliv-editorial .ast-mobile-popup-drawer .sub-menu .menu-link,
  body.oliv-editorial .ast-mobile-popup-drawer .sub-menu .menu-item > a {
    color: rgba(245,241,232,0.72) !important;
    font-size: 1.05rem !important;
  }
  /* Arrows + close/hamburger icons -> chartreuse/cream on dark */
  body.oliv-editorial .ast-mobile-popup-drawer .ast-arrow-svg,
  body.oliv-editorial .ast-mobile-popup-drawer svg,
  body.oliv-editorial #ast-mobile-header .ast-mobile-svg {
    color: #BFC74A !important; fill: currentColor !important;
  }
  /* Lang RO/EN + header CTA legible on the dark drawer */
  body.oliv-editorial .ast-mobile-popup-drawer .oliv-lang-item > a { color: rgba(245,241,232,0.7) !important; }
  body.oliv-editorial .ast-mobile-popup-drawer .oliv-header-cta-link {
    color: #131210 !important; background: #BFC74A !important; border-color: #BFC74A !important;
  }
}
/* ================================================================
   43. LOGO O-L overlap fix + MOBILE HEADER layout fix (v1.9.15)
   (Reverts §42's feature-disabling which removed the contextual
   alternates that spaced "OLIV"; positive letter-spacing instead.)
   ================================================================ */
.site-branding .site-title a, .ast-site-title a {
  font-feature-settings: normal !important;
  -webkit-font-feature-settings: normal !important;
  font-variant-ligatures: normal !important;
  letter-spacing: 0.05em !important;
}
@media (max-width: 921px) {
  /* Header bar: flex, logo centered IN FLOW, burger pinned right + on top */
  #ast-mobile-header .ast-builder-grid-row,
  #ast-mobile-header .ast-primary-header-bar .ast-builder-grid-row {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    position: relative !important;
    min-height: 58px;
  }
  #ast-mobile-header .site-header-primary-section-left {
    position: static !important;
    transform: none !important;
    left: auto !important; top: auto !important;
    margin: 0 !important;
    z-index: 1 !important;
  }
  #ast-mobile-header .site-header-primary-section-right {
    position: absolute !important;
    right: 14px !important; top: 50% !important;
    transform: translateY(-50%) !important;
    margin: 0 !important;
    z-index: 5 !important;
  }
  /* Hamburger / close icon clearly visible (cream) on the dark bar */
  #ast-mobile-header .main-header-menu-toggle,
  #ast-mobile-header .main-header-menu-toggle .ast-mobile-svg,
  #ast-mobile-header .ast-button-wrap .menu-toggle { color: #F5F1E8 !important; }
}
/* ================================================================
   44. MOBILE MENU refinement — chartreuse text states, no heavy bands (v1.9.16)
   ================================================================ */
@media (max-width: 921px){
  body.oliv-editorial .ast-mobile-popup-drawer .menu-item.current-menu-item,
  body.oliv-editorial .ast-mobile-popup-drawer .menu-item:hover,
  body.oliv-editorial .ast-mobile-popup-drawer .menu-item > a:hover,
  body.oliv-editorial .ast-mobile-popup-drawer .current-menu-item > a { background: transparent !important; }
  body.oliv-editorial .ast-mobile-popup-drawer .menu-item.current-menu-item > a { color: #BFC74A !important; }
  body.oliv-editorial .ast-mobile-popup-drawer .menu-item > a,
  body.oliv-editorial .ast-mobile-popup-drawer .menu-link { border-bottom: 1px solid rgba(245,241,232,0.06) !important; }
}
/* ================================================================
   45. MOBILE HEADER — done properly (v1.9.19)
   Dark opaque sticky bar · logo LEFT · hamburger RIGHT · balanced.
   Resets the earlier centered-absolute attempt cleanly.
   ================================================================ */
@media (max-width: 921px) {
  #ast-mobile-header,
  #ast-mobile-header .ast-primary-header-bar,
  #ast-mobile-header .main-header-bar,
  #ast-mobile-header .main-header-bar-wrap {
    background-color: #131210 !important;
    z-index: 99 !important;
  }
  #ast-mobile-header .ast-builder-grid-row,
  #ast-mobile-header .ast-primary-header-bar .ast-builder-grid-row {
    display: flex !important;
    flex-direction: row !important;
    align-items: center !important;
    justify-content: space-between !important;
    position: relative !important;
    min-height: 60px !important;
    gap: 1rem !important;
    padding: 0 clamp(18px, 5vw, 24px) !important;
  }
  #ast-mobile-header .site-header-primary-section-left,
  #ast-mobile-header .site-header-primary-section-right {
    position: static !important;
    transform: none !important;
    left: auto !important; right: auto !important; top: auto !important;
    margin: 0 !important; padding: 0 !important;
    flex: 0 0 auto !important; width: auto !important;
  }
  #ast-mobile-header .site-header-primary-section-right { margin-left: auto !important; }
  #ast-mobile-header .site-title a, #ast-mobile-header .ast-site-title a { color: #F5F1E8 !important; }
  #ast-mobile-header .main-header-menu-toggle {
    color: #F5F1E8 !important; background: transparent !important; border: 0 !important; padding: 6px !important;
  }
  #ast-mobile-header .main-header-menu-toggle .ast-mobile-svg { fill: currentColor !important; }
}
/* ================================================================
   46. MOBILE header pin + menu navigable (v1.9.20)
   ================================================================ */
@media (max-width: 921px) {
  /* Pin the bar to the very top, opaque, above content -> no gap, no bleed-through */
  #masthead #ast-mobile-header,
  #ast-mobile-header {
    position: -webkit-sticky !important;
    position: sticky !important;
    top: 0 !important;
    margin-top: 0 !important;
    z-index: 999 !important;
    background-color: #131210 !important;
  }
  #ast-mobile-header .ast-primary-header-bar,
  #ast-mobile-header .main-header-bar { margin-top: 0 !important; }

  /* SCROLL-LOCK without position:fixed (the fixed body was locking the drawer). */
  body.ast-mobile-popup-drawer-open,
  body.ast-main-header-nav-open {
    position: static !important;
    overflow: hidden !important;
    width: 100% !important;
  }
  /* Drawer scrolls fully + links clickable */
  .ast-mobile-popup-drawer.active,
  .ast-mobile-popup-drawer.active .ast-mobile-popup-inner,
  .ast-mobile-popup-drawer.active .ast-mobile-popup-content {
    height: 100dvh !important;
    max-height: 100dvh !important;
    overflow-y: auto !important;
    -webkit-overflow-scrolling: touch !important;
  }
  .ast-mobile-popup-drawer.active .ast-mobile-popup-content { padding-bottom: 4rem !important; }
  .ast-mobile-popup-drawer.active .menu-item > a,
  .ast-mobile-popup-drawer.active .menu-link,
  .ast-mobile-popup-drawer.active .oliv-lang-item > a,
  .ast-mobile-popup-drawer.active .oliv-header-cta-link {
    pointer-events: auto !important;
    position: relative;
    z-index: 2;
  }
}

/* ================================================================
   47. FAQ — NATIVE wp:details ALIAS (configurability upgrade v1.9.21)
   Goal: make Q&A client-editable by converting the raw <details>
   inside wp:html to native core/details blocks. The native block
   strips the .faq-q class off <summary> on save, so we re-bind the
   §32 .faq-q treatment to `.faq-item > summary`. The answer stays a
   wp:group.faq-a > p (identical structure to the original), so the
   existing .faq-a / .faq-a p / .faq-a a rules already cover it.
   Counter machinery (.faq-inner faqcat / .faq-list faqitem) is kept
   intact by preserving those wrappers as native wp:group blocks.
   ================================================================ */
body.oliv-editorial.ed-faq .faq-item > summary {
    display: block;
    font-family: var(--oliv-font-serif) !important;
    font-size: clamp(1.18rem, 2vw, 1.65rem) !important;
    line-height: 1.32 !important;
    font-weight: 400;
    color: var(--faq-cream) !important;
    -webkit-text-fill-color: var(--faq-cream);
    padding: clamp(1.2rem, 2.2vw, 1.75rem) 3rem clamp(1.2rem, 2.2vw, 1.75rem)
             clamp(2.4rem, 5vw, 4.2rem) !important;
    cursor: pointer;
    position: relative;
    list-style: none;
    min-height: 44px;
    box-sizing: border-box;
    overflow-wrap: break-word;
    transition: color var(--oliv-dur-fast, 240ms) ease;
}
body.oliv-editorial.ed-faq .faq-item > summary::-webkit-details-marker { display: none; }
body.oliv-editorial.ed-faq .faq-item > summary::before {
    content: counter(faqitem, decimal-leading-zero);
    position: absolute;
    left: 0;
    top: clamp(1.25rem, 2.3vw, 1.85rem);
    font-family: var(--oliv-font-serif);
    font-style: italic;
    font-size: clamp(0.85rem, 1.2vw, 1.05rem);
    color: var(--faq-accent);
    opacity: 0.72;
    transition: opacity var(--oliv-dur-fast, 240ms) ease;
}
body.oliv-editorial.ed-faq .faq-item > summary::after {
    content: "+";
    position: absolute;
    right: clamp(0.25rem, 1vw, 0.75rem);
    top: 50%;
    transform: translateY(-50%);
    font-family: var(--oliv-font-sans);
    font-size: 1.6rem;
    font-weight: 300;
    line-height: 1;
    color: var(--faq-accent) !important;
    transition: transform var(--oliv-dur-normal, 480ms) var(--oliv-ease-cinematic, ease);
}
body.oliv-editorial.ed-faq .faq-item > summary:hover,
body.oliv-editorial.ed-faq .faq-item > summary:focus-visible {
    color: var(--faq-accent) !important;
    -webkit-text-fill-color: var(--faq-accent);
    outline: none;
}
body.oliv-editorial.ed-faq .faq-item > summary:hover::before,
body.oliv-editorial.ed-faq .faq-item > summary:focus-visible::before { opacity: 1; }
body.oliv-editorial.ed-faq .faq-item[open] > summary {
    color: var(--faq-accent) !important;
    -webkit-text-fill-color: var(--faq-accent);
}
body.oliv-editorial.ed-faq .faq-item[open] > summary::before { opacity: 1; }
body.oliv-editorial.ed-faq .faq-item[open] > summary::after {
    content: "\2013";
    transform: translateY(-50%) rotate(180deg);
}
/* native answer is now <p class="faq-a"> directly inside <details> (no .faq-a
   div wrapper), so re-bind the §32 `.faq-a p` font treatment to `p.faq-a`.
   The §32 `.faq-a` padding/indent already applies (p.faq-a IS .faq-a). */
body.oliv-editorial.ed-faq p.faq-a {
    font-family: var(--oliv-font-sans) !important;
    font-size: clamp(1rem, 1.2vw, 1.08rem) !important;
    line-height: 1.75 !important;
    color: var(--faq-muted) !important;
    max-width: 60ch;
    margin: 0;
}
/* tablet 782-1024 — mirror §32 .faq-q sizing */
@media (min-width: 782px) and (max-width: 1024px) {
    body.oliv-editorial.ed-faq .faq-item > summary { font-size: clamp(1.2rem, 2.3vw, 1.5rem) !important; }
}
/* mobile <=781 — mirror §32 .faq-q sizing + padding */
@media (max-width: 781px) {
    body.oliv-editorial.ed-faq .faq-item > summary {
        font-size: clamp(1.1rem, 5vw, 1.32rem) !important;
        padding-left: 2rem !important;
        padding-right: 2.4rem !important;
    }
    body.oliv-editorial.ed-faq .faq-item > summary::before { top: clamp(1.25rem, 5vw, 1.5rem); }
    body.oliv-editorial.ed-faq p.faq-a { max-width: 100%; }
}

/* ================================================================
   48. OFF-CANVAS DRAWER — cache-proof dark surface + premium polish
   (v1.9.23). UNGATED on body classes on purpose: cached pages carry
   stale Astra INLINE css (pre off-canvas color settings), and the
   menu UL paints its own background ABOVE the drawer surface. These
   external rules win regardless of page-cache age or body class.
   ================================================================ */
@media (max-width: 921px) {
  /* every paintable layer of the drawer -> editorial dark */
  .ast-mobile-popup-drawer,
  .ast-mobile-popup-drawer .ast-mobile-popup-inner,
  .ast-mobile-popup-drawer .ast-mobile-popup-content,
  .ast-mobile-popup-drawer .ast-mobile-popup-header,
  .ast-mobile-popup-drawer .main-header-bar-navigation,
  .ast-mobile-popup-drawer .main-navigation,
  .ast-mobile-popup-drawer .main-header-menu,
  .ast-mobile-popup-drawer .ast-builder-menu,
  .ast-mobile-popup-drawer .ast-builder-layout-element {
    background-color: #131210 !important;
    background-image: none !important;
  }
  .ast-mobile-popup-drawer .ast-mobile-popup-inner {
    background-image: radial-gradient(120% 70% at 50% 0%, rgba(191,199,74,0.06) 0%, transparent 55%) !important;
  }
  /* items cream + hairline, active/hover chartreuse — ungated */
  .ast-mobile-popup-drawer .menu-item > a,
  .ast-mobile-popup-drawer .menu-link {
    color: #F5F1E8 !important;
    border-bottom: 1px solid rgba(245,241,232,0.10) !important;
    background: transparent !important;
  }
  .ast-mobile-popup-drawer .menu-item.current-menu-item > a,
  .ast-mobile-popup-drawer .current-menu-item > .menu-link,
  .ast-mobile-popup-drawer .menu-item > a:hover,
  .ast-mobile-popup-drawer .menu-link:hover { color: #BFC74A !important; }
  /* close X cream, calmer focus ring (replaces dashed white) */
  .ast-mobile-popup-drawer .menu-toggle-close,
  .ast-mobile-popup-drawer #menu-toggle-close,
  .ast-mobile-popup-drawer .menu-toggle-close svg { color: #F5F1E8 !important; fill: currentColor !important; }
  .ast-mobile-popup-drawer .menu-toggle-close:focus,
  .ast-mobile-popup-drawer .menu-toggle-close:focus-visible,
  .ast-mobile-popup-drawer #menu-toggle-close:focus {
    outline: 2px solid rgba(191,199,74,0.8) !important;
    outline-offset: 2px;
    border: 0 !important;
    box-shadow: none !important;
  }
  /* wordmark inside the drawer header (logo element added to popup_content) */
  .ast-mobile-popup-drawer .ast-mobile-popup-header { min-height: 0; }
  .ast-mobile-popup-drawer .site-branding .site-title a,
  .ast-mobile-popup-drawer .ast-site-title a,
  .ast-mobile-popup-drawer .ast-site-identity .site-title a {
    color: #F5F1E8 !important;
    font-size: 1.5rem !important;
  }
  .ast-mobile-popup-drawer [data-section="title_tagline"] {
    padding: 10px 20px 0 !important;
  }
  /* CTA pill — the desktop pill rule (.menu-item.oliv-header-cta .oliv-header-cta-link,
     L2296, 0.72rem !important, (0,3,1)) wins inside the drawer unless we out-rank it.
     (0,4,1) selector + later in file = decisive. */
  .ast-mobile-popup-drawer .menu-item.oliv-header-cta .oliv-header-cta-link {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    min-height: 50px !important;
    /* px on purpose: rem is unreliable here (Astra rescales the root on mobile) */
    font-size: 15px !important;
    font-family: var(--oliv-font-sans, Inter, sans-serif) !important;
    font-weight: 600 !important;
    letter-spacing: 0.9px !important;
    text-transform: uppercase !important;
    color: #131210 !important;
    background: #BFC74A !important;
    border: 1px solid #BFC74A !important;
    border-radius: 999px !important;
    margin: 1.25rem 20px 0.5rem !important;
    padding: 0.9rem 1.6rem !important;
    /* the li stretches past the gutter; pin symmetric 20px side margins */
    width: calc(100% - 40px) !important;
    max-width: calc(100% - 40px) !important;
    box-sizing: border-box !important;
  }
  /* kill the desktop gold hover inside the drawer — stay chartreuse */
  .ast-mobile-popup-drawer .menu-item.oliv-header-cta .oliv-header-cta-link:hover,
  .ast-mobile-popup-drawer .menu-item.oliv-header-cta .oliv-header-cta-link:focus-visible {
    color: #131210 !important;
    background: #D3DA5E !important;
    border-color: #D3DA5E !important;
  }
  li.menu-item.oliv-header-cta { border-bottom: 0 !important; }
  /* lang items breathe a bit */
  .ast-mobile-popup-drawer .oliv-lang-item > a { color: rgba(245,241,232,0.7) !important; }
  .ast-mobile-popup-drawer .oliv-lang-item.current-menu-item > a,
  .ast-mobile-popup-drawer .oliv-lang-item.current-lang > a { color: #BFC74A !important; }
}
@media (prefers-reduced-motion: reduce) {
  .ast-mobile-popup-drawer,
  .ast-mobile-popup-drawer * { transition: none !important; animation: none !important; }
}

/* ================================================================
   49. PROIECTE work-cards — accent disc BEHIND, not over (v1.9.27)
   ROOT CAUSE of the giant olive disc: the global scope-tag pill rule
   (.work-card[data-scope-tag]::before, L1008: bg #A4AC2C + radius
   999px) and the ed-proiecte ghost-numeral rule (L7239) target the
   SAME ::before — the cascade merged them into a card-sized olive
   pill painted OVER the image. Client call: chartreuse goes BEHIND
   the content, smaller, and the image overlay gets stronger.
   ================================================================ */
/* numeral = pure ghost glyph; strip the inherited pill box */
body.oliv-editorial.ed-proiecte #work .wp-block-column > .work-card::before {
  background: transparent !important;
  border-radius: 0 !important;
  padding: 0 !important;
  width: auto !important;
  height: auto !important;
  inset: auto !important;
  top: 0.55rem !important;
  right: 0.85rem !important;
}
/* smaller olive accent disc BEHIND the text block (z:-1 inside the
   content stacking context — under the title, above the card glass) */
body.oliv-editorial.ed-proiecte #work .work-card .uagb-ifb-content {
  position: relative;
  z-index: 1;
  isolation: isolate;
}
body.oliv-editorial.ed-proiecte #work .work-card .uagb-ifb-content::after {
  content: "";
  position: absolute;
  left: -14%;
  bottom: -55%;
  width: 52%;
  aspect-ratio: 1;
  border-radius: 50%;
  background: #A4AC2C;
  opacity: 0.38;
  z-index: -1;
  pointer-events: none;
  transition: opacity 0.5s ease, transform 0.6s cubic-bezier(0.22, 1, 0.36, 1);
}
body.oliv-editorial.ed-proiecte #work .work-card:hover .uagb-ifb-content::after {
  opacity: 0.6;
  transform: scale(1.08);
}
/* stronger image overlay: deep editorial gradient + a quiet accent tint */
body.oliv-editorial.ed-proiecte #work .work-card .uagb-ifb-image-content::after {
  background:
    linear-gradient(180deg, rgba(14, 13, 10, 0.05) 0%, rgba(14, 13, 10, 0.12) 55%, rgba(14, 13, 10, 0.62) 100%),
    rgba(164, 172, 44, 0.10);
}
body.oliv-editorial.ed-proiecte #work .work-card:hover .uagb-ifb-image-content::after {
  background:
    linear-gradient(180deg, rgba(14, 13, 10, 0) 0%, rgba(14, 13, 10, 0.05) 55%, rgba(14, 13, 10, 0.45) 100%),
    rgba(164, 172, 44, 0);
}

/* ================================================================
   50. WORLD ARCHIVE — hide pagination (v1.9.28). The full 24-entry
   collage renders on one page via post_limits; the pagination links
   are computed from a phantom ppp=10 and would lead to empty pages.
   ================================================================ */
body.oliv-editorial.ed-world .ast-pagination,
body.oliv-editorial.ed-world nav.navigation.pagination,
body.oliv-editorial.ed-world .page-numbers {
  display: none !important;
}

/* ================================================================
   51. SERVICE-HERO CTAs + hero/breadcrumb rhythm (v1.9.29)
   ROOT CAUSE: the pill button styles were scoped to .ed-service, so
   on ed-hub/ed-faq/ed-proiecte the hero buttons got only colors
   (computed: padding 0 0 4.9px, radius 0 = the broken little box).
   These rules are type-agnostic on .service-hero .hero-ctas.
   ================================================================ */
body.oliv-editorial .service-hero .hero-ctas { gap: 0.9rem 1rem; }
body.oliv-editorial .service-hero .hero-ctas .wp-block-button__link {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 0.55em;
  min-height: 52px !important;
  padding: 0.95rem 2.1rem !important;
  border-radius: 999px !important;
  font-size: 15px !important;
  font-weight: 600 !important;
  letter-spacing: 0.04em !important;
  background: #BFC74A !important;
  color: #131210 !important;
  border: 1px solid #BFC74A !important;
  text-decoration: none !important;
  box-shadow: none !important;
  transition: background 0.35s ease, color 0.35s ease, border-color 0.35s ease, transform 0.35s ease;
}
body.oliv-editorial .service-hero .hero-ctas .wp-block-button__link:hover,
body.oliv-editorial .service-hero .hero-ctas .wp-block-button__link:focus-visible {
  background: transparent !important;
  color: #BFC74A !important;
  transform: translateY(-2px);
}
/* outline variant: quiet cream ghost-pill -> chartreuse on hover */
body.oliv-editorial .service-hero .hero-ctas .wp-block-button.is-style-outline .wp-block-button__link {
  background: transparent !important;
  color: #F5F1E8 !important;
  border-color: rgba(245, 241, 232, 0.35) !important;
}
body.oliv-editorial .service-hero .hero-ctas .wp-block-button.is-style-outline .wp-block-button__link:hover,
body.oliv-editorial .service-hero .hero-ctas .wp-block-button.is-style-outline .wp-block-button__link:focus-visible {
  color: #BFC74A !important;
  border-color: #BFC74A !important;
  background: transparent !important;
}
@media (max-width: 781px) {
  body.oliv-editorial .service-hero .hero-ctas { width: 100%; }
  body.oliv-editorial .service-hero .hero-ctas .wp-block-button,
  body.oliv-editorial .service-hero .hero-ctas .wp-block-button__link { width: 100% !important; }
}
/* hero rhythm: the breadcrumb row already gives air under the sticky
   header — pull the hero up from ~158px to an editorial measure */
body.oliv-editorial.ed-hub .service-hero,
body.oliv-editorial.ed-service .service-hero,
body.oliv-editorial.ed-faq .service-hero,
body.oliv-editorial.ed-proiecte .service-hero,
body.oliv-editorial.ed-contact .service-hero {
  padding-top: clamp(48px, 8vh, 104px) !important;
}
/* breadcrumb: tight + quiet (no heavy band), trail colors per §41 */
body.oliv-editorial .oliv-breadcrumbs {
  padding: 14px 0 10px !important;
  border-bottom: 0 !important;
}
body.oliv-editorial .oliv-breadcrumbs-wrap .rank-math-breadcrumb p { margin: 0; }

/* ================================================================
   52. DESKTOP DROPDOWN + deliverables contrast + breadcrumb align
   (v1.9.30)
   - the generic nav flex rule (L2218 .main-navigation ul) was hitting
     .sub-menu too -> submenu rendered inline and never dropped down;
   - the old dropdown skin (L2315) was cream+gold = off-brief;
   - .deliverables li ended up cream text on white cards (two eras of
     rules fighting) -> invisible.
   ================================================================ */
/* dropdown behaviour + dark editorial skin — DESKTOP ONLY (v1.9.34: was
   unscoped and leaked into the off-canvas drawer, where the hover/absolute
   model fought Astra's accordion and left SERVICII permanently expanded) */
@media (min-width: 922px) {
.main-header-menu .menu-item-has-children { position: relative; }
.main-header-menu .sub-menu {
  display: block !important;
  position: absolute !important;
  top: 100% !important;
  left: 0 !important;
  z-index: 9999 !important;
  min-width: 280px !important;
  padding: 0.55rem 0 !important;
  margin: 0 !important;
  background: #131210 !important;
  border: 1px solid rgba(245, 241, 232, 0.10) !important;
  border-top: 2px solid #BFC74A !important;
  border-radius: 0 0 6px 6px !important;
  box-shadow: 0 22px 48px rgba(0, 0, 0, 0.45) !important;
  opacity: 0;
  visibility: hidden;
  transform: translateY(8px);
  transition: opacity 0.25s ease, transform 0.25s ease, visibility 0.25s ease;
}
.main-header-menu .menu-item-has-children:hover > .sub-menu,
.main-header-menu .menu-item-has-children:focus-within > .sub-menu {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}
.main-header-menu .sub-menu .menu-item { display: block !important; width: 100%; margin: 0 !important; }
.main-header-menu .sub-menu .menu-link,
.main-header-menu .sub-menu .menu-item > a {
  display: block !important;
  padding: 0.7rem 1.4rem !important;
  font-family: var(--oliv-font-serif) !important;
  font-size: 1.02rem !important;
  letter-spacing: 0 !important;
  text-transform: none !important;
  color: #F5F1E8 !important;
  background: transparent !important;
  border: 0 !important;
}
.main-header-menu .sub-menu .menu-link:hover,
.main-header-menu .sub-menu .menu-item > a:hover {
  color: #BFC74A !important;
  background: rgba(191, 199, 74, 0.06) !important;
}
.main-header-menu .sub-menu .menu-link::after { display: none !important; }
/* parent arrow indicator legible on dark bar */
.main-header-menu .menu-item-has-children > .menu-link .ast-arrow-svg,
.main-header-menu .menu-item-has-children .ast-header-navigation-arrow svg {
  fill: currentColor !important;
}
}
/* drawer (mobile): TRUE ACCORDION — collapsed by default, opened only by
   Astra's toggle arrow (v1.9.34: the old rules forced it always-visible
   and the generic nav-flex rule kept display:flex on the collapsed state) */
.ast-mobile-popup-drawer .menu-item-has-children { position: relative; }
.ast-mobile-popup-drawer .sub-menu {
  display: none !important;
  position: static !important;
  opacity: 1;
  visibility: visible;
  transform: none;
  box-shadow: none !important;
  border: 0 !important;
  background: rgba(245, 241, 232, 0.03) !important;
  min-width: 0 !important;
  padding: 0 !important;
  margin: 0 !important;
}
.ast-mobile-popup-drawer .menu-item-has-children > .sub-menu.ast-submenu-expanded,
.ast-mobile-popup-drawer .menu-item-has-children.ast-submenu-open > .sub-menu,
/* Astra only flips aria-expanded on the toggle — key the state off that */
.ast-mobile-popup-drawer .ast-menu-toggle[aria-expanded="true"] ~ .sub-menu,
.ast-mobile-popup-drawer .menu-item-has-children:has(.ast-menu-toggle[aria-expanded="true"]) > .sub-menu {
  display: block !important;
}
.ast-mobile-popup-drawer .sub-menu .menu-item { width: 100%; }
.ast-mobile-popup-drawer .sub-menu .menu-item > a,
.ast-mobile-popup-drawer .sub-menu .menu-link {
  color: rgba(245, 241, 232, 0.74) !important;
  font-size: 1.05rem !important;
  padding-left: 2.4rem !important;
}
/* the accordion toggle arrow: big tap target, cream, chartreuse when open */
.ast-mobile-popup-drawer .ast-menu-toggle {
  position: absolute !important;
  right: 10px !important;
  top: 6px !important;
  width: 48px !important;
  height: 48px !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  background: transparent !important;
  border: 0 !important;
  color: #F5F1E8 !important;
  pointer-events: auto !important;
  z-index: 3;
  cursor: pointer;
}
.ast-mobile-popup-drawer .ast-menu-toggle .ast-arrow-svg,
.ast-mobile-popup-drawer .ast-menu-toggle svg {
  fill: currentColor !important;
  width: 14px;
  height: 14px;
  transition: transform 0.3s ease;
}
.ast-mobile-popup-drawer .ast-menu-toggle.ast-submenu-expanded,
.ast-mobile-popup-drawer .ast-menu-toggle[aria-expanded="true"] {
  color: #BFC74A !important;
}
.ast-mobile-popup-drawer .ast-menu-toggle[aria-expanded="true"] .ast-arrow-svg,
.ast-mobile-popup-drawer .ast-menu-toggle[aria-expanded="true"] svg {
  transform: rotate(180deg);
}
/* deliverables: dark glass cards, cream text, chartreuse check.
   The UL itself carried a pure-white background from the old cream-era
   rule — that was the white panel behind the cards. */
body.oliv-editorial ul.deliverables,
body.oliv-editorial .deliverables {
  background: transparent !important;
  box-shadow: none !important;
  border: 0 !important;
}
body.oliv-editorial .deliverables li {
  background: rgba(245, 241, 232, 0.045) !important;
  border: 1px solid rgba(191, 199, 74, 0.25) !important;
  color: #F5F1E8 !important;
}
body.oliv-editorial .deliverables li::before { color: #BFC74A !important; }
/* breadcrumb: left-aligned with the content column */
body.oliv-editorial .oliv-breadcrumbs,
body.oliv-editorial .oliv-breadcrumbs-wrap .rank-math-breadcrumb {
  text-align: left !important;
}

/* ================================================================
   53. AUDIT FIXES (v1.9.32)
   - #arms: chartreuse eyebrows + outline CTAs were 1.55:1 on the
     cream columns (live-computed) — dark-olive ink like #manifest;
   - mobile hero photo strip: img couldn't shrink (min-width:auto)
     so only 1 of 2 photos rendered.
   ================================================================ */
#arms .arm-col .eyebrow-script { color: #4D5615 !important; }
#arms .arm-col .arm-cta .wp-block-button__link,
#arms .arm-cta .wp-block-button__link {
  color: #4D5615 !important;
  border-color: rgba(77, 86, 21, 0.55) !important;
}
#arms .arm-cta .wp-block-button__link:hover {
  color: #131210 !important;
  border-color: #4D5615 !important;
}
@media (max-width: 768px) {
  .hero-photo-strip img { min-width: 0 !important; flex: 1 1 0 !important; }
}

/* ================================================================
   54. WORLD ENTRY (single journal page) — visual-audit fix (v1.9.36)
   The ed-world-entry single rendered title/body dark-on-dark and the
   layout collapsed straight into the footer.
   ================================================================ */
body.oliv-editorial.ed-world-entry .site-content {
  padding-top: clamp(24px, 4vh, 56px);
}
body.oliv-editorial.ed-world-entry .entry-title,
body.oliv-editorial.ed-world-entry h1 {
  color: #F5F1E8 !important;
  font-family: var(--oliv-font-serif) !important;
  font-size: clamp(2rem, 6vw, 3.4rem) !important;
  line-height: 1.06 !important;
  letter-spacing: -0.02em;
  margin: 0.4em 0 0.5em !important;
}
body.oliv-editorial.ed-world-entry .entry-content,
body.oliv-editorial.ed-world-entry .entry-content p {
  color: rgba(245, 241, 232, 0.86) !important;
  font-size: clamp(1.02rem, 1.4vw, 1.15rem) !important;
  line-height: 1.8 !important;
  max-width: 62ch;
}
body.oliv-editorial.ed-world-entry .entry-content { margin-inline: auto; }
body.oliv-editorial.ed-world-entry article {
  max-width: 880px;
  margin-inline: auto;
  padding: 0 clamp(18px, 5vw, 32px) clamp(48px, 8vh, 96px);
}
body.oliv-editorial.ed-world-entry .post-thumb img,
body.oliv-editorial.ed-world-entry .wp-post-image {
  display: block;
  width: 100%;
  height: auto;
  border-radius: 4px;
  margin: 0 0 1.6rem;
}
/* prev/next navigation legible */
body.oliv-editorial.ed-world-entry .post-navigation a,
body.oliv-editorial.ed-world-entry .ast-single-post-navigation a {
  color: #BFC74A !important;
}
/* "explore" interlink block at the end of each journal entry */
.oliv-entry-explore {
  margin-top: clamp(2rem, 4vh, 3rem);
  padding-top: 1.2rem;
  border-top: 1px solid rgba(191, 199, 74, 0.22);
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem 1.4rem;
  align-items: baseline;
}
.oliv-entry-explore .oliv-explore-label {
  display: block;
  width: 100%;
  font-family: var(--oliv-font-script, cursive);
  color: rgba(245, 241, 232, 0.6);
  font-size: 1.05rem;
}
.oliv-entry-explore a {
  color: #BFC74A !important;
  font-size: 0.95rem;
  letter-spacing: 0.03em;
  text-decoration: none;
  border-bottom: 1px solid rgba(191, 199, 74, 0.35);
}
.oliv-entry-explore a:hover { border-bottom-color: #BFC74A; }
body.oliv-editorial.ed-world-entry .post-navigation .nav-subtitle,
body.oliv-editorial.ed-world-entry .ast-post-nav-title {
  color: rgba(245, 241, 232, 0.7) !important;
}

/* ================================================================
   48. CENTERING PASS (audit 2026-06-12) — sitewide
   Centered section headers were rendering off-axis: .eyebrow-script
   boxes (max-width ~520px) and ed-service section titles (max-width
   18ch) have text-align:center but their BOX stayed left-anchored
   (margin-inline 0), so the text floated left of the section axis —
   measured -233px on home/hub/despre eyebrows and up to -298px on
   service pages. §27's FAQ-only fix ("consistent with other
   sections") proved the pattern; this generalises it: center the
   box, the existing text-align:center does the rest.
   ================================================================ */
body.oliv-editorial .eyebrow-script {
    margin-inline: auto !important;
}
body.oliv-editorial.ed-service .approach-section .approach-title,
body.oliv-editorial.ed-service .deliverables-section .manifest-title,
body.oliv-editorial.ed-service .faq-section .manifest-title,
body.oliv-editorial.ed-service .service-grid-section .manifest-title {
    margin-inline: auto;
    text-align: center;
}

/* Related services (#related) on detail pages — desktop. The hub
   rule (§19: .service-card:last-child:nth-child(odd) → 1/-1) left
   row 1 of the 3-col grid as [01][02][empty] and dropped card 03 to
   a lone full-width row, so the section read as shoved left.
   >=1025px: 3 cards fill one clean row of 3; 4 cards (wedding
   details) become a balanced 2x2 via :has(). Tablet (782-1024,
   2 cols) keeps the existing full-width last card; mobile is 1 col. */
@media (min-width: 1025px) {
    body.oliv-editorial.ed-service .service-grid .service-card:last-child:nth-child(odd) {
        grid-column: auto;
    }
    body.oliv-editorial.ed-service .service-grid:has(> .service-card:nth-child(4)) {
        grid-template-columns: repeat(2, 1fr);
    }
}