@import url('https://fonts.googleapis.com/css2?family=EB+Garamond:ital,wght@0,400..800;1,400..800&display=swap');

*,
*::before,
*::after {
    box-sizing: border-box;
}


#screensaver {
    position: fixed;
    top: 0;
    left: 0;
    width: 100dvw;
    height: 100dvh;
    display: none;
    z-index: 99999;
    overflow: hidden;
}

#screensaver.active {
    display: block;
    animation: screensaver-circle-in 1.4s ease-in-out forwards;
}

@keyframes screensaver-circle-in {
    from { clip-path: circle(0% at 50% 50%); }
    to   { clip-path: circle(150% at 50% 50%); }
}

/* ---- GMDE Screensaver animations ---- */

.gmde-bg {
    position: absolute;
    inset: 0;
    overflow: hidden;
    background: #1c1c1c;
    isolation: isolate;
}

.gmde-content {
    position: absolute;
    inset: 0;
    opacity: 0;
    animation: gmde-bg-fadein 0.8s ease-in-out 1.4s forwards;
}

@keyframes gmde-bg-fadein {
    from { opacity: 0; }
    to   { opacity: 1; }
}

.gmde-bg__glow--bl,
.gmde-bg__glow--tr { position: absolute; inset: 0; pointer-events: none; }
.gmde-bg__glow--bl { background: radial-gradient(circle at 20% 80%, rgba(227,6,19,.07), transparent 50%); }
.gmde-bg__glow--tr { background: radial-gradient(circle at 80% 20%, rgba(227,6,19,.05), transparent 50%); }

.gmde-bg__grid {
    position: absolute; inset: 0;
    background-image:
        linear-gradient(to right, rgba(255,255,255,.03) .5px, transparent .5px),
        linear-gradient(to bottom, rgba(255,255,255,.03) .5px, transparent .5px);
    background-size: 44px 44px;
}

.gmde-ring {
    position: absolute; width: 0; height: 0; border-radius: 50%;
    border: 1px solid #e30613; transform: translate(-50%,-50%); opacity: 0;
    animation: gmde-ring var(--dur,7s) linear var(--delay,0s) infinite;
}
@keyframes gmde-ring {
    0%   { width: 40px; height: 40px; opacity: var(--op,.15); }
    100% { width: calc(var(--max,320px) * 2); height: calc(var(--max,320px) * 2); opacity: 0; }
}

.gmde-line {
    position: absolute; left: -10%; height: 1px; transform-origin: left center;
    animation: gmde-line-move var(--dur,30s) linear var(--delay,0s) infinite;
}
.gmde-line--rev { left: auto; right: -10%; animation-name: gmde-line-move-rev; }
@keyframes gmde-line-move     { 0%{transform:translate(0,0) rotate(var(--angle,0deg));} 100%{transform:translate(110vw,10vh) rotate(var(--angle,0deg));} }
@keyframes gmde-line-move-rev { 0%{transform:translate(0,0) rotate(var(--angle,0deg));} 100%{transform:translate(-110vw,8vh) rotate(var(--angle,0deg));} }

.gmde-particle {
    position: absolute; border-radius: 50%;
    animation:
        gmde-particle-fade  var(--dur,24s) ease-in-out var(--delay,0s) infinite,
        gmde-particle-drift var(--dur,24s) ease-in-out var(--delay,0s) infinite;
}
@keyframes gmde-particle-fade  { 0%,100%{opacity:.4} 50%{opacity:1} }
@keyframes gmde-particle-drift { 0%,100%{transform:translate(0,0)} 50%{transform:translate(var(--tx,8px),var(--ty,8px))} }
.gmde-particle--red { box-shadow: 0 0 6px rgba(227,6,19,.5); }

.gmde-tagline {
    position: absolute;
    left: 50%;
    bottom: 25%;
    transform: translateX(-50%);
    text-align: center;
    width: min(560px, 80%);
}

