/* SAP Services — stili principali del tema (l'intestazione del tema è in style.css). */
:root {
    --sap-navy: #16294a;
    --sap-blue: #2e5eaa;
    --sap-cyan: #00b0f8;
    --sap-purple: #7008d0;
    --sap-lime: #f5f847;
    --sap-ink: #24344b;
    --sap-light: #f3f6fa;
    --sap-warm: #f8f5ef;
    --sap-line: #d9e1ed;
    --sap-white: #fff;
    --sap-radius: 12px;
    --sap-shadow: 0 16px 40px #16294a12;
    --sap-wide: 1200px;
    --sap-gutter: max(1.5rem, calc((100% - var(--sap-wide)) / 2));
    --sap-focus: var(--sap-blue);
    --sap-font: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

* {
    box-sizing: border-box;
}

body {
    margin: 0;
    color: var(--sap-ink);
    background: var(--sap-white);
    font-family: var(--sap-font);
    line-height: 1.65;
}

[hidden] {
    display: none !important;
}

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

a {
    color: var(--sap-blue);
    text-underline-offset: .2em;
}

a:hover {
    text-decoration-thickness: 2px;
}

:where(a, button, input, textarea, select):focus-visible {
    outline: 3px solid var(--sap-focus);
    outline-offset: 5px;
}

/* Sezioni scure: il focus deve restare visibile. */
.sap-cta,
.sap-cta-visual,
.sap-service-cta,
.sap-service-hero {
    --sap-focus: var(--sap-white);
}

h1,
h2,
h3 {
    color: var(--sap-navy);
    line-height: 1.15;
    text-wrap: balance;
}

h1 {
    font-size: clamp(2.2rem, 4.5vw, 4.2rem);
    letter-spacing: -.045em;
}

h2 {
    font-size: clamp(1.8rem, 3vw, 2.8rem);
    letter-spacing: -.025em;
}

h3 {
    font-size: 1.35rem;
}

p,
li,
h1,
h2,
h3,
a {
    overflow-wrap: break-word;
}

.site-container,
.site-header-inner {
    width: min(var(--sap-wide), calc(100% - 3rem));
    margin-inline: auto;
}

.skip-link {
    position: fixed;
    top: 1rem;
    left: 1rem;
    z-index: 100;
    padding: .8rem 1rem;
    background: var(--sap-white);
    transform: translateY(-200%);
}

.skip-link:focus {
    transform: translateY(0);
}

/* =========================
   HEADER
   ========================= */
.site-header {
    border-bottom: 1px solid var(--sap-line);
    background: var(--sap-white);
}

.site-header-inner {
    display: grid;
    grid-template-columns: 220px minmax(0, 1fr);
    align-items: center;
    column-gap: 2.5rem;
    padding-block: 1.25rem;
}

.site-brand {
    min-width: 0;
}

.brand-text {
    color: var(--sap-navy);
    font-size: 1.5rem;
    font-weight: 800;
    letter-spacing: -.05em;
    text-decoration: none;
}

.custom-logo-link {
    display: inline-block;
}

.custom-logo {
    display: block;
    width: 200px;
    height: auto;
    max-width: 100%;
    max-height: none;
}

.site-navigation {
    min-width: 0;
    display: flex;
    align-items: center;
    gap: 1rem;
}

.primary-menu {
    display: flex;
    flex: 1 1 auto;
    flex-wrap: nowrap;
    justify-content: flex-end;
    align-items: center;
    gap: .45rem .9rem;
    list-style: none;
    margin: 0;
    padding: 0;
}

.primary-menu a {
    display: block;
    padding-block: .45rem;
    color: var(--sap-navy);
    font-size: .9rem;
    font-weight: 600;
    text-decoration: none;
}

.primary-menu a:hover,
.primary-menu .current-menu-item > a {
    text-decoration: underline;
}

.header-actions {
    flex: 0 0 auto;
    display: flex;
    justify-content: flex-end;
    align-items: center;
    gap: .75rem;
    margin: 0;
    padding-top: 0;
    border-top: 0;
}

.header-actions .button {
    padding: .65rem .85rem;
    font-size: .88rem;
}

.button,
.wp-block-button__link {
    display: inline-block;
    border: 2px solid var(--sap-blue);
    border-radius: 6px;
    padding: .75rem 1.1rem;
    background: var(--sap-blue);
    color: var(--sap-white);
    font: inherit;
    font-weight: 650;
    line-height: 1.4;
    text-align: center;
    text-decoration: none;
}

.button:hover,
.wp-block-button__link:hover {
    background: var(--sap-navy);
    border-color: var(--sap-navy);
    color: var(--sap-white);
}

.button-outline,
.is-style-outline > .wp-block-button__link {
    background: transparent;
    color: var(--sap-blue);
    border: 2px solid currentColor;
}

.menu-toggle {
    margin-left: auto;
    min-height: 44px;
    padding: .6rem 1rem;
    border: 1px solid var(--sap-line);
    border-radius: 6px;
    color: var(--sap-navy);
    background: var(--sap-white);
    font: inherit;
    font-weight: 650;
    white-space: nowrap;
    cursor: pointer;
}

/* =========================
   HOME / SECTIONS
   ========================= */
.home-content > .sap-section,
.editor-styles-wrapper .sap-section {
    padding: clamp(3rem, 6vw, 6rem) var(--sap-gutter);
    margin-block: 0;
}

.sap-section > :first-child {
    margin-top: 0;
}

.sap-section > :last-child {
    margin-bottom: 0;
}

/* =========================
   HERO
   ========================= */
.sap-hero {
    position: relative;
    isolation: isolate;
    overflow: hidden;
    background:
        linear-gradient(
            90deg,
            #f3f6faff 0%,
            #f3f6faf5 48%,
            #f3f6faba 64%,
            #f3f6fa35 100%
        ),
        url("../images/generated/home-hero.webp") 72% center / cover no-repeat;
}

.sap-hero::before {
    content: "";
    position: absolute;
    right: 28%;
    bottom: -12rem;
    z-index: 0;
    width: 28rem;
    height: 28rem;
    border-radius: 46% 54% 42% 58% / 52% 42% 58% 48%;
    background: repeating-radial-gradient(
        ellipse at center,
        transparent 0 14px,
        rgb(46 94 170 / 12%) 15px 17px
    );
    opacity: .72;
    rotate: -18deg;
    pointer-events: none;
}

.sap-hero > * {
    position: relative;
    z-index: 1;
    width: min(65%, 760px);
}

.sap-hero h1 {
    max-width: 780px;
    margin-bottom: 1.25rem;
    font-size: clamp(2.4rem, 4vw, 3.75rem);
}

.sap-hero p {
    max-width: 680px;
    font-size: 1.125rem;
}

.sap-hero .sap-eyebrow {
    margin-bottom: .9rem;
}

.sap-hero .wp-block-buttons {
    margin-block: 1.75rem 1.25rem;
}

.sap-hero .wp-block-buttons + p {
    margin-top: 0;
    font-size: 1rem;
    font-weight: 650;
}

.sap-hero .wp-block-buttons + p a {
    color: var(--sap-navy);
    text-decoration-thickness: 1px;
}

.sap-hero-proof {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    width: min(72%, 820px);
    margin-top: 2rem !important;
    overflow: hidden;
    border: 1px solid rgb(255 255 255 / 70%);
    border-radius: 18px;
    background: rgb(255 255 255 / 72%);
    box-shadow: 0 20px 55px rgb(22 41 74 / 12%);
    backdrop-filter: blur(16px);
}

.sap-hero-proof > * {
    margin: 0 !important;
    padding: 1rem 1.15rem;
}

.sap-hero-proof > * + * {
    border-left: 1px solid rgb(46 94 170 / 14%);
}

.sap-hero-proof p {
    margin: 0;
    font-size: .82rem;
    line-height: 1.35;
}

.sap-hero-proof p:first-child {
    margin-bottom: .35rem;
    color: var(--sap-blue);
    font-size: .7rem;
    font-weight: 850;
    letter-spacing: .1em;
}

.sap-hero-proof p:last-child {
    color: var(--sap-navy);
    font-weight: 750;
}

.sap-eyebrow,
.sap-hero .sap-eyebrow {
    color: var(--sap-blue);
    font-size: .875rem;
    font-weight: 750;
    letter-spacing: .08em;
    text-transform: uppercase;
}

/* =========================
   GRIDS
   ========================= */
.sap-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1.5rem;
    margin-top: 2rem;
}

.sap-grid-four {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 2rem;
}

/* =========================
   MULTIFUNZIONI
   ========================= */
.sap-mfp-section {
    background: linear-gradient(
        180deg,
        var(--sap-light) 0%,
        var(--sap-warm) 100%
    );
}

