/* ==========================================
   CONTACT — OUANAMINTHE FC
   Adapté au nouveau contact.php dynamique
========================================== */


/* ==========================================
   PAGE
========================================== */

.contact-page {
    padding-top: var(--space-48);
    padding-bottom: var(--space-64);
    background: var(--color-background);
}

.contact-page .container-custom {
    max-width: 1200px;
    margin: 0 auto;
}


/* ==========================================
   PAGE HEADING
========================================== */

.contact-page-heading {
    max-width: 820px;
    margin: 0 auto var(--space-40);
    text-align: center;
}

.contact-page-heading .section-kicker {
    display: inline-block;
    margin-bottom: var(--space-8);
    color: var(--color-primary-dark);
    font-family: var(--font-heading);
    font-size: var(--fs-14);
    font-weight: var(--fw-700);
    letter-spacing: .09em;
    text-transform: uppercase;
}

.contact-page-heading .section-title {
    margin: 0;
    color: var(--color-primary);
    font-size: var(--fs-36);
    font-weight: var(--fw-800);
    line-height: 1.2;
    text-align: center;
}

.contact-page-heading .section-title::after {
    margin-left: auto;
    margin-right: auto;
}

.contact-page-description {
    max-width: 700px;
    margin: var(--space-20) auto 0;
    color: var(--color-text-light);
    font-size: var(--fs-16);
    line-height: var(--lh-relaxed);
}


/* ==========================================
   ALERTS
========================================== */

.contact-alert {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    margin-bottom: var(--space-24);
    padding: var(--space-16) var(--space-20);
    border: 1px solid;
    border-radius: var(--radius-md);
    font-size: var(--fs-14);
    line-height: 1.6;
}

.contact-alert > i {
    flex: 0 0 auto;
    margin-top: 3px;
    font-size: var(--fs-20);
}

.contact-alert ul {
    margin: var(--space-8) 0 0;
    padding-left: var(--space-20);
}

.contact-alert--success {
    border-color: rgba(22, 163, 74, .24);
    background: rgba(22, 163, 74, .09);
    color: #166534;
}

.contact-alert--error {
    border-color: rgba(220, 38, 38, .24);
    background: rgba(220, 38, 38, .08);
    color: #991b1b;
}


/* ==========================================
   LAYOUT
========================================== */

.contact-layout {
    display: grid;
    grid-template-columns:
        minmax(0, .92fr)
        minmax(0, 1.08fr);
    gap: var(--space-32);
    align-items: start;
}

.contact-information,
.contact-form-card {
    min-width: 0;
    padding: var(--space-28);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-lg);
    background: var(--color-surface);
    box-shadow: var(--shadow-sm);
}

.contact-information-heading,
.contact-form-heading {
    margin-bottom: var(--space-24);
}

.contact-label {
    display: block;
    margin-bottom: var(--space-8);
    color: var(--color-primary);
    font-size: var(--fs-12);
    font-weight: var(--fw-700);
    letter-spacing: .08em;
    text-transform: uppercase;
}

.contact-information-heading h2,
.contact-form-heading h2 {
    margin: 0 0 var(--space-12);
    color: var(--color-primary-dark);
    font-size: var(--fs-26);
    font-weight: var(--fw-700);
    line-height: 1.3;
}

.contact-information-heading p,
.contact-form-heading p {
    margin: 0;
    color: var(--color-text-light);
    line-height: var(--lh-relaxed);
}


/* ==========================================
   CONTACT INFORMATION
========================================== */

.contact-info-list {
    display: grid;
    gap: var(--space-12);
}

.contact-info-card {
    display: flex;
    align-items: center;
    gap: 14px;
    min-width: 0;
    padding: var(--space-16);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-md);
    background: var(--color-background);
}

.contact-info-icon {
    display: grid;
    flex: 0 0 auto;
    place-items: center;
    width: 46px;
    height: 46px;
    border-radius: 50%;
    background: var(--color-primary-light);
    color: var(--color-primary);
    font-size: var(--fs-18);
}

.contact-info-card > div {
    min-width: 0;
}

.contact-info-card span,
.contact-info-card strong,
.contact-info-card a {
    display: block;
}

.contact-info-card > div > span {
    margin-bottom: 4px;
    color: var(--color-text-light);
    font-size: var(--fs-12);
    font-weight: var(--fw-600);
    letter-spacing: .05em;
    text-transform: uppercase;
}

.contact-info-card strong,
.contact-info-card a {
    color: var(--color-primary-dark);
    font-size: var(--fs-15);
    font-weight: var(--fw-600);
    line-height: 1.55;
    overflow-wrap: anywhere;
}

.contact-info-card a:hover {
    color: var(--color-primary);
}


/* ==========================================
   MAP
========================================== */

.contact-map {
    margin-top: var(--space-24);
    overflow: hidden;
    border: 1px solid var(--color-border);
    border-radius: var(--radius-md);
    background: var(--color-background);
}

.contact-map iframe {
    display: block;
    width: 100%;
    height: 310px;
    border: 0;
}


/* ==========================================
   FORM
========================================== */

