/*
Theme Name :  Thème enfant
Description :    Thème enfant de Divi
Author:           Daniel Bertoni - Devncom
Author URI:      http://www.devncom.com
Template:        Divi                       
Version:          0.1.0
*/


/* Pied de page */

#footer-bottom
{
    display: none;
}

/* #main-footer
{
    height: 40px;
} */

/* #main-footer
{
    position: fixed;
    bottom: 0;
    width: 100%;    z-index: 999;
}

#footer-aux
{
    position: fixed;
    bottom: 40px;
    width: 100%;    z-index: 999;
} */

#footer-widgets
{
    padding-top: 20px !important;
}

.footer-widget
{
    margin-bottom: 20px !important;
}

#menu-bis a
{
    color: #fff;
}

#menu-bis a:hover
{
    color: #00AC34;
}


#devncom a:hover
{
    color: #B1DE46 !important;
}

#devncom img
{
    vertical-align: middle;
}

#mentleg a
{
    color: #fff;
}

#mentleg a:hover
{
    color: #00AC34;
}

#text-3
{
    width: 100%;
    margin: 0 auto;
    float: none;
    text-align: center;
}
/* Fin pied de page */

/* Menu */

#main-header
{
    padding-left: 50px;
    padding-right: 50px;
}

/* Icones de menu */
@media (min-width: 981px) 
{
 
 /* .menu-icons a { padding-left: 20px; }  */
 .menu-icons a:before { font-family: 'ETmodules'; position: absolute; } 
 
 #main-header .menu-icons a:before { top: 0; left: 0; } 
 /* .sub-menu .menu-icons a:before { margin-top: 6px; left: 0; }  */
 #top-header .menu-icons a:before { left: 0px; top: 0px; }
 
/************************************ MENU ICONS **********************************/
 /*** QUOTE MARKS ***/ .menu-icon-1 a:before { content: "\7c"; }
 /*** CLOCK FACE ***/ .menu-icon-2 a:before { content: "\7d"; }
 /*** CLOSED PADLOCK ***/ .menu-icon-3 a:before { content: "\7e"; }
 /*** KEY ***/ .menu-icon-4 a:before { content: "\e001"; }
 /*** CLOUD ***/ .menu-icon-5 a:before { content: "\e002"; }
 /*** LANDSCAPE IMAGE ICON ***/ .menu-icon-6 a:before { content: "\e005"; }
 /*** LIGHTBULB ***/ .menu-icon-7 a:before { content: "\e007"; }
 /*** CAMERA ***/ .menu-icon-8 a:before { content: "\e00f"; }
 /*** ENVELOPE ***/ .menu-icon-9 a:before { content: "\e010"; }
 /*** CREDIT CARD ***/ .menu-icon-10 a:before { content: "\e014"; }
 /*** SHOPPING CART ***/ .menu-icon-11 a:before { content: "\e015"; }
 /*** LOCATION PIN ***/ .menu-icon-12 a:before { content: "\e01d"; }
 /*** CALENDAR ***/ .menu-icon-13 a:before { content: "\e023"; }
 /*** CONTACTS BOOK ***/ .menu-icon-14 a:before { content: "\e026"; }
 /*** HEART ***/ .menu-icon-15 a:before { content: "\e030"; }
 /*** COFFEE CUP ***/ .menu-icon-16 a:before { content: "\e105"; }
 /*** WALLET ***/ .menu-icon-17 a:before { content: "\e100"; }
 /*** BRIEFCASE ***/ .menu-icon-18 a:before { content: "\e0fe"; }
 /*** STAR ***/ .menu-icon-19 a:before { content: "\e031"; }
 /*** HOME ***/ .menu-icon-20 a:before { content: "\e009"; }
 /*** HOME2 ***/ .menu-icon-25 a:before { content: "\e074"; }
 /*** LINK CHAIN ***/ .menu-icon-21 a:before { content: "\e02c"; }
 /*** LIKE THUMBS UP ***/ .menu-icon-22 a:before { content: "\e106"; }
 /*** HOURGLASS ***/ .menu-icon-23 a:before { content: "\e0e1"; }
 /*** PIE CHART ***/ .menu-icon-24 a:before { content: "\e029"; }
 
}

/* Fin icone de menu */


@media only screen and (max-width: 1440px)
{
    #type2,
    #type1,
    #type3,
    #type4,
    #type5,
    #type6
    {
        height: 300px;
    }

    #type2 h3,
    #type1 h3,
    #type3 h3,
    #type4 h3,
    #type5 h3,
    #type6 h3
    {
        font-size: 24px !important;
    }
}

@media only screen and (max-width: 1279px)
{
    #main-header
    {
        padding-left: 0;
        padding-right: 0;
    }
}

/* Logo */
#logo
{
    width: 200px;
    max-width: 200px;
    height: auto;
}

/* Empêche Divi d'agrandir le logo en responsive */
@media only screen and (max-width: 1079px)
{
    #logo
    {
        width: 200px !important;
        max-width: 200px !important;
        height: auto;
    }
}


#top-menu a::first-letter
{
    text-transform: uppercase;
}

#top-menu > li
{
    padding-right: 16px;
}

#top-menu > li > a
{
    color: #222 !important;
    letter-spacing: .5px;
    font-weight: 500;
}

/* Les icônes ajoutées via les pseudo-éléments Divi suivent la couleur du lien */
#top-menu .menu-icons > a::before
{
    color: currentColor !important;
}

/* Icône panier Divi / WooCommerce */
.et-cart-info,
.et-cart-info span,
.et-cart-info span::before
{
    color: #222 !important;
}

/* Survol des liens et des icônes */
#top-menu > li > a:hover,
.et-cart-info:hover,
.et-cart-info:hover span,
.et-cart-info:hover span::before
{
    color: #00ac34 !important;
}

/* Bouton Commander */
#top-menu .menu-commander > a
{
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 8px 13px !important;
    margin-top: -8px;
    border-radius: 3px;
    background: #00ac34;
    color: #fff !important;
    font-weight: 600;
    line-height: 1;
    transition: background-color .2s ease;
}

#top-menu .menu-commander > a:hover
{
    background: #009b2f;
    color: #fff !important;
}

/* Header tablette / mobile */
@media only screen and (max-width: 980px)
{
    .et-cart-info
    {
        position: relative;
        top: 5px;
        margin: 0 14px 0 0 !important;
        padding: 0 !important;
        line-height: 1 !important;
    }

    .et-cart-info span
    {
        display: flex;
        align-items: center;
        line-height: 1 !important;
    }

    .et-cart-info span::before
    {
        margin: 0 !important;
        color: #0096bf !important;
        font-size: 20px !important;
        line-height: 1 !important;
    }

    .mobile_menu_bar::before
    {
        color: #0096bf !important;
        line-height: 1 !important;
    }
}

/* État courant WordPress : même couleur que le menu par défaut.
   Le surlignage vert au scroll reste géré plus bas par .mPS2id-highlight. */
#top-menu li.current-menu-item > a
{
    color: #222 !important;
}

#menu-item-1008.current-menu-item > a
{
    color: #00d641 !important;
}

/* #top-menu .active a
{
	color: #00D641 !important;
} 

/* #top-menu .active a:after */
/* { */
	/* content: ''; */
	/* border-bottom: 2px solid #00AC34; */
	/* display: block; */
	/* position: relative; */
	/* width: 100%; */
	/* top: 8px; */
/* } */

/* .et-fixed-header #top-menu .active a */
/* { */
    /* color: #00AC34 !important; */
/* } */

#accueil
{
    padding-top: 0 !important;
}

/* fin Menu */

/* En-tête */

@keyframes bounce 
{
    0%, 100%
    {
        -moz-transform: translateY(0);
        -ms-transform: translateY(0);
        -webkit-transform: translateY(0);
        transform: translateY(0);
    }

    40%
    {
        -moz-transform: translateY(-20px);
        -ms-transform: translateY(-20px);
        -webkit-transform: translateY(-20px);
        transform: translateY(-20px);
    }
}

span.scroll-down.et-pb-icon 
{ 
    -webkit-animation-name: bounce;
    animation-name: bounce;
    -webkit-animation-duration: 1.5s;
    animation-duration: 1.5s;
    -webkit-animation-fill-mode: both;
    animation-fill-mode: both;
    -webkit-animation-iteration-count: infinite;
    animation-iteration-count: infinite;
}

/* Fin en-tête */


/*  colonnes */

.trois-col
{
    float: left;
    width: 30.6% !important;
    padding: 20px;
}

@media only screen and (max-width: 980px)
{
    .trois-col 
    {
        width: 47%!important; 
    }
}
 

/* Formatage titres */

#accueil .header-content
{
    max-width: 900px !important;
}

#accueil h1
{
    font-size: 46px;
    font-weight: 800;
    text-align: center;
    text-transform: uppercase;
}

#ouvrages h2, #entreprise h2, #certifications h2, #realisations h2, #contact h2, #partenaires h2
{
    font-size: 40px;
    font-weight: 800;
    text-align: center;
    text-transform: uppercase;
    padding-top: 10px !important;
    padding-bottom: 0 !important;
}

#type1,
#type2,
#type3,
#type4,
#type5,
#type6
{
    padding : 140px 20px 0 20px !important;
}

#type1:hover,
#type2:hover,
#type3:hover,
#type4:hover,
#type5:hover,
#type6:hover
{
    padding: 80px 20px 60px  20px !important;
}


.mPS2id-highlight
{
    color: #00d641 !important;
}

#entreprise ul
{
    width: 70%;
    margin: 0 auto;
}

/* rotate icon */
.mp_m_blurb_rotate .et-pb-icon
{
    -webkit-transition-duration: 0.3s;
    transition-duration: 0.3s;
    -webkit-transition-property: transform;
    transition-property: transform;
    -webkit-transition-timing-function: ease-out;
    transition-timing-function: ease-out;
}
 
 .mp_m_blurb_rotate:hover .et-pb-icon
 {
 
    -webkit-transform: rotate(20deg);
    transform: rotate(20deg);
}
        
 /* Bouton charger plus Insta */
 .eapps-instagram-feed-posts-grid-load-more
 {
     margin-top: 40px !important;
     line-height: 16px !important;
     padding: 12px 24px !important;
     font-family: "open sans" !important;
     text-transform: uppercase !important;
     letter-spacing: 1px !important;
     width: 180px !important;
     height: 40px !important;
     vertical-align: middle !important;
     font-weight: 600 !important;
     border: 2px solid #0096bf !important;
     background-color: #0096bf !important;
 }
 
.eapps-instagram-feed-posts-grid-load-more:hover
{
    color: #0096bf !important;
    background-color: transparent !important;
}
 
 /* Bouton top */
 .et_pb_scroll_top.et-pb-icon
 {
     background-color: rgba(0, 172, 52, 0.7) !important;
 }
 
 /* Gestion documentation */
 
 .mdocs-navbar-default
{
    background-color: #0096bf;
}
 
