/* ==========================================================================
   TEAM MIKE THEME — CONTACTS PAGE
   File consigliato: themes/teammike_theme/assets/css/contacts.css

   Scopo:
   - Skin completa e isolata per contacts.php
   - Nessuna modifica alla logica PHP
   - Override Bootstrap confinati alla sola pagina contatti
   - Layout premium TEAM MIKE responsive
   ========================================================================== */

.vital-contact-page {
    --tm-contact-bg: #050505;
    --tm-contact-surface: #0d0d0d;
    --tm-contact-surface-2: #121212;
    --tm-contact-surface-3: #171717;
    --tm-contact-light: #f6f6f6;
    --tm-contact-light-2: #ececec;
    --tm-contact-text: #ffffff;
    --tm-contact-muted: #a8a8a8;
    --tm-contact-muted-dark: #656565;
    --tm-contact-red: #ef1010;
    --tm-contact-red-hover: #ff2525;
    --tm-contact-red-soft: rgba(239, 16, 16, 0.12);
    --tm-contact-border: rgba(255,255,255,0.10);
    --tm-contact-border-strong: rgba(255,255,255,0.17);
    --tm-contact-radius: 24px;
    --tm-contact-radius-sm: 14px;
    --tm-contact-shadow: 0 28px 75px rgba(0,0,0,0.34);

    width: 100%;
    overflow: hidden;
    background: var(--tm-contact-bg);
    color: var(--tm-contact-text);
    font-family: Montserrat, Arial, sans-serif;
    line-height: 1.55;
}


.vital-contact-page .vital-kicker,
.vital-contact-page .vital-contact-lead,
.vital-contact-page .vital-contact-stat,
.vital-contact-page .vital-contact-panel-head p,
.vital-contact-page .vital-contact-form,
.vital-contact-page .vital-alert,
.vital-contact-page .vital-section-eyebrow,
.vital-contact-page .vital-section-text,
.vital-contact-page .vital-info-card,
.vital-contact-page .vital-process,
.vital-contact-page .vital-contact-cta p,
.vital-contact-page .vital-btn-main,
.vital-contact-page .vital-btn-dark {
    font-family: Montserrat, Arial, sans-serif;
}

.vital-contact-page .vital-contact-title,
.vital-contact-page .vital-contact-panel-head h2,
.vital-contact-page .vital-section-title,
.vital-contact-page .vital-contact-cta h2 {
    font-family: Oswald, Impact, sans-serif;
}

/* ==========================================================================
   HERO / INTRO
   ========================================================================== */