.contact-form {
    display: flex;
    flex-direction: column;
    gap: var(--space-20);
}

.contact-form-grid {
    display: grid;
    grid-template-columns:
        repeat(2, minmax(0, 1fr));
    gap: var(--space-16);
}

.form-group {
    min-width: 0;
}

.form-group label {
    display: block;
    margin-bottom: var(--space-8);
    color: var(--color-primary-dark);
    font-size: var(--fs-14);
    font-weight: var(--fw-600);
}

.form-group label span {
    color: var(--color-danger);
}

.form-group input,
.form-group textarea {
    width: 100%;
    border: 1px solid var(--color-border);
    border-radius: var(--radius-md);
    background: var(--color-background);
    color: var(--color-text);
    font: inherit;
    font-size: var(--fs-16);
    outline: none;
    transition:
        border-color var(--transition-fast),
        background-color var(--transition-fast),
        box-shadow var(--transition-fast);
}

.form-group input {
    min-height: 48px;
    padding: 11px 14px;
}

.form-group textarea {
    min-height: 190px;
    padding: 13px 14px;
    line-height: 1.7;
    resize: vertical;
}

.form-group input:focus,
.form-group textarea:focus {
    border-color: var(--color-primary);
    background: var(--color-surface);
    box-shadow: 0 0 0 4px rgba(51, 168, 255, .12);
}

.form-group small {
    display: block;
    margin-top: 6px;
    color: var(--color-text-light);
    font-size: var(--fs-12);
}

.contact-submit-button {
    align-self: flex-start;
    justify-content: center;
    min-width: 220px;
    gap: var(--space-8);
}

.contact-honeypot {
    position: absolute !important;
    left: -10000px !important;
    width: 1px !important;
    height: 1px !important;
    overflow: hidden !important;
}


/* ==========================================
   TABLET
========================================== */

@media (max-width: 991.98px) {

    .contact-page {
        padding-top: var(--space-40);
        padding-bottom: var(--space-48);
    }

    .contact-layout {
        grid-template-columns: 1fr;
    }

    .contact-information,
    .contact-form-card {
        padding: var(--space-24);
    }
}


/* ==========================================
   MOBILE
========================================== */

@media (max-width: 575.98px) {

    .contact-page {
        padding-top: var(--space-32);
        padding-bottom: var(--space-40);
    }

    .contact-page-heading {
        margin-bottom: var(--space-28);
    }

    .contact-page-heading .section-kicker {
        font-size: var(--fs-12);
    }

    .contact-page-heading .section-title {
        font-size: var(--fs-30);
    }

    .contact-page-description {
        font-size: var(--fs-14);
    }

    .contact-information,
    .contact-form-card {
        padding: var(--space-20);
    }

    .contact-information-heading h2,
    .contact-form-heading h2 {
        font-size: var(--fs-22);
    }

    .contact-form-grid {
        grid-template-columns: 1fr;
    }

    .contact-info-card {
        align-items: flex-start;
    }

    .contact-submit-button {
        width: 100%;
        min-width: 0;
        align-self: stretch;
    }

    .contact-map iframe {
        height: 260px;
    }
}


/* ==========================================
   REDUCED MOTION
========================================== */

@media (prefers-reduced-motion: reduce) {

    .form-group input,
    .form-group textarea {
        transition: none !important;
    }
}


/* ==========================================
   FINAL FIX — CONTACT CARD SPACING + ICONS
========================================== */

/*
 * Gen kèk variables tankou --space-28 ki ka pa egziste nan
 * variables.css la. Lè sa rive, browser la inyore padding lan nèt.
 * Nou itilize valè dirèk pou layout la rete estab.
 */

.contact-information,
.contact-form-card {
    padding: 28px;
}

.contact-information-heading,
.contact-form-heading {
    margin-bottom: 28px;
}

.contact-information-heading h2,
.contact-form-heading h2 {
    margin-bottom: 14px;
}

.contact-information-heading p,
.contact-form-heading p {
    max-width: 100%;
    font-size: 16px;
    line-height: 1.75;
}

.contact-info-list {
    gap: 14px;
}

.contact-info-card {
    display: grid;
    grid-template-columns: 52px minmax(0, 1fr);
    align-items: center;
    column-gap: 16px;
    min-height: 88px;
    padding: 16px 18px;
}

.contact-info-icon {
    width: 52px;
    height: 52px;
    margin: 0;
    font-size: 20px;
}

.contact-info-icon i {
    display: block;
    margin: 0;
    line-height: 1;
}

.contact-info-card > div {
    min-width: 0;
}

.contact-info-card > div > span {
    margin-bottom: 6px;
    line-height: 1.3;
}

.contact-info-card strong,
.contact-info-card a {
    line-height: 1.55;
    word-break: normal;
    overflow-wrap: anywhere;
}

.contact-form {
    gap: 22px;
}

.contact-form-grid {
    gap: 18px;
}

.form-group label {
    margin-bottom: 9px;
    line-height: 1.35;
}

.form-group input {
    min-height: 52px;
}

.form-group textarea {
    min-height: 210px;
}

.contact-submit-button {
    margin-top: 2px;
}