.navbar-brand
{
   color: #fff !important;
   text-transform: uppercase;
   letter-spacing: 2px;
   font-weight: 700;
   font-size: 1.6em !important;
   display: block;
   line-height: 1.6em !important;
}

 .mdocs-navbar-default .navbar-nav > li > a
{
   color: #fff;
   font-size: 1.2em !important;
   padding-top: 1.4em !important;
   font-weight: 600;
   letter-spacing: 1px;
}

.mdocs-navbar-default .navbar-nav > li > a:hover
{
   color: #000;
   font-size: 1.2em !important;
}
 
.text-muted
{
     color: #00ac34;
}
 
 /* Memphis docs */
 
#mdocs-list-table .mdoc-file-type-icon
{
    padding-right: 10px;
}
 
td#title.mdocs-tooltip
{
    line-height: 30px;
    padding-left: 10px;
}
 
.table > tbody > tr > td
{
    line-height: 40px !important;
    padding: 6px;
}

.table>tbody>tr>td>i
{
    margin-right: 6px;
}

 #mdocs-list-table > tbody > tr > td.mdocs-name > div > ul > li:nth-child(1),
#mdocs-list-table > tbody > tr > td.mdocs-name > div > ul > li.divider,
/*#mdocs-list-table > tbody > tr:nth-child(2) > td.mdocs-name > div > ul > li:nth-child(3),*/
#mdocs-list-table > tbody > tr > td.mdocs-name > div > ul > li:nth-child(5),
#mdocs-list-table > tbody > tr > td.mdocs-name > div > ul > li:nth-child(7),
#mdocs-list-table > tbody > tr > td.mdocs-name > div > ul > li:nth-child(8)
{
    display: none;
}

.mdocs-dropdown-menu
{
    margin: 0 !important;
    padding:  10px 0 !important;
}

.mdocs-dropdown-menu li a i
{
    width: 14px;
    margin-right:  6px;
}

.navbar-header
{
    display: none;
}

/* Barre de cookies */

#cookie-notice
{
    background-color: rgba(0, 153, 196, 0.9) !important;
}

#cn-notice-text,
#cn-accept-cookie,
#cn-more-info
{
    font-family: "open sans";
    font-size: 14px;
}

#cn-accept-cookie,
#cn-more-info
{
    text-transform: lowercase;
    font-variant: small-caps;
    font-weight: 600;
    color: rgba(255, 255, 255, 1);
    background: #00ac34;
    text-shadow: none;
    border: none;
    -webkit-border-radius: 1px;
    -moz-border-radius: 1px;
    border-radius: 1px;
    letter-spacing: 1px;
    padding: 6px 12px;
}

#cn-accept-cookie:hover,
#cn-more-info:hover
{
    background: #fff;
    color: #00ac34;
}

@media only screen and (max-width: 479px)
{
    /* Très petits écrans */
    #logo
    {
        width: 175px !important;
        max-width: 175px !important;
    }

    .et-cart-info
    {
        top: 5px;
        margin-right: 10px !important;
    }

    .et-cart-info span::before
    {
        font-size: 18px !important;
    }

    .mobile_menu_bar::before
    {
        font-size: 26px !important;
    }

    .trois-col 
    {
        width: 98%!important;
    }

    #accueil h1
    {
        font-size: 30px !important;
        line-height: 1.15em !important;
    }
#ouvrages h2, #entreprise h2, #certifications h2, #realisations h2, #contact h2, #partenaires h2
    {
        font-size: 30px;
        font-weight: 800;
        text-align: center;
        text-transform: uppercase;
        padding-top: 10px !important;
        padding-bottom: 0 !important;
    }

    #certif1,
    #certif2,
    #certif3,
    #certif4,
    #certif5,
    #certif6
    {
        text-align: center;
    }
}

/* Cartes qualités GEOPACA */
.geopaca-quality-card
{
    border: 1px solid #e5e5e5;
    padding: 22px;
    height: 100%;
}

/* Icône à gauche + contenu à droite */
.geopaca-quality-card .et_pb_blurb_content
{
    display: grid !important;
    grid-template-columns: 56px minmax(0, 1fr);
    column-gap: 18px;
    align-items: start;
    max-width: none !important;
}

/* Icône */
.geopaca-quality-card .et_pb_main_blurb_image
{
    grid-column: 1;
    width: 56px !important;
    margin: 0 !important;
    display: block !important;
}

/* Titre + description */
.geopaca-quality-card .et_pb_blurb_container
{
    grid-column: 2;
    width: auto !important;
    padding: 0 !important;
    display: block !important;
}

.geopaca-quality-card .et_pb_module_header
{
    margin: 0;
    padding: 0 0 7px !important;
    text-align: left !important;
}

.geopaca-quality-card .et_pb_blurb_description
{
    margin: 0 !important;
    padding: 0 !important;
    text-align: left !important;
    line-height: 1.55em;
}

/* ==========================================================================
   Boutique GEOPACA - fiche produit / configurateur
   ========================================================================== */

:root
{
    --geopaca-green: #00ac34;
    --geopaca-green-hover: #009b2f;
    --geopaca-blue: #0096bf;
    --geopaca-text: #222;
    --geopaca-text-secondary: #555;
    --geopaca-muted: #6b7075;
    --geopaca-border: #dfe3e6;
    --geopaca-surface: #f7f8f9;
    --geopaca-surface-soft: #f3f4f5;
}

/* ==========================================================================
   Fiche produit - Hero
   ========================================================================== */

.geopaca-product-hero
{
    min-height: 230px;
    padding: 52px 0 !important;
    background-color: rgba(10, 25, 30, .34) !important;
    background-blend-mode: multiply;
    background-position: center center !important;
    background-size: cover !important;
    background-repeat: no-repeat !important;
}

.geopaca-product-hero-row
{
    display: flex;
    min-height: 126px;
    align-items: center;
}

.geopaca-product-hero-title h1,
.geopaca-product-hero-title h2,
.geopaca-product-hero-title .product_title
{
    margin: 0 !important;
    padding: 0 !important;
    color: #fff !important;
    font-size: 38px !important;
    font-weight: 700 !important;
    line-height: 1.15 !important;
}

.geopaca-product-hero-subtitle
{
    margin-top: 8px !important;
}

.geopaca-product-hero-subtitle,
.geopaca-product-hero-subtitle p
{
    color: rgba(255, 255, 255, .92) !important;
    font-size: 18px !important;
    line-height: 1.45 !important;
}

.geopaca-product-hero-subtitle p
{
    margin: 0 !important;
    padding: 0 !important;
}


/* Titres d'étapes */
.geopaca-config-step-title
{
    margin-bottom: 12px;
    color: var(--geopaca-text);
    font-size: 18px;
    font-weight: 700;
}


/* Type de client */

.geopaca-customer-type
{
    margin-top: 25px;
}

.geopaca-customer-type-options
{
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
}

.geopaca-customer-type-option
{
    position: relative;
    display: flex;
    align-items: center;
    min-height: 68px;
    padding: 12px 14px;
    border: 1px solid var(--geopaca-border);
    border-radius: 4px;
    background: #fff;
    cursor: pointer;
    transition: border-color .2s ease, background-color .2s ease;
}

.geopaca-customer-type-option:hover
{
    border-color: rgba(0, 172, 52, .55);
}

.geopaca-customer-type-option input
{
    flex: 0 0 auto;
    width: 18px;
    height: 18px;
    margin: 0 12px 0 0;
    accent-color: var(--geopaca-green);
}

.geopaca-customer-type-content
{
    display: flex;
    flex-direction: column;
}

.geopaca-customer-type-name
{
    color: var(--geopaca-text);
    font-size: 16px;
    font-weight: 600;
    line-height: 1.25;
}

.geopaca-customer-type-subtitle
{
    margin-top: 3px;
    color: var(--geopaca-muted);
    font-size: 12px;
    line-height: 1.3;
}

/* État actif : :has() + classe de secours pour le futur plugin métier */
.geopaca-customer-type-option:has(input:checked),
.geopaca-customer-type-option.is-selected
{
    border-color: var(--geopaca-green);
    background: rgba(0, 172, 52, .06);
}


/* Dimensions */

.geopaca-dimensions
{
    margin-top: 28px;
}

.geopaca-dimensions-fields
{
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
}

.geopaca-dimension-field
{
    display: flex;
    flex-direction: column;
    gap: 7px;
}

.geopaca-dimension-field > span
{
    color: #333;
    font-size: 14px;
    font-weight: 600;
}

.geopaca-dimension-field input
{
    width: 100%;
    height: 48px;
    padding: 0 12px;
    border: 1px solid var(--geopaca-border);
    border-radius: 4px;
    background: #fff;
    color: var(--geopaca-text);
    font-size: 16px;
}

.geopaca-dimension-field input:focus
{
    outline: none;
    border-color: var(--geopaca-blue);
    box-shadow: 0 0 0 2px rgba(0, 150, 191, .10);
}

.geopaca-config-info
{
    margin-top: 12px;
    padding: 10px 12px;
    border-radius: 4px;
    background: rgba(0, 150, 191, .08);
    color: #5d666c;
    font-size: 12px;
    line-height: 1.4;
}


/* Surface calculée */

.geopaca-surface
{
    margin-top: 28px;
}

.geopaca-surface-result
{
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 64px;
    padding: 12px 16px;
    border-radius: 4px;
    background: var(--geopaca-surface-soft);
}

.geopaca-surface-value
{
    color: var(--geopaca-text);
    font-size: 26px;
    font-weight: 600;
    line-height: 1;
}

.geopaca-surface-limits
{
    display: flex;
    justify-content: space-between;
    gap: 12px;
    margin-top: 10px;
    color: var(--geopaca-muted);
    font-size: 12px;
    line-height: 1.4;
}

.geopaca-quote-info
{
    margin-top: 12px;
    padding: 10px 12px;
    border-radius: 4px;
    background: rgba(0, 172, 52, .07);
    color: #4f6255;
    font-size: 12px;
    line-height: 1.4;
}


/* Récapitulatif */

.geopaca-order-summary
{
    width: 100%;
}

.geopaca-unit-price
{
    margin-bottom: 16px;
    padding: 18px 20px;
    border-radius: 5px;
    background: rgba(0, 172, 52, .07);
    text-align: center;
}

.geopaca-unit-price > div
{
    display: flex;
    align-items: baseline;
    justify-content: center;
    gap: 7px;
}

.geopaca-unit-price strong
{
    color: var(--geopaca-blue);
    font-size: 32px;
    line-height: 1;
}

.geopaca-unit-price span
{
    color: var(--geopaca-green);
    font-size: 18px;
    font-weight: 700;
}

.geopaca-unit-price small
{
    display: block;
    margin-top: 7px;
    color: #666;
    font-size: 12px;
}

