/**
 * custom.css — YOOtheme Child Theme
 * Mobile-first: base = mobile, @media (min-width:…) = larger screens.
 * Never use max-width media queries.
 */

/* ============================================================
   DESIGN TOKENS
   ============================================================ */

:root {
    --color-light:       #FCFAF6;
    --color-cream:       #F9F0E4;
    --color-dark-maroon: #3E190F;
    --color-orange:      #EA954D;
    --color-sky-blue:    #AAD3F1;
    --color-dark-blue:   #4269AD;
    --font-brand:        'Quicksand', sans-serif;
}

/* ============================================================
   DECORATIVE
   ============================================================ */

[data-rotate] {
    pointer-events: none;
}

/* ============================================================
   REDUCED MOTION
   ============================================================ */

@media (prefers-reduced-motion: reduce) {
    [data-reveal] {
        opacity: 1 !important;
        transform: none !important;
    }
}

/* ============================================================
   HEADER
   ============================================================ */

.tm-header {
    display: none !important;
}

.tm-header-mobile {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    z-index: 1000;
    width: 100%;
}

.uk-logo {
    width: 150px;
}

.uk-logo :where(svg) {
    width: 100%;
    height: auto;
    object-fit: none;
}

.uk-icon.uk-navbar-toggle-icon {
    position: relative;
    right: 20px;
    bottom: 20px;

    svg {
        transform: scale(2.8, 2);
    }

    svg rect {
        rx: 1px;
        height: 3px;
    }
}

body:has(main > div.burger-multicolor) .uk-navbar-toggle-icon svg .line-1 { fill: var(--color-dark-blue); }
body:has(main > div.burger-multicolor) .uk-navbar-toggle-icon svg .line-2 { fill: var(--color-sky-blue); }
body:has(main > div.burger-multicolor) .uk-navbar-toggle-icon svg .line-3 { fill: var(--color-orange); }
body:has(main > div.burger-multicolor) .uk-navbar-toggle-icon svg .line-4 { fill: var(--color-orange); }

body:has(main > div.burger-dark) .uk-navbar-toggle-icon svg .line-1 { fill: var(--color-dark-maroon); }
body:has(main > div.burger-dark) .uk-navbar-toggle-icon svg .line-2 { fill: var(--color-dark-maroon); }
body:has(main > div.burger-dark) .uk-navbar-toggle-icon svg .line-3 { fill: var(--color-dark-maroon); }
body:has(main > div.burger-dark) .uk-navbar-toggle-icon svg .line-4 { fill: var(--color-dark-maroon); }

body:has(main > div.burger-light) .uk-navbar-toggle-icon svg .line-1 { fill: var(--color-light); }
body:has(main > div.burger-light) .uk-navbar-toggle-icon svg .line-2 { fill: var(--color-light); }
body:has(main > div.burger-light) .uk-navbar-toggle-icon svg .line-3 { fill: var(--color-light); }
body:has(main > div.burger-light) .uk-navbar-toggle-icon svg .line-4 { fill: var(--color-light); }


@media (min-width: 960px) {
    .tm-header-mobile {
        display: flex !important;
    }

    .uk-logo {
        width: 250px;
    }

    .uk-navbar-container {
        width: 100%;
        display: flow-root;
        box-sizing: content-box;
        margin-left: auto;
        margin-right: auto;
        padding-left: 40px;
        padding-right: 40px;
    }

    .uk-navbar-container .uk-container {
        padding-left: 0 !important;
        padding-right: 0 !important;
    }
}

/* ============================================================
   HERO — mobile first
   ============================================================ */

.theme-hero {
    display: flex;
    overflow: hidden;
    position: relative;
    min-height: 100svh;
    align-items: flex-end;
    padding-bottom: 40px;
    width: 100vw;
    margin-left: calc(50% - 50vw);
}

.theme-hero__bg {
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    position: absolute;
    overflow: hidden;
}

.theme-hero__bg img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    display: block;
}

.theme-hero__sticks {
    right: 0;
    bottom: 80px;
    gap: 15px;
    width: 100%;
    display: flex;
    position: absolute;
    flex-direction: column;
    align-items: flex-end;
}

.theme-hero__dec {
    position: absolute;
    pointer-events: none;
    z-index: 2;
}

.theme-hero__dec svg {
    width: 100%;
    height: 100%;
    display: block;
}

.theme-hero__dec--blue {
    width: 220px;
    height: 220px;
    top: -60px;
    right: -60px;
}

@media (min-width: 960px) {
    .theme-hero__dec--blue {
        width: 340px;
        height: 340px;
        top: -80px;
        right: -80px;
    }
}

.theme-hero__pill {
    overflow: hidden;
    border-radius: 80px 0 0 80px;
}

.theme-hero__pill-inner {
    gap: 10px;
    display: flex;
    min-width: 220px;
    padding: 20px 32px;
    align-items: center;
    text-decoration: none !important;
    font-family: var(--font-brand);
    font-size: clamp(22px, 5vw, 36px);
    font-weight: 700;
    line-height: 1.25;
    white-space: nowrap;
    transition: padding-right 0.35s cubic-bezier(0.4, 0, 0.2, 1);
}

