/* === Hero Section === */
.hero-container {
    max-width: 75rem;
    margin: 0 auto;
    padding: 0 1.875rem;
    display: flex;
    align-items: center;
    gap: 2rem;
    flex-wrap: wrap;
    min-height: 50vh;
}

/* Contenuto testuale della sezione Hero */
.hero-content {
    flex: 1;
    animation: fadeInLeft 0.8s ease-out;
}

/* Contenitore dell'immagine della sezione Hero */
.hero-image {
    flex: 1;
    display: flex;
    justify-content: center;
    animation: fadeInRight 0.8s ease-out;
}

/* Stili per l'immagine nella sezione Hero */
.hero-image img {
    max-width: 100%;
    height: auto;
    border-radius: 1rem;
    box-shadow: 0 0.5rem 1.5rem rgba(0, 0, 0, 0.1);
    object-fit: cover;
    max-height: 31.25rem;
}

/* Titolo principale della sezione Hero */
.main-title {
    font-size: 2.75rem;
    color: #333;
    margin: 0 0 1rem;
    line-height: 1.2;
    font-weight: 700;
    text-align: left;
}

/* Descrizione principale della sezione Hero */
.main-description {
    font-size: 1.2rem;
    color: #555;
    margin: 0 0 2rem;
    line-height: 1.6;
    text-align: justify;
}

/* === Card Section === */
.container {
    max-width: 75rem;
    margin: 0 auto;
    padding: 0 1.875rem;
}

/* Titolo delle sezioni */
.section-title {
    font-size: 2.2rem;
    color: #333;
    margin: 0;
    text-align: center;
}

/* Contenitore delle card */
.card-container {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 1.25rem;
    padding: 1.25rem 1.25rem 0;
}

/* Stile base delle card */
.card {
    display: flex;
    flex-direction: column;
    background: white;
    border-radius: 1rem;
    overflow: hidden;
    transition: transform 0.3s, box-shadow 0.3s;
}

/* Effetto hover sulle card */
.card:hover {
    transform: translateY(-0.3125rem);
    box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15);
}

/* Contenitore delle immagini nelle card */
.card-image {
    width: 100%;
    aspect-ratio: 16/9;
    overflow: hidden;
    background-color: transparent;
}

/* Immagini nelle card */
.card-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    border: none;
    outline: none;
}

/* Contenuto testuale delle card */
.card-content {
    padding: 1rem;
    text-align: center;
    display: flex;
    flex-direction: column;
    flex-grow: 1;
}

/* Titolo delle card */
.card-title {
    font-size: 1.5rem;
    color: #333;
    margin: 0;
}

/* Descrizione delle card */
.card-description {
    font-size: 1rem;
    color: #555;
    text-align: justify;
    margin-bottom: 0;
}

/* === Pricing Section === */
.pricing-table {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 1.875rem;
    padding: 1.25rem;
    justify-items: center;
}

/* Stile delle card di pricing */
.pricing-card {
    background-color: white;
    box-shadow: 0 0.3rem 0.4rem rgba(0, 0, 0, 0.1);
    border-radius: 1rem;
    padding: 1rem;
    text-align: center;
    transition: transform 0.3s ease, box-shadow 0.3s ease;
    width: 100%;
    box-sizing: border-box;
}

/* Effetto hover sulle card di pricing */
.pricing-card:hover {
    transform: translateY(-0.3125rem);
    box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15);
}

/* Titolo delle card di pricing */
.pricing-card h3 {
    font-size: 1.6rem;
    color: #333;
    margin: 0 0 1rem;
}

/* Prezzo nelle card di pricing */
.pricing-card .price {
    font-size: 1.6rem;
    color: #018dc1;
    font-weight: bold;
    margin: 0 0 1.5rem;
}

/* Lista delle caratteristiche nelle card di pricing */
.pricing-card ul {
    list-style: none;
    padding: 0;
    margin: 0;
}

/* Elementi della lista di pricing */
.pricing-card ul li {
    display: flex;
    align-items: flex-start;
    font-size: 1rem;
    color: #555;
    margin-bottom: 0.5rem;
    line-height: 1.2;
}

