@media (min-width: 1200px) {
    .container {
        max-width: 1360px;
        padding-left: 30px;
        padding-right: 30px;
    }
}

body {
    /* era #666666, un valore di FormaConcorsi: ora il grigioverde del brand.
       Il font lo imposta italcura-home.css, che si carica dopo. */
    color: var(--ic-text);
}

/* Il CMS avvolge il testo delle pagine interne (chi-siamo, contatti, ...) in un
   contenitore con la classe Bootstrap "text-justify". Senza sillabazione il
   giustificato apre buchi enormi tra le parole: le righe arrivano a 4-5 spazi
   di fila e il testo sembra rotto.
   Bootstrap dichiara text-align: justify con !important, quindi l'unico modo di
   neutralizzarla e' la stessa arma: fra due !important vince la specificita',
   e qui il selettore composto batte quello di Bootstrap. */
.text-justify,
.col-md-12.text-justify {
    text-align: left !important;
}

/* Logo - dimensioni massime uniformi */
img[src*="at-logo"] {
    max-width: 150px !important;
    height: auto !important;
}
#footer_hero img[src*="at-logo"] {
    max-width: 250px !important;
}

.text-responsive {
    font-size: calc(100% + 1vw + 1vh);
}

.title {
    color: var(--ic-primary);
}

#main_menu_11 {
    padding-bottom: 13px;
}

.page-header {
    color: var(--ic-primary);
    margin-bottom: 20px;
}

.page-header,
h1.page-header,
h2.page-header,
h3.page-header {
    font-weight: 900;
    font-size: 3rem;
}

/* 48px su un telefono da 390px sono troppi: il titolo va a capo tre volte e
   sborda visivamente. Sotto i 768px scende a 2rem. */
@media (max-width: 767px) {
    .page-header,
    h1.page-header,
    h2.page-header,
    h3.page-header {
        font-size: 2rem;
        line-height: 1.15;
    }
}

/* Jumbotron scheda corso: fondo scuro nei toni del sito con tocco pesca,
   come l'hero della home. Il !important resta perche' questa e' l'unica
   fonte del gradiente (lo stile inline di corso.php e' solo un fallback). */
.jumbotron.text-center.jumbotron-fluid {
    background:
        radial-gradient(circle at 82% 18%, rgba(247, 208, 195, 0.35), transparent 30%),
        linear-gradient(90deg, #1a2e26, #26715c) !important;
}

/* Il titolo eredita il bianco dal jumbotron solo se nessuna regola lo
   colora: l'h1 globale di italcura-home.css lo mette ink e vincerebbe.
   Questo selettore ha specificita' maggiore, quindi niente !important. */
.jumbotron.text-center.jumbotron-fluid h1 {
    color: #fff;
}

/* Card-body padding-bottom nella pagina dei corsi */
.jumbotron.text-center.jumbotron-fluid ~ .container .card-body.text-center {
    padding-bottom: 0 !important;
}

thead th {
    background-color: #666;
    color: #fff;
    font-size: 12px;
    text-transform: uppercase;
}

#footer_hero {
    background-color: #132741;
    color: #fff;
    border-top: 0px solid #ededed;
    margin-top: 50px;
    padding: 50px 0px 50px 0px;
}

#footer_hero a {
    color: #ccc;
}

/* Widget WhatsApp Fisso */
#WhatsAppFixed {
    position: fixed;
    /* Su iPhone con la barra di sistema o gli angoli tondi, 10px dal bordo
       possono finire sotto l'interfaccia. env() tiene conto della safe area;
       la dichiarazione che precede max() fa da ripiego per i browser che non
       conoscono env(). */
    bottom: 10px;
    bottom: max(10px, env(safe-area-inset-bottom));
    right: 10px;
    right: max(10px, env(safe-area-inset-right));
    cursor: pointer;
    display: none;
    /* Senza z-index il pulsante resta nel livello 0 e le card lo scavalcano:
       le griglie delle sezioni (.ic-model-grid, .ic-service-grid,
       .ic-process-grid, .ic-clarity-grid) hanno position: relative + z-index
       da 1 a 4, e .corsi-arrow arriva a 10. Con position: fixed e z-index auto
       il widget finiva sotto di loro mentre si scorre.
       1035 sta sopra qualunque contenuto della pagina ma sotto il fondale dei
       modali di Bootstrap (1040): cosi' una lightbox resta davanti al pulsante. */
    z-index: 1035;
}