.theme-hero__pill--dark   .theme-hero__pill-inner { color: var(--color-cream);       background: var(--color-dark-maroon); }
.theme-hero__pill--cream  .theme-hero__pill-inner { color: var(--color-dark-maroon); background: var(--color-cream);       }
.theme-hero__pill--orange .theme-hero__pill-inner { color: #FCF9F6;                  background: var(--color-orange);      }
.theme-hero__pill--blue   .theme-hero__pill-inner { color: var(--color-dark-blue);   background: var(--color-sky-blue);    }

@media (min-width: 960px) {
    .theme-hero {
        display: block;
        align-items: unset;
        padding-bottom: 0;
    }

    .theme-hero__sticks {
        top: 55%;
        bottom: auto;
        width: auto;
        gap: 18px;
        transform: translateY(-50%);
    }

    .theme-hero__pill-inner {
        padding: 33px 48px;
        min-width:32vw;
        font-size: clamp(28px, 2.6vw, 45px);
    }

    .theme-hero__pill:hover .theme-hero__pill-inner {
        padding-right: 90px;
    }
}

/* --- Hero: Title layout (interior pages) -------------------- */

.theme-hero--title {
    align-items: center;
    justify-content: center;
    padding-bottom: 0;
}

.theme-hero__title-wrap {
    position: relative;
    z-index: 2;
    display: flex;
    justify-content: center;
    align-items: center;
    padding: 24px 32px;
    width: 100%;
}

.theme-hero__title-pill {
    display: inline-block;
    margin: 0;
    padding: 22px clamp(40px, 8vw, 140px);
    background-color: rgba(249, 240, 228, 0.75);
    border-radius: 100px;
    font-family: var(--font-brand);
    font-size: clamp(22px, 4vw, 45px);
    font-weight: 700;
    line-height: 1.25;
    color: var(--color-dark-maroon);
    text-align: center;
    white-space: nowrap;
    letter-spacing: 0;
}

/* Varianti colore pill titolo */
.theme-hero__title-wrap--cream  .theme-hero__title-pill { background-color: rgba(249, 240, 228, 0.80); color: var(--color-dark-maroon) !important; }
.theme-hero__title-wrap--orange .theme-hero__title-pill { background-color: rgba(234, 149,  77, 0.85); color: #fcfaf6                 !important; }
.theme-hero__title-wrap--blue   .theme-hero__title-pill { background-color: rgba(170, 211, 241, 0.85); color: var(--color-dark-blue)   !important; }
.theme-hero__title-wrap--maroon .theme-hero__title-pill { background-color: rgba( 62,  25,  15, 0.85); color: var(--color-light)       !important; }

/* .theme-hero__dec--bottom-left {
    width: 240px;
    height: 240px;
    bottom: -80px;
    left: -80px;
    filter: brightness(10) saturate(0);
    opacity: 0.95;
} */

.theme-hero__dec--top-right {
    width: 240px;
    height: 240px;
    top: -80px;
    right: -80px;
}

@media (min-width: 960px) {
    .theme-hero--title {
        display: flex;
        align-items: center;
        justify-content: center;
    }

    /* .theme-hero__dec--bottom-left {
        width: 360px;
        height: 360px;
        bottom: -100px;
        left: -100px;
    } */

    .theme-hero__dec--top-right {
        width: 360px;
        height: 360px;
        top: -100px;
        right: -100px;
    }
}


/* ============================================================
   INTRO — mobile first
   ============================================================ */

.theme-intro {
    overflow-x: clip;
    overflow-y: visible;
    position: relative;
    background-color: var(--color-cream);
}

.theme-intro__inner {
    position: relative;
    padding-top: 60px;
    padding-bottom: 60px;
}

.theme-intro__content-col {
    z-index: 1;
    position: relative;
}

.theme-intro__title {
    margin: 0 0 28px;
    color: var(--color-dark-blue);
    font-family: var(--font-brand);
    font-size: clamp(48px, 4.3vw, 75px);
    font-weight: 700;
    line-height: 1.25;
    letter-spacing: 0;
}

.theme-intro__body {
    color: var(--color-dark-maroon);
    font-family: var(--font-brand);
    font-size: clamp(16px, 1.45vw, 25px);
    font-weight: 400;
    line-height: 1.55;
}

.theme-intro__body p { margin: 0 0 1.2em; }
.theme-intro__body p:last-child { margin-bottom: 0; }

.theme-intro__cta { margin-top: 28px; }

.theme-intro__btn {
    display: inline-flex;
    align-items: center;
    padding: 12px 24px;
    border-radius: 30px;
    background: var(--color-sky-blue);
    color: #FFFFFF;
    font-family: var(--font-brand);
    font-size: clamp(18px, 1.57vw, 27px);
    font-weight: 500;
    line-height: 1.25;
    text-decoration: none;
    transition: background 0.2s ease, transform 0.2s ease;
}

.theme-intro__btn:hover {
    color: #FFFFFF;
    background: #8dc5e8;
    transform: translateY(-2px);
    text-decoration: none;
}

.theme-intro__img-col {
    z-index: 1;
    /* order: -1; */
    position: relative;
}

/* .theme-intro__img-wrap { overflow: hidden; } */

.theme-intro__img {
    width: 100%;
    height: auto;
    display: block;
    object-fit: cover;
}

.theme-intro__dec {
    z-index: 0;
    position: absolute;
    pointer-events: none;
}

.theme-intro__dec svg {
    width: 100%;
    height: 100%;
    display: block;
}

.theme-intro__dec--orange {
    width: 180px;
    height: 180px;
    top: -120px;
    left: -100px;
}


@media (min-width: 960px) {
    .theme-intro__inner {
        padding-top: 0;
        padding-bottom: 0;
    }

    .theme-intro__content-col {
        padding-top: 100px;
        padding-bottom: 100px;
    }

    .theme-intro__title { margin-bottom: 48px; }
    .theme-intro__cta   { margin-top: 48px; }

    .theme-intro__dec--orange {
        width: 380px;
        height: 380px;
        top: -280px;
        left: -120px;
    }


    .theme-intro__img {
       top: 80px;
       width: 130%;
       height: auto;
       display: block;
       object-fit: unset;
       max-width: none;
       position: relative;
    }

}


/* ============================================================
   SLIDESHOW — ScrollTrigger pinned slideshow — mobile first
   ============================================================ */

/*
 * Mobile: stacked layout — images stack above content.
 * Desktop (960px+): side-by-side, left 50% image / right 50% panel, pinned.
 */

.theme-slideshow {
    position: relative;
    overflow: hidden;
    background-color: var(--color-dark-maroon);
    width: 100vw;
    margin-left: calc(50% - 50vw);
}

/* Decorative circle — top-right bleed */
.theme-slideshow__dec {
    position: absolute;
    pointer-events: none;
    z-index: 3;
}

.theme-slideshow__dec svg {
    width: 100%;
    height: 100%;
    display: block;
}

.theme-slideshow__dec--blue {
    width: 280px;
    height: 280px;
    top: -140px;
    right: -80px;
    transition: filter 0.45s ease;
}

.theme-slideshow[data-slide-theme="skyblue"] .theme-slideshow__dec--blue {
    filter: brightness(10) saturate(0);
    opacity: 0.35;
}

/* Inner container: stacked on mobile */
.theme-slideshow__inner {
    display: flex;
    flex-direction: column;
    min-height: 100svh;
    position: relative;
}

/* ── Image panel ──────────────────────────────────────────── */

.theme-slideshow__images {
    position: relative;
    width: 100%;
    height:100vw;
    min-height: 280px;
    max-height: 500px;
    overflow: hidden;
    flex-shrink: 0;
}

.theme-slideshow__img-wrap {
    position: absolute;
    inset: 0;
    overflow: hidden;
    /* Hidden by default — GSAP drives visibility */
    opacity: 0;
    transform: translateX(-100%);
    will-change: transform, opacity;
}

.theme-slideshow__img-wrap.is-active {
    opacity: 1;
    transform: translateX(0);
}

.theme-slideshow__img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.theme-slideshow__img-placeholder {
    width: 100%;
    height: 100%;
    background-color: rgba(249, 240, 228, 0.08);
}

/* ── Content panel ────────────────────────────────────────── */

.theme-slideshow__panel {
    --slide-bg:          var(--color-dark-maroon);
    --slide-text:        var(--color-cream);
    --slide-text-sub:    rgba(249,240,228,0.8);
    --slide-btn-bg:      var(--color-sky-blue);
    --slide-btn-text:    #FCF9F6;
    --slide-arrow-fill:  rgba(249,240,228,0.15);
    --slide-arrow-stroke:#F9F0E4;

    position: relative;
    flex: 1;
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: 40px 28px 80px;
    background-color: var(--slide-bg);
    transition: background-color 0.45s ease;
    z-index: 2;
}

/* cream */
.theme-slideshow__panel[data-slide-theme="cream"] {
    --slide-bg:          var(--color-cream);
    --slide-text:        var(--color-dark-maroon);
    --slide-text-sub:    rgba(62,25,15,0.75);
    --slide-btn-bg:      var(--color-dark-maroon);
    --slide-btn-text:    var(--color-cream);
    --slide-arrow-fill:  rgba(62,25,15,0.12);
    --slide-arrow-stroke:var(--color-dark-maroon);
}

/* dark maroon */
.theme-slideshow__panel[data-slide-theme="dark"] {
    --slide-bg:          var(--color-dark-maroon);
    --slide-text:        var(--color-cream);
    --slide-text-sub:    rgba(249,240,228,0.8);
    --slide-btn-bg:      var(--color-sky-blue);
    --slide-btn-text:    #FCF9F6;
    --slide-arrow-fill:  rgba(249,240,228,0.15);
    --slide-arrow-stroke:#F9F0E4;
}

/* orange */
.theme-slideshow__panel[data-slide-theme="orange"] {
    --slide-bg:          var(--color-orange);
    --slide-text:        var(--color-cream);
    --slide-text-sub:    rgba(249,240,228,0.85);
    --slide-btn-bg:      var(--color-cream);
    --slide-btn-text:    var(--color-dark-maroon);
    --slide-arrow-fill:  rgba(249,240,228,0.2);
    --slide-arrow-stroke:var(--color-cream);
}

/* sky blue */
.theme-slideshow__panel[data-slide-theme="skyblue"] {
    --slide-bg:          var(--color-sky-blue);
    --slide-text:        var(--color-dark-blue);
    --slide-text-sub:    rgba(66,105,173,0.8);
    --slide-btn-bg:      var(--color-dark-blue);
    --slide-btn-text:    var(--color-cream);
    --slide-arrow-fill:  rgba(66,105,173,0.15);
    --slide-arrow-stroke:var(--color-dark-blue);
}

/* Slide number */
.theme-slideshow__pager {
    display: flex;
    align-items: baseline;
    gap: 6px;
    margin-bottom: 28px;
    font-family: var(--font-brand);
    font-size: clamp(24px, 5vw, 40px);
    font-weight: 300;
    color: var(--slide-text);
    line-height: 1;
}

.theme-slideshow__pag-sep {
    font-size: 0.6em;
    opacity: 0.55;
}

.theme-slideshow__pag-total {
    font-size: 0.6em;
    opacity: 0.55;
}

/* Individual slide articles */
.theme-slideshow__slide {
    display: none;
    flex-direction: column;
    gap: 16px;
}

.theme-slideshow__slide.is-active {
    display: flex;
}

.theme-slideshow__slide-title {
    margin: 0;
    font-family: var(--font-brand);
    font-size: clamp(32px, 6vw, 45px);
    font-weight: 700;
    color: var(--slide-text);
    line-height: 1.15;
    letter-spacing: 0.02em;
}

.theme-slideshow__slide-subtitle {
    margin: 0;
    font-family: var(--font-brand);
    font-size: clamp(16px, 2.5vw, 20px);
    font-weight: 700;
    color: var(--slide-text);
    line-height: 1.35;
}

.theme-slideshow__slide-body {
    margin: 0;
    font-family: var(--font-brand);
    font-size: clamp(15px, 2vw, 18px);
    font-weight: 400;
    color: var(--slide-text-sub);
    line-height: 1.6;
}

/* CTA button */
.theme-slideshow__cta-btn {
    display: inline-flex;
    align-items: center;
    align-self: flex-start;
    margin-top: 8px;
    padding: 12px 28px;
    border-radius: 30px;
    background: var(--slide-btn-bg);
    color: var(--slide-btn-text);
    font-family: var(--font-brand);
    font-size: clamp(16px, 1.5vw, 20px);
    font-weight: 500;
    line-height: 1.25;
    text-decoration: none;
    transition: background 0.2s ease, color 0.2s ease, transform 0.2s ease;
}

.theme-slideshow__cta-btn:hover {
    color: var(--slide-btn-text);
    opacity: 0.85;
    transform: translateY(-2px);
    text-decoration: none;
}

/* Prev / Next arrows */
.theme-slideshow__arrows {
    display: flex;
    gap: 12px;
    align-items: center;
    margin-top: 32px;
}

.theme-slideshow__arrow {
    background: none;
    border: none;
    padding: 0;
    cursor: pointer;
    opacity: 0.7;
    transition: opacity 0.2s ease, transform 0.2s ease;
    line-height: 0;
}

.theme-slideshow__arrow:hover {
    opacity: 1;
    transform: scale(1.1);
}

.theme-slideshow__arrow svg ellipse {
    fill: var(--slide-arrow-fill);
}

.theme-slideshow__arrow svg path {
    stroke: var(--slide-arrow-stroke);
}

.theme-slideshow__arrow:focus-visible {
    outline: 2px solid var(--slide-arrow-stroke);
    outline-offset: 3px;
    border-radius: 50%;
}

/* Thumbnail nav — hidden on mobile, shown desktop */
.theme-slideshow__thumbs {
    display: none;
}

/* ── Desktop layout ───────────────────────────────────────── */

@media (min-width: 960px) {

    .theme-slideshow__dec--blue {
        width: 568px;
        height: 582px;
        top: -271px;
        right: -80px;
    }

    /* Inner: side by side, full viewport height */
    .theme-slideshow__inner {
        flex-direction: row;
        min-height: 100svh;
        height: 100svh;
    }

    /* Left: image panel — 50% width, full height */
    .theme-slideshow__images {
        /* flex: 0 0 50%; */
        width: 50%;
        height: 100%;
        max-height: none;
        flex-shrink: 0;
    }

    /* Right: content panel — 50% width */
    .theme-slideshow__panel {
        /* flex: 0 0 50%; */
        width: 50%;
        padding: 80px 120px 80px 160px;
        justify-content: center;
    }

    /* Slide articles — full height centering */
    .theme-slideshow__slide {
        gap: 24px;
    }

    .theme-slideshow__pager {
        margin-bottom: 48px;
    }

    /* Arrows — bottom right of panel */
    .theme-slideshow__arrows {
        position: absolute;
        bottom: 60px;
        right: 80px;
        margin-top: 0;
    }

    /* Thumbnail nav — vertical strip, between panels (absolute over the split) */
    .theme-slideshow__thumbs {
        display: flex;
        flex-direction: column;
        gap: 40px;
        position: absolute;
        left: calc(50% - 70px); /* 89 = half of 178px nav width from Figma */
        top: 50%;
        transform: translateY(-50%);
        z-index: 10;
    }

    .theme-slideshow__thumb {
        display: block;
        width: 140px;
        height: 140px;
        overflow: visible;
        border: none;
        cursor: pointer;
        background: none;
        padding: 0;
        transition: transform 0.4s cubic-bezier(0.34, 1.56, 0.64, 1);
        position: relative;
    }

    .theme-slideshow__thumb-media {
        display: block;
        width: 100%;
        height: 100%;
        border-radius: 50%;
        overflow: hidden;
    }

    .theme-slideshow__thumb img {
        width: 100%;
        height: 100%;
        object-fit: cover;
        display: block;
        pointer-events: none;
    }

    .theme-slideshow__thumb-ring {
        position: absolute;
        inset: -8px;
        opacity: 1;
        pointer-events: none;
        transition: opacity 0.4s ease;
        z-index: 1;
    }

    .theme-slideshow__thumb-ring svg {
        width: 100%;
        height: 100%;
        display: block;
    }

    /* Active thumb — ring pieno + cerchio più grande */
    .theme-slideshow__thumb.is-active {
        transform: scale(1.22);
    }

    .theme-slideshow__thumb.is-active .theme-slideshow__thumb-ring {
        opacity: 1;
    }

    .theme-slideshow__thumb:hover:not(.is-active) {
        transform: scale(1.05);
        /* opacity: 0.8; */
    }

    .theme-slideshow__thumb:focus-visible {
        outline: 2px solid var(--color-cream);
        outline-offset: 3px;
    }

}

/* ── Reduced motion ───────────────────────────────────────── */

@media (prefers-reduced-motion: reduce) {
    .theme-slideshow__img-wrap {
        transform: none !important;
        transition: opacity 0.3s ease !important;
    }

    .theme-slideshow__slide {
        transition: none;
    }
}



/* ============================================================
   FOOTER — mobile first
   ============================================================ */

.theme-footer {
    position: relative;
    background-color: var(--color-orange);
}


.theme-footer__inner {
    z-index: 1;
    position: relative;
    padding-top: 48px;
    padding-bottom: 48px;
}

/* Grid: stacked on mobile, horizontal on desktop */
.theme-footer__grid {
    gap: 30px;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
}

.theme-footer__col {
    width: 100%;
}

.theme-footer__col--nav {
    order: 1;
}

.theme-footer__col--contacts {
    order: 2;
}

/* Logo column */
.theme-footer__logo-link {
    display: inline-block;
}

.theme-footer__logo {
    width: 120px;
    height: auto;
    display: block;
    object-fit: contain;
}

/* Contacts column */
.theme-footer__contact-row {
    gap: 10px;
    display: flex;
    align-items: flex-start;
    margin-bottom: 16px;
}

.theme-footer__contact-row:last-of-type {
    margin-bottom: 0;
}

.theme-footer__contact-icon {
    flex-shrink: 0;
    margin-top: 3px;
    color: var(--color-cream);
}

.theme-footer__contact-text {
    color: var(--color-cream);
    font-family: var(--font-brand);
    font-size: clamp(15px, 1.13vw, 19px);
    font-weight: 500;
    line-height: 1.4;
}

.theme-footer__email-link {
    color: var(--color-cream);
    text-decoration: none;
    transition: opacity 0.2s ease;
}

.theme-footer__email-link:hover {
    opacity: 0.75;
    text-decoration: none;
}

/* CTA Button — sky blue pill */
.theme-footer__cta-wrap {
    margin-top: 24px;
}

.theme-footer__cta-btn {
    display: inline-flex;
    align-items: center;
    padding: 9px 19px;
    border-radius: 23px;
    background: var(--color-sky-blue);
    color: #FCF9F6;
    font-family: var(--font-brand);
    font-size: clamp(16px, 1.22vw, 21px);
    font-weight: 500;
    line-height: 1.3;
    text-decoration: none;
    transition: background 0.2s ease, transform 0.2s ease;
}

.theme-footer__cta-btn:hover {
    color: #FCF9F6;
    background: #8dc5e8;
    transform: translateY(-2px);
    text-decoration: none;
}

/* Nav column */
.theme-footer__nav {
    gap: 6px;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
}

.theme-footer__nav-link {
    color: #FCF9F6;
    font-family: var(--font-brand);
    font-size: clamp(18px, 1.52vw, 26px);
    font-weight: 400;
    line-height: 1.4;
    text-decoration: none;
    transition: opacity 0.2s ease;
}

.theme-footer__nav-link:hover {
    opacity: 0.75;
    text-decoration: none;
}

/* Sub-bar: copyright */
.theme-footer__sub {
    border-top: 1px solid rgba(249, 240, 228, 0.25);
    padding-top: 20px;
    padding-bottom: 20px;
}

.theme-footer__copyright {
    margin: 0;
    color: rgba(249, 240, 228, 0.65);
    font-family: var(--font-brand);
    font-size: clamp(12px, 0.8vw, 14px);
    font-weight: 400;
}

@media (min-width: 960px) {
    .theme-footer__inner {
        padding-left: 0;
        padding-right: 0;
        padding-top: 85px;
        padding-bottom: 85px;
    }

    .theme-footer__grid {
        gap: 0;
        flex-direction: row;
        align-items: center;
    }

    .theme-footer__col {
        width: auto;
    }


    .theme-footer__col--logo {
        flex-shrink: 0;
    }

    .theme-footer__logo {
       width: 150px;
    }

    .theme-footer__col--contacts {
        order: 1;
        flex: 0 1 32%;
        margin-left: 80px;
        margin-right: 80px;
    }

    .theme-footer__col--nav {
        order: 2;
        flex-shrink: 0;
        padding-left: 100px;
        border-left: 1px solid rgba(255, 255, 255, 0.5);

    }

    .theme-footer__nav {
        align-items: flex-start;
    }
    .theme-footer__copyright {
    text-align: right;
}

}

/* ============================================================
   TEXT CONTENT — interior page text block — mobile first
   Figma: node 77:1385 "Content Text", page "granelle"
   ============================================================ */

.theme-text-content {
    position: relative;
    background-color: var(--color-cream);
}

.theme-text-content__inner {
    padding-top: 48px;
    padding-bottom: 48px;
}

.theme-text-content__title {
    margin: 0 0 18px;
    font-family: var(--font-brand);
    font-size: clamp(26px, 3.5vw, 35px);
    font-weight: 700;
    line-height: 1.25;
    letter-spacing: 0;
}

.theme-text-content__title--orange { color: var(--color-orange)      !important; }
.theme-text-content__title--blue   { color: var(--color-dark-blue)   !important; }
.theme-text-content__title--maroon { color: var(--color-dark-maroon) !important; }

.theme-text-content__body {
    color: var(--color-dark-maroon);
    font-family: var(--font-brand);
    font-size: clamp(16px, 1.45vw, 20px);
    font-weight: 400;
    line-height: 1.55;
}

.theme-text-content__body p {
    margin: 0 0 1.2em;
}

.theme-text-content__body p:last-child {
    margin-bottom: 0;
}

.theme-text-content__dec {
    position: absolute;
    pointer-events: none;
    z-index: 0;
}

.theme-text-content__dec svg {
    width: 100%;
    height: 100%;
    display: block;
}

.theme-text-content__dec--light {
    width: 200px;
    height: 200px;
    top: -100px;
    left: -80px;
    
}

.theme-text-content__dec--light svg path {
    fill: rgba(252, 250, 246, 1);
}

@media (min-width: 960px) {
    .theme-text-content__inner {
        padding-top: 80px;
        padding-bottom: 80px;
    }

    .theme-text-content__title {
        margin-bottom: 18px;
    }

    .theme-text-content__dec--light {
        width: 340px;
        height: 340px;
        top: -200px;
        left: -100px;
    }
}

/* ============================================================
   PRODUCT GRID — WooCommerce product card grid — mobile first
   Figma: node 77:39 "Product Grid", file DD35vd39mQituhVxYAaMPh
   Page: granelle
   ============================================================ */

/* -- Section wrapper ---------------------------------------- */
.theme-product-grid {
    position: relative;
    background-color: var(--color-cream);
}

.theme-product-grid__inner {
    /* padding-top: 20px; */
    padding-bottom: 56px;
}

/* -- Empty / loading state ---------------------------------- */
.theme-product-grid__empty {
    font-family: var(--font-brand);
    font-size: clamp(15px, 1.3vw, 18px);
    color: var(--color-dark-maroon);
    opacity: 0.6;
    text-align: center;
    padding: 40px 0;
}

/* -- Grid container ----------------------------------------- */
.theme-product-grid__grid {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    gap: 40px 28px;
}

/* Column modifiers — mobile first */
.theme-product-grid__grid--mob-1  { grid-template-columns: 1fr; }
.theme-product-grid__grid--mob-2  { grid-template-columns: repeat(2, 1fr); }

/* 1-column mobile: center cards and all inner content */
.theme-product-grid__grid--mob-1 .theme-product-grid__card {
    align-items: center;
    text-align: center;
}
.theme-product-grid__grid--mob-1 .theme-product-grid__img {
    justify-content: center;
}
.theme-product-grid__grid--mob-1 .theme-product-grid__img img {
    object-position: center;
}
.theme-product-grid__grid--mob-1 .theme-product-grid__attrs {
    align-items: center;
}
.theme-product-grid__grid--mob-1 .theme-product-grid__attr-row {
    justify-content: center;
}

@media (min-width: 640px) {
    .theme-product-grid__grid--mob-1 .theme-product-grid__card {
        align-items: flex-start;
        text-align: left;
    }
    .theme-product-grid__grid--mob-1 .theme-product-grid__img {
        justify-content: flex-start;
    }
    .theme-product-grid__grid--mob-1 .theme-product-grid__img img {
        object-position: left;
    }
    .theme-product-grid__grid--mob-1 .theme-product-grid__attrs {
        align-items: flex-start;
    }
    .theme-product-grid__grid--mob-1 .theme-product-grid__attr-row {
        justify-content: flex-start;
    }
}

@media (min-width: 640px) {
    .theme-product-grid__grid--tab-1 { grid-template-columns: 1fr; }
    .theme-product-grid__grid--tab-2 { grid-template-columns: repeat(2, 1fr); }
    .theme-product-grid__grid--tab-3 { grid-template-columns: repeat(3, 1fr); }
}

@media (min-width: 960px) {
    .theme-product-grid__grid--desk-2 { grid-template-columns: repeat(2, 1fr); }
    .theme-product-grid__grid--desk-3 { grid-template-columns: repeat(3, 1fr); }
    .theme-product-grid__grid--desk-4 { grid-template-columns: repeat(4, 1fr); }

    .theme-product-grid__inner {
        /* padding-top: 40px; */
        padding-bottom: 100px;
    }

    .theme-product-grid__grid {
        gap: 60px clamp(32px, 8vw, 120px);
    }
}

/* -- Product card ------------------------------------------- */
.theme-product-grid__card {
    display: flex;
    flex-direction: column;
    gap: 15px;
}

/* -- Image area --------------------------------------------- */
.theme-product-grid__img {
    display: flex;
    position: relative;
    width: 100%;
    flex-shrink: 0;
}

.theme-product-grid__img-wrap {
    display: flex;
    position: relative;
}

.theme-product-grid__img img {
    width: auto;
    height: 150px;
    object-fit: contain;
    object-position: left;
    display: block;
}

@media (min-width: 640px) {
    .theme-product-grid__img img {
        height: 180px;
    }
}

@media (min-width: 960px) {
    .theme-product-grid__img img {
        height: 220px;
    }
}

/* -- Accessori: immagine libera in altezza, constrained in larghezza -- */
.theme-product-grid--cat-accessori .theme-product-grid__img img {
    width: 100%;
    height: auto;
    object-fit: unset;
    object-position: unset;
}

@media (min-width: 640px) {
    .theme-product-grid--cat-accessori .theme-product-grid__img img {
        height: auto;
    }
}

@media (min-width: 960px) {
    .theme-product-grid--cat-accessori .theme-product-grid__img img {
        height: auto;
    }
}

.theme-product-grid__img-placeholder {
    width: 100%;
    height: 100%;
    background-color: rgba(62, 25, 15, 0.06);
}

/* -- Gluten-free badge -------------------------------------- */
.theme-product-grid__badge {
    position: absolute;
    bottom: 0;
    right: 0;
    width:65px;
    display: flex;
    align-items: flex-end;
    justify-content: flex-end;
    pointer-events: none;
}

@media (min-width: 640px) {
    .theme-product-grid__badge {
       width: 80px;
    }
}

@media (min-width: 960px) {
   .theme-product-grid__badge {
       width: 100px;
    }
}

.theme-product-grid__badge svg {
    width: 100%;
    height: auto;
    display: block;
}



/* -- Product title ------------------------------------------ */
.theme-product-grid__title {
    margin: 0;
    font-family: var(--font-brand);
    font-size: clamp(18px, 1.6vw, 25px);
    font-weight: 600;
    line-height: 1.25;
    color: var(--color-dark-maroon);
    letter-spacing: 0.01em;
}

/* -- Category icons ----------------------------------------- */
.theme-product-grid__cats {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    column-gap: 18px;
    row-gap: 10px;
}

@media (min-width: 640px) {
  .theme-product-grid__cats {
     column-gap: 20px;
  }
}

@media (min-width: 960px) {
  .theme-product-grid__cats {
      column-gap: 22px;
  }
}

.theme-product-grid__cat {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 5px;
}

.theme-product-grid__cat-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    height: 27px;
    width: auto;
}

.theme-product-grid__cat-icon svg {
    width: auto;
    height: 100%;
    display: block;
}

.theme-product-grid__cat-label {
    font-family: var(--font-brand);
    font-size: 9px;
    font-weight: 400;
    line-height: 1.2;
    color: var(--color-dark-maroon);
    text-align: center;
    white-space: nowrap;
}

/* -- Attributes definition list ----------------------------- */
.theme-product-grid__attrs {
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.theme-product-grid__attr-row {
    display: flex;
    align-items: baseline;
    flex-wrap: wrap;
    row-gap: 0;
    column-gap: 4px;
}

.theme-product-grid__attr-label {
    font-family: var(--font-brand);
    font-size: clamp(12px, 1.1vw, 15px);
    font-weight: 400;
    color: var(--color-dark-maroon);
    line-height: 1.4;
    white-space: nowrap;
    flex-shrink: 0;
}

.theme-product-grid__attr-value {
    font-family: var(--font-brand);
    font-size: clamp(12px, 1.1vw, 15px);
    font-weight: 400;
    color: var(--color-dark-maroon);
    line-height: 1.4;
    margin: 0;
}

/* -- PDF download button ------------------------------------ */
.theme-product-grid__pdf {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin-top: auto;
    padding-top: 4px;
    text-decoration: none;
    color: var(--color-dark-maroon);
    font-family: var(--font-brand);
    font-size: clamp(11px, 1vw, 13.5px);
    font-weight: 400;
    line-height: 1.3;
    transition: opacity 0.2s ease;
}

.theme-product-grid__pdf:hover {
    opacity: 0.7;
    text-decoration: none;
    color: var(--color-dark-maroon);
}

.theme-product-grid__pdf-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 35px;
    height: 32px;
    flex-shrink: 0;
}

.theme-product-grid__pdf-icon svg {
    width: 100%;
    height: auto;
    display: block;
}

.theme-product-grid__pdf-label {
    text-transform: uppercase;
}

/* -- Reduced motion ----------------------------------------- */
@media (prefers-reduced-motion: reduce) {
    .theme-product-grid__pdf {
        transition: none;
    }
}


/* ============================================================
   PARTNER SECTION
   theme_partner — node 74:35 (Figma DD35vd39mQituhVxYAaMPh)

   Mobile: centred column, label + partner images stacked.
   Desktop (≥960px): same centred layout, images in a row.
   ============================================================ */

/* -- Section wrapper ---------------------------------------- */
.theme-partner {
    position: relative;
    overflow: hidden;
    background-color: var(--color-cream);
    padding-top: 56px;
    padding-bottom: 64px;
}

/* -- Inner container ---------------------------------------- */
.theme-partner__inner {
    position: relative;
    z-index: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 32px;
}

/* -- Section label ------------------------------------------ */
.theme-partner__label {
    font-family: var(--font-brand);
    font-weight: 700;
    font-size: clamp(20px, 3vw, 30px);
    line-height: 1.25;
    color: #34B2B1;          /* teal — from Figma fill, not in global palette */
    text-align: center;
    margin: 0;
    letter-spacing: 0.01em;
}

/* -- Partner grid ------------------------------------------- */
.theme-partner__grid {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    align-items: center;
    gap: 32px;
    width: 100%;
}

/* -- Partner item ------------------------------------------- */
.theme-partner__item {
    display: flex;
    align-items: center;
    justify-content: center;
}

.theme-partner__link {
    display: block;
    transition: opacity 0.2s ease;
}

.theme-partner__link:hover,
.theme-partner__link:focus {
    opacity: 0.8;
}

.theme-partner__img {
    display: block;
    max-width: 100%;
    height: auto;
    max-height: 320px;
    object-fit: contain;
}

/* Single partner: image is larger, centred */
.theme-partner__grid--count-1 .theme-partner__img {
    max-width: min(553px, 90vw);
    max-height: 600px;
}

/* Two partners: each takes ~40% */
.theme-partner__grid--count-2 .theme-partner__item {
    flex: 0 1 calc(50% - 16px);
}

/* Three+ partners */
.theme-partner__grid--count-3 .theme-partner__item,
.theme-partner__grid--count-4 .theme-partner__item,
.theme-partner__grid--count-5 .theme-partner__item,
.theme-partner__grid--count-6 .theme-partner__item {
    flex: 0 1 calc(33.33% - 22px);
}

/* -- Decorative circles ------------------------------------- */
.theme-partner__dec {
    position: absolute;
    pointer-events: none;
    z-index: 0;
}

.theme-partner__dec svg {
    display: block;
    width: 100%;
    height: auto;
}

/* Left circle (cream/light) — bleeds off the left edge */
.theme-partner__dec--light {
    left: -140px;
    top: 20%;
    opacity: 0.5;
    transform: translateY(-50%);
    width: clamp(280px, 33vw, 520px);
    filter: brightness(0.92);
}

/* Right circle (sky blue) — bleeds off the right edge */
.theme-partner__dec--blue {
    right: -140px;
    top: 50%;
    transform: translateY(-50%);
    width: clamp(280px, 33vw, 520px);
    opacity: 0.85;
}

/* -- Desktop overrides -------------------------------------- */
@media (min-width: 960px) {
    .theme-partner {
        padding-top: 80px;
        padding-bottom: 100px;
    }

    .theme-partner__grid {
        gap: 48px;
    }

    .theme-partner__grid--count-2 .theme-partner__item {
        flex: 0 1 calc(40% - 24px);
    }

    .theme-partner__grid--count-3 .theme-partner__item,
    .theme-partner__grid--count-4 .theme-partner__item,
    .theme-partner__grid--count-5 .theme-partner__item,
    .theme-partner__grid--count-6 .theme-partner__item {
        flex: 0 1 calc(25% - 36px);
    }

    .theme-partner__dec--light {
        left: -180px;
        width: clamp(380px, 30vw, 520px);
    }

    .theme-partner__dec--blue {
        right: -180px;
        width: clamp(380px, 30vw, 520px);
    }
}

/* -- Reduced motion ----------------------------------------- */
@media (prefers-reduced-motion: reduce) {
    .theme-partner__link {
        transition: none;
    }
}

/* ============================================================
   theme_consigli — Consigli di preparazione
   Background: var(--color-sky-blue) | Typography: var(--color-dark-blue)
   Figma node 81:352 "Consigli", file DD35vd39mQituhVxYAaMPh
   ============================================================ */

/* -- Section wrapper ---------------------------------------- */
.theme-consigli {
    position: relative;
    background-color: var(--color-sky-blue);
    padding-top: 60px;
    padding-bottom: 70px;
}

/* Bande laterali: prolungano il background fino ai bordi del viewport */
/* .theme-consigli::before,
.theme-consigli::after {
    content: '';
    position: absolute;
    top: 0;
    bottom: 0;
    width: 50vw;
    background-color: var(--color-sky-blue);
    z-index: 0;
    pointer-events: none;
} */

/* .theme-consigli::before { right: 100%; }
.theme-consigli::after  { left:  100%; } */

/* -- Inner container ---------------------------------------- */
.theme-consigli__inner {
    position: relative;
    z-index: 1;
}

/* -- Section header ----------------------------------------- */
.theme-consigli__header {
    margin-bottom: 40px;
}

.theme-consigli__title {
    font-family: var(--font-brand);
    font-weight: 700;
    font-size: clamp(22px, 5vw, 35px);
    line-height: 1.25;
    color: var(--color-dark-blue);
    margin: 0 0 12px;
    text-transform: uppercase;
    letter-spacing: 0.01em;
}

.theme-consigli__subtitle {
    font-family: var(--font-brand);
    font-weight: 400;
    font-size: clamp(15px, 2.5vw, 20px);
    line-height: 1.5;
    color: var(--color-dark-blue);
    margin: 0;
    max-width: 900px;
}

/* -- Steps grid --------------------------------------------- */
.theme-consigli__grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 32px 0;
}

