/*
Theme Name: Seria-starter
Description: Child theme minimale per GeneratePress, pensato come base replicabile per siti WordPress.
Author: Filippo
Template: generatepress
Version: 1.8.19
Text Domain: seria-starter
*/


/* =========================================================
   SERIA STARTER — DESIGN SYSTEM CORE v1.0
   ========================================================= */


/* ---------------------------------------------------------
   1. DESIGN TOKENS
   --------------------------------------------------------- */

:root {

    /* Brand
       Valori neutri nel Master.
       Da personalizzare per ogni cliente.
    */
    --color-primary: #14232b;
    --color-primary-hover: #0b171d;

    --color-secondary: #405760;
    --color-accent: #d0a33d;


    /* Neutral */
    --color-text: #243238;
    --color-text-muted: #627177;

    --color-bg: #fffdf8;
    --color-bg-alt: #f4f0e7;

    --color-border: #ded6c7;


    /* Dark surfaces */
    --color-surface-dark: #14232b;
    --color-on-dark: #fffdf8;
    --color-on-dark-muted: rgba(255, 255, 255, 0.72);


    /* Status */
    --color-success: #267a3e;
    --color-warning: #996b00;
    --color-error: #b42318;


    /* Typography */
    --font-body:
        "Source Sans 3",
        "Segoe UI",
        system-ui,
        sans-serif;

    --font-heading: "Cormorant Garamond", Georgia, serif;

    --text-sm: 0.875rem;
    --text-base: 1rem;

    --text-lg:
        clamp(
            1.05rem,
            0.9rem + 0.4vw,
            1.25rem
        );

    --text-h4:
        clamp(
            1.20rem,
            1.05rem + 0.4vw,
            1.50rem
        );

    --text-h3:
        clamp(
            1.375rem,
            1.15rem + 0.8vw,
            1.875rem
        );

    --text-h2:
        clamp(
            1.75rem,
            1.35rem + 1.6vw,
            2.625rem
        );

    --text-h1:
        clamp(
            2.25rem,
            1.55rem + 2.8vw,
            4rem
        );

    --text-display:
        clamp(
            3rem,
            2rem + 4vw,
            6rem
        );

    --line-height-body: 1.6;
    --line-height-heading: 1.1;


    /* Spacing */
    --space-xs: 0.5rem;
    --space-sm: 1rem;
    --space-md: 1.5rem;
    --space-lg: 2rem;
    --space-xl: 3rem;
    --space-2xl: 4rem;
    --space-3xl: 6rem;


    /* Layout */
    --content-width: 1200px;
    --content-narrow: 760px;
    --content-wide: 1440px;

    --gutter:
        clamp(
            20px,
            4vw,
            64px
        );

    --section-space:
        clamp(
            64px,
            8vw,
            120px
        );


    /* Radius */
    --radius-sm: 2px;
    --radius-md: 4px;
    --radius-lg: 8px;
    --radius-pill: 999px;


    /* Shadows */
    --shadow-sm:
        0 1px 3px rgba(0, 0, 0, 0.08);

    --shadow-md:
        0 18px 50px rgba(20, 35, 43, 0.12);


    /* Eyebrow */
    --eyebrow-size: 0.8125rem;
    --eyebrow-weight: 600;
    --eyebrow-spacing: 0.08em;
    --eyebrow-transform: uppercase;


    /* Grid */
    --grid-gap: var(--space-lg);
    --grid-min: 240px;


    /* Card */
    --card-bg: var(--color-bg);
    --card-border: var(--color-border);

    --card-padding:
        clamp(
            var(--space-lg),
            3vw,
            var(--space-xl)
        );

    --card-gap: var(--space-md);
    --card-radius: var(--radius-lg);
    --card-shadow: none;
    --card-hover-y: -4px;


    /* Split layout */
    --split-gap:
        clamp(
            var(--space-xl),
            7vw,
            var(--space-3xl)
        );


    /* CTA */
    --cta-padding:
        clamp(
            var(--space-xl),
            6vw,
            var(--space-3xl)
        );

    --cta-radius: var(--radius-lg);


    /* Buttons */
    --color-on-primary: #ffffff;

    --button-font-size: 0.875rem;
    --button-font-weight: 700;
    --button-letter-spacing: 0.055em;

    --button-padding-y: 0.875rem;
    --button-padding-x: 1.5rem;

    --button-min-height: 48px;
    --button-radius: var(--radius-md);

    --button-transition:
        background-color 0.25s ease,
        color 0.25s ease,
        border-color 0.25s ease,
        transform 0.25s ease;
}


/* ---------------------------------------------------------
   2. BASE
   --------------------------------------------------------- */

html {
    scroll-behavior: smooth;
}

body {
    font-family: var(--font-body);
    font-size: var(--text-base);
    line-height: var(--line-height-body);

    color: var(--color-text);
    background: var(--color-bg);
}


/* Headings */

h1,
h2,
h3,
h4,
h5,
h6 {
    font-family: var(--font-heading);
    line-height: var(--line-height-heading);
}

h1 {
    font-size: var(--text-h1);
}

h2 {
    font-size: var(--text-h2);
}

h3 {
    font-size: var(--text-h3);
}

h4 {
    font-size: var(--text-h4);
}


/* Text */

p {
    margin-top: 0;
}

small {
    font-size: var(--text-sm);
}


/* Links */

a {
    color: var(--color-primary);
}


/* Media */

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


/* ---------------------------------------------------------
   3. ACCESSIBILITY
   --------------------------------------------------------- */

:focus-visible {
    outline: 3px solid var(--color-primary);
    outline-offset: 3px;
}


/* ---------------------------------------------------------
   4. LAYOUT STRUCTURE
   --------------------------------------------------------- */

.seria-section {
    width: 100%;
    padding-block: var(--section-space);
}


.seria-section--compact {
    padding-block:
        clamp(
            40px,
            5vw,
            72px
        );
}


.seria-section--large {
    padding-block:
        clamp(
            88px,
            10vw,
            160px
        );
}


.seria-section--flush {
    padding-block: 0;
}


.seria-container {
    width: 100%;

    max-width:
        calc(
            var(--content-width)
            + (var(--gutter) * 2)
        );

    margin-inline: auto;
    padding-inline: var(--gutter);

    box-sizing: border-box;
}


.seria-container--wide {
    max-width:
        calc(
            var(--content-wide)
            + (var(--gutter) * 2)
        );
}


.seria-narrow {
    width: 100%;
    max-width: var(--content-narrow);

    margin-inline: auto;
}


/* ---------------------------------------------------------
   5. TYPOGRAPHY UTILITIES
   --------------------------------------------------------- */

.seria-display {
    font-size: var(--text-display);
    line-height: var(--line-height-heading);
}


.seria-lead {
    font-size: var(--text-lg);
    line-height: 1.5;
}


.seria-muted {
    color: var(--color-text-muted);
}


/* ---------------------------------------------------------
   6. CONTENT RHYTHM
   --------------------------------------------------------- */

.seria-stack {
    display: flex;
    flex-direction: column;

    gap: var(--space-md);
}


.seria-stack > * {
    margin-block: 0;
}


.seria-stack--sm {
    gap: var(--space-sm);
}


.seria-stack--lg {
    gap: var(--space-lg);
}


.seria-stack--xl {
    gap: var(--space-xl);
}


/* ---------------------------------------------------------
   7. SECTION HEADER
   --------------------------------------------------------- */

.seria-section-header {
    display: flex;
    flex-direction: column;

    gap: var(--space-sm);

    max-width: var(--content-narrow);

    margin-bottom: var(--space-xl);
}


.seria-section-header > * {
    margin-block: 0;
}


.seria-section-header--center {
    margin-inline: auto;

    text-align: center;
}


/* ---------------------------------------------------------
   8. EYEBROW
   --------------------------------------------------------- */

.seria-eyebrow {
    margin: 0;

    font-size: var(--eyebrow-size);
    font-weight: var(--eyebrow-weight);
    line-height: 1.2;

    letter-spacing: var(--eyebrow-spacing);
    text-transform: var(--eyebrow-transform);

    color: var(--color-primary);
}


/* ---------------------------------------------------------
   9. SECTION TYPOGRAPHY
   --------------------------------------------------------- */

.seria-section-title {
    margin: 0;
}


.seria-section-intro {
    margin: 0;

    font-size: var(--text-lg);
    line-height: 1.5;

    color: var(--color-text-muted);
}


/* ---------------------------------------------------------
   10. BUTTON GROUP
   --------------------------------------------------------- */

.seria-btn-group {
    display: flex;
    flex-wrap: wrap;
    align-items: center;

    gap: var(--space-sm);
}


/* ---------------------------------------------------------
   11. BUTTON BASE
   --------------------------------------------------------- */

.wp-block-button.seria-btn {
    margin: 0;
}


.wp-block-button.seria-btn .wp-block-button__link {
    display: inline-flex;
    align-items: center;
    justify-content: center;

    min-height: var(--button-min-height);

    padding:
        var(--button-padding-y)
        var(--button-padding-x) !important;

    border: 1px solid transparent !important;
    border-radius: var(--button-radius) !important;

    font-family: var(--font-heading);
    font-size: var(--button-font-size) !important;
    font-weight: var(--button-font-weight);
    line-height: 1.2;
    letter-spacing: var(--button-letter-spacing);

    text-decoration: none !important;

    box-shadow: none !important;

    cursor: pointer;

    transition: var(--button-transition);
}


/* Primary */

.wp-block-button.seria-btn--primary
.wp-block-button__link {

    background: var(--color-primary) !important;
    background-color: var(--color-primary) !important;

    color: var(--color-on-primary) !important;

    border-color: var(--color-primary) !important;
}


.wp-block-button.seria-btn--primary
.wp-block-button__link:hover {

    background: var(--color-primary-hover) !important;
    background-color: var(--color-primary-hover) !important;

    color: var(--color-on-primary) !important;

    border-color: var(--color-primary-hover) !important;

    transform: translateY(-2px);
}


/* Secondary */

.wp-block-button.seria-btn--secondary
.wp-block-button__link {

    background: transparent !important;
    background-color: transparent !important;

    color: var(--color-primary) !important;

    border: 1px solid var(--color-primary) !important;
}


.wp-block-button.seria-btn--secondary
.wp-block-button__link:hover {

    background: var(--color-primary) !important;
    background-color: var(--color-primary) !important;

    color: var(--color-on-primary) !important;

    transform: translateY(-2px);
}


/* Ghost */

.wp-block-button.seria-btn--ghost
.wp-block-button__link {

    min-height: auto;

    padding: 0 !important;

    background: transparent !important;
    background-color: transparent !important;

    color: var(--color-primary) !important;

    border: 0 !important;
    border-radius: 0 !important;

    box-shadow: none !important;

    text-decoration: underline !important;
    text-decoration-thickness: 1px !important;
    text-underline-offset: 0.3em;
}


.wp-block-button.seria-btn--ghost
.wp-block-button__link:hover {

    background: transparent !important;

    color: var(--color-primary-hover) !important;

    transform: none;
}


/* Light */

.wp-block-button.seria-btn--light
.wp-block-button__link {

    background: var(--color-on-dark) !important;
    background-color: var(--color-on-dark) !important;

    color: var(--color-surface-dark) !important;

    border: 1px solid var(--color-on-dark) !important;
}


.wp-block-button.seria-btn--light
.wp-block-button__link:hover {

    background: transparent !important;
    background-color: transparent !important;

    color: var(--color-on-dark) !important;

    border-color: var(--color-on-dark) !important;

    transform: translateY(-2px);
}


/* Outline light */

.wp-block-button.seria-btn--outline-light
.wp-block-button__link {

    background: transparent !important;
    background-color: transparent !important;

    color: var(--color-on-dark) !important;

    border:
        1px solid
        rgba(255, 255, 255, 0.55) !important;
}


.wp-block-button.seria-btn--outline-light
.wp-block-button__link:hover {

    background: var(--color-on-dark) !important;
    background-color: var(--color-on-dark) !important;

    color: var(--color-surface-dark) !important;

    border-color: var(--color-on-dark) !important;

    transform: translateY(-2px);
}


/* Button focus */

.wp-block-button.seria-btn
.wp-block-button__link:focus-visible {

    outline: 3px solid var(--color-primary);
    outline-offset: 3px;
}


/* Button responsive */

@media (max-width: 480px) {

    .seria-btn-group--mobile-full {
        flex-direction: column;
        align-items: stretch;
    }

    .seria-btn-group--mobile-full
    .wp-block-button,

    .seria-btn-group--mobile-full
    .wp-block-button__link {

        width: 100%;
    }
}


/* ---------------------------------------------------------
   12. GRID
   --------------------------------------------------------- */

.seria-grid {
    display: grid;

    gap: var(--grid-gap);
}


.seria-grid--2 {
    grid-template-columns:
        repeat(
            2,
            minmax(0, 1fr)
        );
}


.seria-grid--3 {
    grid-template-columns:
        repeat(
            3,
            minmax(0, 1fr)
        );
}


.seria-grid--4 {
    grid-template-columns:
        repeat(
            4,
            minmax(0, 1fr)
        );
}


.seria-grid--auto {
    grid-template-columns:
        repeat(
            auto-fit,
            minmax(
                min(
                    100%,
                    var(--grid-min)
                ),
                1fr
            )
        );
}


@media (max-width: 900px) {

    .seria-grid--3,
    .seria-grid--4 {

        grid-template-columns:
            repeat(
                2,
                minmax(0, 1fr)
            );
    }
}


@media (max-width: 640px) {

    .seria-grid--2,
    .seria-grid--3,
    .seria-grid--4 {

        grid-template-columns: 1fr;
    }
}


/* ---------------------------------------------------------
   13. CARD
   --------------------------------------------------------- */

.seria-card {
    display: flex;
    flex-direction: column;

    gap: var(--card-gap);

    height: 100%;

    padding: var(--card-padding);

    background: var(--card-bg);

    border: 1px solid transparent;
    border-radius: var(--card-radius);

    box-shadow: var(--card-shadow);

    box-sizing: border-box;
}


.seria-card > * {
    margin-block: 0;
}


/* Bordered */

.seria-card--bordered {
    border-color: var(--card-border);
}


/* Soft */

.seria-card--soft {
    background: var(--color-bg-alt);
}


/* Dark */

.seria-card--dark {
    background: var(--color-surface-dark);

    color: var(--color-on-dark);
}


.seria-card--dark
.seria-card-title {

    color: var(--color-on-dark);
}


.seria-card--dark
.seria-card-text {

    color: var(--color-on-dark-muted);
}


.seria-card--dark
.seria-eyebrow {

    color: var(--color-on-dark-muted);
}


/* Interactive */

.seria-card--interactive {
    transition:
        transform 0.3s ease,
        box-shadow 0.3s ease,
        border-color 0.3s ease;
}


.seria-card--interactive:hover {
    transform:
        translateY(
            var(--card-hover-y)
        );

    box-shadow: var(--shadow-md);
}


/* Card content */

.seria-card-title {
    margin: 0;

    font-family: var(--font-heading);
    font-size: var(--text-h3);
    line-height: var(--line-height-heading);

    color: var(--color-text);
}


.seria-card-text {
    margin: 0;

    color: var(--color-text-muted);
}


.seria-card-footer {
    margin-top: auto;

    padding-top: var(--space-sm);
}


/* ---------------------------------------------------------
   14. SPLIT LAYOUT
   --------------------------------------------------------- */

.seria-split {
    display: grid;

    grid-template-columns:
        minmax(0, 1fr)
        minmax(0, 1fr);

    gap: var(--split-gap);

    align-items: center;
}


.seria-split--40-60 {
    grid-template-columns:
        minmax(0, 0.8fr)
        minmax(0, 1.2fr);
}


.seria-split--60-40 {
    grid-template-columns:
        minmax(0, 1.2fr)
        minmax(0, 0.8fr);
}


.seria-split--reverse > :first-child {
    order: 2;
}


.seria-split--reverse > :last-child {
    order: 1;
}


@media (max-width: 768px) {

    .seria-split,
    .seria-split--40-60,
    .seria-split--60-40 {

        grid-template-columns: 1fr;

        gap: var(--space-xl);
    }


    .seria-split--reverse > :first-child,
    .seria-split--reverse > :last-child {

        order: initial;
    }
}


/* ---------------------------------------------------------
   15. MEDIA
   --------------------------------------------------------- */

.seria-media {
    display: block;

    width: 100%;

    overflow: hidden;

    border-radius: var(--radius-lg);
}


.seria-media img {
    display: block;

    width: 100%;
    height: auto;
}


.seria-media--cover img {
    width: 100%;
    height: 100%;

    object-fit: cover;
}


/* ---------------------------------------------------------
   16. CTA
   --------------------------------------------------------- */

.seria-cta {
    display: flex;
    flex-direction: column;

    gap: var(--space-md);

    padding: var(--cta-padding);

    background: var(--color-bg-alt);

    border-radius: var(--cta-radius);

    box-sizing: border-box;
}


.seria-cta > * {
    margin-block: 0;
}


/* Center */

.seria-cta--center {
    align-items: center;

    text-align: center;
}


/* Dark */

.seria-cta--dark {
    background: var(--color-surface-dark);

    color: var(--color-on-dark);
}


.seria-cta--dark h1,
.seria-cta--dark h2,
.seria-cta--dark h3,
.seria-cta--dark h4 {

    color: var(--color-on-dark);
}


.seria-cta--dark p {
    color: var(--color-on-dark-muted);
}


