/* *****************************************************
   Gallicom — surcharge minimale du theme twenty-one
   Restrictions strictes :
   - Aucune modification de structure / layout
   - Aucune modification de typographie (font-family, size,
     letter-spacing, weight, text-transform)
   - Aucune modification de padding / margin / borders width
   - SEULES MODIFS AUTORISEES : couleurs + forme des boutons
   - Plus : ajout JS pour renommer State -> Departement (footer.tpl)
   Date : 2026-05-08
***************************************************** */

/* ====== Palette ====== */
:root {
    --gx-text:           #1A1216;
    --gx-magenta:        #B0144C;
    --gx-magenta-hover:  #8E0F3D;
    --gx-magenta-soft:   rgba(176, 20, 76, 0.10);
    --gx-magenta-glow:   rgba(176, 20, 76, 0.25);
}

/* ====== Selection ====== */
::selection { background-color: var(--gx-magenta); color: #fff; }

/* ====== Liens : hover magenta ====== */
a:not(.btn):not(.nav-link):not(.navbar-brand):not(.list-group-item):not(.dropdown-item):hover,
a:not(.btn):not(.nav-link):not(.navbar-brand):not(.list-group-item):not(.dropdown-item):focus {
    color: var(--gx-magenta);
}
.breadcrumb a:hover { color: var(--gx-magenta) !important; }
.navbar-nav .nav-link.active,
.nav-item .nav-link.active {
    border-bottom-color: var(--gx-magenta) !important;
}

/* Items sidebar / list-group toujours en noir */
.panel-sidebar a,
.panel-sidebar .list-group-item,
.panel-sidebar .list-group-item-action,
.card-sidebar a,
.card-sidebar .list-group-item,
.cart-sidebar a,
.cart-sidebar .list-group-item,
.list-group-item-action {
    color: var(--gx-text) !important;
}
.panel-sidebar a:hover,
.panel-sidebar .list-group-item:hover,
.card-sidebar a:hover,
.cart-sidebar a:hover,
.list-group-item-action:hover {
    color: var(--gx-text) !important;
}
.panel-sidebar .list-group-item.active,
.card-sidebar .list-group-item.active,
.cart-sidebar .list-group-item.active {
    background-color: var(--gx-magenta-soft) !important;
    color: var(--gx-text) !important;
    border-color: var(--gx-magenta) !important;
}

/* ====== Form focus : ring magenta ====== */
.form-control:focus,
.field:focus,
input:focus:not([type="checkbox"]):not([type="radio"]):not([type="submit"]):not([type="button"]),
select:focus,
textarea:focus {
    border-color: var(--gx-magenta) !important;
    box-shadow: 0 0 0 3px var(--gx-magenta-glow) !important;
    outline: none !important;
}
input[type="checkbox"],
input[type="radio"] { accent-color: var(--gx-magenta); }

/* ====== Tables : hover row magenta soft ====== */
.table tbody tr:hover > td,
.table tbody tr:hover > th {
    background-color: var(--gx-magenta-soft) !important;
}

/* ====== Pagination active ====== */
.page-item.active .page-link {
    background-color: var(--gx-magenta) !important;
    border-color: var(--gx-magenta) !important;
    color: #fff !important;
}
.page-link:hover { color: var(--gx-magenta) !important; }

/* ====== Badges accent ====== */
.badge-primary,
.badge-info {
    background-color: var(--gx-magenta) !important;
    color: #fff !important;
    border-color: var(--gx-magenta) !important;
}

/* ====== BOUTONS — couleurs + forme Gallicom ====== */
.btn {
    border-radius: 9999px !important;
    box-shadow: none !important;
    text-shadow: none !important;
    transition: background-color 0.2s ease, border-color 0.2s ease, color 0.2s ease !important;
}

/* Primary : noir */
.btn-primary,
.btn-primary:not(:disabled):not(.disabled) {
    background-color: var(--gx-text) !important;
    border-color: var(--gx-text) !important;
    color: #fff !important;
}
.btn-primary:hover {
    background-color: #000 !important;
    border-color: #000 !important;
    color: #fff !important;
}
.btn-primary:focus {
    background-color: var(--gx-text) !important;
    border-color: var(--gx-text) !important;
    box-shadow: 0 0 0 3px var(--gx-magenta-glow) !important;
    color: #fff !important;
}

/* Secondary / Default / Outline : transparent + bordure subtile */
.btn-secondary,
.btn-default,
.btn-outline-primary,
.btn-outline-secondary,
.btn-light {
    background-color: transparent !important;
    border-color: rgba(0, 0, 0, 0.18) !important;
    color: var(--gx-text) !important;
}
.btn-secondary:hover,
.btn-default:hover,
.btn-outline-primary:hover,
.btn-outline-secondary:hover,
.btn-light:hover {
    background-color: rgba(0, 0, 0, 0.04) !important;
    border-color: var(--gx-text) !important;
    color: var(--gx-text) !important;
}

/* Link : magenta */
.btn-link {
    color: var(--gx-magenta) !important;
    background-color: transparent !important;
    border-color: transparent !important;
}
.btn-link:hover,
.btn-link:focus {
    color: var(--gx-magenta-hover) !important;
    background-color: transparent !important;
}

/* Success / Checkout : magenta plein, texte blanc */
.btn-success,
.btn-success.btn-checkout,
.btn-success.btn-lg,
.btn-checkout,
a.btn-checkout,
a#checkout,
.modal-submit.btn-primary {
    background-color: var(--gx-magenta) !important;
    border-color: var(--gx-magenta) !important;
    color: #ffffff !important;
}
.btn-success:hover,
.btn-checkout:hover,
.btn-success.btn-lg:hover,
.modal-submit.btn-primary:hover,
a#checkout:hover {
    background-color: var(--gx-magenta-hover) !important;
    border-color: var(--gx-magenta-hover) !important;
    color: #ffffff !important;
}
.btn-checkout *,
.btn-checkout i,
.btn-success *,
#checkout * {
    color: #ffffff !important;
}
.btn-checkout.disabled,
.btn-checkout:disabled,
#checkout.disabled,
.btn-success.btn-checkout.disabled {
    background-color: var(--gx-magenta) !important;
    border-color: var(--gx-magenta) !important;
    color: #ffffff !important;
    opacity: 0.55 !important;
    cursor: not-allowed !important;
}