/* -- Individual step ---------------------------------------- */
.theme-consigli__step {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

/* Step label */
.theme-consigli__step-label {
    font-family: var(--font-brand);
    font-weight: 700;
    font-size: clamp(16px, 2.5vw, 22px);
    line-height: 1.3;
    color: var(--color-dark-blue);
    margin: 0;
}

/* Step image wrapper */
.theme-consigli__step-img-wrap {
    /* overflow: hidden; */
    aspect-ratio: 3 / 2;
    background-color: rgba(255, 255, 255, 0.25);
}

.theme-consigli__step-img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.4s ease;
}

.theme-consigli__step-img-wrap--placeholder {
    border: 2px dashed rgba(66, 105, 173, 0.3);
}

/* -- Decorative circle -------------------------------------- */
.theme-consigli__dec {
    position: absolute;
    pointer-events: none;
    z-index: 1;
    filter: brightness(0.7) saturate(3);
}

.theme-consigli__dec svg {
    display: block;
    width: 100%;
    height: auto;
}

/* Top-right decorative circle — bleeds off the right edge */
.theme-consigli__dec--circle {
    top: -80px;
    right: -100px;
    width: clamp(160px, 30vw, 360px);
}

/* Bottom-right mascot */
.theme-consigli__dec--mascot {
    bottom: 20px;
    right: 0;
    width: clamp(200px, 18vw, 340px);
    filter: none;
}