#WhatsAppFixed .fa {
    margin-right: 5px;
}

#WhatsAppFixed img {
    vertical-align: middle;
    border-style: none;
}

/* Spacing verticale uniforme per le sezioni */
.section-spacing {
    padding-top: 5rem;
    padding-bottom: 5rem;
}

.section-spacing-sm {
    padding-top: 3rem;
    padding-bottom: 3rem;
}

.section-spacing-lg {
    padding-top: 7rem;
    padding-bottom: 7rem;
}

/* Spacing tra le sezioni */
.section-margin {
    margin-top: 3rem;
    margin-bottom: 3rem;
}

/* Responsive spacing */
@media (max-width: 767px) {
    .section-spacing {
        padding-top: 3rem;
        padding-bottom: 3rem;
    }

    .section-spacing-lg {
        padding-top: 5rem;
        padding-bottom: 5rem;
    }

    .section-margin {
        margin-top: 2rem;
        margin-bottom: 2rem;
    }
}

/* Form Richiesta Info - Stile moderno */
.richiesta-form-container {
    border-radius: 1.5rem;
    padding: 3rem;
    /*box-shadow: 0 25px 50px -12px rgba(255, 107, 53, 0.25);*/
}

.richiesta-form-container input,
.richiesta-form-container textarea,
.richiesta-form-container select {
    border-radius: 0.75rem;
    border: 2px solid rgba(255, 255, 255, 0.5);
    background-color: rgba(255, 255, 255, 0.2);
    color: white;
    padding: 0.75rem 1rem;
    /* si animano solo le proprieta' che cambiano nel :focus (bordo e sfondo):
       "all" faceva entrare nella transizione anche padding e font */
    transition: border-color 0.3s ease, background-color 0.3s ease;
    font-weight: 500;
}

.richiesta-form-container input:focus,
.richiesta-form-container textarea:focus,
.richiesta-form-container select:focus {
    border-color: white;
    background-color: rgba(255, 255, 255, 0.3);
    outline: none;
    box-shadow: 0 0 0 4px rgba(255, 255, 255, 0.3);
}

.richiesta-form-container input::placeholder,
.richiesta-form-container textarea::placeholder {
    color: rgba(255, 255, 255, 0.85);
}

.richiesta-form-container label {
    color: white;
    font-weight: 600;
    margin-bottom: 0.5rem;
}

.richiesta-form-container h4 {
    color: white;
    font-weight: 700;
}

/* Bottone moderno per il form */
.richiesta-form-container .btn-modern-form,
.richiesta-form-container input[type="submit"],
.richiesta-form-container button[type="submit"] {
    background-color: white !important;
    color: var(--ic-primary) !important;
    border: none !important;
    border-radius: 0.75rem;
    padding: 0.875rem 2rem;
    font-weight: 700;
    font-size: 1rem;
    /* il :hover cambia transform, ombra e sfondo */
    transition: transform 0.3s ease, box-shadow 0.3s ease, background-color 0.3s ease;
    box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1);
    cursor: pointer;
}

.richiesta-form-container .btn-modern-form:hover,
.richiesta-form-container input[type="submit"]:hover,
.richiesta-form-container button[type="submit"]:hover {
    transform: scale(1.05);
    box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.2);
    background-color: #f8fafc;
}

.richiesta-form-container .btn-modern-form:active,
.richiesta-form-container input[type="submit"]:active,
.richiesta-form-container button[type="submit"]:active {
    transform: scale(0.98);
}

/* Responsive per il form */
@media (max-width: 767px) {
    .richiesta-form-container {
        padding: 1.5rem;
    }

    .richiesta-form-container h4 {
        font-size: 1.5rem;
    }
}

/* Card deck spacing */
.card,
.card-deck .card {
    margin-bottom: 2rem;
}

/* Uniformare i bottoni delle card corsi */
.btn-primary,
.btn-success,
.btn-warning,
.btn-danger,
.btn-secondary,
.card-deck .btn-primary,
.card-deck .btn-success,
.card-deck .btn-warning,
.card-deck .btn-danger,
.card-deck .btn-secondary {
    background-color: var(--ic-primary) !important;
    border-color: var(--ic-primary) !important;
    color: white !important;
    /* il :hover cambia sfondo, bordo, colore, transform e ombra */
    transition: background-color 0.3s ease, border-color 0.3s ease, color 0.3s ease, transform 0.3s ease, box-shadow 0.3s ease;
}

