/* Self-hosted Quicksand + Caveat, discrete weights (2026-07-08, avoids font-weight range syntax compat issues) */
@font-face { font-family: 'Quicksand'; font-style: normal; font-weight: 400; font-display: swap; src: url('/themes/wooly-hbd/assets/fonts/custom/quicksand-var.woff2') format('woff2'); }
@font-face { font-family: 'Quicksand'; font-style: normal; font-weight: 500; font-display: swap; src: url('/themes/wooly-hbd/assets/fonts/custom/quicksand-var.woff2') format('woff2'); }
@font-face { font-family: 'Quicksand'; font-style: normal; font-weight: 600; font-display: swap; src: url('/themes/wooly-hbd/assets/fonts/custom/quicksand-var.woff2') format('woff2'); }
@font-face { font-family: 'Quicksand'; font-style: normal; font-weight: 700; font-display: swap; src: url('/themes/wooly-hbd/assets/fonts/custom/quicksand-var.woff2') format('woff2'); }
@font-face { font-family: 'Caveat'; font-style: normal; font-weight: 400; font-display: swap; src: url('/themes/wooly-hbd/assets/fonts/custom/caveat-latin-20261013.woff2') format('woff2'); }
@font-face { font-family: 'Caveat'; font-style: normal; font-weight: 600; font-display: swap; src: url('/themes/wooly-hbd/assets/fonts/custom/caveat-latin-20261013.woff2') format('woff2'); }
@font-face { font-family: 'Caveat'; font-style: normal; font-weight: 700; font-display: swap; src: url('/themes/wooly-hbd/assets/fonts/custom/caveat-latin-20261013.woff2') format('woff2'); }
/* F-AGENT01 + P13-01 (audit 13/10/2026) : faces de repli Arial aux metriques de Quicksand et Caveat, calculees
   sur quicksand-var.woff2 et caveat-var.woff2 ; le h1 en Caveat ne change plus de hauteur a l'arrivee de la police. */
/* ponytail: Android n'a pas Arial, la face echoue et la pile retombe sur system-ui/cursive comme avant ; ajouter local('Roboto') avec ses propres metriques. */
@font-face { font-family: 'Quicksand Fallback'; font-weight: 400; src: local('Arial'), local('ArialMT'); size-adjust: 102.80%; ascent-override: 97.28%; descent-override: 24.32%; line-gap-override: 0%; }
@font-face { font-family: 'Quicksand Fallback'; font-weight: 700; src: local('Arial Bold'), local('Arial-BoldMT'); size-adjust: 100.99%; ascent-override: 99.02%; descent-override: 24.76%; line-gap-override: 0%; }
@font-face { font-family: 'Caveat Fallback'; font-weight: 400; src: local('Arial'), local('ArialMT'); size-adjust: 74.47%; ascent-override: 128.91%; descent-override: 40.28%; line-gap-override: 0%; }
@font-face { font-family: 'Caveat Fallback'; font-weight: 700; src: local('Arial Bold'), local('Arial-BoldMT'); size-adjust: 70.61%; ascent-override: 135.97%; descent-override: 42.49%; line-gap-override: 0%; }
/* P13-03 (audit 13/10/2026) : caveat-latin-20261013.woff2 = sous-ensemble latin (FR/NL/DE/IT/PT) de caveat-var.woff2, garde a cote. */
/* P13-02 (audit 13/10/2026) : prechargee dans head.tpl ; block au lieu de swap, sinon le nom de l'icone s'affiche en texte puis se resserre. */
@font-face { font-family: 'Material Icons'; font-style: normal; font-weight: 400; font-display: block; src: url('/themes/wooly-hbd/assets/fonts/MaterialIcons-Regular-wooly-sub-20260826.woff2') format('woff2'); }
/* P13-01 bureau (audit 13/10/2026) : width et height a auto, le logo valait 0 px avant chargement et poussait le menu de 137 px.
   ponytail: 834/292 = dimensions de logo-1637574135.jpg ; a revoir si le logo change. */