.geopaca-summary-card
{
    padding: 20px;
    border-radius: 5px;
    background: var(--geopaca-surface);
}

.geopaca-summary-card h3
{
    margin: 0 0 18px;
    padding: 0;
    color: var(--geopaca-text);
    font-size: 20px;
    font-weight: 700;
}

.geopaca-summary-row
{
    display: flex;
    justify-content: space-between;
    gap: 15px;
    padding: 6px 0;
    color: var(--geopaca-text-secondary);
    font-size: 14px;
}

.geopaca-summary-row strong
{
    color: var(--geopaca-text);
    text-align: right;
}

.geopaca-summary-separator
{
    height: 1px;
    margin: 12px 0;
    background: var(--geopaca-border);
}

.geopaca-summary-total
{
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-top: 16px;
    padding: 14px;
    border-radius: 4px;
    background: rgba(0, 150, 191, .08);
    font-size: 18px;
    font-weight: 700;
}

.geopaca-summary-total span
{
    color: var(--geopaca-blue);
}

.geopaca-summary-total strong
{
    color: var(--geopaca-green);
    font-size: 21px;
}

.geopaca-summary-tax
{
    margin-top: 5px;
    padding-right: 14px;
    color: #777;
    font-size: 12px;
    text-align: right;
}


/* Ajouter au panier */

.geopaca-add-to-cart
{
    display: block;
    width: 100%;
    margin-top: 14px;
    padding: 15px 20px;
    border: 0;
    border-radius: 4px;
    background: var(--geopaca-green);
    color: #fff;
    cursor: pointer;
    font-size: 16px;
    font-weight: 700;
    text-align: center;
    transition: background-color .2s ease, opacity .2s ease;
}

.geopaca-add-to-cart:hover
{
    background: var(--geopaca-green-hover);
}

.geopaca-add-to-cart:focus-visible
{
    outline: 3px solid rgba(0, 150, 191, .25);
    outline-offset: 2px;
}

.geopaca-add-to-cart:disabled,
.geopaca-add-to-cart.is-disabled
{
    background: #c9ced1;
    color: #fff;
    cursor: not-allowed;
    opacity: .8;
}


/* Réassurance sous le bouton */

.geopaca-summary-reassurance
{
    margin-top: 18px;
}

.geopaca-summary-reassurance-item
{
    display: flex;
    align-items: flex-start;
    gap: 11px;
    padding: 10px 0;
    border-bottom: 1px solid #eee;
}

.geopaca-summary-reassurance-item:last-child
{
    border-bottom: 0;
}

.geopaca-summary-icon
{
    display: flex;
    flex: 0 0 28px;
    align-items: center;
    justify-content: center;
    width: 28px;
    height: 28px;
    border-radius: 50%;
    background: rgba(0, 172, 52, .08);
    color: var(--geopaca-green);
    font-weight: 700;
}

.geopaca-summary-reassurance-item > div
{
    display: flex;
    flex-direction: column;
}

.geopaca-summary-reassurance-item strong
{
    color: var(--geopaca-text);
    font-size: 13px;
}

.geopaca-summary-reassurance-item > div > span
{
    margin-top: 2px;
    color: var(--geopaca-muted);
    font-size: 12px;
}


/* Bandeau avantages produit */

.geopaca-product-benefits
{
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 0;
    padding: 26px 0;
    border-top: 1px solid #eceff1;
    border-bottom: 1px solid #eceff1;
    background: var(--geopaca-surface);
}

.geopaca-product-benefit
{
    display: flex;
    align-items: flex-start;
    gap: 12px;
    padding: 0 24px;
    border-right: 1px solid #e1e4e6;
}

.geopaca-product-benefit:last-child
{
    border-right: 0;
}

.geopaca-benefit-icon
{
    display: flex;
    flex: 0 0 34px;
    align-items: center;
    justify-content: center;
    width: 34px;
    height: 34px;
    border: 2px solid var(--geopaca-green);
    border-radius: 50%;
    color: var(--geopaca-green);
    font-size: 17px;
    font-weight: 700;
}

.geopaca-product-benefit > div
{
    display: flex;
    flex-direction: column;
}

.geopaca-product-benefit strong
{
    color: var(--geopaca-text);
    font-size: 15px;
    font-weight: 700;
    line-height: 1.3;
}

.geopaca-product-benefit > div > span
{
    margin-top: 5px;
    color: #666;
    font-size: 13px;
    line-height: 1.45;
}


/* ==========================================================================
   Onglets produit Divi
   Ajouter la classe CSS "geopaca-product-tabs" au module Onglets.
   ========================================================================== */

.geopaca-product-tabs
{
    border: 0 !important;
    background: transparent !important;
}

.geopaca-product-tabs .et_pb_tabs_controls
{
    display: flex;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    border-bottom: 1px solid var(--geopaca-border) !important;
    background: #fff !important;
}

.geopaca-product-tabs .et_pb_tabs_controls::after
{
    display: none !important;
    content: none !important;
}

.geopaca-product-tabs .et_pb_tabs_controls li
{
    float: none !important;
    margin: 0 !important;
    border: 0 !important;
    background: transparent !important;
}

.geopaca-product-tabs .et_pb_tabs_controls li a
{
    display: block;
    padding: 14px 20px !important;
    color: var(--geopaca-text-secondary) !important;
    font-size: 14px;
    font-weight: 600;
    line-height: 1.3;
}

.geopaca-product-tabs .et_pb_tabs_controls li.et_pb_tab_active
{
    margin-bottom: -1px !important;
    border-bottom: 3px solid var(--geopaca-blue) !important;
    background: #fff !important;
}

.geopaca-product-tabs .et_pb_tabs_controls li.et_pb_tab_active a
{
    color: var(--geopaca-blue) !important;
}

.geopaca-product-tabs .et_pb_all_tabs
{
    border: 0 !important;
    background: #fff !important;
}

.geopaca-product-tabs .et_pb_tab
{
    padding: 12px 0 0 !important;
}

.geopaca-product-tabs .et_pb_tab_content
{
    color: var(--geopaca-text-secondary);
    font-size: 14px;
    line-height: 1.65;
}



/* ==========================================================================
   Galerie produit WooCommerce
   ========================================================================== */

.single-product .woocommerce-product-gallery .flex-control-thumbs
{
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(58px, 1fr));
    gap: 12px;
    margin: 14px 0 0 !important;
    padding: 0;
    list-style: none;
}

.single-product .woocommerce-product-gallery .flex-control-thumbs li
{
    float: none !important;
    width: auto !important;
    margin: 0 !important;
}

.single-product .woocommerce-product-gallery .flex-control-thumbs img
{
    display: block;
    width: 100%;
    aspect-ratio: 4 / 3;
    object-fit: cover;
    border: 2px solid transparent;
    border-radius: 2px;
    opacity: .72;
    cursor: pointer;
    transition: border-color .2s ease, opacity .2s ease;
}

.single-product .woocommerce-product-gallery .flex-control-thumbs img:hover,
.single-product .woocommerce-product-gallery .flex-control-thumbs img.flex-active
{
    border-color: var(--geopaca-green);
    opacity: 1;
}

.single-product .woocommerce-product-gallery .flex-control-thumbs img:focus-visible
{
    outline: 2px solid var(--geopaca-blue);
    outline-offset: 2px;
}

/* ==========================================================================
   Responsive boutique
   ========================================================================== */

/* Tablette */
@media only screen and (max-width: 980px)
{
    .geopaca-product-hero
    {
        min-height: 210px;
        padding: 44px 0 !important;
    }

    .geopaca-product-hero-title h1,
    .geopaca-product-hero-title h2,
    .geopaca-product-hero-title .product_title
    {
        font-size: 34px !important;
    }

    .geopaca-product-hero-subtitle,
    .geopaca-product-hero-subtitle p
    {
        font-size: 16px !important;
    }

    .geopaca-product-benefits
    {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        row-gap: 26px;
    }

    .geopaca-product-benefit:nth-child(2)
    {
        border-right: 0;
    }
}

/* Mobile */
@media only screen and (max-width: 600px)
{
    /* Hero produit */
    .geopaca-product-hero
    {
        min-height: 190px;
        padding: 38px 0 !important;
    }

    .geopaca-product-hero-row
    {
        min-height: 114px;
    }

    .geopaca-product-hero-title h1,
    .geopaca-product-hero-title h2,
    .geopaca-product-hero-title .product_title
    {
        font-size: 30px !important;
    }

    .geopaca-product-hero-subtitle,
    .geopaca-product-hero-subtitle p
    {
        font-size: 15px !important;
    }

    /* Configurateur */
    .geopaca-customer-type-options,
    .geopaca-dimensions-fields
    {
        grid-template-columns: 1fr;
    }

    .geopaca-surface-limits
    {
        flex-direction: column;
        gap: 3px;
    }

    .geopaca-config-info,
    .geopaca-surface-limits,
    .geopaca-quote-info,
    .geopaca-summary-reassurance-item > div > span
    {
        font-size: 13px;
    }

    /* Bandeau avantages */
    .geopaca-product-benefits
    {
        grid-template-columns: 1fr;
        row-gap: 0;
    }

    .geopaca-product-benefit
    {
        padding-top: 14px;
        padding-bottom: 14px;
        border-right: 0;
        border-bottom: 1px solid #e1e4e6;
    }

    .geopaca-product-benefit:last-child
    {
        border-bottom: 0;
    }

    /* Onglets produit : 1 onglet par ligne */
    .geopaca-product-tabs .et_pb_tabs_controls
    {
        display: block !important;
        padding: 0 !important;
    }

    .geopaca-product-tabs .et_pb_tabs_controls li
    {
        position: static !important;
        display: block !important;
        float: none !important;
        width: 100% !important;
        margin: 0 !important;
        border-bottom: 1px solid #e1e4e6 !important;
    }

    .geopaca-product-tabs .et_pb_tabs_controls li a
    {
        display: block !important;
        width: 100%;
        padding: 12px 14px !important;
        text-align: left;
    }

    .geopaca-product-tabs .et_pb_tabs_controls li.et_pb_tab_active
    {
        border-bottom: 1px solid #e1e4e6 !important;
        border-left: 3px solid var(--geopaca-blue) !important;
        background: #fff;
    }

    .geopaca-product-tabs .et_pb_tabs_controls li.et_pb_tab_active a
    {
        color: var(--geopaca-blue) !important;
    }

    .geopaca-product-tabs .et_pb_tab
    {
        padding: 18px 14px !important;
    }
}

/* Galerie sticky uniquement sur desktop */
@media only screen and (min-width: 981px)
{
    .geopaca-product-gallery-column
    {
        position: sticky;
        top: 110px;
        align-self: flex-start;
    }
}

/* ==========================================================================
   Panier GEOPACA
   ========================================================================== */