.btn-primary:hover,
.btn-success:hover,
.btn-warning:hover,
.btn-danger:hover,
.btn-secondary:hover,
.card-deck .btn-primary:hover,
.card-deck .btn-success:hover,
.card-deck .btn-warning:hover,
.card-deck .btn-danger:hover,
.card-deck .btn-secondary:hover {
    background-color: var(--ic-primary-strong);
    border-color: var(--ic-primary-strong);
    color: white;
    transform: scale(1.05);
    box-shadow: 0 10px 15px -3px rgba(0, 180, 137, 0.3);
}

/* Migliorare l'aspetto delle card corsi */
.card,
.card-deck .card {
    border: none;
    border-radius: 1rem;
    overflow: hidden;
    transition:
        transform 0.3s ease,
        box-shadow 0.3s ease;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
    cursor: pointer;
    will-change: transform, box-shadow;
    backface-visibility: hidden;
}

.card:hover,
.card-deck .card:hover {
    transform: translateY(-5px);
    box-shadow: 0 20px 25px -5px rgba(0, 180, 137, 0.2);
    cursor: pointer;
}

.card-img,
.card-deck .card-img {
    height: 200px;
    object-fit: cover;
}

/* .card-body,			MOMENTANEO
.card-deck .card-body {
	padding: 1.5rem;
} */

.card-title,
.card-deck .card-title {
    color: #1e3a5f;
    font-weight: 700;
    margin-bottom: 1rem;
}

/* Fix reCAPTCHA overflow su mobile */
.g-recaptcha {
    overflow: hidden;
    max-width: 100%;
}

.g-recaptcha iframe {
    max-width: 100%;
}

@media (max-width: 767px) {
    .g-recaptcha {
        transform: scale(0.85);
        transform-origin: 0 0;
        width: 100%;
        overflow: hidden;
    }
}

/* Chi Siamo specific styles */
.chisiamo-banner {
    position: relative;
}

.chisiamo-banner img {
    width: 100%;
    height: auto;
    display: block;
}

.chisiamo-banner::after {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: linear-gradient(
        to right,
        rgba(0, 180, 137, 0.75),
        rgba(0, 150, 100, 0.65)
    );
}

.chisiamo-content {
    color: var(--ic-text);
    line-height: 1.75;
    font-size: 1.125rem;
}

.chisiamo-content h2 {
    color: var(--ic-ink);
    font-weight: 700;
    margin: 2rem 0 1rem;
    font-size: 2rem;
}

.chisiamo-content h3 {
    color: var(--ic-primary);
    font-weight: 600;
    margin: 1.5rem 0 0.75rem;
    font-size: 1.5rem;
}

.chisiamo-content h5 {
    color: var(--ic-primary);
    font-weight: 600;
    margin: 1rem 0 0.5rem;
    font-size: 20px;
}

.chisiamo-content p {
    margin-bottom: 1rem;
}

.chisiamo-content strong {
    color: var(--ic-ink);
    font-weight: 700;
}

@media (max-width: 767px) {
    .chisiamo-content h2 {
        font-size: 1.8rem;
    }

    .chisiamo-content h3 {
        font-size: 1.3rem;
    }

    .chisiamo-content h5 {
        font-size: 1.1rem;
    }

    .chisiamo-content p {
        font-size: 1rem;
    }

    .chisiamo-content {
        padding: 0 1rem;
    }
}

/* Login page specific styles */
/* Input fields - scoped by form IDs */
#form1 .form-control,
#form2 .form-control,
#form_pwd .form-control {
    border: 1.5px solid #e2e8f0;
    border-radius: 0.75rem;
    /*padding: 0.625rem 1rem;*/
    padding: 0.75rem 1rem !important;
    font-size: 0.9375rem;
    transition:
        border-color 0.2s,
        box-shadow 0.2s;
    background-color: #fff;
}

#form1 .form-control:focus,
#form2 .form-control:focus,
#form_pwd .form-control:focus {
    border-color: var(--ic-primary);
    box-shadow: 0 0 0 3px rgba(0, 184, 148, 0.15);
    outline: none;
}

