@import url('https://fonts.googleapis.com/css2?family=Red+Hat+Display:wght@600;700&family=Red+Hat+Text:wght@400;500;600;700&display=swap');
:root {
  --color-menthe: #81C7B4;
  --color-petrole: #274D4B;
  --color-clair: #F0F5F4;
  --color-corail: #EA7B54;
  --color-texte: #212529;
  --color-blanc: #FFFFFF;
  --color-secondaire: #526663;
  --color-trait: #697E79;
  --color-erreur: #A4342B;
  --primitive-color-transparent: rgb(0 0 0 / 0);
  --primitive-font-family-red-hat-display: "Red Hat Display", Arial, sans-serif;
  --primitive-font-family-red-hat-text: "Red Hat Text", Arial, sans-serif;
  --primitive-font-weight-regular: 400;
  --primitive-font-weight-medium: 500;
  --primitive-font-weight-semibold: 600;
  --primitive-font-weight-bold: 700;
  --primitive-font-size-12: 12px;
  --primitive-font-size-13: 13px;
  --primitive-font-size-14: 14px;
  --primitive-font-size-16: 16px;
  --primitive-font-size-18: 18px;
  --primitive-font-size-20: 20px;
  --primitive-font-size-24: 24px;
  --primitive-font-size-28: 28px;
  --primitive-font-size-32: 32px;
  --primitive-font-size-36: 36px;
  --primitive-font-size-40: 40px;
  --primitive-font-size-48: 48px;
  --primitive-font-size-56: 56px;
  --primitive-font-size-64: 64px;
  --primitive-font-size-72: 72px;
  --primitive-line-height-display: 1.08;
  --primitive-line-height-heading: 1.2;
  --primitive-line-height-normal: 1.5;
  --primitive-line-height-relaxed: 1.65;
  --primitive-letter-spacing-tight: -0.8px;
  --primitive-letter-spacing-normal: 0px;
  --primitive-letter-spacing-wide: 0.5px;
  --primitive-spacing-0: 0px;
  --primitive-spacing-4: 4px;
  --primitive-spacing-8: 8px;
  --primitive-spacing-12: 12px;
  --primitive-spacing-16: 16px;
  --primitive-spacing-24: 24px;
  --primitive-spacing-32: 32px;
  --primitive-spacing-40: 40px;
  --primitive-spacing-44: 44px;
  --primitive-spacing-48: 48px;
  --primitive-spacing-64: 64px;
  --primitive-spacing-80: 80px;
  --primitive-spacing-96: 96px;
  --primitive-spacing-128: 128px;
  --primitive-spacing-1280: 1280px;
  --primitive-spacing-section-24: 24px;
  --primitive-spacing-section-32: 32px;
  --primitive-spacing-section-40: 40px;
  --primitive-spacing-section-48: 48px;
  --primitive-spacing-section-64: 64px;
  --primitive-spacing-section-80: 80px;
  --primitive-spacing-section-96: 96px;
  --primitive-border-radius-none: 0px;
  --primitive-border-radius-xs: 2px;
  --primitive-border-radius-sm: 4px;
  --primitive-border-radius-card: 8px;
  --primitive-border-radius-pill: 999px;
  --primitive-border-width-hair: 1px;
  --primitive-border-width-thick: 2px;
  --primitive-border-width-rule: 3px;
  --primitive-box-shadow-navigation-active: 0px 3px 0px 0px #274D4B;
  --primitive-box-shadow-ligne-ajoutee: 0px 0px 0px 2px #274D4B;
  --primitive-box-shadow-ligne-erreur: 0px 0px 0px 2px #A4342B;
  --primitive-box-shadow-focus-galerie: 0px 0px 0px 2px #274D4B;
  --primitive-opacity-disabled: 0.6;
  --primitive-duration-feedback: 160ms;
  --primitive-timing-function-out: cubic-bezier(0.2, 0.7, 0.2, 1);
  --font-weight-regular: 400;
  --font-weight-medium: 500;
  --font-weight-semibold: 600;
  --font-weight-bold: 700;
  --leading-display: 1.08;
  --leading-heading: 1.2;
  --leading-normal: 1.5;
  --leading-relaxed: 1.65;
  --tracking-tight: -0.8px;
  --tracking-normal: 0px;
  --tracking-wide: 0.5px;
  --font-sans: "Red Hat Text", Arial, sans-serif;
  --font-display: "Red Hat Display", Arial, sans-serif;
  --font-size-2xs: 12px;
  --font-size-xs: 13px;
  --font-size-sm: 14px;
  --font-size-body: 16px;
  --font-size-base: 16px;
  --font-size-md: 18px;
  --font-size-lg: 20px;
  --font-size-xl: 24px;
  --font-size-display-hero-min: 40px;
  --font-size-display-hero-max: 72px;
  --font-size-display-hero: clamp(40px, 5.3vw, 72px);
  --font-size-display-h1-min: 36px;
  --font-size-display-h1-max: 56px;
  --font-size-display-h1: clamp(36px, 4.2vw, 56px);
  --font-size-display-h2-min: 28px;
  --font-size-display-h2-max: 40px;
  --font-size-display-h2: clamp(28px, 3vw, 40px);
  --font-size-display-h3-min: 24px;
  --font-size-display-h3-max: 28px;
  --font-size-display-h3: clamp(24px, 2.2vw, 28px);
  --font-size-display-h4-min: 20px;
  --font-size-display-h4-max: 24px;
  --font-size-display-h4: clamp(20px, 2vw, 24px);
  --font-size-display-label-min: 18px;
  --font-size-display-label-max: 20px;
  --font-size-display-label: clamp(18px, 1.6vw, 20px);
  --space-0: 0px;
  --space-4: 4px;
  --space-8: 8px;
  --space-12: 12px;
  --space-16: 16px;
  --space-24: 24px;
  --space-32: 32px;
  --space-40: 40px;
  --space-44: 44px;
  --space-48: 48px;
  --space-64: 64px;
  --space-80: 80px;
  --space-96: 96px;
  --space-128: 128px;
  --space-1280: 1280px;
  --space-section-standard-min: 48px;
  --space-section-standard-max: 80px;
  --space-section-standard: clamp(48px, 6vw, 80px);
  --space-section-navigation-min: 24px;
  --space-section-navigation-max: 32px;
  --space-section-navigation: clamp(24px, 2.2vw, 32px);
  --space-section-entete-min: 40px;
  --space-section-entete-max: 64px;
  --space-section-entete: clamp(40px, 5vw, 64px);
  --space-section-colonnes-min: 32px;
  --space-section-colonnes-max: 64px;
  --space-section-colonnes: clamp(32px, 5vw, 64px);
  --space-section-produit-mono-min: 32px;
  --space-section-produit-mono-max: 64px;
  --space-section-produit-mono: clamp(32px, 5vw, 64px);
  --space-section-lecture-min: 48px;
  --space-section-lecture-max: 96px;
  --space-section-lecture: clamp(48px, 7vw, 96px);
  --space-section-promo-banniere-min: 24px;
  --space-section-promo-banniere-max: 40px;
  --space-section-promo-banniere: clamp(24px, 3vw, 40px);
  --radius-none: 0px;
  --radius-xs: 2px;
  --radius-sm: 4px;
  --radius-card: 8px;
  --radius-pill: 999px;
  --radius-btn: 0px;
  --border-hair: 1px;
  --border-thick: 2px;
  --border-rule: 3px;
  --shadow-navigation-active: 0px 3px 0px 0px #274D4B;
  --shadow-ligne-ajoutee: 0px 0px 0px 2px #274D4B;
  --shadow-ligne-erreur: 0px 0px 0px 2px #A4342B;
  --shadow-focus-galerie: 0px 0px 0px 2px #274D4B;
  --opacity-disabled: 0.6;
  --duration-feedback: 160ms;
  --ease-out: cubic-bezier(0.2, 0.7, 0.2, 1);
  --color-ink: #212529;
  --color-paper: #FFFFFF;
  --color-coral: #EA7B54;
  --color-page: #F0F5F4;
  --color-mist: #F0F5F4;
  --color-stone: #526663;
  --color-line: #697E79;
  --color-ok: #274D4B;
  --color-alert: #A4342B;
  --color-mint: #81C7B4;
  --color-teal: #274D4B;
  --color-action: #EA7B54;
  --color-on-action: #212529;
  --color-action-hover: #81C7B4;
  --color-link: #274D4B;
  --color-focus: #274D4B;
  --color-on-dark: #FFFFFF;
  --color-transparent: rgb(0 0 0 / 0);
  --container: 1280px;
  --gutter: 24px;
  --touch: 44px;
  --drawer-width: 480px;
  --header-height: 104px;
  --header-compact: 72px;
  --page-margin: 5%;
  --mobile-margin: 4%;
  --full: 100%;
  --viewport-height: 100dvh;
  --dialog-width: 1040px;
  --dialog-height: 92dvh;
  --logo-width: 112px;
  --logo-mobile: 80px;
  --hero-height: 520px;
  --hero-mobile: 280px;
  --measure: 48ch;
  --bar-height: 88px;
  --breakpoint-navigation: 850px;
  --zero: 0px;
  --z-header: 20;
  --z-mobile-buy: 30;
  --z-toast: 60;
}
/* Calm CBD, habillage des pages servies par Odoo (compte, connexion, panier, tunnel, paiement), 30/09/2026.
 * Injecté par le proxy du site (calmcbd-v19-odooproxy) avec tokens.css et calm-skin.js.
 * En-tête et pied de page : règles du front (calm.css) préfixées par .calm-skin. */
