/* Avicouv : charte du site (refonte haut de gamme du 09/11/2026).
   Source : clients/FranceElevage/scripts/mu-plugin/avicouv/design.css
   Couleurs mesurées sur le logo officiel : marine #00306C, rouge #D80612. Le rouge est réservé aux appels à l'action.
   Une seule famille, Archivo variable (graisse et largeur) : élargie pour les titres, comme le nom du logo.
   Angles vifs partout (précision industrielle) : aucun arrondi. */

@font-face {
	font-family: "Archivo";
	src: url("fonts/archivo-latin-wdth-normal.woff2") format("woff2-variations");
	font-weight: 100 900; font-stretch: 62% 125%; font-style: normal; font-display: swap;
	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
	font-family: "Archivo";
	src: url("fonts/archivo-latin-ext-wdth-normal.woff2") format("woff2-variations");
	font-weight: 100 900; font-stretch: 62% 125%; font-style: normal; font-display: swap;
	unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

:root {
	--av-marine: #00306C;
	--av-nuit: #001634;
	--av-rouge: #D80612;
	--av-rouge-fonce: #A8040E;
	--av-surface: #F3F5F8;
	--av-surface-2: #E8ECF2;
	--av-texte: #0E1A2B;
	--av-gris: #4A5568;
	--av-gris-clair: #C6D0DD;
	--av-filet: #DCE1E8;
	--av-police: "Archivo", "Segoe UI", system-ui, sans-serif;
	--av-large: 118%;
	--av-ease: cubic-bezier(.16, 1, .3, 1);
	--av-entete: 80px;
	--av-gouttiere: clamp(16px, 4vw, 48px);
}

/* ---------- Base */
html { scroll-padding-top: calc(var(--av-entete) + 72px); }
body { font-family: var(--av-police); font-size: 17px; line-height: 1.65; color: var(--av-texte); background: #fff;
	-webkit-font-smoothing: antialiased; font-optical-sizing: auto; }
body :where(h1, h2, h3, h4) { font-family: var(--av-police); font-stretch: var(--av-large); font-weight: 650; color: var(--av-marine);
	letter-spacing: -0.02em; line-height: 1.08; text-wrap: balance; }
body :where(p, li) { text-wrap: pretty; }
a { color: var(--av-marine); text-underline-offset: 4px; transition: color .25s var(--av-ease); }
a:hover { color: var(--av-rouge-fonce); }
:where(a, button, input, select, textarea, summary, [tabindex]):focus-visible { outline: 2px solid var(--av-rouge); outline-offset: 3px; }
::selection { background: var(--av-marine); color: #fff; }

/* ---------- Bandes Elementor */
.e-con.av-sec { --padding-top: 128px; --padding-bottom: 128px; --padding-left: var(--av-gouttiere); --padding-right: var(--av-gouttiere); }
.e-con.av-sec > .e-con-inner { max-width: 1280px; }
.e-con.av-surface { background: var(--av-surface); }
.e-con.av-nuit { background: var(--av-nuit); }
.e-con.av-sec .elementor-widget-heading .elementor-heading-title { font-family: var(--av-police); font-stretch: var(--av-large); font-weight: 650; color: var(--av-marine); }
.e-con.av-sec h1.elementor-heading-title { font-size: clamp(2.5rem, 1.4rem + 3.4vw, 4.6rem); line-height: 1.02; letter-spacing: -0.03em; }
.e-con.av-sec h2.elementor-heading-title { font-size: clamp(2rem, 1.3rem + 2vw, 3.2rem); line-height: 1.05; letter-spacing: -0.025em; }
.e-con.av-sec h3.elementor-heading-title { font-size: 1.3rem; line-height: 1.25; letter-spacing: -0.01em; }
.e-con.av-sec .elementor-widget-text-editor { color: var(--av-gris); }
.e-con.av-sec .elementor-widget-text-editor p { margin: 0 0 1em; }
.e-con.av-sec .elementor-widget-text-editor p:last-child { margin-bottom: 0; }
.e-con.av-sec .elementor-widget-text-editor a { text-decoration: underline; }
.e-con .elementor-widget.av-titre-section { margin-block-end: 56px; max-width: 820px; }
.av-chapo, .av-chapo p { font-size: clamp(1.1rem, 1rem + .4vw, 1.3rem); line-height: 1.55; color: var(--av-gris); max-width: 52ch; }
.e-con.av-nuit .elementor-heading-title, .e-con.av-nuit h2, .e-con.av-nuit h3 { color: #fff !important; }
.e-con.av-nuit .elementor-widget-text-editor, .e-con.av-nuit .elementor-widget-text-editor p { color: #C8D3E3; }
.e-con.av-nuit .elementor-widget-text-editor a { color: #fff; }

/* ---------- Boutons : rouge pour l'action, marine pour le reste. Angles vifs. */
.av-btn .elementor-button, .av-lien-bouton, .woocommerce .av-sec a.button, .woocommerce button.button.alt, .woocommerce a.button.alt,
.wp-block-woocommerce-cart .wc-block-cart__submit-button, .wc-block-components-checkout-place-order-button {
	font-family: var(--av-police); font-stretch: 108%; font-weight: 600; font-size: .95rem; letter-spacing: .02em; line-height: 1.2;
	padding: 18px 30px; border-radius: 0; border: 1px solid var(--av-rouge); background: var(--av-rouge); color: #fff;
	text-decoration: none; display: inline-flex; align-items: center; gap: 14px; white-space: nowrap;
	transition: background-color .35s var(--av-ease), border-color .35s var(--av-ease), color .35s var(--av-ease), transform .2s var(--av-ease);
}
.av-btn .elementor-button:hover, .av-lien-bouton:hover, .woocommerce button.button.alt:hover, .woocommerce a.button.alt:hover,
.wp-block-woocommerce-cart .wc-block-cart__submit-button:hover, .wc-block-components-checkout-place-order-button:hover {
	background: var(--av-rouge-fonce); border-color: var(--av-rouge-fonce); color: #fff;
}
.av-btn .elementor-button:active, .av-lien-bouton:active { transform: translateY(1px); }
/* la flèche fine des boutons et des liens : un trait, pas une icône dessinée */
.av-btn .elementor-button-text::after, .av-lien-bouton::after, .av-tuile-fleche::before, .av-btn--lien .elementor-button-text::after {
	content: ""; display: inline-block; width: 18px; height: 1px; background: currentColor; margin-left: 14px; vertical-align: middle;
	transition: width .35s var(--av-ease);
}
.av-btn .elementor-button:hover .elementor-button-text::after, .av-lien-bouton:hover::after { width: 28px; }
.av-btn--secondaire .elementor-button { background: transparent; color: var(--av-marine); border-color: var(--av-marine); }
.av-btn--secondaire .elementor-button:hover { background: var(--av-marine); border-color: var(--av-marine); color: #fff; }
.av-btn--clair .elementor-button { background: transparent; color: #fff; border-color: rgba(255, 255, 255, .7); }
.av-btn--clair .elementor-button:hover { background: #fff; border-color: #fff; color: var(--av-marine); }
.av-btn--lien .elementor-button { background: none; border: 0; padding: 0 0 6px; color: var(--av-marine); border-bottom: 1px solid var(--av-marine); }
.av-btn--lien .elementor-button:hover { background: none; color: var(--av-rouge-fonce); border-color: var(--av-rouge-fonce); }
.av-boutons { flex-direction: row !important; flex-wrap: wrap; gap: 14px 18px; align-items: center; }

/* ---------- En-tête */
.e-con.av-sec.av-entete { --padding-top: 0px; --padding-bottom: 0px; background: rgba(255, 255, 255, .96); border-bottom: 1px solid var(--av-filet);
	backdrop-filter: saturate(160%) blur(10px); -webkit-backdrop-filter: saturate(160%) blur(10px); }
/* L'en-tête colle en haut : c'est #masthead (HFE) qui doit être collant, son conteneur n'a que sa propre hauteur pour glisser.
   HFE déclare `.ehf-header #masthead` : il faut `body.ehf-header #masthead` pour passer devant. */
body.ehf-header #masthead { position: sticky; top: 0; z-index: 50; }
body.admin-bar.ehf-header #masthead { top: 32px; }
.av-entete-barre { gap: 32px; min-height: var(--av-entete); }
.av-logo { width: 104px; flex-shrink: 0; }
.av-logo img { width: 104px; height: auto; display: block; }
.av-nav { flex: 1 1 auto; min-width: 0; }
.av-nav .hfe-nav-menu a.hfe-menu-item { font-family: var(--av-police); font-weight: 500; font-size: .95rem; color: var(--av-texte); padding: 10px 16px; position: relative; }
.av-nav .hfe-nav-menu > li > a.hfe-menu-item::after { content: ""; position: absolute; left: 16px; right: 16px; bottom: 4px; height: 1px; background: var(--av-rouge);
	transform: scaleX(0); transform-origin: left; transition: transform .4s var(--av-ease); }
.av-nav .hfe-nav-menu > li > a.hfe-menu-item:hover::after, .av-nav .hfe-nav-menu > .current-menu-item > a.hfe-menu-item::after { transform: scaleX(1); }
.av-nav .hfe-nav-menu a.hfe-menu-item:hover, .av-nav .hfe-nav-menu .current-menu-item > a.hfe-menu-item { color: var(--av-marine); }
.av-nav .hfe-nav-menu__toggle { margin-left: auto; color: var(--av-marine); }
.av-nav nav.hfe-dropdown { background: #fff; box-shadow: 0 24px 48px rgba(0, 22, 52, .10); border-top: 1px solid var(--av-filet); }
.av-nav nav.hfe-dropdown a.hfe-menu-item { padding: 18px var(--av-gouttiere); border-bottom: 1px solid var(--av-filet); font-size: 1.05rem; }
.av-nav nav.hfe-dropdown a.hfe-menu-item::after { display: none; }
.av-nav .av-menu-devis { display: none; }
.av-panier { flex: 0 0 auto; min-width: 40px; }
.av-panier .hfe-cart-menu-wrap-default .hfe-cart-count, .av-panier .hfe-cart-menu-wrap-default .hfe-cart-count::after { color: var(--av-marine); border-color: var(--av-marine); }
.av-entete-cta .elementor-button { padding: 14px 22px; }
.av-entete-cta .elementor-button-text::after { display: none; }

/* ---------- Héros plein cadre (accueil) */
.e-con.av-sec.av-heros-plein { --padding-top: 96px; --padding-bottom: clamp(56px, 8vw, 104px); min-height: min(calc(100dvh - var(--av-entete)), 880px); }
.e-con.av-heros-plein > .e-con-inner { justify-content: flex-end; }
.av-heros-plein .av-heros-texte { max-width: 760px; gap: 28px; }
.e-con.av-sec.av-heros-plein .elementor-widget-heading h1.elementor-heading-title { color: #fff; font-size: clamp(2.6rem, 1.3rem + 4vw, 5.2rem); }
.av-heros-plein .av-chapo, .av-heros-plein .av-chapo p { color: #DCE4EF; }

/* ---------- En-tête de page (pages intérieures) */
.e-con.av-sec.av-tete { --padding-top: 112px; --padding-bottom: 88px; }
.av-tete-grille { align-items: end; }
.av-tete .av-heros-texte { gap: 28px; }
.av-tete-img img, .av-split-img img { width: 100%; height: auto; display: block; }
.av-tete-img img { aspect-ratio: 4 / 5; object-fit: cover; }
.e-con.av-sec.av-tete--court { --padding-top: 96px; --padding-bottom: 64px; background: var(--av-surface); }
.e-con.av-sec.av-tete--court h1.elementor-heading-title { font-size: clamp(2.2rem, 1.4rem + 2.6vw, 3.8rem); }

/* ---------- Manifeste et chiffres */
.av-manifeste { max-width: 980px; }
.av-manifeste p { font-stretch: 108%; font-weight: 400; font-size: clamp(1.5rem, 1.1rem + 1.5vw, 2.4rem) !important; line-height: 1.28;
	letter-spacing: -0.015em; color: var(--av-marine) !important; }
.av-chiffres-grille { margin-top: 96px; border-top: 1px solid var(--av-filet); }
.av-chiffre-bloc { padding: 36px 32px 0 0; }
.av-chiffre-bloc + .av-chiffre-bloc { padding-left: 32px; border-left: 1px solid var(--av-filet); }
.av-chiffre-bloc p { color: var(--av-gris); font-size: .98rem; line-height: 1.5; margin: 0; }
.e-con.av-sec .av-chiffre-bloc p.av-chiffre { font-stretch: 125%; font-weight: 600; font-size: clamp(2.2rem, 1.5rem + 2vw, 3.4rem); line-height: 1;
	color: var(--av-marine); letter-spacing: -0.03em; margin-bottom: 14px; white-space: nowrap; }

/* ---------- Vignettes de gamme [av_gamme] */
.av-gamme { list-style: none; margin: 0; padding: 0; display: grid; gap: 24px; grid-template-columns: repeat(12, minmax(0, 1fr)); }
.av-tuile { grid-column: span 4; }
.av-gamme--4 .av-tuile--une { grid-column: 1 / span 7; grid-row: span 3; }
.av-gamme--4 .av-tuile:not(.av-tuile--une) { grid-column: 8 / span 5; }
.av-gamme--5 .av-tuile--une, .av-gamme--3 .av-tuile--une { grid-column: 1 / span 7; grid-row: 1 / span 2; }
.av-gamme--5 .av-tuile:nth-child(2), .av-gamme--5 .av-tuile:nth-child(3), .av-gamme--3 .av-tuile:not(.av-tuile--une) { grid-column: 8 / span 5; }
.av-gamme--5 .av-tuile:nth-child(n+4) { grid-column: span 6; }
.av-tuile-lien { display: flex; flex-direction: column; height: 100%; text-decoration: none; color: inherit; background: var(--av-surface); position: relative; overflow: hidden; }
.av-tuile:not(.av-tuile--une) .av-tuile-lien { flex-direction: row; align-items: stretch; }
.av-tuile-img { display: block; overflow: hidden; background: var(--av-surface); }
.av-tuile--une .av-tuile-img { flex: 1 1 auto; }
.av-tuile:not(.av-tuile--une) .av-tuile-img { flex: 0 0 44%; }
.av-tuile-img img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform 1.2s var(--av-ease); }
.av-tuile--une .av-tuile-img img { aspect-ratio: 1 / 1; }
.av-tuile:not(.av-tuile--une) .av-tuile-img img { aspect-ratio: 1 / 1; object-fit: contain; }
.av-tuile-lien:hover .av-tuile-img img { transform: scale(1.04); }
.av-tuile-texte { display: flex; flex-direction: column; gap: 6px; padding: 28px 32px 30px; position: relative; flex: 1 1 auto; justify-content: flex-end; }
.av-tuile-nom { font-stretch: var(--av-large); font-weight: 650; font-size: 1.35rem; line-height: 1.15; color: var(--av-marine); margin: 0; letter-spacing: -0.015em; }
.av-tuile--une .av-tuile-nom { font-size: clamp(1.6rem, 1.2rem + 1vw, 2.2rem); }
.av-tuile-cap { color: var(--av-gris); font-size: .98rem; }
.av-tuile-prix { color: var(--av-texte); font-weight: 600; font-size: .95rem; margin-top: 10px; }
.av-tuile-fleche { position: absolute; right: 32px; bottom: 34px; color: var(--av-rouge); }
.av-tuile-fleche::before { width: 22px; margin: 0; }
.av-tuile-lien:hover .av-tuile-fleche::before { width: 34px; }
.av-tuile-lien:hover .av-tuile-nom { color: var(--av-rouge-fonce); }

/* ---------- Éditorial image + texte */
.av-split { align-items: center; }
.av-split-img img { aspect-ratio: 5 / 6; object-fit: cover; }
.av-split-texte { gap: 28px; max-width: 540px; }
.av-liste-fine { margin: 8px 0 0; padding: 0; list-style: none; border-top: 1px solid var(--av-filet); }
.av-liste-fine li { padding: 18px 0; border-bottom: 1px solid var(--av-filet); color: var(--av-gris); }
.av-liste-fine strong { display: block; color: var(--av-marine); font-stretch: 108%; font-weight: 600; margin-bottom: 4px; }

/* ---------- Bande nuit (boutique) */
.av-nuit-grille { align-items: center; }
.av-nuit-texte { gap: 28px; max-width: 520px; }
.av-nuit-img img { width: 100%; height: auto; display: block; background: #fff; aspect-ratio: 1 / 1; object-fit: contain; }

/* ---------- Étapes : titre collé à gauche, lignes à droite */
.av-etapes-grille { align-items: start; }
.av-etapes-titre { position: sticky; top: calc(var(--av-entete) + 40px); }
.av-etape-ligne { display: grid; grid-template-columns: 96px 1fr; gap: 24px; padding: 40px 0; border-top: 1px solid var(--av-filet); }
.av-etape-ligne:last-child { border-bottom: 1px solid var(--av-filet); }
.av-etape-num { font-stretch: 125%; font-weight: 300; font-size: 2.6rem; line-height: 1; color: var(--av-rouge); }
.av-etape-ligne h3 { font-size: 1.4rem; margin: 0 0 10px; }
.av-etape-ligne p { margin: 0; color: var(--av-gris); max-width: 52ch; }

/* ---------- Appel final plein cadre */
.e-con.av-sec.av-appel { --padding-top: 144px; --padding-bottom: 144px; }
.av-appel-texte { max-width: 720px; gap: 28px; }
.e-con.av-sec.av-appel .elementor-widget-heading h2.elementor-heading-title { color: #fff; font-size: clamp(2.2rem, 1.4rem + 2.6vw, 3.8rem); }
.av-appel .elementor-widget-text-editor p { color: #DCE4EF; font-size: 1.15rem; }
.av-appel .elementor-widget-text-editor a { color: #fff; }

/* ---------- Texte courant, entreprise, pages légales */
.av-colonne-texte { max-width: 760px; gap: 24px; }
.av-prose { font-size: 1.05rem; color: var(--av-texte); }
.av-prose h2 { font-size: 1.5rem !important; margin: 2.4em 0 .7em; color: var(--av-marine); }
.av-prose h2:first-child { margin-top: 0; }
.av-prose p, .av-prose li { color: var(--av-texte); }
.av-prose ul { padding-left: 1.2em; }
.av-prose li { margin-bottom: .7em; }
.e-con.av-legal > .e-con-inner > .elementor-widget { max-width: 760px; }
.e-con.av-sec.av-legal { --padding-top: 80px; }
.e-con .elementor-widget.av-prose:not(:last-child) { margin-block-end: 40px; }
.e-con .elementor-widget.av-formulaire:not(:last-child) { margin-block-end: 48px; }
.av-a-confirmer { font-size: .9rem; color: var(--av-gris); border-left: 2px solid #C99700; padding: 6px 0 6px 14px; background: #FFF8E1; }
.av-a-completer { background: #FFF1C2; color: #6B4E00; font-weight: 600; padding: 0 4px; }
.av-contact-carte { gap: 0; border-top: 1px solid var(--av-marine); }
.av-contact-carte .elementor-widget-text-editor p { margin: 0; }
.av-contact-ligne { display: grid; grid-template-columns: 120px 1fr; gap: 16px; padding: 16px 0; border-bottom: 1px solid var(--av-filet); }
.av-contact-ligne span:first-child { color: var(--av-gris); font-size: .92rem; }
.av-contact-ligne a, .av-contact-ligne strong { color: var(--av-marine); font-weight: 600; text-decoration: none; }
.av-contact-ligne a:hover { color: var(--av-rouge-fonce); }

/* ---------- Formulaires Forminator */
.av-formulaire .forminator-label { font-family: var(--av-police); font-weight: 600; font-size: .9rem; letter-spacing: .01em; color: var(--av-marine); margin-bottom: 8px; display: block; }
.av-formulaire .forminator-input, .av-formulaire .forminator-textarea {
	width: 100%; font: inherit; font-size: 1rem; color: var(--av-texte); background: #fff;
	border: 1px solid #8D99AE; border-radius: 0; padding: 14px 16px; transition: border-color .25s var(--av-ease), box-shadow .25s var(--av-ease);
}
.av-formulaire .forminator-input::placeholder, .av-formulaire .forminator-textarea::placeholder { color: #66728A; }
.av-formulaire .forminator-textarea { min-height: 170px; }
.av-formulaire .forminator-input:focus, .av-formulaire .forminator-textarea:focus { border-color: var(--av-marine); box-shadow: 0 0 0 3px rgba(0, 48, 108, .15); outline: none; }
.av-formulaire .forminator-row { margin-bottom: 24px; }
.av-formulaire .forminator-button-submit {
	font-family: var(--av-police); font-stretch: 108%; font-weight: 600; font-size: .98rem; letter-spacing: .02em; padding: 18px 32px; border: 0; border-radius: 0;
	background: var(--av-rouge); color: #fff; cursor: pointer; transition: background-color .3s var(--av-ease);
}
.av-formulaire .forminator-button-submit:hover { background: var(--av-rouge-fonce); }
.av-formulaire .forminator-error-message { color: #A3121A; font-size: .9rem; }
.av-formulaire .forminator-checkbox__label, .av-formulaire .forminator-consent__label { font-size: .93rem; color: var(--av-gris); }
.av-formulaire .forminator-consent__label a { text-decoration: underline; }
.av-devis-aside { gap: 40px; }
.av-devis-aside h2.elementor-heading-title { font-size: 1.4rem !important; }

/* ---------- Pied de page */
.e-con.av-sec.av-pied { --padding-top: 112px; --padding-bottom: 64px; background: var(--av-nuit); color: #C8D3E3; border-top: 1px solid rgba(255, 255, 255, .12); }
.e-con.av-pied p, .e-con.av-pied li { color: #C8D3E3; font-size: .98rem; }
.e-con.av-sec.av-pied .elementor-widget-text-editor a { color: #fff; text-decoration: none; }
.e-con.av-sec.av-pied .elementor-widget-text-editor a:hover { color: #fff; text-decoration: underline; }
.e-con.av-pied ul { list-style: none; margin: 0; padding: 0; }
.e-con.av-pied li { margin-bottom: 12px; }
.av-pied-titre { font-stretch: var(--av-large); font-weight: 600; color: #fff !important; margin-bottom: 18px !important; font-size: 1rem !important; }
.elementor-widget.av-pied-logo { text-align: left; }
.av-pied-logo img { width: 168px; height: auto; margin-bottom: 28px; }
.av-pied-tel { font-stretch: var(--av-large); font-size: 1.45rem !important; font-weight: 600; color: #fff !important; line-height: 1.3; }
.e-con.av-sec.av-pied-bas { --padding-top: 24px; --padding-bottom: 24px; background: var(--av-nuit); border-top: 1px solid rgba(255, 255, 255, .12); }
.av-copyright, .av-copyright .hfe-copyright-wrapper, .av-copyright a { color: #A9B6CA; font-size: .88rem; }

/* ---------- WooCommerce : catalogue (boutique, apparentés) */
.woocommerce ul.products { display: grid; gap: 48px 28px; margin: 0; }
.woocommerce ul.products::before, .woocommerce ul.products::after { display: none; }
.woocommerce ul.products.columns-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.woocommerce ul.products li.product, .woocommerce-page ul.products li.product { width: auto !important; margin: 0 !important; float: none; padding: 0;
	background: none; border: 0; text-align: left; display: flex; flex-direction: column; }
.woocommerce ul.products li.product a img { background: var(--av-surface); aspect-ratio: 4 / 5; object-fit: cover; margin: 0 0 22px; transition: transform 1.2s var(--av-ease); }
.woocommerce ul.products li.product a.woocommerce-LoopProduct-link { display: block; overflow: hidden; text-decoration: none; }
.woocommerce ul.products li.product:hover a img { transform: scale(1.03); }
.woocommerce ul.products li.product .woocommerce-loop-product__title { font-family: var(--av-police); font-stretch: var(--av-large); font-weight: 650;
	color: var(--av-marine); font-size: 1.3rem; line-height: 1.2; padding: 0; margin: 0 0 6px; letter-spacing: -0.015em; }
.av-loop-cap { color: var(--av-gris); font-size: .98rem; margin: 0 0 10px; }
.woocommerce ul.products li.product .price { color: var(--av-texte); font-weight: 600; font-size: 1rem; padding: 0; margin: 0; }
.woocommerce ul.products li.product .button { margin: 18px 0 0; align-self: flex-start; font-family: var(--av-police); font-weight: 600; font-size: .9rem;
	background: none; color: var(--av-marine); border: 0; border-bottom: 1px solid var(--av-marine); border-radius: 0; padding: 0 0 5px; }
.woocommerce ul.products li.product .button:hover { background: none; color: var(--av-rouge-fonce); border-color: var(--av-rouge-fonce); }
.woocommerce ul.products li.product .button.add_to_cart_button { background: var(--av-rouge); color: #fff; border: 0; padding: 13px 20px; }
.woocommerce ul.products li.product .button.add_to_cart_button:hover { background: var(--av-rouge-fonce); color: #fff; }
.woocommerce ul.products li.product a.added_to_cart { margin-top: 12px; font-size: .9rem; }
.av-sur-devis, .av-prix-attente { font-weight: 600; color: var(--av-gris); font-size: .98rem; }

/* ---------- WooCommerce : gabarits (boutique, fiche, panier, commande) */
html body.woocommerce-page .site-main, html body.single-product .site-main, html body.woocommerce-cart .site-main, html body.woocommerce-checkout .site-main {
	max-width: 1376px; margin: 0 auto; padding: 56px var(--av-gouttiere) 0; }
html body.woocommerce-shop .site-main { padding-bottom: 128px; }
.woocommerce .woocommerce-breadcrumb { font-size: .88rem; color: var(--av-gris); margin: 0 0 40px; }
.woocommerce .woocommerce-breadcrumb a { color: var(--av-gris); text-decoration: none; }
.woocommerce .woocommerce-breadcrumb a:hover { color: var(--av-marine); }
.woocommerce-products-header { padding: 56px 0 72px; margin-bottom: 64px; border-bottom: 1px solid var(--av-filet); }
.woocommerce-products-header__title, .product_title, .woocommerce-cart .entry-title, .woocommerce-checkout .entry-title {
	font-family: var(--av-police); font-stretch: var(--av-large); color: var(--av-marine); font-weight: 650;
	font-size: clamp(2.4rem, 1.4rem + 3vw, 4.4rem); line-height: 1.02; letter-spacing: -0.03em; }
.av-intro-boutique { font-size: clamp(1.1rem, 1rem + .4vw, 1.3rem); color: var(--av-gris); max-width: 56ch; margin: 24px 0 0; line-height: 1.55; }
.av-intro-boutique a { text-decoration: underline; }
.woocommerce .woocommerce-result-count, .woocommerce .woocommerce-ordering { margin-bottom: 40px; color: var(--av-gris); font-size: .92rem; }
.woocommerce .woocommerce-ordering select { border: 1px solid var(--av-gris-clair); border-radius: 0; padding: 10px 12px; font: inherit; font-size: .92rem; }

/* fiche : galerie et résumé */
.single-product div.product { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); gap: 0 clamp(40px, 6vw, 96px); align-items: start; }
.single-product div.product > * { grid-column: 1 / -1; min-width: 0; }
.single-product div.product > .woocommerce-product-gallery { grid-column: 1; width: 100% !important; float: none !important; margin: 0 !important; }
.single-product div.product > .summary { grid-column: 2; width: 100% !important; float: none !important; margin: 0 !important; padding-bottom: 32px; }
.woocommerce div.product div.images .woocommerce-product-gallery__image img { background: var(--av-surface); }
.woocommerce div.product div.images .flex-control-thumbs { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 12px; margin-top: 12px; }
.woocommerce div.product div.images .flex-control-thumbs li { width: auto !important; margin: 0 !important; }
.woocommerce div.product div.images .flex-control-thumbs li img { aspect-ratio: 1 / 1; object-fit: cover; opacity: .55; transition: opacity .3s var(--av-ease); background: var(--av-surface); }
.woocommerce div.product div.images .flex-control-thumbs li img.flex-active, .woocommerce div.product div.images .flex-control-thumbs li img:hover { opacity: 1; }
.woocommerce div.product div.images .woocommerce-product-gallery__trigger { border-radius: 0; background: #fff; }
.woocommerce div.product .product_title { margin: 0 0 20px; }
.woocommerce div.product .summary .price { color: var(--av-texte); font-size: 1.25rem; font-weight: 600; margin: 0 0 20px; }
.woocommerce div.product .summary .price .av-sur-devis, .woocommerce div.product .summary .price .av-prix-attente { font-size: 1rem; }
.woocommerce div.product .woocommerce-product-details__short-description { font-size: 1.15rem; line-height: 1.6; color: var(--av-gris); }
.woocommerce div.product .woocommerce-product-details__short-description p { margin: 0 0 .8em; }
.woocommerce div.product .woocommerce-product-details__short-description .av-a-confirmer { font-size: .88rem; }
.av-cles { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); margin: 32px 0 36px; padding: 0; border-top: 1px solid var(--av-filet); border-bottom: 1px solid var(--av-filet); }
.av-cle { padding: 22px 20px 22px 0; }
.av-cle + .av-cle { padding-left: 20px; border-left: 1px solid var(--av-filet); }
.av-cle dt { font-size: .82rem; letter-spacing: .02em; color: var(--av-gris); margin: 0 0 8px; }
.av-cle dd { margin: 0; color: var(--av-marine); line-height: 1.15; }
.av-cle-nb { font-stretch: 125%; font-weight: 600; font-size: 1.85rem; letter-spacing: -0.03em; }
.av-cle-unite { font-size: .9rem; color: var(--av-gris); }
.woocommerce div.product form.cart { margin: 0 0 16px; display: flex; gap: 12px; align-items: stretch; }
.woocommerce div.product form.cart .quantity .qty { height: 100%; min-height: 56px; border: 1px solid var(--av-gris-clair); border-radius: 0; font: inherit; width: 72px; }
.av-fiche-devis { margin: 0 0 16px; }
.av-fiche-devis .av-lien-bouton { width: 100%; justify-content: space-between; }
.av-fiche-devis .av-lien-bouton--secondaire { background: transparent; color: var(--av-marine); border-color: var(--av-marine); }
.av-fiche-devis .av-lien-bouton--secondaire:hover { background: var(--av-marine); color: #fff; }
.av-fiche-contact { margin: 24px 0 0; font-size: .95rem; color: var(--av-gris); }
.av-fiche-contact p { margin: 0 0 8px; }
.av-fiche-contact a { font-weight: 600; color: var(--av-marine); }
.woocommerce div.product .product_meta { margin-top: 28px; padding-top: 20px; border-top: 1px solid var(--av-filet); font-size: .88rem; color: var(--av-gris); }
.woocommerce div.product .product_meta > span { display: block; }
.woocommerce div.product .product_meta > span + span { margin-top: 4px; }
.woocommerce div.product .product_meta a { color: var(--av-gris); }

/* fiche : sommaire collant et sections */
.av-fiche-corps { grid-column: 1 / -1; }
.av-sommaire { position: sticky; top: var(--av-entete); z-index: 20; margin: 96px calc(50% - 50vw) 0; padding: 0 max(var(--av-gouttiere), calc(50vw - 640px));
	background: rgba(255, 255, 255, .96); backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px);
	border-top: 1px solid var(--av-filet); border-bottom: 1px solid var(--av-filet); display: flex; align-items: center; gap: 24px; min-height: 64px; }
.av-sommaire ul { list-style: none; margin: 0; padding: 0; display: flex; gap: 8px 36px; overflow-x: auto; scrollbar-width: none; flex: 1 1 auto; }
.av-sommaire a { text-decoration: none; color: var(--av-gris); font-size: .92rem; font-weight: 500; white-space: nowrap; padding: 20px 0; display: inline-block; }
.av-sommaire a:hover { color: var(--av-marine); }
a.av-sommaire-devis { color: var(--av-rouge); font-weight: 600; padding: 20px 0; flex: 0 0 auto; }
a.av-sommaire-devis:hover { color: var(--av-rouge-fonce); }
.av-fiche-sec { padding: 128px 0 0; }
.av-fiche-sec h2, .av-fiche-aside h2 { font-size: clamp(2rem, 1.3rem + 2vw, 3.2rem); margin: 0 0 48px; letter-spacing: -0.025em; }
.av-presentation--img { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(40px, 6vw, 96px); align-items: center; }
.av-fiche-texte { font-stretch: 104%; font-size: clamp(1.2rem, 1rem + .7vw, 1.6rem); line-height: 1.5; color: var(--av-marine); max-width: 40ch; }
.av-presentation-figure { margin: 0; }
.av-presentation-figure img { width: 100%; height: auto; display: block; aspect-ratio: 1 / 1; object-fit: cover; background: var(--av-surface); }
.av-fiche-fonctions, .av-fiche-caracteristiques { display: grid; grid-template-columns: minmax(0, 4fr) minmax(0, 8fr); gap: 48px clamp(40px, 6vw, 96px); align-items: start; }
.av-fiche-aside { position: sticky; top: calc(var(--av-entete) + 96px); }
.av-fiche-aside h2 { margin-bottom: 16px; }
.av-ref { color: var(--av-gris); margin: 0; }
.av-fonctions { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 56px 48px; }
.av-fonction { padding-top: 24px; border-top: 1px solid var(--av-marine); }
.av-fonction h3 { font-size: 1.2rem; margin: 0 0 12px; }
.av-fonction p { margin: 0; color: var(--av-gris); line-height: 1.6; }
.av-groupes { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 56px 48px; }
.av-groupe h3 { font-size: .95rem; font-stretch: 108%; font-weight: 600; color: var(--av-gris); margin: 0 0 8px; letter-spacing: .01em; }
.av-groupe dl { margin: 0; border-top: 1px solid var(--av-marine); }
.av-groupe dl > div { display: grid; grid-template-columns: minmax(0, 2fr) minmax(0, 3fr); gap: 16px; padding: 16px 0; }
.av-groupe dl > div + div { border-top: 1px solid var(--av-filet); }
.av-groupe dt { color: var(--av-gris); font-size: .95rem; }
.av-groupe dd { margin: 0; color: var(--av-marine); font-weight: 600; }
.av-compare-vide { color: #586174; font-weight: 400; font-style: italic; }
.av-fiche-video iframe { width: 100%; height: auto; aspect-ratio: 16 / 9; border: 0; }

/* comparatif de la gamme */
.av-compare { overflow-x: auto; border-top: 1px solid var(--av-marine); }
.av-compare table { width: 100%; border-collapse: collapse; min-width: 1040px; font-size: .95rem; }
.av-compare th:nth-child(3), .av-compare td:nth-child(3) { min-width: 230px; }
.av-compare tbody th { min-width: 200px; white-space: normal !important; }
.av-compare th, .av-compare td { text-align: left; padding: 20px 20px 20px 0; border: 0; border-bottom: 1px solid var(--av-filet); vertical-align: top; background: none; }
.av-compare thead th { font-weight: 500; color: var(--av-gris); font-size: .85rem; padding-top: 16px; padding-bottom: 16px; }
.av-compare tbody th { font-stretch: 108%; font-weight: 600; color: var(--av-marine); white-space: nowrap; }
.av-compare tbody th a { color: var(--av-marine); text-decoration: none; border-bottom: 1px solid transparent; }
.av-compare tbody th a:hover { border-color: currentColor; }
.av-compare td { color: var(--av-texte); }
.av-compare-ici th, .av-compare-ici td { background: var(--av-surface); }
.av-compare-ici th { box-shadow: inset 2px 0 0 var(--av-rouge); padding-left: 16px; }
.av-compare-note { display: block; font-size: .78rem; font-weight: 500; color: var(--av-rouge-fonce); margin-top: 4px; font-stretch: 100%; }

/* appel au devis, en pleine largeur */
.av-fiche-appel { grid-column: 1 / -1; margin: 160px calc(50% - 50vw) 0; padding: 128px max(var(--av-gouttiere), calc(50vw - 640px)); background: var(--av-nuit); }
.av-fiche-appel-in { max-width: 720px; }
.av-fiche-appel h2 { color: #fff; font-size: clamp(2.2rem, 1.4rem + 2.6vw, 3.8rem); margin: 0 0 20px; }
.av-fiche-appel p { color: #C8D3E3; font-size: 1.15rem; margin: 0 0 36px; }
.av-fiche-appel-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 20px 36px; margin: 0 !important; }
.av-fiche-appel-tel { color: #fff; font-stretch: var(--av-large); font-weight: 600; font-size: 1.3rem; text-decoration: none; }
.av-fiche-appel-tel:hover { color: #fff; text-decoration: underline; }
.single-product .site-main { padding-bottom: 0 !important; }

/* panier et commande : la charte, rien de plus */
.woocommerce-cart .entry-title, .woocommerce-checkout .entry-title { margin: 24px 0 48px; }
.wc-block-components-title, .wc-block-cart-items__header, .wc-block-components-checkout-step__title { font-family: var(--av-police) !important; font-stretch: 108%; color: var(--av-marine); }
.wc-block-components-text-input input, .wc-block-components-combobox .wc-block-components-combobox-control input, .wc-blocks-components-select__select {
	border-radius: 0 !important; border-color: #8D99AE !important; }
.wc-block-components-product-name { color: var(--av-marine); font-weight: 600; text-decoration: none; }
.wc-block-cart__submit-button, .wc-block-components-checkout-place-order-button { border-radius: 0 !important; }
.av-mention-retractation { background: var(--av-surface); border-left: 2px solid var(--av-marine); padding: 14px 18px; font-size: .95rem; margin: 0 0 32px; }
.woocommerce-cart .site-main, .woocommerce-checkout .site-main { padding-bottom: 128px !important; }

/* panier vide et suggestions (blocs WooCommerce) */
.wp-block-button__link, .wc-block-components-product-button__button, .wc-block-grid__product-add-to-cart .wp-block-button__link {
	border-radius: 0 !important; background: var(--av-marine) !important; color: #fff !important; font-family: var(--av-police); font-weight: 600; font-size: .88rem; }
.wc-block-cart__empty-cart__title.with-empty-cart-icon::before { display: none; }
.wc-block-cart__empty-cart__title { font-stretch: var(--av-large); color: var(--av-marine); font-weight: 650; }
.wp-block-woocommerce-empty-cart-block h2 { font-stretch: var(--av-large); }
.wc-block-grid__product-title, .wc-block-components-product-name { font-family: var(--av-police); color: var(--av-marine); font-weight: 600; }


/* ---------- Tablette */
@media (max-width: 1024px) {
	:root { --av-entete: 72px; }
	.e-con.av-sec { --padding-top: 96px; --padding-bottom: 96px; }
	.av-nav .av-menu-devis { display: block; }
	.av-entete-cta { display: none; }
	.av-chiffre-bloc:nth-child(3) { border-left: 0; padding-left: 0; }
	.av-chiffres-grille { margin-top: 64px; }
	/* sous 1 024 px : la première en pleine largeur, les autres par deux (les règles de bureau sont plus spécifiques) */
	.av-gamme > .av-tuile { grid-column: span 6 !important; grid-row: auto !important; }
	.av-gamme > .av-tuile.av-tuile--une { grid-column: 1 / -1 !important; }
	.av-tuile:not(.av-tuile--une) .av-tuile-lien { flex-direction: column; }
	.av-tuile:not(.av-tuile--une) .av-tuile-img { flex: none; }
	.av-tuile .av-tuile-img img, .av-tuile:not(.av-tuile--une) .av-tuile-img img { aspect-ratio: 4 / 3; }
	.av-tuile--une .av-tuile-img img { aspect-ratio: 16 / 10; }
	.woocommerce ul.products.columns-3 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.single-product div.product { grid-template-columns: minmax(0, 1fr); }
	.single-product div.product > .woocommerce-product-gallery, .single-product div.product > .summary { grid-column: 1; position: static; }
	.single-product div.product > .summary { padding-top: 40px; }
	.av-fiche-fonctions, .av-fiche-caracteristiques, .av-presentation--img { grid-template-columns: 1fr; }
	.av-fiche-aside { position: static; }
	.av-etapes-titre { position: static; }
}

/* ---------- Téléphone */
@media (max-width: 767px) {
	body { font-size: 16.5px; }
	.e-con.av-sec { --padding-top: 72px; --padding-bottom: 72px; --padding-left: 20px; --padding-right: 20px; }
	.e-con.av-sec.av-heros-plein { min-height: 0; --padding-top: 200px; --padding-bottom: 48px; }
	/* voile renforcé sur téléphone : le texte occupe presque toute la largeur de la photo */
	.e-con.av-sec.av-heros-plein::before, .e-con.av-sec.av-appel::before { background-image: linear-gradient(0deg, rgba(0, 22, 52, .95) 35%, rgba(0, 22, 52, .6) 100%) !important; }
	.e-con.av-sec.av-tete { --padding-top: 64px; --padding-bottom: 56px; }
	.e-con.av-sec.av-tete--court { --padding-top: 56px; --padding-bottom: 48px; }
	.e-con.av-sec.av-appel { --padding-top: 96px; --padding-bottom: 96px; }
	.av-entete-barre { gap: 12px; }
	.av-logo, .av-logo img { width: 84px; }
	.av-chiffre-bloc, .av-chiffre-bloc + .av-chiffre-bloc { border-left: 0; padding: 28px 12px 0 0; }
	.e-con.av-sec .av-chiffre-bloc p.av-chiffre { font-size: 1.75rem; white-space: normal; }
	a.av-sommaire-devis { display: none; }
	.av-gamme { gap: 16px; }
	.av-gamme .av-tuile, .av-gamme .av-tuile--une { grid-column: 1 / -1 !important; }
	.av-tuile-texte { padding: 22px 22px 24px; }
	.av-tuile-fleche { right: 22px; bottom: 28px; }
	.av-etape-ligne { grid-template-columns: 56px 1fr; gap: 16px; padding: 28px 0; }
	.av-etape-num { font-size: 2rem; }
	.av-contact-ligne { grid-template-columns: 1fr; gap: 2px; }
	.woocommerce ul.products.columns-3 { grid-template-columns: 1fr; }
	html body.woocommerce-page .site-main, html body.single-product .site-main { padding: 32px 20px 0; }
	.woocommerce-products-header { padding: 24px 0 48px; margin-bottom: 40px; }
	.woocommerce div.product div.images .flex-control-thumbs { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; }
	.av-cles { grid-template-columns: 1fr; }
	.av-cle, .av-cle + .av-cle { display: flex; justify-content: space-between; align-items: baseline; gap: 16px; padding: 14px 0; border-left: 0; }
	.av-cle + .av-cle { border-top: 1px solid var(--av-filet); }
	.av-cle dt { margin: 0; }
	.av-cle dd { text-align: right; }
	.av-cle-nb { font-size: 1.3rem; display: inline; }
	.av-sommaire { gap: 16px; min-height: 56px; }
	.av-sommaire a, a.av-sommaire-devis { padding: 16px 0; font-size: .88rem; }
	.av-sommaire ul { gap: 8px 24px; }
	.av-fiche-sec { padding-top: 88px; }
	.av-fonctions, .av-groupes { grid-template-columns: 1fr; gap: 40px; }
	.av-fiche-appel { margin-top: 112px; padding-top: 88px; padding-bottom: 88px; }
	.av-fiche-appel .av-lien-bouton { width: 100%; justify-content: space-between; }
	.av-btn .elementor-button { white-space: normal; }
}

@media (prefers-reduced-motion: reduce) {
	* { transition: none !important; scroll-behavior: auto !important; }
}