#form1 .form-control::placeholder,
#form2 .form-control::placeholder,
#form_pwd .form-control::placeholder {
    color: #94a3b8;
}

/* Input groups - scoped by form IDs */
#form1 .input-group,
#form2 .input-group,
#form_pwd .input-group {
    border-radius: 0.75rem;
    overflow: hidden;
    border: 1.5px solid #e2e8f0;
    transition:
        border-color 0.2s,
        box-shadow 0.2s;
}

#form1 .input-group:focus-within,
#form2 .input-group:focus-within,
#form_pwd .input-group:focus-within {
    border-color: var(--ic-primary);
    box-shadow: 0 0 0 3px rgba(0, 184, 148, 0.15);
}

#form1 .input-group-prepend,
#form2 .input-group-prepend,
#form_pwd .input-group-prepend {
    margin-right: 0;
}

#form1 .input-group-text,
#form2 .input-group-text,
#form_pwd .input-group-text {
    background-color: #f8fafc;
    border: none;
    border-radius: 0;
    padding: 0.625rem 0.75rem;
    color: var(--ic-primary);
}

/* Labels - scoped by form IDs */
#form1 .control-label,
#form2 .control-label,
#form_pwd .control-label {
    font-weight: 600;
    color: #0f172a;
    font-size: 0.875rem;
    margin-bottom: 0.375rem;
}

/* Buttons - scoped by form IDs */
#form1 .btn-success,
#form2 .btn-success,
#form_pwd .btn-success {
    background-color: var(--ic-primary) !important;
    border-color: var(--ic-primary) !important;
    color: #fff !important;
    border-radius: 0.75rem !important;
    padding: 0.625rem 1.5rem !important;
    font-weight: 700 !important;
    font-size: 0.9375rem !important;
    /* il :hover cambia sfondo, bordo, ombra e transform */
    transition: background-color 0.2s, border-color 0.2s, box-shadow 0.2s, transform 0.2s !important;
    box-shadow: 0 4px 14px rgba(0, 184, 148, 0.25) !important;
    border: none !important;
}

#form1 .btn-success:hover,
#form2 .btn-success:hover,
#form_pwd .btn-success:hover {
    background-color: var(--ic-primary-strong) !important;
    border-color: var(--ic-primary-strong) !important;
    box-shadow: 0 6px 20px rgba(0, 184, 148, 0.35) !important;
    transform: translateY(-1px) !important;
}

#form1 .btn-success:active,
#form2 .btn-success:active,
#form_pwd .btn-success:active {
    transform: translateY(0) !important;
}

/* Card backgrounds - scoped by form IDs */
#form1 .card,
#form2 .card,
#form_pwd .card {
    background-color: transparent !important;
    border: none !important;
    border-radius: 0 !important;
    overflow: visible !important;
    transition: none !important;
    box-shadow: none !important;
}

/* Card with light background - scoped by form IDs */
#form1 .card.bg-light,
#form2 .card.bg-light,
#form_pwd .card.bg-light {
    background-color: transparent !important;
    border: none !important;
    border-radius: 0 !important;
    overflow: visible !important;
    transition: none !important;
    box-shadow: none !important;
}

/* Card body - scoped by form IDs - MOMENTANEO */
#form1 .card-body,
#form2 .card-body,
#form_pwd .card-body {
    padding: 0 !important;
}

/* Form groups spacing - scoped by form IDs */
#form1 .form-group,
#form2 .form-group,
#form_pwd .form-group {
    margin-bottom: 1.25rem;
}

/* Reset Bootstrap row/col margins inside forms - scoped by form IDs */
#form1 .form-group .row,
#form1 .form-group .col-md-12,
#form2 .form-group .row,
#form2 .form-group .col-md-12,
#form_pwd .form-group .row,
#form_pwd .form-group .col-md-12 {
    margin: 0;
    padding: 0;
}

/* Required asterisk - scoped by form IDs */
#form1 .text-danger,
#form2 .text-danger,
#form_pwd .text-danger {
    color: var(--ic-primary);
}

/* reCAPTCHA spacing - scoped by form IDs */
#form1 .g-recaptcha,
#form2 .g-recaptcha,
#form_pwd .g-recaptcha {
    margin-bottom: 1.25rem;
}

/* Fieldset - scoped by form IDs */
#form1 fieldset,
#form2 fieldset,
#form_pwd fieldset {
    border: none;
    margin: 0;
    padding: 0;
}

