* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

html,
body {
    width: 100%;
    height: 100%;
}

body {
    overflow: hidden;
    background: #111;
    font-family: Arial, Helvetica, sans-serif;
}

.home {
    position: relative;
    width: 100vw;
    height: 100vh;
    overflow: hidden;
}

/* FOTO DI SFONDO */
.background {
    position: absolute;
    inset: 0;

    background-image:
        linear-gradient(
            rgba(10, 10, 10, 0.05),
            rgba(10, 10, 10, 0.05)
        ),
        url("assets/images/sfondoweb.jpg");

    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;

    filter: brightness(1.30);
}

/* TESTATA */
.header {
    position: absolute;
    top: 0;
    left: 0;

    width: 100%;
    height: 120px;

    padding: 0 5%;

    display: grid;
    grid-template-columns: 1fr auto 1fr;
    align-items: center;

    z-index: 10;
}

/* NAVIGAZIONE */
.nav {
    display: flex;
    align-items: center;
    gap: clamp(20px, 2.5vw, 45px);
}

.nav-left {
    justify-content: flex-end;
    padding-right: clamp(20px, 3vw, 55px);
}

.nav-right {
    justify-content: flex-start;
    padding-left: clamp(20px, 3vw, 55px);
}

.nav a {
    position: relative;

    color: #ffffff;
    text-decoration: none;

    font-size: clamp(11px, 0.8vw, 15px);
    font-weight: 600;
    letter-spacing: 2px;

    white-space: nowrap;

    transition:
        color 0.25s ease,
        opacity 0.25s ease;
}

.nav a::after {
    content: "";

    position: absolute;
    left: 0;
    bottom: -9px;

    width: 0;
    height: 2px;

    background: #d71920;

    transition: width 0.25s ease;
}

.nav a:hover {
    color: #e31b23;
}

.nav a:hover::after {
    width: 100%;
}

/* LOGO */
.logo-link {
    display: block;
    line-height: 0;
}

.logo {
    width: clamp(190px, 19vw, 300px);
    height: auto;
    display: block;
}

/* CENTRO DELLA HOME */

/* PRIMA SCRITTA */
.intro-message {
    position: absolute;
    left: 50%;
    top: 54%;
    transform: translate(-50%, -50%);
    width: min(560px, 45vw);
}

/* PRIMA SCRITTA */
.message-first {
    width: 100%;

    opacity: 0;
    transform: translateY(20px) scale(0.97);

    transition:
        opacity 2s ease,
        transform 2s ease;
}

.message-first.show {
    opacity: 1;
    transform: translateY(0) scale(1);
}

/* USCITA / TRASFORMAZIONE */
.message-first.transforming {
    opacity: 0;
    transform: translateY(-15px) scale(0.97);
}

/* SECONDA SCRITTA */
.message-second {
    position: absolute;
    left: 50%;
    top: 50%;
    width: 100%;
    transform: translate(-50%, -50%) translateY(15px);
    opacity: 0;

    font-family: "Kalam", cursive;
    font-weight: 700;
    font-size: clamp(32px, 3.6vw, 54px);
    line-height: 1.05;
    letter-spacing: 1px;
    text-align: center;

    text-shadow:
        1px 1px 0 #111,
        -1px -1px 0 #111,
        1px -1px 0 #111,
        -1px 1px 0 #111;

    transition:
        opacity 1s ease,
        transform 1s ease;
}

.message-second.show {
    opacity: 1;
    transform: translate(-50%, -50%) translateY(0);
}

.message-second span {
    display: block;
}

.question-white {
    color: #ffffff;
}

.question-red {
    color: #d71920;
}