/* -- Mascot: spazio inferiore mobile per non sovrapporsi agli step -- */
/* L'SVG è 455×466 (quasi quadrato): altezza ≈ larghezza del clamp */
.theme-consigli--has-mascot {
    padding-bottom: calc(clamp(200px, 18vw, 340px) + 40px);
}

/* -- Tablet (≥640px): 2-column grid ------------------------- */
@media (min-width: 640px) {
    .theme-consigli__grid {
        grid-template-columns: repeat(2, 1fr);
        gap: 36px 28px;
    }
}

/* -- Desktop (≥960px): 3-column grid, full layout ----------- */
@media (min-width: 960px) {
    .theme-consigli {
        padding-top: 90px;
        padding-bottom: 110px;
    }

    .theme-consigli__header {
        margin-bottom: 56px;
    }

    .theme-consigli__grid {
        grid-template-columns: repeat(3, 1fr);
        gap: 48px 30px;
    }

    .theme-consigli__step:hover .theme-consigli__step-img {
        transform: scale(1.02);
    }

    .theme-consigli__dec--circle {
        top: -80px;
        right: -160px;
        width: clamp(300px, 28vw, 400px);
        opacity: 0.6;
    }

    .theme-consigli__dec--mascot {
        right: 200px;
        bottom: 50px;
        width: clamp(200px, 20vw, 340px);
    }

    /* Desktop: il contenuto è abbastanza alto, il padding originale basta */
    .theme-consigli--has-mascot {
        padding-bottom: 110px;
    }
}