.sap-section-intro {
    max-width: 760px;
    margin: 1rem 0 2.25rem;
    font-size: clamp(1rem, 1.3vw, 1.12rem);
    line-height: 1.7;
    color: var(--sap-ink);
    opacity: 0.82;
}

.sap-mfp-layout {
    margin-top: 2.25rem;
}

.sap-mfp-content {
    min-width: 0;
}

.sap-mfp-cards {
    display: grid;
    grid-template-columns: minmax(0, 1.35fr) minmax(280px, .65fr);
    grid-template-rows: repeat(2, minmax(0, 1fr));
    gap: 1.5rem;
    margin-top: 2.25rem;
}

/* Noleggio: card principale. */
.sap-mfp-cards .sap-card-featured {
    grid-column: 1;
    grid-row: 1 / 3;
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: clamp(2rem, 4vw, 3rem);
    border-radius: 20px;
    background: linear-gradient(145deg, var(--sap-light) 0%, var(--sap-white) 100%);
    box-shadow: var(--sap-shadow);
}

.sap-mfp-cards .sap-card-featured h3 {
    margin: 0 0 1.5rem;
    font-size: clamp(1.6rem, 2vw, 2rem);
    text-align: left;
}

.sap-mfp-cards .sap-card-featured ul {
    display: grid;
    grid-template-columns: 1fr;
    gap: .85rem;
    width: 100%;
    margin: 0;
    padding: 0;
    list-style: none;
}

.sap-mfp-cards .sap-card-featured li {
    position: relative;
    margin: 0;
    padding-left: 1.5rem;
}

/* Pallino blu degli elenchi (card Noleggio in Home e sezioni servizio). */
.sap-mfp-cards .sap-card-featured li::before,
.sap-service-section li::before {
    content: "";
    position: absolute;
    left: 0;
    top: .7em;
    width: .5rem;
    height: .5rem;
    border-radius: 50%;
    background: var(--sap-blue);
}

/* Vendita + Assistenza (specificità bassa: l'hover di motion.css deve vincere). */
.sap-mfp-cards > :not(.sap-card-featured) {
    display: flex;
    flex-direction: column;
    justify-content: center;
    min-height: 190px;
    padding: 2rem;
    border-radius: 18px;
    box-shadow: 0 10px 28px #16294a0a;
}

.sap-mfp-cards > .sap-card:not(.sap-card-featured) h3 {
    margin: 0 0 .75rem;
}

.sap-mfp-cards > .sap-card:not(.sap-card-featured) p {
    margin: 0;
}

/* CTA assistenza. */
.sap-assistance-cta {
    justify-content: flex-end;
    margin: 1rem 0 0;
}

.sap-assistance-cta .wp-block-button__link {
    display: inline-flex;
    align-items: center;
    gap: .75rem;
}

.sap-assistance-cta .wp-block-button__link::after {
    content: "→";
    font-size: 1.15em;
    line-height: 1;
}

/* =========================
   CARDS
   ========================= */
.sap-card {
    padding: 1.75rem;
    border: 1px solid var(--sap-line);
    border-radius: var(--sap-radius);
    background: var(--sap-white);
    margin: 0;
    box-shadow: 0 8px 24px #16294a08;
}

.sap-card > :first-child {
    margin-top: 0;
}

.sap-card > :last-child {
    margin-bottom: 0;
}

.sap-card ul {
    padding-left: 1.25rem;
}

.sap-service-card {
    display: flex;
    flex-direction: column;
    overflow: hidden;
    border-radius: calc(var(--sap-radius) + 6px);
    box-shadow: var(--sap-shadow);
}

.sap-service-card .wp-block-image {
    width: calc(100% + 3.5rem);
    max-width: none;
    margin: -1.75rem -1.75rem 1.4rem;
    overflow: hidden;
    aspect-ratio: 16 / 8.5;
    background: var(--sap-line);
}

/* Foto delle card: riempiono il riquadro senza deformarsi. */
.sap-service-card .wp-block-image img,
.sap-office-category .wp-block-image img,
.sap-service-section .sap-print-card .wp-block-image img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.sap-service-card h3 {
    margin-bottom: .65rem;
}

/* =========================
   BENEFITS
   ========================= */
.sap-benefits {
    display: grid;
    grid-template-columns: 1fr;
    gap: 0;
    margin: 0;
    counter-reset: sap-benefit;
}

.sap-benefits-section {
    display: grid;
    grid-template-columns: minmax(320px, .9fr) minmax(0, 1.4fr);
    column-gap: clamp(3rem, 7vw, 6rem);
    align-items: start;
    background:
        radial-gradient(
            circle at 92% 12%,
            #a8c0001a 0 7rem,
            transparent 7.1rem
        ),
        radial-gradient(
            circle at 7% 90%,
            #7008d014 0 8rem,
            transparent 8.1rem
        ),
        var(--sap-warm);
}

.sap-benefits-section > h2 {
    position: sticky;
    top: 2rem;
    max-width: 14ch;
    margin: 0;
}

.sap-benefit-item {
    position: relative;
    padding: 1.75rem 0 1.75rem 6.5rem;
    border-top: 1px solid #dcd1c2;
    counter-increment: sap-benefit;
}

.sap-benefit-item:last-child {
    border-bottom: 1px solid #dcd1c2;
}

.sap-benefit-item::before {
    content: "0" counter(sap-benefit);
    position: absolute;
    top: 1.55rem;
    left: 0;
    color: var(--sap-blue);
    font-size: 1rem;
    font-weight: 800;
    letter-spacing: .08em;
}

.sap-benefit-item::after {
    content: "";
    position: absolute;
    top: 3.45rem;
    left: 0;
    width: 3.5rem;
    height: 3px;
    border-radius: 3px;
    background: linear-gradient(
        90deg,
        var(--sap-blue),
        #44bddc
    );
}

.sap-benefit-item h3 {
    margin: 0 0 .45rem;
    font-size: clamp(1.3rem, 2vw, 1.7rem);
}

.sap-benefit-item p {
    margin: 0;
}

/* =========================
   MUTED / CTA
   ========================= */
.sap-muted {
    background: var(--sap-warm);
}

.sap-cta {
    background: var(--sap-navy);
    color: var(--sap-white);
}

.sap-cta-visual {
    position: relative;
    isolation: isolate;
    min-height: 410px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    background:
        linear-gradient(
            90deg,
            #16294ae0 0%,
            #16294ad1 48%,
            #16294a78 100%
        ),
        url("../images/generated/home-cta.webp") center 58% / cover no-repeat;
}

.sap-cta-visual > * {
    width: min(720px, 66%);
}

.home-content .wp-block-button__link {
    border-radius: 10px;
    box-shadow: 0 8px 20px #16294a16;
}

.sap-cta h2,
.sap-cta p,
.sap-cta a {
    color: var(--sap-white);
}

.sap-cta .wp-block-button__link {
    background: var(--sap-white);
    color: var(--sap-navy);
    border-color: var(--sap-white);
}

.sap-cta .is-style-outline .wp-block-button__link {
    background: transparent;
    color: var(--sap-white);
}

.sap-cta .wp-block-button__link:hover {
    background: var(--sap-blue);
    color: var(--sap-white);
}

.wp-block-buttons {
    display: flex;
    flex-wrap: wrap;
    gap: .75rem;
    margin-block: 1.5rem;
}

/* =========================
   FOOTER
   ========================= */
.site-footer {
    background: var(--sap-light);
    padding-block: 3rem;
    font-size: .95rem;
}

.footer-grid {
    display: grid;
    grid-template-columns: 1.15fr 1fr .9fr 1.15fr;
    gap: 2rem;
}

.footer-heading {
    font-size: 1rem;
    margin-top: 0;
}

.site-footer ul {
    list-style: none;
    margin: 0;
    padding: 0;
}

.site-footer li {
    margin-bottom: .6rem;
}

.footer-legal {
    border-top: 1px solid var(--sap-line);
    padding-top: 1.5rem;
    margin-top: 2rem;
}

.footer-legal ul {
    display: flex;
    flex-wrap: wrap;
    gap: 1.5rem;
}

.footer-map {
    display: block;
    overflow: hidden;
    border: 1px solid var(--sap-line);
    border-radius: var(--sap-radius);
    color: var(--sap-navy);
    background: var(--sap-white);
    text-decoration: none;
}

.footer-map-preview {
    position: relative;
    display: block;
    height: 110px;
    overflow: hidden;
    background-color: #e8eef6;
    background-image:
        linear-gradient(
            28deg,
            transparent 44%,
            #fff 45% 49%,
            transparent 50%
        ),
        linear-gradient(
            118deg,
            transparent 42%,
            #fff 43% 47%,
            transparent 48%
        ),
        linear-gradient(
            8deg,
            transparent 56%,
            #cfdbea 57% 59%,
            transparent 60%
        );
}