.message-first img {
    width: 100%;
    height: auto;
    display: block;

    .message-second span {
        display: block;
    }

    filter:
        drop-shadow(1px 0 0 #111)
        drop-shadow(-1px 0 0 #111)
        drop-shadow(0 1px 0 #111)
        drop-shadow(0 -1px 0 #111);
}

.home-content {
    position: relative;
    z-index: 2;

    width: 100%;
    height: 100%;

    display: flex;
    align-items: center;
    justify-content: center;
}

/* PULSANTI LATERALI */

.side-buttons {
    position: absolute;
    top: 50%;
    width: 220px;
    height: 330px;
    transform: translateY(-50%);
    z-index: 5;

    display: flex;
    flex-direction: column;
    justify-content: space-between;
}

.side-buttons-left {
    left: 3%;
}

.side-buttons-right {
    right: 3%;
}

.side-button {
    display: flex;
    align-items: center;
    justify-content: center;

    width: 170px;
    min-height: 52px;
    padding: 14px 20px;

    background: rgba(10, 10, 10, 0.88);
    color: #ffffff;

    text-decoration: none;
    text-align: center;

    font-size: 13px;
    font-weight: 700;
    letter-spacing: 2px;

    border-left: 4px solid #d71920;

    opacity: 0;
    transform: translateX(35px);

    transition:
        opacity 0.7s ease,
        transform 0.7s ease,
        background 0.25s ease;
}

.side-buttons-right .side-button {
    margin-left: auto;
    transform: translateX(-35px);
    border-left: none;
    border-right: 4px solid #d71920;
}

.side-button.show {
    opacity: 1;
    transform: translateX(0);
}

.side-buttons-right .side-button.show {
    transform: translateX(0);
}

.side-button:hover {
    background: rgba(10, 10, 10, 0.96);
    box-shadow:
        0 0 6px rgba(215, 25, 32, 0.65),
        0 0 14px rgba(215, 25, 32, 0.40),
        0 0 24px rgba(215, 25, 32, 0.18);
}

.disabled-button {
    pointer-events: auto;
    cursor: default;
}

/* ADATTAMENTO TABLET */
@media (max-width: 1000px) {

    .header {
        height: 100px;
        padding: 0 3%;
    }

    .nav {
        gap: 15px;
    }

    .nav-left {
        padding-right: 10px;
    }

    .nav-right {
        padding-left: 10px;
    }

    .nav a {
        font-size: 10px;
        letter-spacing: 1px;
    }

    .logo {
        width: 180px;
    }
}

/* PAGINA MERCHANDISING */

.merch-page {
    position: relative;
    width: 100vw;
    min-height: 100vh;
    overflow: hidden;
    background: #111;
}

.merch-content {
    position: relative;
    width: 100%;
    min-height: 100vh;

    display: flex;
    align-items: center;
    justify-content: center;

    padding: 130px 4% 40px;
}

.muurch-image {
    width: 65%;
    height: auto;
    display: block;
}

/* PAGINA CONTATTI */

.contatti-page {
    position: relative;
    width: 100vw;
    min-height: 100vh;
    overflow: hidden;
    background: #111;
}

.contatti-content {
    position: relative;
    width: 100%;
    min-height: 100vh;

    display: flex;
    align-items: center;
    justify-content: center;

    padding: 80px 4% 40px;
}

.contatti-image {
    width: 70%;
    height: auto;
    display: block;
}

/* PAGINA EVENTI */

.eventi-page {
    position: relative;
    width: 100vw;
    min-height: 100vh;
    overflow: hidden;
    background: #111;
}

.eventi-content {
    position: relative;
    width: 100%;
    min-height: 100vh;

    padding: 125px 5% 50px;

    color: #ffffff;
}

.eventi-title {
    text-align: center;
    margin-bottom: 20px;
}

.eventi-kicker {
    color: #d71920;
    font-size: 14px;
    font-weight: 700;
    letter-spacing: 4px;
    margin-bottom: 6px;
}

.eventi-title h1 {
    font-size: clamp(24px, 2.5vw, 38px);
    letter-spacing: 2px;
    margin-bottom: 5px;
}

.eventi-subtitle {
    font-size: 12px;
    letter-spacing: 2px;
    opacity: 0.75;
}


/* ANDATA / RITORNO */

.period-switch {
    display: flex;
    justify-content: center;
    gap: 8px;
    margin-bottom: 18px;
}

.period-button {
    border: 1px solid #d71920;
    background: rgba(10, 10, 10, 0.85);
    color: #ffffff;

    padding: 9px 24px;

    font-size: 12px;
    font-weight: 700;
    letter-spacing: 2px;

    cursor: pointer;

    transition:
        background 0.25s ease,
        box-shadow 0.25s ease;
}

.period-button:hover,
.period-button.active {
    background: rgba(215, 25, 32, 0.9);

    box-shadow:
        0 0 6px rgba(215, 25, 32, 0.55),
        0 0 14px rgba(215, 25, 32, 0.3);
}


/* STATISTICHE */

.eventi-stats {
    display: flex;
    justify-content: center;
    gap: 35px;

    margin-bottom: 22px;

    text-align: center;
}

.eventi-stats div {
    display: flex;
    flex-direction: column;
    gap: 3px;
}

.eventi-stats strong {
    font-size: 22px;
}

.eventi-stats span {
    font-size: 9px;
    letter-spacing: 1.5px;
    opacity: 0.7;
}


/* AGENDA */

.agenda-note {
    width: min(700px, 90%);
    margin: 0 auto 22px;

    padding: 13px 20px;

    background: rgba(10, 10, 10, 0.82);
    border-left: 4px solid #d71920;

    text-align: center;

    box-shadow: 0 0 18px rgba(0, 0, 0, 0.35);
}

.agenda-title {
    color: #d71920;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 2px;
    margin-bottom: 5px;
}

#next-match {
    font-family: "Kalam", cursive;
    font-size: 19px;
}


/* TABELLA PARTITE */

.matches-section {
    width: min(1050px, 94%);
    margin: 0 auto 30px;
}

.matches-header,
.match-row {
    display: grid;
    grid-template-columns: 90px 1fr 130px 120px;
    align-items: center;
}

.matches-header {
    padding: 10px 15px;

    background: rgba(215, 25, 32, 0.9);

    font-size: 10px;
    font-weight: 700;
    letter-spacing: 1.5px;
}

.match-row {
    min-height: 48px;
    padding: 8px 15px;

    background: rgba(10, 10, 10, 0.82);

    border-bottom: 1px solid rgba(255, 255, 255, 0.08);

    font-size: 12px;
}

.match-row:nth-child(even) {
    background: rgba(35, 35, 35, 0.82);
}

.match-day {
    color: #d71920;
    font-weight: 700;
}

.match-teams {
    text-align: left;
}

.our-team {
    font-weight: 700;
    color: #ffffff;
}

.separator {
    opacity: 0.5;
}

.match-result {
    text-align: center;
    font-weight: 700;
}

.match-date {
    text-align: right;
    opacity: 0.8;
}


/* CAMPI */

.fields-section {
    width: min(1050px, 94%);
    margin: 0 auto 30px;
}

.section-title {
    margin-bottom: 10px;

    color: #d71920;

    font-size: 13px;
    font-weight: 700;
    letter-spacing: 2px;
}

.field-row {
    display: flex;
    justify-content: space-between;
    align-items: center;

    padding: 10px 15px;

    background: rgba(10, 10, 10, 0.82);

    border-bottom: 1px solid rgba(255, 255, 255, 0.08);

    font-size: 11px;
}

.field-row span {
    opacity: 0.65;
}

.eventi-page {
    height: 100vh;
    overflow-y: auto;
    overflow-x: hidden;
}

.eventi-mascotte {
    position: absolute;
    right: 3%;
    bottom: 35px;

    width: 220px;
    height: auto;

    z-index: 3;
    pointer-events: none;
}

.associazione-page {
    height: 100vh;
    overflow-y: auto;
    overflow-x: hidden;
}

/* PAGINA ASSOCIAZIONE */

.associazione-page {
    position: relative;
    width: 100vw;
    min-height: 100vh;
    overflow-y: auto;
    overflow-x: hidden;
    background: #111;
}

.associazione-content {
    position: relative;
    width: 100%;
    min-height: 100vh;

    padding: 150px 6% 80px;
}

.associazione-title {
    text-align: center;
    margin-bottom: 55px;
}

.associazione-kicker {
    color: #d71920;
    font-size: 14px;
    font-weight: 700;
    letter-spacing: 5px;
    margin-bottom: 10px;
}

.associazione-title h1 {
    color: #ffffff;
    font-size: clamp(42px, 5vw, 72px);
    letter-spacing: 4px;
    margin-bottom: 12px;
}

.associazione-subtitle {
    color: #ffffff;
    font-family: "Kalam", cursive;
    font-size: clamp(20px, 2vw, 30px);
    letter-spacing: 1px;
}


/* DOCUMENTI */

.documenti-associazione {
    width: min(900px, 90%);
    margin: 0 auto;

    display: flex;
    flex-direction: column;
    gap: 22px;
}

.documento-card {
    position: relative;

    display: flex;
    align-items: center;

    min-height: 120px;
    padding: 22px 30px;

    background: rgba(245, 238, 220, 0.96);
    color: #111;

    text-decoration: none;

    border-left: 6px solid #d71920;

    transition:
        transform 0.25s ease,
        background 0.25s ease,
        box-shadow 0.25s ease;
}

.documento-card:hover {
    transform: translateX(8px);
    background: #ffffff;
    box-shadow: 0 8px 25px rgba(0, 0, 0, 0.35);
}

.documento-icon {
    width: 70px;
    flex-shrink: 0;

    font-size: 38px;
    text-align: center;
}

.documento-text {
    flex: 1;
    padding: 0 25px;
}

.documento-text h2 {
    margin: 0 0 7px;

    font-size: clamp(18px, 2vw, 25px);
    letter-spacing: 2px;
}

.documento-text p {
    margin: 0;

    font-size: 15px;
    line-height: 1.4;
    color: #444;
}

.documento-arrow {
    font-size: 32px;
    font-weight: 700;
    color: #d71920;
}

/* =====================================================
   CHI SIAMO — PRIMO BLOCCO
   ===================================================== */

.chi-siamo-page {
    position: relative;
    width: 100vw;
    height: 100vh;
    overflow-y: auto;
    overflow-x: hidden;
    background: #111;
}

.chi-siamo-content {
    position: relative;
    width: 100%;
    padding: 150px 6% 80px;
}

.chi-siamo-block {
    width: min(1200px, 92%);
    min-height: 520px;
    margin: 0 auto;

    display: grid;
    grid-template-columns: 1fr 1fr;
    align-items: center;
    gap: 60px;
}

.chi-siamo-image {
    position: relative;
    width: 100%;
    height: 520px;
    overflow: hidden;
}

.chi-siamo-image::after {
    content: "";
    position: absolute;
    inset: 0;
    background:
        linear-gradient(
            90deg,
            rgba(17, 17, 17, 0.05),
            rgba(17, 17, 17, 0.25)
        );
    pointer-events: none;
}

.chi-siamo-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.chi-siamo-text {
    color: #ffffff;
    max-width: 560px;
}

.chi-siamo-kicker {
    color: #d71920;
    font-size: 13px;
    font-weight: 700;
    letter-spacing: 5px;
    margin-bottom: 18px;
}

.chi-siamo-text h1 {
    margin: 0 0 30px;

    font-family: "Kalam", cursive;
    font-size: clamp(28px, 3vw, 46px);
    line-height: 1.15;
    font-weight: 700;
}

.chi-siamo-text p {
    margin: 0;

    font-size: clamp(16px, 1.25vw, 20px);
    line-height: 1.75;
    color: rgba(255, 255, 255, 0.88);
}

/* =====================================================
   CHI SIAMO — SECONDO BLOCCO
   ===================================================== */

.secondo-blocco {
    margin-top: 120px;
}

.secondo-blocco .chi-siamo-text {
    justify-self: end;
}

.secondo-blocco .chi-siamo-text p {
    margin-bottom: 28px;
}

.chi-siamo-highlight {
    margin-top: 35px;

    color: #d71920;
    font-family: "Kalam", cursive;
    font-size: clamp(28px, 3vw, 44px);
    line-height: 1.15;
    font-weight: 700;
}

/* =====================================================
    CHI SIAMO — TERZO BLOCCO
    ===================================================== */

 .terzo-blocco {
     margin-top: 150px;
     grid-template-columns: 1.2fr 0.8fr;
     gap: 70px;
 }

 .terzo-blocco .chi-siamo-image {
     height: 600px;
 }

 .terzo-blocco .chi-siamo-text {
     justify-self: start;
 }

 .terzo-blocco .chi-siamo-text p {
     margin-bottom: 30px;
 }

 .terzo-blocco .chi-siamo-highlight {
     margin-top: 45px;
     color: #d71920;
     font-family: "Kalam", cursive;
     font-size: clamp(30px, 3.2vw, 48px);
     line-height: 1.12;
     font-weight: 700;
 }

 /* =====================================================
    CHI SIAMO — QUARTO BLOCCO
    ===================================================== */

 .quarto-blocco {
     margin-top: 150px;
 }

 .quarto-blocco .chi-siamo-text {
     justify-self: end;
 }

 .quarto-blocco .chi-siamo-text p {
     margin-bottom: 30px;
 }

 .quarto-blocco .chi-siamo-highlight {
     margin: 40px 0;

     color: #d71920;
     font-family: "Kalam", cursive;
     font-size: clamp(32px, 3.4vw, 50px);
     line-height: 1.1;
     font-weight: 700;
 }

 /* =====================================================
    CHI SIAMO — QUINTO BLOCCO
    ===================================================== */

 .quinto-blocco {
     margin-top: 150px;
     grid-template-columns: 1.25fr 0.75fr;
     gap: 70px;
 }

 .quinto-blocco .chi-siamo-image {
     height: 620px;
 }

 .quinto-blocco .chi-siamo-text {
     justify-self: start;
 }

 .quinto-blocco .chi-siamo-text p {
     margin-bottom: 30px;
 }

 .quinto-blocco .chi-siamo-highlight {
     margin-top: 45px;
     color: #d71920;
     font-family: "Kalam", cursive;
     font-size: clamp(30px, 3.2vw, 48px);
     line-height: 1.12;
     font-weight: 700;
 }

 .chi-siamo-finale {
     position: relative;
     width: min(1400px, 94%);
     min-height: 720px;
     margin: 170px auto 80px;
     overflow: hidden;
 }

 .chi-siamo-finale-image {
     position: absolute;
     inset: 0;
 }

 .chi-siamo-finale-image img {
     width: 100%;
     height: 100%;
     object-fit: cover;
     display: block;
 }

 .chi-siamo-finale-overlay {
     position: absolute;
     inset: 0;
     background:
         linear-gradient(
             90deg,
             rgba(17, 17, 17, 0.15),
             rgba(17, 17, 17, 0.72)
         );
 }

 .chi-siamo-finale-text {
     position: absolute;
     right: 4%;
     top: 50%;
     transform: translateY(-50%);
     width: min(520px, 36%);
     color: #ffffff;
 }

 .chi-siamo-finale-main {
     color: #d71920;
     font-family: "Kalam", cursive;
     font-size: clamp(38px, 4.5vw, 68px);
     line-height: 1.05;
     font-weight: 700;
 }

 .chi-siamo-finale-closing {
     margin-top: 45px;
     color: #ffffff;
     font-family: "Kalam", cursive;
     font-size: clamp(32px, 3.5vw, 54px);
     line-height: 1.08;
     font-weight: 700;
 }