.gmde-tagline__phrase {
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    margin: 0;
    color: rgba(255,255,255,0.85);
    font-size: clamp(0.85rem, 1.5vw, 1.1rem);
    font-weight: 300;
    letter-spacing: 0.03em;
    line-height: 1.6;
    opacity: 0;
    animation: gmde-phrase-cycle 24s ease-in-out var(--phrase-delay, 0s) infinite;
}

.gmde-tagline__phrase strong {
    color: #fff;
    font-weight: 600;
}

@keyframes gmde-phrase-cycle {
    0%    { opacity: 0; }
    5%    { opacity: 1; }
    20%   { opacity: 1; }
    25%   { opacity: 0; }
    100%  { opacity: 0; }
}

.gmde-accent-line {
    position: absolute; left: 31.9%; right: 31.9%; top: 77%;
    height: 1.5px; background: rgba(227,6,19,.5); opacity: 0;
    animation: gmde-fade-in 1.8s cubic-bezier(.22,1,.36,1) 1.8s forwards;
}

.gmde-corner { position: absolute; width: 40px; height: 40px; border: 1.5px solid rgba(227,6,19,.55); }
.gmde-corner--tl { top: 36px; left: 36px;  border-right: none; border-bottom: none; }
.gmde-corner--tr { top: 36px; right: 36px; border-left: none;  border-bottom: none; }
.gmde-corner--bl { bottom: 36px; left: 36px;  border-right: none; border-top: none; }
.gmde-corner--br { bottom: 36px; right: 36px; border-left: none;  border-top: none; }

.gmde-logo {
    position: absolute; top: 50%; left: 50%;
    width: min(28vw, 460px);
    transform: translate(-50%,-50%) translateY(50px); opacity: 0;
    animation: gmde-logo-in 1.8s cubic-bezier(.22,1,.36,1) 1.8s forwards;
}
.gmde-logo svg { width: 100%; height: auto; display: block; }
@keyframes gmde-logo-in { to { transform: translate(-50%,-50%) translateY(0); opacity: 1; } }
@keyframes gmde-fade-in { to { opacity: 1; } }