.geopaca-cart-page
{
    padding-top: 55px !important;
    padding-bottom: 65px !important;
}

.geopaca-cart-page .et_pb_row
{
    width: 90% !important;
    max-width: 1280px !important;
}

.geopaca-cart-title
{
    margin-bottom: 4px !important;
}

.geopaca-cart-title h1,
.geopaca-cart-title h2,
.geopaca-cart-title p
{
    margin: 0;
    padding: 0;
    color: var(--geopaca-text);
    font-size: 34px;
    font-weight: 700;
    line-height: 1.2;
}

.geopaca-cart-intro
{
    margin-bottom: 18px !important;
}

.geopaca-cart-intro p
{
    margin: 0;
    color: var(--geopaca-muted);
    font-size: 16px;
    line-height: 1.5;
}

.geopaca-cart-main
{
    margin-top: 0 !important;
    padding-top: 10px !important;
    align-items: flex-start;
}


/* Produits du panier */

.geopaca-cart-products
{
    overflow: hidden;
    border: 1px solid var(--geopaca-border);
    border-radius: 5px;
    background: #fff;
}

.geopaca-cart-products table.shop_table
{
    margin: 0 !important;
    border: 0 !important;
    border-collapse: collapse !important;
    background: #fff;
}

.geopaca-cart-products table.shop_table thead
{
    display: none;
}

.geopaca-cart-products table.shop_table td
{
    padding: 24px 12px !important;
    border-top: 0 !important;
    border-bottom: 1px solid #eceff1 !important;
    vertical-align: middle !important;
    color: var(--geopaca-text-secondary);
}

.geopaca-cart-products .product-thumbnail img
{
    width: 110px !important;
    max-width: 110px !important;
    border-radius: 3px;
}

.geopaca-cart-products .product-name a
{
    color: var(--geopaca-text) !important;
    font-size: 18px;
    font-weight: 700;
    line-height: 1.35;
}

.geopaca-cart-products .product-name a:hover
{
    color: var(--geopaca-green) !important;
}

.geopaca-cart-products .product-price,
.geopaca-cart-products .product-quantity,
.geopaca-cart-products td.actions
{
    display: none !important;
}

.geopaca-cart-products .product-subtotal
{
    width: 130px;
    padding-right: 24px !important;
    color: var(--geopaca-text) !important;
    font-size: 17px;
    font-weight: 700;
    text-align: right;
    white-space: nowrap;
}

.geopaca-cart-products .product-remove a
{
    color: #c83c3c !important;
    font-size: 20px !important;
}

.geopaca-cart-products .product-remove a:hover
{
    color: #a92727 !important;
    background: transparent !important;
}


/* Récapitulatif panier */

.geopaca-cart-totals
{
    padding: 24px;
    border: 1px solid var(--geopaca-border);
    border-radius: 5px;
    background: var(--geopaca-surface);
}

.geopaca-cart-totals h2
{
    margin: 0 0 18px !important;
    padding: 0 !important;
    color: var(--geopaca-text);
    font-size: 22px;
    font-weight: 700;
}

.geopaca-cart-totals table.shop_table
{
    margin: 0 0 20px !important;
    border: 0 !important;
    background: transparent;
}

.geopaca-cart-totals table.shop_table th,
.geopaca-cart-totals table.shop_table td
{
    padding: 10px 0 !important;
    border-top: 0 !important;
    border-bottom: 1px solid var(--geopaca-border) !important;
    background: transparent !important;
}

.geopaca-cart-totals table.shop_table th
{
    color: var(--geopaca-text-secondary);
    font-weight: 500;
}

.geopaca-cart-totals table.shop_table td
{
    color: var(--geopaca-text);
    text-align: right;
}

.geopaca-cart-totals .order-total th
{
    padding-top: 16px !important;
    color: var(--geopaca-text) !important;
    font-size: 18px;
    font-weight: 700 !important;
}

.geopaca-cart-totals .order-total td
{
    padding-top: 16px !important;
    color: var(--geopaca-green) !important;
    font-size: 21px;
    font-weight: 700 !important;
}

.geopaca-cart-totals .order-total .woocommerce-Price-amount
{
    color: var(--geopaca-green) !important;
}

.geopaca-cart-totals .wc-proceed-to-checkout
{
    padding: 0 !important;
}

.geopaca-cart-totals .checkout-button
{
    display: block !important;
    width: 100%;
    margin: 0 !important;
    padding: 15px 18px !important;
    border: 0 !important;
    border-radius: 4px !important;
    background: var(--geopaca-green) !important;
    color: #fff !important;
    font-size: 16px !important;
    font-weight: 700 !important;
    line-height: 1.2 !important;
    text-align: center;
}

.geopaca-cart-totals .checkout-button:hover
{
    padding: 15px 18px !important;
    background: var(--geopaca-green-hover) !important;
}

/* Divi peut injecter une icône de bouton via ::before ou ::after.
   On neutralise les deux pseudo-éléments avec une spécificité renforcée. */
body.woocommerce-cart .geopaca-cart-totals a.checkout-button.button::before,
body.woocommerce-cart .geopaca-cart-totals a.checkout-button.button::after,
body.woocommerce-cart .geopaca-cart-totals a.checkout-button.button:hover::before,
body.woocommerce-cart .geopaca-cart-totals a.checkout-button.button:hover::after,
body.woocommerce-cart .et_pb_wc_cart_totals .checkout-button::before,
body.woocommerce-cart .et_pb_wc_cart_totals .checkout-button::after,
body.woocommerce-cart .et_pb_wc_cart_totals .checkout-button:hover::before,
body.woocommerce-cart .et_pb_wc_cart_totals .checkout-button:hover::after
{
    display: none !important;
    content: "" !important;
    width: 0 !important;
    height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    opacity: 0 !important;
    position: static !important;
    transform: none !important;
    font-size: 0 !important;
}

/* Empêche aussi Divi de décaler le texte au survol. */
body.woocommerce-cart .geopaca-cart-totals a.checkout-button.button,
body.woocommerce-cart .geopaca-cart-totals a.checkout-button.button:hover
{
    padding: 15px 18px !important;
}


/* Réassurance panier */

.geopaca-cart-reassurance
{
    margin-top: 38px !important;
    padding: 22px 0;
    border: 1px solid var(--geopaca-border);
    border-radius: 5px;
    background: var(--geopaca-surface);
}

.geopaca-cart-reassurance .et_pb_column
{
    margin-bottom: 0 !important;
}

.geopaca-cart-reassurance-item
{
    height: 100%;
    padding: 0 28px;
}

.geopaca-cart-reassurance .et_pb_column:not(:last-child)
{
    border-right: 1px solid var(--geopaca-border);
}

.geopaca-cart-reassurance-item .et_pb_blurb_content
{
    display: grid;
    grid-template-columns: 42px minmax(0, 1fr);
    column-gap: 14px;
    align-items: center;
    max-width: none;
}

.geopaca-cart-reassurance-item .et_pb_main_blurb_image
{
    grid-column: 1;
    width: 42px;
    margin: 0 !important;
}

.geopaca-cart-reassurance-item .et_pb_image_wrap
{
    display: flex;
    align-items: center;
    justify-content: center;
    width: 42px;
    height: 42px;
}

.geopaca-cart-reassurance-item .et-pb-icon
{
    color: var(--geopaca-green) !important;
    font-size: 34px !important;
}

.geopaca-cart-reassurance-item .et_pb_blurb_container
{
    grid-column: 2;
    padding: 0 !important;
}

.geopaca-cart-reassurance-item .et_pb_module_header
{
    margin: 0;
    padding: 0 0 4px !important;
    color: var(--geopaca-text);
    font-size: 15px;
    font-weight: 700;
}

.geopaca-cart-reassurance-item .et_pb_blurb_description
{
    color: var(--geopaca-muted);
    font-size: 13px;
    line-height: 1.45;
}


/* Footer panier sur page courte */

body.woocommerce-cart #et-main-area
{
    display: flex !important;
    flex-direction: column !important;
    min-height: calc(100vh - 80px) !important;
    min-height: calc(100dvh - 80px) !important;
}

body.woocommerce-cart #main-content
{
    flex: 1 0 auto !important;
}

body.woocommerce-cart .et-l--footer
{
    flex: 0 0 auto;
    margin-top: auto !important;
}



/* ==========================================================================
   Panier GEOPACA - rapprochement de la maquette
   ========================================================================== */

/* En-tête panier : titre à gauche, retour aux achats à droite.
   Ajouter la classe geopaca-cart-header à la ligne Divi qui contient
   le titre / sous-titre et le module geopaca-cart-continue. */
.geopaca-cart-header
{
    display: grid !important;
    grid-template-columns: minmax(0, 68fr) minmax(0, 32fr);
    gap: 32px;
    align-items: end !important;
    margin-bottom: 8px !important;
    padding-bottom: 0 !important;
}

.geopaca-cart-header > .et_pb_column
{
    float: none !important;
    width: auto !important;
    margin: 0 !important;
}

.geopaca-cart-header > .et_pb_column:last-child
{
    display: flex !important;
    justify-content: flex-end !important;
    align-items: flex-end !important;
}

.geopaca-cart-continue
{
    width: 100% !important;
    margin: 0 0 4px !important;
    text-align: right !important;
}

.geopaca-cart-continue a
{
    display: inline-flex;
    align-items: center;
    gap: 7px;
    color: var(--geopaca-green) !important;
    font-size: 15px;
    font-weight: 600;
    line-height: 1.3;
    text-decoration: none;
}

.geopaca-cart-continue a:hover
{
    color: var(--geopaca-green-hover) !important;
}

/* Proportions desktop proches de la maquette.
   La grille garantit que le bloc principal utilise exactement
   la même largeur que le bandeau de réassurance situé dessous. */
@media only screen and (min-width: 981px)
{
    .geopaca-cart-main
    {
        display: grid !important;
        grid-template-columns: minmax(0, 68fr) minmax(0, 32fr);
        gap: 32px;
        width: 90% !important;
        max-width: 1280px !important;
        padding-top: 10px !important;
    }

    .geopaca-cart-main > .et_pb_column
    {
        float: none !important;
        width: auto !important;
        margin: 0 !important;
    }

    .geopaca-cart-products,
    .geopaca-cart-totals,
    .geopaca-cart-payment-note
    {
        width: 100% !important;
        box-sizing: border-box !important;
    }
}

/* Carte produit : rendu un peu plus dense et plus proche de la maquette. */
.geopaca-cart-products
{
    border-radius: 6px;
}

.geopaca-cart-products table.shop_table td
{
    padding-top: 22px !important;
    padding-bottom: 22px !important;
}

.geopaca-cart-products .product-thumbnail
{
    width: 138px;
    padding-left: 22px !important;
}

.geopaca-cart-products .product-thumbnail img
{
    width: 118px !important;
    max-width: 118px !important;
}