/* Page headers - scoped by form IDs */
#form1 .page-header,
#form2 .page-header,
#form_pwd .page-header {
    border-bottom: none;
    margin: 0 0 1.5rem 0;
    padding: 0;
}

#form1 .page-header h3,
#form2 .page-header h3,
#form_pwd .page-header h3 {
    font-size: 1.25rem;
    font-weight: 700;
    color: #0f172a;
    margin-bottom: 0.75rem;
}

/* Paragraphs inside cards - scoped by form IDs */
#form1 .card p,
#form2 .card p,
#form_pwd .card p,
#form1 .bg-white p,
#form2 .bg-white p,
#form_pwd .bg-white p {
    margin-bottom: 1rem;
}

/* Disable hover transitions - scoped by form IDs */
#form1 .card:hover,
#form2 .card:hover,
#form_pwd .card:hover,
#form1 .card-body:hover,
#form2 .card-body:hover,
#form_pwd .card-body:hover {
    transform: none !important;
    box-shadow: none !important;
    transition: none !important;
}

/* ============================================================
   Carousel "I Nostri Corsi" — scroll orizzontale
   ============================================================ */
.corsi-scroll-wrapper {
    position: relative;
    padding: 0 3rem;
}
.corsi-scroll-wrapper .card-deck {
    display: flex !important;
    flex-wrap: nowrap !important;
    overflow-x: auto !important;
    scroll-snap-type: x mandatory !important;
    scroll-behavior: smooth !important;
    padding: 0.5rem 0.5rem 2rem !important;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
}
.corsi-scroll-wrapper .card-deck::-webkit-scrollbar {
    display: none;
}
.corsi-scroll-wrapper .card-deck .card {
    flex: 0 0 calc(33.333% - 1rem) !important;
    max-width: calc(33.333% - 1rem) !important;
    scroll-snap-align: start;
}
.corsi-scroll-wrapper .card-deck .card .card-body {
    display: flex;
    flex-direction: column;
    height: 100%;
}
.corsi-scroll-wrapper .card-deck .card .card-text {
    flex-grow: 1;
}
.corsi-scroll-wrapper .card-deck .card .card-text .btn {
    align-self: stretch;
    margin-top: auto;
}
.corsi-scroll-wrapper .corsi-arrow {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    background: var(--ic-primary);
    color: white;
    border: none;
    border-radius: 50%;
    width: 44px;
    height: 44px;
    font-size: 1.5rem;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    z-index: 10;
    opacity: 0;
    pointer-events: none;
    transition:
        opacity 0.3s ease,
        background 0.3s ease,
        transform 0.3s ease;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.2);
}
.corsi-scroll-wrapper:hover .corsi-arrow {
    opacity: 1;
    pointer-events: all;
}
.corsi-scroll-wrapper .corsi-arrow:hover {
    background: var(--ic-primary-strong);
    transform: translateY(-50%) scale(1.1);
}
.corsi-scroll-wrapper .corsi-arrow.prev {
    left: 0.5rem;
}
.corsi-scroll-wrapper .corsi-arrow.next {
    right: 0.5rem;
}
.corsi-scroll-wrapper .corsi-arrow:disabled {
    background: #ccc;
    cursor: not-allowed;
    opacity: 0.5;
}
.corsi-scroll-wrapper .corsi-arrow:disabled:hover {
    background: #ccc;
    transform: translateY(-50%);
}

@media (max-width: 991px) {
    .corsi-scroll-wrapper .card-deck .card {
        flex: 0 0 calc(33.333% - 1.3rem) !important;
        max-width: calc(33.333% - 1.3rem) !important;
    }
    .corsi-scroll-wrapper {
        padding: 0 2.5rem;
    }
}
@media (max-width: 575px) {
    .corsi-scroll-wrapper .card-deck {
        gap: 1rem !important;
    }
    .corsi-scroll-wrapper .card-deck .card {
        flex: 0 0 calc(100% - 0.5rem) !important;
        max-width: calc(100% - 0.5rem) !important;
        scroll-snap-align: center !important;
    }
    .corsi-scroll-wrapper .corsi-arrow {
        width: 36px;
        height: 36px;
        font-size: 1.2rem;
    }
    .corsi-scroll-wrapper {
        padding: 0 2rem;
    }
}