/* Warning / Danger / Info : tinted (pas de fond plein flashy) */
.btn-warning {
    background-color: rgba(217, 119, 6, 0.10) !important;
    border-color: rgba(217, 119, 6, 0.45) !important;
    color: #D97706 !important;
}
.btn-warning:hover {
    background-color: rgba(217, 119, 6, 0.18) !important;
    border-color: #D97706 !important;
    color: #D97706 !important;
}
.btn-danger {
    background-color: rgba(220, 38, 38, 0.10) !important;
    border-color: rgba(220, 38, 38, 0.45) !important;
    color: #DC2626 !important;
}
.btn-danger:hover {
    background-color: rgba(220, 38, 38, 0.18) !important;
    border-color: #DC2626 !important;
    color: #DC2626 !important;
}
.btn-info {
    background-color: rgba(2, 132, 199, 0.10) !important;
    border-color: rgba(2, 132, 199, 0.45) !important;
    color: #0284C7 !important;
}
.btn-info:hover {
    background-color: rgba(2, 132, 199, 0.18) !important;
    border-color: #0284C7 !important;
    color: #0284C7 !important;
}

/* Btn group : pill aux extremites, plat a l'interieur */
.btn-group > .btn,
.btn-group-vertical > .btn { border-radius: 0 !important; }
.btn-group > .btn:first-child {
    border-top-left-radius: 9999px !important;
    border-bottom-left-radius: 9999px !important;
}
.btn-group > .btn:last-child,
.btn-group > .dropdown-toggle:not(:first-child) {
    border-top-right-radius: 9999px !important;
    border-bottom-right-radius: 9999px !important;
}
.btn-group > .btn:only-child { border-radius: 9999px !important; }

/* Croix close : exclu de l'override .btn -> garde le style natif Bootstrap */
.close,
button.close {
    border-radius: 0 !important;
    background-color: transparent !important;
    box-shadow: none !important;
}

/* ====== Cart : barre Produit/Options + Tarif/Cycle (bleu -> noir) ====== */
#order-standard_cart .view-cart-items-header,
.view-cart-items-header,
#order-standard_cart .empty-cart .btn,
.empty-cart .btn {
    background-color: var(--gx-text) !important;
    color: #ffffff !important;
    border-color: var(--gx-text) !important;
}
#order-standard_cart .view-cart-items-header *,
.view-cart-items-header * {
    color: #ffffff !important;
}