.seria-cta--dark
.seria-eyebrow {

    color: var(--color-on-dark-muted);
}


/* Horizontal */

.seria-cta--horizontal {
    display: grid;

    grid-template-columns:
        minmax(0, 1fr)
        auto;

    align-items: center;

    gap: var(--space-xl);
}


@media (max-width: 700px) {

    .seria-cta--horizontal {
        grid-template-columns: 1fr;
    }
}


/* ---------------------------------------------------------
   17. DIVIDER
   --------------------------------------------------------- */

.seria-divider {
    width: 100%;
    height: 1px;

    margin-block: var(--space-xl);

    background: var(--color-border);

    border: 0;
}


/* ---------------------------------------------------------
   18. ALIGNMENT UTILITIES
   --------------------------------------------------------- */

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


.seria-text-left {
    text-align: left;
}


.seria-center {
    margin-inline: auto;
}


/* ---------------------------------------------------------
   19. WIDTH UTILITIES
   --------------------------------------------------------- */

.seria-width-narrow {
    width: 100%;
    max-width: var(--content-narrow);
}


.seria-width-full {
    width: 100%;
}


/* ---------------------------------------------------------
   20. VISUALLY HIDDEN
   --------------------------------------------------------- */

.seria-visually-hidden {
    position: absolute !important;

    width: 1px !important;
    height: 1px !important;

    padding: 0 !important;
    margin: -1px !important;

    overflow: hidden !important;

    clip: rect(0, 0, 0, 0) !important;

    white-space: nowrap !important;

    border: 0 !important;
}


/* ---------------------------------------------------------
   21. REDUCED MOTION
   --------------------------------------------------------- */

@media (prefers-reduced-motion: reduce) {

    html {
        scroll-behavior: auto;
    }

    *,
    *::before,
    *::after {

        scroll-behavior: auto !important;

        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;

        transition-duration: 0.01ms !important;
    }
}

/* =========================================================
   SERIA — WORDPRESS WRAPPER COMPATIBILITY
   ========================================================= */

.seria-stack > .wp-block-group__inner-container {display:flex;flex-direction:column;gap:inherit;}
.seria-stack > .wp-block-group__inner-container > * {margin-block:0;}
.seria-grid > .wp-block-group__inner-container {display:grid;gap:var(--grid-gap);}
.seria-grid--2 > .wp-block-group__inner-container {grid-template-columns:repeat(2,minmax(0,1fr));}
.seria-grid--3 > .wp-block-group__inner-container {grid-template-columns:repeat(3,minmax(0,1fr));}
.seria-grid--4 > .wp-block-group__inner-container {grid-template-columns:repeat(4,minmax(0,1fr));}
@media (max-width:900px){.seria-grid--3 > .wp-block-group__inner-container,.seria-grid--4 > .wp-block-group__inner-container{grid-template-columns:repeat(2,minmax(0,1fr));}}
@media (max-width:640px){.seria-grid--2 > .wp-block-group__inner-container,.seria-grid--3 > .wp-block-group__inner-container,.seria-grid--4 > .wp-block-group__inner-container{grid-template-columns:1fr;}}

/* =========================================================
   GOCCE DI MEMORIA — HOME v0.11.19
   Direzione: più ritmo, fotografie integrate, meno interfaccia.
   ========================================================= */

/* ---------- HOME SHELL ---------- */

body {
    overflow-x: hidden;
}

.page-id-70 .site-main,
.page-id-70 .inside-article,
.page-id-70 .entry-content {
    margin: 0;
    padding: 0;
}

.page-id-70 .alignfull {
    width: 100%;
    max-width: 100%;
    margin-inline: 0;
}


/* ---------- FIXED WATERMARK ---------- */

body {
    --gdm-mobile-bar-height: 56px;
}

body.page-id-70 {
    --gdm-watermark-opacity: 0.048;
}

body.page-id-70::before {
    position: fixed;
    z-index: 1;
    top: 50%;
    right: clamp(-180px, -8vw, -90px);
    width: clamp(360px, 34vw, 620px);
    aspect-ratio: 0.72;
    content: "";
    pointer-events: none;

    background-image:
        url("https://goccedimemoriaonoranzefunebri.it/wp-content/uploads/2026/09/gdm-droplet-transparent.png");
    background-repeat: no-repeat;
    background-position: center;
    background-size: contain;

    opacity: var(--gdm-watermark-opacity);
    transform: translateY(-50%);
}

/*
 * Il watermark globale sta sopra ai fondi chiari ma sotto ai contenuti.
 * Le sezioni scure, la pausa poetica, la hero e il footer formano invece
 * un piano opaco superiore e lo nascondono naturalmente.
 */
body.page-id-70 .gdm-reference > .seria-container,
body.page-id-70 .gdm-presence > .seria-container,
body.page-id-70 .gdm-office > .seria-container,
body.page-id-70 .gdm-partner > .seria-container,
body.page-id-70 .gdm-territory > .seria-container {
    position: relative;
    z-index: 2;
}

body.page-id-70 .gdm-hero,
body.page-id-70 .gdm-process-band,
body.page-id-70 .gdm-services,
body.page-id-70 .gdm-final,
body.page-id-70 .site-footer {
    position: relative;
    z-index: 2;
}

/*
 * La pausa poetica resta una sezione chiara:
 * la goccia globale fixed deve quindi poter attraversarne lo sfondo.
 * Il contenuto testuale resta sopra al watermark.
 */
body.page-id-70 .gdm-brand-pause {
    position: relative;
    z-index: auto;
}

body.page-id-70 .gdm-brand-pause__inner {
    position: relative;
    z-index: 3;
}


/* ---------- WATERMARK CHIARO SULLE GRANDI BANDE PETROLIO ---------- */

/*
 * Usa l'asset tecnico con trasparenza reale.
 * Sulle bande petrolio la goccia viene resa bianca con un semplice filtro,
 * senza blend mode e senza canvas rettangolare.
 * background-attachment: fixed mantiene il segno fermo rispetto al viewport.
 */
body.page-id-70 .gdm-process-band,
body.page-id-70 .gdm-services {
    isolation: isolate;
}

body.page-id-70 .gdm-process-band::before,
body.page-id-70 .gdm-services::before {
    position: absolute;
    z-index: 0;
    inset: 0;
    content: "";
    pointer-events: none;

    background-image:
        url("https://goccedimemoriaonoranzefunebri.it/wp-content/uploads/2026/09/gdm-droplet-transparent.png");
    background-repeat: no-repeat;
    background-attachment: fixed;
    background-position:
        calc(100% + clamp(90px, 8vw, 180px))
        50%;
    background-size:
        clamp(360px, 34vw, 620px)
        auto;

    opacity: 0.045;
    filter: brightness(0) invert(1);
}

body.page-id-70 .gdm-process-band > .seria-container,
body.page-id-70 .gdm-services > .seria-container {
    position: relative;
    z-index: 2;
}

/* ---------- HEADER ---------- */

body {
    --gdm-header-height: 96px;
    --gdm-header-height-scrolled: 78px;
}

body.gdm-header-scrolled {
    --gdm-header-height: var(--gdm-header-height-scrolled);
}

body .site-header {
    position: fixed;
    z-index: 1000;
    inset: 0 0 auto;
    overflow: visible;
    min-height: var(--gdm-header-height);
    border-bottom: 1px solid rgba(208, 163, 61, 0.14);
    background:
        linear-gradient(
            90deg,
            rgba(255, 253, 248, 0.995) 0%,
            rgba(255, 253, 248, 0.985) 38%,
            rgba(255, 253, 248, 0.91) 57%,
            rgba(255, 253, 248, 0.68) 72%,
            rgba(255, 253, 248, 0.26) 86%,
            rgba(255, 253, 248, 0.04) 100%
        );
    backdrop-filter: blur(5px);
    transition:
        min-height 0.32s ease,
        background 0.32s ease,
        box-shadow 0.32s ease,
        border-color 0.32s ease;
}

body.gdm-header-scrolled .site-header {
    background: rgba(255, 253, 248, 0.955);
    border-bottom-color: rgba(20, 35, 43, 0.08);
    box-shadow: 0 8px 28px rgba(20, 35, 43, 0.065);
    backdrop-filter: blur(10px);
}

body .inside-header {
    display: flex;
    flex-wrap: nowrap;
    align-items: center;
    max-width: 1440px;
    min-height: var(--gdm-header-height);
    margin-inline: auto;
    padding: 10px var(--gutter);
    gap: clamp(22px, 3vw, 52px);
    overflow: visible;
    transition:
        min-height 0.32s ease,
        padding 0.32s ease;
}

body.gdm-header-scrolled .inside-header {
    padding-block: 7px;
}

body .header-widget {
    flex: 0 0 auto;
    align-self: center;
    margin: 0;
    padding: 0;
}

body .header-widget p {
    margin: 0;
}

body .site-branding,
body .site-logo {
    display: flex;
    flex: 0 0 auto;
    align-items: center;
    overflow: visible;
    line-height: 1;
}

body .site-logo img {
    display: block;
    width: clamp(210px, 18vw, 250px);
    height: auto;
    max-height: 82px;
    object-fit: contain;
    object-position: center;
    overflow: visible;
    transition:
        width 0.32s ease,
        max-height 0.32s ease;
}

body.gdm-header-scrolled .site-logo img {
    width: clamp(190px, 16vw, 218px);
    max-height: 66px;
}

body #site-navigation,
body #site-navigation .inside-navigation,
body #site-navigation .main-nav,
body #site-navigation .main-nav ul {
    background: transparent;
}

body #site-navigation {
    flex: 1 1 auto;
    min-width: 0;
}

body #site-navigation .inside-navigation {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    min-height: 100%;
}

body .main-navigation .main-nav ul li a,
body .main-navigation .menu-toggle,
body .main-navigation .menu-bar-items {
    color: var(--color-primary);
    font-family: var(--font-body);
    font-size: 0.79rem;
    font-weight: 600;
    letter-spacing: 0.02em;
}

body .main-navigation .main-nav ul li a {
    position: relative;
    min-height: 48px;
    padding-inline: clamp(9px, 1vw, 15px);
    background: transparent;
}

body .main-navigation .main-nav ul li a::after {
    position: absolute;
    right: 14px;
    bottom: 8px;
    left: 14px;
    height: 1px;
    content: "";
    background: var(--color-accent);
    transform: scaleX(0);
    transform-origin: left;
    transition: transform 0.25s ease;
}

body .main-navigation .main-nav ul li:hover > a,
body .main-navigation .main-nav ul li:focus-visible > a,
body .main-navigation .main-nav ul li[class*="current-menu-"] > a {
    color: var(--color-primary);
    background: transparent;
}

body .main-navigation .main-nav ul li:hover > a::after,
body .main-navigation .main-nav ul li:focus-visible > a::after,
body .main-navigation .main-nav ul li[class*="current-menu-"] > a::after {
    transform: scaleX(1);
}

body .site-header a:focus-visible,
body .site-header button:focus-visible {
    outline: 2px solid var(--color-primary);
    outline-offset: 3px;
}

/* CTA header, se presente tramite hook/header widget. */
body .gdm-header-call {
    display: inline-flex;
    flex: 0 0 auto;
    align-items: center;
    justify-content: center;
    align-self: center;
    min-height: 44px;
    margin-block: auto;
    padding: 0.64rem 1.15rem;
    color: var(--color-primary);
    background: var(--color-accent);
    border: 1px solid var(--color-accent);
    border-radius: var(--radius-pill);
    font-family: var(--font-heading);
    font-size: 0.96rem;
    font-weight: 700;
    line-height: 1;
    text-decoration: none;
    box-shadow: 0 7px 20px rgba(142, 104, 26, 0.12);
    transition:
        transform 0.22s ease,
        background-color 0.22s ease,
        border-color 0.22s ease,
        box-shadow 0.22s ease;
}

body .gdm-header-call:hover,
body .gdm-header-call:focus-visible {
    color: var(--color-primary);
    background: #c49733;
    border-color: #c49733;
    transform: translateY(-1px);
    box-shadow: 0 9px 24px rgba(142, 104, 26, 0.17);
}

/* Desktop: menu orizzontale. */
@media (min-width: 901px) {
    body #site-navigation .main-nav > ul {
        display: flex;
        align-items: center;
    }

    body .main-navigation .main-nav ul li {
        display: flex;
        align-items: center;
    }
}

/* Anchor/focus targets devono liberarsi dall'header fixed. */
body .entry-content [id],
body .gdm-reference,
body .gdm-process-band,
body .gdm-presence,
body .gdm-office,
body .gdm-services,
body .gdm-brand-pause,
body .gdm-partner,
body .gdm-territory,
body .gdm-final {
    scroll-margin-top: calc(var(--gdm-header-height) + 18px);
}

/* ---------- SHARED ---------- */

.gdm-heading-xl {
    margin: 0;
    color: var(--color-primary);
    font-family: var(--font-heading);
    font-size: clamp(2.5rem, 3.6vw, 4.45rem);
    font-weight: 500;
    line-height: 0.98;
    letter-spacing: -0.032em;
    text-wrap: balance;
}

.gdm-heading-light {
    color: var(--color-on-dark);
}

.gdm-eyebrow-dark {
    color: rgba(255, 255, 255, 0.64);
}

.gdm-copy-dark,
.gdm-intro-dark {
    color: var(--color-on-dark-muted);
}

.gdm-gold-rule {
    width: 48px !important;
    margin: 0 !important;
    border: 0 !important;
    border-top: 1px solid var(--color-accent) !important;
}

/* ---------- HERO ---------- */

.gdm-hero {
    position: relative;
    min-height: clamp(500px, 60svh, 590px);
    overflow: hidden;
    padding: 0;
    background: var(--color-bg);
    isolation: isolate;
}

.gdm-hero::before {
    position: absolute;
    z-index: 1;
    inset: 0;
    content: "";
    pointer-events: none;
    background:
        linear-gradient(
            90deg,
            rgba(255, 253, 248, 0.998) 0%,
            rgba(255, 253, 248, 0.99) 28%,
            rgba(255, 253, 248, 0.94) 41%,
            rgba(255, 253, 248, 0.76) 53%,
            rgba(255, 253, 248, 0.40) 64%,
            rgba(255, 253, 248, 0.09) 76%,
            rgba(255, 253, 248, 0) 88%
        );
}

.gdm-hero__media {
    position: absolute;
    z-index: 0;
    inset: 0;
    width: 100%;
    height: 100%;
    margin: 0;
}

.gdm-hero__media img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: 70% 53%;
    transform: scale(1.014);
    animation: gdm-hero-breathe 1.2s cubic-bezier(.22,.61,.36,1) both;
}

.gdm-hero__inner {
    position: relative;
    z-index: 3;
    display: grid;
    grid-template-columns: minmax(0, 630px) 1fr;
    align-items: center;
    min-height: clamp(500px, 60svh, 590px);
    max-width: 1440px;
    margin-inline: auto;
    padding:
        calc(var(--gdm-header-height) + clamp(20px, 2.6vw, 34px))
        var(--gutter)
        clamp(28px, 4vw, 44px);
    box-sizing: border-box;
}

.gdm-hero__copy {
    max-width: 610px;
}

.gdm-hero__copy .seria-eyebrow {
    letter-spacing: 0.18em;
}

.gdm-hero-title {
    margin: 0;
    max-width: 12.8ch;
    color: var(--color-primary);
    font-size: clamp(2.85rem, 4.25vw, 4.75rem);
    font-weight: 500;
    line-height: 0.95;
    letter-spacing: -0.036em;
}

.gdm-hero-title em {
    display: block;
    margin-top: 0.10em;
    font-weight: 500;
}

.gdm-hero-lead {
    max-width: 57ch;
    color: var(--color-text);
    font-size: clamp(0.98rem, 0.95rem + 0.16vw, 1.08rem);
}

.gdm-hero-actions {
    align-items: center;
}

.gdm-hero-guide {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    width: fit-content;
    color: var(--color-primary);
    font-size: 0.92rem;
    font-weight: 700;
    text-decoration: none;
    border-bottom: 1px solid rgba(20, 35, 43, 0.25);
    padding-bottom: 0.15rem;
}

.gdm-hero-guide:hover,
.gdm-hero-guide:focus-visible {
    color: var(--color-primary);
    border-bottom-color: var(--color-accent);
}

.gdm-availability {
    margin: 0;
    color: var(--color-text-muted);
    font-size: 0.85rem;
    font-weight: 600;
}

@keyframes gdm-hero-breathe {
    from {
        opacity: 0;
        transform: scale(1.032);
    }
    to {
        opacity: 1;
        transform: scale(1.014);
    }
}

.wp-block-button.gdm-btn-gold .wp-block-button__link {
    color: var(--color-primary) !important;
    background: var(--color-accent) !important;
    border-color: var(--color-accent) !important;
    border-radius: var(--radius-pill) !important;
    box-shadow: 0 9px 22px rgba(160, 118, 30, 0.14) !important;
}

.wp-block-button.gdm-btn-gold .wp-block-button__link:hover {
    color: var(--color-primary) !important;
    background: #c49733 !important;
    border-color: #c49733 !important;
}

.wp-block-button.gdm-btn-outline .wp-block-button__link {
    border-radius: var(--radius-pill) !important;
    background: rgba(255, 253, 248, 0.46) !important;
    backdrop-filter: blur(5px);
}

.wp-block-button.gdm-btn-outline .wp-block-button__link:hover {
    color: var(--color-on-dark) !important;
    background: var(--color-primary) !important;
}

/* ---------- FOTO 1 / UNICO RIFERIMENTO ---------- */