.calm-skin .action { background: var(--color-action); color: var(--color-on-action); font-weight: var(--font-weight-semibold); }
.calm-skin .skip { position: fixed; top: var(--space-8); left: var(--space-8); z-index: var(--z-toast); padding: var(--space-12); background: var(--color-paper); transform: translateY(-200%); }
.calm-skin .skip:focus { transform: none; }
.calm-skin .announcement { display: flex; justify-content: space-between; gap: var(--space-16); background: var(--color-teal); color: var(--color-on-dark); padding: var(--space-8) var(--page-margin); font-size: var(--font-size-xs); }
.calm-skin .site-header { position: sticky; top: var(--zero); z-index: var(--z-header); display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-24); padding: var(--space-12) var(--page-margin); min-height: var(--header-height); background: var(--color-paper); border-bottom: var(--border-hair) solid var(--color-line); }
.calm-skin .site-header.compact { min-height: var(--header-compact); }
.calm-skin .brand { display: inline-flex; align-items: center; flex-shrink: 0; }
.calm-skin .brand img { width: var(--logo-width); height: auto; }
.calm-skin .site-header nav, .calm-skin .header-actions, .calm-skin footer nav { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-16); }
.calm-skin .site-header nav a, .calm-skin .header-actions a, .calm-skin footer nav a { display: inline-flex; align-items: center; text-decoration: none; font-size: var(--font-size-sm); white-space: nowrap; }
.calm-skin .header-actions { margin-left: auto; gap: var(--space-12); }
.calm-skin .header-actions a { gap: var(--space-4); }
.calm-skin .menu-toggle { display: none; }
.calm-skin .site-header nav a[aria-current="page"] { border-bottom: var(--border-rule) solid var(--color-teal); }
.calm-skin .site-header nav a { min-width: var(--touch); }
.calm-skin footer { background: var(--color-mist); border-top: var(--border-hair) solid var(--color-line); }
.calm-skin footer nav { flex-wrap: wrap; margin: var(--space-24) var(--zero); }