/* -- Large desktop (≥1440px) -------------------------------- */
@media (min-width: 1440px) {
    .theme-consigli__grid {
        gap: 56px 40px;
    }
}

/* -- Reduced motion ----------------------------------------- */
@media (prefers-reduced-motion: reduce) {
    .theme-consigli__step-img {
        transition: none;
    }
}

/* ============================================================
   THEME CONTATTI — Contact info + image (node 85:537)
   Figma: Contatti page (82:456)
   ============================================================ */

/* -- Base (mobile) ------------------------------------------ */
.theme-contatti {
    position: relative;
    background-color: var(--color-cream);
    padding-top: 220px;
    padding-bottom: 50px;
}

/* Decorative circle — top-right */
.theme-contatti__dec--circle {
    position: absolute;
    top: -80px;
    right: -120px;
    width: clamp(280px, 45vw, 624px);
    pointer-events: none;
    z-index: 0;
    opacity: 0.5;
}

.theme-contatti__inner {
    position: relative;
    z-index: 1;
}

/* Two-column layout: stacked on mobile */
.theme-contatti__columns {
    display: flex;
    flex-direction: column;
    gap: 40px;
}

/* Page title */
.theme-contatti__title {
    font-family: var(--font-brand);
    font-weight: 700;
    font-size: clamp(38px, 8vw, 80px);
    line-height: 1.05;
    letter-spacing: -0.01em;
    margin-bottom: 48px;
}