.geopaca-cart-products .product-name
{
    padding-left: 18px !important;
}

.geopaca-cart-products .product-subtotal
{
    padding-right: 22px !important;
}

/* Récapitulatif : on masque l'adresse et le calculateur d'expédition.
   Le choix / coût de la méthode reste visible. */
.geopaca-cart-totals .woocommerce-shipping-destination,
.geopaca-cart-totals .shipping-calculator-button,
.geopaca-cart-totals .shipping-calculator-form
{
    display: none !important;
}

.geopaca-cart-totals ul#shipping_method
{
    margin: 0 !important;
    padding: 0 !important;
    list-style: none !important;
}

.geopaca-cart-totals ul#shipping_method li
{
    margin: 0 !important;
    padding: 0 !important;
    line-height: 1.35 !important;
}

.geopaca-cart-totals ul#shipping_method input
{
    display: none !important;
}

.geopaca-cart-totals ul#shipping_method label
{
    margin: 0 !important;
    color: var(--geopaca-text) !important;
    font-size: 14px !important;
    font-weight: 600 !important;
}

.geopaca-cart-totals
{
    margin-bottom: 0 !important;
    padding: 26px 28px 22px;
    border-color: #dfeae3;
    border-radius: 6px 6px 0 0;
    background: rgba(0, 172, 52, .045) !important;
}

.geopaca-cart-totals table.shop_table
{
    margin-bottom: 22px !important;
}

.geopaca-cart-totals .checkout-button
{
    min-height: 52px;
    display: flex !important;
    align-items: center;
    justify-content: center;
}

/* Petit bloc de réassurance à ajouter sous le module Totaux du panier
   dans la même colonne, avec la classe geopaca-cart-payment-note. */
.geopaca-cart-payment-note
{
    margin-top: -1px !important;
    padding: 0 28px 22px !important;
    border: 1px solid #dfeae3;
    border-top: 0;
    border-radius: 0 0 6px 6px;
    background: rgba(0, 172, 52, .045) !important;
    text-align: center;
    box-sizing: border-box;
}

.geopaca-cart-payment-note p
{
    margin: 0 !important;
    padding: 0 !important;
    color: var(--geopaca-muted);
    font-size: 13px;
    line-height: 1.45;
}

/* Légère respiration entre le bloc principal et la réassurance. */
.geopaca-cart-reassurance
{
    margin-top: 34px !important;
}

/* ==========================================================================
   Responsive panier
   ========================================================================== */

@media only screen and (max-width: 980px)
{
    .geopaca-cart-page
    {
        padding-top: 40px !important;
    }

    .geopaca-cart-page .et_pb_row
    {
        width: 90% !important;
        max-width: none !important;
    }

    .geopaca-cart-header
    {
        display: block !important;
        margin-bottom: 22px !important;
    }

    .geopaca-cart-header > .et_pb_column:last-child
    {
        display: block !important;
    }

    .geopaca-cart-continue
    {
        margin-top: 10px !important;
        margin-bottom: 0 !important;
        text-align: left;
    }

    .geopaca-cart-title h1,
    .geopaca-cart-title h2,
    .geopaca-cart-title p
    {
        font-size: 30px;
    }

    .geopaca-cart-main
    {
        display: block !important;
        margin-top: 0 !important;
    }

    .geopaca-cart-main > .et_pb_column
    {
        float: none !important;
        width: 100% !important;
        margin-right: 0 !important;
    }

    .geopaca-cart-main > .et_pb_column:first-child
    {
        margin-bottom: 28px !important;
    }

    .geopaca-cart-totals
    {
        margin-top: 0 !important;
    }

    .geopaca-cart-reassurance
    {
        margin-top: 30px !important;
    }

    .geopaca-cart-reassurance-item
    {
        padding: 18px 22px;
    }
}

@media only screen and (max-width: 768px)
{
    .geopaca-cart-page
    {
        padding-top: 28px !important;
        padding-bottom: 36px !important;
    }

    .geopaca-cart-title h1,
    .geopaca-cart-title h2,
    .geopaca-cart-title p
    {
        font-size: 28px !important;
    }

    .geopaca-cart-intro
    {
        margin-bottom: 22px !important;
    }

    .geopaca-cart-intro p
    {
        font-size: 14px;
    }

    body.woocommerce-cart .geopaca-cart-products table.shop_table,
    body.woocommerce-cart .geopaca-cart-products table.shop_table tbody
    {
        display: block !important;
        width: 100% !important;
    }

    body.woocommerce-cart .geopaca-cart-products table.shop_table tr.cart_item,
    body.woocommerce-cart .geopaca-cart-products table.shop_table tr.woocommerce-cart-form__cart-item
    {
        display: grid !important;
        width: 100% !important;
        grid-template-columns: 96px minmax(0, 1fr) auto !important;
        grid-template-areas:
            "thumb name remove"
            "thumb subtotal subtotal" !important;
        gap: 8px 14px !important;
        align-items: center !important;
        padding: 18px !important;
        box-sizing: border-box !important;
    }

    body.woocommerce-cart .geopaca-cart-products table.shop_table tr.cart_item > td,
    body.woocommerce-cart .geopaca-cart-products table.shop_table tr.woocommerce-cart-form__cart-item > td
    {
        float: none !important;
        width: auto !important;
        min-height: 0 !important;
        padding: 0 !important;
        border: 0 !important;
        text-align: left !important;
    }

    body.woocommerce-cart .geopaca-cart-products table.shop_table tr.cart_item > td::before,
    body.woocommerce-cart .geopaca-cart-products table.shop_table tr.woocommerce-cart-form__cart-item > td::before
    {
        display: none !important;
        content: none !important;
    }

    body.woocommerce-cart .geopaca-cart-products td.product-thumbnail
    {
        display: block !important;
        grid-area: thumb !important;
    }

    body.woocommerce-cart .geopaca-cart-products td.product-thumbnail
    {
        width: auto !important;
        padding-left: 0 !important;
    }

    body.woocommerce-cart .geopaca-cart-products td.product-thumbnail img
    {
        display: block !important;
        width: 96px !important;
        max-width: 96px !important;
        height: auto !important;
        margin: 0 !important;
    }

    body.woocommerce-cart .geopaca-cart-products td.product-name
    {
        padding-left: 0 !important;
    }

    body.woocommerce-cart .geopaca-cart-products td.product-name
    {
        display: block !important;
        grid-area: name !important;
    }

    body.woocommerce-cart .geopaca-cart-products td.product-name a
    {
        font-size: 16px !important;
        line-height: 1.35 !important;
    }

    body.woocommerce-cart .geopaca-cart-products td.product-subtotal
    {
        display: block !important;
        grid-area: subtotal !important;
        width: auto !important;
        padding-right: 0 !important;
        color: var(--geopaca-text) !important;
        font-size: 16px !important;
        font-weight: 700 !important;
        text-align: left !important;
        white-space: nowrap !important;
    }

    body.woocommerce-cart .geopaca-cart-products td.product-remove
    {
        display: block !important;
        grid-area: remove !important;
        align-self: start !important;
        justify-self: end !important;
    }

    body.woocommerce-cart .geopaca-cart-products td.product-price,
    body.woocommerce-cart .geopaca-cart-products td.product-quantity,
    body.woocommerce-cart .geopaca-cart-products .product-price,
    body.woocommerce-cart .geopaca-cart-products .product-quantity
    {
        display: none !important;
    }

    .geopaca-cart-payment-note
    {
        padding: 0 20px 18px !important;
    }

    .geopaca-cart-reassurance
    {
        display: block !important;
        padding: 0 !important;
    }

    .geopaca-cart-reassurance > .et_pb_column
    {
        float: none !important;
        width: 100% !important;
        margin: 0 !important;
        border-right: 0 !important;
    }

    .geopaca-cart-reassurance > .et_pb_column:not(:last-child)
    {
        border-bottom: 1px solid var(--geopaca-border) !important;
    }

    .geopaca-cart-reassurance-item
    {
        padding: 18px 20px !important;
    }
}

@media only screen and (max-width: 479px)
{
    .geopaca-cart-title h1,
    .geopaca-cart-title h2,
    .geopaca-cart-title p
    {
        font-size: 26px !important;
    }

    body.woocommerce-cart .geopaca-cart-products table.shop_table tr.cart_item,
    body.woocommerce-cart .geopaca-cart-products table.shop_table tr.woocommerce-cart-form__cart-item
    {
        grid-template-columns: 82px minmax(0, 1fr) auto !important;
        gap: 8px 11px !important;
        padding: 15px !important;
    }

    body.woocommerce-cart .geopaca-cart-products td.product-thumbnail img
    {
        width: 82px !important;
        max-width: 82px !important;
    }

    body.woocommerce-cart .geopaca-cart-products td.product-name a
    {
        font-size: 15px !important;
    }

    body.woocommerce-cart .geopaca-cart-totals
    {
        padding: 18px !important;
    }

    body.woocommerce-cart .geopaca-cart-totals h2
    {
        font-size: 20px !important;
    }
}

/* ==========================================================================
   Checkout GEOPACA
   ========================================================================== */

/* Page */
.geopaca-checkout-page
{
    padding-top: 55px !important;
    padding-bottom: 65px !important;
}

/* Titre */
.geopaca-checkout-title
{
    margin-bottom: 4px !important;
}

.geopaca-checkout-title h1,
.geopaca-checkout-title h2,
.geopaca-checkout-title p
{
    margin: 0;
    padding: 0;
    color: var(--geopaca-text);
    font-size: 34px;
    font-weight: 700;
    line-height: 1.2;
}

.geopaca-checkout-intro
{
    margin-bottom: 30px !important;
}

.geopaca-checkout-intro p
{
    margin: 0;
    color: var(--geopaca-muted);
    font-size: 16px;
    line-height: 1.5;
}

/* Ligne principale */
.geopaca-checkout-main
{
    margin-top: 0 !important;
    padding-top: 10px !important;
    align-items: flex-start;
}

/* Cartes */
.geopaca-checkout-billing,
.geopaca-checkout-shipping,
.geopaca-checkout-information,
.geopaca-checkout-payment,
.geopaca-checkout-review
{
    margin-bottom: 20px !important;
    padding: 24px !important;
    border: 1px solid var(--geopaca-border);
    border-radius: 5px;
    background: #fff;
    box-sizing: border-box;
}

.geopaca-checkout-review
{
    background: var(--geopaca-surface);
}

/* Titres des blocs */
.geopaca-checkout-billing h3,
.geopaca-checkout-shipping h3,
.geopaca-checkout-information h3,
.geopaca-checkout-payment h3,
.geopaca-checkout-review h3,
.geopaca-checkout-review h2,
.geopaca-checkout-payment .et_pb_module_header,
.geopaca-checkout-payment .et_pb_module_inner > h2,
.geopaca-checkout-payment .et_pb_module_inner > h3
{
    margin: 0 0 20px !important;
    padding: 0 !important;
    color: var(--geopaca-text) !important;
    font-size: 22px !important;
    font-weight: 700 !important;
    line-height: 1.25 !important;
}