/* ==========================================
   TABLET
========================================== */

@media (max-width: 991.98px) {

    .contact-information,
    .contact-form-card {
        padding: 24px;
    }
}


/* ==========================================
   MOBILE
========================================== */

@media (max-width: 575.98px) {

    .contact-page-heading {
        padding-inline: 8px;
    }

    .contact-page-description {
        line-height: 1.75;
    }

    .contact-layout {
        gap: 24px;
    }

    .contact-information,
    .contact-form-card {
        padding: 24px 20px;
        border-radius: 24px;
    }

    .contact-information-heading,
    .contact-form-heading {
        margin-bottom: 24px;
    }

    .contact-information-heading h2,
    .contact-form-heading h2 {
        margin-bottom: 12px;
        font-size: 22px;
        line-height: 1.35;
    }

    .contact-information-heading p,
    .contact-form-heading p {
        font-size: 15px;
        line-height: 1.8;
    }

    .contact-info-list {
        gap: 14px;
    }

    .contact-info-card {
        grid-template-columns: 50px minmax(0, 1fr);
        align-items: center;
        column-gap: 16px;
        min-height: 94px;
        padding: 16px;
        border-radius: 20px;
    }

    .contact-info-icon {
        width: 50px;
        height: 50px;
        font-size: 19px;
    }

    .contact-info-card > div > span {
        margin-bottom: 6px;
        font-size: 12px;
    }

    .contact-info-card strong,
    .contact-info-card a {
        font-size: 15px;
        line-height: 1.55;
    }

    .contact-form {
        gap: 20px;
    }

    .form-group input,
    .form-group textarea {
        font-size: 16px;
    }

    .form-group textarea {
        min-height: 180px;
    }
}


/* ==========================================
   VERY SMALL MOBILE
========================================== */

@media (max-width: 380px) {

    .contact-information,
    .contact-form-card {
        padding: 20px 16px;
    }

    .contact-info-card {
        grid-template-columns: 46px minmax(0, 1fr);
        column-gap: 14px;
        padding: 14px;
    }

    .contact-info-icon {
        width: 46px;
        height: 46px;
    }
}

/* ==========================================
   FINAL FIX — CONTACT INFO ICONS
========================================== */

.contact-info-card {
    display: grid;
    grid-template-columns: 48px minmax(0, 1fr);
    align-items: start;
    gap: 16px;

    width: 100%;
    min-height: 0;

    padding: 18px 20px;

    border: 1px solid var(--color-border);
    border-radius: var(--radius-md);
    background: var(--color-background);
}

.contact-info-icon {
    display: flex;
    align-items: center;
    justify-content: center;

    width: 48px;
    height: 48px;

    margin-top: 2px;

    border-radius: 50%;
    background: var(--color-primary-light);
    color: var(--color-primary);

    font-size: 20px;
    line-height: 1;

    flex-shrink: 0;
}

.contact-info-icon i {
    display: block;
    margin: 0;
    line-height: 1;
}

.contact-info-card > div {
    min-width: 0;
    padding-top: 1px;
}

.contact-info-card > div > span {
    display: block;
    margin-bottom: 7px;

    color: var(--color-text-light);
    font-size: 13px;
    font-weight: 700;
    letter-spacing: .05em;
    line-height: 1.3;
    text-transform: uppercase;
}

.contact-info-card strong,
.contact-info-card a {
    display: block;

    color: var(--color-primary-dark);
    font-size: 16px;
    font-weight: 700;
    line-height: 1.55;

    overflow-wrap: break-word;
    word-break: normal;
    hyphens: none;
}


/* EMAIL PA DWE KASE NAN MITAN MO A */

.contact-info-card a[href^="mailto:"] {
    word-break: break-word;
    overflow-wrap: anywhere;
}


/* MOBILE */

@media (max-width: 575.98px) {

    .contact-info-card {
        grid-template-columns: 44px minmax(0, 1fr);
        gap: 14px;
        padding: 16px;
    }

    .contact-info-icon {
        width: 44px;
        height: 44px;
        font-size: 18px;
    }

    .contact-info-card strong,
    .contact-info-card a {
        font-size: 15px;
        line-height: 1.5;
    }
}

/* ==========================================
   FINAL FIX — CENTER CONTACT ICONS
========================================== */

.contact-info-icon {
    display: grid !important;
    place-items: center !important;

    width: 48px;
    height: 48px;
    min-width: 48px;
    min-height: 48px;

    margin: 0 !important;
    padding: 0 !important;

    border-radius: 50%;
    background: var(--color-primary-light);
    color: var(--color-primary);

    line-height: 1 !important;
}

.contact-info-icon i {
    display: grid !important;
    place-items: center !important;

    width: 24px;
    height: 24px;

    margin: 0 !important;
    padding: 0 !important;

    font-size: 20px;
    line-height: 1 !important;
}

.contact-info-icon i::before {
    display: block !important;
    margin: 0 !important;
    line-height: 1 !important;
}


/* Sèlman label tèks la dwe resevwa style sa a */

.contact-info-card > div > span {
    display: block;
    margin-bottom: 7px;
}