.theme-contatti__title--cream  { color: var(--color-cream); }
.theme-contatti__title--orange { color: var(--color-orange); }
.theme-contatti__title--blue   { color: var(--color-dark-blue); }
.theme-contatti__title--maroon { color: var(--color-dark-maroon); }

/* Contact blocks container */
.theme-contatti__blocks {
    display: flex;
    flex-wrap: wrap;
    gap: 40px 20px;
}

/* Single contact block */
.theme-contatti__block {
    display: flex;
    flex-direction: column;
    gap: 10px;
    flex: 0 0 100%;
}

.theme-contatti__block--email,
.theme-contatti__block--phone {
    flex: 0 0 calc(50% - 10px);
}

.theme-contatti__block--address {
    flex: 0 0 100%;
}

/* Block header: icon + label */
.theme-contatti__block-header {
    display: flex;
    align-items: center;
    gap: 12px;
    border-bottom: 1px solid var(--color-orange);
    padding-bottom: 9px;
}

/* Icon placeholder — CSS-drawn */
.theme-contatti__block-icon {
    display: inline-block;
    width: 28px;
    height: 28px;
    flex-shrink: 0;
    background-color: var(--color-orange);
    -webkit-mask-repeat: no-repeat;
    mask-repeat: no-repeat;
    -webkit-mask-position: center;
    mask-position: center;
    -webkit-mask-size: contain;
    mask-size: contain;
}