/* ====== Cartes "Comment pouvons-nous vous aider" -> magenta uniforme ====== */
.action-icon-btns .card-accent-teal,
.action-icon-btns .card-accent-pomegranate,
.action-icon-btns .card-accent-sun-flower,
.action-icon-btns .card-accent-green,
.action-icon-btns .card-accent-midnight-blue,
.action-icon-btns .card-accent-asbestos,
[class*="card-accent-"] {
    border-color: var(--gx-magenta) !important;
    border-left-color: var(--gx-magenta) !important;
    border-bottom-color: var(--gx-magenta) !important;
    border-top-color: var(--gx-magenta) !important;
    border-right-color: var(--gx-magenta) !important;
}
.action-icon-btns .card-accent-teal i,
.action-icon-btns .card-accent-pomegranate i,
.action-icon-btns .card-accent-sun-flower i,
.action-icon-btns .card-accent-green i,
.action-icon-btns .card-accent-midnight-blue i,
.action-icon-btns .card-accent-asbestos i,
[class*="card-accent-"] i,
[class*="card-accent-"] .ico-container,
[class*="card-accent-"] .ico-container i {
    color: var(--gx-magenta) !important;
}
.action-icon-btns [class*="card-accent-"]:hover {
    border-color: var(--gx-magenta-hover) !important;
    background-color: var(--gx-magenta-soft) !important;
}
.action-icon-btns [class*="card-accent-"]:hover i {
    color: var(--gx-magenta-hover) !important;
}

/* ====== Footer : passer le gris au noir ====== */
footer,
.footer,
.footer .container,
.footer .copyright,
.footer p,
.footer .list-inline,
.footer .list-inline-item,
.footer span,
.copyright {
    background-color: var(--gx-text) !important;
    color: #ffffff !important;
}
.footer a,
.footer .copyright a,
footer a {
    color: #ffffff !important;
}
.footer a:hover,
footer a:hover {
    color: var(--gx-magenta) !important;
}

/* ====== Masquer "Annonces" et "Base de connaissances" sur la home ====== */
.action-icon-btns > [class*="col-"]:has(a[href*="/announcements"]),
.action-icon-btns > [class*="col-"]:has(a[href*="/knowledgebase"]) {
    display: none !important;
}

/* ====== Masquer le panel "Actions" du panier (Enregistrer/Transferer/Voir panier) ====== */
.cart-sidebar [menuItemName="Actions"],
[menuItemName="Actions"].panel-sidebar,
.panel[menuItemName="Actions"] {
    display: none !important;
}

/* Fix : HTML normalise les attributs en lowercase, donc menuItemName -> menuitemname */
[menuitemname="Actions"],
[menuitemname="Actions"].panel-sidebar,
.cart-sidebar [menuitemname="Actions"],
.panel[menuitemname="Actions"] {
    display: none !important;
}

/* ====== Masquer ANNONCES + BASE DE CONNAISSANCES partout (navbar + cards) ====== */
[menuitemname="Announcements"],
[menuitemname="Knowledgebase"],
li#Primary_Navbar-Announcements,
li#Primary_Navbar-Knowledgebase,
li[id*="Announcements"],
li[id*="Knowledgebase"],
.navbar a[href*="/announcements"],
.navbar a[href*="/knowledgebase"],
.navbar-nav a[href*="/announcements"],
.navbar-nav a[href*="/knowledgebase"],
.footer a[href*="/announcements"],
.footer a[href*="/knowledgebase"] {
    display: none !important;
}

/* ====== Page "Verifier et commander" : pleine largeur ====== */
#main-body > .container:has(#order-standard_cart),
#main-body > .container:has(.cart-body),
.container:has(#order-standard_cart) {
    max-width: 100% !important;
    width: 100% !important;
    padding-left: 30px !important;
    padding-right: 30px !important;
}

/* ====== Pleine largeur sur toutes les pages cart/checkout ====== */
body:has(#order-standard_cart) #main-body > .container,
body:has(.cart-body) #main-body > .container,
body:has(#order-form) #main-body > .container {
    max-width: 100% !important;
    width: 100% !important;
    padding-left: 30px !important;
    padding-right: 30px !important;
    margin-left: auto !important;
    margin-right: auto !important;
}