.header-bottom .navbar-brand .logo { width: min(8rem, calc(3rem * 834 / 292)); }
@media (min-width: 768px) { .header-bottom .navbar-brand .logo { width: min(9rem, calc(3rem * 834 / 292)); } }

/* Wooly Patisserie - design tokens (fuchsia/turquoise, esprit Charlie et la Chocolaterie) */
/* F-PERF07 (audit 12/10/2026) : @import Google Fonts retire. Place apres les @font-face il etait ignore ;
   remonte en tete, il ajouterait une chaine bloquante vers un tiers et un second jeu des memes polices. */

:root,
[data-bs-theme=light] {
  --bs-primary: #EC6694;
  --bs-primary-rgb: 236, 102, 148;
  --bs-primary-text-emphasis: #D6006E;
  --bs-primary-bg-subtle: #FBEEDD;
  --bs-primary-border-subtle: #F4B8CC;

  --bs-secondary: #0094AD;
  --bs-secondary-rgb: 0, 148, 173;
  --bs-secondary-bg: #BDEAF1;
  --bs-secondary-bg-subtle: #E5F7FA;
  --bs-secondary-border-subtle: #BDEAF1;

  --bs-body-color: #3A2A1E;
  --bs-body-color-rgb: 58, 42, 30;
  --bs-body-bg: #FFFBF5;
  --bs-body-bg-rgb: 255, 251, 245;

  --bs-link-color: #D6006E;
  --bs-link-color-rgb: 214, 0, 110;
  --bs-link-hover-color: #EC6694;
  --bs-link-hover-color-rgb: 236, 102, 148;

  --bs-font-sans-serif: 'Quicksand', 'Quicksand Fallback', system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;

  --wooly-accent-gold: #E2A628;
  --wooly-cream: #FBEEDD;
  --wooly-cream-light: #FFFBF5;
  --wooly-turquoise-pale: #BDEAF1;
  --wooly-font-display: 'Caveat', 'Caveat Fallback', cursive;
}

body {
  font-family: var(--bs-font-sans-serif);
  color: var(--bs-body-color);
  background-color: var(--bs-body-bg);
}

h1, h2, h3, .h1, .h2, .h3,
.wooly-display {
  font-family: var(--wooly-font-display);
  font-weight: 700;
  letter-spacing: 0.01em;
}

a {
  color: var(--bs-link-color);
}
a:hover {
  color: var(--bs-link-hover-color);
}

.btn-primary {
  background-color: var(--bs-primary);
  border-color: var(--bs-primary);
  color: #FFFFFF;
}
.btn-primary:hover,
.btn-primary:focus {
  background-color: var(--bs-primary-text-emphasis);
  border-color: var(--bs-primary-text-emphasis);
}

.btn-secondary {
  background-color: var(--bs-secondary);
  border-color: var(--bs-secondary);
  color: #FFFFFF;
}

.bg-wooly-cream {
  background-color: var(--wooly-cream) !important;
}
.bg-wooly-cream-light {
  background-color: var(--wooly-cream-light) !important;
}
.text-wooly-gold {
  color: var(--wooly-accent-gold) !important;
}

