/* base.css — fondamenta: font del sito, icone icomoon, animazioni.
   File originali: fonts.css, style.css, animate.css */

/* ===== fonts.css ===== */
/* ============================================================
   Font del sito — Inter (font variabile, self-hosted)
   Inter        -> testo e titoli
   Inter Tight  -> disponibile per titoli piu' compatti
   ============================================================ */

@font-face {
  font-family: "Inter";
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  src: url("../fonts/Inter-VariableFont_opsz,wght.woff2") format("woff2");
}

@font-face {
  font-family: "Inter Tight";
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  src: url("../fonts/InterTight-VariableFont_wght.woff2") format("woff2");
}

/* ===== style.css ===== */
@font-face {
    font-family: "icomoon";
    src: url("../fonts/icomoon.eot");
    src: url("../fonts/icomoon.eot") format("embedded-opentype"), url("../fonts/icomoon.ttf") format("truetype"),
        url("../fonts/icomoon.woff") format("woff"), url("../images/icomoon.svg") format("svg");
    font-weight: normal;
    font-style: normal;
    font-display: block;
}

[class^="icon-"],
[class*=" icon-"] {
    /* use !important to prevent issues with browser extensions that change fonts */
    font-family: "icomoon" !important;
    speak: never;
    font-style: normal;
    font-weight: normal;
    font-variant: normal;
    text-transform: none;
    line-height: 1;

    /* Better Font Rendering =========== */
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

.icon-gemini:before {
    content: "\e908";
}
.icon-cloud:before {
    content: "\e909";
}
.icon-gpt:before {
    content: "\e900";
}
.icon-menu:before {
    content: "\e901";
}
.icon-close:before {
    content: "\e902";
}
.icon-arrow-top:before {
    content: "\e903";
}
.icon-arrow-caret-down:before {
    content: "\e904";
}
.icon-arrow-circle:before {
    content: "\e905";
}
.icon-plus:before {
    content: "\e906";
}
.icon-micro:before {
    content: "\e907";
}

/* ===== animate.css ===== */
/* animate.css — versione ridotta
   L'originale definiva 73 animazioni; il sito ne usa 5:
   fadeInUp, fadeInDown, fadeInLeft, fadeInRight, bounceInScale.
   Le altre 68 sono state rimosse. */

.animated {
  -webkit-animation-duration: 1s;
          animation-duration: 1s;
  -webkit-animation-fill-mode: both;
          animation-fill-mode: both;
}


@-webkit-keyframes fadeInDown {
    0% {
        opacity: 0;
        -webkit-transform: translateY(-20px);
        transform: translateY(-20px);
    }

    100% {
        opacity: 1;
        -webkit-transform: translateY(0);
        transform: translateY(0);
    }
}

@keyframes fadeInDown {
    0% {
        opacity: 0;
        -webkit-transform: translateY(-20px);
        -ms-transform: translateY(-20px);
        transform: translateY(-20px);
    }

    100% {
        opacity: 1;
        -webkit-transform: translateY(0);
        -ms-transform: translateY(0);
        transform: translateY(0);
    }
}

@-webkit-keyframes fadeInLeft {
    0% {
        opacity: 0;
        -webkit-transform: translateX(-20px);
        transform: translateX(-20px);
    }

    100% {
        opacity: 1;
        -webkit-transform: translateX(0);
        transform: translateX(0);
    }
}

@keyframes fadeInLeft {
    0% {
        opacity: 0;
        -webkit-transform: translateX(-20px);
        -ms-transform: translateX(-20px);
        transform: translateX(-20px);
    }

    100% {
        opacity: 1;
        -webkit-transform: translateX(0);
        -ms-transform: translateX(0);
        transform: translateX(0);
    }
}

@-webkit-keyframes fadeInRight {
    0% {
        opacity: 0;
        -webkit-transform: translateX(20px);
        transform: translateX(20px);
    }

    100% {
        opacity: 1;
        -webkit-transform: translateX(0);
        transform: translateX(0);
    }
}

@keyframes fadeInRight {
    0% {
        opacity: 0;
        -webkit-transform: translateX(20px);
        -ms-transform: translateX(20px);
        transform: translateX(20px);
    }

    100% {
        opacity: 1;
        -webkit-transform: translateX(0);
        -ms-transform: translateX(0);
        transform: translateX(0);
    }
}

@-webkit-keyframes fadeInUp {
    0% {
        opacity: 0;
        -webkit-transform: translateY(20px);
        transform: translateY(20px);
    }

    100% {
        opacity: 1;
        -webkit-transform: translateY(0);
        transform: translateY(0);
    }
}

@keyframes fadeInUp {
    0% {
        opacity: 0;
        -webkit-transform: translateY(20px);
        -ms-transform: translateY(20px);
        transform: translateY(20px);
    }

    100% {
        opacity: 1;
        -webkit-transform: translateY(0);
        -ms-transform: translateY(0);
        transform: translateY(0);
    }
}

@keyframes bounceInScale {
    0% {
        opacity: 0;
        transform: scale(0.5);
    }

    100% {
        opacity: 1;
        transform: scale(1);
    }
}

.fadeInDown{-webkit-animation-name: fadeInDown;
    animation-name: fadeInDown;}

.fadeInLeft{-webkit-animation-name: fadeInLeft;
    animation-name: fadeInLeft;}

.fadeInRight{-webkit-animation-name: fadeInRight;
    animation-name: fadeInRight;}

.fadeInUp{-webkit-animation-name: fadeInUp;
    animation-name: fadeInUp;}

.bounceInScale{-webkit-animation-name: bounceInScale;
    animation-name: bounceInScale;}

/* Cookie consent banner */
.fv-cookie-banner {
    position: fixed;
    left: 18px;
    bottom: calc(var(--fv-cookie-bottom, 18px) + env(safe-area-inset-bottom));
    z-index: 10000;
    width: min(310px, calc(100vw - 36px));
    padding: 14px;
    color: #f4f7f5;
    border: 1px solid rgba(111, 220, 198, 0.22);
    border-radius: 8px;
    background: rgba(4, 12, 25, 0.96);
    box-shadow: 0 14px 38px rgba(0, 0, 0, 0.34), inset 0 1px 0 rgba(255, 255, 255, 0.05);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    opacity: 0;
    pointer-events: none;
    touch-action: pan-y;
    transform: translate3d(-10px, 10px, 0);
    transition: opacity 0.18s ease, transform 0.18s ease;
}

body.simulated-disclaimer-hidden .fv-cookie-banner {
    bottom: calc(18px + env(safe-area-inset-bottom));
}

.fv-cookie-banner.is-visible {
    opacity: 1;
    transform: translate3d(0, 0, 0);
}

.fv-cookie-banner.is-hiding {
    opacity: 0;
    transform: translate3d(-10px, 10px, 0);
}

.fv-cookie-banner__close {
    position: absolute;
    top: 10px;
    right: 10px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 24px;
    height: 24px;
    padding: 0;
    border: 0;
    border-radius: 50%;
    color: rgba(244, 247, 245, 0.62);
    background: rgba(255, 255, 255, 0.06);
    font-size: 18px;
    line-height: 24px;
    pointer-events: auto;
    touch-action: manipulation;
    cursor: pointer;
}

.fv-cookie-banner__close:hover {
    color: #fff;
    background: rgba(255, 255, 255, 0.12);
}

.fv-cookie-banner__eyebrow {
    display: none;
}

.fv-cookie-banner h2 {
    margin: 0 32px 5px 0;
    color: #fff;
    font-size: 15px;
    font-weight: 700;
    line-height: 1.25;
}

.fv-cookie-banner p {
    margin: 0;
    color: rgba(244, 247, 245, 0.74);
    font-size: 12.5px;
    line-height: 1.4;
}

.fv-cookie-banner__actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 7px;
    margin-top: 10px;
}