/* Email icon */
.theme-contatti__block-icon--email {
    -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.5'%3E%3Crect x='2' y='4' width='20' height='16' rx='2'/%3E%3Cpath d='M2 7l10 7 10-7'/%3E%3C/svg%3E");
    mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.5'%3E%3Crect x='2' y='4' width='20' height='16' rx='2'/%3E%3Cpath d='M2 7l10 7 10-7'/%3E%3C/svg%3E");
}

/* Phone icon */
.theme-contatti__block-icon--phone {
    -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.5'%3E%3Cpath d='M6 2h4l2 5-2.5 1.5A11 11 0 0 0 14.5 13.5L16 11l5 2v4a2 2 0 0 1-2 2A16 16 0 0 1 4 4a2 2 0 0 1 2-2z'/%3E%3C/svg%3E");
    mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.5'%3E%3Cpath d='M6 2h4l2 5-2.5 1.5A11 11 0 0 0 14.5 13.5L16 11l5 2v4a2 2 0 0 1-2 2A16 16 0 0 1 4 4a2 2 0 0 1 2-2z'/%3E%3C/svg%3E");
}

/* Address icon */
.theme-contatti__block-icon--address {
    -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.5'%3E%3Cpath d='M12 2C8.7 2 6 4.7 6 8c0 5 6 13 6 13s6-8 6-13c0-3.3-2.7-6-6-6z'/%3E%3Ccircle cx='12' cy='8' r='2'/%3E%3C/svg%3E");
    mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.5'%3E%3Cpath d='M12 2C8.7 2 6 4.7 6 8c0 5 6 13 6 13s6-8 6-13c0-3.3-2.7-6-6-6z'/%3E%3Ccircle cx='12' cy='8' r='2'/%3E%3C/svg%3E");
}