/* ===== Wooly homepage sections (2026-07-08) ===== */
.wooly-section-inner {
  max-width: 1200px;
  margin: 0 auto;
  padding: 64px 24px;
}
.wooly-eyebrow {
  font-size: 0.8rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  color: #00788C; /* audit 27/09 technique-02 : #0094AD = 3,15:1 sur creme */
  margin-bottom: 8px;
}
.wooly-eyebrow--light { color: #FFFFFF; opacity: 0.85; }
.wooly-display--light { color: #FFFFFF; }

/* Hero */
.wooly-hero {
  background: linear-gradient(135deg, var(--wooly-cream-light) 0%, var(--wooly-cream) 55%, var(--wooly-turquoise-pale) 100%);
  padding: 56px 24px;
}
.wooly-hero__inner {
  max-width: 1200px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 48px;
  align-items: center;
}
.wooly-hero__text h1 { font-size: 2.6rem; line-height: 1.1; margin-bottom: 18px; color: var(--bs-primary-text-emphasis); }
.wooly-hero__lead { font-size: 1.05rem; color: var(--bs-body-color); max-width: 46ch; margin-bottom: 24px; }
.wooly-hero__cta { display: flex; align-items: center; gap: 24px; flex-wrap: wrap; }
.wooly-btn-primary {
  background: var(--bs-primary); color: #fff; border: none; border-radius: 999px;
  padding: 14px 28px; font-weight: 600; text-decoration: none; display: inline-block;
}
.wooly-btn-primary:hover { background: var(--bs-primary-text-emphasis); color: #fff; }
.wooly-link-arrow { color: var(--bs-primary-text-emphasis); font-weight: 600; text-decoration: none; border-bottom: 2px solid var(--bs-primary); padding-bottom: 2px; }
.wooly-hero__media { position: relative; }
.wooly-hero__img { width: 100%; height: auto; border-radius: 24px; display: block; object-fit: cover; aspect-ratio: 4/3; }
.wooly-hero__badge {
  position: absolute; top: -14px; left: -14px; background: var(--wooly-turquoise-pale);
  color: #0B3B3C; border-radius: 50%; width: 110px; height: 110px; display: flex;
  align-items: center; justify-content: center; text-align: center; font-size: 0.72rem;
  font-weight: 700; line-height: 1.25; box-shadow: 0 6px 18px rgba(0,0,0,0.12);
}

/* La carte */
.wooly-carte { background: linear-gradient(120deg, #0094AD, #17B8C0); }
.wooly-tiles { display: grid; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); gap: 20px; margin-top: 32px; }
.wooly-tile {
  background: var(--wooly-cream-light); border-radius: 16px; padding: 24px 20px;
  text-decoration: none; color: var(--bs-body-color); display: flex; flex-direction: column;
  gap: 6px; position: relative; overflow: hidden; transition: transform 0.2s ease;
}
.wooly-tile:hover { transform: translateY(-4px); color: var(--bs-body-color); }
.wooly-tile::after {
  content: ""; position: absolute; top: 0; left: 0; width: 0; height: 0;
  border-style: solid; border-width: 0 0 34px 34px;
}
.wooly-tile--fuchsia::after { border-color: transparent var(--bs-primary) transparent transparent; }
.wooly-tile--turquoise::after { border-color: transparent var(--bs-secondary) transparent transparent; }
.wooly-tile--gold::after { border-color: transparent var(--wooly-accent-gold) transparent transparent; }
.wooly-tile__icon { font-size: 1.6rem; }
.wooly-tile__title { font-weight: 700; font-size: 1.1rem; }
.wooly-tile__desc { font-size: 0.85rem; color: #6b6b6b; }

/* Best-sellers */
.wooly-bestsellers { background: var(--wooly-cream); }
.wooly-products { display: grid; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); gap: 20px; margin-top: 32px; }
.wooly-product {
  background: #fff; border-radius: 14px; overflow: hidden; text-decoration: none; color: var(--bs-body-color);
  display: flex; flex-direction: column; box-shadow: 0 2px 10px rgba(0,0,0,0.05);
}
/* height:auto est indispensable : sans elle, l'attribut height du HTML fait
   autorite et aspect-ratio est ignore - les vignettes sortaient en 170x650. */
.wooly-product img { width: 100%; height: auto; aspect-ratio: 1/1; object-fit: cover; display: block; }
.wooly-product__name { padding: 12px 14px 2px; font-weight: 600; font-size: 0.95rem; }
.wooly-product__price { padding: 0 14px 14px; color: var(--bs-primary-text-emphasis); font-weight: 700; }

/* Notre histoire */
.wooly-histoire__inner { display: grid; grid-template-columns: 5fr 7fr; gap: 48px; align-items: center; }
.wooly-histoire__media img { width: 100%; height: auto; border-radius: 20px; display: block; }
.wooly-histoire__text p { color: #555; line-height: 1.65; margin-bottom: 12px; }
.wooly-signature { font-family: var(--wooly-font-display); font-size: 1.3rem; color: var(--bs-secondary); }

/* Avis clients */
.wooly-avis { background: var(--wooly-turquoise-pale); }
.wooly-avis__source { color: #4a6f70; margin-bottom: 28px; }
.wooly-avis__source a { color: #4a6f70; text-decoration: underline; }
.wooly-review-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(230px, 1fr)); gap: 20px; }
.wooly-review-card { background: #fff; border-radius: 14px; padding: 22px; }
.wooly-stars { color: var(--wooly-accent-gold); letter-spacing: 2px; display: block; margin-bottom: 10px; }
.wooly-review-card p { font-size: 0.9rem; color: #444; line-height: 1.5; margin-bottom: 12px; }
.wooly-review-card__author { font-weight: 600; font-size: 0.82rem; color: #333; }

/* Nos adresses */
.wooly-address-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 18px; margin-top: 32px; }
.wooly-address-card {
  border: 1px solid var(--wooly-turquoise-pale); border-radius: 14px; padding: 20px;
  text-decoration: none; color: var(--bs-body-color); display: flex; flex-direction: column; gap: 4px;
}
.wooly-address-card:hover { border-color: var(--bs-primary); }
.wooly-address-card__pin { font-size: 1.2rem; }
.wooly-address-card__city { font-weight: 700; }
.wooly-address-card__street { font-size: 0.85rem; color: #6b6b6b; }

@media (max-width: 860px) {
  .wooly-hero__inner { grid-template-columns: 1fr; }
  .wooly-histoire__inner { grid-template-columns: 1fr; }
  .wooly-hero__text h1 { font-size: 2rem; }
}

/* Wooly footer light theme override (2026-07-08 late fixes) */
.footer__before, .footer__main {
  background-color: var(--wooly-cream-light) !important;
  color: var(--bs-body-color) !important;
}
.footer__main .footer-block__title,
.footer__main .footer-block__title--toggle,
.footer__main h3, .footer__main h4, .footer__main .h3, .footer__main .h4 {
  color: var(--bs-body-color) !important;
}
.footer__main a { color: var(--bs-link-color) !important; }
.footer__main a:hover { color: var(--bs-link-hover-color) !important; }
.footer__before { border-top: 1px solid var(--wooly-turquoise-pale); }
.footer .copyright, .footer__main + * {
  background-color: var(--wooly-cream) !important;
  color: var(--bs-body-color) !important;
}

/* Hide auto-generated category cover banner (padded/cropped poorly) */
.category__cover { display: none !important; }

/* Blog card titles: ensure bold even if cache stale for other visitors */
.woolyblog-card__title { font-weight: 700 !important; }

/* Hide broken "no image" store placeholders (2026-07-08 late fixes) */
.store__image { display: none !important; }

/* Degressive price badge on homepage best-sellers (2026-07-08 late fixes) */
.wooly-product__badge {
  display: inline-block;
  margin: 0 14px 12px;
  padding: 3px 10px;
  background: var(--wooly-cream);
  color: var(--bs-primary-text-emphasis);
  font-size: 0.72rem;
  font-weight: 700;
  border-radius: 999px;
  width: fit-content;
}


/* Hero visual fix (2026-07-08 late) — white card frame + striped accent + floating badge, per original mockup */
.wooly-hero__media {
  position: relative;
  background: #FFFFFF;
  border-radius: 28px;
  padding: 14px 14px 26px;
  box-shadow: 0 20px 44px rgba(43, 35, 32, 0.14);
}
.wooly-hero__img {
  border-radius: 18px;
}
.wooly-hero__stripe {
  position: absolute;
  right: 14px;
  left: 14px;
  bottom: 11px;
  height: 9px;
  border-radius: 999px;
  background: repeating-linear-gradient(-45deg, var(--bs-primary) 0 10px, #FFFFFF 10px 20px);
}
.wooly-hero__badge {
  animation: wooly-badge-float 4.5s ease-in-out infinite;
}
@keyframes wooly-badge-float {
  0%, 100% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-8px) rotate(2deg); }
}
@media (prefers-reduced-motion: reduce) {
  .wooly-hero__badge { animation: none; }
}


/* Header reproduction: promo bar + dark nav links + Accueil pill (2026-07-08 late) */
header#header::before {
  content: "\2728  Livraison gratuite \00e0  Bruxelles d\00e8 s 50\00a0 \20ac  de commande \00b7  Retrait en 45 min dans nos 4 boutiques \2728 ";
  display: block;
  background: var(--bs-primary-text-emphasis);
  color: #fff;
  text-align: center;
  font-size: 0.82rem;
  font-weight: 600;
  padding: 10px 16px;
}
html[lang^="en"] header#header::before {
  content: "\2728  Free delivery in Brussels from \20ac 50 \00b7  Pickup in 45 min at our 4 shops \2728 ";
}
html[lang^="nl"] header#header::before {
  content: "\2728  Gratis levering in Brussel vanaf \20ac 50 \00b7  Afhalen in 45 min in onze 4 winkels \2728 ";
}
/* DE (28/09/2026) : pas de seuil bruxellois pour un lecteur allemand, cf. PLAN.md */
html[lang^="de"] header#header::before {
  content: "\2728  Lieferung auch nach Deutschland \00b7  Abholung in 45 Min. in unseren 4 Gesch\00e4 ften \2728 ";
}
/* IT + PT (04/10/2026) : public italien/portugais VIVANT en Belgique ; pas de seuil de 50 EUR, 45 min garde,
   aucune livraison vers l'Italie ou le Portugal : livraison en Belgique, cf. DECISIONS.md */
html[lang^="it"] header#header::before {
  content: "\2728  Consegna in Belgio \00b7  Ritiro in 45 min nei nostri 4 negozi \2728 ";
}
html[lang^="pt"] header#header::before {
  content: "\2728  Entrega na B\00e9 lgica \00b7  Levantamento em 45 min nas nossas 4 lojas \2728 ";
}
/* 7 langues (29/10/2026) : communautes vivant en Belgique ; pas de seuil, 45 min garde, livraison en Belgique seulement */
html[lang^="ar"] header#header::before {
  content: "\2728  \0627 \0644 \062a \0648 \0635 \064a \0644  \0641 \064a  \0628 \0644 \062c \064a \0643 \0627  \00b7  \0627 \0644 \0627 \0633 \062a \0644 \0627 \0645  \062e \0644 \0627 \0644  45 \062f \0642 \064a \0642 \0629  \0645 \0646  \0645 \062a \0627 \062c \0631 \0646 \0627  \0627 \0644 \0623 \0631 \0628 \0639 \0629  \2728 ";
}
html[lang^="tr"] header#header::before {
  content: "\2728  Bel\00e7 ika'da teslimat \00b7  4 ma\011f azam\0131 zda 45 dakikada teslim alma \2728 ";
}
html[lang^="ro"] header#header::before {
  content: "\2728  Livrare \00ee n Belgia \00b7  Ridicare \00ee n 45 min din cele 4 magazine ale noastre \2728 ";
}
html[lang^="pl"] header#header::before {
  content: "\2728  Dostawa w Belgii \00b7  Odbi\00f3 r w 45 min w naszych 4 sklepach \2728 ";
}
html[lang^="ru"] header#header::before {
  content: "\2728  \0414 \043e \0441 \0442 \0430 \0432 \043a \0430  \043f \043e  \0411 \0435 \043b \044c \0433 \0438 \0438  \00b7  \0421 \0430 \043c \043e \0432 \044b \0432 \043e \0437  \0437 \0430  45 \043c \0438 \043d  \0432  \043d \0430 \0448 \0438 \0445  4 \043c \0430 \0433 \0430 \0437 \0438 \043d \0430 \0445  \2728 ";
}
html[lang^="uk"] header#header::before {
  content: "\2728  \0414 \043e \0441 \0442 \0430 \0432 \043a \0430  \043f \043e  \0411 \0435 \043b \044c \0433 \0456 \0457  \00b7  \0421 \0430 \043c \043e \0432 \0438 \0432 \0456 \0437  \0437 \0430  45 \0445 \0432  \0443  \043d \0430 \0448 \0438 \0445  4 \043c \0430 \0433 \0430 \0437 \0438 \043d \0430 \0445  \2728 ";
}
html[lang^="es"] header#header::before {
  content: "\2728  Entrega en B\00e9 lgica \00b7  Recogida en 45 min en nuestras 4 tiendas \2728 ";
}
/* RTL (29/10/2026) : un numero de telephone se lit de gauche a droite meme en arabe */
a[href^="tel:"]:not(.ps-contactinfo__phone) {
  direction: ltr;
  unicode-bidi: isolate;
}
.ps-mainmenu__tree-link {
  color: var(--bs-body-color) !important;
}
.ps-mainmenu__tree-link:hover,
.ps-mainmenu__tree-link:focus {
  color: var(--bs-primary-text-emphasis) !important;
}
.ps-mainmenu__tree-item:first-child .ps-mainmenu__tree-link {
  background: var(--bs-primary);
  color: #fff !important;
  border-radius: 999px;
}
.ps-mainmenu__tree-item:first-child .ps-mainmenu__tree-link:hover,
.ps-mainmenu__tree-item:first-child .ps-mainmenu__tree-link:focus {
  background: var(--bs-primary-text-emphasis);
  color: #fff !important;
}