.gdm-reference {
    background: var(--color-bg);
}

.gdm-reference-split {
    grid-template-columns: minmax(420px, 1.08fr) minmax(0, 0.92fr);
    gap: clamp(52px, 7vw, 105px);
    align-items: center;
}

.gdm-reference-media {
    position: relative;
    min-height: 490px;
    overflow: hidden;
    border-radius: 0;
}

.gdm-reference-media::after {
    position: absolute;
    z-index: 1;
    inset: 0;
    content: "";
    pointer-events: none;
    background:
        linear-gradient(
            90deg,
            transparent 0%,
            transparent 70%,
            rgba(255, 253, 248, 0.30) 82%,
            var(--color-bg) 100%
        ),
        linear-gradient(
            180deg,
            rgba(255, 253, 248, 0.34) 0%,
            transparent 9%,
            transparent 91%,
            rgba(255, 253, 248, 0.38) 100%
        );
}

.gdm-reference-media .wp-block-image,
.gdm-reference-media img {
    width: 100%;
    height: 100%;
    margin: 0;
}

.gdm-reference-media img {
    display: block;
    object-fit: cover;
    object-position: center 50%;
    transform: scale(1.01);
}

.gdm-reference-copy {
    max-width: 610px;
}

/* ---------- TEXT-ONLY / PROCESS: pausa petrolio ---------- */

.gdm-process-band {
    position: relative;
    overflow: hidden;
    color: var(--color-on-dark);
    background: var(--color-surface-dark);
}

.gdm-process-band > .seria-container {
    position: relative;
    z-index: 1;
}

.gdm-process-band__head {
    display: grid;
    grid-template-columns: minmax(0, 1.05fr) minmax(270px, 0.95fr);
    gap: clamp(36px, 7vw, 100px);
    align-items: end;
    margin-bottom: clamp(44px, 6vw, 72px);
}

.gdm-process-band__head .seria-section-intro {
    color: var(--color-on-dark-muted);
}

.gdm-process-flow {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    border-top: 1px solid rgba(255,255,255,0.16);
    border-bottom: 1px solid rgba(255,255,255,0.16);
}

.gdm-process-step {
    min-height: 205px;
    padding: clamp(30px, 3.5vw, 50px);
    border-right: 1px solid rgba(255,255,255,0.16);
}

.gdm-process-step:last-child {
    border-right: 0;
}

.gdm-process-step::before {
    display: block;
    width: 34px;
    height: 1px;
    margin-bottom: clamp(30px, 3vw, 46px);
    content: "";
    background: var(--color-accent);
}

.gdm-process-step h3 {
    margin: 0 0 0.7rem;
    color: var(--color-on-dark);
    font-size: clamp(1.5rem, 1.8vw, 2.05rem);
    font-weight: 500;
}

.gdm-process-step p {
    margin: 0;
    color: var(--color-on-dark-muted);
}

.gdm-process-cta {
    margin-top: var(--space-xl);
}

/* ---------- FOTO 2 / PRESENZA ---------- */

.gdm-presence {
    background: var(--color-bg-alt);
}

.gdm-presence-split {
    grid-template-columns: minmax(0, 0.84fr) minmax(420px, 1.16fr);
    gap: clamp(52px, 7vw, 104px);
    align-items: center;
}

.gdm-presence-media {
    position: relative;
    min-height: 500px;
    overflow: hidden;
    border-radius: 0;
}

.gdm-presence-media::after {
    position: absolute;
    z-index: 1;
    inset: 0;
    content: "";
    pointer-events: none;
    background:
        linear-gradient(
            90deg,
            var(--color-bg-alt) 0%,
            rgba(244, 240, 231, 0.34) 13%,
            transparent 30%,
            transparent 100%
        ),
        linear-gradient(
            180deg,
            rgba(244, 240, 231, 0.32) 0%,
            transparent 8%,
            transparent 92%,
            rgba(244, 240, 231, 0.36) 100%
        );
}

.gdm-presence-media .wp-block-image,
.gdm-presence-media img {
    width: 100%;
    height: 100%;
    margin: 0;
}

.gdm-presence-media img {
    display: block;
    object-fit: cover;
    object-position: center 57%;
    transform: scale(1.01);
}

/* ---------- FOTO 3 / ACCOGLIENZA ---------- */

.gdm-office {
    background: var(--color-bg);
}

.gdm-office-split {
    grid-template-columns: minmax(420px, 1.12fr) minmax(0, 0.88fr);
    gap: clamp(52px, 7vw, 104px);
    align-items: center;
}

.gdm-office-media {
    position: relative;
    min-height: 500px;
    overflow: hidden;
    border-radius: 0;
}

.gdm-office-media::after {
    position: absolute;
    z-index: 1;
    inset: 0;
    content: "";
    pointer-events: none;
    background:
        linear-gradient(
            90deg,
            transparent 0%,
            transparent 70%,
            rgba(255, 253, 248, 0.30) 82%,
            var(--color-bg) 100%
        ),
        linear-gradient(
            180deg,
            rgba(255, 253, 248, 0.32) 0%,
            transparent 8%,
            transparent 92%,
            rgba(255, 253, 248, 0.36) 100%
        );
}

.gdm-office-media .wp-block-image,
.gdm-office-media img {
    width: 100%;
    height: 100%;
    margin: 0;
}

.gdm-office-media img {
    display: block;
    object-fit: cover;
    object-position: center 48%;
    transform: scale(1.01);
}

/* ---------- SERVICES: dopo la parte più umana/fotografica ---------- */

.gdm-services {
    position: relative;
    overflow: hidden;
    color: var(--color-on-dark);
    background: var(--color-surface-dark);
}

.gdm-services > .seria-container {
    position: relative;
    z-index: 1;
}

.gdm-services-header {
    display: grid;
    grid-template-columns: minmax(0, 1.1fr) minmax(280px, 0.9fr);
    gap: clamp(38px, 7vw, 100px);
    align-items: end;
    margin-bottom: clamp(50px, 7vw, 86px);
}

.gdm-services-header .seria-section-intro {
    color: var(--color-on-dark-muted);
}

.gdm-service-editorial {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    column-gap: clamp(42px, 7vw, 110px);
    border-top: 1px solid rgba(255,255,255,0.16);
}

.gdm-service-item {
    position: relative;
    display: grid;
    grid-template-columns: 1fr;
    align-content: start;
    gap: 0.72rem;
    min-height: 136px;
    padding: clamp(26px, 3vw, 40px) 0;
    border-bottom: 1px solid rgba(255,255,255,0.16);
}

.gdm-service-item::before {
    position: absolute;
    top: 39px;
    left: -18px;
    width: 6px;
    height: 6px;
    content: "";
    border-radius: 50%;
    background: var(--color-accent);
}

.gdm-service-item h3 {
    max-width: 23ch;
    margin: 0;
    color: var(--color-on-dark);
    font-size: clamp(1.42rem, 1.48vw, 1.80rem);
    font-weight: 500;
    line-height: 1.10;
    letter-spacing: -0.015em;
    overflow-wrap: normal;
    word-break: normal;
    hyphens: none;
    text-wrap: pretty;
}

.gdm-service-item p {
    max-width: 38ch;
    margin: 0;
    color: var(--color-on-dark-muted);
    line-height: 1.58;
}


/* ---------- HOME SERVICES — INTERAZIONE E LINK ---------- */

.gdm-service-item {
    padding-right: clamp(34px, 3vw, 48px);
    cursor: pointer;
    transition:
        transform 0.24s ease,
        background-color 0.24s ease;
}

.gdm-service-item::after {
    position: absolute;
    top: clamp(34px, 3vw, 40px);
    right: 4px;
    content: "→";
    color: var(--color-accent);
    font-family: var(--font-body);
    font-size: 1rem;
    line-height: 1;
    opacity: 0;
    transform: translateX(-7px);
    transition:
        opacity 0.22s ease,
        transform 0.24s ease;
}

.gdm-service-item__link {
    position: relative;
    z-index: 1;
    color: inherit;
    text-decoration: none;
}

/* Estende il link del titolo all'intera riga senza JavaScript. */
.gdm-service-item__link::after {
    position: absolute;
    z-index: 3;
    inset: -2rem -4rem -5.5rem -1rem;
    content: "";
}

.gdm-service-item:hover,
.gdm-service-item:focus-within {
    background: rgba(255,255,255,0.025);
    transform: translateX(5px);
}

.gdm-service-item:hover::after,
.gdm-service-item:focus-within::after {
    opacity: 0.9;
    transform: translateX(0);
}

.gdm-service-item:hover .gdm-service-item__link,
.gdm-service-item:focus-within .gdm-service-item__link {
    color: var(--color-on-dark);
}

.gdm-service-item__link:focus-visible {
    outline: 2px solid var(--color-accent);
    outline-offset: 5px;
}

@media (hover: none) {
    .gdm-service-item::after {
        opacity: 0.58;
        transform: none;
    }

    .gdm-service-item:hover {
        transform: none;
    }
}

@media (prefers-reduced-motion: reduce) {
    .gdm-service-item,
    .gdm-service-item::after {
        transition: none;
    }

    .gdm-service-item:hover,
    .gdm-service-item:focus-within {
        transform: none;
    }
}

.gdm-services-cta {
    margin-top: var(--space-xl);
}

/* ---------- POETIC PAUSE ---------- */

.gdm-brand-pause {
    position: relative;
    overflow: hidden;
    padding-block: clamp(82px, 9vw, 132px);
    background: var(--color-bg-alt);
}

.gdm-brand-pause__inner {
    position: relative;
    z-index: 1;
    max-width: 980px;
}

.gdm-brand-pause__text {
    margin: 0;
    color: var(--color-primary);
    font-family: var(--font-heading);
    font-size: clamp(2.8rem, 5.6vw, 6.5rem);
    font-weight: 500;
    line-height: 0.93;
    letter-spacing: -0.043em;
    text-wrap: balance;
}

/* ---------- PARTNER ---------- */

.gdm-partner {
    position: relative;
    overflow: hidden;
    background: var(--color-bg);
}

.gdm-partner-split {
    grid-template-columns: minmax(0, 1.08fr) minmax(300px, 0.92fr);
    gap: clamp(54px, 9vw, 140px);
    align-items: center;
}

.gdm-partner-mark {
    min-height: 300px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding-left: clamp(30px, 5vw, 70px);
    border-left: 1px solid rgba(208, 163, 61, 0.45);
}

.gdm-partner-mark-small {
    margin: 0 0 var(--space-md);
    color: var(--color-text-muted);
    font-size: var(--text-sm);
    letter-spacing: 0.12em;
    text-transform: uppercase;
}

.gdm-partner-mark-title {
    margin: 0;
    color: var(--color-primary);
    font-size: clamp(2.8rem, 4.7vw, 5.3rem);
    font-weight: 500;
    line-height: 0.9;
    letter-spacing: -0.04em;
}

/* ---------- TERRITORY ---------- */

.gdm-territory {
    background: var(--color-bg-alt);
}

.gdm-territory__inner {
    display: grid;
    grid-template-columns: minmax(160px, 0.35fr) minmax(0, 1.65fr);
    gap: clamp(38px, 7vw, 100px);
}

.gdm-territory__towns {
    margin: var(--space-lg) 0 0;
    color: var(--color-text-muted);
    font-family: var(--font-heading);
    font-size: clamp(1.3rem, 1.7vw, 1.8rem);
    line-height: 1.5;
}

/* ---------- FINAL CTA ---------- */

.gdm-final {
    position: relative;
    overflow: hidden;
    min-height: 260px;
    padding-block: clamp(54px, 6vw, 80px);
    color: var(--color-on-dark);
    background: var(--color-surface-dark);
    isolation: isolate;
}

.gdm-final::before {
    position: absolute;
    z-index: 0;
    inset: 0;
    content: "";
    pointer-events: none;

    background-image:
        url("https://goccedimemoriaonoranzefunebri.it/wp-content/uploads/2026/09/composizione-floreale-fiori-di-stagione.webp");
    background-repeat: no-repeat;
    background-position: 34% 52%;
    background-size: cover;

    opacity: 0.28;
    transform: scale(1.025);
}

.gdm-final::after {
    position: absolute;
    z-index: 1;
    inset: 0;
    content: "";
    pointer-events: none;

    background:
        linear-gradient(
            90deg,
            rgba(20,35,43,0.96) 0%,
            rgba(20,35,43,0.88) 34%,
            rgba(20,35,43,0.72) 58%,
            rgba(20,35,43,0.88) 78%,
            rgba(20,35,43,0.97) 100%
        );
}

.gdm-final__inner {
    position: relative;
    z-index: 2;
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: clamp(34px, 6vw, 84px);
    align-items: center;
}

.gdm-final-copy {
    max-width: 760px;
}

.gdm-final-copy .seria-eyebrow {
    color: rgba(255,255,255,0.72);
}

.gdm-final-copy h2 {
    color: var(--color-on-dark);
}

.gdm-final-copy p {
    max-width: 62ch;
    color: var(--color-on-dark-muted);
}

/* ---------- REVEAL ---------- */

/*
 * Progressive enhancement:
 * senza .gdm-motion nessun contenuto viene attenuato o traslato.
 * Il reveal agisce solo su elementi interni e media, non sul box sezione.
 */
.gdm-motion .gdm-reveal .gdm-reveal__item {
    opacity: 0.07;
    transform: translateY(22px);
    transition:
        opacity 0.74s cubic-bezier(.22,.61,.36,1),
        transform 0.78s cubic-bezier(.22,.61,.36,1);
    transition-delay: var(--gdm-delay, 55ms);
}

.gdm-motion .gdm-reveal.is-visible .gdm-reveal__item {
    opacity: 1;
    transform: translateY(0);
}

.gdm-motion .gdm-reveal-media {
    opacity: 0.46;
    transform: translateY(24px) scale(1.008);
    transition:
        opacity 0.82s cubic-bezier(.22,.61,.36,1) 70ms,
        transform 0.90s cubic-bezier(.22,.61,.36,1) 70ms;
}

.gdm-motion .gdm-reveal.is-visible .gdm-reveal-media {
    opacity: 1;
    transform: translateY(0) scale(1);
}

.gdm-reveal .gdm-reveal__item:nth-child(2) { --gdm-delay: 90ms; }
.gdm-reveal .gdm-reveal__item:nth-child(3) { --gdm-delay: 125ms; }
.gdm-reveal .gdm-reveal__item:nth-child(4) { --gdm-delay: 160ms; }
.gdm-reveal .gdm-reveal__item:nth-child(5) { --gdm-delay: 195ms; }

/* ---------- MOBILE ACTIONS ---------- */

.gdm-mobile-actions {
    display: none;
}

/* ---------- RESPONSIVE ---------- */

@media (max-width: 1100px) and (min-width: 901px) {
    body .main-navigation .main-nav ul li a {
        padding-inline: 7px;
        font-size: 0.72rem;
    }

    .gdm-hero__inner {
        grid-template-columns: minmax(0, 570px) 1fr;
    }
}

@media (max-width: 900px) {
    body {
        --gdm-header-height: 80px;
        --gdm-header-height-scrolled: 72px;
    }

    body .site-header,
    body.gdm-header-scrolled .site-header {
        background: rgba(255, 253, 248, 0.965);
        backdrop-filter: blur(9px);
    }

    body .inside-header {
        min-height: var(--gdm-header-height);
        padding: 7px 18px;
        gap: 10px;
    }

    body .site-branding,
    body .site-logo {
        margin-right: auto;
    }

    body .site-logo img,
    body.gdm-header-scrolled .site-logo img {
        width: min(190px, 43vw);
        height: auto;
        max-height: 66px;
    }

    /* CTA compatta: una sola CTA header. */
    body .gdm-header-call {
        min-height: 42px;
        padding: 0.58rem 0.9rem;
        font-size: 0.88rem;
        white-space: nowrap;
    }

    /*
     * GeneratePress:
     * sopra il breakpoint nativo può ancora considerare la nav "desktop".
     * Qui imponiamo solo il comportamento necessario a 900px:
     * toggle visibile e main-nav chiusa fino a .toggled.
     */
    body #site-navigation {
        position: static;
        flex: 0 0 auto;
        width: auto;
        margin: 0;
    }

    body #site-navigation .inside-navigation {
        position: static;
        min-height: 44px;
    }

    body #site-navigation .mobile-menu-control-wrapper {
        display: flex;
        align-items: center;
    }

    body #site-navigation .menu-toggle {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        min-width: 44px;
        min-height: 44px;
        padding: 0;
        color: var(--color-primary);
        background: transparent;
    }

    body #site-navigation:not(.toggled) .main-nav {
        display: none;
    }

    body #site-navigation.toggled .main-nav {
        position: fixed;
        z-index: 999;
        top: var(--gdm-header-height);
        right: 0;
        left: 0;
        display: block;
        max-height: calc(100dvh - var(--gdm-header-height));
        overflow-y: auto;
        padding: 10px 18px 18px;
        background: rgba(255, 253, 248, 0.99);
        border-top: 1px solid rgba(20, 35, 43, 0.07);
        box-shadow: 0 16px 30px rgba(20, 35, 43, 0.08);
        backdrop-filter: blur(10px);
    }

    body #site-navigation.toggled .main-nav > ul,
    body #site-navigation.toggled .main-nav ul {
        display: block;
        width: 100%;
        margin: 0;
    }

    body #site-navigation .main-nav ul li {
        display: block;
        width: 100%;
    }

    body #site-navigation .main-nav ul li a {
        display: flex;
        align-items: center;
        width: 100%;
        min-height: 46px;
        padding: 8px 2px;
        font-size: 0.92rem;
        border-bottom: 1px solid rgba(20, 35, 43, 0.08);
    }

    body #site-navigation .main-nav ul li a::after {
        right: auto;
        bottom: 5px;
        left: 2px;
        width: 42px;
    }

    .gdm-hero {
        min-height: 590px;
    }

    .gdm-hero::before {
        background:
            linear-gradient(
                180deg,
                rgba(255,253,248,0.99) 0%,
                rgba(255,253,248,0.96) 39%,
                rgba(255,253,248,0.74) 58%,
                rgba(255,253,248,0.16) 84%,
                rgba(255,253,248,0) 100%
            );
    }
