@import url('https://fonts.googleapis.com/css2?family=Poppins:wght@300;400;500;600;700&display=swap');

@font-face {
    font-family: 'Graham';
    src: url('fonts/Graham-Bold.otf') format('opentype');
    font-weight: 700;
    font-display: swap;
}

/* variabili locali e reset bootstrap */
#active_club_container {
    --ac_brown: #482424;
    --ac_brown_txt: #3F2122;
    --ac_red: #D02027;
    --ac_red_dark: #92080D;
    --ac_cream: #F2EEE5;
    --ac_grey_field: #AFAFAF;
    --ac_input_border: rgba(53, 34, 36, 0.5);
    --ac_orange: #b76e1b;
    max-width: 1920px;
    margin: 0 auto;
    background: var(--ac_cream);
    color: var(--ac_brown_txt);
    font-family: 'Poppins', sans-serif;
}

#active_club_container, #active_club_container * { box-sizing: border-box; }

body .container#main { max-width: 100%; width: 100%; padding: 0; }
/* sezioni full-bleed: escono dal cap 1920 di #wrapper senza alterare header/footer (escludo hero che ha cap proprio a 1920) */
#active_club_container > section:not(.ac_hero) { width: 100vw; margin-left: calc(50% - 50vw); }

/* ==================== HERO ==================== */
.ac_hero {
    position: relative;
    max-width: 1920px;
    margin: 0 auto;
    aspect-ratio: 1920 / 1080;
    background: var(--ac_brown);
    overflow: hidden;
}

/* grafica unica hero: la svg riempie tutta la sezione */
.ac_hero_full { position: absolute; inset: 0; }
.ac_hero_full svg { width: 100%; height: 100%; display: block; }
/* anchor cliccabile trasparente sopra la cta "entra in lista" disegnata nella svg */
.ac_hero_full_cta { position: absolute; left: 34.5%; top: 85%; width: 35%; height: 12%; display: block; cursor: pointer; }
/* anchor trasparente sopra il logo garofalo in alto nella svg: porta alla home */
.ac_hero_full_logo { position: absolute; left: 42%; top: 4%; width: 16%; height: 13%; display: block; cursor: pointer; }

/* landing dedicata: nascondo l'header globale del sito (il logo garofalo e gia nella hero svg) */
body.page-template-landing_active_club header { display: none; }

.ac_hero_photo { position: absolute; top: 0; right: 0; width: 65%; height: 100%; }
.ac_hero_photo img { width: 100%; height: 100%; object-fit: cover; object-position: right center; display: block; }
.ac_hero_photo::after {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(90deg, var(--ac_brown) 0%, rgba(72,36,36,0.85) 15%, rgba(72,36,36,0) 45%);
    pointer-events: none;
}

.ac_hero_content { position: absolute; inset: 0; z-index: 2; padding-left: clamp(20px, 2.5vw, 40px); }
.ac_hero_inner { position: relative; height: 100%; display: flex; flex-direction: column; align-items: flex-start; padding-top: clamp(40px, 4.5vw, 70px); }

.ac_hero_badge { width: clamp(300px, 30vw, 480px); max-width: 90%; }
.ac_hero_badge svg { width: 100%; height: auto; display: block; }