/* Hero refinement v2 (2026-07-08 very late) — remove white frame, add since-card + full divider stripe, turquoise accent word */
.wooly-hero__media {
  background: none;
  padding: 0;
  box-shadow: none;
  border-radius: 0;
}
.wooly-hero__img {
  border-radius: 24px;
}
.wooly-hero__stripe {
  display: none;
}
.wooly-accent-turquoise {
  color: var(--bs-secondary);
}
.wooly-hero__since {
  position: absolute;
  right: -18px;
  bottom: -22px;
  display: flex;
  align-items: center;
  gap: 10px;
  background: #FFFFFF;
  border-radius: 16px;
  padding: 12px 18px;
  box-shadow: 0 14px 34px rgba(43, 35, 32, 0.16);
}
.wooly-hero__since-icon {
  color: var(--bs-secondary);
  font-size: 1.3rem;
  line-height: 1;
}
.wooly-hero__since-text {
  display: flex;
  flex-direction: column;
  line-height: 1.15;
}
.wooly-hero__since-title {
  font-family: var(--wooly-font-display);
  color: var(--bs-primary-text-emphasis);
  font-size: 1.15rem;
}
.wooly-hero__since-sub {
  font-size: 0.75rem;
  color: #6b6b6b;
}
.wooly-hero__divider {
  height: 14px;
  background: repeating-linear-gradient(-45deg, var(--bs-secondary) 0 14px, var(--bs-primary) 14px 28px);
}
@media (max-width: 860px) {
  .wooly-hero__since { right: 12px; bottom: -18px; padding: 8px 12px; }
  .wooly-hero__since-title { font-size: 1rem; }
}