.gdm-hero__inner {
        grid-template-columns: 1fr;
        align-items: start;
        min-height: 590px;
        padding:
            calc(var(--gdm-header-height) + 20px)
            24px
            36px;
    }

    .gdm-hero__media img {
        object-position: 62% center;
    }

    .gdm-reference-split,
    .gdm-process-band__head,
    .gdm-presence-split,
    .gdm-office-split,
    .gdm-services-header,
    .gdm-partner-split,
    .gdm-territory__inner,
    .gdm-final__inner {
        grid-template-columns: 1fr;
    }

    .gdm-service-editorial {
        grid-template-columns: 1fr;
    }

    .gdm-reference-media,
    .gdm-presence-media,
    .gdm-office-media {
        min-height: 440px;
    }

    /* In colonna le foto sfumano in basso, non tornano rettangoli netti. */
    .gdm-reference-media::after,
    .gdm-office-media::after {
        background:
            linear-gradient(
                180deg,
                transparent 0%,
                transparent 70%,
                var(--color-bg) 100%
            ),
            linear-gradient(
                90deg,
                rgba(255, 253, 248, 0.20) 0%,
                transparent 12%,
                transparent 88%,
                rgba(255, 253, 248, 0.20) 100%
            );
    }

    .gdm-presence-media::after {
        background:
            linear-gradient(
                180deg,
                transparent 0%,
                transparent 70%,
                var(--color-bg-alt) 100%
            ),
            linear-gradient(
                90deg,
                rgba(244, 240, 231, 0.20) 0%,
                transparent 12%,
                transparent 88%,
                rgba(244, 240, 231, 0.20) 100%
            );
    }


    .gdm-final::before {
        background-position: 44% 50%;
        opacity: 0.22;
    }

    .gdm-final::after {
        background:
            linear-gradient(
                180deg,
                rgba(20,35,43,0.86) 0%,
                rgba(20,35,43,0.76) 42%,
                rgba(20,35,43,0.94) 100%
            );
    }
}

@media (max-width: 680px) {

    body .gdm-process-band::before,
    body .gdm-services::before {
        background-position: calc(100% + 26vw) 50%;
        background-size: min(84vw, 390px) auto;
        opacity: 0.09;
    }


    body {
        --gdm-header-height: 64px;
        --gdm-header-height-scrolled: 60px;
    }

    body .inside-header,
    body.gdm-header-scrolled .inside-header {
        min-height: var(--gdm-header-height);
        padding: 4px 14px;
        gap: 8px;
    }

    body .site-logo img,
    body.gdm-header-scrolled .site-logo img {
        width: min(150px, 38vw);
        max-height: 52px;
    }

    body #site-navigation .inside-navigation,
    body #site-navigation .menu-toggle {
        min-height: 40px;
    }

    /* Su telefono la CTA chiamata è già nella barra persistente in basso. */
    body .gdm-header-call {
        display: none;
    }

    .gdm-hero {
        min-height: 565px;
    }

    .gdm-hero__inner {
        min-height: 565px;
        padding:
            calc(var(--gdm-header-height) + 18px)
            22px
            32px;
    }

    .gdm-hero-title {
        font-size: clamp(2.5rem, 10.7vw, 3.55rem);
    }

    .gdm-hero-actions,
    .gdm-hero-actions .wp-block-button,
    .gdm-hero-actions .wp-block-button__link {
        width: 100%;
    }

    .gdm-process-flow {
        grid-template-columns: 1fr;
    }

    .gdm-process-step {
        min-height: auto;
        border-right: 0;
        border-bottom: 1px solid rgba(255,255,255,0.16);
    }

    .gdm-process-step:last-child {
        border-bottom: 0;
    }

    .gdm-reference-media,
    .gdm-presence-media,
    .gdm-office-media {
        min-height: 370px;
    }
.gdm-brand-pause__text {
        font-size: clamp(2.65rem, 13vw, 4.25rem);
    }

    .gdm-partner-mark {
        min-height: 230px;
        padding-left: 24px;
    }


    .gdm-final {
        min-height: 290px;
    }

    .gdm-final::before {
        background-position: 52% 48%;
        opacity: 0.18;
    }

    .gdm-final__inner {
        gap: 28px;
    }

    .gdm-mobile-actions {
        position: fixed;
        z-index: 9999;
        right: 0;
        bottom: 0;
        left: 0;
        display: block;
        min-height: var(--gdm-mobile-bar-height);
        padding-bottom: env(safe-area-inset-bottom);
        opacity: 0;
        visibility: hidden;
        pointer-events: none;
        transform: translateY(calc(100% + env(safe-area-inset-bottom)));
        box-shadow: 0 -8px 28px rgba(20, 35, 43, 0.16);
        transition:
            opacity 0.22s ease,
            transform 0.28s cubic-bezier(.22,.61,.36,1),
            visibility 0s linear 0.28s;
    }

    body.page-id-70.gdm-mobile-bar-visible .gdm-mobile-actions {
        opacity: 1;
        visibility: visible;
        pointer-events: auto;
        transform: translateY(0);
        transition:
            opacity 0.22s ease,
            transform 0.28s cubic-bezier(.22,.61,.36,1),
            visibility 0s linear 0s;
    }

    .gdm-mobile-buttons {
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: 0;
        width: 100%;
    }

    .gdm-mobile-buttons .wp-block-button,
    .gdm-mobile-buttons .wp-block-button__link {
        width: 100%;
        margin: 0;
        border-radius: 0 !important;
    }

    .gdm-mobile-buttons .wp-block-button__link {
        display: flex;
        align-items: center;
        justify-content: center;
        min-height: 56px;
        padding: 0.7rem 0.8rem !important;
        font-family: var(--font-body);
        font-size: var(--text-sm) !important;
        font-weight: 700;
        letter-spacing: 0.035em;
        text-decoration: none;
    }

    .gdm-mobile-call .wp-block-button__link {
        color: var(--color-on-dark) !important;
        background: var(--color-primary) !important;
    }

    .gdm-mobile-whatsapp .wp-block-button__link {
        color: var(--color-primary) !important;
        background: var(--color-accent) !important;
    }

    body.page-id-70 {
        --gdm-watermark-opacity: 0.035;
        padding-bottom:
            calc(var(--gdm-mobile-bar-height) + env(safe-area-inset-bottom));
    }

    body.page-id-70::before {
        right: -26vw;
        width: min(84vw, 390px);
    }

    body.page-id-70 .gdm-footer-shell {
        scroll-margin-bottom:
            calc(var(--gdm-mobile-bar-height) + env(safe-area-inset-bottom));
    }
}

@media (prefers-reduced-motion: reduce) {
    .gdm-hero__media img {
        animation: none;
        transform: none;
    }
    .gdm-motion .gdm-reveal .gdm-reveal__item,
    .gdm-motion .gdm-reveal.is-visible .gdm-reveal__item,
    .gdm-motion .gdm-reveal-media,
    .gdm-motion .gdm-reveal.is-visible .gdm-reveal-media {
        opacity: 1;
        transform: none;
        transition: none;
    }

    body .site-header,
    body .inside-header,
    body .site-logo img,
    body .gdm-header-call {
        transition: none;
    }

    .gdm-mobile-actions,
    body.page-id-70.gdm-mobile-bar-visible .gdm-mobile-actions {
        transition: none;
    }
}

/* =========================================================
   GOCCE DI MEMORIA — GLOBAL FOOTER v0.11.19
   Un solo widget HTML GeneratePress; Footer Widgets deve essere 1.
   ========================================================= */

.site-footer {
    position: relative;
    overflow: hidden;
    background: var(--color-bg);
}

.footer-widgets {
    padding: 0;
    background: var(--color-bg);
    border-top: 1px solid rgba(208, 163, 61, 0.18);
}

.footer-widgets-container {
    width: 100%;
    max-width: none;
    padding: 0;
}

.inside-footer-widgets {
    display: block;
    width: 100%;
    margin: 0;
}

.inside-footer-widgets > div,
.inside-footer-widgets .widget,
.inside-footer-widgets .widget_text,
.inside-footer-widgets .textwidget {
    width: 100%;
    max-width: none;
    margin: 0;
    padding: 0;
}


/*
 * GeneratePress full-bleed fix:
 * neutralizza larghezze, gutter e offset del wrapper nativo del singolo widget.
 * Footer Widgets deve comunque restare impostato realmente a 1.
 */
.site-footer,
.site-footer .footer-widgets,
.site-footer .footer-widgets-container,
.site-footer .footer-widgets-container.grid-container,
.site-footer .inside-footer-widgets,
.site-footer .inside-footer-widgets > .footer-widget-1,
.site-footer .footer-widget-1 .widget,
.site-footer .footer-widget-1 .widget_text,
.site-footer .footer-widget-1 .textwidget,
.site-footer .gdm-footer-shell {
    width: 100% !important;
    max-width: none !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
    box-sizing: border-box;
}

.site-footer .footer-widgets-container.grid-container {
    margin-inline: 0 !important;
    padding: 0 !important;
}

.site-footer .inside-footer-widgets {
    display: block !important;
}

.site-footer .inside-footer-widgets > .footer-widget-1 {
    float: none !important;
    flex: 0 0 100% !important;
}

.site-footer .footer-widget-1 .widget {
    margin-bottom: 0 !important;
}

/* Copyright/legali sono già nel markup GDM. */
.site-info {
    display: none;
}

/* ---------- SHELL ---------- */

.gdm-footer-shell {
    position: relative;
    width: 100%;
    color: var(--color-text);
    background: var(--color-bg);
}

.gdm-footer-main {
    position: relative;
    overflow: hidden;
    padding:
        clamp(70px, 7.5vw, 108px)
        var(--gutter)
        clamp(60px, 6.5vw, 88px);
    background: var(--color-bg);
    isolation: isolate;
}

/* Footer volutamente privo di goccia decorativa: evita ridondanza con il watermark pagina. */

.gdm-footer-grid {
    position: relative;
    z-index: 1;
    display: grid;
    grid-template-columns:
        minmax(270px, 1.15fr)
        minmax(280px, 1fr)
        minmax(230px, 0.8fr);
    gap: clamp(48px, 7vw, 112px);
    align-items: start;
    width: min(100%, 1320px);
    margin-inline: auto;
}

/* ---------- COMMON ---------- */

.gdm-footer-shell p,
.gdm-footer-shell nav,
.gdm-footer-shell ul {
    margin-top: 0;
}

.gdm-footer-shell a {
    color: var(--color-primary);
    text-decoration: none;
}

.gdm-footer-shell a:focus-visible {
    outline: 2px solid var(--color-primary);
    outline-offset: 3px;
}

.gdm-footer-label {
    margin: 0 0 1rem;
    color: var(--color-accent-dark);
    font-family: var(--font-body);
    font-size: 0.72rem;
    font-weight: 700;
    line-height: 1.3;
    letter-spacing: 0.15em;
    text-transform: uppercase;
}

/* ---------- BRAND ---------- */

.gdm-footer-brand {
    max-width: 320px;
}

.gdm-footer-brand-logo {
    display: block;
    width: min(238px, 100%);
    height: auto;
    margin: 0 0 clamp(24px, 3vw, 34px);
}

.gdm-footer-payoff {
    max-width: 13ch;
    margin: 0;
    color: var(--color-primary);
    font-family: var(--font-heading);
    font-size: clamp(1.5rem, 1.9vw, 1.95rem);
    font-weight: 500;
    line-height: 1.08;
}

/* ---------- CONTACT ---------- */

.gdm-footer-contact {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
}

.gdm-footer-phone {
    display: inline-block;
    margin: 0 0 0.78rem;
    color: var(--color-primary) !important;
    font-family: var(--font-heading);
    font-size: clamp(2.1rem, 2.8vw, 3.05rem);
    font-weight: 500;
    line-height: 0.98;
    letter-spacing: -0.035em;
    border-bottom: 1px solid transparent;
    transition:
        border-color 0.22s ease,
        color 0.22s ease;
}

.gdm-footer-phone:hover,
.gdm-footer-phone:focus-visible {
    border-bottom-color: var(--color-accent);
}

.gdm-footer-secondary,
.gdm-footer-email {
    margin: 0 0 0.48rem;
    color: var(--color-text-muted);
    font-family: var(--font-body);
    font-size: 0.92rem;
    line-height: 1.55;
}

.gdm-footer-secondary a,
.gdm-footer-email a {
    color: var(--color-text-muted);
    border-bottom: 1px solid transparent;
}

.gdm-footer-secondary a:hover,
.gdm-footer-secondary a:focus-visible,
.gdm-footer-email a:hover,
.gdm-footer-email a:focus-visible {
    color: var(--color-primary);
    border-bottom-color: var(--color-accent);
}

/* ---------- LOCATION ---------- */

.gdm-footer-location {
    max-width: 280px;
}

.gdm-footer-address {
    margin: 0 0 1.35rem;
    color: var(--color-primary);
    font-family: var(--font-heading);
    font-size: clamp(1.35rem, 1.65vw, 1.68rem);
    font-style: normal;
    line-height: 1.34;
}

.gdm-footer-directions {
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
    padding-bottom: 0.18rem;
    color: var(--color-primary) !important;
    font-size: 0.9rem;
    font-weight: 700;
    border-bottom: 1px solid rgba(20, 35, 43, 0.24);
}

.gdm-footer-directions:hover,
.gdm-footer-directions:focus-visible {
    border-bottom-color: var(--color-accent);
}


/* ---------- FOOTER SOCIAL v0.2 ---------- */

.gdm-footer-social {
    margin-top: clamp(24px, 3vw, 34px);
    padding-top: 20px;
    border-top: 1px solid rgba(20, 35, 43, 0.10);
}

.gdm-footer-social-label {
    margin: 0 0 0.75rem;
    color: var(--color-text-muted);
    font-family: var(--font-body);
    font-size: 0.72rem;
    font-weight: 700;
    line-height: 1.3;
    letter-spacing: 0.12em;
    text-transform: uppercase;
}

.gdm-footer-social-links {
    display: flex;
    align-items: center;
    gap: 10px;
}

.gdm-footer-social-link {
    position: relative;
    display: inline-grid;
    width: 36px;
    height: 36px;
    place-items: center;
    color: var(--color-primary) !important;
    border: 1px solid rgba(20, 35, 43, 0.16);
    border-radius: 50%;
    background: transparent;
    transition:
        color 0.2s ease,
        border-color 0.2s ease,
        background-color 0.2s ease,
        transform 0.2s ease;
}

.gdm-footer-social-link::before {
    width: 17px;
    height: 17px;
    content: "";
    background-color: currentColor;
    -webkit-mask-repeat: no-repeat;
    mask-repeat: no-repeat;
    -webkit-mask-position: center;
    mask-position: center;
    -webkit-mask-size: contain;
    mask-size: contain;
}

.gdm-footer-social-link--instagram::before {
    -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Crect x='3.5' y='3.5' width='17' height='17' rx='5' ry='5' fill='none' stroke='black' stroke-width='1.8'/%3E%3Ccircle cx='12' cy='12' r='4' fill='none' stroke='black' stroke-width='1.8'/%3E%3Ccircle cx='17.4' cy='6.7' r='1.05' fill='black'/%3E%3C/svg%3E");
    mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Crect x='3.5' y='3.5' width='17' height='17' rx='5' ry='5' fill='none' stroke='black' stroke-width='1.8'/%3E%3Ccircle cx='12' cy='12' r='4' fill='none' stroke='black' stroke-width='1.8'/%3E%3Ccircle cx='17.4' cy='6.7' r='1.05' fill='black'/%3E%3C/svg%3E");
}

.gdm-footer-social-link--facebook::before {
    -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='M13.7 20v-7h2.4l.4-2.8h-2.8V8.4c0-.8.2-1.4 1.4-1.4h1.5V4.5c-.3 0-1.2-.1-2.3-.1-2.3 0-3.9 1.4-3.9 4v1.8H8V13h2.4v7h3.3z'/%3E%3C/svg%3E");
    mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='M13.7 20v-7h2.4l.4-2.8h-2.8V8.4c0-.8.2-1.4 1.4-1.4h1.5V4.5c-.3 0-1.2-.1-2.3-.1-2.3 0-3.9 1.4-3.9 4v1.8H8V13h2.4v7h3.3z'/%3E%3C/svg%3E");
}

.gdm-footer-social-link:hover,
.gdm-footer-social-link:focus-visible {
    color: var(--color-accent) !important;
    border-color: rgba(208, 163, 61, 0.62);
    background: rgba(208, 163, 61, 0.045);
    transform: translateY(-1px);
}

@media (prefers-reduced-motion: reduce) {
    .gdm-footer-social-link,
    .gdm-footer-social-link:hover,
    .gdm-footer-social-link:focus-visible {
        transition: none;
        transform: none;
    }
}