.footer-map-pin {
    position: absolute;
    left: 50%;
    top: 47%;
    width: 24px;
    height: 24px;
    border: 6px solid var(--sap-blue);
    border-radius: 50% 50% 50% 0;
    background: var(--sap-white);
    transform: translate(-50%, -50%) rotate(-45deg);
    box-shadow: 0 5px 14px #16294a33;
}

.footer-map > span:last-child {
    display: block;
    padding: .9rem 1rem 1rem;
}

.footer-map small {
    color: var(--sap-ink);
}

.footer-map:hover strong {
    text-decoration: underline;
}

/* =========================
   LEGAL PAGES
   ========================= */
.sap-legal-hero {
    position: relative;
    overflow: hidden;
    padding: clamp(4.5rem, 9vw, 7.5rem) var(--sap-gutter);
    color: #fff;
    background:
        radial-gradient(circle at 88% 22%, rgba(109, 212, 255, .16), transparent 24rem),
        linear-gradient(130deg, #10213e 0%, #16294a 58%, #284f89 100%);
}

.sap-legal-hero::after {
    content: "";
    position: absolute;
    width: 22rem;
    height: 22rem;
    right: -7rem;
    bottom: -11rem;
    border: 1px solid rgba(255, 255, 255, .16);
    border-radius: 50%;
}

.sap-legal-hero > * {
    position: relative;
    z-index: 1;
}

.sap-legal-hero h1 {
    max-width: 13ch;
    margin-bottom: 1rem;
    color: #fff;
    font-size: clamp(2.75rem, 7vw, 5.4rem);
}

.sap-legal-hero > p:not(.sap-eyebrow) {
    max-width: 48rem;
    color: rgba(255, 255, 255, .84);
    font-size: clamp(1.05rem, 1.8vw, 1.25rem);
}

.sap-legal-hero .sap-legal-updated {
    margin-top: 1.75rem;
    font-size: .92rem;
}

.sap-legal-page {
    max-width: 58rem;
    padding: clamp(3.5rem, 7vw, 6rem) var(--sap-gutter);
}

.sap-legal-page h2 {
    margin-top: 3.25rem;
    padding-top: 1.25rem;
    border-top: 1px solid var(--sap-line);
    color: var(--sap-navy);
    font-size: clamp(1.55rem, 3vw, 2.1rem);
}

.sap-legal-page h2:first-child {
    margin-top: 0;
    padding-top: 0;
    border-top: 0;
}

.sap-legal-page h3 {
    margin-top: 1.75rem;
    color: var(--sap-navy);
    font-size: 1.18rem;
}

.sap-legal-page p,
.sap-legal-page li {
    line-height: 1.75;
}

.sap-legal-page li + li {
    margin-top: .65rem;
}

.sap-legal-table {
    margin-block: 1.75rem;
    overflow-x: auto;
    border-radius: 1rem;
    box-shadow: var(--sap-shadow-sm);
}

.sap-legal-table table {
    min-width: 42rem;
    margin: 0;
    border-collapse: collapse;
    background: #fff;
}

.sap-legal-table th,
.sap-legal-table td {
    padding: 1rem;
    border: 1px solid var(--sap-line);
    vertical-align: top;
    text-align: left;
}

.sap-legal-table th {
    color: #fff;
    background: var(--sap-navy);
}

/* =========================
   SERVICE PAGES
   ========================= */
.service-page .entry-content > .sap-service-hero {
    width: 100%;
    max-width: none;
    margin-inline: 0;
}

/* Service pages use their own section spacing. */
body.page-template-service-page .page-content {
    padding-block: 0;
}

/* Shared service hero layout. */
.sap-service-hero {
    position: relative;
    isolation: isolate;
    overflow: hidden;
    min-height: 520px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: clamp(4rem, 8vw, 7rem) var(--sap-gutter);
    background-color: var(--sap-navy);
    color: var(--sap-white);
}

/* Multifunction-specific hero artwork. */
.sap-service-hero-mfp {
    background:
        linear-gradient(
            90deg,
            #16294af2 0%,
            #16294ae0 45%,
            #16294a75 100%
        ),
        url("../images/generated/multifunzioni-hero.webp") 70% center / cover no-repeat;
}

.sap-service-hero-assistance {
    background:
        linear-gradient(
            90deg,
            #16294af5 0%,
            #16294ae8 46%,
            #16294a58 100%
        ),
        url("../images/generated/assistenza-hero.webp") 72% center / cover no-repeat;
}

.sap-service-hero > * {
    position: relative;
    z-index: 1;
    width: min(680px, 60%);
}

.sap-service-hero h1,
.sap-service-hero p,
.sap-service-hero a {
    color: var(--sap-white);
}

.sap-service-hero h1 {
    margin: .75rem 0 1.25rem;
}

.sap-service-hero > p:not(.sap-eyebrow) {
    font-size: 1.15rem;
    line-height: 1.7;
}

.sap-service-hero .wp-block-buttons {
    margin-top: 2rem;
}

.sap-service-hero .is-style-outline .wp-block-button__link {
    background: transparent;
    border-color: var(--sap-white);
    color: var(--sap-white);
}

/* Shared layout for all service sections. */
.sap-service-section {
    padding: clamp(4rem, 7vw, 6rem) var(--sap-gutter);
}

.sap-service-inner {
    max-width: var(--sap-wide);
    margin-inline: auto;
}

.sap-service-section .wp-block-columns {
    width: 100%;
    max-width: none;
    align-items: center;
    gap: clamp(2.5rem, 5vw, 5rem);
    margin: 0;
}

.sap-service-section .wp-block-column {
    min-width: 0;
}

.sap-service-section h2 {
    max-width: 14ch;
    margin: .75rem 0 1.25rem;
}

.sap-service-section ul {
    list-style: none;
    margin: 1.75rem 0 0;
    padding: 0;
}

.sap-service-section li {
    position: relative;
    margin-bottom: .8rem;
    padding-left: 1.4rem;
}

/* =========================
   CANCELLERIA E UFFICIO
   ========================= */
.sap-office-categories {
    background: var(--sap-light);
}

.sap-office-categories h2 {
    max-width: 760px;
}

.sap-office-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1.75rem;
    margin-top: 2.5rem;
}

.sap-office-grid > .sap-office-category {
    margin: 0 !important;
}

.sap-office-category {
    overflow: hidden;
    border: 1px solid var(--sap-line);
    border-radius: 18px;
    background: var(--sap-white);
    box-shadow: var(--sap-shadow);
}

.sap-office-category .wp-block-image {
    margin: 0;
    aspect-ratio: 16 / 9;
    overflow: hidden;
    border-radius: 0;
    box-shadow: none;
}

.sap-office-category h3 {
    margin: 0;
    padding: 1.6rem 1.6rem .7rem;
}

.sap-office-category > p {
    margin: 0;
    padding: 0 1.6rem 1.8rem;
}

@media (max-width: 48rem) {
    .sap-office-grid {
        grid-template-columns: 1fr;
    }
}

/*
 * Service images follow their original proportions.
 * Editors can replace photos in Gutenberg without image-specific CSS.
 */
.sap-service-section .wp-block-image {
    width: 100%;
    max-width: none;
    margin: 0;
    overflow: hidden;
    border-radius: 18px;
    box-shadow: var(--sap-shadow);
}

.sap-service-section .wp-block-image img {
    display: block;
    width: 100%;
    height: auto;
}

/* Section-specific variants. */
.sap-service-rental {
    background: var(--sap-white);
}

/* Choice / decision criteria. */
.sap-service-choice {
    background: var(--sap-warm);
}

.sap-service-choice > .sap-service-inner > p:not(.sap-eyebrow) {
    max-width: 760px;
    margin-bottom: 2.5rem;
}

.sap-choice-grid,
.sap-brand-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1.5rem;
    margin-top: 2.5rem;
}

.sap-choice-grid > .sap-choice-item,
.sap-brand-grid > .sap-brand-item {
    margin-block: 0;
}

.sap-choice-item {
    padding: 2rem;
    border: 1px solid var(--sap-line);
    border-radius: 16px;
    background: var(--sap-white);
    box-shadow: 0 10px 28px #16294a0a;
}

.sap-choice-number {
    margin: 0 0 1rem;
    color: var(--sap-blue);
    font-size: .9rem;
    font-weight: 800;
    letter-spacing: .08em;
}

.sap-choice-item h3 {
    margin: 0 0 .75rem;
}

.sap-choice-item p:last-child {
    margin-bottom: 0;
}

/* Brands. */
.sap-service-brands {
    background: var(--sap-white);
}