/* Store locator: Google Maps embed (2026-07-08 very late) — re-enables .store__image, was hidden when empty */
.store__image {
  display: block !important;
  border-radius: 14px;
  overflow: hidden;
  margin-bottom: 16px;
}
.store__img.img-fluid {
  border-radius: 14px;
}
/* F-PERF05 (12/10/2026) : facade de la carte, meme encombrement que l'iframe (220 px) pour que
   rien ne bouge au clic ; fond turquoise pale de la charte, bouton magenta habituel. */
.store__carte:not(.store__carte--ouverte) {
  height: 220px; display: flex !important; align-items: center; justify-content: center;
  background: var(--wooly-turquoise-pale);
}
.store__carte-btn { min-height: 44px; }
.store__itineraire { margin: 0 0 .5rem; font-weight: 600; }

/* /magasins : le nom de boutique passe en <h2> pour donner une structure Hn
   a la page. On neutralise taille, interligne et marge haute pour que le
   rendu reste strictement identique a l'ancien <p>. */
.store__name{font-size:inherit;line-height:inherit;margin-block-start:0;font-weight:600}
.stores-intro{max-width:70ch;margin:0 auto 1.75rem;line-height:1.6}

/* Pages CMS : les intertitres etaient de simples <p> sans respiration.
   Une fois promus en <h2>, ils restaient colles au texte precedent. */