/* ---------- LEGAL BAND ---------- */

.gdm-footer-legal {
    color: rgba(255, 255, 255, 0.69);
    background: var(--color-surface-dark);
    border-top: 0;
}

/*
 * Separatore speculare:
 * una sottile fascia avorio prima della banda petrolio,
 * chiusa da una riga dorata come nella parte superiore del footer.
 */
.gdm-footer-legal::before {
    display: block;
    height: clamp(18px, 2vw, 28px);
    content: "";
    background: var(--color-bg);
    border-bottom: 1px solid rgba(208, 163, 61, 0.22);
}

.gdm-footer-legal-inner {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    grid-template-areas:
        "main legal"
        "meta meta";
    gap: 18px 42px;
    align-items: center;
    width: min(calc(100% - (2 * var(--gutter))), 1320px);
    margin-inline: auto;
    padding-block: clamp(24px, 3vw, 34px);
}

.gdm-footer-nav {
    grid-area: main;
}

.gdm-footer-privacy {
    grid-area: legal;
}

.gdm-footer-meta {
    grid-area: meta;
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    gap: 10px 28px;
    padding-top: 18px;
    border-top: 1px solid rgba(255, 255, 255, 0.09);
}

.gdm-footer-company-data,
.gdm-footer-copy {
    margin: 0;
    color: rgba(255, 255, 255, 0.55);
    font-family: var(--font-body);
    font-size: 0.72rem;
    line-height: 1.5;
}

.gdm-footer-company-data {
    display: flex;
    flex-wrap: wrap;
    gap: 5px 16px;
}