.vital-contact-wrap {
    position: relative;
    isolation: isolate;
    padding: clamp(64px, 7vw, 108px) 0;
    background:
        radial-gradient(circle at 88% 22%, rgba(239,16,16,0.17), transparent 31%),
        radial-gradient(circle at 18% 82%, rgba(239,16,16,0.05), transparent 28%),
        linear-gradient(135deg, #050505 0%, #0a0a0a 54%, #080808 100%);
}

.vital-contact-wrap::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: -2;
    pointer-events: none;
    opacity: .15;
    background-image:
        linear-gradient(rgba(255,255,255,.026) 1px, transparent 1px),
        linear-gradient(90deg, rgba(255,255,255,.026) 1px, transparent 1px);
    background-size: 44px 44px;
    mask-image: linear-gradient(to bottom, transparent 0%, #000 15%, #000 88%, transparent 100%);
}

.vital-contact-wrap::after {
    content: "TEAM MIKE";
    position: absolute;
    left: -20px;
    bottom: -12px;
    z-index: -1;
    font-family: Oswald, Impact, sans-serif;
    font-size: clamp(5rem, 11vw, 10rem);
    line-height: .84;
    font-weight: 700;
    letter-spacing: -.03em;
    white-space: nowrap;
    color: rgba(255,255,255,.018);
    pointer-events: none;
    user-select: none;
}

.vital-contact-page .container {
    position: relative;
    z-index: 1;
}

/* ==========================================================================
   KICKER / TITOLI
   ========================================================================== */

.vital-contact-page .vital-kicker {
    display: inline-flex;
    align-items: center;
    gap: 11px;
    margin-bottom: 18px;
    color: #f3f3f3;
    font-size: .78rem;
    line-height: 1.2;
    font-weight: 900;
    letter-spacing: .18em;
    text-transform: uppercase;
}

.vital-contact-page .vital-kicker > span {
    display: inline-block;
    width: 34px;
    height: 2px;
    flex: 0 0 auto;
    border-radius: 999px;
    background: var(--tm-contact-red);
}

.vital-contact-title {
    max-width: 720px;
    margin: 0 0 22px !important;
    color: #fff !important;
    font-size: clamp(2.7rem, 4.8vw, 4.5rem);
    line-height: 1;
    letter-spacing: -.02em;
    font-weight: 700;
    text-transform: uppercase;
}

.vital-contact-title strong {
    display: inline;
    color: var(--tm-contact-red);
    font-weight: 700;
}

.vital-contact-lead {
    max-width: 720px;
    margin: 0;
    color: var(--tm-contact-muted);
    font-size: clamp(.98rem, 1.2vw, 1.08rem);
    line-height: 1.7;
}

/* ==========================================================================
   INTRO STATS
   ========================================================================== */

.vital-contact-stats {
    display: grid;
    grid-template-columns: repeat(3, minmax(0,1fr));
    gap: 12px;
    margin-top: 34px;
    max-width: 780px;
}

.vital-contact-stat {
    min-height: 116px;
    padding: 18px;
    border: 1px solid var(--tm-contact-border);
    border-radius: 16px;
    background: rgba(255,255,255,.025);
    backdrop-filter: blur(8px);
}

.vital-contact-stat b {
    display: block;
    margin-bottom: 11px;
    color: var(--tm-contact-red);
    font-size: .78rem;
    line-height: 1;
    letter-spacing: .08em;
}

.vital-contact-stat span {
    display: block;
    color: #e8e8e8;
    font-size: .88rem;
    line-height: 1.5;
}

/* ==========================================================================
   CONTACT FORM PANEL
   ========================================================================== */

.vital-contact-panel {
    position: relative;
    overflow: hidden;
    padding: clamp(28px, 3vw, 42px);
    border: 1px solid var(--tm-contact-border);
    border-radius: var(--tm-contact-radius);
    background:
        radial-gradient(circle at 100% 0%, rgba(239,16,16,.07), transparent 32%),
        linear-gradient(180deg, rgba(20,20,20,.98), rgba(12,12,12,.99));
    box-shadow: var(--tm-contact-shadow);
}

.vital-contact-panel::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 3px;
    background: linear-gradient(90deg, var(--tm-contact-red), rgba(239,16,16,.2), transparent);
}

.vital-contact-panel-head {
    margin-bottom: 28px;
}

.vital-contact-panel-head h2 {
    margin: 0 0 10px;
    color: #fff;
    font-size: clamp(1.75rem, 2.6vw, 2.3rem);
    line-height: 1.08;
    font-weight: 700;
    letter-spacing: -.015em;
}

.vital-contact-panel-head p {
    margin: 0;
    color: var(--tm-contact-muted);
    font-size: .93rem;
    line-height: 1.62;
}

/* ==========================================================================
   FORM LABELS + BOOTSTRAP OVERRIDES LOCALI
   ========================================================================== */

.vital-contact-page .vital-contact-form .form-label {
    display: block;
    margin-bottom: 8px;
    color: #ededed;
    font-size: .84rem;
    line-height: 1.2;
    font-weight: 700;
}

.vital-contact-page .vital-contact-form .form-control,
.vital-contact-page .vital-contact-form .form-select {
    box-sizing: border-box;
    width: 100%;
    min-height: 54px;
    padding: 0 15px;
    border: 1px solid var(--tm-contact-border-strong);
    border-radius: var(--tm-contact-radius-sm);
    outline: 0;
    background-color: #1a1e26;
    color: #fff;
    font: inherit;
    font-size: .94rem;
    box-shadow: none;
    transition:
        border-color 170ms ease,
        box-shadow 170ms ease,
        background-color 170ms ease,
        transform 170ms ease;
}