.page-content--cms h2{margin-block-start:2rem;margin-block-end:.6rem}
.page-content--cms h3{margin-block-start:1.4rem;margin-block-end:.4rem}

/* Fil d'Ariane des pages servies par une route de module. */
.wooly-fil ol{list-style:none;display:flex;flex-wrap:wrap;gap:.5rem;padding:0;margin:0 0 1rem;font-size:.875rem}
.wooly-fil li+li::before{content:'\203A';margin-inline-end:.5rem;opacity:.6}
.wooly-fil .current{opacity:.7}

/* Titre de vignette produit : balise de structure, sans effet visuel. */
.product-miniature__titlewrap{font:inherit;margin:0;padding:0;line-height:inherit;color:inherit}

/* Presse et Instagram — ajoutes le 17/09/2026 (blocs H3 de l'audit SEO). */
.wooly-presse__grid {
  display: grid; grid-template-columns: repeat(auto-fit, minmax(230px, 1fr));
  gap: 20px; margin-top: 32px;
}
.wooly-presse__card {
  background: #fff; border: 1px solid var(--wooly-turquoise-pale); border-radius: 14px;
  padding: 22px; text-decoration: none; color: var(--bs-body-color);
  display: flex; flex-direction: column; gap: 10px;
}
.wooly-presse__card:hover { border-color: var(--bs-primary); }
.wooly-presse__media { font-weight: 700; font-size: 1.05rem; color: var(--bs-primary); }
.wooly-presse__quote { font-size: 0.9rem; color: #444; line-height: 1.5; }
.wooly-presse__date { font-size: 0.78rem; color: #777; margin-top: auto; }

.wooly-insta__grid {
  display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
  gap: 12px; margin-top: 32px;
}
.wooly-insta__item {
  position: relative; display: block; border-radius: 14px; overflow: hidden;
  aspect-ratio: 1 / 1; background: var(--wooly-turquoise-pale);
}
/* Le recadrage carre est volontaire : les publications melangent portraits et
   carres, une grille inegale donne l'air d'un bloc casse. */
/* F-IMG09 (12/10/2026) : la vignette 400 px est servie dans une <picture>, qui doit occuper la case. */
.wooly-insta__item picture { display: block; width: 100%; height: 100%; }
.wooly-insta__item img { width: 100%; height: 100%; object-fit: cover; display: block; }
.wooly-insta__video {
  position: absolute; left: 10px; top: 8px; color: #fff; font-size: 0.9rem;
  text-shadow: 0 1px 4px rgba(0,0,0,.5); pointer-events: none;
}
.wooly-insta__lien { margin-top: 20px; text-align: center; font-weight: 600; }

/* Audit 27/09 (technique-02) : contraste WCAG AA 4,5:1 pour le texte blanc des boutons.
   #EC6694 sur blanc = 3,05:1. On passe au magenta fonce de la charte #D5006E (5,18:1) ;
   survol #A8005A (7,47:1). Les variables --bs-primary ne bougent pas : rayures, bordures
   et decors gardent leur rose. Surtitres turquoise : #0094AD (3,15:1 sur creme) -> #00788C
   (5,17:1 sur blanc, 4,52:1 sur creme), meme teinte assombrie. */
.wooly-btn-primary,
.btn-primary,
.ps-mainmenu__tree-item:first-child .ps-mainmenu__tree-link {
  background-color: #D5006E;
  border-color: #D5006E;
}
.wooly-btn-primary:hover,
.btn-primary:hover,
.btn-primary:focus,
.ps-mainmenu__tree-item:first-child .ps-mainmenu__tree-link:hover,
.ps-mainmenu__tree-item:first-child .ps-mainmenu__tree-link:focus {
  background-color: #A8005A;
  border-color: #A8005A;
}