.gdm-footer-menu {
    display: flex;
    flex-wrap: wrap;
    gap: 8px 22px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.gdm-footer-menu li {
    margin: 0;
    padding: 0;
}

.gdm-footer-menu a {
    color: rgba(255, 255, 255, 0.76);
    font-family: var(--font-body);
    font-size: 0.76rem;
    line-height: 1.5;
    text-decoration: none;
    transition: color 0.2s ease;
}

.gdm-footer-menu a:hover,
.gdm-footer-menu a:focus-visible {
    color: var(--color-accent);
}

/* ---------- FOOTER RESPONSIVE ---------- */

@media (max-width: 900px) {
    .gdm-footer-grid {
        grid-template-columns: 1fr 1fr;
        gap: 52px 60px;
    }

    .gdm-footer-brand {
        grid-column: 1 / -1;
        max-width: 100%;
    }
.gdm-footer-legal-inner {
        grid-template-columns: 1fr;
        grid-template-areas:
            "main"
            "legal"
            "meta";
    }
}

@media (max-width: 640px) {
    .gdm-footer-main {
        padding: 58px 22px 66px;
    }

    .gdm-footer-grid {
        grid-template-columns: 1fr;
        gap: 44px;
    }

    .gdm-footer-brand {
        grid-column: auto;
    }

    .gdm-footer-brand-logo {
        width: 205px;
    }

    .gdm-footer-phone {
        font-size: 2.3rem;
    }
.gdm-footer-legal-inner {
        width: calc(100% - 44px);
        padding-block: 26px 30px;
    }

    .gdm-footer-menu {
        gap: 8px 16px;
    }

    .gdm-footer-meta,
    .gdm-footer-company-data {
        display: block;
    }

    .gdm-footer-company-data span {
        display: block;
    }

    .gdm-footer-company-data span + span,
    .gdm-footer-copy {
        margin-top: 4px;
    }
}


/* =========================================================
   GOCCE DI MEMORIA — SHARED INNER PAGES + CONTATTI v0.1
   Riusa SERIA Core + linguaggio Home v0.9.5.
   ========================================================= */

/* ---------- INNER PAGE SHELL ---------- */

.gdm-page {
    position: relative;
    isolation: isolate;
    width: 100vw;
    max-width: 100vw;
    margin-inline: calc(50% - 50vw);
    overflow: clip;
    background: var(--color-bg);
}

/*
 * Full-bleed robusto anche quando GeneratePress usa un content container boxed.
 * I container interni .seria-container continuano a controllare la misura del testo.
 */
.gdm-page > * {
    width: 100%;
    max-width: none;
}

.gdm-page .seria-section,
.gdm-page [id] {
    scroll-margin-top: calc(var(--gdm-header-height) + 18px);
}

/*
 * Watermark "a finestra" per le sezioni chiare:
 * la goccia resta ferma rispetto al viewport ma viene ritagliata dalla singola
 * sezione. L'asset usato qui ha trasparenza reale, quindi nessun rettangolo.
 */
.gdm-watermark-light {
    position: relative;
    isolation: isolate;
    overflow: hidden;
}

.gdm-watermark-light::before {
    position: absolute;
    z-index: 0;
    inset: 0;
    content: "";
    pointer-events: none;

    background-image:
        url("https://goccedimemoriaonoranzefunebri.it/wp-content/uploads/2026/09/gdm-droplet-transparent.png");
    background-repeat: no-repeat;
    background-attachment: fixed;
    background-position:
        calc(100% + clamp(90px, 8vw, 180px))
        50%;
    background-size:
        clamp(360px, 34vw, 620px)
        auto;

    opacity: 0.05;
}

.gdm-watermark-light > .seria-container {
    position: relative;
    z-index: 2;
}

/* ---------- GENERIC PETROL BAND ---------- */

.gdm-dark-band {
    position: relative;
    z-index: 2;
    overflow: hidden;
    color: var(--color-on-dark);
    background: var(--color-surface-dark);
    isolation: isolate;
}

/*
 * Versione chiara della goccia sulle sole grandi bande petrolio.
 * L'asset ha trasparenza reale: il filtro schiarisce solo la goccia.
 */
.gdm-dark-band::before {
    position: absolute;
    z-index: 0;
    inset: 0;
    content: "";
    pointer-events: none;

    background-image:
        url("https://goccedimemoriaonoranzefunebri.it/wp-content/uploads/2026/09/gdm-droplet-transparent.png");
    background-repeat: no-repeat;
    background-attachment: fixed;
    background-position:
        calc(100% + clamp(90px, 8vw, 180px))
        50%;
    background-size:
        clamp(360px, 34vw, 620px)
        auto;

    opacity: 0.045;
    filter: brightness(0) invert(1);
}

.gdm-dark-band > .seria-container {
    position: relative;
    z-index: 2;
}

.gdm-dark-band .seria-eyebrow,
.gdm-dark-band .seria-section-intro,
.gdm-dark-band p {
    color: var(--color-on-dark-muted);
}

.gdm-dark-band h2,
.gdm-dark-band h3 {
    color: var(--color-on-dark);
}

/* ---------- CONTACT HERO ---------- */

.gdm-contact-hero {
    position: relative;
    min-height: clamp(430px, 52svh, 540px);
    padding:
        calc(var(--gdm-header-height) + clamp(54px, 7vw, 92px))
        0
        clamp(68px, 8vw, 112px);
    background: transparent;
}

.gdm-contact-hero__copy {
    max-width: 860px;
}

.gdm-contact-title {
    max-width: 14ch;
    margin: 0;
    color: var(--color-primary);
    font-family: var(--font-heading);
    font-size: clamp(3rem, 5.1vw, 5.8rem);
    font-weight: 500;
    line-height: 0.94;
    letter-spacing: -0.042em;
    text-wrap: balance;
}

.gdm-contact-title em {
    display: block;
    margin-top: 0.08em;
    font-weight: 500;
}

/* ---------- LOCATION SPLIT ---------- */

.gdm-location-split {
    grid-template-columns: minmax(400px, 1.05fr) minmax(0, 0.95fr);
    gap: clamp(52px, 7vw, 104px);
    align-items: center;
}

.gdm-location-media {
    position: relative;
    min-height: 500px;
    overflow: hidden;
}

.gdm-location-media::after {
    position: absolute;
    z-index: 1;
    inset: 0;
    content: "";
    pointer-events: none;
    background:
        linear-gradient(
            90deg,
            transparent 0%,
            transparent 70%,
            rgba(255,253,248,0.30) 82%,
            var(--color-bg) 100%
        ),
        linear-gradient(
            180deg,
            rgba(255,253,248,0.30) 0%,
            transparent 10%,
            transparent 90%,
            rgba(255,253,248,0.36) 100%
        );
}

.gdm-location-media .wp-block-image,
.gdm-location-media img {
    width: 100%;
    height: 100%;
    margin: 0;
}

.gdm-location-media img {
    display: block;
    object-fit: cover;
    object-position: center;
    transform: scale(1.01);
}

.gdm-contact-address {
    margin: 0;
    color: var(--color-primary);
    font-family: var(--font-heading);
    font-size: clamp(1.32rem, 1.7vw, 1.78rem);
    line-height: 1.45;
}

.gdm-contact-links {
    display: grid;
    gap: 0.32rem;
    margin: 0;
}

.gdm-contact-links a {
    width: fit-content;
}

/* ---------- EDITORIAL PHOTO PLACEHOLDER ---------- */

/*
 * Placeholder volutamente evidente in fase di sviluppo.
 * Va sostituito con una fotografia reale prima del go-live.
 */
.gdm-photo-placeholder {
    position: relative;
    display: grid;
    min-height: 320px;
    place-items: end start;
    overflow: hidden;
    padding: clamp(24px, 4vw, 42px);
    border: 1px dashed rgba(255,255,255,0.28);
    background:
        linear-gradient(
            135deg,
            rgba(255,255,255,0.035),
            rgba(255,255,255,0.085)
        );
}

.gdm-photo-placeholder::before {
    position: absolute;
    inset: 18px;
    content: "";
    pointer-events: none;
    border-top: 1px solid rgba(255,255,255,0.12);
    border-bottom: 1px solid rgba(255,255,255,0.12);
}

.gdm-photo-placeholder__label {
    position: relative;
    z-index: 1;
    max-width: 34ch;
    margin: 0;
    color: rgba(255,255,255,0.82) !important;
    font-family: var(--font-body);
    font-size: 0.82rem;
    font-weight: 700;
    line-height: 1.5;
    letter-spacing: 0.07em;
    text-transform: uppercase;
}

.gdm-photo-placeholder__label strong {
    display: block;
    margin-bottom: 0.45rem;
    color: var(--color-accent);
    font-family: var(--font-heading);
    font-size: clamp(1.45rem, 2vw, 2rem);
    font-weight: 500;
    letter-spacing: -0.015em;
    text-transform: none;
}

/* ---------- PARKING BAND ---------- */

.gdm-contact-parking__inner {
    display: grid;
    grid-template-columns: minmax(0, 0.88fr) minmax(420px, 1.12fr);
    gap: clamp(48px, 7vw, 104px);
    align-items: center;
}

.gdm-contact-parking__copy {
    max-width: 620px;
}

.gdm-contact-parking__note {
    margin-top: 0;
    padding-top: var(--space-md);
    border-top: 1px solid rgba(255,255,255,0.16);
    color: rgba(255,255,255,0.72);
    font-size: 0.92rem;
}

/* ---------- DIRECTIONS ---------- */

.gdm-contact-directions {
    padding-block: clamp(54px, 6vw, 82px);
}

.gdm-contact-directions__compact {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: clamp(40px, 7vw, 96px);
    align-items: end;
    padding-block: clamp(10px, 2vw, 22px);
    border-top: 1px solid rgba(20,35,43,0.16);
    border-bottom: 1px solid rgba(20,35,43,0.16);
}

.gdm-contact-directions__compact .seria-section-intro {
    max-width: 66ch;
}

.gdm-contact-directions__cta {
    margin: 0;
    justify-content: flex-end;
}

@media (max-width: 900px) {
    .gdm-contact-directions__compact {
        grid-template-columns: 1fr;
        align-items: start;
    }

    .gdm-contact-directions__cta {
        justify-content: flex-start;
    }
}

/* ---------- CONTACT FINAL CTA ---------- */

.gdm-contact-final {
    position: relative;
    z-index: 2;
    overflow: hidden;
    color: var(--color-on-dark);
    background: var(--color-surface-dark);
}

.gdm-contact-final__inner {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: clamp(34px, 6vw, 84px);
    align-items: center;
}

.gdm-contact-final .seria-eyebrow {
    color: rgba(255,255,255,0.66);
}

.gdm-contact-final h2 {
    color: var(--color-on-dark);
}

.gdm-contact-final p {
    max-width: 60ch;
    color: var(--color-on-dark-muted);
}

/* ---------- CONTACT RESPONSIVE ---------- */

@media (max-width: 900px) {
    .gdm-contact-hero {
        min-height: auto;
        padding:
            calc(var(--gdm-header-height) + 42px)
            0
            72px;
    }

    .gdm-location-split,
    .gdm-contact-parking__inner,
    .gdm-contact-final__inner {
        grid-template-columns: 1fr;
    }

    .gdm-photo-placeholder {
        min-height: 300px;
    }

    .gdm-location-media {
        min-height: 430px;
    }

    .gdm-location-media::after {
        background:
            linear-gradient(
                180deg,
                transparent 0%,
                transparent 72%,
                var(--color-bg) 100%
            ),
            linear-gradient(
                90deg,
                rgba(255,253,248,0.18) 0%,
                transparent 12%,
                transparent 88%,
                rgba(255,253,248,0.18) 100%
            );
    }

}

@media (max-width: 680px) {
    .gdm-watermark-light::before {
        background-position: calc(100% + 26vw) 50%;
        background-size: min(84vw, 390px) auto;
        opacity: 0.038;
    }

    .gdm-dark-band::before {
        background-position: calc(100% + 26vw) 50%;
        background-size: min(84vw, 390px) auto;
        opacity: 0.034;
    }

    .gdm-contact-title {
        font-size: clamp(2.65rem, 12vw, 4rem);
    }

    .gdm-location-media {
        min-height: 350px;
    }

}

@media (prefers-reduced-motion: reduce) {
    .gdm-location-media img {
        transform: none;
    }
}

/* ---------- MOBILE FOOTER SAFE AREA ---------- */

@media (max-width: 680px) {
    /*
     * Evita che la barra fixed Chiama H24 / WhatsApp copra
     * ragione sociale, P. IVA o link legali.
     * :has() limita lo spazio aggiuntivo alle pagine che contengono la barra.
     * Il fallback esplicito mantiene sicura la Home attuale.
     */
    body:has(.gdm-mobile-actions) .gdm-footer-legal,
    body.page-id-70 .gdm-footer-legal {
        padding-bottom:
            calc(22px + var(--gdm-mobile-bar-height) + env(safe-area-inset-bottom));
    }
}



/* ---------- FOOTER SEPARATOR v0.9.10 ---------- */

/*
 * Separatore inferiore realmente speculare:
 * 1. riga dorata subito sotto il blocco avorio principale;
 * 2. piccola fascia avorio;
 * 3. fascia legale petrolio.
 *
 * È più affidabile del precedente ::before sulla banda legale.
 */
.gdm-footer-main {
    border-bottom: 1px solid rgba(208, 163, 61, 0.24);
    margin-bottom: clamp(18px, 2vw, 28px);
}

.gdm-footer-legal::before {
    content: none !important;
    display: none !important;
}


/* =========================================================
   GOCCE DI MEMORIA — CHI SIAMO v0.1
   Layer leggero sopra il CSS globale esistente.
   ========================================================= */

/* ---------- ABOUT HERO ---------- */

.gdm-about-hero {
    position: relative;
    min-height: clamp(440px, 55svh, 590px);
    padding:
        calc(var(--gdm-header-height) + clamp(56px, 7vw, 96px))
        0
        clamp(72px, 9vw, 122px);
}

.gdm-about-hero__inner {
    display: grid;
    grid-template-columns: minmax(0, 0.88fr) minmax(420px, 1.12fr);
    gap: clamp(48px, 7vw, 106px);
    align-items: center;
}

.gdm-about-title {
    max-width: 10.5ch;
    margin: 0;
    color: var(--color-primary);
    font-family: var(--font-heading);
    font-size: clamp(3.2rem, 5.2vw, 6rem);
    font-weight: 500;
    line-height: 0.94;
    letter-spacing: -0.043em;
    text-wrap: balance;
}

.gdm-about-hero__lead {
    max-width: 610px;
}

.gdm-about-hero__photo {
    position: relative;
    min-height: clamp(430px, 48vw, 610px);
    align-self: stretch;
    border-color: rgba(20,35,43,0.16);
    background:
        linear-gradient(
            135deg,
            rgba(20,35,43,0.035),
            rgba(20,35,43,0.075)
        );
}

.gdm-about-hero__photo::before {
    border-top-color: rgba(20,35,43,0.10);
    border-bottom-color: rgba(20,35,43,0.10);
}

.gdm-about-hero__photo .gdm-photo-placeholder__label {
    color: rgba(20,35,43,0.72) !important;
}

.gdm-about-hero__photo .gdm-photo-placeholder__label strong {
    color: var(--color-accent);
}

/* ---------- ORIGIN / WHY ---------- */

.gdm-about-origin {
    background: var(--color-bg-alt);
}

.gdm-about-origin__split {
    grid-template-columns: minmax(380px, 1.03fr) minmax(0, 0.97fr);
    gap: clamp(50px, 7vw, 104px);
    align-items: center;
}

.gdm-about-origin__media {
    position: relative;
    min-height: 500px;
    overflow: hidden;
}

.gdm-about-origin__media::after {
    position: absolute;
    z-index: 1;
    inset: 0;
    content: "";
    pointer-events: none;
    background:
        linear-gradient(
            90deg,
            transparent 0%,
            transparent 72%,
            rgba(244,240,231,0.30) 84%,
            var(--color-bg-alt) 100%
        ),
        linear-gradient(
            180deg,
            rgba(244,240,231,0.24) 0%,
            transparent 12%,
            transparent 88%,
            rgba(244,240,231,0.34) 100%
        );
}

.gdm-about-origin__media .wp-block-image,
.gdm-about-origin__media img {
    width: 100%;
    height: 100%;
    margin: 0;
}

.gdm-about-origin__media img {
    display: block;
    object-fit: cover;
    object-position: center;
}

.gdm-about-origin__copy {
    max-width: 670px;
}

/* ---------- PRINCIPLES ---------- */

.gdm-about-principles__head {
    display: grid;
    grid-template-columns: minmax(0, 0.9fr) minmax(320px, 1.1fr);
    gap: clamp(44px, 7vw, 96px);
    align-items: end;
    margin-bottom: clamp(46px, 6vw, 76px);
}

.gdm-about-principles__list {
    border-top: 1px solid rgba(20,35,43,0.16);
}

.gdm-about-principle {
    display: grid;
    grid-template-columns: minmax(190px, 0.34fr) minmax(0, 0.66fr);
    gap: clamp(28px, 5vw, 76px);
    padding: clamp(24px, 3vw, 38px) 0;
    border-bottom: 1px solid rgba(20,35,43,0.16);
}

.gdm-about-principle h3 {
    margin: 0;
    color: var(--color-primary);
    font-size: clamp(1.4rem, 1.8vw, 1.85rem);
    font-weight: 500;
}

.gdm-about-principle p {
    max-width: 62ch;
    margin: 0;
    color: var(--color-text-muted);
}

/* ---------- METHOD / PEOPLE WITHOUT PLACEHOLDERS ---------- */

.gdm-about-method__inner {
    display: grid;
    grid-template-columns: minmax(0, 0.9fr) minmax(360px, 1.1fr);
    gap: clamp(46px, 7vw, 100px);
    align-items: center;
}

.gdm-about-method__visual {
    min-height: 420px;
    padding: clamp(34px, 5vw, 60px);
    display: flex;
    align-items: flex-end;
    background:
        linear-gradient(
            180deg,
            rgba(20,35,43,0.16),
            rgba(20,35,43,0.92)
        ),
        url("https://goccedimemoriaonoranzefunebri.it/wp-content/uploads/2026/09/sede-gocce-di-memoria-esposizione.webp")
        center / cover no-repeat;
}

.gdm-about-method__visual p {
    max-width: 31ch;
    margin: 0;
    color: rgba(255,255,255,0.86);
    font-family: var(--font-heading);
    font-size: clamp(1.6rem, 2.4vw, 2.5rem);
    line-height: 1.12;
}

/* ---------- COLLABORATIONS ---------- */

.gdm-about-collab__inner {
    display: grid;
    grid-template-columns: minmax(0, 0.8fr) minmax(360px, 1.2fr);
    gap: clamp(42px, 7vw, 98px);
    align-items: start;
}

.gdm-about-collab__items {
    border-top: 1px solid rgba(255,255,255,0.16);
}

.gdm-about-collab__item {
    padding: clamp(22px, 2.8vw, 34px) 0;
    border-bottom: 1px solid rgba(255,255,255,0.16);
}

.gdm-about-collab__item h3 {
    margin: 0 0 0.45rem;
    color: var(--color-on-dark);
    font-size: clamp(1.3rem, 1.7vw, 1.72rem);
    font-weight: 500;
}

.gdm-about-collab__item p {
    max-width: 58ch;
    margin: 0;
    color: var(--color-on-dark-muted);
}

/* ---------- TERRITORY / LOCAL PRESENCE ---------- */

.gdm-about-local__split {
    grid-template-columns: minmax(0, 1fr) minmax(360px, 1fr);
    gap: clamp(48px, 7vw, 100px);
    align-items: center;
}

.gdm-about-local__media {
    position: relative;
    min-height: 430px;
    overflow: hidden;
}

.gdm-about-local__media::after {
    position: absolute;
    z-index: 1;
    inset: 0;
    content: "";
    pointer-events: none;
    background:
        linear-gradient(
            90deg,
            var(--color-bg) 0%,
            rgba(255,253,248,0.26) 16%,
            transparent 34%,
            transparent 100%
        );
}

.gdm-about-local__media .wp-block-image,
.gdm-about-local__media img {
    width: 100%;
    height: 100%;
    margin: 0;
}

.gdm-about-local__media img {
    display: block;
    object-fit: cover;
    object-position: center;
}

/* ---------- ABOUT FINAL ---------- */

.gdm-about-final {
    position: relative;
    z-index: 2;
    color: var(--color-on-dark);
    background: var(--color-surface-dark);
}

.gdm-about-final__inner {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: clamp(34px, 6vw, 84px);
    align-items: center;
}

.gdm-about-final h2 {
    color: var(--color-on-dark);
}

.gdm-about-final p,
.gdm-about-final .seria-eyebrow {
    color: var(--color-on-dark-muted);
}

/* ---------- ABOUT RESPONSIVE ---------- */

@media (max-width: 900px) {
    .gdm-about-hero {
        min-height: auto;
        padding:
            calc(var(--gdm-header-height) + 44px)
            0
            76px;
    }

    .gdm-about-hero__inner,
    .gdm-about-origin__split,
    .gdm-about-principles__head,
    .gdm-about-method__inner,
    .gdm-about-collab__inner,
    .gdm-about-local__split,
    .gdm-about-final__inner {
        grid-template-columns: 1fr;
    }

    .gdm-about-origin__media {
        min-height: 430px;
    }

    .gdm-about-origin__media::after {
        background:
            linear-gradient(
                180deg,
                transparent 0%,
                transparent 72%,
                var(--color-bg-alt) 100%
            );
    }

    .gdm-about-local__media {
        min-height: 390px;
    }

    .gdm-about-local__media::after {
        background:
            linear-gradient(
                180deg,
                transparent 0%,
                transparent 72%,
                var(--color-bg) 100%
            );
    }
}

@media (max-width: 680px) {
    .gdm-about-title {
        font-size: clamp(2.75rem, 12vw, 4.15rem);
    }

    .gdm-about-origin__media,
    .gdm-about-local__media {
        min-height: 340px;
    }

    .gdm-about-principle {
        grid-template-columns: 1fr;
        gap: 0.65rem;
    }

    .gdm-about-method__visual {
        min-height: 330px;
        padding: 26px 22px;
    }
}


/* ---------- CHI SIAMO — FONDATORI ---------- */

.gdm-about-founders-note {
    margin-top: clamp(26px, 4vw, 44px);
    padding-top: clamp(22px, 3vw, 34px);
    border-top: 1px solid rgba(255,255,255,0.16);
}

.gdm-about-founders-note p {
    max-width: 62ch;
    margin: 0;
    color: var(--color-on-dark-muted);
}

.gdm-about-founders-note strong {
    color: var(--color-on-dark);
    font-weight: 600;
}

/* ---------- CHI SIAMO — COMPANY STORY ---------- */

.gdm-about-story__inner {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(360px, 0.92fr);
    gap: clamp(44px, 6vw, 84px);
    align-items: center;
}

.gdm-about-story__facts {
    align-self: center;
    border-top: 1px solid rgba(255,255,255,0.16);
    border-bottom: 1px solid rgba(255,255,255,0.16);
}

.gdm-about-story__fact {
    display: grid;
    grid-template-columns: minmax(120px, 0.28fr) minmax(0, 0.72fr);
    gap: 24px;
    padding: clamp(22px, 2.8vw, 34px) 0;
    border-bottom: 1px solid rgba(255,255,255,0.16);
}

.gdm-about-story__fact strong {
    color: var(--color-accent);
    font-family: var(--font-heading);
    font-size: clamp(1.45rem, 2vw, 2rem);
    font-weight: 500;
}

.gdm-about-story__fact p {
    margin: 0;
    color: var(--color-on-dark-muted);
}

/* ---------- CHI SIAMO — PLACE / OFFICE ---------- */

.gdm-about-place__split {
    grid-template-columns: minmax(0, 0.9fr) minmax(380px, 1.1fr);
    gap: clamp(46px, 7vw, 100px);
    align-items: center;
}

.gdm-about-place__media {
    min-height: 430px;
}

@media (max-width: 900px) {
    .gdm-about-story__inner,
    .gdm-about-place__split {
        grid-template-columns: 1fr;
    }

    .gdm-about-hero__photo {
        min-height: 420px;
    }
}

@media (max-width: 680px) {
    .gdm-about-story__fact {
        grid-template-columns: 1fr;
        gap: 0.7rem;
    }

    .gdm-about-hero__photo {
        min-height: 330px;
    }
}



/* ---------- CHI SIAMO — COMPANY STORY BALANCE v0.3 ---------- */

.gdm-about-story__fact:last-of-type {
    border-bottom: 0;
}

.gdm-about-story__founders {
    padding: clamp(24px, 3vw, 34px) 0;
    border-top: 1px solid rgba(255,255,255,0.16);
}

.gdm-about-story__founders p {
    max-width: 46ch;
    margin: 0;
    color: var(--color-on-dark-muted);
    line-height: 1.62;
}

.gdm-about-story__founders strong {
    color: var(--color-on-dark);
    font-weight: 600;
}

@media (max-width: 900px) {
    .gdm-about-story__inner {
        align-items: start;
    }
}


/* =========================================================
   GOCCE DI MEMORIA — COSA FARE IN CASO DI LUTTO v0.2
   Un solo percorso principale; il resto è editoriale / Q&A.
   ========================================================= */

:root {
    --gdm-guide-branch:
        url("https://goccedimemoriaonoranzefunebri.it/wp-content/uploads/2026/09/ramoscello.png");
}

/* ---------- HERO ---------- */

.gdm-guide-hero {
    position: relative;
    min-height: clamp(500px, 64svh, 700px);
    padding:
        calc(var(--gdm-header-height) + clamp(50px, 6vw, 84px))
        0
        clamp(68px, 8vw, 108px);
    overflow: hidden;
}

.gdm-guide-hero__inner {
    display: grid;
    grid-template-columns: minmax(0, 0.92fr) minmax(390px, 1.08fr);
    gap: clamp(46px, 7vw, 104px);
    align-items: center;
}

.gdm-guide-title {
    max-width: 10.8ch;
    margin: 0;
    color: var(--color-primary);
    font-family: var(--font-heading);
    font-size: clamp(3.2rem, 5.35vw, 6.15rem);
    font-weight: 500;
    line-height: 0.93;
    letter-spacing: -0.044em;
    text-wrap: balance;
}

.gdm-guide-hero__copy {
    max-width: 700px;
}

.gdm-guide-hero__visual {
    position: relative;
    display: grid;
    grid-template-columns: minmax(190px, 0.86fr) minmax(240px, 1.14fr);
    gap: clamp(18px, 3vw, 42px);
    align-items: center;
    min-height: clamp(410px, 42vw, 590px);
    overflow: visible;
}

.gdm-guide-hero__branch {
    position: relative;
    z-index: 0;
    top: auto;
    left: auto;
    align-self: center;
    justify-self: start;
    width: 100%;
    max-width: 430px;
    height: auto;
    margin: 0;
    opacity: 0.76;
    pointer-events: none;
}

.gdm-guide-hero__branch img {
    display: block;
    width: 100%;
    height: auto;
    margin: 0;
}

.gdm-guide-hero__message {
    position: relative;
    z-index: 2;
    right: auto;
    bottom: auto;
    align-self: center;
    width: auto;
    max-width: 340px;
    padding: clamp(22px, 3vw, 34px) 0 clamp(10px, 1vw, 18px)
        clamp(22px, 3vw, 34px);
    border-left: 1px solid rgba(208,163,61,0.46);
}

.gdm-guide-hero__message p {
    margin: 0;
}

.gdm-guide-hero__message strong {
    display: block;
    margin-bottom: 1rem;
    color: var(--color-primary);
    font-family: var(--font-heading);
    font-size: clamp(1.85rem, 2.8vw, 3rem);
    font-weight: 500;
    line-height: 1.05;
}

.gdm-guide-hero__message span {
    color: var(--color-text-muted);
    font-size: 0.86rem;
    letter-spacing: 0.14em;
    line-height: 1.7;
    text-transform: uppercase;
}

/* ---------- MAIN PROCESS — THE ONLY PRIMARY LIST ---------- */

.gdm-guide-process {
    position: relative;
    color: var(--color-on-dark);
    background: var(--color-surface-dark);
}

.gdm-guide-process__head {
    display: grid;
    grid-template-columns: minmax(0, 0.85fr) minmax(320px, 1.15fr);
    gap: clamp(40px, 6vw, 90px);
    align-items: end;
    margin-bottom: clamp(48px, 6vw, 74px);
}

.gdm-guide-process .seria-eyebrow,
.gdm-guide-process .seria-section-intro {
    color: var(--color-on-dark-muted);
}

.gdm-guide-process__track {
    position: relative;
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: clamp(28px, 3vw, 44px);
}

.gdm-guide-process__track::before {
    position: absolute;
    z-index: 0;
    top: 53px;
    left: 11%;
    right: 11%;
    height: 1px;
    content: "";
    background: rgba(208,163,61,0.52);
}

.gdm-guide-phase {
    position: relative;
    z-index: 1;
    text-align: center;
}

.gdm-guide-phase__icon {
    display: grid;
    width: 106px;
    height: 106px;
    margin: 0 auto clamp(22px, 2.5vw, 30px);
    place-items: center;
    overflow: hidden;
    border: 1px solid rgba(208,163,61,0.78);
    border-radius: 50%;
    background: var(--color-surface-dark);
}

.gdm-guide-phase__icon img {
    width: 72px;
    height: 72px;
    object-fit: contain;
    transform: scale(1.28);
    transform-origin: center;
}

.gdm-guide-phase__kicker {
    display: block;
    margin-bottom: 0.38rem;
    color: var(--color-accent);
    font-family: var(--font-body);
    font-size: 0.74rem;
    font-weight: 700;
    letter-spacing: 0.1em;
    text-transform: uppercase;
}

.gdm-guide-phase h3 {
    max-width: 13ch;
    margin: 0 auto 0.72rem;
    color: var(--color-on-dark);
    font-size: clamp(1.32rem, 1.7vw, 1.68rem);
    font-weight: 500;
    line-height: 1.13;
}

.gdm-guide-phase p {
    max-width: 27ch;
    margin: 0 auto;
    color: var(--color-on-dark-muted);
    font-size: 0.94rem;
    line-height: 1.58;
}

/* ---------- QUESTIONS — EDITORIAL, NOT CARDS ---------- */

.gdm-guide-questions {
    position: relative;
    background: var(--color-bg);
}

.gdm-guide-questions__inner {
    display: grid;
    grid-template-columns: minmax(340px, 0.82fr) minmax(0, 1.18fr);
    gap: clamp(48px, 7vw, 108px);
    align-items: start;
}

.gdm-guide-questions__visual {
    position: sticky;
    top: calc(var(--gdm-header-height) + 28px);
    align-self: start;
}

.gdm-guide-questions__cover {
    display: block;
    width: 100%;
    max-width: 520px;
    height: auto;
    margin: 0;
}

.gdm-guide-questions__caption {
    max-width: 36ch;
    margin: 1.2rem 0 0;
    color: var(--color-text-muted);
    font-family: var(--font-heading);
    font-size: clamp(1.25rem, 1.7vw, 1.62rem);
    font-style: italic;
    line-height: 1.35;
}

.gdm-guide-questions__list {
    border-top: 1px solid rgba(20,35,43,0.15);
}

.gdm-guide-question {
    padding: clamp(28px, 3.2vw, 42px) 0;
    border-bottom: 1px solid rgba(20,35,43,0.15);
}

.gdm-guide-question h3 {
    margin: 0 0 0.85rem;
    color: var(--color-primary);
    font-size: clamp(1.55rem, 2.2vw, 2.25rem);
    font-weight: 500;
    line-height: 1.08;
}

.gdm-guide-question p {
    max-width: 62ch;
    margin: 0;
    color: var(--color-text-muted);
    line-height: 1.66;
}

.gdm-guide-question__aside {
    display: flex;
    gap: 16px;
    align-items: flex-start;
    margin-top: 1.1rem;
    padding-top: 1rem;
    border-top: 1px solid rgba(20,35,43,0.08);
}

.gdm-guide-question__aside img {
    flex: 0 0 auto;
    width: 54px;
    height: 54px;
    object-fit: contain;
    transform: scale(1.16);
    transform-origin: center;
}

.gdm-guide-question__aside p {
    margin: 0;
    font-size: 0.92rem;
}

/* ---------- CALM / WHAT CAN WAIT ---------- */

.gdm-guide-calm {
    background: var(--color-bg-alt);
}

.gdm-guide-calm__inner {
    display: grid;
    grid-template-columns: 160px minmax(0, 1fr) minmax(300px, 0.72fr);
    gap: clamp(30px, 5vw, 76px);
    align-items: center;
}

.gdm-guide-calm__icon {
    width: 132px;
    height: 132px;
    margin: 0;
    object-fit: contain;
    transform: scale(1.24);
    transform-origin: center;
}

.gdm-guide-calm__copy {
    max-width: 760px;
}

.gdm-guide-calm__note {
    max-width: 35ch;
    margin: 0;
    padding-left: clamp(22px, 3vw, 34px);
    border-left: 1px solid rgba(208,163,61,0.54);
    color: var(--color-text-muted);
    font-family: var(--font-heading);
    font-size: clamp(1.35rem, 1.9vw, 1.85rem);
    line-height: 1.35;
}

/* ---------- CONTEXTS — NARRATIVE SHEET ---------- */

.gdm-guide-context {
    position: relative;
}

.gdm-guide-context__inner {
    display: grid;
    grid-template-columns: minmax(0, 0.78fr) minmax(360px, 1.22fr);
    gap: clamp(50px, 7vw, 108px);
    align-items: start;
}

.gdm-guide-context__intro {
    position: sticky;
    top: calc(var(--gdm-header-height) + 28px);
}

.gdm-guide-context__sheet {
    border-top: 1px solid rgba(20,35,43,0.15);
}

.gdm-guide-context__row {
    padding: clamp(26px, 3vw, 38px) 0;
    border-bottom: 1px solid rgba(20,35,43,0.15);
}

.gdm-guide-context__row h3 {
    margin: 0 0 0.55rem;
    color: var(--color-primary);
    font-size: clamp(1.45rem, 1.9vw, 1.9rem);
    font-weight: 500;
}

.gdm-guide-context__row p {
    max-width: 62ch;
    margin: 0;
    color: var(--color-text-muted);
}

.gdm-guide-context__transfer {
    display: grid;
    grid-template-columns: 92px minmax(0, 1fr);
    gap: 22px;
    align-items: start;
    margin-top: clamp(30px, 4vw, 46px);
    padding: clamp(24px, 3vw, 34px);
    background: var(--color-bg-alt);
}

.gdm-guide-context__transfer img {
    width: 78px;
    height: 78px;
    object-fit: contain;
    transform: scale(1.24);
    transform-origin: center;
}

.gdm-guide-context__transfer p {
    margin: 0;
    color: var(--color-text-muted);
}

/* ---------- FINAL CTA ---------- */

.gdm-guide-final {
    position: relative;
    overflow: hidden;
    color: var(--color-on-dark);
    background: var(--color-surface-dark);
}

.gdm-guide-final::after {
    position: absolute;
    z-index: 0;
    left: -36px;
    bottom: -90px;
    width: clamp(210px, 24vw, 360px);
    aspect-ratio: 3 / 4;
    content: "";
    pointer-events: none;
    background: var(--gdm-guide-branch) center / contain no-repeat;
    opacity: 0.34;
    transform: rotate(-11deg);
}

.gdm-guide-final__inner {
    position: relative;
    z-index: 2;
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: clamp(34px, 6vw, 84px);
    align-items: center;
}

.gdm-guide-final .seria-eyebrow,
.gdm-guide-final p {
    color: var(--color-on-dark-muted);
}

.gdm-guide-final h2 {
    color: var(--color-on-dark);
}

/* ---------- RESPONSIVE ---------- */

@media (max-width: 1000px) {
    .gdm-guide-process__track {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 46px 34px;
    }

    .gdm-guide-process__track::before {
        display: none;
    }
}

@media (max-width: 900px) {
    .gdm-guide-hero {
        min-height: auto;
        padding:
            calc(var(--gdm-header-height) + 42px)
            0
            72px;
    }

    .gdm-guide-hero__inner,
    .gdm-guide-process__head,
    .gdm-guide-questions__inner,
    .gdm-guide-calm__inner,
    .gdm-guide-context__inner,
    .gdm-guide-final__inner {
        grid-template-columns: 1fr;
    }

    .gdm-guide-hero__visual {
        grid-template-columns: minmax(170px, 0.8fr) minmax(220px, 1.2fr);
        min-height: 390px;
    }

    .gdm-guide-questions__visual,
    .gdm-guide-context__intro {
        position: static;
    }

    .gdm-guide-questions__cover {
        max-width: 430px;
    }

    .gdm-guide-calm__inner {
        gap: 24px;
    }

    .gdm-guide-calm__note {
        padding-top: 22px;
        padding-left: 0;
        border-top: 1px solid rgba(208,163,61,0.42);
        border-left: 0;
    }
}

@media (max-width: 680px) {
    .gdm-guide-title {
        font-size: clamp(2.7rem, 12vw, 4.1rem);
    }

    .gdm-guide-hero__visual {
        grid-template-columns: minmax(105px, 0.62fr) minmax(185px, 1.38fr);
        gap: 14px;
        min-height: 300px;
    }

    .gdm-guide-hero__branch {
        width: 112%;
        max-width: none;
        justify-self: end;
        opacity: 0.72;
    }

    .gdm-guide-hero__message {
        width: auto;
        max-width: none;
        padding-left: 18px;
    }

    .gdm-guide-hero__message strong {
        font-size: clamp(1.55rem, 7vw, 2.15rem);
    }

    .gdm-guide-hero__message span {
        font-size: 0.72rem;
        letter-spacing: 0.11em;
    }

    .gdm-guide-process__track {
        grid-template-columns: 1fr;
        gap: 0;
    }

    .gdm-guide-phase {
        padding: 26px 0;
        border-top: 1px solid rgba(255,255,255,0.14);
        text-align: left;
    }

    .gdm-guide-phase:first-child {
        border-top: 0;
    }

    .gdm-guide-phase__icon {
        width: 84px;
        height: 84px;
        margin: 0 0 18px;
    }

    .gdm-guide-phase__icon img {
        width: 58px;
        height: 58px;
        transform: scale(1.22);
    }

    .gdm-guide-phase h3,
    .gdm-guide-phase p {
        max-width: none;
        margin-left: 0;
        text-align: left;
    }

    .gdm-guide-calm__icon {
        width: 104px;
        height: 104px;
        transform: scale(1.18);
    }

    .gdm-guide-context__transfer {
        grid-template-columns: 70px minmax(0, 1fr);
        gap: 18px;
        padding: 22px;
    }

    .gdm-guide-context__transfer img {
        width: 62px;
        height: 62px;
        transform: scale(1.18);
    }
}



@media (max-width: 440px) {
    .gdm-guide-hero__visual {
        grid-template-columns: minmax(92px, 0.55fr) minmax(170px, 1.45fr);
        gap: 10px;
    }

    .gdm-guide-hero__branch {
        width: 118%;
    }

    .gdm-guide-hero__message {
        padding-left: 14px;
    }
}


/* =========================================================
   GOCCE DI MEMORIA — CHI SIAMO v0.5
   Hero con foto reale di Natalia.
   ========================================================= */

.gdm-about-hero__photo--real {
    position: relative;
    min-height: clamp(430px, 48vw, 610px);
    overflow: hidden;
    padding: 0;
    border: 0;
    background: transparent;
}

.gdm-about-hero__photo--real::before {
    display: none;
}

.gdm-about-hero__photo--real::after {
    position: absolute;
    z-index: 2;
    inset: 0;
    content: "";
    pointer-events: none;
    background:
        linear-gradient(
            90deg,
            var(--color-bg) 0%,
            rgba(255,253,248,0.86) 6%,
            rgba(255,253,248,0.34) 16%,
            transparent 30%
        ),
        linear-gradient(
            180deg,
            rgba(255,253,248,0.16) 0%,
            transparent 14%,
            transparent 86%,
            rgba(255,253,248,0.18) 100%
        );
}

.gdm-about-hero__photo--real .wp-block-image {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    margin: 0;
}

.gdm-about-hero__photo--real img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: 50% 34%;
}

