/*
 * Correctifs maison par-dessus le thème GXON.
 * Le thème n'est jamais modifié : tout ce qui suit vient après styles.css.
 */

/*
 * GXON donne à chaque .card la hauteur de sa colonne (une carte par colonne).
 * Empilées, elles réclament chacune toute la hauteur et débordent sur le pied
 * de page : on leur rend leur hauteur naturelle.
 */
[class*="col-"] > .card:not(:only-child) {
    height: auto;
}

/*
 * .btn-primary survolé lit --bs-btn-primary-hover, que seul appSettings.js
 * déclare (via data-color-theme). Valeur de repli si le script manque.
 */
:root {
    --bs-btn-primary-hover: #2a5ad9;
}

/* Logo texte à la place de celui du thème. */
.app-logo {
    display: flex;
    align-items: center;
    gap: .6rem;
    text-decoration: none;
}

.app-logo-mark {
    display: inline-grid;
    place-items: center;
    width: 2.25rem;
    height: 2.25rem;
    border-radius: .6rem;
    background: var(--bs-primary);
    color: #fff;
    font-weight: 800;
    font-size: 1.1rem;
}

.app-logo-text {
    font-size: 1.35rem;
    font-weight: 600;
    color: var(--bs-heading-color, var(--bs-body-color));
}

/* Choix du type de fête : trois cartes, la sélectionnée est encadrée. */
.choix-ambiance {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
    gap: .75rem;
}

.choix-ambiance-carte {
    display: grid;
    gap: .2rem;
    padding: .9rem 1rem;
    border: 2px solid var(--bs-border-color);
    border-radius: .9rem;
    cursor: pointer;
    transition: border-color .15s, background-color .15s;
}

.choix-ambiance-carte i { font-size: 1.4rem; line-height: 1; margin-bottom: .3rem; }
.choix-ambiance-carte small { color: var(--bs-secondary-color); line-height: 1.3; }
.choix-ambiance-carte.ambiance-anniversaire i { color: #ff7a59; }
.choix-ambiance-carte.ambiance-noel i { color: #c8102e; }
.choix-ambiance-carte.ambiance-mariage i { color: #b8925a; }

.choix-ambiance-carte:has(input:checked) {
    border-color: var(--bs-primary);
    background: rgba(var(--bs-primary-rgb), .06);
}
.choix-ambiance-carte:has(input:focus-visible) { outline: 2px solid var(--bs-primary); outline-offset: 2px; }

/* Pages des invités (base_public) : une colonne, sans menu. */
.page-invite { background: var(--bs-body-bg); }
.invite-conteneur { max-width: 820px; margin: 0 auto; padding: 2rem 1rem; }
.invite-entete { display: flex; gap: 1rem; align-items: flex-start; margin-bottom: 1.5rem; }
.invite-entete .app-logo-mark { flex-shrink: 0; width: 3rem; height: 3rem; font-size: 1.4rem; }
.invite-reponse { background: rgba(var(--bs-primary-rgb), .07); border-radius: .5rem; padding: .6rem .8rem; }
.invite-pied { text-align: center; color: var(--bs-secondary-color); font-size: .85rem; padding: 1rem; }
.page-invite .card { height: auto; margin-bottom: 1.25rem; }