.gmde-reveal {
    position: absolute; inset: 0; background: #1c1c1c; pointer-events: none;
    animation: gmde-reveal 2.2s cubic-bezier(.22,1,.36,1) forwards;
}
@keyframes gmde-reveal {
    0%   { -webkit-mask: radial-gradient(circle at 50% 50%, transparent 0, #000 0);
                   mask: radial-gradient(circle at 50% 50%, transparent 0, #000 0); }
    100% { -webkit-mask: radial-gradient(circle at 50% 50%, transparent 150%, #000 150%);
                   mask: radial-gradient(circle at 50% 50%, transparent 150%, #000 150%); opacity: 0; }
}

.gmde-orbit {
    position: absolute; top: 50%; left: 50%; border-radius: 50%;
    transform: translate(-50%,-50%);
    animation: gmde-orbit-spin var(--dur,60s) linear var(--delay,0s) infinite;
    pointer-events: none;
}
.gmde-orbit--rev { animation-direction: reverse; }
.gmde-orbit__dot {
    position: absolute; top: -3px; left: 50%; transform: translateX(-50%);
    border-radius: 50%; background: #e30613;
    box-shadow: 0 0 8px rgba(227,6,19,.7);
}
@keyframes gmde-orbit-spin {
    from { transform: translate(-50%,-50%) rotate(0deg); }
    to   { transform: translate(-50%,-50%) rotate(360deg); }
}

body {
    background-color: #fafafa;
    margin: 0;
    padding: 0;
    font-family: 'Plus jakarta sans', 'sans-serif';
}

a {
    text-decoration: none;
    color: black;
}

/* ====================== HEADER ====================== */
.header {
    position: fixed;
    top: 10px;
    left: 10%;
    display: flex;
    box-sizing: border-box;
    border-radius: 45px;
    width: 80%;
    justify-content: space-between;
    align-items: center;
    font-weight: 300;
    z-index: 10;
    border: 2px #dcd7d7 solid;
    padding: 0 20px;
    height: 60px;
}

.header::before {
    content: '';
    position: absolute;
    inset: 0;
    border-radius: 45px;
    backdrop-filter: blur(10px);
    background-color: rgba(243, 242, 242, 0.6);
    z-index: -1;
}

.header img {
    height: 100%;
    width: auto;
}

.header select {
    border: none;
    background-color: transparent;
}

.header option {
    border: none;
    padding: .5em;
}

.header ul {
    padding: 0;
}

.header li {
    padding: 0 10px;
    height: 100%;
    display: flex;
    align-items: center;
    cursor: pointer;
}

.header li:hover:not(.cta-demo){
    background-color: rgba(228, 25, 37, 0.8);
    color: white;
}

#logo-desktop {
    height: 90%;
    cursor: pointer;
}

.left-side {
    display: flex;
    align-items: center;
    height: 100%;
}

.right-content {
    margin: 0;
    display: flex;
    flex-direction: row-reverse;
    align-items: center;
    box-sizing: border-box;
    height: 100%;
    list-style: none;
}

.right-content .select {
    position: relative;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
}

.search-entry {
    position: relative;
}

.search-icon {
    margin: 10px;
}

#search-button {
    margin: 10px;
}

/* CTA "Prenota una demo" */
.cta-demo button {
    all: unset;
    border-radius: 30px;
    width: max-content;
    padding: 5px 5px 5px 10px;
    background-color: rgba(228, 25, 37, 1);
    color: white;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    gap: 8px;
}

.cta-demo button i {
    height: 30px;
    width: 30px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background-color: rgba(228, 68, 68, 1);
    border-radius: 50%;
}

.dropdown-icon {
    margin: 0 10px;
    transition: all .3s ease-in-out;
}

.dropdown-icon.active {
    transform: rotate(90deg);
}

.menu-entry {
    margin: 0;
    font-size: 14px;
}

.menu-entry .desktop-dropdown.active,
.menu-entry .soluzioni-dropdown.active {
    pointer-events: all;
    border: 2px #dcd7d7 solid;
    grid-template-rows: 1fr;
}

/* Hamburger nascosto su desktop */
.hamburger {
    display: none;
    font-size: 1.5rem;
    color: #28282a;
    cursor: pointer;
    align-self: center;
    width: 40px;
    height: 40px;
}

.hamburger i {
    width: 100%;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
}

.hamburger .active {
    display: flex;
}

/* Dropdown semplice (Prodotti / Azienda / Risorse) */
.desktop-dropdown {
    pointer-events: none;
    cursor: auto;
    display: grid;
    grid-template-rows: 0fr;
    position: absolute;
    border-radius: 20px;
    top: 100%;
    left: calc(50% - 150px);
    transition: grid-template-rows .3s ease-in-out;
    width: 300px;
    backdrop-filter: blur(10px);
    background-color: rgba(243, 242, 242, 0.8);
    overflow: hidden;
}

.desktop-dropdown div {
    overflow: hidden;
}

.desktop-dropdown ul {
    display: flex;
    flex-direction: column;
    justify-content: center;
    font-size: 14px;
}

/* Dropdown Soluzioni (tre colonne) */
.soluzioni-dropdown {
    cursor: auto;
    display: grid;
    grid-template-rows: 0fr;
    position: absolute;
    border-radius: 20px;
    top: 100%;
    left: 50%;
    transform: translateX(-50%);
    transition: grid-template-rows .3s ease-in-out;
    width: max-content;
    max-width: calc(100vw - 40px);
    justify-content: space-between;
    overflow: hidden;
    backdrop-filter: blur(10px);
    background-color: rgba(243, 242, 242, 0.8);
}

.soluzioni-dropdown .section {
    overflow: hidden;
    display: block;
    padding: 0;
    margin: 0;
    width: 100%;
}

.soluzioni-columns {
    display: flex;
    width: 100%;
    justify-content: space-between;
}

.soluzioni-dropdown .dropdown-section {
    flex: 1;
    font-size: 20px;
}

.dropdown-section-inner {
    cursor: pointer;
    display: flex;
    justify-content: center;
    align-items: stretch;
    flex-direction: column;
}

.dropdown-header-wrap {
    display: flex;
    align-items: center;
    justify-content: center;
}

.dropdown-header {
    font-weight: 500;
    font-size: 20px;
    color: black;
}

.decoration {
    color: #E41925;
}

.soluzioni-dropdown .section ul li {
    display: flex;
    align-items: center;
    justify-content: start;
    font-size: 13px;
    margin: 0;
    padding: 0;
    width: 100%;
    box-sizing: border-box;
    text-wrap: nowrap;
}

.soluzioni-dropdown .section .dropdown-line {
    border-left: 1px #dcd7d7 solid;
    height: 100%;
}

.soluzioni-dropdown .dropdown-section .dropdown-line {
    border-top: 1px #dcd7d7 solid;
    border-left: none;
    width: 90%;
    height: 0;
    margin: 0 auto;
}

.soluzioni-dropdown .plugins-row-ul {
    list-style: none;
    margin: 0;
    padding: 0;
    width: 100%;
    border-bottom: 1px #dcd7d7 solid;
}

.soluzioni-dropdown .plugins-li {
    display: flex;
    justify-content: flex-start;
    width: 100%;
    padding: 0;
    margin: 0;
    font-size: 14px;
}

/* Stati shared <li> nei select */
.select ul {
    padding: 0;
}

.select li {
    padding: 10px;
    margin: 0;
    display: flex;
    justify-content: center;
    align-items: center;
    color: black;
}

.select li:hover {
    background-color: rgba(228, 25, 37, 0.8);
    color: white;
}

/* Search */
.search-dropdown {
    pointer-events: none;
    cursor: auto;
    display: grid;
    grid-template-rows: 0fr;
    position: absolute;
    top: 100%;
    left: 50%;
    transform: translateX(-50%);
    width: 500px;
    max-width: calc(100vw - 40px);
    border: none;
    transition: grid-template-rows .3s ease-in-out;
    background-color: rgba(243, 242, 242, 0.8);
    backdrop-filter: blur(10px);
    overflow: hidden;
    border-radius: 20px;
}

.search-dropdown.active {
    pointer-events: all;
    grid-template-rows: 1fr;
    border: 2px solid #dcd7d7;
}

.search-dropdown div {
    overflow: hidden;
    display: flex;
    width: 100%;
    align-items: center;
    justify-content: center;
}

.search-dropdown input {
    border: none;
    border-bottom: 2px #282804 solid;
    color: #282804;
    outline: none;
    background-color: transparent;
    padding: 10px;
    margin: 20px 30px;
    font-size: 18px;
    flex: 1;
}

/* "Around" buttons condivisi (footer) */
.around-button {
    border: 1px #E41925 solid;
    border-radius: 5px;
    padding: 3px;
    display: flex;
    align-items: center;
    width: max-content;
    height: max-content;
    margin: 5px;
    color: #E41925;
    cursor: pointer;
}

.around-button button {
    color: #fff;
    background-color: #E41925;
    height: 50px;
    width: 50px;
    border: none;
    border-radius: 5px;
    font-size: 30px;
    margin: 2px;
    cursor: pointer;
}

.around-button button i {
    transform: rotate(-45deg);
}

/* ====================== FOOTER ====================== */
footer {
    background-color: #28282a;
    width: 100%;
    box-sizing: border-box;
    position: relative;
    display: flex;
    justify-content: center;
    align-items: center;
    color: white;
    padding: 40px 0 0 0;
}

.foot {
    display: flex;
    flex-direction: column;
    width: 90%;
}

.first-layer {
    display: flex;
    justify-content: space-between;
    gap: 40px;
}

.first-layer-cols {
    display: flex;
    justify-content: space-evenly;
    width: 100%;
    gap: 30px;
}

.logo-footer {
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
    align-items: center;
}

.logo-footer img {
    height: 50px;
    width: auto;
}

.footer-col {
    display: flex;
    flex-direction: column;
}

.footer-col > p {
    color: #878787;
    margin: 0 0 10px 0;
}

.footer-col ul {
    margin: 0;
    padding: 0;
}

.footer-col ul li {
    list-style-type: none;
    margin: 10px 0;
    position: relative;
    color: white;
    transition: all .3s ease-in-out;
    cursor: pointer;
    width: max-content;
}

.footer-col ul li::before {
    content: '';
    position: absolute;
    width: 0;
    height: 0;
    bottom: 0;
    left: 0;
    transition: all .3s ease-in-out;
}

.footer-col ul li a:hover {
    color: #E41925;
}

.footer-col ul li:hover::before {
    width: 100%;
    border-bottom: 1px solid #E41925;
}

.footer-col a {
    color: white;
    transition: all .3s ease-in-out;
}

.social {
    display: flex;
    gap: 10px;
    margin: 10px 0;
    align-items: center;
}

.social p {
    color: #878787;
    margin: 0;
}

.social a {
    color: white;
}

.social i {
    height: 30px;
    width: 30px;
    border-radius: 50%;
    border: 1px solid white;
    display: flex;
    align-items: center;
    justify-content: center;
}

.line-footer {
    border-bottom: 1px solid white;
    width: 100%;
    margin-top: 30px;
}

.foot .options {
    display: flex;
    flex-direction: row;
    justify-content: space-between;
    align-items: center;
    cursor: pointer;
}

.foot .options p {
    color: #878787;
}

.foot .options ul {
    list-style: none;
    display: flex;
    flex-direction: row;
}

.foot .options ul li {
    padding: 10px;
    cursor: pointer;
    transition: color .2s;
}

.foot .options ul li:hover {
    color: #E41925;
}

.foot .options a {
    color: white;
}


/* =================================================================
   MOBILE (< 800px) — stessa identità visiva della desktop
   Tengo le migliorie:
   - hamburger
   - menu fullscreen scrollabile (fisarmonica per i dropdown)
   - footer impilato leggibile
   ================================================================= */
@media screen and (max-width: 800px) {


    .hide-mobile{
        display: none!important;
    }

    body.no-scroll {
        overflow: hidden;
    }

    /* ----- HEADER ----- */
    /* La pillola resta identica, cambia solo la larghezza */
    .header {
        left: 5%;
        width: 90%;
        padding: 0 16px;
        top: calc(10px + env(safe-area-inset-top));
    }

    /* Nascondo gli elementi inline della nav e mostro l'hamburger */
    .left-side select,
    .header .right-content > li.menu-entry,
    .header .right-content > li.search-entry,
    .header .right-content > li.cta-demo {
        display: none;
    }

    .hamburger {
        display: flex;
        align-items: center;
        justify-content: center;
        margin-left: auto;
    }

    /* La <ul> resta come contenitore del menu, ma diventa una tendina
       che scende DALL'ALTO verso il basso quando body ha .no-scroll. */
    .header .right-content {
        position: fixed;
        top: 80px;
        left: 5%;
        right: auto;
        width: 90%;
        margin: 0;
        max-height: calc(100dvh - 90px);
        flex-direction: column;
        align-items: stretch;
        justify-content: flex-start;
        border-radius: 20px;
        border: 2px #dcd7d7 solid;
        background-color: rgba(243, 242, 242, 0.95);
        backdrop-filter: blur(10px);
        overflow-y: auto;
        overflow-x: hidden;
        padding: 10px 0;
        z-index: 9;

        /* Stato chiuso: collassato e fuori vista, parte da sopra l'header */
        transform: translateY(-20px) scaleY(0);
        transform-origin: top center;
        opacity: 0;
        pointer-events: none;
        transition: transform .3s ease-in-out, opacity .25s ease-in-out;
    }

    body.no-scroll .header .right-content {
        transform: translateY(0) scaleY(1);
        opacity: 1;
        pointer-events: all;
    }

    /* Voci del menu mobile */
    .header .right-content > li {
        display: flex !important;
        flex-direction: column;
        width: 90%;
        margin: 0 auto;
        height: auto;
        padding: 4px 0;
        border-bottom: 1px solid #dcd7d7;
    }

    .header .right-content > li:last-child {
        border-bottom: none;
    }

    .header .right-content > li:hover {
        background-color: transparent;
        color: inherit;
    }

    /* Search row */
    .header .right-content > li.search-entry {
        display: flex !important;
        flex-direction: row;
        align-items: center;
        padding: 12px 4px;
    }

    .search-entry .search-icon {
        color: #28282a;
        font-size: 1rem;
        margin: 0 12px 0 0;
        cursor: pointer;
    }

    .search-entry .search-dropdown {
        position: static;
        flex: 1;
        width: auto;
        transform: none;
        left: auto;
        top: auto;
        pointer-events: all;
        grid-template-rows: 1fr;
        background-color: transparent;
        border-radius: 0;
    }

    .search-entry .search-dropdown > div {
        padding: 0;
    }

    .search-entry .search-dropdown #search-button {
        display: none;
    }

    .search-entry .search-dropdown input {
        margin: 0;
        padding: 8px 0;
        font-size: 1rem;
        flex: 1;
        background: transparent;
        border-bottom: 1px solid #dcd7d7;
    }

    /* Voci dropdown nel menu mobile: la .select diventa una colonna full-width
       con il titolo+chevron sopra e il dropdown sotto. */
    .header .right-content .select {
        width: 100%;
        height: auto;
        flex-direction: column;
        align-items: stretch;
        justify-content: flex-start;
        padding: 14px 4px;
        cursor: pointer;
        color: #28282a;
    }

    /* La riga titolo + chevron resta in orizzontale */
    .header .right-content .select > p,
    .header .right-content .select > strong {
        margin: 0;
        font-weight: 500;
        font-size: 1rem;
        display: flex;
        align-items: center;
        justify-content: space-between;
        width: 100%;
    }

    .header .right-content .select > strong {
        font-weight: 600;
    }

    .header .right-content .select .dropdown-icon,
    .header .right-content .select > .fa-chevron-right,
    .header .right-content .select > strong > .fa-chevron-right {
        color: #E41925;
        font-size: .9rem;
        margin: 0;
        transition: transform .3s ease-in-out;
    }

    .header .right-content .select.active > .fa-chevron-right,
    .header .right-content .select.active > strong > .fa-chevron-right {
        transform: rotate(90deg);
    }

    /* I dropdown grossi diventano fisarmoniche full-width */
    .header .right-content .desktop-dropdown,
    .header .right-content .soluzioni-dropdown {
        position: static;
        width: 100%;
        left: auto;
        right: auto;
        top: auto;
        transform: none;
        border-radius: 0;
        background-color: transparent;
        backdrop-filter: none;
    }

    /* Apertura via .active (settata da opendropdown JS) */
    .header .right-content .select.active .desktop-dropdown,
    .header .right-content .select.active .soluzioni-dropdown {
        grid-template-rows: 1fr;
        pointer-events: all;
        margin-top: 8px;
    }

    .header .right-content .desktop-dropdown ul,
    .header .right-content .soluzioni-dropdown ul {
        padding: 0 0 8px 16px;
        margin: 0 0 0 8px;
        border-left: 1px solid #dcd7d7;
        border-bottom: 1px solid #dcd7d7;
        border-radius: 0 0 0 25px;
    }

    .header .right-content .desktop-dropdown li,
    .header .right-content .soluzioni-dropdown li {
        padding: 10px 12px;
        font-size: .95rem;
        color: #28282a;
        justify-content: flex-start;
        text-wrap: wrap;
    }

    .header .right-content .desktop-dropdown li:has(> a),
    .header .right-content .soluzioni-dropdown li:has(> a) {
        padding: 0;
    }

    .header .right-content .desktop-dropdown li a,
    .header .right-content .soluzioni-dropdown li a {
        padding: 10px 12px;
        text-wrap: wrap;
    }

    .header .right-content .desktop-dropdown li:hover,
    .header .right-content .soluzioni-dropdown li:hover {
        background-color: rgba(228, 25, 37, 0.1);
        color: #28282a;
    }

    /* Soluzioni dropdown: 3 colonne → 3 sezioni impilate */
    .soluzioni-columns {
        flex-direction: column;
    }

    .soluzioni-columns > .dropdown-line {
        border-left: none;
        border-top: 1px solid #dcd7d7;
        width: 100%;
        height: 0;
        margin: 4px 0;
    }

    .soluzioni-dropdown .dropdown-header-wrap {
        justify-content: flex-start;
        padding: 8px 4px;
    }

    .soluzioni-dropdown .dropdown-header {
        font-size: 1rem;
    }

    /* CTA "Prenota una demo" come voce del menu */
    .header .right-content > li.cta-demo {
        display: flex !important;
        align-items: center;
        justify-content: center;
        padding: 16px 0;
        border-bottom: none;
    }

    .cta-demo button {
        padding: 8px 8px 8px 16px;
        font-size: .95rem;
        font-family: inherit;
    }

    /* ----- FOOTER ----- */
    /* Stessa struttura desktop, stack verticale */
    footer {
        margin-top: 200px;
        padding: 40px 20px 0;
    }

    .foot {
        width: 100%;
    }

    .first-layer {
        flex-direction: column;
        gap: 30px;
    }

    .logo-footer {
        align-items: flex-start;
    }

    .first-layer-cols {
        flex-direction: column;
        gap: 30px;
        width: 100%;
    }

    .footer-col {
        padding-bottom: 20px;
        border-bottom: 1px solid #3a3a3c;
    }

    .footer-col:last-child {
        border-bottom: none;
    }

    .footer-col ul li {
        font-size: .95rem;
    }

    .foot .options {
        flex-direction: column;
        align-items: flex-start;
        gap: 10px;
        padding-bottom: 20px;
    }

    .foot .options p {
        margin: 0;
        font-size: .85rem;
    }

    .foot .options ul {
        flex-direction: column;
        padding: 0;
        margin: 0;
    }

    .foot .options ul li {
        padding: 6px 0;
        font-size: .85rem;
    }
}

/* =====================================================
   LINK SEMANTICI NEL MENU — nessun cambio grafico
   ===================================================== */

/* solo i li che contengono direttamente un <a> perdono il padding (va sull'<a>) */
.desktop-dropdown ul li:has(> a),
.soluzioni-dropdown ul li:has(> a) {
    padding: 0;
}

.desktop-dropdown ul li a,
.soluzioni-dropdown ul li a {
    display: flex;
    align-items: center;
    width: 100%;
    padding: 10px 20px;
    box-sizing: border-box;
    text-decoration: none;
    color: inherit;
}

.desktop-dropdown ul li:hover a,
.soluzioni-dropdown ul li:hover a {
    color: white;
}

.dropdown-header-wrap {
    text-decoration: none;
    color: inherit;
}

.menu-entry .select p a {
    text-decoration: none;
    color: inherit;
}

.menu-entry .select:hover p a {
    color: white;
}