/* Block label */
.theme-contatti__block-label {
    font-family: var(--font-brand);
    font-weight: 400;
    font-size: clamp(18px, 2vw, 25px);
    color: var(--color-orange);
}

/* Block values */
.theme-contatti__block-values {
    display: flex;
    flex-direction: column;
    gap: 4px;
    padding-left: 0;
}

.theme-contatti__value {
    font-family: var(--font-brand);
    font-weight: 400;
    font-size: clamp(16px, 1.8vw, 22px);
    color: var(--color-dark-blue);
    text-decoration: none;
    line-height: 1.4;
    display: block;
}

a.theme-contatti__value:hover, 
.theme-contatti__value a:hover {
    color: var(--color-orange);
    text-decoration: underline;
}

.theme-contatti__value--address {
    color: var(--color-dark-blue);
}

/* Right column: image */
.theme-contatti__col--image {
    flex-shrink: 0;
}

.theme-contatti__img {
    width: 100%;
    height: auto;
    display: block;
    border-radius: 12px;
    object-fit: cover;
}

/* -- Tablet (≥640px) ----------------------------------------- */
@media (min-width: 640px) {
    .theme-contatti {
        padding-top: 240px;
    }

    .theme-contatti__img {
        border-radius: 16px;
    }
}

/* -- Desktop (≥960px) ---------------------------------------- */
@media (min-width: 960px) {
    .theme-contatti {
        padding-top: 220px;
        padding-bottom: 0;
    }

    .theme-contatti__columns {
        flex-direction: row;
        align-items: center;
        gap: 80px;
    }

    .theme-contatti__col--info {
        flex: 1 1 0;
        min-width: 0;
    }

    .theme-contatti__col--image {
        flex: 0 0 40%;
        max-width: 728px;
    }

    .theme-contatti__img {
        border-radius: 20px;
        aspect-ratio: 728 / 847;
        object-fit: cover;
        height: auto;
       top: 80px;
       width: 130%;
       display: block;
       object-fit: unset;
       max-width: none;
       position: relative;
    }

    .theme-contatti__dec--circle {
        top: -300px;
        right: -160px;
        width: clamp(400px, 36vw, 624px);
        opacity: 0.6;
    }

    .theme-contatti__title {
        font-size: clamp(52px, 5.5vw, 90px);
        margin-bottom: 56px;
    }
}

/* -- Large desktop (≥1440px) --------------------------------- */
@media (min-width: 1440px) {
    .theme-contatti {
        padding-left: 0;
        padding-right: 0;
    }

    .theme-contatti__columns {
        gap: 100px;
    }
}

/* -- Reduced motion ------------------------------------------ */
@media (prefers-reduced-motion: reduce) {
    .theme-contatti__img {
        transition: none;
    }
}