.vital-contact-page .vital-contact-form textarea.form-control {
    min-height: 138px;
    padding-top: 14px;
    padding-bottom: 14px;
    line-height: 1.55;
    resize: vertical;
}

.vital-contact-page .vital-contact-form .form-control::placeholder {
    color: #747b86;
    opacity: 1;
}

.vital-contact-page .vital-contact-form .form-control:hover,
.vital-contact-page .vital-contact-form .form-select:hover {
    border-color: rgba(255,255,255,.25);
}

.vital-contact-page .vital-contact-form .form-control:focus,
.vital-contact-page .vital-contact-form .form-select:focus {
    border-color: var(--tm-contact-red);
    background-color: #1d212a;
    color: #fff;
    box-shadow: 0 0 0 4px var(--tm-contact-red-soft);
}

.vital-contact-page .vital-contact-form .form-select {
    cursor: pointer;
}

.vital-contact-page .vital-contact-form .form-select option {
    background: #161616;
    color: #fff;
}

/* autofill */
.vital-contact-page .vital-contact-form input:-webkit-autofill,
.vital-contact-page .vital-contact-form input:-webkit-autofill:hover,
.vital-contact-page .vital-contact-form input:-webkit-autofill:focus,
.vital-contact-page .vital-contact-form textarea:-webkit-autofill {
    -webkit-text-fill-color: #fff !important;
    caret-color: #fff !important;
    -webkit-box-shadow: 0 0 0 1000px #1a1e26 inset !important;
    box-shadow: 0 0 0 1000px #1a1e26 inset !important;
    border: 1px solid var(--tm-contact-border-strong) !important;
}

/* ==========================================================================
   CHECKBOX PRIVACY
   ========================================================================== */

.vital-contact-page .vital-contact-form .form-check {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    padding-left: 0;
    margin: 2px 0 4px;
}

.vital-contact-page .vital-contact-form .form-check-input {
    flex: 0 0 auto;
    width: 19px;
    height: 19px;
    margin: 1px 0 0;
    border: 1px solid rgba(255,255,255,.28);
    border-radius: 5px;
    background-color: #171717;
    cursor: pointer;
    box-shadow: none;
}

.vital-contact-page .vital-contact-form .form-check-input:focus {
    border-color: var(--tm-contact-red);
    box-shadow: 0 0 0 4px var(--tm-contact-red-soft);
}

.vital-contact-page .vital-contact-form .form-check-input:checked {
    border-color: var(--tm-contact-red);
    background-color: var(--tm-contact-red);
}

.vital-contact-page .vital-contact-form .form-check-label {
    margin: 0;
    color: #d7d7d7;
    font-size: .86rem;
    line-height: 1.45;
    cursor: pointer;
}

/* ==========================================================================
   CTA INVIA
   ========================================================================== */