@media (max-width: 900px) {
    .gdm-about-hero__photo--real {
        min-height: 420px;
    }

    .gdm-about-hero__photo--real::after {
        background:
            linear-gradient(
                180deg,
                var(--color-bg) 0%,
                rgba(255,253,248,0.22) 10%,
                transparent 24%,
                transparent 82%,
                rgba(255,253,248,0.18) 100%
            );
    }
}

@media (max-width: 680px) {
    .gdm-about-hero__photo--real {
        min-height: 350px;
    }

    .gdm-about-hero__photo--real img {
        object-position: 50% 30%;
    }
}


/* =========================================================
   CONTATTI v0.8 — FOTO PARCHEGGIO
   Micro-patch: immagine più presente, bordi sfumati, lightbox WP.
   ========================================================= */

.gdm-contact-parking__media {
    position: relative;
    min-height: 390px;
    overflow: hidden;
    align-self: stretch;
    cursor: zoom-in;
}

.gdm-contact-parking__media::after {
    position: absolute;
    z-index: 2;
    inset: 0;
    content: "";
    pointer-events: none;
    background:
        linear-gradient(
            90deg,
            var(--color-surface-dark) 0%,
            rgba(20,35,43,0.46) 8%,
            transparent 22%,
            transparent 78%,
            rgba(20,35,43,0.34) 92%,
            var(--color-surface-dark) 100%
        ),
        linear-gradient(
            180deg,
            rgba(20,35,43,0.60) 0%,
            transparent 13%,
            transparent 87%,
            rgba(20,35,43,0.60) 100%
        );
}

.gdm-contact-parking__media .wp-block-image,
.gdm-contact-parking__media img {
    width: 100%;
    height: 100%;
    margin: 0;
}

.gdm-contact-parking__media .wp-block-image {
    position: absolute;
    inset: 0;
}

.gdm-contact-parking__media img {
    display: block;
    object-fit: cover;
    object-position: center;
    transform: scale(1.015);
}

@media (hover: hover) and (pointer: fine) {
    .gdm-contact-parking__media img {
        transition: transform 280ms ease;
    }

    .gdm-contact-parking__media:hover img {
        transform: scale(1.035);
    }
}

@media (max-width: 900px) {
    .gdm-contact-parking__inner {
        grid-template-columns: 1fr;
        gap: 34px;
    }

    .gdm-contact-parking__media {
        min-height: clamp(300px, 56vw, 430px);
    }
}

@media (max-width: 680px) {
    .gdm-contact-parking__media {
        min-height: 300px;
    }

    .gdm-contact-parking__media::after {
        background:
            linear-gradient(
                180deg,
                var(--color-surface-dark) 0%,
                rgba(20,35,43,0.28) 9%,
                transparent 20%,
                transparent 82%,
                rgba(20,35,43,0.48) 100%
            );
    }
}

@media (prefers-reduced-motion: reduce) {
    .gdm-contact-parking__media img,
    .gdm-contact-parking__media:hover img {
        transition: none;
        transform: none;
    }
}



/* =========================================================
   GOCCE DI MEMORIA — SERVIZI v0.11.7 — RIPRISTINO
   Layer specifico della pagina Servizi.
   Riusa SERIA Core + componenti globali GDM.
   ========================================================= */


/* 1. HERO SERVIZI
   Il layout a colonne usa .seria-split / .seria-split--60-40. */

.gdm-services-page {
    background: var(--color-bg);
}

.gdm-services-hero {
    position: relative;
    overflow: hidden;
    background: var(--color-bg);
}

.gdm-services-hero::after {
    position: absolute;
    top: clamp(3rem, 7vw, 6rem);
    right: clamp(-8rem, -4vw, -2rem);
    width: clamp(16rem, 30vw, 30rem);
    aspect-ratio: 1;
    content: "";
    pointer-events: none;
    border: 1px solid rgba(208, 163, 61, 0.24);
    border-radius: 50%;
}

.gdm-services-hero__layout {
    position: relative;
    z-index: 1;
    align-items: end;
}

.gdm-services-hero__aside {
    padding-left: var(--space-lg);
    border-left: 1px solid rgba(208, 163, 61, 0.55);
}

.gdm-services-hero__number {
    margin: 0;
    color: var(--color-accent);
    font-family: var(--font-heading);
    font-size: clamp(2.5rem, 4vw, 4rem);
    line-height: 1;
}

.gdm-services-hero__aside-title {
    margin: 0;
    color: var(--color-primary);
    font-size: clamp(1.5rem, 2.2vw, 2rem);
}


/* Hero: gerarchia tipografica coerente con Chi siamo / Guida. */
.gdm-services-hero__copy {
    max-width: 670px;
}

.gdm-services-hero .seria-eyebrow {
    letter-spacing: 0.18em;
}

.gdm-services-title {
    max-width: 11.5ch;
    margin: 0;
    color: var(--color-primary);
    font-family: var(--font-heading);
    font-size: clamp(3rem, 4.8vw, 5.35rem);
    font-weight: 500;
    line-height: 0.95;
    letter-spacing: -0.038em;
    text-wrap: balance;
}

.gdm-services-hero__lead {
    max-width: 58ch;
}


/* 2. INDICE EDITORIALE */

.gdm-services-route {
    border-top: 1px solid var(--color-border);
}

.gdm-services-route p {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: var(--space-md);
    align-items: center;
    margin: 0;
    padding: 0.9rem 0;
    border-bottom: 1px solid var(--color-border);
}

.gdm-services-route a {
    color: var(--color-primary);
    font-family: var(--font-heading);
    font-size: clamp(1.1rem, 1.6vw, 1.3rem);
    text-decoration: none;
}

.gdm-services-route a:hover,
.gdm-services-route a:focus-visible {
    text-decoration: underline;
    text-underline-offset: 0.22em;
}

.gdm-services-route span {
    color: var(--color-accent);
    font-size: var(--text-sm);
    font-weight: 600;
}


/* 3. ALTERNANZA DELLE SUPERFICI
   Il layout dei blocchi usa esclusivamente .seria-split. */

.gdm-services-page .gdm-section-alt {
    background: var(--color-bg-alt);
}

.gdm-services-page .gdm-service-row {
    align-items: center;
}

.gdm-services-page .gdm-service-visual {
    min-width: 0;
}


/* 4. FOTO EDITORIALI DEI SERVIZI
   Immagini quadrate senza cornice: il lato rivolto verso il testo
   sfuma nel colore reale della sezione, come nelle fotografie Home. */

.gdm-service-photo {
    --gdm-service-photo-fade: var(--color-bg);

    position: relative;
    width: min(100%, 34rem);
    margin: 0;
    justify-self: center;
    overflow: hidden;
    background: var(--gdm-service-photo-fade);
}

.gdm-section-alt .gdm-service-photo {
    --gdm-service-photo-fade: var(--color-bg-alt);
}

.gdm-service-photo::after {
    position: absolute;
    z-index: 1;
    inset: 0;
    content: "";
    pointer-events: none;

    /* Foto a destra del testo: sfuma il bordo sinistro. */
    background:
        linear-gradient(
            90deg,
            var(--gdm-service-photo-fade) 0%,
            color-mix(in srgb, var(--gdm-service-photo-fade) 78%, transparent) 8%,
            color-mix(in srgb, var(--gdm-service-photo-fade) 34%, transparent) 18%,
            transparent 32%
        );
}

/* Nelle righe reverse la foto è a sinistra: sfuma il bordo destro. */
.seria-split--reverse .gdm-service-photo::after {
    background:
        linear-gradient(
            270deg,
            var(--gdm-service-photo-fade) 0%,
            color-mix(in srgb, var(--gdm-service-photo-fade) 78%, transparent) 8%,
            color-mix(in srgb, var(--gdm-service-photo-fade) 34%, transparent) 18%,
            transparent 32%
        );
}

.gdm-service-photo img {
    display: block;
    width: 100%;
    aspect-ratio: 1;
    object-fit: cover;
}

/* 5. FIORI
   È l'unica vera sezione fotografica della pagina. */

.gdm-flowers-section {
    color: var(--color-on-dark);
    background: var(--color-surface-dark);
}

.gdm-flowers-section h2,
.gdm-flowers-section .seria-section-intro {
    color: var(--color-on-dark);
}

.gdm-flowers-section .seria-section-intro,
.gdm-flowers-note {
    color: var(--color-on-dark-muted);
}

.gdm-flowers-section .seria-eyebrow {
    color: var(--color-accent);
}

.gdm-flowers-heading {
    align-items: end;
    margin-bottom: var(--space-xl);
}

.gdm-flowers-note {
    margin: 0;
    padding-left: var(--space-lg);
    border-left: 1px solid rgba(208, 163, 61, 0.55);
    line-height: 1.8;
}

.gdm-flowers-gallery {
    display: grid;
    grid-template-columns: 1.35fr 0.65fr;
    grid-template-rows: repeat(3, minmax(8rem, 1fr));
    gap: var(--space-sm);
}

.gdm-flowers-gallery figure,
.gdm-flower-media-pending {
    margin: 0;
    overflow: hidden;
    border-radius: var(--radius-md);
}

.gdm-flowers-gallery figure:first-child,
.gdm-flower-card--large {
    grid-row: 1 / 4;
    min-height: 30rem;
}

.gdm-flowers-gallery img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.gdm-flower-media-pending {
    display: flex;
    min-height: 9rem;
    padding: var(--space-md);
    align-items: center;
    justify-content: center;
    text-align: center;
    color: var(--color-on-dark-muted);
    background: rgba(255, 255, 255, 0.055);
    border: 1px dashed rgba(255, 255, 255, 0.18);
}


.gdm-flower-card__link {
    display: block;
    width: 100%;
    height: 100%;
    color: inherit;
    text-decoration: none;
    cursor: zoom-in;
}

.gdm-flower-card__link:focus-visible {
    outline: 3px solid var(--color-accent);
    outline-offset: -3px;
}


/* 6. CASA FUNERARIA PARTNER
   Presenza riconoscibile, ma volutamente secondaria. */

.gdm-services-page .gdm-section-partner {
    background: var(--color-bg-alt);
}

.gdm-services-page .gdm-partner-note {
    margin: 0;
    padding-left: var(--space-lg);
    color: var(--color-text-muted);
    border-left: 1px solid rgba(208, 163, 61, 0.55);
    font-size: var(--text-sm);
}