/* ==========================================================================
   Facturation / livraison
   ========================================================================== */

.geopaca-checkout-billing .woocommerce-billing-fields__field-wrapper,
.geopaca-checkout-shipping .woocommerce-shipping-fields__field-wrapper
{
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px 18px;
}

.geopaca-checkout-billing .woocommerce-billing-fields__field-wrapper .form-row,
.geopaca-checkout-shipping .woocommerce-shipping-fields__field-wrapper .form-row
{
    float: none !important;
    width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
}

.geopaca-checkout-billing #billing_company_field,
.geopaca-checkout-billing #billing_country_field,
.geopaca-checkout-billing #billing_address_1_field,
.geopaca-checkout-billing #billing_address_2_field,
.geopaca-checkout-shipping #shipping_company_field,
.geopaca-checkout-shipping #shipping_country_field,
.geopaca-checkout-shipping #shipping_address_1_field,
.geopaca-checkout-shipping #shipping_address_2_field
{
    grid-column: 1 / -1;
}

/* Labels */
.geopaca-checkout-billing label,
.geopaca-checkout-shipping label,
.geopaca-checkout-information label
{
    display: block;
    margin-bottom: 7px;
    color: var(--geopaca-text-secondary);
    font-size: 14px;
    font-weight: 600;
    line-height: 1.35;
}

.geopaca-checkout-page .required
{
    color: #c83c3c !important;
    text-decoration: none !important;
}

/* Inputs / selects / textarea */
.geopaca-checkout-billing input.input-text,
.geopaca-checkout-billing select,
.geopaca-checkout-shipping input.input-text,
.geopaca-checkout-shipping select,
.geopaca-checkout-information textarea,
.geopaca-checkout-page .select2-container .select2-selection--single
{
    width: 100% !important;
    min-height: 48px;
    padding: 0 12px !important;
    border: 1px solid var(--geopaca-border) !important;
    border-radius: 4px !important;
    background: #fff !important;
    color: var(--geopaca-text) !important;
    box-shadow: none !important;
    font-size: 15px !important;
    box-sizing: border-box !important;
}

.geopaca-checkout-information textarea
{
    min-height: 110px;
    padding: 12px !important;
    line-height: 1.5;
    resize: vertical;
}

/* Select2 WooCommerce */
.geopaca-checkout-page .select2-container .select2-selection--single
{
    display: flex !important;
    align-items: center;
}

.geopaca-checkout-page .select2-container--default .select2-selection--single .select2-selection__rendered
{
    padding-left: 0 !important;
    color: var(--geopaca-text) !important;
    line-height: 46px !important;
}

.geopaca-checkout-page .select2-container--default .select2-selection--single .select2-selection__arrow
{
    top: 10px !important;
    right: 8px !important;
}

/* Focus */
.geopaca-checkout-billing input.input-text:focus,
.geopaca-checkout-shipping input.input-text:focus,
.geopaca-checkout-information textarea:focus,
.geopaca-checkout-page .select2-container--focus .select2-selection--single
{
    outline: none !important;
    border-color: var(--geopaca-blue) !important;
    box-shadow: 0 0 0 2px rgba(0, 150, 191, .10) !important;
}


/* ==========================================================================
   Adresse de livraison différente
   ========================================================================== */

/* Compacte tant que la case n'est pas cochée */
.geopaca-checkout-shipping
{
    padding: 18px 24px !important;
}

.geopaca-checkout-shipping #ship-to-different-address
{
    display: block !important;
    margin: 0 !important;
    padding: 0 !important;
}

.geopaca-checkout-shipping #ship-to-different-address label
{
    display: flex !important;
    align-items: center !important;
    gap: 10px !important;
    margin: 0 !important;
    padding: 0 !important;
    color: var(--geopaca-text) !important;
    font-size: 16px !important;
    font-weight: 600 !important;
    line-height: 1.35 !important;
    cursor: pointer;
}

.geopaca-checkout-shipping #ship-to-different-address-checkbox
{
    position: static !important;
    float: none !important;
    display: block !important;
    flex: 0 0 18px;
    width: 18px !important;
    height: 18px !important;
    margin: 0 !important;
    padding: 0 !important;
    transform: none !important;
    accent-color: var(--geopaca-green);
    cursor: pointer;
}

.geopaca-checkout-shipping #ship-to-different-address label span
{
    display: block !important;
    margin: 0 !important;
    padding: 0 !important;
    color: var(--geopaca-text) !important;
    line-height: 1.35 !important;
}

.geopaca-checkout-shipping .shipping_address
{
    margin-top: 20px !important;
}

.geopaca-checkout-shipping .shipping_address h3
{
    margin: 0 0 18px !important;
    padding: 0 !important;
    color: var(--geopaca-text) !important;
    font-size: 20px !important;
    font-weight: 700 !important;
}