.sap-service-brands h2 {
    max-width: 720px;
    margin: .75rem 0 1.25rem;
}

.sap-service-brands > .sap-service-inner > p:not(.sap-eyebrow) {
    max-width: 760px;
    margin: 0 0 2.5rem;
}

.sap-brand-item {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 180px;
    padding: 2rem;
    border: 1px solid var(--sap-line);
    border-radius: 16px;
    background: var(--sap-white);
    box-shadow: var(--sap-shadow);
}

.sap-service-section .sap-brand-item .wp-block-image {
    width: auto;
    max-width: 100%;
    margin: 0;
    overflow: visible;
    border-radius: 0;
    box-shadow: none;
}

.sap-service-section .sap-brand-item .wp-block-image img {
    display: block;
    width: auto;
    max-width: min(100%, 260px);
    max-height: 80px;
    height: auto;
    object-fit: contain;
}

/* Final service CTA. */
.sap-service-cta {
    padding: clamp(4.5rem, 7vw, 6rem) var(--sap-gutter);
    background: var(--sap-navy);
    color: var(--sap-white);
}

.sap-service-cta .sap-service-inner {
    display: grid;
    grid-template-columns: minmax(0, 1.4fr) minmax(15rem, .8fr);
    gap: 3rem;
    align-items: center;
}

.sap-service-cta-copy {
    max-width: 42rem;
}

.sap-service-cta-copy > *:first-child {
    margin-top: 0;
}

.sap-service-cta-copy .sap-eyebrow {
    color: var(--sap-cyan);
}

.sap-service-cta-copy h2,
.sap-service-cta-copy p {
    color: var(--sap-white);
}

.sap-service-cta-actions {
    display: flex;
    justify-content: center;
    align-items: flex-start;
}

.sap-service-cta-actions .wp-block-buttons {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 1rem;
    width: 100%;
    max-width: 18rem;
    margin-block: 0;
}

.sap-service-cta-actions .wp-block-button {
    width: 100%;
}

.sap-service-cta-actions .wp-block-button__link {
    width: 100%;
    justify-content: center;
    text-align: center;
}

.sap-service-cta-actions .wp-block-button__link:hover {
    background: var(--sap-white);
    border-color: var(--sap-white);
    color: var(--sap-navy);
}

@media (max-width: 56rem) {
    .sap-service-cta .sap-service-inner {
        grid-template-columns: 1fr;
        gap: 2rem;
    }

    .sap-service-cta-actions {
        justify-content: flex-start;
    }

    .sap-service-cta-actions .wp-block-buttons {
        max-width: none;
    }
}

/* Form Assistenza */
.sap-assistance-form-card {
    width: min(100%, 820px);
    margin: 2rem auto 0;
    padding: clamp(1.5rem, 3vw, 2.5rem);
    border: 1px solid var(--sap-line);
    border-radius: 18px;
    background: var(--sap-white);
    box-shadow: var(--sap-shadow);
}

/* =========================
   ABOUT PAGE
   ========================= */
.sap-about-values {
    gap: 1.5rem;
    margin-block: 2rem 4rem;
    padding: 2rem;
    border-radius: 18px;
    background: var(--sap-light);
}

.sap-about-values > .wp-block-column {
    position: relative;
    padding: 1.75rem;
    border: 1px solid var(--sap-line);
    border-radius: 16px;
    background: var(--sap-white);
    box-shadow: 0 10px 28px #16294a0a;
}

.sap-about-values > .wp-block-column::before {
    content: "";
    position: absolute;
    top: 0;
    left: 1.75rem;
    width: 3rem;
    height: 3px;
    border-radius: 3px;
    background: var(--sap-blue);
}

.sap-about-values h3 {
    margin: .5rem 0 .75rem;
}

.sap-about-values p {
    margin-bottom: 0;
}

.sap-about-areas {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1.5rem 2.5rem;
    margin-block: 2rem 0;
}

.sap-about-areas > * {
    margin-block: 0;
    padding: 1.5rem 0;
    border-top: 1px solid var(--sap-line);
}

.sap-about-areas h3 {
    margin: 0 0 .6rem;
}

.sap-about-areas p {
    margin: 0;
}

@media (max-width: 48rem) {
    .sap-about-values {
        flex-direction: column;
        padding: 1.25rem;
    }

    .sap-about-areas {
        grid-template-columns: 1fr;
    }
}

/* =========================
   CONTACT PAGE
   ========================= */
.sap-contact-layout {
    width: min(var(--sap-wide), calc(100% - 3rem));
    margin-inline: auto !important;
    gap: clamp(2rem, 5vw, 4rem);
    align-items: stretch;
}

.sap-contact-layout > .wp-block-column {
    min-width: 0;
}

.sap-contact-layout iframe {
    display: block;
    width: 100%;
    height: 100%;
    min-height: 420px;
    border: 0;
    border-radius: 18px;
    box-shadow: var(--sap-shadow);
}

@media (max-width: 48rem) {
    .sap-contact-layout {
        flex-direction: column;
    }

    .sap-contact-layout iframe {
        min-height: 340px;
    }
}

/* =========================
   STAMPA E GRAFICA - CATALOGO
   ========================= */
.sap-print-catalog {
    background: var(--sap-light);
}

.sap-print-catalog > .sap-service-inner > p:not(.sap-eyebrow) {
    max-width: 760px;
    margin-bottom: 2.5rem;
}

.sap-print-catalog h2 {
    max-width: 720px;
}

/*
 * Gutenberg can add flex widths, margins and layout positioning to Group blocks.
 * The catalog grid owns the layout, while every card keeps its natural height.
 */
.sap-print-grid {
    display: grid !important;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    grid-auto-flow: row;
    grid-auto-rows: max-content;
    align-items: start;
    gap: 1.75rem;
    width: 100%;
    max-width: none;
    margin: 2.5rem 0 0;
}

.sap-print-grid > .sap-print-card {
    grid-column: auto !important;
    width: 100% !important;
    min-width: 0;
    max-width: none !important;
    height: auto !important;
    margin: 0 !important;
    flex: none !important;
}

.sap-print-card {
    overflow: hidden;
    border: 1px solid var(--sap-line);
    border-radius: 18px;
    background: var(--sap-white);
    box-shadow: 0 12px 30px rgb(22 41 74 / 8%);
}

.sap-service-section .sap-print-card .wp-block-image {
    width: 100%;
    max-width: none;
    margin: 0;
    overflow: hidden;
    border-radius: 0;
    box-shadow: none;
    aspect-ratio: 4 / 3;
    background: var(--sap-line);
}

.sap-print-card h3 {
    margin: 0;
    padding: 1.75rem 1.75rem .75rem;
}

.sap-print-card > p {
    margin: 0;
    padding: 0 1.75rem 2rem;
}

@media (max-width: 56rem) {
    .sap-print-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 36rem) {
    .sap-print-grid {
        grid-template-columns: minmax(0, 1fr);
        gap: 1.25rem;
    }

    .sap-print-card h3 {
        padding: 1.5rem 1.5rem .65rem;
    }

    .sap-print-card > p {
        padding: 0 1.5rem 1.75rem;
    }
}

/* =========================
   STAMPA E GRAFICA - PROCESSO
   ========================= */
.sap-print-process {
    background: var(--sap-white);
}

.sap-print-process h2 {
    max-width: 720px;
}

/*
 * The Group block can carry Gutenberg layout widths and margins.
 * This grid owns the four process steps and resets those values on direct children.
 */
.sap-print-process-grid {
    display: grid !important;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    align-items: stretch;
    gap: 1.5rem;
    width: 100%;
    max-width: none;
    margin: 2.75rem 0 0;
}

.sap-print-process-grid > * {
    grid-column: auto !important;
    width: 100% !important;
    min-width: 0;
    max-width: none !important;
    margin: 0 !important;
    padding: 1.75rem;
    border: 1px solid var(--sap-line);
    border-top: 3px solid var(--sap-blue);
    border-radius: 16px;
    background: var(--sap-light);
}

.sap-print-process-grid > * > :first-child {
    margin: 0 0 1rem;
    color: var(--sap-blue);
    font-size: .9rem;
    font-weight: 800;
    letter-spacing: .08em;
}

/* Keep the four step titles visually consistent even if Gutenberg preserved a different heading level. */
.sap-print-process-grid :is(h2, h3) {
    max-width: none;
    margin: 0 0 .75rem;
    font-size: 1.3rem;
    line-height: 1.25;
}

.sap-print-process-grid p:last-child {
    margin-bottom: 0;
}

@media (max-width: 56rem) {
    .sap-print-process-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 36rem) {
    .sap-print-process-grid {
        grid-template-columns: minmax(0, 1fr);
        gap: 1.25rem;
    }

    .sap-print-process-grid > * {
        padding: 1.5rem;
    }
}