.fv-cookie-banner__btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 32px;
    padding: 0 11px;
    border: 1px solid rgba(255, 255, 255, 0.14);
    border-radius: 6px;
    color: rgba(244, 247, 245, 0.82);
    background: rgba(255, 255, 255, 0.06);
    font-size: 12px;
    font-weight: 700;
    line-height: 1.2;
    text-align: center;
    pointer-events: auto;
    touch-action: manipulation;
    cursor: pointer;
    transition: background 0.18s ease, border-color 0.18s ease, color 0.18s ease, transform 0.18s ease;
}

.fv-cookie-banner__btn:hover {
    color: #fff;
    border-color: rgba(111, 220, 198, 0.34);
    background: rgba(111, 220, 198, 0.1);
    transform: translateY(-1px);
}

.fv-cookie-banner__btn--primary {
    color: #04131e;
    border-color: rgba(111, 220, 198, 0.88);
    background: #6fdcc6;
}

.fv-cookie-banner__btn--primary:hover {
    color: #04131e;
    background: #8ee8d6;
}

.fv-cookie-banner__actions a {
    color: rgba(244, 247, 245, 0.66);
    font-size: 12px;
    font-weight: 600;
    text-decoration: none;
    box-shadow: inset 0 -1px 0 rgba(111, 220, 198, 0.5);
    pointer-events: auto;
    touch-action: manipulation;
}

.fv-cookie-banner__actions a:hover {
    color: #fff;
}

@media (max-width: 640px) {
    .fv-cookie-banner {
        left: 12px;
        right: auto;
        bottom: calc(var(--fv-cookie-bottom, 12px) + env(safe-area-inset-bottom));
        width: min(300px, calc(100vw - 24px));
        padding: 13px;
    }

    body.simulated-disclaimer-hidden .fv-cookie-banner {
        bottom: calc(12px + env(safe-area-inset-bottom));
    }
}