.geopaca-checkout-shipping:has(#ship-to-different-address-checkbox:checked)
{
    padding-top: 22px !important;
    padding-bottom: 24px !important;
}


/* ==========================================================================
   Informations complémentaires
   ========================================================================== */

.geopaca-checkout-information
{
    padding: 20px 24px !important;
}

.geopaca-checkout-information h3
{
    margin-bottom: 14px !important;
    font-size: 19px !important;
}

.geopaca-checkout-information .woocommerce-additional-fields
{
    margin: 0 !important;
}

.geopaca-checkout-information .woocommerce-additional-fields__field-wrapper .form-row
{
    margin: 0 !important;
    padding: 0 !important;
}

.geopaca-checkout-information textarea
{
    min-height: 90px !important;
}


/* ==========================================================================
   Récapitulatif de la commande
   ========================================================================== */

.geopaca-checkout-review
{
    padding: 24px !important;
    border: 1px solid #dfeae3 !important;
    background: rgba(0, 172, 52, .045) !important;
}

.geopaca-checkout-review h3,
.geopaca-checkout-review h2
{
    margin-bottom: 16px !important;
    font-size: 21px !important;
}

.geopaca-checkout-review table.shop_table
{
    width: 100%;
    margin: 0 !important;
    border: 0 !important;
    border-collapse: collapse !important;
    background: transparent !important;
}

.geopaca-checkout-review table.shop_table th,
.geopaca-checkout-review table.shop_table td
{
    padding: 11px 0 !important;
    border-top: 0 !important;
    border-bottom: 1px solid var(--geopaca-border) !important;
    background: transparent !important;
}

.geopaca-checkout-review table.shop_table thead th
{
    color: var(--geopaca-text-secondary);
    font-size: 13px;
    font-weight: 600;
}

.geopaca-checkout-review table.shop_table td
{
    color: var(--geopaca-text-secondary);
}

.geopaca-checkout-review table.shop_table th:last-child,
.geopaca-checkout-review table.shop_table td:last-child
{
    text-align: right;
}

.geopaca-checkout-review .product-name
{
    color: var(--geopaca-text) !important;
    font-weight: 600;
}

.geopaca-checkout-review .cart-subtotal th,
.geopaca-checkout-review .tax-total th,
.geopaca-checkout-review .shipping th
{
    font-weight: 500 !important;
}

.geopaca-checkout-review .order-total th
{
    padding-top: 16px !important;
    color: var(--geopaca-text) !important;
    font-size: 18px;
    font-weight: 700 !important;
}

.geopaca-checkout-review .order-total td
{
    padding-top: 16px !important;
    color: var(--geopaca-green) !important;
    font-size: 21px;
    font-weight: 700 !important;
}

.geopaca-checkout-review .order-total .woocommerce-Price-amount
{
    color: var(--geopaca-green) !important;
}


/* ==========================================================================
   Paiement
   ========================================================================== */

.geopaca-checkout-payment
{
    padding: 24px !important;
    border: 1px solid var(--geopaca-border) !important;
    background: #fff !important;
}

.geopaca-checkout-payment .et_pb_module_inner,
.geopaca-checkout-payment .woocommerce-checkout-payment,
.geopaca-checkout-payment #payment
{
    background: transparent !important;
}

.geopaca-checkout-payment #payment
{
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
}

.geopaca-checkout-payment #payment ul.payment_methods
{
    margin: 0 !important;
    padding: 0 0 18px !important;
    border: 0 !important;
    border-bottom: 1px solid var(--geopaca-border) !important;
    background: transparent !important;
}

.geopaca-checkout-payment #payment ul.payment_methods > li
{
    margin: 0 !important;
    padding: 0 !important;
    background: transparent !important;
}

.geopaca-checkout-payment #payment ul.payment_methods > li > label
{
    display: block !important;
    margin: 0 0 20px !important;
    padding: 0 !important;
    color: var(--geopaca-text) !important;
    font-size: 22px !important;
    font-weight: 700 !important;
    line-height: 1.25 !important;
}

/* Sous-bloc Stripe */
.geopaca-checkout-payment .payment_box,
.geopaca-checkout-payment .payment_box.payment_method_stripe
{
    margin: 14px 0 0 !important;
    padding: 18px !important;
    border: 1px solid var(--geopaca-border) !important;
    border-radius: 4px !important;
    background: var(--geopaca-surface) !important;
    color: var(--geopaca-text-secondary) !important;
    box-shadow: none !important;
}

.geopaca-checkout-payment .payment_box::before
{
    display: none !important;
}

.geopaca-checkout-payment .wc-stripe-elements-field,
.geopaca-checkout-payment .stripe-card-group,
.geopaca-checkout-payment .StripeElement
{
    border-color: var(--geopaca-border) !important;
    border-radius: 4px !important;
    background: #fff !important;
    box-shadow: none !important;
}

/* Conditions / confidentialité */
.geopaca-checkout-payment .woocommerce-terms-and-conditions-wrapper
{
    margin-bottom: 16px;
    color: var(--geopaca-muted);
    font-size: 13px;
    line-height: 1.5;
}

.geopaca-checkout-payment .woocommerce-terms-and-conditions-wrapper a
{
    color: var(--geopaca-green) !important;
    text-decoration: underline;
}

/* Zone place order */
.geopaca-checkout-payment #payment .place-order
{
    margin: 0 !important;
    padding: 20px 0 0 !important;
    background: transparent !important;
}

/* Bouton final */
.geopaca-checkout-payment #place_order,
.geopaca-checkout-payment button#place_order,
.geopaca-checkout-payment .button.alt
{
    display: block !important;
    float: none !important;
    width: 100% !important;
    margin: 0 !important;
    padding: 15px 18px !important;
    border: 0 !important;
    border-radius: 4px !important;
    background: var(--geopaca-green) !important;
    color: #fff !important;
    font-size: 16px !important;
    font-weight: 700 !important;
    line-height: 1.2 !important;
    text-align: center !important;
    box-shadow: none !important;
}

.geopaca-checkout-payment #place_order::after,
.geopaca-checkout-payment .button.alt::after
{
    display: none !important;
    content: none !important;
}

.geopaca-checkout-payment #place_order:hover,
.geopaca-checkout-payment button#place_order:hover,
.geopaca-checkout-payment .button.alt:hover
{
    padding: 15px 18px !important;
    background: var(--geopaca-green-hover) !important;
    color: #fff !important;
}


/* ==========================================================================
   Réassurance checkout
   ========================================================================== */

.geopaca-checkout-reassurance
{
    margin-top: 18px !important;
    padding: 22px 0;
    border: 1px solid var(--geopaca-border);
    border-radius: 5px;
    background: var(--geopaca-surface);
}

.geopaca-checkout-reassurance .et_pb_column
{
    margin-bottom: 0 !important;
}

.geopaca-checkout-reassurance .geopaca-cart-reassurance-item
{
    height: 100%;
    padding: 0 28px;
}

.geopaca-checkout-reassurance .et_pb_column:not(:last-child)
{
    border-right: 1px solid var(--geopaca-border);
}


/* ==========================================================================
   Checkout - divers
   ========================================================================== */

/* Tunnel de commande : header simplifié.
   On conserve le logo GEOPACA, mais on masque la navigation principale,
   le bouton Commander, le panier et le hamburger mobile pendant le checkout. */
body.woocommerce-checkout #et-top-navigation,
body.woocommerce-checkout #top-menu-nav,
body.woocommerce-checkout .et-cart-info,
body.woocommerce-checkout .mobile_menu_bar
{
    display: none !important;
}

/* Lien volontaire de retour vers le panier.
   À ajouter dans la ligne de titre du checkout avec la classe
   geopaca-checkout-back. */
.geopaca-checkout-back
{
    margin: 0 0 4px !important;
    text-align: right;
}

.geopaca-checkout-back a
{
    display: inline-flex;
    align-items: center;
    gap: 7px;
    color: var(--geopaca-green) !important;
    font-size: 15px;
    font-weight: 600;
    line-height: 1.3;
    text-decoration: none;
}

.geopaca-checkout-back a:hover
{
    color: var(--geopaca-green-hover) !important;
}

/* Ligne d'en-tête du checkout : titre à gauche, retour panier à droite. */
.geopaca-checkout-header
{
    display: grid !important;
    grid-template-columns: minmax(0, 68fr) minmax(0, 32fr);
    gap: 32px;
    align-items: end !important;
    margin-bottom: 8px !important;
    padding-bottom: 0 !important;
}

.geopaca-checkout-header > .et_pb_column
{
    float: none !important;
    width: auto !important;
    margin: 0 !important;
}

.geopaca-checkout-header > .et_pb_column:last-child
{
    display: flex !important;
    align-items: flex-end !important;
    justify-content: flex-end !important;
}


/* ==========================================================================
   Checkout - récapitulatif sticky sur desktop
   ========================================================================== */

@media only screen and (min-width: 981px)
{
    .geopaca-checkout-main
    {
        display: flex !important;
        align-items: stretch !important;
        padding-top: 10px !important;
    }

    .geopaca-checkout-main > .et_pb_column
    {
        position: relative;
    }

    .geopaca-checkout-review
    {
        position: sticky !important;
        top: 110px;
        align-self: flex-start;
        z-index: 2;
    }
}


/* ==========================================================================
   Commande reçue / confirmation
   ========================================================================== */

/* L'en-tête statique du checkout et le retour panier n'ont plus de sens
   après validation du paiement. */
body.woocommerce-order-received .geopaca-checkout-header,
body.woocommerce-order-received .geopaca-checkout-back
{
    display: none !important;
}

/* La page de confirmation n'a plus besoin de la structure 2 colonnes. */
body.woocommerce-order-received .geopaca-checkout-main
{
    display: block !important;
    width: 90% !important;
    max-width: 960px !important;
    margin: 0 auto !important;
    padding-top: 30px !important;
}

body.woocommerce-order-received .geopaca-checkout-main > .et_pb_column
{
    float: none !important;
    width: 100% !important;
    margin: 0 !important;
}

body.woocommerce-order-received .geopaca-checkout-main > .et_pb_column:last-child
{
    display: none !important;
}

/* Carte générale de confirmation */
body.woocommerce-order-received .woocommerce-order
{
    padding: 30px !important;
    border: 1px solid var(--geopaca-border);
    border-radius: 6px;
    background: #fff;
    box-sizing: border-box;
}

/* En-tête succès injecté via functions.php */
.geopaca-order-success-header
{
    display: flex;
    align-items: flex-start;
    gap: 16px;
    margin-bottom: 22px;
    padding: 20px 22px;
    border: 1px solid #dfeae3;
    border-radius: 6px;
    background: rgba(0, 172, 52, .055);
}

.geopaca-order-success-icon
{
    display: flex;
    flex: 0 0 42px;
    align-items: center;
    justify-content: center;
    width: 42px;
    height: 42px;
    border-radius: 50%;
    background: var(--geopaca-green);
    color: #fff;
    font-size: 23px;
    font-weight: 700;
    line-height: 1;
}

.geopaca-order-success-header h1
{
    margin: 0 !important;
    padding: 0 !important;
    color: var(--geopaca-text);
    font-size: 28px !important;
    font-weight: 700 !important;
    line-height: 1.2 !important;
}

.geopaca-order-success-header p
{
    margin: 6px 0 0 !important;
    padding: 0 !important;
    color: var(--geopaca-muted);
    font-size: 15px;
    line-height: 1.5;
}

/* Message e-mail de confirmation WooCommerce */
body.woocommerce-order-received .woocommerce-thankyou-order-received
{
    margin: 0 0 22px !important;
    padding: 0 !important;
    color: var(--geopaca-muted);
    font-size: 14px;
    line-height: 1.5;
}

/* Résumé commande : n° / date / e-mail / total / paiement */
body.woocommerce-order-received .woocommerce-order-overview
{
    display: grid !important;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 0;
    margin: 0 0 36px !important;
    padding: 22px 0 0 !important;
    border-top: 1px solid var(--geopaca-border);
    border-bottom: 1px solid var(--geopaca-border);
    background: #fff;
    list-style: none !important;
}

body.woocommerce-order-received .woocommerce-order-overview li
{
    float: none !important;
    width: auto !important;
    margin: 0 !important;
    padding: 0 18px !important;
    border-right: 0 !important;
    color: var(--geopaca-muted);
    font-size: 11px !important;
    line-height: 1.45;
    text-transform: uppercase;
    box-sizing: border-box !important;
}

body.woocommerce-order-received .woocommerce-order-overview__order,
body.woocommerce-order-received .woocommerce-order-overview__date,
body.woocommerce-order-received .woocommerce-order-overview__email
{
    border-right: 1px solid var(--geopaca-border) !important;
}

body.woocommerce-order-received .woocommerce-order-overview__order
{
    padding-left: 0 !important;
}

body.woocommerce-order-received .woocommerce-order-overview__total
{
    padding-right: 0 !important;
}

body.woocommerce-order-received .woocommerce-order-overview li strong
{
    display: block;
    margin-top: 7px;
    color: var(--geopaca-text);
    font-size: 14px !important;
    font-weight: 700;
    line-height: 1.35;
    text-transform: none;
}


body.woocommerce-order-received .woocommerce-order-overview__order,
body.woocommerce-order-received .woocommerce-order-overview__date,
body.woocommerce-order-received .woocommerce-order-overview__email,
body.woocommerce-order-received .woocommerce-order-overview__total
{
    min-height: 58px;
    padding-top: 2px !important;
    padding-bottom: 12px !important;
}


/* Placement explicite des informations de commande.
   Cela évite que les styles WooCommerce/Divi perturbent l'ordre dans la grille. */
body.woocommerce-order-received .woocommerce-order-overview__order
{
    grid-column: 1;
    grid-row: 1;
}

body.woocommerce-order-received .woocommerce-order-overview__date
{
    grid-column: 2;
    grid-row: 1;
}

body.woocommerce-order-received .woocommerce-order-overview__email
{
    grid-column: 3;
    grid-row: 1;
}

body.woocommerce-order-received .woocommerce-order-overview__total
{
    grid-column: 4;
    grid-row: 1;
}

body.woocommerce-order-received .woocommerce-order-overview__payment-method
{
    grid-column: 1 / -1;
    grid-row: 2;
    display: grid !important;
    grid-template-columns: 190px minmax(0, 1fr);
    align-items: center !important;
    column-gap: 22px;
    min-height: 58px;
    margin-top: 12px !important;
    padding: 14px 20px !important;
    border-top: 1px solid var(--geopaca-border) !important;
    border-right: 0 !important;
    background: var(--geopaca-surface);
    line-height: 1.4 !important;
    text-transform: uppercase;
    box-sizing: border-box !important;
}

body.woocommerce-order-received .woocommerce-order-overview__payment-method strong
{
    display: block !important;
    margin: 0 !important;
    color: var(--geopaca-text);
    font-size: 15px !important;
    font-weight: 700;
    line-height: 1.4 !important;
    text-transform: none;
}

/* Détails de commande */
body.woocommerce-order-received .woocommerce-order-details
{
    margin-top: 8px !important;
    margin-bottom: 28px !important;
}

body.woocommerce-order-received .woocommerce-order-details__title,
body.woocommerce-order-received .woocommerce-customer-details h2
{
    margin: 0 0 14px !important;
    padding: 0 !important;
    color: var(--geopaca-text);
    font-size: 22px !important;
    font-weight: 700 !important;
    line-height: 1.25;
}

body.woocommerce-order-received .woocommerce-order-details table.shop_table
{
    margin: 0 !important;
    border: 1px solid var(--geopaca-border) !important;
    border-collapse: collapse !important;
    border-radius: 5px;
    background: #fff;
}

body.woocommerce-order-received .woocommerce-order-details table.shop_table th,
body.woocommerce-order-received .woocommerce-order-details table.shop_table td
{
    padding: 12px 14px !important;
    border-color: var(--geopaca-border) !important;
}

body.woocommerce-order-received .woocommerce-order-details table.shop_table tfoot tr:last-child th,
body.woocommerce-order-received .woocommerce-order-details table.shop_table tfoot tr:last-child td
{
    color: var(--geopaca-green) !important;
    font-size: 17px;
    font-weight: 700;
}

/* Adresses */
body.woocommerce-order-received .woocommerce-customer-details
{
    margin-bottom: 0 !important;
}

body.woocommerce-order-received .woocommerce-customer-details .woocommerce-columns,
body.woocommerce-order-received .woocommerce-customer-details .woocommerce-columns--addresses
{
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 22px !important;
    width: 100% !important;
    margin: 0 !important;
}

body.woocommerce-order-received .woocommerce-customer-details .woocommerce-column,
body.woocommerce-order-received .woocommerce-customer-details .woocommerce-column--billing-address,
body.woocommerce-order-received .woocommerce-customer-details .woocommerce-column--shipping-address
{
    float: none !important;
    clear: none !important;
    display: block !important;
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 0 !important;
    box-sizing: border-box !important;
}

body.woocommerce-order-received .woocommerce-customer-details .woocommerce-column--billing-address
{
    grid-column: 1 !important;
}

body.woocommerce-order-received .woocommerce-customer-details .woocommerce-column--shipping-address
{
    grid-column: 2 !important;
}

body.woocommerce-order-received .woocommerce-customer-details .woocommerce-column h2
{
    margin: 0 0 14px !important;
}

body.woocommerce-order-received .woocommerce-customer-details address
{
    min-height: 140px;
    margin: 0 !important;
    padding: 18px !important;
    border: 1px solid var(--geopaca-border) !important;
    border-radius: 5px;
    background: var(--geopaca-surface);
    color: var(--geopaca-text-secondary);
    font-style: normal;
    line-height: 1.65;
    box-sizing: border-box;
}

@media only screen and (max-width: 980px)
{
    body.woocommerce-order-received .geopaca-checkout-main
    {
        width: 90% !important;
        padding-top: 22px !important;
    }

    body.woocommerce-order-received .woocommerce-order-overview
    {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        row-gap: 18px;
    }

    body.woocommerce-order-received .woocommerce-order-overview li
    {
        padding: 0 14px !important;
    }

    body.woocommerce-order-received .woocommerce-order-overview li:nth-child(2n)
    {
        border-right: 0 !important;
    }

    body.woocommerce-order-received .woocommerce-order-overview__order,
    body.woocommerce-order-received .woocommerce-order-overview__date,
    body.woocommerce-order-received .woocommerce-order-overview__email,
    body.woocommerce-order-received .woocommerce-order-overview__total
    {
        grid-column: auto;
        grid-row: auto;
    }

    body.woocommerce-order-received .woocommerce-order-overview__payment-method
    {
        grid-column: 1 / -1;
        grid-row: auto;
        grid-template-columns: 170px minmax(0, 1fr);
        min-height: 56px;
        padding: 14px 16px !important;
    }
}

@media only screen and (max-width: 600px)
{
    body.woocommerce-order-received .woocommerce-order
    {
        padding: 20px !important;
    }

    .geopaca-order-success-header
    {
        padding: 18px;
    }

    .geopaca-order-success-header h1
    {
        font-size: 24px !important;
    }

    body.woocommerce-order-received .woocommerce-order-overview
    {
        grid-template-columns: 1fr;
        gap: 14px;
    }

    body.woocommerce-order-received .woocommerce-order-overview li,
    body.woocommerce-order-received .woocommerce-order-overview li:first-child,
    body.woocommerce-order-received .woocommerce-order-overview li:last-child
    {
        padding: 0 0 14px !important;
        border-right: 0 !important;
        border-bottom: 1px solid var(--geopaca-border);
    }

    body.woocommerce-order-received .woocommerce-order-overview li:last-child
    {
        padding-bottom: 0 !important;
        border-bottom: 0;
    }


    body.woocommerce-order-received .woocommerce-order-overview__payment-method
    {
        display: block !important;
        min-height: 0;
        padding: 14px 16px !important;
    }

    body.woocommerce-order-received .woocommerce-order-overview__payment-method strong
    {
        display: block !important;
        margin-top: 7px !important;
    }

    body.woocommerce-order-received .woocommerce-customer-details .woocommerce-columns,
    body.woocommerce-order-received .woocommerce-customer-details .woocommerce-columns--addresses
    {
        grid-template-columns: 1fr !important;
    }

    body.woocommerce-order-received .woocommerce-customer-details .woocommerce-column--billing-address,
    body.woocommerce-order-received .woocommerce-customer-details .woocommerce-column--shipping-address
    {
        grid-column: 1 !important;
    }
}

/* ==========================================================================
   Responsive checkout
   ========================================================================== */

/* Tablette / mobile */
@media only screen and (max-width: 980px)
{
    .geopaca-checkout-page
    {
        padding-top: 40px !important;
    }

    .geopaca-checkout-header
    {
        display: block !important;
        margin-bottom: 22px !important;
    }

    .geopaca-checkout-header > .et_pb_column:last-child
    {
        display: block !important;
    }

    .geopaca-checkout-back
    {
        margin-top: 10px !important;
        margin-bottom: 0 !important;
        text-align: left;
    }

    .geopaca-checkout-title h1,
    .geopaca-checkout-title h2,
    .geopaca-checkout-title p
    {
        font-size: 30px;
    }

    /* Ordre responsive :
       Facturation > Livraison > Informations complémentaires >
       Récapitulatif > Paiement */
    .geopaca-checkout-main
    {
        display: flex !important;
        flex-direction: column !important;
        margin-top: 0 !important;
    }

    .geopaca-checkout-main > .et_pb_column
    {
        display: contents !important;
    }

    .geopaca-checkout-billing
    {
        order: 1;
    }

    .geopaca-checkout-shipping
    {
        order: 2;
    }

    .geopaca-checkout-information
    {
        order: 3;
    }

    .geopaca-checkout-review
    {
        order: 4;
    }

    .geopaca-checkout-payment
    {
        order: 5;
    }

    /* Tous les modules reprennent toute la largeur une fois
       les colonnes Divi neutralisées avec display: contents. */
    .geopaca-checkout-billing,
    .geopaca-checkout-shipping,
    .geopaca-checkout-information,
    .geopaca-checkout-review,
    .geopaca-checkout-payment
    {
        width: 100% !important;
        max-width: none !important;
        flex: 0 0 100% !important;
        box-sizing: border-box !important;
    }

    .geopaca-checkout-billing .woocommerce-billing-fields,
    .geopaca-checkout-billing .woocommerce-billing-fields__field-wrapper,
    .geopaca-checkout-shipping .woocommerce-shipping-fields,
    .geopaca-checkout-shipping .woocommerce-shipping-fields__field-wrapper,
    .geopaca-checkout-information .woocommerce-additional-fields,
    .geopaca-checkout-information .woocommerce-additional-fields__field-wrapper,
    .geopaca-checkout-review .woocommerce-checkout-review-order,
    .geopaca-checkout-payment .woocommerce-checkout-payment
    {
        width: 100% !important;
        max-width: none !important;
        box-sizing: border-box !important;
    }

    .geopaca-checkout-main > .et_pb_column:first-child
    {
        margin-bottom: 0 !important;
    }

    .geopaca-checkout-reassurance
    {
        margin-top: 30px !important;
    }

    .geopaca-checkout-reassurance .geopaca-cart-reassurance-item
    {
        padding: 18px 22px !important;
    }
}

/* Mobile */
@media only screen and (max-width: 768px)
{
    .geopaca-checkout-page
    {
        padding-top: 28px !important;
        padding-bottom: 40px !important;
    }

    .geopaca-checkout-title h1,
    .geopaca-checkout-title h2,
    .geopaca-checkout-title p
    {
        font-size: 28px !important;
    }

    .geopaca-checkout-intro
    {
        margin-bottom: 22px !important;
    }

    .geopaca-checkout-intro p
    {
        font-size: 14px;
    }

    .geopaca-checkout-billing,
    .geopaca-checkout-payment,
    .geopaca-checkout-review
    {
        padding: 20px !important;
    }

    .geopaca-checkout-information
    {
        padding: 18px 20px !important;
    }

    .geopaca-checkout-shipping
    {
        padding: 16px 20px !important;
    }

    .geopaca-checkout-billing .woocommerce-billing-fields__field-wrapper,
    .geopaca-checkout-shipping .woocommerce-shipping-fields__field-wrapper
    {
        grid-template-columns: 1fr;
    }

    .geopaca-checkout-billing #billing_company_field,
    .geopaca-checkout-billing #billing_country_field,
    .geopaca-checkout-billing #billing_address_1_field,
    .geopaca-checkout-billing #billing_address_2_field,
    .geopaca-checkout-shipping #shipping_company_field,
    .geopaca-checkout-shipping #shipping_country_field,
    .geopaca-checkout-shipping #shipping_address_1_field,
    .geopaca-checkout-shipping #shipping_address_2_field
    {
        grid-column: auto;
    }

    .geopaca-checkout-billing .form-row,
    .geopaca-checkout-shipping .form-row,
    .geopaca-checkout-billing input.input-text,
    .geopaca-checkout-shipping input.input-text,
    .geopaca-checkout-billing select,
    .geopaca-checkout-shipping select,
    .geopaca-checkout-information textarea,
    .geopaca-checkout-page .select2-container
    {
        width: 100% !important;
        max-width: none !important;
        box-sizing: border-box !important;
    }

    .geopaca-checkout-shipping #ship-to-different-address label
    {
        font-size: 15px !important;
    }

    .geopaca-checkout-shipping .shipping_address
    {
        margin-top: 18px !important;
    }

    .geopaca-checkout-payment .et_pb_module_header,
    .geopaca-checkout-payment .et_pb_module_inner > h2,
    .geopaca-checkout-payment .et_pb_module_inner > h3
    {
        font-size: 20px !important;
    }

    .geopaca-checkout-payment #payment ul.payment_methods > li > label
    {
        font-size: 20px !important;
    }

    .geopaca-checkout-reassurance
    {
        display: block !important;
        padding: 0 !important;
    }

    .geopaca-checkout-reassurance > .et_pb_column
    {
        float: none !important;
        width: 100% !important;
        margin: 0 !important;
        border-right: 0 !important;
    }

    .geopaca-checkout-reassurance > .et_pb_column:not(:last-child)
    {
        border-bottom: 1px solid var(--geopaca-border) !important;
    }

    .geopaca-checkout-reassurance .geopaca-cart-reassurance-item
    {
        padding: 18px 20px !important;
    }
}

/* Très petits écrans */
@media only screen and (max-width: 479px)
{
    .geopaca-checkout-title h1,
    .geopaca-checkout-title h2,
    .geopaca-checkout-title p
    {
        font-size: 26px !important;
    }

    .geopaca-checkout-billing,
    .geopaca-checkout-payment,
    .geopaca-checkout-review
    {
        padding: 16px !important;
    }

    .geopaca-checkout-information
    {
        padding: 16px !important;
    }

    .geopaca-checkout-shipping
    {
        padding: 15px 16px !important;
    }

    .geopaca-checkout-billing h3,
    .geopaca-checkout-shipping h3,
    .geopaca-checkout-information h3,
    .geopaca-checkout-payment h3,
    .geopaca-checkout-review h3,
    .geopaca-checkout-review h2
    {
        font-size: 20px !important;
    }
}