/* =========================
   PERSONALIZZAZIONI E GADGET
   ========================= */
.sap-custom-intro {
    background: var(--sap-white);
}

.sap-custom-intro h2 {
    max-width: 720px;
}

.sap-custom-intro p:not(.sap-eyebrow) {
    max-width: 760px;
}

/* =========================
   SHOWCASE / COVER
   ========================= */
.sap-custom-showcase {
    position: relative;
    min-height: 520px;
    overflow: hidden;
    margin: 0;
}

/* Contenitore Gutenberg */
.sap-custom-showcase .wp-block-cover__inner-container {
    position: relative;
    z-index: 2;
    display: flex;
    align-items: center;
    width: min(var(--sap-wide), calc(100% - 3rem));
    margin-inline: auto;
}

/* Box testo */
.sap-custom-showcase-content {
    width: min(100%, 520px);
    margin: 0 !important;
    padding: clamp(1.75rem, 4vw, 3rem);
    border: 1px solid rgb(255 255 255 / 18%);
    border-radius: 20px;
    background: rgb(22 41 74 / 84%);
    backdrop-filter: blur(7px);
    box-shadow: 0 20px 50px rgb(0 0 0 / 22%);
    color: var(--sap-white);
}

.sap-custom-showcase-content h2,
.sap-custom-showcase-content p {
    color: var(--sap-white);
}

.sap-custom-showcase-content .sap-eyebrow {
    margin: 0 0 .8rem;
    color: var(--sap-cyan);
}

.sap-custom-showcase-content h2 {
    max-width: none;
    margin: 0 0 1rem;
    font-size: clamp(2rem, 3vw, 3rem);
}

.sap-custom-showcase-content p {
    margin: 0 0 1rem;
}

.sap-custom-showcase-content p:last-child {
    margin-bottom: 0;
    padding-top: .9rem;
    border-top: 1px solid rgb(255 255 255 / 20%);
    font-size: .95rem;
    font-weight: 650;
}

/* =========================
   ALTERNANZA
   ========================= */
/* Sinistra */
.sap-custom-showcase-mugs .wp-block-cover__inner-container,
.sap-custom-showcase-bags .wp-block-cover__inner-container,
.sap-custom-showcase-photo .wp-block-cover__inner-container {
    justify-content: flex-start;
}

/* Destra */
.sap-custom-showcase-apparel .wp-block-cover__inner-container,
.sap-custom-showcase-gadgets .wp-block-cover__inner-container,
.sap-custom-showcase-home .wp-block-cover__inner-container {
    justify-content: flex-end;
}

/* Box chiari nelle sezioni a destra */
.sap-custom-showcase-apparel .sap-custom-showcase-content,
.sap-custom-showcase-gadgets .sap-custom-showcase-content,
.sap-custom-showcase-home .sap-custom-showcase-content {
    border-color: rgb(22 41 74 / 12%);
    background: rgb(255 255 255 / 90%);
    color: var(--sap-navy);
}

.sap-custom-showcase-apparel .sap-custom-showcase-content h2,
.sap-custom-showcase-apparel .sap-custom-showcase-content p,
.sap-custom-showcase-gadgets .sap-custom-showcase-content h2,
.sap-custom-showcase-gadgets .sap-custom-showcase-content p,
.sap-custom-showcase-home .sap-custom-showcase-content h2,
.sap-custom-showcase-home .sap-custom-showcase-content p {
    color: var(--sap-navy);
}

.sap-custom-showcase-apparel .sap-custom-showcase-content .sap-eyebrow,
.sap-custom-showcase-gadgets .sap-custom-showcase-content .sap-eyebrow,
.sap-custom-showcase-home .sap-custom-showcase-content .sap-eyebrow {
    color: var(--sap-blue);
}

.sap-custom-showcase-apparel .sap-custom-showcase-content p:last-child,
.sap-custom-showcase-gadgets .sap-custom-showcase-content p:last-child,
.sap-custom-showcase-home .sap-custom-showcase-content p:last-child {
    border-top-color: rgb(22 41 74 / 14%);
}

/* Personalizzazioni: mobile. */
@media (max-width: 48rem) {
    .sap-custom-showcase {
        min-height: 480px;
    }

    .sap-custom-showcase .wp-block-cover__inner-container {
        width: calc(100% - 2rem);
        justify-content: flex-start !important;
    }

    .sap-custom-showcase-content {
        width: 100%;
        padding: 1.5rem;
    }

    .sap-custom-showcase-content h2 {
        font-size: clamp(1.8rem, 8vw, 2.4rem);
    }
}

/* =========================
   PAGE CONTENT
   ========================= */
.page-content {
    padding-block: 4rem;
    min-height: 50vh;
}

.page-heading {
    max-width: 760px;
    margin-inline: auto;
}

article:not(.service-page) .entry-content > :not(.alignwide):not(.alignfull) {
    max-width: 760px;
    margin-inline: auto;
}

.entry-content .alignwide {
    max-width: var(--sap-wide);
}

.entry-content .alignfull {
    max-width: 100%;
}

.post-summary {
    padding-block: 1.5rem;
    border-bottom: 1px solid var(--sap-line);
}

.screen-reader-text {
    position: absolute;
    width: 1px;
    height: 1px;
    margin: -1px;
    overflow: hidden;
    clip-path: inset(50%);
    white-space: nowrap;
}

/* =========================
   V1 COMPACT INFORMATION ARCHITECTURE
   ========================= */
.sap-home-paths {
    background: var(--sap-white);
}

.sap-home-paths > h2 {
    max-width: 15ch;
}

.sap-path-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.35fr) minmax(17rem, .65fr);
    grid-template-rows: repeat(2, minmax(0, 1fr));
    gap: 1.5rem;
    margin-top: 2.5rem;
}

.sap-path-card {
    position: relative;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    justify-content: center;
    min-height: 240px;
    margin: 0 !important;
    padding: clamp(1.75rem, 3vw, 2.5rem);
    border: 1px solid var(--sap-line);
    border-radius: 20px;
    background: var(--sap-white);
    box-shadow: var(--sap-shadow);
}

.sap-path-card-featured {
    grid-row: 1 / 3;
    min-height: 510px;
    justify-content: flex-end;
    isolation: isolate;
    color: var(--sap-white);
}