.pricing-card ul li:last-child {
    margin-bottom: 0;
}

/* Icona negli elementi della lista di pricing */
.pricing-card ul li .icon {
    flex: 0 0 1.875rem;
    text-align: center;
}

/* Testo negli elementi della lista di pricing */
.pricing-card ul li .text {
    flex: 1;
    margin-left: 0.625rem;
    text-align: left;
}

/* Icona FontAwesome nelle liste di pricing */
.pricing-card ul li i {
    margin-right: 0.5rem;
    color: #018dc1;
}

/* Descrizione secondaria sotto la tabella di pricing */
.secondary-description {
    font-size: 1.2rem;
    color: #555;
    margin: 1rem 0 0;
    line-height: 1.6;
    text-align: center;
}

/* === Animazioni === */
@keyframes fadeIn {
    from {
        opacity: 0;
    }

    to {
        opacity: 1;
    }
}

@keyframes fadeInLeft {
    from {
        opacity: 0;
        transform: translateX(-1.25rem);
    }

    to {
        opacity: 1;
        transform: translateX(0);
    }
}

@keyframes fadeInRight {
    from {
        opacity: 0;
        transform: translateX(1.25rem);
    }

    to {
        opacity: 1;
        transform: translateX(0);
    }
}

/* === Media Queries === */
/* Media query per schermi fino a 1023px */
@media (max-width: 1023px) {

    /* Hero Section */
    .section:first-of-type {
        padding-top: calc(3rem + 10vh);
    }

    .hero-container {
        flex-direction: column-reverse;
        text-align: center;
        padding: 0 1.25rem;
        min-height: 25rem;
        max-width: 40rem;
    }

    .hero-content {
        text-align: center;
    }

    .main-title {
        font-size: 2.2rem;
        text-align: center;
    }

    .main-description {
        font-size: 1.1rem;
        text-align: justify;
    }

    .hero-image {
        margin-bottom: 0;
    }

    .hero-image img {
        max-height: 15.625rem;
    }

    /* Card Section */
    .section-title {
        margin: 2rem 0 0;
        font-size: 2rem;
    }

    .card-container {
        display: flex;
        flex-direction: column;
        gap: 1.25rem;
        width: 100%;
    }

    .card {
        width: 100%;
        max-width: 25rem;
        margin: 0 auto;
    }

    .card-title {
        font-size: 1.4rem;
    }

    /* Pricing Section */
    .pricing-table {
        display: flex;
        flex-direction: column;
        gap: 1.25rem;
    }

    .pricing-card {
        max-width: 25rem;
        margin: 0 auto;
    }

    .secondary-description {
        max-width: 40rem;
        margin: 0 auto;
    }

    /* Form Section */
    #message {
        min-height: 25vh;
    }
}

/* Media query per schermi fino a 470px */
@media (max-width: 470px) {
    .main-title {
        font-size: 2rem;
    }

    .main-description {
        font-size: 1rem;
        text-align: justify;
    }

    .hero-image img {
        max-height: 12.5rem;
    }

    /* Card Section */
    .container {
        padding: 0 1rem !important;
    }

    .section-title {
        padding: 0 0.625rem;
        font-size: 1.8rem;
    }

    .card-description {
        font-size: 0.9rem;
    }

    /* Pricing Section */
    .pricing-card h3 {
        font-size: 1.4rem;
    }

    .pricing-card .price {
        font-size: 1.6rem;
    }

    .pricing-card ul li {
        font-size: 0.9rem;
    }
}

/* Media query per schermi fino a 380px */
@media (max-width: 380px) {

    /* Hero Section */
    .section:first-of-type {
        padding-top: calc(1.5rem + 9vh);
    }

    .hero-container {
        min-height: 21.875rem;
        padding: 0 0.5rem;
    }

    .main-title {
        font-size: 1.8rem;
    }

    .main-description {
        font-size: 0.9rem;
    }

    .section-title {
        font-size: 1.6rem;
    }

    /* Card e Pricing Section */
    .container {
        padding-left: 8px !important;
        padding-right: 8px !important;
    }

    .card-container {
        padding-left: 6px !important;
        padding-right: 6px !important;
    }
}