/* 7. SUPPORTO DOPO IL FUNERALE
   Sezione distintiva, volutamente più forte. */

.gdm-aftercare {
    color: var(--color-on-dark);
    background: var(--color-surface-dark);
}

.gdm-aftercare h2,
.gdm-aftercare .seria-lead {
    color: var(--color-on-dark);
}

.gdm-aftercare p {
    color: var(--color-on-dark-muted);
}

.gdm-aftercare .seria-eyebrow {
    color: var(--color-accent);
}

.gdm-aftercare__layout {
    align-items: start;
}

.gdm-aftercare__areas {
    border-top: 1px solid rgba(255, 255, 255, 0.16);
}

.gdm-aftercare__areas p {
    position: relative;
    margin: 0;
    padding: 1.25rem 0 1.25rem 3rem;
    border-bottom: 1px solid rgba(255, 255, 255, 0.16);
}

.gdm-aftercare__areas span {
    position: absolute;
    top: 1.35rem;
    left: 0;
    color: var(--color-secondary);
    font-size: var(--text-sm);
    font-weight: 700;
}

.gdm-aftercare__areas strong {
    color: var(--color-on-dark);
    font-family: var(--font-heading);
    font-size: clamp(1.15rem, 1.6vw, 1.45rem);
    font-weight: 600;
}


/* 8. ASSET GRAFICI GIÀ DISPONIBILI */

.gdm-services-hero__branch {
    position: absolute;
    z-index: 0;
    right: clamp(-2rem, 1vw, 1rem);
    bottom: clamp(-2rem, -1vw, 0rem);
    width: min(34vw, 30rem);
    margin: 0;
    opacity: 0.58;
    pointer-events: none;
}

.gdm-services-hero__branch img {
    display: block;
    width: 100%;
    height: auto;
    object-fit: contain;
}

.gdm-flowers-side {
    align-items: flex-start;
}

.gdm-flowers-icon {
    width: min(15rem, 70%);
    margin: 0 0 var(--space-sm);
}

.gdm-flowers-icon img {
    display: block;
    width: 100%;
    height: auto;
    object-fit: contain;
}

.gdm-flower-card {
    margin: 0;
}


/* Solo le eccezioni responsive che i componenti globali non possono
   conoscere perché dipendono dalla composizione specifica Servizi. */

@media (max-width: 900px) {

    .gdm-service-photo {
        width: min(100%, 30rem);
    }

    .gdm-services-hero__branch {
        right: -5rem;
        bottom: -1rem;
        width: min(48vw, 22rem);
        opacity: 0.28;
    }

    .gdm-services-hero__aside {
        padding-top: var(--space-lg);
        padding-left: 0;
        border-top: 1px solid rgba(208, 163, 61, 0.4);
        border-left: 0;
    }

    .gdm-flowers-gallery {
        grid-template-columns: 1fr 1fr;
        grid-template-rows: auto;
    }

    .gdm-flowers-gallery figure:first-child,
    .gdm-flower-card--large {
        grid-column: 1 / -1;
        grid-row: auto;
        min-height: 22rem;
    }
}

@media (max-width: 520px) {
    .gdm-services-hero__branch {
        display: none;
    }

    .gdm-flowers-gallery {
        grid-template-columns: 1fr;
    }

    .gdm-flowers-gallery figure:first-child,
    .gdm-flower-card--large {
        grid-column: auto;
        min-height: 20rem;
    }

    .gdm-services-page .gdm-partner-note {
        padding-top: var(--space-md);
        padding-left: 0;
        border-top: 1px solid rgba(208, 163, 61, 0.55);
        border-left: 0;
    }
}

/* 9. GALLERY SERVIZI PERSONALIZZATI
   Visual ricchi di testo: 2 colonne desktop, 1 su mobile. */

.gdm-personalized-gallery {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--space-md);
    align-items: start;
}

.gdm-personalized-gallery__item {
    margin: 0;
    overflow: hidden;
    background: var(--color-bg);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-md);
}

.gdm-personalized-gallery__item--wide {
    grid-column: 1 / -1;
}

.gdm-personalized-gallery__item img {
    display: block;
    width: 100%;
    height: auto;
}


.gdm-personalized-gallery__link {
    display: block;
    color: inherit;
    text-decoration: none;
    cursor: zoom-in;
}

.gdm-personalized-gallery__link img {
    transition:
        transform 0.28s ease,
        opacity 0.28s ease;
}

.gdm-personalized-gallery__link:hover img {
    transform: scale(1.012);
    opacity: 0.96;
}

.gdm-personalized-gallery__link:focus-visible {
    outline: 3px solid var(--color-primary);
    outline-offset: -3px;
}


@media (max-width: 760px) {
    .gdm-personalized-gallery {
        grid-template-columns: 1fr;
    }

    .gdm-personalized-gallery__item--wide {
        grid-column: auto;
    }
}


@media (prefers-reduced-motion: reduce) {
    .gdm-personalized-gallery__link img {
        transition: none;
    }

    .gdm-personalized-gallery__link:hover img {
        transform: none;
    }
}

/* 10. LIGHTBOX INFOGRAFICHE
   Dialog nativo: chiusura con pulsante, Esc o click sul backdrop.
   target="_blank" resta nel markup come fallback senza JavaScript. */

.gdm-infographic-lightbox {
    width: min(94vw, 1440px);
    max-width: 1440px;
    height: auto;
    max-height: 94dvh;
    margin: auto;
    padding: 0;
    overflow: visible;
    color: var(--color-on-dark);
    background: transparent;
    border: 0;
}

.gdm-infographic-lightbox::backdrop {
    background: rgba(11, 23, 29, 0.88);
    backdrop-filter: blur(4px);
}

.gdm-infographic-lightbox__stage {
    display: grid;
    width: 100%;
    max-height: 90dvh;
    place-items: center;
    overflow: auto;
    padding: clamp(3.2rem, 6vw, 5rem) clamp(0.5rem, 2vw, 1.5rem) clamp(1rem, 2vw, 1.5rem);
}

.gdm-infographic-lightbox__image {
    display: block;
    width: auto;
    max-width: 100%;
    height: auto;
    max-height: calc(90dvh - 5rem);
    margin: auto;
    object-fit: contain;
    background: var(--color-bg);
    box-shadow: 0 24px 70px rgba(0, 0, 0, 0.36);
}

.gdm-infographic-lightbox__close {
    position: fixed;
    z-index: 2;
    top: max(16px, env(safe-area-inset-top));
    right: max(16px, env(safe-area-inset-right));
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
    min-height: 44px;
    padding: 0.55rem 0.9rem;
    color: var(--color-primary);
    background: var(--color-bg);
    border: 1px solid rgba(255, 255, 255, 0.35);
    border-radius: var(--radius-pill);
    font: 700 0.82rem/1 var(--font-body);
    cursor: pointer;
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.22);
}

.gdm-infographic-lightbox__close span[aria-hidden="true"] {
    font-size: 1.35rem;
    font-weight: 400;
    line-height: 0.8;
}

.gdm-infographic-lightbox__close:hover,
.gdm-infographic-lightbox__close:focus-visible {
    background: var(--color-accent);
    border-color: var(--color-accent);
}

@media (max-width: 680px) {
    .gdm-infographic-lightbox {
        width: 100vw;
        max-width: 100vw;
        max-height: 100dvh;
    }

    .gdm-infographic-lightbox__stage {
        max-height: 100dvh;
        padding:
            calc(4.25rem + env(safe-area-inset-top))
            0.6rem
            calc(0.75rem + env(safe-area-inset-bottom));
    }

    .gdm-infographic-lightbox__image {
        max-height: calc(100dvh - 5.5rem - env(safe-area-inset-top) - env(safe-area-inset-bottom));
    }
}

@media (prefers-reduced-motion: reduce) {
    .gdm-infographic-lightbox::backdrop {
        backdrop-filter: none;
    }
}


/* Consente di chiudere facilmente anche cliccando nell'area vuota del lightbox. */
.gdm-infographic-lightbox__stage {
    cursor: zoom-out;
}

.gdm-infographic-lightbox__image {
    cursor: default;
}


/* =========================================================
   GOCCE DI MEMORIA — HOME / RECENSIONI v0.2
   Fascia petrolio, compatta e discreta.
   ========================================================= */

.gdm-reviews {
    position: relative;
    z-index: 2;
    padding-block: clamp(50px, 5.5vw, 78px);
    color: var(--color-on-dark);
    background: var(--color-surface-dark);
    overflow: hidden;
    isolation: isolate;
}

/*
 * Una sola goccia chiara nella fascia recensioni.
 * La fascia petrolio copre il watermark fixed della Home;
 * questo pseudo-elemento ricrea il segno locale come nelle altre bande scure.
 */
.gdm-reviews::before {
    position: absolute;
    z-index: 0;
    inset: 0;
    content: "";
    pointer-events: none;

    background-image:
        url("https://goccedimemoriaonoranzefunebri.it/wp-content/uploads/2026/09/gdm-droplet-transparent.png");
    background-repeat: no-repeat;
    background-attachment: fixed;
    background-position:
        calc(100% + clamp(90px, 8vw, 180px))
        50%;
    background-size:
        clamp(360px, 34vw, 620px)
        auto;

    opacity: 0.045;
    filter: brightness(0) invert(1);
}

.gdm-reviews > .seria-container {
    position: relative;
    z-index: 2;
}

.gdm-reviews__head {
    display: grid;
    grid-template-columns: minmax(0, 0.9fr) minmax(300px, 0.7fr);
    gap: clamp(32px, 5vw, 72px);
    align-items: end;
    margin-bottom: clamp(30px, 3.5vw, 46px);
}

.gdm-reviews .seria-eyebrow {
    color: var(--color-accent);
}

.gdm-reviews .gdm-heading-xl {
    max-width: 16ch;
    color: var(--color-on-dark);
    font-size: clamp(2rem, 2.8vw, 3.15rem);
    line-height: 1.02;
    letter-spacing: -0.024em;
}

.gdm-reviews__head .seria-section-intro {
    max-width: 44ch;
    color: var(--color-on-dark-muted);
    font-size: clamp(0.96rem, 1.1vw, 1.06rem);
}

.gdm-reviews__grid {
    display: grid;
    grid-template-columns: minmax(0, 1.02fr) minmax(0, 0.98fr);
    grid-template-areas:
        "featured second"
        "featured third";
    column-gap: clamp(34px, 5vw, 72px);
    border-top: 1px solid rgba(255,255,255,0.14);
    border-bottom: 1px solid rgba(255,255,255,0.14);
}

.gdm-review {
    display: flex;
    flex-direction: column;
    gap: 14px;
    min-width: 0;
    padding: clamp(22px, 2.7vw, 34px) 0;
}

.gdm-review--featured {
    grid-area: featured;
    padding-right: clamp(24px, 3.5vw, 44px);
    border-right: 1px solid rgba(255,255,255,0.14);
}

.gdm-review:nth-child(2) {
    grid-area: second;
    border-bottom: 1px solid rgba(255,255,255,0.14);
}

.gdm-review:nth-child(3) {
    grid-area: third;
}

.gdm-review-stars {
    margin: 0;
    color: var(--color-accent);
    font-family: var(--font-body);
    font-size: 0.74rem;
    line-height: 1;
    letter-spacing: 0.10em;
}

.gdm-review-quote {
    margin: 0;
    padding: 0;
    border: 0;
}

.gdm-review-quote p {
    max-width: 44ch;
    margin: 0;
    color: rgba(255,255,255,0.86);
    font-family: var(--font-heading);
    font-size: clamp(1.08rem, 1.45vw, 1.38rem);
    font-weight: 500;
    line-height: 1.38;
}

.gdm-review--featured .gdm-review-quote p {
    max-width: 30ch;
    font-size: clamp(1.32rem, 1.85vw, 1.75rem);
    line-height: 1.3;
    letter-spacing: -0.01em;
}

.gdm-review-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 0.28rem 0.55rem;
    align-items: baseline;
    margin: auto 0 0;
    color: rgba(255,255,255,0.56);
    font-size: 0.76rem;
    line-height: 1.4;
}

.gdm-review-meta strong {
    color: rgba(255,255,255,0.80);
    font-weight: 600;
}

.gdm-review-meta strong + span::before {
    content: "·";
    margin-right: 0.55rem;
    color: var(--color-accent);
}

.gdm-reviews__source {
    margin: clamp(18px, 2vw, 24px) 0 0;
    color: rgba(255,255,255,0.46);
    font-size: 0.72rem;
    letter-spacing: 0.035em;
}

@media (max-width: 900px) {
    .gdm-reviews__head,
    .gdm-reviews__grid {
        grid-template-columns: 1fr;
    }

    .gdm-reviews__grid {
        grid-template-areas:
            "featured"
            "second"
            "third";
    }

    .gdm-review--featured {
        padding-right: 0;
        border-right: 0;
        border-bottom: 1px solid rgba(255,255,255,0.14);
    }
}

@media (max-width: 680px) {
    .gdm-reviews {
        padding-block: 48px;
    }

    .gdm-reviews::before {
        background-position: calc(100% + 26vw) 50%;
        background-size: min(84vw, 390px) auto;
        opacity: 0.09;
    }

    .gdm-reviews .gdm-heading-xl {
        font-size: clamp(1.9rem, 8vw, 2.5rem);
    }

    .gdm-review {
        padding: 24px 0;
    }

    .gdm-review-quote p,
    .gdm-review--featured .gdm-review-quote p {
        max-width: none;
        font-size: clamp(1.15rem, 5.3vw, 1.42rem);
        line-height: 1.36;
    }
}



/* =========================================================
   GOCCE DI MEMORIA — CHI SIAMO / RECENSIONE v0.1
   Citazione singola, editoriale e discreta.
   ========================================================= */

.gdm-about-review {
    position: relative;
    z-index: 2;
    background: var(--color-bg-alt);
    border-top: 1px solid rgba(208,163,61,0.18);
    border-bottom: 1px solid rgba(208,163,61,0.18);
}

.gdm-about-review__inner {
    display: grid;
    grid-template-columns: minmax(180px, 0.32fr) minmax(0, 1.68fr);
    gap: clamp(34px, 6vw, 86px);
    align-items: center;
}

.gdm-about-review__meta {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 0.72rem;
}

.gdm-about-review__meta .seria-eyebrow {
    color: var(--color-primary);
}

.gdm-about-review__stars {
    margin: 0;
    color: var(--color-accent);
    font-family: var(--font-body);
    font-size: 0.78rem;
    line-height: 1;
    letter-spacing: 0.11em;
}

.gdm-about-review__author {
    display: flex;
    flex-direction: column;
    gap: 0.12rem;
    margin: 0;
    color: var(--color-text-muted);
    font-size: 0.78rem;
    line-height: 1.4;
}

.gdm-about-review__author strong {
    color: var(--color-primary);
    font-weight: 600;
}

.gdm-about-review__quote {
    position: relative;
    margin: 0;
    padding: 0 0 0 clamp(24px, 3vw, 38px);
    border: 0;
    border-left: 1px solid rgba(208,163,61,0.55);
}

.gdm-about-review__quote p {
    max-width: 44ch;
    margin: 0;
    color: var(--color-primary);
    font-family: var(--font-heading);
    font-size: clamp(1.45rem, 2.15vw, 2.15rem);
    font-weight: 500;
    line-height: 1.32;
    letter-spacing: -0.012em;
}

@media (max-width: 760px) {
    .gdm-about-review__inner {
        grid-template-columns: 1fr;
        gap: 24px;
    }

    .gdm-about-review__meta {
        gap: 0.58rem;
    }

    .gdm-about-review__quote {
        padding-left: 22px;
    }
}

@media (max-width: 520px) {
    .gdm-about-review__quote p {
        font-size: clamp(1.32rem, 6.6vw, 1.72rem);
        line-height: 1.34;
    }
}


/* =========================================================
   SERVIZI — OFFSET ANCORE v0.2
   Gli anchor sono sugli H2 ma ogni sezione ha un eyebrow sopra.
   L'offset lascia visibili entrambi e compensa l'header fixed.
   ========================================================= */

.gdm-services-page h2[id] {
    scroll-margin-top: calc(var(--gdm-header-height) + 92px);
}

/* In backend / anteprima WordPress la admin bar aggiunge altezza reale. */
body.admin-bar .gdm-services-page h2[id] {
    scroll-margin-top: calc(var(--gdm-header-height) + 124px);
}

@media (max-width: 680px) {
    .gdm-services-page h2[id] {
        scroll-margin-top: calc(var(--gdm-header-height) + 112px);
    }

    body.admin-bar .gdm-services-page h2[id] {
        scroll-margin-top: calc(var(--gdm-header-height) + 158px);
    }
}


/* =========================================================
   FOOTER — CREDIT SER.I.A. v0.1
   ========================================================= */

.gdm-footer-credit {
    white-space: nowrap;
}

.gdm-footer-credit a {
    color: rgba(255, 255, 255, 0.72);
    text-decoration: none;
    border-bottom: 1px solid rgba(208, 163, 61, 0.32);
    transition:
        color 0.2s ease,
        border-color 0.2s ease;
}

.gdm-footer-credit a:hover,
.gdm-footer-credit a:focus-visible {
    color: var(--color-accent);
    border-bottom-color: var(--color-accent);
}

@media (max-width: 640px) {
    .gdm-footer-credit {
        display: block;
        margin-top: 4px;
        white-space: normal;
    }

    .gdm-footer-credit > span[aria-hidden="true"] {
        display: none;
    }
}