.sap-path-card-featured::after {
    content: "";
    position: absolute;
    inset: 0;
    z-index: -1;
    background: linear-gradient(180deg, #16294a05 15%, #16294ae8 88%);
}

.sap-path-card-featured .wp-block-image {
    position: absolute;
    inset: 0;
    z-index: -2;
    margin: 0;
}

.sap-path-card-featured .wp-block-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.sap-path-card h3 {
    margin: .4rem 0 .75rem;
    font-size: clamp(1.55rem, 2.3vw, 2.35rem);
}

.sap-path-card > p {
    max-width: 38rem;
    margin-block: 0 1rem;
}

.sap-path-card > p:last-child {
    margin: auto 0 0;
    padding-top: 1rem;
    font-weight: 750;
}

.sap-path-card-featured h3,
.sap-path-card-featured p,
.sap-path-card-featured a {
    color: var(--sap-white);
}

.sap-path-number {
    color: var(--sap-blue);
    font-size: .8rem;
    font-weight: 800;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.sap-path-card-featured .sap-path-number {
    color: rgb(255 255 255 / 82%);
}

.sap-path-card-assistance {
    background:
        radial-gradient(circle at 92% 15%, rgb(0 176 248 / 24%) 0 5rem, transparent 5.1rem),
        linear-gradient(145deg, #122541 0%, #19365f 100%);
    color: var(--sap-white);
}

.sap-path-card-assistance h3,
.sap-path-card-assistance p,
.sap-path-card-assistance a {
    color: var(--sap-white);
}

.sap-path-card-assistance .sap-path-number {
    color: #7edcff;
}

.sap-path-card-office {
    background:
        radial-gradient(circle at 90% 20%, #7008d012 0 5.5rem, transparent 5.6rem),
        var(--sap-warm);
}

.sap-home-story {
    display: grid;
    grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr);
    align-items: stretch;
    gap: 0;
    padding-block: 0 !important;
    background: var(--sap-navy);
}

.sap-home-story-copy {
    display: flex;
    flex-direction: column;
    justify-content: center;
    margin: 0 !important;
    padding: clamp(3rem, 7vw, 6rem) clamp(1.5rem, 6vw, 5rem) clamp(3rem, 7vw, 6rem) 0;
    color: var(--sap-white);
}

.sap-home-story-copy h2,
.sap-home-story-copy p,
.sap-home-story-copy a {
    color: var(--sap-white);
}

.sap-home-story-copy .sap-eyebrow {
    color: var(--sap-cyan);
}

.sap-home-story-copy h2 {
    max-width: 13ch;
}

.sap-home-story-copy p:last-child {
    font-weight: 750;
}

.sap-home-story-media {
    min-height: 520px;
    margin: 0 calc(-1 * var(--sap-gutter)) 0 0 !important;
}

.sap-home-story-media .wp-block-image,
.sap-home-story-media img {
    width: 100%;
    height: 100%;
    margin: 0;
}

.sap-home-story-media img {
    object-fit: cover;
}

/* Ufficio e personalizzazione. */
.sap-service-hero-office-hub {
    background:
        linear-gradient(90deg, #16294af2 0%, #16294ae2 46%, #16294a38 100%),
        url("../images/generated/ufficio-hero.webp") 68% center / cover no-repeat;
}

.sap-office-jump {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1rem;
    padding: 1.25rem var(--sap-gutter);
    background: var(--sap-white);
    box-shadow: 0 12px 30px #16294a0d;
}

.sap-office-jump p {
    margin: 0;
}

.sap-office-jump a {
    display: block;
    padding: 1rem 1.25rem;
    border: 1px solid var(--sap-line);
    border-radius: 999px;
    color: var(--sap-navy);
    font-weight: 750;
    text-align: center;
    text-decoration: none;
}

.sap-office-jump a:hover {
    border-color: var(--sap-blue);
    color: var(--sap-blue);
}

.sap-office-hub-section:nth-of-type(even) {
    background: var(--sap-light);
}

.sap-office-hub-custom {
    background: var(--sap-warm);
}

.sap-office-process {
    background: var(--sap-white);
}

.sap-office-process h2 {
    max-width: 16ch;
}

.sap-office-process-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1.5rem;
    margin-top: 2.5rem;
}

.sap-office-process-grid > * {
    margin: 0 !important;
    padding: 2rem;
    border-top: 3px solid var(--sap-blue);
    border-radius: 16px;
    background: var(--sap-light);
}

.sap-office-process-grid > * > p:first-child {
    color: var(--sap-blue);
    font-size: .85rem;
    font-weight: 800;
}

.sap-office-process-grid h3 {
    margin: .75rem 0;
}

/* Chi siamo. */
.page .sap-about-hero,
.page .sap-contact-hero {
    width: 100%;
    max-width: none !important;
    margin: 0 0 4rem !important;
    padding: clamp(4rem, 8vw, 7rem) var(--sap-gutter);
    background: var(--sap-navy);
    color: var(--sap-white);
}

.sap-about-hero h1,
.sap-about-hero p,
.sap-contact-hero h1,
.sap-contact-hero p {
    max-width: 760px;
    margin-inline: auto;
    color: var(--sap-white);
}

.sap-about-hero .sap-eyebrow,
.sap-contact-hero .sap-eyebrow {
    color: var(--sap-cyan);
}

.sap-about-intro {
    width: min(var(--sap-wide), calc(100% - 3rem));
    margin: 4rem auto !important;
}

.service-page .sap-about-values {
    width: min(var(--sap-wide), calc(100% - 3rem));
    margin-inline: auto;
}

.sap-about-intro h2 {
    max-width: 14ch;
}

.sap-about-territory {
    width: 100%;
    max-width: none !important;
    margin: 4rem 0 0 !important;
    padding: clamp(3.5rem, 7vw, 6rem) var(--sap-gutter);
    background: var(--sap-warm);
}

.sap-about-territory > * {
    max-width: 760px;
    margin-inline: auto;
}

.sap-about-territory h2 {
    max-width: 14ch;
}

/* Contatti. */
.sap-contact-paths {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1.5rem;
    width: min(var(--sap-wide), calc(100% - 3rem));
    margin: 4rem auto !important;
}

.sap-contact-card {
    margin: 0 !important;
    padding: clamp(2rem, 4vw, 3rem);
    border: 1px solid var(--sap-line);
    border-radius: 20px;
    background: var(--sap-light);
}

.sap-contact-card-dark {
    background: var(--sap-navy);
    color: var(--sap-white);
}

.sap-contact-card-dark h2,
.sap-contact-card-dark p,
.sap-contact-card-dark a {
    color: var(--sap-white);
}

.sap-contact-card-dark .sap-eyebrow {
    color: var(--sap-cyan);
}

.sap-contact-details {
    width: min(var(--sap-wide), calc(100% - 3rem));
    margin: 4rem auto;
}

.sap-contact-map-card {
    min-height: 100%;
    padding: clamp(2rem, 5vw, 4rem);
    border-radius: 20px;
    background:
        radial-gradient(circle at 85% 18%, #00b0f82b 0 6rem, transparent 6.1rem),
        var(--sap-warm);
}

.sap-contact-map-card h2 {
    max-width: 12ch;
}

@media (max-width: 64rem) {
    .sap-path-grid {
        grid-template-columns: 1fr 1fr;
        grid-template-rows: auto auto;
    }

    .sap-path-card-featured {
        grid-column: 1 / 3;
        grid-row: auto;
        min-height: 430px;
    }

    .sap-home-story {
        grid-template-columns: 1fr;
    }

    .sap-home-story-copy {
        padding-right: 0;
    }

    .sap-home-story-media {
        min-height: 380px;
        margin: 0 calc(-1 * var(--sap-gutter)) !important;
    }
}

@media (max-width: 48rem) {
    .sap-path-grid,
    .sap-office-jump,
    .sap-office-process-grid,
    .sap-contact-paths {
        grid-template-columns: 1fr;
    }

    .sap-path-card-featured {
        grid-column: auto;
        min-height: 410px;
    }

    .sap-office-jump {
        gap: .65rem;
    }

    .sap-office-jump a {
        text-align: left;
    }

    .sap-office-hub-custom .wp-block-columns {
        flex-direction: column-reverse;
    }

    .page .sap-about-hero,
    .page .sap-contact-hero {
        margin-top: 0 !important;
    }
}

/* =========================
   TABLET / COMPACT HEADER
   ========================= */
@media (max-width: 79.99rem) {
    .site-header-inner {
        grid-template-columns: minmax(0, 1fr) auto;
        grid-template-areas:
            "brand toggle"
            "nav nav";
        column-gap: 1rem;
        row-gap: 0;
        padding-block: 1rem;
    }

    .site-brand {
        grid-area: brand;
        align-self: center;
    }

    .custom-logo-link {
        display: block;
        width: fit-content;
        max-width: 100%;
    }

    .custom-logo {
        width: 190px;
    }

    .menu-toggle {
        grid-area: toggle;
        justify-self: end;
        align-self: center;
        margin-left: 0;
    }

    .site-navigation {
        grid-area: nav;
        flex-direction: column;
        align-items: stretch;
        width: 100%;
        margin-top: 1rem;
        padding-top: .5rem;
        border-top: 1px solid var(--sap-line);
    }

    .primary-menu {
        flex: none;
        flex-direction: column;
        align-items: stretch;
        justify-content: flex-start;
        gap: 0;
        width: 100%;
    }

    .primary-menu li {
        width: 100%;
        margin: 0;
    }

    .primary-menu a {
        width: 100%;
        padding: .7rem 0;
        font-size: .95rem;
    }

    .header-actions {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        width: 100%;
        margin-top: .25rem;
        padding-top: 1rem;
        border-top: 1px solid var(--sap-line);
    }

    .header-actions .button {
        display: block;
        width: 100%;
    }

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

    .sap-hero > * {
        width: min(68%, 720px);
    }
}

/* =========================
   MOBILE
   ========================= */
@media (max-width: 48rem) {
    .site-header-inner {
        width: min(100% - 2rem, var(--sap-wide));
        column-gap: .75rem;
        padding-block: .75rem;
    }

    .custom-logo {
        width: 150px;
    }

    .menu-toggle {
        padding: .55rem .85rem;
    }

    .site-navigation {
        margin-top: .75rem;
        padding-top: .25rem;
    }

    .primary-menu a {
        padding: .65rem 0;
    }

    .header-actions {
        grid-template-columns: 1fr;
        gap: .65rem;
    }

    /* Home hero. */

    .home-content > .sap-hero,
    .editor-styles-wrapper .sap-hero {
        padding-block: 3.25rem;
        background:
            linear-gradient(
                180deg,
                #f3f6faf7 0%,
                #f3f6faed 70%,
                #f3f6fad9 100%
            ),
            url("../images/generated/home-hero.webp") 58% center / cover no-repeat;
    }

    .sap-hero > * {
        width: 100%;
    }

    .sap-hero h1 {
        max-width: 17ch;
        margin-bottom: 1.1rem;
        font-size: clamp(2rem, 9.5vw, 2.75rem);
        line-height: 1.08;
    }

    .sap-hero p {
        max-width: 34rem;
        font-size: 1.05rem;
        line-height: 1.6;
    }

    .sap-hero .wp-block-buttons {
        gap: .65rem;
        margin-block: 1.5rem 1.1rem;
    }

    .sap-hero-proof {
        width: 100%;
        margin-top: 1.5rem !important;
        border-radius: 15px;
    }

    .sap-hero-proof > * {
        padding: .8rem .65rem;
    }

    .sap-hero-proof p {
        font-size: .72rem;
    }

    .sap-hero-proof p:first-child {
        font-size: .64rem;
    }

    /* Trust strip. */

    .sap-trust-inner {
        grid-template-columns: 1fr;
    }

    .sap-trust-inner p + p {
        border-left: 0;
        border-top: 1px solid #e5dacb;
    }

    /* Generic grids. */

    .sap-grid,
    .sap-grid-four,
    .footer-grid {
        grid-template-columns: 1fr;
    }

    .sap-card {
        padding: 1.5rem;
    }
    /* Home multifunction section. */
    .sap-mfp-cards {
        grid-template-columns: 1fr;
        grid-template-rows: auto;
        gap: 1rem;
    }

    .sap-mfp-cards .sap-card-featured {
        grid-column: auto;
        grid-row: auto;
        padding: 1.75rem;
    }

    .sap-mfp-cards > .sap-card:not(.sap-card-featured) {
        min-height: auto;
        padding: 1.5rem;
    }

    .sap-assistance-cta,
    .sap-assistance-cta .wp-block-button,
    .sap-assistance-cta .wp-block-button__link {
        width: 100%;
    }

    .sap-assistance-cta {
        justify-content: stretch;
    }

    .sap-assistance-cta .wp-block-button__link {
        justify-content: center;
    }

    /* Service cards. */

    .sap-service-card .wp-block-image {
        width: calc(100% + 3rem);
        margin: -1.5rem -1.5rem 1.25rem;
    }

    /* Home benefits. */

    .sap-benefits-section {
        grid-template-columns: 1fr;
        row-gap: 2rem;
    }

    .sap-benefits-section > h2 {
        position: static;
        max-width: 13ch;
    }

    .sap-benefit-item {
        padding: 1.4rem 0 1.4rem 4.75rem;
    }

    .sap-benefit-item::before {
        top: 1.25rem;
    }

    .sap-benefit-item::after {
        top: 3rem;
        width: 2.75rem;
    }

    /* Home visual CTA. */

    .sap-cta-visual {
        min-height: 390px;
        background-position: 65% center;
    }

    .sap-cta-visual > * {
        width: 100%;
    }

    /* Service page. */

    .sap-service-hero {
        min-height: 460px;
        padding-block: 3.5rem;
    }

    .sap-service-hero-mfp {
        background-position: 0 0, 62% center;
    }

    .sap-service-hero > * {
        width: 100%;
    }

    .sap-service-hero h1 {
        max-width: 18ch;
        font-size: clamp(2.1rem, 9vw, 3rem);
        line-height: 1.08;
    }

    .sap-service-hero > p:not(.sap-eyebrow) {
        font-size: 1.05rem;
    }

    .sap-service-section {
        padding-block: clamp(3rem, 10vw, 4rem);
    }

    .sap-service-section .wp-block-columns {
        flex-direction: column;
        gap: 2rem;
    }

    .sap-service-section h2 {
        max-width: none;
    }

    .sap-choice-grid,
    .sap-brand-grid {
        grid-template-columns: 1fr;
    }

    .sap-choice-grid {
        gap: 1rem;
    }

    .sap-choice-item {
        width: 100%;
        padding: 1.5rem;
    }

    .sap-brand-item {
        min-height: 150px;
        padding: 1.5rem;
    }

    .sap-service-cta {
        padding-block: 3.5rem;
    }

    /* Buttons. */

    .wp-block-buttons > .wp-block-button {
        max-width: 100%;
        width: 100%;
    }

    .wp-block-button__link {
        width: 100%;
    }
}

/* =========================
   VERY SMALL MOBILE
   ========================= */
@media (max-width: 22rem) {
    .site-header-inner {
        width: calc(100% - 1.5rem);
        column-gap: .6rem;
    }

    .custom-logo {
        width: 135px;
    }

    .menu-toggle {
        padding-inline: .7rem;
    }
}

/* =========================
   V1 VISUAL DEPTH
   ========================= */
:root {
    --sap-shadow: 0 22px 55px rgb(22 41 74 / 12%);
    --sap-shadow-strong: 0 34px 80px rgb(22 41 74 / 20%);
    --sap-surface: rgb(255 255 255 / 88%);
}

body {
    background: #eef3f9;
}

.site-header {
    position: relative;
    z-index: 20;
    background: rgb(255 255 255 / 94%);
    box-shadow: 0 8px 30px rgb(22 41 74 / 7%);
    backdrop-filter: blur(14px);
}

.home-content,
body.page-template-service-page .page-content {
    background:
        radial-gradient(circle at 8% 22%, rgb(0 176 248 / 8%) 0 10rem, transparent 25rem),
        radial-gradient(circle at 94% 68%, rgb(112 8 208 / 6%) 0 12rem, transparent 29rem),
        linear-gradient(180deg, #f8fbff 0%, #edf3f9 52%, #f8fafc 100%);
}

body.page-template-service-page .page-content {
    position: relative;
    isolation: isolate;
    overflow: hidden;
}

body.page-template-service-page .page-content::before,
body.page-template-service-page .page-content::after {
    content: "";
    position: fixed;
    z-index: 0;
    border-radius: 45% 55% 38% 62% / 52% 42% 58% 48%;
    pointer-events: none;
}

body.page-template-service-page .page-content::before {
    top: 22%;
    right: -7rem;
    width: 22rem;
    height: 22rem;
    border: 1px solid rgb(0 176 248 / 14%);
    background: rgb(0 176 248 / 5%);
}

body.page-template-service-page .page-content::after {
    bottom: 8%;
    left: -6rem;
    width: 18rem;
    height: 18rem;
    border: 1px solid rgb(112 8 208 / 11%);
    background: rgb(112 8 208 / 4%);
}

body.page-template-service-page .service-page {
    position: relative;
    z-index: 1;
}

.home-content > .sap-section,
.sap-service-section,
.sap-about-values,
.sap-contact-paths {
    position: relative;
    isolation: isolate;
}

.sap-home-paths {
    overflow: hidden;
    background:
        radial-gradient(circle at 3% 16%, rgb(0 176 248 / 13%) 0 4.5rem, transparent 4.6rem),
        radial-gradient(circle at 96% 86%, rgb(112 8 208 / 9%) 0 6.5rem, transparent 6.6rem),
        linear-gradient(145deg, rgb(255 255 255 / 96%), rgb(244 248 253 / 92%));
}

.sap-home-paths::before,
.sap-home-paths::after {
    content: "";
    position: absolute;
    z-index: -1;
    border: 1px solid rgb(46 94 170 / 16%);
    border-radius: 38% 62% 56% 44% / 44% 42% 58% 56%;
    pointer-events: none;
}

.sap-home-paths::before {
    top: 7%;
    right: -7rem;
    width: 19rem;
    height: 19rem;
    background: rgb(255 255 255 / 35%);
}

.sap-home-paths::after {
    bottom: 5%;
    left: -5rem;
    width: 11rem;
    height: 11rem;
    border-color: rgb(0 176 248 / 16%);
}

.sap-path-card,
.sap-card,
.sap-contact-card,
.sap-choice-item,
.sap-brand-item,
.sap-about-values > .wp-block-column,
.sap-office-category,
.sap-office-process-grid > *,
.sap-print-card,
.sap-assistance-form-card {
    border-color: rgb(46 94 170 / 12%);
    box-shadow:
        0 24px 55px rgb(22 41 74 / 12%),
        0 3px 10px rgb(22 41 74 / 5%);
}

.sap-path-card {
    border-radius: 24px;
}

.sap-path-card-office {
    background-color: rgb(255 255 255 / 88%);
    backdrop-filter: blur(10px);
}

.sap-path-card-assistance {
    border-color: rgb(255 255 255 / 16%);
    box-shadow:
        0 28px 65px rgb(12 28 51 / 25%),
        0 4px 12px rgb(12 28 51 / 12%);
    backdrop-filter: blur(10px);
}

/* Home: nuova esperienza Multifunzioni. */
.sap-mfp-section {
    overflow: hidden;
    color: var(--sap-white);
    background:
        radial-gradient(circle at 88% 12%, rgb(0 176 248 / 22%) 0 8rem, transparent 22rem),
        radial-gradient(circle at 4% 94%, rgb(112 8 208 / 22%) 0 7rem, transparent 24rem),
        linear-gradient(135deg, #101f3a 0%, #162f57 52%, #102440 100%);
}

.sap-mfp-section::before,
.sap-mfp-section::after {
    content: "";
    position: absolute;
    z-index: -1;
    border-radius: 42% 58% 62% 38% / 45% 42% 58% 55%;
    pointer-events: none;
}

.sap-mfp-section::before {
    top: -10rem;
    right: -8rem;
    width: 30rem;
    height: 30rem;
    border: 1px solid rgb(255 255 255 / 12%);
    box-shadow: inset 0 0 0 3rem rgb(255 255 255 / 2%);
}

.sap-mfp-section::after {
    bottom: -8rem;
    left: -6rem;
    width: 21rem;
    height: 21rem;
    background: linear-gradient(145deg, rgb(112 8 208 / 16%), rgb(0 176 248 / 5%));
    filter: blur(1px);
}

.sap-mfp-heading {
    width: 100%;
    max-width: 900px;
    margin: 0 !important;
}

.sap-mfp-heading .sap-eyebrow {
    color: var(--sap-cyan);
}

.sap-mfp-heading h2,
.sap-mfp-heading p {
    color: var(--sap-white);
}

.sap-mfp-heading h2 {
    max-width: 18ch;
    margin: .75rem 0 1.25rem;
    font-size: clamp(2rem, 4vw, 3.6rem);
}

.sap-mfp-heading > p:last-child {
    max-width: 720px;
    margin-bottom: 0;
    color: rgb(255 255 255 / 76%);
    font-size: 1.1rem;
}

.sap-mfp-experience {
    display: grid;
    grid-template-columns: minmax(0, 1.08fr) minmax(25rem, .92fr);
    gap: clamp(1.5rem, 3vw, 2.5rem);
    align-items: stretch;
    margin-top: clamp(2.5rem, 5vw, 4.5rem) !important;
}

.sap-mfp-visual {
    position: relative;
    overflow: hidden;
    min-height: 610px;
    margin: 0 !important;
    border: 1px solid rgb(255 255 255 / 15%);
    border-radius: 28px;
    background: var(--sap-navy);
    box-shadow: 0 35px 90px rgb(0 0 0 / 30%);
}

.sap-mfp-visual::after {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 1;
    background: linear-gradient(180deg, rgb(5 18 38 / 4%) 22%, rgb(10 26 51 / 92%) 88%);
    pointer-events: none;
}

.sap-mfp-visual > .wp-block-image,
.sap-mfp-visual > .wp-block-image img {
    width: 100%;
    height: 100%;
    margin: 0;
}

.sap-mfp-visual > .wp-block-image {
    position: absolute;
    inset: 0;
}

.sap-mfp-visual > .wp-block-image img {
    object-fit: cover;
}

.sap-mfp-visual-copy {
    position: absolute;
    right: clamp(1.5rem, 4vw, 3rem);
    bottom: clamp(1.5rem, 4vw, 3rem);
    left: clamp(1.5rem, 4vw, 3rem);
    z-index: 2;
    margin: 0 !important;
}

.sap-mfp-visual-copy h3,
.sap-mfp-visual-copy p {
    color: var(--sap-white);
}

.sap-mfp-visual-copy h3 {
    max-width: 16ch;
    margin: .65rem 0 1rem;
    font-size: clamp(1.75rem, 3vw, 2.65rem);
}

.sap-mfp-visual-copy p:last-child {
    max-width: 40rem;
    margin-bottom: 0;
    color: rgb(255 255 255 / 78%);
}

.sap-mfp-kicker {
    margin: 0;
    color: rgb(255 255 255 / 82%) !important;
    font-size: .8rem;
    font-weight: 800;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.sap-mfp-options {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1.25rem;
    margin: 0 !important;
}

.sap-mfp-option {
    display: flex;
    flex-direction: column;
    min-width: 0;
    margin: 0 !important;
    padding: clamp(1.5rem, 3vw, 2.25rem);
    border: 1px solid rgb(255 255 255 / 68%);
    border-radius: 22px;
    background: rgb(255 255 255 / 94%);
    color: var(--sap-ink);
    box-shadow: 0 26px 65px rgb(0 0 0 / 24%);
    backdrop-filter: blur(12px);
}

.sap-mfp-option-primary {
    grid-column: 1 / 3;
    min-height: 240px;
    background:
        radial-gradient(circle at 92% 12%, rgb(0 176 248 / 26%) 0 4.5rem, transparent 4.6rem),
        linear-gradient(145deg, #fff 0%, #edf5ff 100%);
}

.sap-mfp-option-number {
    margin: 0 0 1.2rem;
    color: var(--sap-blue);
    font-size: .78rem;
    font-weight: 800;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.sap-mfp-option h3 {
    margin: 0 0 .75rem;
    font-size: clamp(1.4rem, 2vw, 1.9rem);
}

.sap-mfp-option > p:nth-last-child(2) {
    margin-top: 0;
    color: rgb(36 52 75 / 82%);
}

.sap-mfp-option > p:last-child {
    margin: auto 0 0;
    padding-top: 1rem;
    font-weight: 750;
}

.sap-mfp-option:last-child {
    border-color: rgb(255 255 255 / 16%);
    background:
        radial-gradient(circle at 92% 12%, rgb(0 176 248 / 24%) 0 4rem, transparent 4.1rem),
        linear-gradient(145deg, #122541 0%, #19365f 100%);
    color: var(--sap-white);
}

.sap-mfp-option:last-child h3,
.sap-mfp-option:last-child p,
.sap-mfp-option:last-child a,
.sap-mfp-option:last-child > p:nth-last-child(2) {
    color: var(--sap-white);
}

.sap-mfp-option:last-child .sap-mfp-option-number {
    color: #7edcff;
}

.sap-mfp-actionbar {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 2rem;
    align-items: center;
    margin: 1.5rem 0 0 !important;
    padding: 1.5rem 1.75rem;
    border: 1px solid rgb(255 255 255 / 12%);
    border-radius: 20px;
    background: rgb(255 255 255 / 7%);
    backdrop-filter: blur(10px);
}

.sap-mfp-actionbar > *,
.sap-mfp-actionbar p,
.sap-mfp-actionbar .wp-block-buttons {
    margin-block: 0;
}

.sap-mfp-actionbar p {
    color: rgb(255 255 255 / 72%);
}

.sap-mfp-actionbar .sap-mfp-action-label {
    color: var(--sap-white);
    font-weight: 800;
}

.sap-mfp-actionbar .wp-block-button__link {
    border-color: var(--sap-white);
    background: var(--sap-white);
    color: var(--sap-navy);
    white-space: nowrap;
}

/* Più ritmo e superfici meno piatte nelle pagine interne. */
.sap-service-rental,
.sap-service-brands,
.sap-office-process,
.sap-print-process {
    background:
        radial-gradient(circle at 92% 10%, rgb(0 176 248 / 9%) 0 6rem, transparent 18rem),
        linear-gradient(145deg, rgb(255 255 255 / 96%), rgb(242 247 252 / 92%));
}

.sap-choice-item,
.sap-about-values > .wp-block-column,
.sap-office-process-grid > *,
.sap-contact-card,
.sap-assistance-form-card {
    border-radius: 22px;
}

.sap-about-values,
.sap-contact-paths,
.sap-office-jump {
    box-shadow: 0 24px 65px rgb(22 41 74 / 10%);
}

@media (max-width: 64rem) {
    .sap-mfp-experience {
        grid-template-columns: 1fr;
    }

    .sap-mfp-visual {
        min-height: 520px;
    }
}

@media (max-width: 48rem) {
    .sap-mfp-heading h2 {
        font-size: clamp(2rem, 10vw, 2.8rem);
    }

    .sap-mfp-visual {
        min-height: 500px;
        border-radius: 22px;
    }

    .sap-mfp-options {
        grid-template-columns: 1fr;
    }

    .sap-mfp-option-primary {
        grid-column: auto;
        min-height: 0;
    }

    .sap-mfp-actionbar {
        grid-template-columns: 1fr;
        gap: 1.25rem;
    }

    .sap-mfp-actionbar .wp-block-buttons,
    .sap-mfp-actionbar .wp-block-button,
    .sap-mfp-actionbar .wp-block-button__link {
        width: 100%;
    }
}

/* =========================
   ACCESSIBILITY
   ========================= */
@media (prefers-reduced-motion: reduce) {
    *,
    *::before,
    *::after {
        animation-duration: .01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: .01ms !important;
        scroll-behavior: auto !important;
    }
}