.vital-contact-page .vital-btn-main {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 9px;
    width: 100%;
    min-height: 56px;
    padding: 0 24px;
    margin: 4px 0 0;
    border: 1px solid var(--tm-contact-red);
    border-radius: 14px;
    background: linear-gradient(135deg,#ef1010 0%,#d90000 100%);
    color: #fff;
    font-family: Montserrat, Arial, sans-serif;
    font-size: .9rem;
    line-height: 1;
    font-weight: 900;
    letter-spacing: 0;
    text-transform: uppercase;
    box-shadow: 0 12px 28px rgba(239,16,16,.20);
    cursor: pointer;
    transition:
        transform 170ms ease,
        box-shadow 170ms ease,
        background 170ms ease;
}

.vital-contact-page .vital-btn-main:hover {
    transform: translateY(-2px);
    background: linear-gradient(135deg,#ff2525 0%,#ef1010 100%);
    color: #fff;
    box-shadow: 0 16px 34px rgba(239,16,16,.29);
}

.vital-contact-page .vital-btn-main:active {
    transform: translateY(0) scale(.995);
}

.vital-contact-page .vital-btn-main i {
    transition: transform 170ms ease;
}

.vital-contact-page .vital-btn-main:hover i {
    transform: translateX(3px);
}

/* ==========================================================================
   ALERT
   ========================================================================== */

.vital-contact-page .vital-alert {
    padding: 14px 16px;
    border-radius: 13px;
    font-size: .87rem;
    line-height: 1.5;
}

.vital-contact-page .vital-alert-success {
    border: 1px solid rgba(41,196,106,.30);
    background: rgba(20,105,58,.28);
    color: #dffff0;
}

.vital-contact-page .vital-alert-error {
    border: 1px solid rgba(255,70,70,.32);
    background: rgba(130,21,21,.30);
    color: #ffe4e4;
}

/* ==========================================================================
   SEZIONE CONTATTI CHIARA
   ========================================================================== */

.vital-contact-section {
    padding: clamp(70px, 7vw, 112px) 0;
    background:
        linear-gradient(180deg, #f8f8f8 0%, #f1f1f1 100%);
    color: #0c0c0c;
}

.vital-section-eyebrow {
    margin-bottom: 12px;
    color: var(--tm-contact-red);
    font-size: .78rem;
    line-height: 1;
    font-weight: 900;
    letter-spacing: .18em;
    text-transform: uppercase;
}

.vital-section-title {
    max-width: 780px;
    margin: 0 0 14px;
    color: #0b0b0b;
    font-size: clamp(2.1rem, 4vw, 3.6rem);
    line-height: 1;
    letter-spacing: -.02em;
    font-weight: 700;
    text-transform: uppercase;
}

.vital-section-text {
    max-width: 760px;
    margin: 0;
    color: #656565;
    font-size: .96rem;
    line-height: 1.68;
}

/* ==========================================================================
   INFO CARDS
   ========================================================================== */

.vital-info-grid {
    display: grid;
    grid-template-columns: repeat(3,minmax(0,1fr));
    gap: 18px;
    margin-top: 42px;
}

.vital-info-card {
    position: relative;
    min-height: 285px;
    display: flex;
    flex-direction: column;
    padding: 28px;
    overflow: hidden;
    border: 1px solid rgba(0,0,0,.08);
    border-radius: 20px;
    background: #fff;
    box-shadow: 0 18px 42px rgba(0,0,0,.06);
    transition:
        transform 180ms ease,
        box-shadow 180ms ease,
        border-color 180ms ease;
}

.vital-info-card::before {
    content: "";
    position: absolute;
    inset: 0 auto 0 0;
    width: 3px;
    background: var(--tm-contact-red);
    opacity: 0;
    transition: opacity 180ms ease;
}

.vital-info-card:hover {
    transform: translateY(-5px);
    border-color: rgba(239,16,16,.16);
    box-shadow: 0 24px 52px rgba(0,0,0,.09);
}

.vital-info-card:hover::before {
    opacity: 1;
}

.vital-info-icon {
    width: 52px;
    height: 52px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 24px;
    border-radius: 14px;
    background: var(--tm-contact-red-soft);
    color: var(--tm-contact-red);
    font-size: 1.18rem;
}

.vital-info-card h3 {
    margin: 0 0 12px;
    color: #0c0c0c;
    font-size: 1.22rem;
    line-height: 1.18;
    font-weight: 750;
    letter-spacing: -.01em;
}

.vital-info-card p {
    margin: 0 0 22px;
    color: #666;
    font-size: .91rem;
    line-height: 1.62;
}

.vital-info-card a {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    margin-top: auto;
    color: #ffffff;
    font-size: .88rem;
    font-weight: 750;
    text-decoration: none;
    transition: color 160ms ease, transform 160ms ease;
}

.vital-info-card a:hover {
    color: var(--tm-contact-red);
    transform: translateX(3px);
}

/* ==========================================================================
   PROCESS
   ========================================================================== */

.vital-process {
    margin-top: 58px;
    overflow: hidden;
    border: 1px solid rgba(0,0,0,.08);
    border-radius: 22px;
    background: #fff;
    box-shadow: 0 18px 40px rgba(0,0,0,.05);
}

.vital-process-row {
    position: relative;
    display: grid;
    grid-template-columns: 180px minmax(240px,1fr) minmax(260px,1.25fr);
    gap: 28px;
    align-items: center;
    padding: 27px 30px;
}

.vital-process-row + .vital-process-row {
    border-top: 1px solid rgba(0,0,0,.075);
}

.vital-process-row::before {
    content: "";
    position: absolute;
    left: 0;
    top: 0;
    bottom: 0;
    width: 3px;
    background: var(--tm-contact-red);
    transform: scaleY(0);
    transform-origin: center;
    transition: transform 180ms ease;
}

.vital-process-row:hover::before {
    transform: scaleY(1);
}

.vital-process-step {
    display: flex;
    align-items: center;
    gap: 12px;
    color: #5f5f5f;
    font-size: .8rem;
    font-weight: 750;
    text-transform: uppercase;
    letter-spacing: .06em;
}

.vital-process-step b {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    flex: 0 0 auto;
    border-radius: 50%;
    background: #0c0c0c;
    color: #fff;
    font-size: .79rem;
}

.vital-process-row h3 {
    margin: 0;
    color: #111;
    font-size: 1.05rem;
    line-height: 1.32;
    font-weight: 750;
}

.vital-process-row p {
    margin: 0;
    color: #686868;
    font-size: .89rem;
    line-height: 1.6;
}

/* ==========================================================================
   CTA FINALE
   ========================================================================== */

.vital-contact-cta {
    position: relative;
    overflow: hidden;
    margin-top: 58px;
    padding: clamp(30px, 4vw, 48px);
    border-radius: 24px;
    background:
        radial-gradient(circle at 90% 20%, rgba(239,16,16,.18), transparent 30%),
        #0b0b0b;
    color: #fff;
}

.vital-contact-cta::before {
    content: "TEAM MIKE";
    position: absolute;
    right: -6px;
    bottom: -12px;
    color: rgba(255,255,255,.025);
    font-family: Oswald, Impact, sans-serif;
    font-size: clamp(3.8rem, 8vw, 7rem);
    line-height: .84;
    font-weight: 700;
    letter-spacing: -.03em;
    pointer-events: none;
}

.vital-contact-cta > * {
    position: relative;
    z-index: 1;
}

.vital-contact-cta h2 {
    max-width: 720px;
    margin: 0 0 12px;
    color: #fff;
    font-size: clamp(1.9rem,3.5vw,3rem);
    line-height: 1.02;
    letter-spacing: -.02em;
    font-weight: 700;
    text-transform: uppercase;
}

.vital-contact-cta p {
    max-width: 760px;
    margin: 0;
    color: #a9a9a9;
    font-size: .94rem;
    line-height: 1.68;
}

.vital-contact-page .vital-btn-dark {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 9px;
    min-height: 54px;
    padding: 0 22px;
    flex: 0 0 auto;
    border: 1px solid rgba(255,255,255,.14);
    border-radius: 14px;
    background: #fff;
    color: #090909;
    font-size: .88rem;
    line-height: 1;
    font-weight: 900;
    letter-spacing: 0;
    text-decoration: none;
    text-transform: uppercase;
    transition:
        transform 170ms ease,
        background 170ms ease,
        color 170ms ease;
}

.vital-contact-page .vital-btn-dark:hover {
    transform: translateY(-2px);
    background: var(--tm-contact-red);
    color: #fff;
}

.vital-contact-page .vital-btn-dark i {
    transition: transform 170ms ease;
}

.vital-contact-page .vital-btn-dark:hover i {
    transform: translateY(-2px);
}


/* ==========================================================================
   RESPONSIVE — TABLET
   ========================================================================== */

@media (max-width: 991.98px) {
    .vital-contact-wrap {
        padding: 56px 0 68px;
    }

    .vital-contact-wrap::after {
        display: none;
    }

    .vital-contact-title {
        max-width: 800px;
        font-size: clamp(2.6rem, 7vw, 4rem);
    }

    .vital-contact-lead {
        max-width: 800px;
    }

    .vital-contact-panel {
        margin-top: 14px;
    }

    .vital-info-grid {
        grid-template-columns: 1fr;
    }

    .vital-info-card {
        min-height: auto;
    }

    .vital-process-row {
        grid-template-columns: 150px 1fr;
        gap: 15px 22px;
    }

    .vital-process-row p {
        grid-column: 2;
    }
}

/* ==========================================================================
   RESPONSIVE — MOBILE
   ========================================================================== */

@media (max-width: 767.98px) {
    .vital-contact-wrap {
        padding: 42px 0 54px;
    }

    .vital-contact-title {
        font-size: clamp(2.25rem, 10vw, 3.2rem);
        line-height: .98;
    }

    .vital-contact-stats {
        grid-template-columns: 1fr;
        gap: 9px;
        margin-top: 27px;
    }

    .vital-contact-stat {
        min-height: auto;
        display: grid;
        grid-template-columns: 38px 1fr;
        gap: 10px;
        align-items: center;
        padding: 14px 16px;
    }

    .vital-contact-stat b {
        margin: 0;
    }

    .vital-contact-panel {
        padding: 25px 20px;
        border-radius: 20px;
    }

    .vital-contact-panel-head {
        margin-bottom: 24px;
    }

    .vital-contact-page .vital-contact-form .form-control,
    .vital-contact-page .vital-contact-form .form-select {
        min-height: 53px;
        font-size: 16px;
    }

    .vital-contact-page .vital-contact-form textarea.form-control {
        min-height: 125px;
    }

    .vital-contact-section {
        padding: 58px 0 68px;
    }

    .vital-section-title {
        font-size: clamp(1.95rem, 8.5vw, 2.7rem);
    }

    .vital-info-grid {
        margin-top: 32px;
    }

    .vital-info-card {
        padding: 24px;
        border-radius: 18px;
    }

    .vital-process {
        margin-top: 42px;
        border-radius: 18px;
    }

    .vital-process-row {
        grid-template-columns: 1fr;
        gap: 9px;
        padding: 22px;
    }

    .vital-process-row p {
        grid-column: auto;
    }

    .vital-process-step {
        margin-bottom: 5px;
    }

    .vital-contact-cta {
        margin-top: 42px;
        padding: 28px 22px;
        border-radius: 20px;
    }

    .vital-contact-cta::before {
        display: none;
    }

    .vital-contact-page .vital-btn-dark {
        width: 100%;
    }
}

/* ==========================================================================
   MOBILE MOLTO PICCOLI
   ========================================================================== */

@media (max-width: 374.98px) {
    .vital-contact-title {
        font-size: 2.05rem;
    }

    .vital-contact-panel {
        padding-left: 17px;
        padding-right: 17px;
    }

    .vital-info-card,
    .vital-process-row,
    .vital-contact-cta {
        padding-left: 18px;
        padding-right: 18px;
    }
}

/* ==========================================================================
   ACCESSIBILITÀ
   ========================================================================== */

.vital-contact-page button:focus-visible,
.vital-contact-page input:focus-visible,
.vital-contact-page textarea:focus-visible,
.vital-contact-page select:focus-visible,
.vital-contact-page a:focus-visible {
    outline: 2px solid rgba(239,16,16,.9);
    outline-offset: 3px;
}

@media (prefers-reduced-motion: reduce) {
    .vital-contact-page *,
    .vital-contact-page *::before,
    .vital-contact-page *::after {
        scroll-behavior: auto !important;
        transition-duration: .01ms !important;
        animation-duration: .01ms !important;
        animation-iteration-count: 1 !important;
    }
}