/* Réglages de base dans les blocs du front, à l'abri de Bootstrap. */
.calm-skin { font: var(--font-size-body)/var(--leading-normal) var(--font-sans); color: var(--color-ink); }
.calm-skin a { color: var(--color-link); text-underline-offset: 4px; }
.calm-skin .site-header a, .calm-skin footer nav a { color: var(--color-teal); }
.calm-skin .site-header a:hover, .calm-skin footer nav a:hover { text-decoration: underline; }
.calm-skin p { margin: 0 0 var(--space-16); }
.calm-skin .menu-toggle { border: 1px solid var(--color-ink); background: var(--color-paper); min-height: 44px; min-width: 44px; }
.calm-skin footer.section { padding: var(--space-48, 48px) var(--page-margin); }
.calm-skin footer .caption { font-size: var(--font-size-xs); color: var(--color-secondaire, #526663); }
@media (max-width: 850px) {
  .calm-skin .menu-toggle { display: inline-flex; align-items: center; justify-content: center; }
  .calm-skin .site-header nav { display: none; width: 100%; flex-direction: column; align-items: flex-start; }
  .calm-skin .site-header nav.open { display: flex; }
  .calm-skin .announcement span { display: none; }
}

/* En-tête et pied de page natifs d'Odoo remplacés par ceux du front. */
header#top, footer#bottom, #o_footer, .o_footer_copyright { display: none !important; }

/* Pages d'Odoo aux couleurs du front. */
body, #wrapwrap, .o_website_sale, .oe_website_login_container { font-family: var(--font-sans) !important; color: var(--color-ink); }
#wrapwrap { background: var(--color-paper); }
#wrapwrap main h1, #wrapwrap main h2, #wrapwrap main h3, #wrapwrap main h4, #wrapwrap main h5, #wrapwrap main .h3, #wrapwrap main .h4 { font-family: var(--font-display) !important; color: var(--color-teal) !important; font-weight: 600; }
#wrapwrap main a:not(.btn) { color: var(--color-link); }
#wrapwrap .btn-primary, #wrapwrap .btn-primary:focus, #wrapwrap a.btn-primary { background: var(--color-action) !important; border: 1px solid var(--color-ink) !important; color: var(--color-on-action) !important; border-radius: var(--radius-btn, 0) !important; font-weight: 600; box-shadow: none !important; }
#wrapwrap .btn-primary:hover { filter: brightness(.95); }
#wrapwrap .btn-secondary, #wrapwrap .btn-outline-primary, #wrapwrap .btn-light, #wrapwrap .btn-link.btn { border-color: var(--color-ink) !important; color: var(--color-teal) !important; background: var(--color-paper) !important; border-radius: var(--radius-btn, 0) !important; }
#wrapwrap .form-control, #wrapwrap .form-select { border-radius: 0; border-color: var(--color-line); font-size: 16px; min-height: 44px; }
#wrapwrap .form-control:focus, #wrapwrap .form-select:focus { border-color: var(--color-teal); box-shadow: 0 0 0 3px rgba(39, 77, 75, .25); }
#wrapwrap .card, #wrapwrap .o_total_card, #wrapwrap .list-group-item { border-color: var(--color-line); border-radius: 0; }
#wrapwrap .badge.bg-primary, #wrapwrap .o_wizard .o_wizard_steplabel .text-primary { background: var(--color-teal) !important; }
#wrapwrap .text-primary { color: var(--color-teal) !important; }
#wrapwrap .bg-primary { background-color: var(--color-teal) !important; }
#wrapwrap .alert-success { border-radius: 0; }
#wrapwrap main { min-height: 50vh; }


/* Connexion, inscription, mot de passe oublié (bloc grand public construit par calm-skin.js). */
html:not(.calm-auth-ready) #wrap:has(form.oe_login_form), html:not(.calm-auth-ready) #wrap:has(form.oe_signup_form), html:not(.calm-auth-ready) #wrap:has(form.oe_reset_password_form), html:not(.calm-auth-ready) #wrap:has(div.oe_login_form) { visibility: hidden; }
.calm-auth { padding: 48px 5%; display: flex; justify-content: center; }
.calm-auth-inner { width: 100%; max-width: 440px; }
.calm-auth .calm-eyebrow { font-weight: 600; letter-spacing: .04em; font-size: 14px; margin-bottom: 8px; }
.calm-auth h1 { font-size: clamp(32px, 4vw, 44px); margin-bottom: 12px; }
.calm-auth .calm-auth-form form { max-width: 100% !important; margin: 24px 0 8px; }
.calm-auth .calm-auth-form .btn-primary { width: 100%; min-height: 48px; }
.calm-auth .calm-auth-form .form-group, .calm-auth .calm-auth-form .mb-3 { margin-bottom: 12px; }
.calm-auth .calm-auth-links { margin-top: 16px; }
.calm-auth .calm-caption { font-size: 13px; color: #526663; margin-top: 16px; }
.o_auth_oauth_providers { display: none !important; }

/* Commande rapide (module sk_quick_shop, réservé au B2B erag) : jamais sur Calm CBD. */
a[href*="search_variants_quick"], a[href*="create_order_csv"], a[href*="sk_quick_shop"], .o_portal_index_card:has(a[href*="search_variants_quick"]) { display: none !important; }

/* Mon compte : bandeau commun et onglets. */
.calm-account-head { background: var(--color-mist); border-bottom: 1px solid var(--color-line); padding: 40px 5% 0; font-family: var(--font-sans); }
.calm-account-inner { max-width: 1200px; margin: 0 auto; }
.calm-account-head .calm-eyebrow { font-weight: 600; letter-spacing: .04em; font-size: 14px; margin: 0 0 8px; color: var(--color-ink); }
.calm-account-head h1 { font-family: var(--font-display); color: var(--color-teal); font-weight: 600; font-size: clamp(32px, 4vw, 48px); margin: 0 0 24px; }
.calm-account-tabs { display: flex; gap: 4px 24px; flex-wrap: wrap; }
.calm-account-tabs a { display: inline-flex; align-items: center; min-height: 44px; padding: 0 2px; color: var(--color-teal); text-decoration: none; font-size: 16px; border-bottom: 3px solid transparent; }
.calm-account-tabs a:hover { border-bottom-color: var(--color-menthe); }
.calm-account-tabs a[aria-current="page"] { border-bottom-color: var(--color-teal); font-weight: 600; }
.calm-account-tabs .calm-logout { margin-left: auto; color: var(--color-secondaire, #526663); }
html.calm-account main > .o_portal.container { display: none; }
html.calm-account #wrap.o_portal_wrap > .container { max-width: 1200px; padding: 32px 5% 64px; }
@media (min-width: 1300px) { html.calm-account #wrap.o_portal_wrap > .container { padding-inline: 0; } }

/* Fil d'Ariane et barre d'outils du portail. */
html.calm-account .o_portal_submenu.breadcrumb { background: none; padding: 0; font-size: 14px; }
html.calm-account .o_portal_submenu .breadcrumb-item a { color: var(--color-teal); }
html.calm-account .o_portal_submenu .breadcrumb-item + .breadcrumb-item::before { content: "/"; color: var(--color-line); }
html.calm-account .o_portal_submenu .breadcrumb-item:first-child { display: none; }
html.calm-account .navbar { padding: 0; }
html.calm-account #o_portal_navbar_content .btn, html.calm-account .o_portal_search_panel .btn { border: 1px solid var(--color-ink) !important; border-radius: 0 !important; background: var(--color-paper) !important; color: var(--color-teal) !important; min-height: 40px; }
html.calm-account .o_portal_search_panel .form-control { min-height: 40px; }
html.calm-account .dropdown-menu { border-radius: 0; border-color: var(--color-line); }
html.calm-account .dropdown-item.active, html.calm-account .dropdown-item:active { background: var(--color-teal); color: #fff; }

/* Tableau de bord : cartes. */
html.calm-account .o_portal_docs { --bs-gutter-x: 16px; --bs-gutter-y: 16px; }
html.calm-account .o_portal_index_card > a, html.calm-account .o_portal_index_card > div > a { display: flex !important; align-items: center; gap: 16px; height: 100%; min-height: 104px; padding: 24px !important; background: var(--color-paper) !important; border: 1px solid var(--color-line) !important; border-radius: 0 !important; color: var(--color-ink) !important; text-decoration: none !important; transition: border-color .15s, box-shadow .15s; }
html.calm-account .o_portal_index_card > a:hover { border-color: var(--color-teal) !important; box-shadow: inset 0 -3px 0 var(--color-menthe); }
html.calm-account .o_portal_index_card img { width: 48px; height: 48px; object-fit: contain; }
html.calm-account .o_portal_index_card h5, html.calm-account .o_portal_index_card .h5 { font-family: var(--font-display) !important; color: var(--color-teal) !important; font-weight: 600; font-size: 20px; margin: 0 0 4px; }
html.calm-account .o_portal_index_card p, html.calm-account .o_portal_index_card .text-muted { color: var(--color-secondaire, #526663) !important; font-size: 14px; margin: 0; }
html.calm-account .o_portal_index_card .badge, html.calm-account .o_portal_index_card [class*="rounded-pill"] { background: var(--color-teal) !important; color: #fff !important; border-radius: 0; font-weight: 600; }

/* Bloc coordonnées (colonne de droite) et panneau mobile. */
html.calm-account .o_portal_wrap .col-lg-4 > .mt-3, html.calm-account .offcanvas-body { border: 1px solid var(--color-line); background: var(--color-mist); padding: 24px; }
html.calm-account .o_portal_wrap .col-lg-4 h5, html.calm-account .offcanvas-body h5 { font-family: var(--font-display); color: var(--color-teal); font-weight: 600; }
html.calm-account .o_portal_wrap .col-lg-4 img.rounded, html.calm-account .offcanvas-body img.rounded { border-radius: 0 !important; }
html.calm-account .o_portal_address { font-style: normal; line-height: 1.6; }
html.calm-account .o_portal_wrap a.btn-link { display: inline-flex; align-items: center; min-height: 44px; padding: 0 16px !important; border: 1px solid var(--color-ink) !important; border-radius: 0; background: var(--color-paper); color: var(--color-teal) !important; text-decoration: none; }
html.calm-account .wrapper > button.btn { border: 1px solid var(--color-line); border-radius: 0; }

/* Tableaux (commandes, factures, devis). */
html.calm-account .table-responsive { border: 1px solid var(--color-line); }
html.calm-account table.table, html.calm-account .o_portal_my_doc_table { margin: 0; font-size: 15px; --bs-table-bg: transparent; }
html.calm-account table.table thead th, html.calm-account .o_portal_my_doc_table thead th { background: var(--color-mist) !important; color: var(--color-teal); font-weight: 600; border-bottom: 1px solid var(--color-line) !important; padding: 12px 16px; white-space: nowrap; }
html.calm-account table.table td { padding: 14px 16px; border-color: #d9e2e0; vertical-align: middle; }
html.calm-account table.table tbody tr:hover td { background: var(--color-mist); }
html.calm-account table.table td a { color: var(--color-teal); font-weight: 600; }
html.calm-account .badge { border-radius: 0; font-weight: 600; }
html.calm-account .badge.text-bg-success, html.calm-account .badge.bg-success { background: #DDEFEA !important; color: var(--color-teal) !important; }
html.calm-account .badge.text-bg-info, html.calm-account .badge.bg-info { background: #E6EFEE !important; color: var(--color-teal) !important; }
html.calm-account .pagination .page-link { border-radius: 0 !important; color: var(--color-teal); border-color: var(--color-line); min-width: 44px; min-height: 44px; display: inline-flex; align-items: center; justify-content: center; }
html.calm-account .pagination .page-item.active .page-link { background: var(--color-teal); border-color: var(--color-teal); color: #fff; }

/* Détail d'une commande ou d'une facture. */
html.calm-account .o_portal_sidebar .card, html.calm-account #sidebar_content, html.calm-account .o_portal_sale_sidebar .card { border: 1px solid var(--color-line); border-radius: 0; background: var(--color-mist); }
html.calm-account #portal_sale_content .card, html.calm-account .o_portal_html_view, html.calm-account #invoice_content .card { border-radius: 0; border-color: var(--color-line); }

/* Alertes et états vides. */
html.calm-account .alert { border-radius: 0; border: 1px solid var(--color-line); background: var(--color-mist); color: var(--color-ink); }
html.calm-account .alert-warning { border-left: 4px solid var(--color-corail); }
html.calm-account .alert-success { border-left: 4px solid var(--color-menthe); }

/* Formulaires (informations, adresses, sécurité). */
html.calm-account form label, html.calm-account .o_portal_security_body label { font-weight: 600; color: var(--color-ink); margin-bottom: 6px; }
html.calm-account .input-group .btn.o_show_password { border-radius: 0; border-color: var(--color-line) !important; }
html.calm-account .o_portal_security_body section, html.calm-account .o_portal_security_body > div { border: 1px solid var(--color-line); padding: 24px; margin-bottom: 24px; background: var(--color-paper); }
html.calm-account .o_portal_security_body h3, html.calm-account .o_portal_security_body h4 { font-family: var(--font-display); color: var(--color-teal); }
html.calm-account .btn-light { border: 1px solid var(--color-ink) !important; border-radius: 0 !important; background: var(--color-action) !important; color: var(--color-on-action) !important; font-weight: 600; min-height: 44px; }

@media (max-width: 850px) {
  .calm-account-head { padding: 24px 16px 0; }
  .calm-account-tabs { flex-wrap: nowrap; overflow-x: auto; gap: 16px; margin: 0 -16px; padding: 0 16px; scrollbar-width: none; }
  .calm-account-tabs a { white-space: nowrap; }
  .calm-account-tabs .calm-logout { margin-left: 0; }
  html.calm-account #wrap.o_portal_wrap > .container { padding: 24px 16px 48px; }
  html.calm-account .o_portal_index_card > a { min-height: 88px; padding: 16px !important; }
  html.calm-account table.table { font-size: 14px; }
}

/* Retouches du 30/09 : fil d'Ariane, en-tête mobile identique au front, boutons carrés. */
html.calm-account .o_portal_submenu .breadcrumb-item:nth-child(2)::before { content: none; }
html.calm-account .o_portal_submenu .breadcrumb-item:nth-child(2) { padding-left: 0; }
#wrapwrap .btn { border-radius: 0 !important; }
@media (max-width: 850px) {
  .calm-skin .site-header { padding-inline: 16px; gap: 8px; min-height: var(--header-compact); flex-wrap: wrap; }
  .calm-skin .brand img { width: var(--logo-mobile); }
  .calm-skin .menu-toggle { display: inline-flex; min-width: 44px; padding-inline: 8px; font-size: 14px; }
  .calm-skin .site-header nav { display: none; order: 4; flex-basis: 100%; align-items: stretch; flex-direction: column; gap: 4px; }
  .calm-skin .site-header nav.open { display: flex; }
  .calm-skin .header-actions { gap: 8px; }
  .calm-skin .header-actions a { font-size: 13px; }
  .calm-skin footer.section { padding: 32px 16px; }
}
.calm-details-label { margin-left: 8px; color: var(--color-teal); font-size: 14px; }
html.calm-account .wrapper > button.btn { min-height: 44px; padding: 0 12px !important; }

/* Réinitialisation, invitation, lien expiré, e-mail envoyé (30/09). */
.calm-auth .o_login_auth { display: none !important; }
.calm-auth .calm-auth-intro { color: var(--color-ink); }
.calm-auth .alert { border-radius: 0; border: 1px solid var(--color-line); background: var(--color-mist); color: var(--color-ink); margin: 16px 0; }
.calm-auth .alert-danger { border-left: 4px solid var(--color-corail); }
.calm-auth .alert-success, .calm-auth .calm-auth-sent { border-left: 4px solid var(--color-menthe); }
.calm-auth .calm-auth-cta { display: flex; align-items: center; justify-content: center; width: 100%; min-height: 48px; margin-top: 8px; text-decoration: none; }
.calm-auth label, .calm-auth .form-label, .calm-auth .col-form-label { font-weight: 600; color: var(--color-ink); padding-top: 0; }
.calm-auth .form-control { min-height: 48px; font-size: 16px; }
.calm-auth .input-group .o_show_password { border-color: var(--color-line) !important; background: var(--color-paper); min-width: 48px; }
.calm-auth .o_caps_lock_warning small, .calm-auth .o_caps_lock_warning .text-danger { color: var(--color-erreur, #A4342B); }
.calm-auth .btn-primary:disabled, .calm-auth .btn-primary.disabled { opacity: .55; }
@media (max-width: 850px) { .calm-auth { padding: 32px 16px; } }

/* Vider le panier (30/09/2026) : bouton secondaire sous les articles, confirmation en <dialog>. */
.calm-vider__form { margin: 0; }
.calm-vider { display: flex; justify-content: flex-end; margin: calc(-1 * var(--space-16)) 0 var(--space-32); padding-top: var(--space-16); border-top: var(--border-hair) solid var(--color-line); }
.calm-vider__bouton, .calm-vider__annuler, .calm-vider__confirmer { display: inline-flex; align-items: center; justify-content: center; min-height: 44px; padding: var(--space-8) var(--space-16); border: var(--border-hair) solid var(--color-ink); border-radius: var(--radius-btn, 0); font: var(--font-weight-semibold, 600) var(--font-size-body, 16px)/1.2 var(--font-sans); cursor: pointer; text-decoration: none; }
.calm-vider__bouton, .calm-vider__annuler { background: var(--color-paper); color: var(--color-teal); }
.calm-vider__bouton:hover, .calm-vider__annuler:hover { background: var(--color-mist); border-color: var(--color-teal); }
.calm-vider__confirmer { background: var(--color-action); color: var(--color-on-action); }
.calm-vider__confirmer:hover { background: var(--color-action-hover); }
.calm-vider__bouton:focus-visible, .calm-vider__annuler:focus-visible, .calm-vider__confirmer:focus-visible { outline: var(--border-rule) solid var(--color-focus); outline-offset: var(--space-4); }
.calm-vider__annuler:disabled, .calm-vider__confirmer:disabled { opacity: .6; cursor: progress; }
.calm-vider__boite { width: min(440px, calc(100% - var(--space-32))); max-width: 100%; padding: var(--space-32); color: var(--color-ink); background: var(--color-paper); border: var(--border-hair) solid var(--color-line); border-radius: 0; font-family: var(--font-sans); }
.calm-vider__boite::backdrop { background: color-mix(in srgb, var(--color-teal) 65%, transparent); }
.calm-vider__titre { margin: 0 0 var(--space-8); font: var(--font-weight-semibold, 600) var(--font-size-24, 24px)/1.2 var(--font-display); color: var(--color-teal); }
.calm-vider__texte { margin: 0; }
.calm-vider__etat { margin: var(--space-8) 0 0; min-height: 1.5em; font-size: var(--font-size-sm, 14px); color: var(--color-secondaire, #526663); }
.calm-vider__actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: var(--space-12); margin-top: var(--space-16); }
body:has(.calm-vider__boite[open]) { overflow: hidden; }
@media (max-width: 480px) {
  .calm-vider { justify-content: stretch; }
  .calm-vider__form, .calm-vider__bouton { width: 100%; }
  .calm-vider__boite { padding: var(--space-24); }
  .calm-vider__actions { flex-direction: column-reverse; }
  .calm-vider__actions button { width: 100%; }
}

/* ---------------------------------------------------------------------------------------------
   Tunnel d'achat : repères UX (audit du 30/09/2026, voir le bloc « Tunnel d'achat » de odoo-skin.js)
   --------------------------------------------------------------------------------------------- */
html main .ux-livraison-a-venir { color: var(--ux-attenue, #5b6470); font-size: 0.875rem; }
html main .ux-deja-client,
html main .ux-cgv,
html main .ux-attente-verif { margin: 12px 0 0; color: var(--ux-attenue, #5b6470); font-size: 0.9375rem; line-height: 1.5; }
html main .ux-deja-client { text-align: center; }
html main .ux-deja-client a,
html main .ux-cgv a { color: var(--ux-texte, #111); text-decoration: underline; text-underline-offset: 0.2em; display: inline-block; padding: 6px 0; }
html main .ux-cgv--bouton { text-align: center; font-size: 0.8125rem; }
html main .ux-attente-verif:empty { display: none; }
/* Barre collante du panier : mobile et tablette seulement, masquée quand le vrai bouton est à l'écran. */
html .ux-barre-commande { display: none; }
@media (max-width: 991.98px) {
  html .ux-barre-commande {
    display: flex; align-items: center; gap: 16px; justify-content: space-between;
    position: fixed; left: 0; right: 0; bottom: 0; z-index: 30;
    padding: 12px 16px calc(12px + env(safe-area-inset-bottom));
    background: var(--ux-fond, #fff); border-top: 1px solid var(--ux-ligne, #d0d5db);
    transition: transform .2s ease;
  }
  html .ux-barre-commande--cachee { transform: translateY(110%); }
  html .ux-barre-commande__total { display: flex; flex-direction: column; margin: 0; color: var(--ux-texte, #111); font-family: inherit; line-height: 1.2; }
  html .ux-barre-commande__total span { font: 500 0.75rem/1.4 inherit; letter-spacing: 0.08em; text-transform: uppercase; color: var(--ux-attenue, #5b6470); }
  html .ux-barre-commande__total strong { font-size: 1.25rem; font-weight: 700; }
  html .ux-barre-commande__bouton { flex: 1 1 auto; max-width: 260px; min-height: 48px; justify-content: center; }
  html.ux-avec-barre body { padding-bottom: calc(80px + env(safe-area-inset-bottom)); }
}
@media (prefers-reduced-motion: reduce) { html .ux-barre-commande { transition: none; } }
html main .o_payment_form .ux-reseaux { display: block; margin-top: 2px; font-size: 0.8125rem; font-weight: 400; color: var(--ux-attenue, #5b6470) !important; }
html main .ux-encart-connexion { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px 16px; margin: 0 0 20px; padding: 14px 16px; border: 1px solid var(--ux-ligne, #d0d5db); background: var(--ux-fond-encart, transparent); }
html main .ux-encart-connexion p { margin: 0; color: var(--ux-texte, #111); }
html main .ux-encart-connexion a { font-weight: 600; min-height: 44px; display: inline-flex; align-items: center; }
html main .ux-lien-fort { font-weight: 600; text-decoration: underline; text-underline-offset: 0.2em; }
/* Calm CBD : jetons du tunnel et correctifs de l'audit UX du 30/09. */
html { --ux-fond: #FFFFFF; --ux-texte: #212529; --ux-attenue: #4d5a57; --ux-ligne: #697E79; --ux-fond-encart: #F0F5F4; }
/* Boutons principaux du tunnel à 48 px (38 px mesurés en mobile). */
#wrapwrap a[name="website_sale_main_button"], #wrapwrap button[name="o_payment_submit_button"], .ux-barre-commande .btn { min-height: 48px; display: inline-flex !important; align-items: center; justify-content: center; }
/* Encart natif « Déjà client ? » au-dessus de l'adresse : lisible et à la charte. */
#wrapwrap .o_address_signin.ux-encart-connexion { background: var(--ux-fond-encart) !important; border: 1px solid var(--ux-ligne); border-radius: 8px; padding: 14px 16px !important; }
#wrapwrap .o_address_signin.ux-encart-connexion span { color: var(--ux-texte) !important; }
/* Bandeau cookies : en mobile il recouvrait le bouton « Confirmer » collé en bas. Dans le tunnel, il passe en haut. */
@media (max-width: 991.98px) {
  html.ux-tunnel #website_cookies_bar .modal.s_popup_bottom { top: 0 !important; bottom: auto !important; }
  html.ux-tunnel #website_cookies_bar .modal.s_popup_bottom .modal-dialog { align-items: flex-start !important; }
}
.ux-barre-commande { background: #FFFFFF; }
.ux-barre-commande .btn-primary { background: #EA7B54; border: 1px solid #212529; color: #212529; font-weight: 600; border-radius: 4px; padding: 10px 18px; text-decoration: none; }
/* 30/09 : compte d'une autre société du groupe (page d'erreur d'Odoo remplacée). */
.calm-societe { padding: 48px 16px 64px; }
.calm-societe-inner { max-width: 640px; margin: 0 auto; padding: 28px 24px; border: 1px solid #697E79; border-radius: 8px; background: #F0F5F4; color: #212529; }
.calm-societe h1 { margin: 6px 0 12px; font-size: clamp(26px, 5vw, 34px); color: #274D4B; }
.calm-societe p { margin: 0 0 10px; line-height: 1.5; }
.calm-societe-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 20px; margin-top: 18px !important; }
.calm-societe .calm-societe-invite { min-height: 48px; padding: 10px 22px; background: #EA7B54 !important; border: 1px solid #212529 !important; color: #212529 !important; font-weight: 600; }
.calm-societe-lien { color: #274D4B; font-weight: 600; text-decoration: underline; min-height: 44px; display: inline-flex; align-items: center; }
.calm-societe-etat:empty { display: none; }

/* 30/09 (recette #156) : même borne de largeur que le front pour l en-tête et le pied de page. */
:root { --calm-contenu-max: 1360px; }
@media (min-width: 851px) {
  .calm-skin .announcement, .calm-skin .site-header, .calm-skin footer.section { padding-inline: max(var(--page-margin), calc((100% - var(--calm-contenu-max)) / 2)); }
}

/* 30/09 (recette #161) : « Product Snippet » de theme_alan (désinstallé en Odoo 19) dans les articles
   de blog. HTML figé de la v17 sans sa feuille : cartes en grille, commandes du carrousel et « Aperçu
   rapide » (morts) retirés, prix masqués jusqu à leur relecture par calm-skin.js. */
.as-product-snippet .swiper { overflow: visible; }
.as-product-snippet .swiper-wrapper { display: grid !important; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); max-width: 780px; margin-inline: auto; gap: 32px 24px; transform: none !important; height: auto !important; }
.as-product-snippet .swiper-slide { width: auto !important; margin: 0 !important; }
.as-product-snippet .swiper-button-next, .as-product-snippet .swiper-button-prev, .as-product-snippet .swiper-pagination, .as-product-snippet .swiper-notification, .as-product-snippet .as-btn-action { display: none !important; }
.as-product-snippet .as-product-img img { width: 100%; height: auto; aspect-ratio: 1; object-fit: contain; }
.as-product-snippet .as-product-title a { color: var(--color-teal); font-weight: 600; text-decoration: none; }
.as-product-snippet .as-product-price { visibility: hidden; font-weight: 600; margin-top: 4px; }
.as-product-snippet.calm-as-pret .as-product-price { visibility: visible; }