.ac_hero_tagline { width: clamp(300px, 30vw, 480px); max-width: 90%; margin: clamp(20px, 2.5vw, 40px) 0 0; font-weight: 600; font-size: clamp(14px, 1.2vw, 18px); line-height: 125%; color: #fff; text-align: center; }

.ac_hero_cta {
    position: relative;
    margin-top: clamp(28px, 3.2vw, 50px);
    width: clamp(300px, 28vw, 442px);
    max-width: 90%;
    aspect-ratio: 423 / 90;
    display: flex;
    align-items: center;
    justify-content: center;
    text-decoration: none;
    cursor: pointer;
}
.ac_hero_cta_decoration { position: absolute; inset: 0; }
.ac_hero_cta_decoration svg { width: 100%; height: 100%; display: block; }
.ac_hero_cta_label {
    position: relative;
    z-index: 2;
    font-weight: 700;
    font-size: clamp(18px, 1.95vw, 30px);
    line-height: 110%;
    color: #fff;
    transform: rotate(-1.3deg) translateY(-6px);
}

/* ==================== COS'È ==================== */
/* bg cream con trapezoide brown a sinistra che crea il taglio diagonale */
.ac_cose { position: relative; background: var(--ac_cream); padding: 80px 3% 0; overflow: hidden; }
.ac_cose::before {
    content: '';
    position: absolute;
    inset: 0;
    width: 118%;
    background: var(--ac_brown);
    clip-path: polygon(0 0, 38% 0, 45% 100%, 0 100%);
}
.ac_cose_inner {
    position: relative;
    z-index: 1;
    display: grid;
    grid-template-columns: minmax(0,1fr) minmax(0,1fr);
    gap: 60px;
    max-width: 1500px;
    margin: 0 auto;
}
.ac_cose_left { color: var(--ac_cream); }
.ac_cose_right { display: flex; flex-direction: column; gap: 24px; color: var(--ac_brown_txt); }

.ac_cose_kicker { display: block; font-family: 'Barriecito', cursive; font-size: 42px; line-height: 110%; color: var(--ac_orange); margin-bottom: 14px; }
.ac_cose_title { margin: 0 0 28px; max-width: 520px; line-height: 0; }
.ac_cose_title svg { width: 100%; height: auto; display: block; }
.ac_cose_lead { font-weight: 600; font-size: 18px; line-height: 125%; color: var(--ac_orange); margin: 0 0 18px; max-width: 480px; }
.ac_cose_text { font-weight: 500; font-size: 18px; line-height: 125%; color: var(--ac_cream); max-width: 570px; margin: 0 0 30px; }

.ac_cose_underline { width: 100%; line-height: 0; margin: 25px 0; }
.ac_cose_underline svg { width: 100%; max-width: 320px; height: auto; display: block; }

.ac_cose_icons {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 16px;
    position: relative;
}
.ac_cose_divider {
    position: absolute;
    top: 8px;
    bottom: 30%;
    width: 2px;
    background: var(--ac_brown_txt);
    transform: translateX(-50%);
    transform-origin: top center;
}
.ac_cose_divider_1 { left: 33.33%; }
.ac_cose_divider_2 { left: 66.66%; }

.ac_cose_icon { display: flex; flex-direction: column; align-items: center; text-align: center; gap: 14px; padding: 0 8px; }
.ac_cose_icon_img svg { width: 100px; height: 100px; display: block; }
.ac_cose_icon_title { font-family: 'Barriecito', cursive; font-size: 28px; line-height: 110%; color: var(--ac_brown_txt); }
.ac_cose_icon_text { font-weight: 400; font-size: 24px; line-height: 110%; color: var(--ac_orange); }

.ac_cose_right_intro { font-weight: 500; font-size: 18px; line-height: 125%; color: var(--ac_brown_txt); margin: 0 0 0 100px; max-width: 500px; }
.ac_cose_right_intro strong { font-weight: 700; }

/* ==================== TAPPE ==================== */
.ac_tappe_section { position: relative; background: var(--ac_cream); padding: 80px 3% 100px; overflow: visible; }
.ac_tappe_inner { position: relative; z-index: 1; max-width: 1500px; margin: 0 auto; }

.ac_tappe_head { display: flex; align-items: center; gap: 24px; margin-bottom: 60px; }
.ac_tappe_kicker { font-family: 'Barriecito', cursive; font-size: 42px; line-height: 110%; color: var(--ac_orange); flex-shrink: 0; }
.ac_tappe_divider { width: 85%; height: 1px; background: var(--ac_brown_txt); }

.ac_tappe_content {
    display: grid;
    grid-template-columns: 518px auto 600px;
    column-gap: 60px;
    align-items: center;
    justify-content: center;
    margin: 0 auto;
}
.ac_tappe_separator { width: 1px; height: 80%; background: var(--ac_brown_txt); align-self: center; }
.ac_tappe_map { position: relative; width: 100%; max-width: 518px; aspect-ratio: 541 / 376; }
.ac_tappe_map svg { width: 100%; height: 100%; display: block; }

.ac_tappe_title { font-family: 'Barriecito', cursive; font-size: 64px; line-height: 100%; color: var(--ac_brown_txt); margin: 0 0 28px; }
.ac_tappe_body { font-weight: 500; font-size: 18px; line-height: 130%; color: var(--ac_brown_txt); max-width: 549px; margin: 0; }

/* decorazioni che sbordano fuori section */
/* le section sono full-bleed 100vw ma il container e cap a 1920: ancoro le decorazioni al box 1920 oltre quella soglia cosi non escono dal box su schermi grandi */
.ac_tappe_penne, .ac_tappe_pack { position: absolute; height: auto; pointer-events: none; }
.ac_tappe_penne { top: -160px; right: max(4%, calc((100vw - 1920px) / 2 + 76.8px)); width: 200px; z-index: 4; }
.ac_tappe_pack { bottom: -195px; left: max(5%, calc((100vw - 1920px) / 2 + 96px)); z-index: 3; }
.ac_tappe_penne svg { width: 100%; height: auto; display: block; }

/* ==================== TEAM ==================== */
.ac_team_section { position: relative; background: var(--ac_brown); color: var(--ac_cream); padding: 80px 3% 480px; overflow: visible; }
.ac_team_section > * { position: relative; z-index: 2; }

.ac_team_intro { text-align: center; margin: 0 0 60px; padding-top: 20px; text-transform: uppercase; }
.ac_team_intro_title { font-family: 'Barriecito', cursive; font-size: 78px; line-height: 110%; color: var(--ac_orange); margin: 0; }

.ac_team_grid {
    list-style: none;
    margin: 0 auto;
    padding: 0;
    display: grid;
    grid-template-columns: repeat(3, 360px);
    justify-content: center;
    gap: 80px 40px;
    max-width: 1500px;
    position: relative;
}

.ac_team_card { display: flex; flex-direction: column; align-items: center; text-align: center; gap: 24px; }
.ac_team_card_head { display: flex; flex-direction: column; gap: 6px; }
.ac_team_card_role { font-family: 'Barriecito', cursive; font-size: 28px; line-height: 110%; color: var(--ac_orange); text-transform: uppercase; }
.ac_team_card_name { font-weight: 500; font-size: 36px; line-height: 100%; color: #fff; white-space: nowrap; }
.ac_team_card_photo { width: 248px; height: 248px; border-radius: 50%; background: #D9D9D9; background-size: cover; background-position: center top; }
/* raddrizza i volti inclinati di satta (2a card) e fantini (3a card) per allinearli a paola */
.ac_team_card:nth-child(2) .ac_team_card_photo { transform: rotate(-4deg); }
.ac_team_card:nth-child(3) .ac_team_card_photo { transform: rotate(22deg); }
.ac_team_card_text { font-weight: 400; font-size: 18px; line-height: 125%; color: var(--ac_grey_field); max-width: 312px; margin: 0; }
/* postilla extra (es. rimini wellness di paola): trattata come patch, non come testo normale */
.ac_team_card_note { font-size: 14px; line-height: 130%; color: var(--ac_orange); max-width: 312px; margin: -10px 0 0; font-style: italic; }
.ac_team_card_note_ps { font-style: normal; font-weight: 700; }

/* right segue il bordo destro della griglia centrata (max 1500) cosi su 4k resta vicino ai cards invece di incollarsi al bordo viewport */
.ac_team_penne { position: absolute; right: max(6%, calc((100vw - 1500px) / 2 + 40px)); bottom: -150px; width: 339px; height: auto; z-index: 3; pointer-events: none; }
.ac_team_penne svg { width: 100%; height: auto; display: block; }

/* ==================== FORM ==================== */
.ac_form_section { position: relative; background: var(--ac_cream); padding: 220px 3% 60px; }
.ac_form_inner { position: relative; max-width: 1500px; margin: 0 auto; }
.ac_form_grid { display: grid; grid-template-columns: minmax(0,1.05fr) minmax(0,1fr); gap: 80px; align-items: start; }

/* cf7 form layout */
.ac_form .wpcf7-form { display: flex; flex-direction: column; gap: 22px; }
.ac_form .ac_form_row > p { display: grid; grid-template-columns: 1fr 1fr; gap: 32px; margin: 0; }
.ac_form .ac_form_row_single > p { display: block; margin: 0; }
.ac_form .ac_form_row > p > br { display: none; }

.ac_form label {
    display: flex;
    flex-direction: column;
    gap: 10px;
    font-weight: 500;
    font-size: 18px;
    line-height: 125%;
    color: var(--ac_brown_txt);
    margin: 0;
}

.ac_form input[type="text"],
.ac_form input[type="email"],
.ac_form input[type="tel"],
.ac_form select {
    width: 100%;
    height: 50px;
    padding: 0 16px;
    background: transparent;
    border: 1px solid var(--ac_input_border);
    border-radius: 0;
    outline: none;
    font-weight: 300;
    font-size: 18px;
    color: var(--ac_brown_txt);
}
.ac_form input::placeholder { color: var(--ac_brown_txt); opacity: 0.5; }
.ac_form select {
    appearance: none;
    -webkit-appearance: none;
    background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='6' viewBox='0 0 12 6'><path fill='%233F2122' d='M0 0l6 6 6-6z'/></svg>");
    background-repeat: no-repeat;
    background-position: right 16px center;
}

/* cta submit identica alla pill "entra in lista" della hero: stessa forma (parallelogramma),
   clip-path ricavato dal polygon cls-9 della svg; crema calda + testo arancione */
.ac_form .wpcf7-submit {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 442px;
    max-width: 90%;
    aspect-ratio: 586 / 109;
    background: #fffbe4;
    color: var(--ac_orange);
    border: 0;
    border-radius: 0;
    padding: 0 30px;
    clip-path: polygon(0% 0%, 96.8% 6.1%, 100% 92.8%, 0% 100%);
    font-weight: 600;
    font-size: 24px;
    line-height: 110%;
    margin-top: 18px;
    cursor: pointer;
}

.ac_form .wpcf7-spinner { margin: 0 0 0 12px; }
.ac_form .wpcf7-not-valid-tip { font-size: 14px; color: var(--ac_red); margin-top: 6px; }
.ac_form .wpcf7-response-output {
    border: 0;
    padding: 14px 18px;
    margin: 18px 0 0;
    font-size: 16px;
    background: rgba(208,32,39,0.08);
    color: var(--ac_brown_txt);
}

/* checkbox consenso privacy: checkbox a sinistra del testo, tutto allineato a
   sinistra, link in tono brand. sovrascrive il flex-column dei label generici */
.ac_form .wpcf7-acceptance .wpcf7-list-item { margin: 0; }
.ac_form .wpcf7-acceptance label {
    flex-direction: row;
    align-items: flex-start;
    gap: 12px;
    text-align: left;
    font-size: 16px;
    line-height: 135%;
    cursor: pointer;
}
.ac_form .wpcf7-acceptance input[type="checkbox"] {
    flex: 0 0 auto;
    width: 20px;
    height: 20px;
    margin-top: 1px;
    accent-color: var(--ac_orange);
    cursor: pointer;
}
.ac_form .wpcf7-acceptance a {
    color: var(--ac_orange);
    font-weight: 600;
    text-decoration: underline;
}

.ac_form_intro { position: relative; text-align: right; }
.ac_form_subtitle { font-family: 'Barriecito', cursive; font-size: 42px; line-height: 110%; color: #000; margin: 0 0 18px; }
.ac_form_kicker { font-family: 'Barriecito', cursive; font-size: 52px; line-height: 110%; color: var(--ac_orange); margin: 0 0 28px auto; max-width: 520px; }
.ac_form_text { font-weight: 500; font-size: 18px; line-height: 125%; color: var(--ac_brown_txt); margin: 0 0 0 auto; max-width: 420px; }

.ac_form_runners { display: block; margin: 30px 0 0 auto; width: 100%; max-width: 440px; pointer-events: none; overflow: visible; }
.ac_form_runners svg { width: 100%; height: auto; display: block; overflow: visible; }

/* ==================== RESPONSIVE ==================== */
@media (max-width: 1200px) {
    .ac_cose, .ac_team_section, .ac_tappe_section, .ac_form_section { padding-left: 5%; padding-right: 5%; }
    .ac_cose_inner { gap: 40px; }
    .ac_tappe_content { grid-template-columns: minmax(220px, 360px) 1fr; gap: 50px; }
    .ac_tappe_separator { display: none; }
    .ac_form_grid { gap: 50px; }
    .ac_team_grid { grid-template-columns: repeat(2, 1fr); gap: 60px 40px; }
}

/* team su due colonne (901-1200): la cella vuota in basso a destra ospita le penne, niente padding extra */
@media (min-width: 901px) and (max-width: 1200px) {
    .ac_team_section { padding-bottom: 100px; }
    .ac_team_penne { right: 9%; bottom: -40px; }
}

/* ==================== INTERMEDIATE (769-1600) cose stack: brown full su title, cream su icone ==================== */
@media (min-width: 769px) and (max-width: 1600px) {
    .ac_cose { padding: 0; background: var(--ac_cream); }
    .ac_cose::before { display: none; }
    .ac_cose_inner { display: block; max-width: 100%; }
    .ac_cose_left { background: var(--ac_brown); padding: clamp(40px, 5vw, 80px) clamp(20px, 5%, 80px); text-align: center; }
    .ac_cose_left .ac_cose_kicker { font-size: clamp(28px, 3vw, 42px); }
    .ac_cose_left .ac_cose_title { margin: 0 auto clamp(20px, 2.5vw, 28px); max-width: clamp(320px, 38vw, 520px); }
    .ac_cose_left .ac_cose_text { color: var(--ac_cream); font-size: clamp(15px, 1.4vw, 18px); margin: 0 auto; max-width: 720px; }
    .ac_cose_right { background: var(--ac_cream); padding: clamp(50px, 5vw, 80px) clamp(20px, 5%, 80px); gap: clamp(20px, 2.5vw, 28px); align-items: stretch; }
    .ac_cose_right .ac_cose_icons { gap: clamp(12px, 1.5vw, 24px); }
    .ac_cose_right .ac_cose_icon_img svg { width: clamp(70px, 7vw, 100px); height: clamp(70px, 7vw, 100px); }
    .ac_cose_right .ac_cose_icon_title { font-size: clamp(22px, 2vw, 28px); }
    .ac_cose_right .ac_cose_icon_text { font-size: clamp(18px, 1.5vw, 24px); }
    .ac_cose_right .ac_cose_right_intro { margin: 0 auto; max-width: 720px; text-align: center; font-size: clamp(15px, 1.4vw, 18px); }
    .ac_cose_underline { margin: clamp(15px, 2vw, 25px) auto; }

    /* decorazioni penne/pack proporzionate per non sbordare */
    .ac_tappe_penne { width: clamp(120px, 12vw, 200px); top: clamp(-120px, -10vw, -60px); }
    .ac_tappe_pack { width: clamp(130px, 13vw, 240px); bottom: clamp(-130px, -9vw, -80px); }
}

/* tablet (769-900): team_penne più alto e più a destra per non finire su form */
@media (max-width: 900px) {
    .ac_cose_inner, .ac_form_grid, .ac_form_row { grid-template-columns: 1fr; }
    .ac_cose_right_intro { margin-left: 0; }
    .ac_cose_title, .ac_tappe_title, .ac_team_intro_title, .ac_form_kicker { font-size: 40px; }
    .ac_cose_kicker { font-size: 32px; }
    .ac_tappe_content { grid-template-columns: 1fr; gap: 30px; }
    .ac_tappe_map { margin: 0 auto; }
    .ac_team_grid { grid-template-columns: 1fr; }
    /* team a colonna singola: meno padding bottom, penne a cavallo del confine */
    .ac_team_section { padding-bottom: 260px; }
    .ac_team_penne { width: 200px; right: 5%; bottom: -130px; }
}

/* ==================== MOBILE (<=768) ==================== */
@media (max-width: 768px) {
    /* hero: la grafica unica mantiene sempre il rapporto 16/9 */
    .ac_hero_photo {
        position: relative;
        width: 100%;
        height: auto;
        aspect-ratio: 4 / 3;
        order: 2;
    }
    .ac_hero_photo img { object-position: 75% center; }
    .ac_hero_photo::after {
        background: linear-gradient(180deg, var(--ac_brown) 0%, rgba(72,36,36,0) 30%);
    }
    .ac_hero_photo::before {
        content: '';
        position: absolute;
        inset: 0;
        background: linear-gradient(90deg, var(--ac_brown) 0%, var(--ac_brown) 15%, rgba(72,36,36,0) 50%);
        pointer-events: none;
        z-index: 1;
    }
    .ac_hero_content {
        position: relative;
        inset: auto;
        padding: 30px 20px 40px;
        order: 1;
        background: var(--ac_brown);
    }
    .ac_hero_inner {
        align-items: center;
        padding-top: 0;
        text-align: center;
    }
    .ac_hero_badge { width: 260px; max-width: 80%; }
    .ac_hero_tagline {
        width: 100%;
        max-width: 360px;
        margin-top: 24px;
        font-size: 17px;
        text-align: center;
    }
    .ac_hero_cta {
        margin-top: 28px;
        width: 280px;
        max-width: 90%;
    }
    .ac_hero_cta_label { font-size: 22px; }

    /* cose: left brown, right cream (come desktop), stack verticale */
    .ac_cose { background: var(--ac_cream); padding: 0; }
    .ac_cose::before { display: none; }
    .ac_cose_inner { display: block; gap: 0; text-align: center; max-width: 100%; }
    .ac_cose_left { background: var(--ac_brown); padding: 50px 20px; text-align: center; }
    .ac_cose_right { background: var(--ac_cream); padding: 50px 20px 100px; gap: 30px; align-items: center; }
    .ac_cose_kicker { font-size: 28px; margin-bottom: 10px; }
    .ac_cose_title { margin: 0 auto 22px; max-width: 320px; }
    .ac_cose_text { color: var(--ac_cream); font-size: 16px; margin: 0 auto 10px; }
    .ac_cose_icons { grid-template-columns: 1fr; gap: 30px; width: 100%; max-width: 280px; margin: 0 auto; }
    .ac_cose_divider { display: none; }
    .ac_cose_icon { gap: 10px; }
    .ac_cose_icon_img svg { width: 80px; height: 80px; }
    .ac_cose_icon_title { color: var(--ac_brown_txt); font-size: 26px; }
    .ac_cose_icon_text { color: var(--ac_orange); font-size: 18px; }
    .ac_cose_underline { display: none; }
    .ac_cose_right_intro { color: var(--ac_brown_txt); font-size: 16px; max-width: 100%; margin: 0 auto; text-align: center; }

    /* tappe: penne più piccolo, divider top nascosto */
    .ac_tappe_section { padding: 60px 20px 80px; }
    .ac_tappe_penne { width: 100px; top: -100px; right: 5%; }
    .ac_tappe_head { display: none; }
    .ac_tappe_separator { display: none; }
    .ac_tappe_content { grid-template-columns: 1fr; gap: 30px; }
    .ac_tappe_map { max-width: 320px; margin: 0 auto; }
    .ac_tappe_text { text-align: center; }
    .ac_tappe_title { font-size: 44px; margin-bottom: 18px; }
    .ac_tappe_body { font-size: 16px; margin: 0 auto; }
    .ac_tappe_pack { width: 110px; bottom: -90px; left: 0; right: 0; margin: 0 auto; }

    /* team: 1 col, penne ridotto, title grande */
    .ac_team_section { padding: 100px 20px 160px; }
    .ac_team_intro { margin-bottom: 40px; padding-top: 0; }
    .ac_team_intro_title { font-size: 54px; }
    .ac_team_grid { gap: 50px; }
    .ac_team_card { gap: 18px; }
    .ac_team_card_role { font-size: 22px; }
    .ac_team_card_name { font-size: 28px; white-space: normal; }
    .ac_team_card_photo { width: 200px; height: 200px; }
    .ac_team_card_text { font-size: 16px; max-width: 280px; }
    .ac_team_penne { width: 130px; right: 40px; bottom: -110px; }

    /* form: padding top ridotto, campi 1 colonna, centrato */
    .ac_form_section { padding: 130px 20px 60px; }
    .ac_form_grid { grid-template-columns: 1fr; gap: 40px; }
    .ac_form_wrap { order: 2; min-width: 0; }
    .ac_form_intro { display: contents; min-width: 0; }
    .ac_form_subtitle, .ac_form_kicker, .ac_form_text { order: 1; }
    .ac_form_runners { order: 3; }
    .ac_form_intro { order: 1; text-align: center; }
    .ac_form_kicker { margin: 0 auto 20px; max-width: 100%; font-size: 36px; }
    .ac_form_subtitle { font-size: 30px; }
    .ac_form_text { margin: 0 auto; max-width: 100%; font-size: 16px; }
    .ac_form_runners { display: block; margin: 30px auto 0; max-width: 280px; }
    .ac_form .ac_form_row > p { grid-template-columns: 1fr; gap: 22px; }
    .ac_form .wpcf7-form { gap: 18px; }
    .ac_form label { font-size: 16px; }
    .ac_form .wpcf7-submit { margin: 18px auto 0; font-size: 20px; width: 100%; max-width: 320px; }
}

/* ==================== MOBILE SMALL (<=480) ==================== */
@media (max-width: 480px) {
    .ac_hero_photo { aspect-ratio: 1 / 1; }
    .ac_hero_badge { width: 220px; }
    .ac_hero_tagline { font-size: 15px; margin-top: 20px; }
    .ac_hero_cta { margin-top: 22px; width: 240px; }
    .ac_hero_cta_label { font-size: 19px; }
}

/* ==================== THANKYOU ==================== */
.ac_thankyou {
    background: var(--ac_brown);
    color: var(--ac_cream);
    text-align: center;
    padding: 60px 5%;
    width: 100%;
    grid-column: 1 / -1;
}
.ac_thankyou_logo { display: flex; justify-content: center; margin-bottom: 30px; }
.ac_thankyou_logo img { width: 80px; height: auto; display: block; }
.ac_thankyou_title { font-family: 'Barriecito', cursive; font-size: 56px; line-height: 110%; color: var(--ac_cream); margin: 0 0 24px; }
.ac_thankyou_subtitle { font-weight: 500; font-size: 22px; line-height: 130%; color: var(--ac_cream); margin: 0 0 30px; }
.ac_thankyou_ciao { display: inline-flex; flex-direction: column; align-items: center; gap: 6px; }
.ac_thankyou_ciao_label { font-weight: 700; font-size: 24px; line-height: 110%; color: var(--ac_red); }
.ac_thankyou_ciao_underline { line-height: 0; display: block; }
.ac_thankyou_ciao_underline svg { width: 220px; height: auto; display: block; }

/* SOLD OUT su mappa */
.ac_soldout_patch {
    position: absolute;
    width: 15%;
    max-width: 68px;
    transform: translate(-50%, -50%) rotate(var(--ac_patch_rot, -12deg));
    transform-origin: 50% 50%;
    opacity: 0;
    pointer-events: none;
    z-index: 3;
    filter: drop-shadow(0 3px 4px rgba(72, 36, 36, 0.28));
}
.ac_soldout_patch svg { width: 100%; height: auto; display: block; }

/* riga rossa sold out */
.ac_soldout_strike {
    position: absolute;
    pointer-events: none;
    z-index: 2;
}
.ac_soldout_strike svg { width: 100%; height: 100%; display: block; overflow: visible; }

/* box select2 */
.ac_form .select2-container { width: 100% !important; }
.ac_form .select2-container--default .select2-selection--single {
    height: 50px;
    padding: 0 16px;
    background: transparent;
    border: 1px solid var(--ac_input_border);
    border-radius: 0;
    display: flex;
    align-items: center;
}
.ac_form .select2-container--default .select2-selection--single .select2-selection__rendered {
    padding: 0;
    line-height: 50px;
    font-weight: 300;
    font-size: 18px;
    color: var(--ac_brown_txt);
}
.ac_form .select2-container--default .select2-selection--single .select2-selection__placeholder {
    color: var(--ac_brown_txt);
    opacity: 0.5;
}
.ac_form .select2-container--default .select2-selection--single .select2-selection__arrow {
    height: 48px;
    right: 14px;
}
.ac_form .select2-container--default .select2-selection--single .select2-selection__arrow b {
    border-color: var(--ac_brown_txt) transparent transparent;
}
.ac_form .select2-container--default.select2-container--open .select2-selection--single .select2-selection__arrow b {
    border-color: transparent transparent var(--ac_brown_txt);
}
/* dropdown */
.select2-container--default .select2-dropdown {
    border: 1px solid var(--ac_input_border);
    border-radius: 0;
    background: var(--ac_cream);
}
.select2-container--default .select2-results__option {
    font-family: 'Poppins', sans-serif;
    font-weight: 400;
    font-size: 17px;
    color: var(--ac_brown_txt);
    padding: 10px 16px;
}
.select2-container--default .select2-results__option--highlighted,
.select2-container--default .select2-results__option--highlighted[aria-selected] {
    background: var(--ac_orange);
    color: var(--ac_cream);
}
/* option non selezionabile (sold out): nome barrato in rosso + badge timbro */
.select2-container--default .select2-results__option[aria-disabled=true] {
    color: var(--ac_brown_txt);
    opacity: 0.55;
    cursor: not-allowed;
    text-decoration: line-through;
    text-decoration-color: var(--ac_red);
    text-decoration-thickness: 2px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
}
.select2-container--default .select2-results__option[aria-disabled=true]:hover {
    background: transparent;
}
.ac_so_badge {
    display: inline-block;
    margin-left: 12px;
    text-decoration: none;
    flex: 0 0 auto;
    font-family: 'Barriecito', cursive;
    font-size: 11px;
    line-height: 1;
    letter-spacing: 0.3px;
    color: var(--ac_cream);
    background: var(--ac_red_dark);
    padding: 3px 7px 2px;
    border-radius: 999px;
    transform: rotate(-3deg);
    box-shadow: 0 1px 0 rgba(72, 36, 36, 0.35);
}
