/* ============================================================
   SITE PUBLIC — thème Diggy (importateur de vins italiens)
   Version du 12 octobre 2026, livraison 34 (pour vérifier que le bon fichier est en ligne)
   Couleurs et polices : variables ci-dessous.
   L'habillage propre à Diggy (boutons, en-tête, pied, accueil, vignette vin)
   est regroupé à la fin du fichier, à partir de « HABILLAGE DIGGY ».
============================================================ */
@font-face{ font-family:"Bodoni Moda"; src:url("../fonts/BodoniModa-Variable.woff2") format("woff2"); font-weight:400 900; font-style:normal; font-display:swap; }
@font-face{ font-family:"Bodoni Moda"; src:url("../fonts/BodoniModa-Italic-Variable.woff2") format("woff2"); font-weight:400 900; font-style:italic; font-display:swap; }
@font-face{ font-family:"Jost"; src:url("../fonts/Jost-Variable.woff2") format("woff2"); font-weight:100 900; font-style:normal; font-display:swap; }

:root{
  --color-text:    #1D1A17;   /* noir chaud du logo */
  --color-muted:   #6B645B;
  --color-bg:      #FFFFFF;
  --color-soft:    #F6F0E6;   /* fond chaud des sections */
  --color-border:  #E4DDD0;
  --color-primary: #34363A;   /* boutons et liens : l'anthracite du bandeau */
  --color-primary-hover: #4A4D52;
  --color-dark:    #34363A;   /* blocs d'appel (professionnels) : le même anthracite, texte clair, bouton doré */
  --color-banner:  #3B3D40;   /* bandeau d'annonce : gris anthracite, texte blanc */
  --color-accent:  #A08353;   /* doré de la marque : filets, boutons, grands titres */
  --color-accent-text:  #7A6238; /* doré foncé : petits textes (contraste suffisant sur clair) */
  --color-accent-light: #C9AB78; /* doré clair : textes sur fond sombre */
  --color-success: #4C7A5E;
  --color-danger:  #A6423B;
  --font-body:     "Jost", system-ui, -apple-system, "Segoe UI", sans-serif;
  --font-title:    "Bodoni Moda", "Didot", Georgia, serif;
  --radius:        1rem;
  --pill:          99px;
  --container:     1180px;
}

*,*::before,*::after{ box-sizing:border-box; }
[hidden]{ display:none !important; }   /* l'attribut hidden l'emporte toujours sur le display d'un composant */
html{ -webkit-text-size-adjust:100%; }
body{ margin:0; font-family: var(--font-body); font-size:1rem; line-height:1.65; color: var(--color-text); background: var(--color-bg); display:flex; flex-direction:column; min-height:100vh; }
img{ max-width:100%; height:auto; }
a{ color: var(--color-primary); }
h1,h2,h3,h4{ font-family: var(--font-title); line-height:1.15; font-weight:400; text-wrap:balance; }
.container{ width:100%; max-width: var(--container); margin:0 auto; padding:0 1.25rem; }
.visually-hidden{ position:absolute !important; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; }
.skip-link{ position:absolute; left:-999px; top:.5rem; background:#fff; padding:.5rem 1rem; z-index:100; }
.skip-link:focus{ left:.5rem; }

/* --- Bandeaux --- */
.preview-bar{ background:#E6DB74; color:#1C2029; text-align:center; font-size:.85rem; padding:.45rem 1rem; font-weight:600; }
.site-banner{ background: var(--color-primary); color:#fff; text-align:center; font-size:.9rem; padding:.5rem 1rem; }
.site-banner p{ margin:0; }
.site-banner a{ color:#fff; }

/* --- En-tête et menu --- */
.site-header{ border-bottom:1px solid var(--color-border); background:#fff; position:sticky; top:0; z-index:50; }
.header-inner{ display:flex; align-items:center; justify-content:space-between; gap:1.5rem; min-height:72px; }
.brand{ font-family: var(--font-title); font-size:1.4rem; font-weight:600; color: var(--color-text); text-decoration:none; display:flex; align-items:center; }
.brand img{ display:block; max-height:44px; width:auto; }
.site-nav ul{ list-style:none; margin:0; padding:0; }
.site-nav > ul{ display:flex; gap:.25rem; }
.site-nav a{ display:block; padding:.55rem .85rem; color: var(--color-text); text-decoration:none; font-weight:500; font-size:.95rem; border-radius:.5rem; }
.site-nav a:hover, .site-nav .is-active > a{ color: var(--color-primary); background: var(--color-soft); }
.site-nav .has-children{ position:relative; }
.sub-menu{ display:none; position:absolute; top:100%; left:0; min-width:220px; background:#fff; border:1px solid var(--color-border); border-radius: var(--radius); padding:.4rem; box-shadow:0 12px 30px -12px rgba(0,0,0,.2); }
.has-children:hover > .sub-menu, .has-children:focus-within > .sub-menu{ display:block; }
.nav-toggle{ display:none; width:44px; height:44px; border:1px solid var(--color-border); background:#fff; border-radius:.6rem; cursor:pointer; position:relative; }
.nav-toggle-bar, .nav-toggle-bar::before, .nav-toggle-bar::after{ position:absolute; left:12px; right:12px; height:2px; background: var(--color-text); content:""; }
.nav-toggle-bar{ top:21px; } .nav-toggle-bar::before{ top:-6px; left:0; right:0; } .nav-toggle-bar::after{ top:6px; left:0; right:0; }
@media (max-width: 860px){
  .nav-toggle{ display:block; }
  .site-nav{ display:none; position:absolute; top:100%; left:0; right:0; background:#fff; border-bottom:1px solid var(--color-border); padding:.75rem 1.25rem 1.25rem; }
  .site-nav.is-open{ display:block; }
  .site-nav > ul{ flex-direction:column; }
  .sub-menu{ display:block; position:static; border:none; box-shadow:none; padding:0 0 0 1rem; }
}

/* --- Contenu --- */
.site-main{ flex:1; padding-bottom:3rem; }
.page-content{ padding-top:2.5rem; max-width:860px; }
.page-title{ font-size: clamp(1.8rem, 4vw, 2.6rem); margin:0 0 1.25rem; }
.breadcrumb{ font-size:.85rem; color: var(--color-muted); margin-bottom:1rem; }
.breadcrumb a{ color: var(--color-muted); }
.cms-content > :first-child{ margin-top:0; }
.cms-content img{ border-radius:.5rem; }
.cms-content blockquote{ margin:1.5rem 0; padding:.5rem 1.25rem; border-left:3px solid var(--color-accent); color: var(--color-muted); font-style:italic; }
.cms-content iframe{ max-width:100%; border:0; border-radius:.5rem; }
.content-full > *{ max-width: var(--container); margin-left:auto; margin-right:auto; padding-left:1.25rem; padding-right:1.25rem; }
.intro{ font-size:1.1rem; color: var(--color-muted); margin-bottom:1.5rem; }
.hero{ padding:6rem 0; background: var(--color-soft); text-align:center; }
.hero h1{ font-size: clamp(2.2rem, 6vw, 3.6rem); margin:0 0 .75rem; }
.hero-lead{ font-size:1.2rem; color: var(--color-muted); margin:0; }

/* --- Boutons, messages, formulaires --- */
.button{ display:inline-flex; align-items:center; gap:.5rem; background: var(--color-primary); color:#fff; border:none; border-radius:.6rem; padding:.8rem 1.4rem; font:inherit; font-weight:600; text-decoration:none; cursor:pointer; }
.button:hover{ filter: brightness(1.12); }
.notice{ margin:1.25rem 0 0; padding:.85rem 1.1rem; border-radius:.6rem; font-weight:500; }
.notice-success{ background:#E7F0EA; color: var(--color-success); }
.notice-error{ background:#F7E7E5; color: var(--color-danger); }
.form{ display:flex; flex-direction:column; gap:1rem; margin-top:1.5rem; }
.form-row{ display:flex; flex-direction:column; gap:.35rem; }
.form-cols{ display:grid; grid-template-columns: 1fr 1fr; gap:1rem; }
@media (max-width: 600px){ .form-cols{ grid-template-columns: 1fr; } }
.form label{ font-weight:600; font-size:.9rem; }
.form input, .form textarea, .form select{ font:inherit; padding:.75rem .9rem; border:1px solid var(--color-border); border-radius:.6rem; background:#fff; width:100%; }
.form input:focus, .form textarea:focus{ outline:2px solid var(--color-primary); outline-offset:1px; }
.form-check{ display:flex; gap:.6rem; align-items:flex-start; font-weight:400 !important; font-size:.9rem !important; }
.form-check input{ width:auto; margin-top:.3rem; }
.hp-field{ position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden; }

/* --- Contact --- */
.contact-grid{ display:grid; grid-template-columns: minmax(0,1fr) 300px; gap:2.5rem; align-items:start; }
.page-content:has(.contact-grid){ max-width: var(--container); }
.contact-card{ background: var(--color-soft); border-radius: var(--radius); padding:1.5rem; }
.contact-card-title{ font-family: var(--font-title); font-size:1.2rem; font-weight:600; margin-top:0; }
@media (max-width: 860px){ .contact-grid{ grid-template-columns: 1fr; } }

/* --- Blog --- */
.page-content:has(.card-grid){ max-width: var(--container); }
.chips{ display:flex; flex-wrap:wrap; gap:.5rem; margin:0 0 2rem; }
.chip{ padding:.4rem .9rem; border:1px solid var(--color-border); border-radius:2rem; font-size:.88rem; text-decoration:none; color: var(--color-text); }
.chip.is-active, .chip:hover{ background: var(--color-primary); border-color: var(--color-primary); color:#fff; }
.card-grid{ display:grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap:1.75rem; }
.card{ border:1px solid var(--color-border); border-radius: var(--radius); overflow:hidden; display:flex; flex-direction:column; background:#fff; }
.card-media{ display:block; aspect-ratio: 16 / 10; background: var(--color-soft); }
.card-media img{ width:100%; height:100%; object-fit:cover; display:block; }
.card-body{ padding:1.1rem 1.25rem 1.4rem; }
.card-meta{ font-size:.8rem; color: var(--color-muted); margin:0 0 .4rem; }
.card-title{ font-size:1.25rem; margin:0 0 .5rem; }
.card-title a{ color: var(--color-text); text-decoration:none; }
.card-title a:hover{ color: var(--color-primary); }
.card-text{ margin:0; color: var(--color-muted); font-size:.95rem; }
.pager{ display:flex; justify-content:space-between; align-items:center; gap:1rem; margin-top:2.5rem; font-size:.95rem; }
.post{ padding-top:2.5rem; max-width:780px; }
.post-meta{ color: var(--color-muted); font-size:.9rem; margin-top:-.5rem; }
.post-cover{ margin:1.5rem 0 2rem; }
.post-cover img{ width:100%; border-radius: var(--radius); }
.post-tags{ margin-top:2rem; display:flex; flex-wrap:wrap; gap:.4rem; }
.tag{ font-size:.85rem; background: var(--color-soft); padding:.25rem .65rem; border-radius:1rem; }
.empty{ color: var(--color-muted); }

/* --- 404 --- */
.error-page{ text-align:center; padding-top:5rem; }
.error-code{ font-family: var(--font-title); font-size:5rem; color: var(--color-accent); margin:0; line-height:1; }

/* --- Pied de page --- */
.site-footer{ background: var(--color-soft); border-top:1px solid var(--color-border); font-size:.92rem; }
.footer-grid{ display:grid; grid-template-columns: 2fr 1fr 1fr; gap:2rem; padding-top:2.5rem; padding-bottom:2rem; }
.footer-brand{ font-family: var(--font-title); font-size:1.25rem; font-weight:600; margin-top:0; }
.footer-grid p{ margin:0 0 .5rem; }
.footer-grid a{ color: var(--color-text); }
.footer-nav ul{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:.4rem; }
.footer-socials{ display:flex; gap:1rem; }
.footer-bottom{ border-top:1px solid var(--color-border); padding-top:1rem; padding-bottom:1.5rem; color: var(--color-muted); font-size:.82rem; }
@media (max-width: 760px){ .footer-grid{ grid-template-columns: 1fr; } }

/* ============================================================
   BOUTIQUE : en-tête, catalogue, fiche produit, panier
============================================================ */
.header-tools{ display:flex; align-items:center; gap:.5rem; }
.header-tools .site-nav{ order:1; }
.header-tools .cart-link{ order:2; }
.header-tools .nav-toggle{ order:3; }
.cart-link{ position:relative; display:inline-flex; align-items:center; justify-content:center; width:44px; height:44px; border-radius:.6rem; color: var(--color-text); }
.cart-link:hover{ background: var(--color-soft); }
.cart-count{ position:absolute; top:4px; right:2px; min-width:18px; height:18px; padding:0 5px; border-radius:9px; background: var(--color-primary); color:#fff; font-size:.7rem; font-weight:700; display:flex; align-items:center; justify-content:center; }
@media (max-width: 860px){ .header-tools .site-nav{ order:3; } }

.price{ display:inline-flex; align-items:baseline; gap:.55rem; flex-wrap:wrap; }
.price-now{ font-weight:600; }
.price-now.is-promo{ color: var(--color-danger); }
.price-old{ color: var(--color-muted); font-size:.9em; }
.price small{ font-size:.7em; font-weight:500; color: var(--color-muted); }
.price.is-large{ font-size:1.5rem; }
.promo-label{ display:inline-block; font-size:.82rem; color: var(--color-danger); font-weight:600; margin:.3rem 0 0; }
.promo-badge, .soldout-badge{ position:absolute; top:.7rem; left:.7rem; background: var(--color-danger); color:#fff; font-size:.78rem; font-weight:700; padding:.25rem .55rem; border-radius:2rem; }
.soldout-badge{ background: var(--color-text); left:auto; right:.7rem; }

/* --- Catalogue --- */
.catalog{ padding-top:2.5rem; }
.catalog-layout{ display:grid; grid-template-columns: 240px minmax(0,1fr); gap:2rem; align-items:start; }
.catalog-layout.no-filters{ grid-template-columns: minmax(0,1fr); }
.filters summary{ font-weight:600; cursor:pointer; padding:.6rem 0; list-style:none; }
.filters summary::-webkit-details-marker{ display:none; }
@media (min-width: 861px){ .filters summary{ pointer-events:none; } }
.filter-group{ border-top:1px solid var(--color-border); padding:.9rem 0; }
.filter-title{ font-weight:600; font-size:.9rem; margin:0 0 .5rem; }
.filter-group ul{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:.2rem; }
.filter-option{ display:flex; align-items:center; gap:.55rem; padding:.3rem 0; color: var(--color-text); text-decoration:none; font-size:.92rem; }
.filter-box{ width:16px; height:16px; border:1.5px solid var(--color-border); border-radius:4px; flex-shrink:0; }
.filter-option.is-on .filter-box{ background: var(--color-primary); border-color: var(--color-primary); box-shadow: inset 0 0 0 3px #fff; }
.filter-count{ margin-left:auto; color: var(--color-muted); font-size:.8rem; }
.filter-reset{ display:inline-block; margin-top:.5rem; font-size:.88rem; }
@media (max-width: 860px){ .catalog-layout{ grid-template-columns: minmax(0,1fr); } .filters{ border:1px solid var(--color-border); border-radius: var(--radius); padding:0 1rem; } }
.catalog-toolbar{ display:flex; justify-content:space-between; align-items:center; gap:1rem; flex-wrap:wrap; margin-bottom:1.25rem; font-size:.9rem; color: var(--color-muted); }
.sort{ display:flex; gap:.9rem; flex-wrap:wrap; }
.sort a{ color: var(--color-muted); text-decoration:none; }
.sort a.is-active{ color: var(--color-text); font-weight:600; text-decoration:underline; }
.product-grid{ display:grid; grid-template-columns: repeat(auto-fill, minmax(210px, 1fr)); gap:1.75rem 1.25rem; }
.product-card{ display:flex; flex-direction:column; gap:.35rem; }
.product-media{ position:relative; display:block; aspect-ratio: 1 / 1; background: var(--color-soft); border-radius: var(--radius); overflow:hidden; }
.product-media img{ width:100%; height:100%; object-fit:cover; transition: transform .4s ease; }
.product-card:hover .product-media img{ transform: scale(1.04); }
.product-name{ font-family: var(--font-body); font-size:.98rem; font-weight:500; margin:.4rem 0 0; }
.product-name a{ color: var(--color-text); text-decoration:none; }

/* --- Fiche produit --- */
.product-page{ padding-top:2.5rem; }
.product-layout{ display:grid; grid-template-columns: minmax(0,1.1fr) minmax(0,1fr); gap:3rem; align-items:start; }
@media (max-width: 860px){ .product-layout{ grid-template-columns: minmax(0,1fr); gap:1.5rem; } }
.gallery-main{ position:relative; aspect-ratio: 1 / 1; background: var(--color-soft); border-radius: var(--radius); overflow:hidden; }
.gallery-main img{ width:100%; height:100%; object-fit:cover; }
.gallery-thumbs{ display:flex; gap:.6rem; margin-top:.75rem; }
.gallery-thumbs button{ width:72px; height:72px; padding:0; border:2px solid transparent; border-radius:.5rem; overflow:hidden; cursor:pointer; background: var(--color-soft); }
.gallery-thumbs button.is-active{ border-color: var(--color-primary); }
.gallery-thumbs img{ width:100%; height:100%; object-fit:cover; }
.product-lead{ color: var(--color-muted); font-size:1.05rem; }
.stock-state{ font-size:.9rem; color: var(--color-success); font-weight:600; }
.stock-state.is-out{ color: var(--color-danger); }
.add-to-cart{ display:flex; gap:.6rem; margin:1.25rem 0; }
.add-to-cart input{ width:80px; font:inherit; padding:.75rem; border:1px solid var(--color-border); border-radius:.6rem; text-align:center; }
.product-attrs{ display:grid; grid-template-columns: auto 1fr; gap:.4rem 1.25rem; font-size:.92rem; border-top:1px solid var(--color-border); padding-top:1rem; }
.product-attrs div{ display:contents; }
.product-attrs dt{ color: var(--color-muted); }
.product-attrs dd{ margin:0; }
.product-description{ margin-top:3rem; max-width:780px; }

/* --- Panier --- */
.page-content.cart-page{ max-width: var(--container); }
.cart-layout{ display:grid; grid-template-columns: minmax(0,1fr) 340px; gap:2.5rem; align-items:start; }
@media (max-width: 900px){ .cart-layout{ grid-template-columns: minmax(0,1fr); } }
.cart-line{ display:grid; grid-template-columns: 72px minmax(0,1fr) 70px 100px 32px; gap:1rem; align-items:center; padding:1rem 0; border-bottom:1px solid var(--color-border); }
.cart-thumb{ width:72px; height:72px; border-radius:.5rem; overflow:hidden; background: var(--color-soft); display:block; }
.cart-thumb img{ width:100%; height:100%; object-fit:cover; }
.cart-line-info{ display:flex; flex-direction:column; gap:.2rem; }
.cart-line-name{ color: var(--color-text); font-weight:600; text-decoration:none; }
.cart-qty{ width:70px; font:inherit; padding:.5rem; border:1px solid var(--color-border); border-radius:.5rem; text-align:center; }
.cart-line-total{ text-align:right; font-weight:600; }
.cart-remove{ border:none; background:none; font-size:1.4rem; color: var(--color-muted); cursor:pointer; line-height:1; }
.cart-remove:hover{ color: var(--color-danger); }
@media (max-width: 600px){ .cart-line{ grid-template-columns: 60px minmax(0,1fr) 60px; } .cart-line-total{ grid-column:2; text-align:left; } .cart-remove{ grid-column:3; grid-row:1; justify-self:end; align-self:start; } }
.cart-summary{ background: var(--color-soft); border-radius: var(--radius); padding:1.5rem; display:flex; flex-direction:column; gap:1rem; position:sticky; top:96px; }
.promo-form label{ font-weight:600; font-size:.88rem; display:block; margin-bottom:.35rem; }
.promo-row{ display:flex; gap:.5rem; }
.promo-row input{ flex:1; min-width:0; font:inherit; padding:.65rem .8rem; border:1px solid var(--color-border); border-radius:.6rem; text-transform:uppercase; }
.promo-applied{ display:flex; justify-content:space-between; gap:.5rem; align-items:center; font-size:.9rem; background:#E7F0EA; color: var(--color-success); padding:.65rem .8rem; border-radius:.6rem; }
.link-button{ background:none; border:none; color: inherit; text-decoration:underline; cursor:pointer; font:inherit; }
.button-light{ background:#fff; color: var(--color-text); border:1px solid var(--color-border); }
.button-block{ justify-content:center; width:100%; }
.totals{ margin:0; display:flex; flex-direction:column; gap:.5rem; }
.totals div{ display:flex; justify-content:space-between; }
.totals dd{ margin:0; font-weight:500; }
.totals .is-discount{ color: var(--color-success); }
.totals .is-total{ border-top:1px solid var(--color-border); padding-top:.75rem; font-size:1.15rem; font-weight:700; }
.muted{ color: var(--color-muted); }
.free-shipping{ margin:0; font-size:.88rem; color: var(--color-primary); font-weight:500; }
.continue-link{ font-size:.9rem; text-align:center; }

/* ============================================================
   COMMANDE, CONFIRMATION, COMPTE CLIENT
============================================================ */
.header-tools .account-link{ order:2; }
.page-content.checkout-page, .page-content.account-page{ max-width: var(--container); }
.checkout-layout{ display:grid; grid-template-columns: minmax(0,1fr) 360px; gap:2.5rem; align-items:start; margin-top:0; }
@media (max-width: 900px){ .checkout-layout{ grid-template-columns: minmax(0,1fr); } }
.checkout-main{ display:flex; flex-direction:column; gap:1.5rem; }
.checkout-step{ border:1px solid var(--color-border); border-radius: var(--radius); padding:1.25rem 1.5rem 1.5rem; margin:0; display:flex; flex-direction:column; gap:1rem; }
.checkout-step legend{ font-family: var(--font-title); font-size:1.2rem; font-weight:600; padding:0 .4rem; }
.form-cols-3{ grid-template-columns: 1fr 1.4fr 1fr; }
@media (max-width: 600px){ .form-cols-3{ grid-template-columns: 1fr; } }
.company-fields summary{ cursor:pointer; font-size:.92rem; color: var(--color-primary); }
.company-fields[open] summary{ margin-bottom:.75rem; }
.shipping-options{ display:flex; flex-direction:column; gap:.5rem; }
.shipping-option{ display:flex; align-items:center; gap:.8rem; padding:.85rem 1rem; border:1px solid var(--color-border); border-radius:.6rem; cursor:pointer; }
.shipping-option:has(input:checked){ border-color: var(--color-primary); background: var(--color-soft); }
.shipping-option input{ width:auto; margin:0; }
.shipping-name{ flex:1; font-weight:500; display:flex; flex-direction:column; }
.shipping-name small{ font-weight:400; color: var(--color-muted); font-size:.82rem; }
.shipping-price{ font-weight:600; }
.shipping-fields{ display:flex; flex-direction:column; gap:1rem; margin-top:.5rem; }
.summary-title{ font-family: var(--font-title); font-size:1.15rem; font-weight:600; margin:0 0 .5rem; }
.summary-lines{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:.5rem; font-size:.92rem; }
.summary-lines li{ display:flex; justify-content:space-between; gap:1rem; }
.summary-lines small{ display:block; color: var(--color-danger); font-size:.78rem; }
.secure-note{ margin:0; font-size:.8rem; color: var(--color-muted); text-align:center; }

.confirmation-page{ text-align:center; max-width:720px; }
.confirm-icon{ width:64px; height:64px; margin:0 auto 1rem; border-radius:50%; display:flex; align-items:center; justify-content:center; font-size:1.8rem; font-weight:700; background: var(--color-soft); color: var(--color-muted); }
.confirm-icon.is-ok{ background:#E7F0EA; color: var(--color-success); }
.confirm-icon.is-ko{ background:#F7E7E5; color: var(--color-danger); }
.order-recap{ text-align:left; background: var(--color-soft); border-radius: var(--radius); padding:1.5rem; margin:2rem 0 1.5rem; display:flex; flex-direction:column; gap:1rem; }
.inline-actions{ display:flex; gap:.75rem; justify-content:center; flex-wrap:wrap; }
.simulation-page{ max-width:640px; }
.simulation-page .inline-actions{ justify-content:flex-start; }

.auth-page{ max-width:760px; }
.auth-grid{ display:grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap:2.5rem; align-items:start; }
@media (max-width: 700px){ .auth-grid{ grid-template-columns: minmax(0,1fr); } }
.auth-form{ max-width:520px; }
.auth-aside{ background: var(--color-soft); border-radius: var(--radius); padding:1.5rem; margin-top:1.5rem; }
.account-head{ display:flex; justify-content:space-between; align-items:center; gap:1rem; flex-wrap:wrap; }
.order-list{ display:flex; flex-direction:column; border:1px solid var(--color-border); border-radius: var(--radius); overflow:hidden; }
.order-row{ display:grid; grid-template-columns: minmax(0,1fr) auto auto; gap:1.25rem; align-items:center; padding:1rem 1.25rem; border-bottom:1px solid var(--color-border); color: var(--color-text); text-decoration:none; }
.order-row:last-child{ border-bottom:none; }
.order-row:hover{ background: var(--color-soft); }
.order-row small{ display:block; color: var(--color-muted); font-size:.82rem; }
.order-status{ font-size:.85rem; color: var(--color-muted); }
.order-total{ font-weight:600; }
.address-grid{ display:grid; grid-template-columns: repeat(auto-fill, minmax(220px,1fr)); gap:1rem; margin-bottom:2rem; }
.address-card{ border:1px solid var(--color-border); border-radius: var(--radius); padding:1rem 1.25rem; position:relative; }
.address-card .tag{ position:absolute; top:.75rem; right:.75rem; }
.account-page .auth-form + .auth-form{ margin-top:2.5rem; }

/* ============================================================
   MISES EN PAGE : allégée (commande) et sans en-tête ni pied
============================================================ */
.site-header.is-minimal{ position:static; }
.site-header.is-minimal .header-inner{ min-height:64px; }
.secure-badge{ display:inline-flex; align-items:center; gap:.45rem; font-size:.88rem; font-weight:500; color: var(--color-success); }
.site-footer.is-minimal{ background:none; border-top:1px solid var(--color-border); }
.footer-legal{ display:flex; flex-wrap:wrap; justify-content:center; gap:.5rem 1.5rem; padding-top:1.25rem; padding-bottom:1.5rem; font-size:.85rem; }
.footer-legal a{ color: var(--color-muted); }
.layout-none .site-main{ padding-bottom:0; }
.page-blank .content-full > *{ max-width:none; padding:0; }

/* ============================================================
   SECTIONS DE CONTENU (contenu de départ, gabarits du thème)
   Classes utilisables dans l'éditeur (mode Code HTML) :
   section / section-soft / section-hero, container, narrow, eyebrow, lead,
   features + feature, split, cta, actions, visual-placeholder
============================================================ */
.home-content > section, .page-blank section{ max-width:none; padding-left:0; padding-right:0; }
.section{ padding:4rem 0; }
.section-soft{ background: var(--color-soft); }
.section-hero{ padding:6rem 0 5rem; background: var(--color-soft); text-align:center; }
.section-hero.is-compact{ padding:4rem 0 3rem; }
.section-hero h1{ font-size: clamp(2.2rem, 5.5vw, 3.6rem); margin:0 0 1rem; max-width:22ch; margin-left:auto; margin-right:auto; }
.eyebrow{ text-transform:uppercase; letter-spacing:.14em; font-size:.8rem; font-weight:600; color: var(--color-accent); margin:0 0 .75rem; }
.lead{ font-size:1.2rem; color: var(--color-muted); max-width:60ch; margin:0 auto 1.5rem; }
.actions{ display:flex; gap:.75rem; justify-content:center; flex-wrap:wrap; margin:0; }
.narrow{ max-width:780px; }
.features{ display:grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap:2rem; }
.feature{ padding:1.75rem; border:1px solid var(--color-border); border-radius: var(--radius); background:#fff; }
.feature h3{ margin:0 0 .5rem; font-size:1.2rem; }
.feature p{ margin:0; color: var(--color-muted); }
.split{ display:grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap:3rem; align-items:center; }
@media (max-width: 800px){ .split{ grid-template-columns: minmax(0,1fr); } }
.visual-placeholder{ aspect-ratio: 4 / 3; border-radius: var(--radius); background: linear-gradient(135deg, var(--color-border), var(--color-soft)); }
.cta{ text-align:center; }
.cta h2{ margin:0 0 .5rem; }
.cta p{ color: var(--color-muted); margin:0 0 1.5rem; }
.section-head{ display:flex; justify-content:space-between; align-items:baseline; gap:1rem; margin-bottom:1.75rem; flex-wrap:wrap; }
.section-head h2{ margin:0; font-size: clamp(1.6rem, 3vw, 2.1rem); }

/* ============================================================
   HABILLAGE DIGGY
   Tout ce qui suit est propre à ce projet. Formes rondes (boutons en pilule,
   blocs arrondis), noir chaud + doré, titres Bodoni Moda, textes Jost.
============================================================ */
body{ font-size:1.0625rem; }
a{ text-underline-offset:.18em; }
:focus-visible{ outline:2px solid var(--color-accent); outline-offset:2px; }
.page-title{ font-size: clamp(2rem, 4.4vw, 3rem); }

/* --- Boutons --- */
.button{ border:1px solid var(--color-primary); border-radius: var(--pill); padding:.8rem 1.6rem; font-weight:400; font-size:.95rem; letter-spacing:.05em; justify-content:center; transition: background-color .2s, color .2s; }
.button:hover{ filter:none; background: var(--color-primary-hover); border-color: var(--color-primary-hover); }
.button-light{ background:transparent; color: var(--color-text); border-color: var(--color-primary); }
.button-light:hover{ background: var(--color-primary); border-color: var(--color-primary); color:#fff; }
.button-gold{ background: var(--color-accent); border-color: var(--color-accent); color:#17130C; }
.button-gold:hover{ background: var(--color-accent-light); }
.button-inverse{ background:#fff; color: var(--color-text); border-color:#fff; }
.eyebrow{ letter-spacing:.2em; font-size:.78rem; font-weight:400; color: var(--color-accent-text); }
.kicker{ font-family: var(--font-title); font-style:italic; font-size:1.1rem; color: var(--color-accent-text); margin:0; }
.chip{ border-color: var(--color-text); }
.notice{ border-radius: var(--radius); }
.form input, .form textarea, .form select{ border-radius:.75rem; border-color:#CFC6B6; }
.form input:focus, .form textarea:focus{ outline-color: var(--color-accent); }

/* --- Bandeau d'annonce, en-tête, menu --- */
.site-banner{ background: var(--color-banner); color:#fff; font-size:.8rem; letter-spacing:.08em; text-transform:uppercase; }
.site-banner a{ color:#fff; }
.site-header{ border-bottom:1px solid var(--color-border); }
.header-inner{ min-height:104px; }
.brand img{ max-height:72px; }
.site-header.is-minimal .brand img{ max-height:56px; }
.header-tools{ flex:1; justify-content:flex-end; }
.site-nav a{ border-radius: var(--pill); font-weight:400; font-size:1rem; padding:.4rem .9rem; }
.site-nav a:hover, .site-nav .is-active > a{ color: var(--color-text); }
.cart-link{ border-radius:50%; }
.cart-count{ background:#E6D4B0; color:#3A2D1F; font-weight:600; box-shadow:0 0 0 1.5px #fff; }
/* Bouton du menu mobile : deux traits, sans cadre, qui se croisent à l'ouverture */
.nav-toggle{ border:0; border-radius:0; background:none; }
.nav-toggle-bar{ left:9px; right:9px; background:transparent; }
.nav-toggle-bar::before, .nav-toggle-bar::after{ transition: transform .25s ease, top .25s ease, left .25s ease; }
.nav-toggle-bar::before{ top:-5px; }
.nav-toggle-bar::after{ top:5px; left:9px; }
.nav-toggle[aria-expanded="true"] .nav-toggle-bar::before{ top:0; transform: rotate(45deg); }
.nav-toggle[aria-expanded="true"] .nav-toggle-bar::after{ top:0; left:0; transform: rotate(-45deg); }
.sub-menu{ border-radius: var(--radius); }
.sub-menu a{ border-radius:.6rem; }
/* Recherche (dans le menu) */
.nav-search{ display:flex; align-items:center; border:1px solid #CFC6B6; border-radius: var(--pill); background:#fff; overflow:hidden; }
.nav-search:focus-within{ border-color: var(--color-text); }
.nav-search input{ font:inherit; font-size:.95rem; border:0; background:none; color: var(--color-text); padding:.5rem 0 .5rem 1rem; width:10rem; min-width:0; outline:none; }
.nav-search input::placeholder{ color: var(--color-muted); }
.nav-search button{ flex:none; display:flex; align-items:center; justify-content:center; width:2.6rem; height:2.5rem; border:0; background:none; color: var(--color-text); cursor:pointer; }
/* Pastilles de couleur de vin (menu, accueil) : teinte légère, lisible, propre à chaque type */
a.color-chip{ display:block; text-align:center; white-space:nowrap; padding:.38rem 1.05rem; border:1px solid var(--color-border); border-radius: var(--pill); background: var(--color-soft); color: var(--color-text); font-size:.95rem; text-decoration:none; }
a.color-chip.is-rouge, a.color-chip.is-rouges{ background:#F4E1E4; border-color:#E2BFC5; color:#6B1626; }
a.color-chip.is-blanc, a.color-chip.is-blancs{ background:#F8F2D2; border-color:#E5DA9F; color:#5C4C0C; }
a.color-chip.is-rose, a.color-chip.is-roses{ background:#FCE5E0; border-color:#F0C4BB; color:#8C3E34; }
a.color-chip.is-petillant, a.color-chip.is-petillants{ background:#F3EDDC radial-gradient(circle, rgba(160,131,83,.4) 1px, transparent 1.6px) 0 0 / 9px 9px; border-color:#D9C9A3; color:#5F4D2A; }
a.color-chip:hover{ filter: brightness(.95); text-decoration:underline; }
.color-chips{ display:flex; flex-wrap:wrap; gap:.5rem; list-style:none; margin:0; padding:0; }
a.color-chip.is-current{ box-shadow:0 0 0 2px var(--color-text); font-weight:500; }
.catalog-colors{ margin-bottom:2rem; }
/* Sous-menu « Vins » : couleurs, puis pays et régions */
.sub-menu.mega{ padding:1.25rem 1.5rem 1.4rem; }
.mega .color-chips{ padding-bottom:1rem; margin-bottom:1rem; border-bottom:1px solid var(--color-border); }
.mega-families{ display:flex; flex-wrap:wrap; gap:1.25rem 2.5rem; }
.mega a{ padding:.22rem 0; border-radius:0; font-size:.98rem; }
.mega a.color-chip{ padding:.38rem 1.05rem; border-radius: var(--pill); }
.site-nav .mega a:not(.color-chip):hover{ background:none; text-decoration:underline; }
.mega a.mega-title{ font-family: var(--font-title); font-size:1.3rem; font-weight:500; margin-bottom:.2rem; }
.mega-family > ul{ display:grid; grid-template-rows: repeat(6, auto); grid-auto-flow:column; column-gap:2rem; }
.mega-family ul ul{ padding-left:.9rem; font-size:.92em; }
@media (min-width: 861px){
  /* Sous-menu « Vins » sur toute la largeur de l'en-tête */
  .header-inner{ position:relative; }
  .site-nav .has-mega{ position:static; }
  .sub-menu.mega{ left:1.25rem; right:1.25rem; top:calc(100% - .75rem); padding:1.75rem 2.25rem 2rem; }
  .has-mega:hover > a::after, .has-mega:focus-within > a::after{ content:""; position:absolute; left:0; right:0; top:calc(50% + 1.3rem); bottom:0; }  /* pont entre le lien et le panneau */
  .mega .color-chips{ gap:.6rem; }
  .mega a.color-chip{ padding:.45rem 1.5rem; font-size:1rem; }
  .mega-families{ gap:1.5rem 4rem; }
  .mega-family > ul{ column-gap:3rem; }
  .header-tools .site-nav{ flex:1; display:flex; align-items:center; gap:.75rem; }
  .site-nav > .nav-list{ margin-inline:auto; }
}
@media (min-width: 861px) and (max-width: 1140px){
  /* place comptée : la recherche se réduit à sa loupe et se déplie quand on y entre au clavier */
  .nav-search{ border-color:transparent; }
  .nav-search input{ width:0; padding:0; }
  .nav-search:focus-within{ border-color: var(--color-text); }
  .nav-search:focus-within input{ width:9rem; padding:.5rem 0 .5rem 1rem; }
}
@media (max-width: 860px){
  .header-inner{ min-height:84px; }
  .brand img{ max-height:58px; }
  /* Menu mobile en plein écran : il passe sous le logo et les boutons de l'en-tête, qui restent visibles */
  .site-nav.is-open{ display:flex; flex-direction:column; gap:1rem; position:fixed; inset:0; z-index:-1; border-bottom:none; background: var(--color-soft); padding:9rem 1.5rem 2.5rem; overflow-y:auto; overscroll-behavior:contain; }
  .nav-search{ order:-1; flex:none; }
  .nav-search input{ flex:1; width:auto; font-size:1rem; padding:.75rem 0 .75rem 1.2rem; }
  .nav-search button{ width:3.2rem; height:3rem; }
  .site-nav > ul{ gap:0; }
  .site-nav > ul > li{ border-bottom:1px solid #DDD3C2; padding:.55rem 0; }
  .site-nav > ul > li > a{ font-family: var(--font-title); font-size:1.9rem; font-weight:500; line-height:1.2; padding:.35rem 0; border-radius:0; }
  .site-nav a:hover, .site-nav .is-active > a{ background:none; color: var(--color-accent-text); }
  .site-nav ul.sub-menu{ display:flex; flex-wrap:wrap; gap:.4rem; padding:.3rem 0 .5rem; background:none; }
  .site-nav ul.sub-menu a{ border:1px solid var(--color-text); border-radius: var(--pill); padding:.3rem .9rem; font-size:.95rem; }
  .site-nav ul.sub-menu a:hover{ background: var(--color-text); color:#fff; }
  /* « Vins » : les couleurs sur une seule ligne, puis chaque pays et ses régions sur deux colonnes */
  .site-nav .sub-menu.mega{ display:block; width:auto; max-width:none; padding:.4rem 0 .6rem; background:none; }
  .mega .color-chips{ display:grid; grid-auto-flow:column; grid-auto-columns:minmax(0,1fr); gap:.4rem; border-bottom:none; padding-bottom:0; margin-bottom:1.1rem; }
  .mega a.color-chip{ padding:.5rem .15rem; font-size:.88rem; }
  .mega-families{ flex-direction:column; gap:1rem; }
  .mega a.mega-title{ font-size:1.35rem; }
  .mega-family > ul{ grid-template-rows:none; grid-auto-flow:row; grid-template-columns: repeat(2, minmax(0,1fr)); column-gap:1.25rem; }
  .mega a{ padding:.32rem 0; font-size:1rem; }
  html.nav-open{ overflow:hidden; }
  html.nav-open .site-header{ border-bottom-color:transparent; }
}

/* --- Pied de page --- */
.site-footer{ background: var(--color-soft); border-top:1px solid var(--color-border); color: var(--color-text); }
.footer-grid{ display:flex; flex-wrap:wrap; gap:2rem 3rem; padding-top:3.5rem; padding-bottom:2.5rem; }
.footer-about{ flex:1 1 230px; max-width:300px; display:flex; flex-direction:column; gap:.9rem; }
.footer-about > *, .footer-about p{ margin:0; }
.footer-logo img{ display:block; width:150px; height:auto; }
.footer-about .cms-content{ color: var(--color-muted); }
.footer-col{ flex:0 1 auto; min-width:130px; }
.footer-col.is-wide{ flex:1 1 260px; }
.footer-title{ font-family: var(--font-title); font-size:1.2rem; font-weight:500; font-style:normal; color: var(--color-text); margin:0 0 .7rem; }
.footer-title:not(:first-child){ margin-top:1.4rem; }
.footer-grid ul{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:.4rem; }
.footer-grid ul.footer-regions{ display:block; columns:2; column-gap:2rem; }
.footer-regions li{ margin-bottom:.4rem; break-inside:avoid; }
.footer-grid a{ color: var(--color-text); text-decoration:none; }
.footer-grid a:hover{ color: var(--color-accent-text); text-decoration:underline; }
.footer-title a{ color:inherit; }
.footer-contact p{ margin:0 0 .4rem; }
.footer-socials{ display:flex; gap:1rem; }
.footer-socials a{ text-decoration:underline; }
.footer-bottom{ border-top:1px solid #DDD3C2; color: var(--color-muted); display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:.5rem 1.5rem; padding-top:1.1rem; padding-bottom:1.4rem; font-size:.85rem; }
.footer-bottom .payment-logos{ padding:0; }
.site-footer.is-minimal{ color: var(--color-muted); background:none; }

/* --- Sections --- */
.site-main{ padding-bottom:0; }
.site-main > .container:last-child, .site-main > section.container:last-child, .site-main > .page-content:last-child, .site-main > .post:last-child{ padding-bottom:4rem; }
.section{ padding:4.5rem 0; }
.section-flush{ padding-top:0; }
@media (max-width: 760px){ .section{ padding:3rem 0; } .section-flush{ padding-top:0; } }
.cta-band{ background: var(--color-dark); color:#fff; padding:4rem 0; }
.cta-band-inner{ text-align:center; }
.cta-band h2{ color:#fff; margin:0 0 .5rem; font-size: clamp(1.7rem, 3vw, 2.3rem); }
.cta-band p{ color: rgba(255,255,255,.8); margin:0 0 1.5rem; }
.cta-band p:last-child{ margin-bottom:0; }
.cms-content .button{ text-decoration:none; }
.cms-content .button-light{ color: var(--color-text); }
.cms-content .button-light:hover{ color:#fff; }
.split-visual img{ width:100%; border-radius: var(--radius); }
.photo-placeholder{ aspect-ratio: 4 / 3; border-radius: var(--radius); background: linear-gradient(150deg, #3A2A1C, #7B5A3A 55%, #C2A273); }

/* ============================================================
   VIGNETTE VIN (_include/theme/partials/wine.php)
============================================================ */
.wine-grid{ display:grid; grid-template-columns: repeat(auto-fill, minmax(235px, 1fr)); gap:1.4rem; }
.wine-card{ display:flex; flex-direction:column; gap:.3rem; min-width:0; background:#fff; border-radius: var(--radius); padding:1rem; }
.wine-media{ position:relative; display:flex; align-items:center; justify-content:center; aspect-ratio: 1 / 1; background: var(--color-soft); border-radius:.65rem; overflow:hidden; margin-bottom:.5rem; }
.wine-media img{ width:100%; height:100%; object-fit:contain; transition: transform .4s ease; }
.wine-card:hover .wine-media img{ transform: scale(1.04); }
.wine-bottle{ height:72%; width:auto; fill:none; stroke: var(--color-accent); stroke-width:1.2; }
.wine-origin{ display:flex; align-items:center; gap:.45rem; margin:0; font-size:.82rem; letter-spacing:.05em; color: var(--color-muted); }
.wine-origin a{ color:inherit; text-decoration:none; }
.wine-origin a:hover{ color: var(--color-text); text-decoration:underline; }
.wine-dot{ flex:none; width:.55rem; height:.55rem; border-radius:50%; background: var(--color-accent); }
.wine-dot.is-rouge, .wine-dot.is-rouges{ background:#6B1626; }
.wine-dot.is-blanc, .wine-dot.is-blancs{ background:#D8C46E; }
.wine-dot.is-rose, .wine-dot.is-roses{ background:#E2A097; }
.wine-dot.is-petillant, .wine-dot.is-petillants{ background:#EADFB8; box-shadow: inset 0 0 0 1px var(--color-accent); }
.wine-name{ font-size:1.4rem; font-weight:500; margin:0; }
.wine-name a{ color: var(--color-text); text-decoration:none; }
.wine-name a:hover{ text-decoration:underline; }
.wine-estate{ margin:0; font-family: var(--font-title); font-style:italic; font-size:1.05rem; color: var(--color-accent-text); }
.wine-appellation{ margin:0; font-size:.9rem; color: var(--color-muted); }
.wine-buy{ margin-top:auto; padding-top:.8rem; display:flex; align-items:center; justify-content:space-between; gap:.5rem; }
.wine-appellation + .wine-buy, .wine-estate + .wine-buy, .wine-name + .wine-buy{ border-top:1px solid var(--color-border); margin-top:.7rem; }
.wine-card{ justify-content:flex-start; }
.wine-card .wine-buy{ margin-top:auto; }
.wine-buy .price{ font-family: var(--font-body); font-size:1.3rem; white-space:nowrap; gap:.4rem; font-variant-numeric: tabular-nums; }
.wine-buy .price-now{ font-weight:600; }
.wine-buy .price-old{ font-size:.7em; }
.wine-add{ display:flex; border:1px solid var(--color-primary); border-radius: var(--pill); overflow:hidden; flex:none; background:#fff; }
.wine-add select{ font:inherit; font-size:.95rem; font-variant-numeric: tabular-nums; border:0; background:#fff; color: var(--color-text); padding:.45rem .1rem .45rem .7rem; margin-right:.45rem; cursor:pointer; }
.wine-add button{ font:inherit; font-size:.9rem; letter-spacing:.03em; border:0; background: var(--color-primary); color:#fff; padding:.5rem .9rem .5rem .75rem; cursor:pointer; }
.wine-add button:hover{ background: var(--color-primary-hover); }
.wine-add select:focus, .wine-add select:focus-visible{ outline:none; }      /* pas de cadre sur le déroulant : il se décalait */
.wine-add:has(select:focus-visible){ box-shadow:0 0 0 2px var(--color-accent); }  /* repère clavier, autour de l'ensemble */
.wine-add button:focus-visible{ outline-offset:-3px; }

/* ============================================================
   ACCUEIL (_include/theme/home.php)
============================================================ */
.home-hero{ background: radial-gradient(70% 90% at 76% 55%, #5A5046 0, #34363A 55%, #27292C 100%); color:#EFE7D8; padding:4rem 0 3.5rem; }
.home-hero{ overflow:hidden; }
.home-hero h1{ color:#fff; }
.home-hero .eyebrow{ color: var(--color-accent-light); }
.home-hero .button{ background: var(--color-accent); border-color: var(--color-accent); color:#17130C; }
.home-hero .button:hover{ background: var(--color-accent-light); border-color: var(--color-accent-light); }
.home-hero .button-light{ background:transparent; border-color:#9A8F7E; color:#EFE7D8; }
.home-hero .button-light:hover{ background:#EFE7D8; border-color:#EFE7D8; color: var(--color-text); }
.home-hero-grid{ display:grid; grid-template-columns: minmax(0,1.05fr) minmax(0,.95fr); gap:3rem; align-items:center; }
.home-hero-text{ display:flex; flex-direction:column; gap:1.25rem; min-width:0; }
.home-hero-text > *{ margin:0; }
.home-hero h1{ font-size: clamp(2.4rem, 5.4vw, 4.2rem); line-height:1.08; }
.tonight h2 em{ font-style:italic; color: var(--color-accent-text); }
.home-hero h1 em{ font-style:italic; color: var(--color-accent-light); }
.home-hero .lead{ font-weight:300; font-size:1.2rem; color:#DDD6CA; max-width:46ch; }
.home-hero .actions{ justify-content:flex-start; flex-wrap:nowrap; }
.home-hero .actions .button{ white-space:nowrap; }
@media (max-width: 520px){ .home-hero .actions{ gap:.5rem; } .home-hero .actions .button{ padding:.7rem 1.05rem; font-size:.9rem; letter-spacing:.02em; } }
@media (max-width: 350px){ .home-hero .actions{ flex-wrap:wrap; } }
.home-hero-visual img.is-illustration, .estate-visual img.is-illustration{ aspect-ratio:auto; height:auto; object-fit:contain; border-radius:0; }
.home-hero-visual{ display:flex; align-items:flex-end; justify-content:center; }
.home-hero-visual img{ display:block; width:112%; max-width:none; height:auto; max-height:460px; object-fit:contain; border-radius: var(--radius); filter: drop-shadow(0 26px 26px rgba(0,0,0,.55)); }

.tonight-head{ display:grid; grid-template-columns: minmax(0,1.3fr) minmax(0,1fr); gap:1rem 2.5rem; align-items:end; margin-bottom:2rem; }
.tonight h2{ font-size: clamp(2.1rem, 4.6vw, 3.4rem); margin:0; }
.tonight-head p{ margin:0; color:#4B443C; max-width:44ch; }
.tonight-more{ margin-top:2rem; }
.tonight.section{ padding-bottom:2.25rem; }
.strengths.section{ padding-top:1.5rem; }
/* le bandeau est sur fond chaud : la sélection passe sur blanc, vignettes sur fond chaud */
.tonight.section-soft{ background:#fff; }
.tonight .wine-card, .search-results .wine-card, .catalog-grid .wine-card{ background: var(--color-soft); }
.tonight .wine-media, .search-results .wine-media, .catalog-grid .wine-media{ background:#fff; }
.catalog-grid{ grid-template-columns: repeat(auto-fill, minmax(215px, 1fr)); }
.catalog{ padding-bottom:4rem; }

/* ============================================================
   PANNEAU LATÉRAL DU PANIER (layout.php)
============================================================ */
.cart-panel{ position:fixed; inset:0; z-index:90; }
.cart-panel-backdrop{ position:absolute; inset:0; background:rgba(29,26,23,.45); opacity:0; transition: opacity .25s ease; }
.cart-panel-box{ position:absolute; top:0; right:0; bottom:0; width:min(27rem, 100%); background:#fff; display:flex; flex-direction:column; transform: translateX(100%); transition: transform .25s ease; box-shadow:-20px 0 50px -30px rgba(0,0,0,.5); outline:none; }
.cart-panel.is-open .cart-panel-backdrop{ opacity:1; }
.cart-panel.is-open .cart-panel-box{ transform:none; }
.cart-panel-head{ display:flex; align-items:center; justify-content:space-between; padding:1.25rem 1.5rem; border-bottom:1px solid var(--color-border); }
.cart-panel-head h2{ margin:0; font-size:1.7rem; font-weight:500; }
.cart-panel-head h2 span{ font-family: var(--font-body); font-size:1rem; color: var(--color-muted); }
.cart-panel-close{ position:relative; width:44px; height:44px; border:0; background:none; cursor:pointer; }
.cart-panel-close span::before, .cart-panel-close span::after{ content:""; position:absolute; left:10px; right:10px; top:21px; height:2px; background: var(--color-text); transform: rotate(45deg); }
.cart-panel-close span::after{ transform: rotate(-45deg); }
.cart-panel-empty{ padding:2.5rem 1.5rem; display:flex; flex-direction:column; align-items:flex-start; gap:1.25rem; color: var(--color-muted); }
.cart-panel-empty p{ margin:0; }
.cart-panel-lines{ list-style:none; margin:0; padding:.5rem 1.5rem; flex:1; overflow-y:auto; overscroll-behavior:contain; }
.cart-panel-lines li{ display:grid; grid-template-columns: 56px minmax(0,1fr) auto auto; gap:.7rem; align-items:center; padding:.9rem 0; border-bottom:1px solid var(--color-border); }
.cart-panel-thumb{ width:56px; height:72px; border-radius:.5rem; border:1px solid var(--color-border); background:#fff; overflow:hidden; display:block; }
.cart-panel-thumb img{ width:100%; height:100%; object-fit:contain; }
.cart-panel-info{ display:flex; flex-direction:column; gap:.15rem; min-width:0; }
.cart-panel-info a{ font-family: var(--font-title); font-size:1.15rem; font-weight:500; line-height:1.2; color: var(--color-text); text-decoration:none; }
.cart-panel-info a:hover{ text-decoration:underline; }
.cart-panel-info span{ font-size:.9rem; color: var(--color-muted); }
.cart-panel-lines strong{ font-weight:500; white-space:nowrap; }
.cart-panel-remove{ position:relative; width:32px; height:32px; border:0; border-radius:50%; background:none; cursor:pointer; color: var(--color-muted); }
.cart-panel-remove:hover{ background: var(--color-soft); color: var(--color-danger); }
.cart-panel-remove span::before, .cart-panel-remove span::after{ content:""; position:absolute; left:9px; right:9px; top:15px; height:1.5px; background: currentColor; transform: rotate(45deg); }
.cart-panel-remove span::after{ transform: rotate(-45deg); }
.payment-logos{ list-style:none; margin:0; padding:.2rem 0 0; display:flex; justify-content:center; gap:.5rem; }
.payment-logos img{ display:block; width:44px; height:auto; border:1px solid var(--color-border); border-radius:4px; }
.cart-panel-foot{ padding:1.25rem 1.5rem 1.5rem; border-top:1px solid var(--color-border); background: var(--color-soft); display:flex; flex-direction:column; gap:.6rem; }
.cart-panel-foot > *{ margin:0; }
.cart-panel-row{ display:flex; justify-content:space-between; align-items:baseline; }
.cart-panel-row.is-discount{ color: var(--color-success); }
.cart-panel-row.is-total{ margin-bottom:.4rem; }
.cart-panel-row.is-total strong{ font-family: var(--font-title); font-size:1.7rem; font-weight:500; }
.cart-panel-note{ font-size:.82rem; color: var(--color-muted); text-align:center; padding-top:.3rem; }
html.panel-open{ overflow:hidden; }

/* ============================================================
   RECHERCHE (_include/theme/pages/recherche.php)
============================================================ */
.search-page{ padding-top:2.5rem; padding-bottom:4rem; }
.search-form{ display:flex; gap:.6rem; max-width:640px; }
.search-form input{ flex:1; min-width:0; font:inherit; padding:.75rem 1.2rem; border:1px solid #CFC6B6; border-radius: var(--pill); background:#fff; color: var(--color-text); }
.search-form input:focus{ outline:2px solid var(--color-accent); outline-offset:1px; }
.search-hint{ color: var(--color-muted); margin:1.25rem 0 1.5rem; }

.strengths-grid{ display:grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap:1.5rem 2rem; }
.strengths-grid > div{ border-top:1px solid var(--color-accent); padding-top:1.1rem; }
.strengths-grid h2{ font-size:1.45rem; font-weight:500; font-style:italic; margin:0 0 .35rem; }
.strengths-grid p{ margin:0; color: var(--color-muted); font-size:1rem; }

.wine-map-grid{ display:grid; grid-template-columns: minmax(0,1fr); gap:2rem 3.5rem; align-items:center; }
.has-map .wine-map-grid{ grid-template-columns: minmax(0,1.15fr) minmax(0,.85fr); }
.wine-map .region-list{ margin-top:.8rem; }
/* Carte d'Italie cliquable (partials/italy-map.php) */
.italy-map{ display:block; width:100%; max-width:440px; height:auto; margin-inline:auto; overflow:visible; }
.map-region{ fill:#EADFCB; stroke:#fff; stroke-width:1.5; stroke-linejoin:round; }
.map-link .map-region{ fill: var(--color-accent); cursor:pointer; transition: fill .2s; }
.map-link.is-level-1 .map-region{ fill:#C6AB78; }
.map-link.is-level-2 .map-region{ fill:#B39763; }
.map-link.is-level-3 .map-region{ fill:#8C7040; }
.map-link:hover .map-region, .map-link:focus-visible .map-region{ fill:#6B1626; }
.map-link:focus-visible{ outline:none; }
.map-link:focus-visible .map-region{ stroke: var(--color-accent-light); stroke-width:3; }
.map-label{ display:none; font-family: var(--font-title); font-size:34px; fill: var(--color-text); pointer-events:none; }
.map-link:hover .map-label, .map-link:focus-visible .map-label{ display:block; }
.wine-map-text{ display:flex; flex-direction:column; gap:.9rem; }
.wine-map h2, .estate h2{ font-size: clamp(1.9rem, 3.6vw, 2.7rem); margin:0; }
.wine-map-text > p{ margin:0; color: var(--color-muted); max-width:44ch; }
.pill-list{ list-style:none; margin:.3rem 0 0; padding:0; display:flex; flex-wrap:wrap; gap:.5rem; }
.region-list{ list-style:none; margin:0; padding:0; display:grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap:0 2.5rem; }
.region-list a{ display:flex; justify-content:space-between; align-items:baseline; gap:.75rem; padding:.85rem 0; border-bottom:1px solid #DDD3C2; color: var(--color-text); text-decoration:none; }
.region-name{ font-family: var(--font-title); font-size:1.5rem; font-weight:500; }
.region-count{ font-size:.85rem; color: var(--color-muted); white-space:nowrap; }
.region-list a:hover .region-name{ color: var(--color-accent-text); }

.estate{ display:grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap:2rem 3.5rem; align-items:center; }
.estate-visual img, .estate-visual .photo-placeholder{ width:100%; aspect-ratio: 5 / 4; object-fit:cover; border-radius: var(--radius); display:block; }
.estate-text{ display:flex; flex-direction:column; gap:.9rem; align-items:flex-start; min-width:0; }
.estate-text p{ margin:0; max-width:50ch; }
.estate-text .actions{ margin-top:.4rem; }

.duo{ display:grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap:1.4rem; }
/* Cartes « événements » et « chèque-cadeau » : visuel pleine largeur collé aux bords, puis le texte */
.feature-card{ display:flex; flex-direction:column; min-width:0; border:1px solid var(--color-border); border-radius: var(--radius); overflow:hidden; background:#fff; }
.feature-media{ height:210px; display:flex; align-items:center; justify-content:center; }
.feature-media img{ width:100%; height:100%; object-fit:cover; display:block; }
/* Dessins des cadres « Événements » et « Chèque-cadeau » : gris très clair à trame de points, trait anthracite */
.feature-media.is-event, .feature-media.is-gift{ background:#F2F2F1 radial-gradient(circle, rgba(52,54,58,.10) 1px, transparent 1.2px) 0 0 / 14px 14px; color: var(--color-primary); }
.feature-media.is-event svg, .feature-media.is-gift svg{ height:62%; width:auto; }
.feature-media.is-event svg g, .feature-media.is-gift svg g{ stroke-width:2.4; }
.feature-body{ flex:1; display:flex; flex-direction:column; align-items:flex-start; gap:.75rem; padding:1.75rem 2rem 2rem; }
.feature-body > *{ margin:0; }
.feature-body h2{ font-size:1.9rem; font-weight:500; }
.feature-body > .button{ margin-top:auto; }
.feature-info{ align-self:stretch; display:flex; align-items:center; gap:.9rem; border-block:1px solid var(--color-border); padding:.85rem 0; margin-bottom:.6rem; }
.feature-info svg{ flex:none; width:28px; height:28px; fill:none; stroke: var(--color-primary); stroke-width:1.5; stroke-linejoin:round; stroke-linecap:round; }
.feature-info span{ font-family: var(--font-title); font-size:1.15rem; font-weight:500; min-width:0; }
.feature-info small{ display:block; font-family: var(--font-body); font-size:.78rem; font-weight:400; letter-spacing:.08em; text-transform:uppercase; color: var(--color-muted); }

.pro-band{ background: var(--color-dark); color:#F1E8D8; border-radius: var(--radius); padding:2.25rem; display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:1.25rem 2rem; }
.pro-band > div{ flex:1 1 380px; min-width:0; display:flex; flex-direction:column; gap:.5rem; }
.pro-band > div > *{ margin:0; }
.pro-band h2{ font-size:1.8rem; font-weight:500; color:#fff; }
.pro-band .eyebrow{ color: var(--color-accent-light); }
.pro-band{ box-shadow: inset 0 0 0 1px rgba(201,171,120,.35); }
.pro-band p{ color:#D8D5CF; }
.home-content > section:last-child, .site-main > section.section-flush:last-child{ padding-bottom:4.5rem; }

@media (max-width: 860px){
  .home-hero{ padding:1.75rem 0 2.5rem; background: radial-gradient(90% 60% at 50% 78%, #5A5046 0, #34363A 60%, #27292C 100%); }
  .home-hero-visual img{ width:100%; max-width:100%; }
  .home-hero-grid, .tonight-head, .wine-map-grid, .estate, .duo{ grid-template-columns: minmax(0,1fr); }
  .has-map .wine-map-grid{ grid-template-columns: minmax(0,1fr); }
  .italy-map{ max-width:320px; }
  .home-hero-grid{ gap:2rem; }
  .pro-band{ padding:1.5rem; }
  .feature-body{ padding:1.4rem 1.4rem 1.6rem; }
  .feature-media{ height:170px; }
}
@media (max-width: 520px){
  .region-list{ grid-template-columns: minmax(0,1fr); }
  .wine-grid{ grid-template-columns: minmax(0,1fr); gap:1rem; }
  /* vignette à l'horizontale : photo à gauche, infos et ajout au panier à droite */
  .wine-card{ position:relative; padding:.9rem .9rem .9rem calc(96px + 1.8rem); min-height:176px; }
  .wine-card > .wine-media{ position:absolute; left:.8rem; top:.8rem; bottom:.8rem; width:96px; aspect-ratio:auto; margin:0; }
  .wine-name{ font-size:1.25rem; }
}
@media (prefers-reduced-motion: reduce){ *{ transition:none !important; } }

/* ============================================================
   CONNEXION ET INSCRIPTION (login.php, register.php)
============================================================ */
.auth-page{ padding-top:3.5rem; padding-bottom:5rem; max-width:1040px; }
.auth-page.is-single{ max-width:560px; }
.auth-page.is-single.is-wide{ max-width:720px; }
.auth-layout{ display:grid; grid-template-columns: minmax(0,1.1fr) minmax(0,.9fr); gap:1.5rem; align-items:stretch; }
.auth-card{ background:#fff; border:1px solid var(--color-border); border-radius: var(--radius); padding:2.75rem; display:flex; flex-direction:column; gap:1.25rem; }
.auth-card > *{ margin:0; }
.auth-card h1{ font-size: clamp(2rem, 4vw, 2.6rem); }
.auth-lead, .auth-lead p{ color: var(--color-muted); margin:0; }
.auth-form{ margin-top:.25rem; gap:1.2rem; max-width:none; }
.auth-form .form-row{ gap:.45rem; }
.auth-form label{ font-weight:500; font-size:.95rem; }
.auth-form input:not([type="checkbox"]){ padding:.9rem 1.1rem; font-size:1rem; }
.auth-label-row{ display:flex; justify-content:space-between; align-items:baseline; gap:1rem; }
.auth-label-row a, .auth-foot a{ font-size:.9rem; color: var(--color-accent-text); }
.auth-form .button{ margin-top:.5rem; padding-block:.95rem; }
.auth-foot{ text-align:center; color: var(--color-muted); font-size:.95rem; }
.auth-new{ background: var(--color-soft); border-radius: var(--radius); padding:2.75rem; display:flex; flex-direction:column; gap:1.1rem; }
.auth-new > *{ margin:0; }
.auth-new h2{ font-size:1.9rem; font-weight:500; }
.auth-benefits{ list-style:none; padding:0; display:flex; flex-direction:column; gap:.85rem; margin:.4rem 0 1rem; }
.auth-benefits li{ display:flex; gap:.75rem; align-items:flex-start; line-height:1.4; }
.auth-benefits svg{ flex:none; width:22px; height:22px; padding:3px; border-radius:50%; background:#fff; fill:none; stroke: var(--color-accent-text); stroke-width:2.4; stroke-linecap:round; stroke-linejoin:round; }
.auth-new .button{ margin-top:auto; }
@media (max-width: 760px){
  .auth-page{ padding-top:2rem; padding-bottom:3rem; }
  .auth-layout{ grid-template-columns: minmax(0,1fr); }
  .auth-card, .auth-new{ padding:1.6rem; }
}

/* Inscription : formulaire + encart promotionnel */
.auth-page.is-register .auth-layout{ grid-template-columns: minmax(0,1.25fr) minmax(0,.75fr); }
.auth-promo{ overflow:hidden; }
.auth-promo-media{ margin:-2.75rem -2.75rem .5rem; }
.auth-promo-media img{ display:block; width:100%; height:200px; object-fit:cover; }
.auth-promo-badge{ margin-top:auto !important; background: var(--color-dark); color:#fff; border-radius:.75rem; padding:.9rem 1.1rem; text-align:center; font-weight:500; }
@media (max-width: 760px){
  .auth-page.is-register .auth-layout{ grid-template-columns: minmax(0,1fr); }
  .auth-promo-media{ margin:-1.6rem -1.6rem .5rem; }
}

/* ============================================================
   FICHE D'UN VIN (product.php)
============================================================ */
.product-page{ padding-bottom:4rem; }
.product-layout{ grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap:3.5rem; }
.gallery-main{ display:flex; align-items:center; justify-content:center; }
.gallery-main img{ object-fit:contain; }
.gallery-main .wine-bottle{ height:70%; }
.product-info{ display:flex; flex-direction:column; align-items:flex-start; gap:.55rem; min-width:0; }
.product-info > *{ margin:0; }
.product-title{ font-size: clamp(2.1rem, 4.4vw, 3.2rem); line-height:1.08; }
.product-estate{ font-size:1.35rem; }
.product-estate a, .wine-appellation a{ color:inherit; text-decoration:none; }
.product-estate a:hover, .wine-appellation a:hover{ text-decoration:underline; }
.product-price{ margin-top:.9rem; }
.product-price .price.is-large{ font-family: var(--font-body); font-size:2rem; font-variant-numeric: tabular-nums; }
.product-price .price-now{ font-weight:600; }
.product-lead{ max-width:52ch; }
.add-to-cart{ align-self:stretch; display:flex; flex-wrap:wrap; gap:.75rem; margin:1rem 0 .2rem; }
.add-to-cart .button{ flex:1 1 200px; padding-block:.95rem; }
.qty-stepper{ display:flex; align-items:stretch; border:1px solid var(--color-primary); border-radius: var(--pill); overflow:hidden; background:#fff; }
.qty-stepper button{ width:2.9rem; border:0; background:none; font:inherit; font-size:1.35rem; line-height:1; color: var(--color-text); cursor:pointer; }
.qty-stepper button:hover{ background: var(--color-soft); }
.add-to-cart .qty-stepper input{ width:3.2rem; border:0; border-radius:0; padding:.6rem 0; text-align:center; font:inherit; font-weight:500; font-variant-numeric: tabular-nums; background:none; -moz-appearance:textfield; appearance:textfield; }
.qty-stepper input::-webkit-outer-spin-button, .qty-stepper input::-webkit-inner-spin-button{ -webkit-appearance:none; margin:0; }
.qty-stepper input:focus-visible, .qty-stepper button:focus-visible{ outline-offset:-3px; }
.product-note{ font-size:.88rem; color: var(--color-muted); }
.product-aromas{ align-self:stretch; margin-top:1.1rem; padding-top:1.1rem; border-top:1px solid var(--color-border); }
.product-aromas h2, .product-specs h2, .product-description h2{ font-size:1.5rem; font-weight:500; margin:0 0 .8rem; }
.product-aromas ul{ list-style:none; margin:0; padding:0; display:flex; flex-wrap:wrap; gap:.45rem; }
.product-aromas li > *{ display:block; padding:.32rem .95rem; border-radius: var(--pill); background: var(--color-soft); border:1px solid var(--color-border); color: var(--color-text); font-size:.92rem; text-decoration:none; }
.product-aromas a:hover{ border-color: var(--color-text); }
.product-details{ display:grid; grid-template-columns: minmax(0,1.15fr) minmax(0,.85fr); gap:2rem 3.5rem; margin-top:3.5rem; padding-top:3rem; border-top:1px solid var(--color-border); align-items:start; }
.product-details.is-single{ grid-template-columns: minmax(0,1fr); max-width:780px; }
.product-description{ margin-top:0; max-width:none; }
.product-specs{ background: var(--color-soft); border-radius: var(--radius); padding:1.75rem 2rem; }
.product-specs dl{ margin:0; }
.product-specs dl div{ display:flex; justify-content:space-between; gap:1.5rem; padding:.6rem 0; border-bottom:1px solid #DDD3C2; }
.product-specs dl div:last-child{ border-bottom:0; padding-bottom:0; }
.product-specs dt{ color: var(--color-muted); }
.product-specs dd{ margin:0; text-align:right; font-weight:500; }
.product-specs a{ color: var(--color-text); }
.product-estate-band{ margin-top:3rem; border:1px solid var(--color-border); border-radius: var(--radius); padding:1.75rem 2rem; display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:1rem 2rem; }
.product-estate-band > div > *{ margin:0; }
.product-estate-band h2{ font-size:1.8rem; font-weight:500; }
.product-similar .section-head a{ color: var(--color-text); }
@media (max-width: 860px){
  .product-layout, .product-details{ grid-template-columns: minmax(0,1fr); gap:1.75rem; }
  .product-details{ margin-top:2.5rem; padding-top:2rem; }
  .product-specs, .product-estate-band{ padding:1.4rem; }
}

/* Contact : encart d'accroche */
.contact-grid{ grid-template-columns: minmax(0,1fr) 360px; }
.contact-card{ padding:2rem; display:flex; flex-direction:column; gap:.8rem; }
.contact-card > *{ margin:0; }
.contact-card-lead{ font-size:1.7rem; font-weight:500; }
.contact-reasons{ margin:.3rem 0 .6rem; }
.contact-card-title{ margin-top:.6rem; padding-top:1.1rem; border-top:1px solid #DDD3C2; font-weight:500; }
.contact-card a{ color: var(--color-text); }
@media (max-width: 860px){ .contact-grid{ grid-template-columns: minmax(0,1fr); } }

.product-similar{ border-top:1px solid var(--color-border); }

/* ============================================================
   DOMAINES (pages/domaines.php) ET DOMAINE (pages/domaine.php)
============================================================ */
.estates-hero h1{ max-width:none; }
.estates-hero .lead{ color: var(--color-text); }
.estate-grid{ display:grid; grid-template-columns: repeat(auto-fill, minmax(320px, 1fr)); gap:1.6rem; }
.estate-card{ display:flex; flex-direction:column; min-width:0; border:1px solid var(--color-border); border-radius: var(--radius); overflow:hidden; background:#fff; }
.estate-card-media{ aspect-ratio: 16 / 10; background: var(--color-soft); display:flex; align-items:center; justify-content:center; overflow:hidden; }
.estate-card-media img{ width:100%; height:100%; object-fit:cover; display:block; transition: transform .4s ease; }
.estate-card-media img.is-illustration{ transform: scale(1.1); }
.estate-card:hover .estate-card-media img:not(.is-illustration){ transform: scale(1.04); }
.estate-card-body{ flex:1; display:flex; flex-direction:column; align-items:flex-start; gap:.6rem; padding:1.6rem 1.75rem 1.75rem; }
.estate-card-body > *{ margin:0; }
.estate-card-body h2{ font-size:1.9rem; font-weight:500; }
.estate-card-body h2 a{ color: var(--color-text); text-decoration:none; }
.estate-card-body h2 a:hover{ text-decoration:underline; }
.estate-card-body > p:not(.kicker):not(.estate-card-links){ color: var(--color-muted); }
.estate-card-links{ margin-top:auto !important; padding-top:.8rem; display:flex; flex-wrap:wrap; align-items:center; gap:.75rem 1.25rem; }
.estate-card-links:empty{ display:none; }
.estate-card-wines{ color: var(--color-text); font-size:.95rem; }
.estate-page{ padding-top:2.5rem; padding-bottom:3rem; }
.estate-intro{ margin-top:1rem; }
.estate-intro h1{ font-size: clamp(2.3rem, 5vw, 3.6rem); line-height:1.08; margin:0; }
.estate-intro .lead{ margin:0; color: var(--color-text); font-weight:300; }
.estate-sections{ margin-top:3.5rem; padding-top:3rem; border-top:1px solid var(--color-border); display:grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap:2rem 3rem; }
.estate-section h2{ font-size:1.7rem; font-weight:500; margin:0 0 .7rem; }
.estate-wines .section-head a{ color: var(--color-text); }

/* ============================================================
   PROFESSIONNELS (pages/professionnels.php)
============================================================ */
.pro-hero h1{ max-width:none; font-size: clamp(2rem, 4.2vw, 3.1rem); }
.pro-hero h1 em{ font-style:italic; color: var(--color-accent-text); }
.pro-hero .lead{ max-width:86ch; }
.pro-steps-section{ padding-top:1rem; }
.pro-heading{ font-size: clamp(1.8rem, 3.4vw, 2.5rem); margin:0 0 2rem; }
.pro-points{ display:grid; grid-template-columns: repeat(auto-fit, minmax(230px, 1fr)); gap:1.4rem; }
.pro-point{ border:1px solid var(--color-border); border-radius: var(--radius); padding:1.75rem; display:flex; flex-direction:column; gap:.6rem; }
.pro-point > *{ margin:0; }
.pro-point svg{ width:38px; height:38px; fill:none; stroke: var(--color-accent); stroke-width:1.4; stroke-linejoin:round; stroke-linecap:round; margin-bottom:.4rem; }
.pro-point h3{ font-size:1.4rem; font-weight:500; }
.pro-point p{ color: var(--color-muted); }
.pro-steps{ list-style:none; margin:0; padding:0; counter-reset: etape; display:grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap:2rem 3rem; }
.pro-steps li{ counter-increment: etape; border-top:1px solid var(--color-accent); padding-top:1.1rem; }
.pro-steps li::before{ content: counter(etape); display:block; font-family: var(--font-title); font-style:italic; font-size:2.6rem; line-height:1; color: var(--color-accent-text); margin-bottom:.5rem; }
.pro-steps h3{ font-size:1.45rem; font-weight:500; margin:0 0 .4rem; }
.pro-steps p{ margin:0; color:#4B443C; }

/* Très petits écrans : le prix et l'ajout au panier passent sur deux lignes plutôt que de déborder */
@media (max-width: 380px){ .wine-buy{ flex-wrap:wrap; } }

/* En-têtes de page en bandeau (Domaines, Professionnels) : même fond anthracite que le bandeau d'accueil */
.estates-hero{ background: radial-gradient(80% 120% at 50% 100%, #4E4840 0, #34363A 55%, #27292C 100%); color:#EFE7D8; }
.estates-hero h1{ color:#fff; }
.estates-hero h1 em{ color: var(--color-accent-light); }
.estates-hero .eyebrow{ color: var(--color-accent-light); }
.estates-hero .lead{ color:#DDD6CA; }
.estates-hero .button{ background: var(--color-accent); border-color: var(--color-accent); color:#17130C; }
.estates-hero .button:hover{ background: var(--color-accent-light); border-color: var(--color-accent-light); }
.estates-hero .button-light{ background:transparent; border-color:#9A8F7E; color:#EFE7D8; }
.estates-hero .button-light:hover{ background:#EFE7D8; border-color:#EFE7D8; color: var(--color-text); }

/* Domaine à l'honneur : carte « logo du domaine » (quand aucune photo n'est choisie) */
.estate-logo{ aspect-ratio: 5 / 4; padding:.9rem; border-radius: var(--radius); background: radial-gradient(90% 90% at 50% 40%, #FBF7EF 0, var(--color-soft) 70%, #EFE6D6 100%); display:flex; }
.estate-logo-frame{ flex:1; min-width:0; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:1.6rem; padding:1.5rem; border:1px solid rgba(160,131,83,.45); border-radius: calc(var(--radius) - .35rem); }
.estate-visual .estate-logo-frame img{ width: min(62%, 330px); height:auto; aspect-ratio:auto; object-fit:contain; border-radius:0; }
.estate-logo-caption{ margin:0; display:flex; align-items:center; gap:.9rem; font-size:.78rem; letter-spacing:.22em; text-transform:uppercase; color: var(--color-accent-text); text-align:center; }
.estate-logo-caption::before, .estate-logo-caption::after{ content:""; width:1.75rem; height:1px; background: var(--color-accent); opacity:.7; flex:none; }
@media (max-width: 760px){ .estate-logo{ aspect-ratio: 16 / 10; } }
@media (max-width: 520px){ .estate-logo-caption{ font-size:.68rem; letter-spacing:.14em; gap:.6rem; } .estate-logo-caption::before, .estate-logo-caption::after{ width:1rem; } .estate-logo-frame{ gap:1.1rem; padding:1rem; } }
/* Carte logo plus petite, façon étiquette : le texte gagne en largeur */
@media (min-width: 761px){
  .estate:not(.estate-intro):has(.estate-logo){ grid-template-columns: minmax(0, 340px) minmax(0, 1fr); gap:2rem 4rem; }
  .estate:not(.estate-intro):has(.estate-logo) .estate-logo{ aspect-ratio: 1 / 1; }
  .estate:not(.estate-intro):has(.estate-logo) .estate-logo-frame img{ width: min(74%, 250px); }
  .estate:not(.estate-intro):has(.estate-logo) .estate-logo-caption{ font-size:.7rem; letter-spacing:.16em; gap:.6rem; }
  .estate:not(.estate-intro):has(.estate-logo) .estate-logo-caption::before, .estate:not(.estate-intro):has(.estate-logo) .estate-logo-caption::after{ width:1rem; }
  .estate:not(.estate-intro):has(.estate-logo) .estate-text p{ max-width:68ch; }
}

/* Étiquette du domaine sur la page Domaines (vignette) et sur la page d'un domaine */
.estate-card-media .estate-logo{ width:100%; height:100%; aspect-ratio:auto; border-radius:0; padding:.7rem; }
.estate-card-media .estate-logo-frame{ gap:1rem; padding:1rem; }
.estate-card-media .estate-logo-frame img{ width: min(56%, 230px); height:auto; object-fit:contain; transform:none; }
.estate-card:hover .estate-card-media .estate-logo-frame img{ transform:none; }
.estate-card-media .estate-logo-caption{ font-size:.68rem; letter-spacing:.16em; gap:.6rem; }
.estate-card-media .estate-logo-caption::before, .estate-card-media .estate-logo-caption::after{ width:1rem; }
.estate-intro .estate-logo{ max-width:440px; margin-inline:auto; width:100%; }

/* Page d'un domaine : parties (titre à gauche, texte à droite ; avec photo, en alternance) et mot de Diggy */
.estate-visual .estate-logo-frame img, .estate-card-media .estate-logo-frame img{ max-height:150px; width:auto; max-width:62%; }
.estate-intro .estate-visual > img:not(.is-illustration){ max-width:460px; margin-inline:auto; }
.estate-parts{ margin-top:3.5rem; border-top:1px solid var(--color-border); }
.estate-part{ display:grid; grid-template-columns: minmax(0, .42fr) minmax(0, 1fr); gap:1rem 3.5rem; padding:3rem 0; border-bottom:1px solid var(--color-border); align-items:start; }
.estate-part h2{ font-size: clamp(1.6rem, 2.6vw, 2.1rem); font-weight:500; line-height:1.15; margin:0; }
.estate-part-text{ max-width:68ch; }
.estate-part-text > :first-child{ margin-top:0; } .estate-part-text > :last-child{ margin-bottom:0; }
.estate-part.has-image{ grid-template-columns: minmax(0, .42fr) minmax(0, 1fr); grid-template-areas: "titre texte" "photo texte"; grid-template-rows: auto 1fr; }
.estate-part.has-image h2{ grid-area:titre; } .estate-part.has-image .estate-part-text{ grid-area:texte; }
.estate-part-media{ grid-area:photo; margin-top:.75rem; }
.estate-part-media img{ width:100%; aspect-ratio: 1 / 1; object-fit:cover; border-radius: var(--radius); display:block; }
.estate-word{ margin:3rem auto 0; max-width:820px; padding:2.25rem 2.5rem; border-radius: var(--radius); background: var(--color-soft); text-align:center; }
.estate-word .kicker{ margin:0 0 .6rem; }
.estate-word-text{ margin:0; font-family: var(--font-title, inherit); font-style:italic; font-size: clamp(1.25rem, 2.2vw, 1.6rem); line-height:1.45; color: var(--color-text); }
@media (max-width: 760px){
  .estate-part, .estate-part.has-image{ grid-template-columns: minmax(0,1fr); grid-template-areas:none; gap:1rem; padding:2.25rem 0; }
  .estate-part.has-image h2, .estate-part.has-image .estate-part-text, .estate-part-media{ grid-area:auto; }
  .estate-part-media{ margin-top:0; order:3; } .estate-part-media img{ aspect-ratio: 4 / 3; }
  .estate-word{ padding:1.75rem 1.25rem; }
}

/* Page d'un domaine : ses vins sur fond blanc, comme au catalogue */
.estate-wines{ background:#fff; border-top:1px solid var(--color-border); }
/* Vignettes de la page Domaines : visuel cliquable, deux boutons côte à côte */
.estate-card{ transition: box-shadow .25s ease, transform .25s ease, border-color .25s ease; }
.estate-card:hover{ box-shadow: 0 14px 34px -18px rgba(52,54,58,.35); transform: translateY(-3px); border-color: #D6CCB9; }
a.estate-card-media{ text-decoration:none; color:inherit; }
.estate-card-body{ gap:.5rem; padding:1.5rem 1.6rem 1.6rem; }
.estate-card-body h2{ font-size:1.75rem; }
.estate-card-body .estate-card-text{ color: var(--color-muted); display:-webkit-box; -webkit-box-orient:vertical; -webkit-line-clamp:4; line-clamp:4; overflow:hidden; }
.estate-card-links{ align-self:stretch; display:grid; grid-template-columns: repeat(auto-fit, minmax(0, 1fr)); gap:.6rem; padding-top:1.2rem; }
.estate-card-links .button{ min-width:0; padding:.7rem .6rem; font-size:.92rem; text-align:center; justify-content:center; white-space:nowrap; }
@media (prefers-reduced-motion: reduce){ .estate-card, .estate-card-media img{ transition:none; } .estate-card:hover{ transform:none; } }

/* ==================== ÉVÉNEMENTS ==================== */
.event-list{ display:flex; flex-direction:column; gap:2rem; }
.event-card{ display:grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1fr); border:1px solid var(--color-border); border-radius: var(--radius); overflow:hidden; background:#fff; scroll-margin-top:7rem; }
.event-media{ position:relative; min-height:300px; background: radial-gradient(90% 90% at 50% 40%, #FBF7EF 0, var(--color-soft) 70%, #EFE6D6 100%); }
.event-media img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; display:block; }
.event-date{ position:absolute; top:1.1rem; left:1.1rem; margin:0; min-width:4.6rem; padding:.6rem .8rem .55rem; border-radius:.8rem; background:#fff; box-shadow: 0 8px 22px -12px rgba(52,54,58,.5); display:flex; flex-direction:column; align-items:center; line-height:1; text-align:center; }
.event-date-day{ font-family: var(--font-title); font-size:2.1rem; font-weight:500; color: var(--color-text); }
.event-date-month{ margin-top:.3rem; font-size:.78rem; letter-spacing:.14em; text-transform:uppercase; color: var(--color-accent-text); }
.event-date-year{ margin-top:.25rem; font-size:.72rem; color: var(--color-muted); }
/* sans image : colonne étroite, la date au centre comme une étiquette */
.event-card.no-image{ grid-template-columns: 220px minmax(0, 1fr); }
.event-card.no-image .event-media{ min-height:0; display:flex; align-items:center; justify-content:center; padding:1.5rem; }
.event-card.no-image .event-date{ position:static; min-width:6.2rem; padding:1rem 1rem .9rem; box-shadow:none; border:1px solid rgba(160,131,83,.45); background: rgba(255,255,255,.7); }
.event-card.no-image .event-date-day{ font-size:3rem; }
.event-body{ min-width:0; padding:2rem 2.25rem; display:flex; flex-direction:column; align-items:flex-start; gap:.75rem; }
.event-body > *{ margin:0; }
.event-body h2{ font-size: clamp(1.7rem, 2.8vw, 2.2rem); font-weight:500; line-height:1.15; }
.event-meta{ list-style:none; padding:0; display:flex; flex-wrap:wrap; gap:.4rem 1.5rem; color: var(--color-text); }
.event-meta li{ display:flex; align-items:center; gap:.45rem; }
.event-meta svg{ color: var(--color-accent); flex:none; }
.event-text{ max-width:62ch; color: var(--color-muted); }
.event-text > :first-child{ margin-top:0; } .event-text > :last-child{ margin-bottom:0; }
.event-body .actions{ margin-top:auto; padding-top:.5rem; }
.event-closed{ display:inline-block; padding:.6rem 1.1rem; border-radius: var(--pill); background: var(--color-soft); color: var(--color-muted); font-size:.95rem; }
.event-empty{ max-width:640px; margin-inline:auto; text-align:center; padding:2.5rem 1.5rem; border:1px solid var(--color-border); border-radius: var(--radius); }
.event-empty h2{ font-size:1.9rem; font-weight:500; margin:0 0 .6rem; }
.event-empty p{ margin:0 0 1rem; color: var(--color-muted); }
.event-empty .actions{ justify-content:center; margin:1.25rem 0 0; }
.event-booking{ display:grid; grid-template-columns: minmax(0, .7fr) minmax(0, 1fr); gap:2rem 4rem; align-items:start; }
#reservation{ scroll-margin-top:5rem; }
.event-booking-intro{ display:flex; flex-direction:column; gap:.7rem; }
.event-booking-intro > *{ margin:0; }
.event-booking-intro h2{ font-size: clamp(1.9rem, 3.6vw, 2.7rem); }
.event-form{ background:#fff; border:1px solid var(--color-border); border-radius: var(--radius); padding:2rem; }
.event-form select{ width:100%; }
.event-form-guests{ max-width:12rem; }
.form-optional{ font-weight:400; color: var(--color-muted); }
@media (max-width: 860px){
  .event-card, .event-card.no-image{ grid-template-columns: minmax(0,1fr); }
  .event-media{ min-height:0; aspect-ratio: 16 / 10; }
  .event-card.no-image .event-media{ aspect-ratio:auto; justify-content:flex-start; padding:1.25rem 1.25rem 0; background:none; }
  .event-card.no-image .event-date{ flex-direction:row; align-items:baseline; gap:.45rem; min-width:0; padding:.5rem .9rem; }
  .event-card.no-image .event-date-day{ font-size:1.6rem; }
  .event-card.no-image .event-date-month, .event-card.no-image .event-date-year{ margin-top:0; }
  .event-body{ padding:1.5rem 1.25rem 1.6rem; }
  .event-booking{ grid-template-columns: minmax(0,1fr); }
  .event-form{ padding:1.4rem 1.15rem; }
}
.event-form-wrap{ min-width:0; display:flex; flex-direction:column; gap:1rem; } .event-form-wrap .notice, .event-notices .notice{ margin:0; } .event-notices{ margin-bottom:1.5rem; }
.event-card.no-visual{ grid-template-columns: minmax(0,1fr); }
/* Réservation : section sur fond blanc */
#reservation.section-soft{ background:#fff; border-top:1px solid var(--color-border); }

/* ==================== CATALOGUE : barre mobile Filtrer | Trier, chargement progressif ==================== */
.catalog-bar{ display:grid; grid-template-columns: 1fr 1fr; border:1px solid var(--color-primary); border-radius: var(--pill); overflow:hidden; background:#fff; }
.catalog-bar[hidden]{ display:none; }
.catalog-bar button{ appearance:none; border:0; background:none; font:inherit; font-weight:500; color: var(--color-text); padding:.8rem .75rem; display:flex; align-items:center; justify-content:center; gap:.5rem; cursor:pointer; min-width:0; }
.catalog-bar button + button{ border-left:1px solid var(--color-primary); }
.catalog-bar button[aria-expanded="true"]{ background: var(--color-primary); color:#fff; }
.catalog-bar button:focus-visible{ outline:2px solid var(--color-accent); outline-offset:-3px; }
.catalog-bar button[hidden]{ display:none; }
.catalog-bar button:only-child, .catalog-bar button[hidden] + button, .catalog-bar:has(button[hidden]){ grid-column: 1 / -1; }
.catalog-layout.has-bar{ gap:1rem; }
.catalog-layout.has-bar .filters > summary{ display:none; }
.catalog-layout.has-bar .filters:not([open]){ display:none; }
.catalog-layout.has-bar .filters{ padding:.25rem 1rem .9rem; }
.catalog-layout.has-bar .filters .filter-group:first-of-type{ border-top:0; }
.catalog-layout.has-bar .sort{ display:none; }
.catalog-layout.has-bar .sort.is-open{ display:flex; flex-direction:column; gap:0; order:-1; flex:1 0 100%; border:1px solid var(--color-border); border-radius: var(--radius); padding:.35rem 1rem; background:#fff; }
.catalog-layout.has-bar .sort.is-open a{ padding:.7rem 0; font-size:1rem; color: var(--color-text); }
.catalog-layout.has-bar .sort.is-open a + a{ border-top:1px solid var(--color-border); }
.catalog-layout.has-bar .sort.is-open a.is-active{ text-decoration:none; }
.catalog-layout.has-bar .sort.is-open a.is-active::after{ content:"✓"; float:right; color: var(--color-accent-text); }
.catalog-previous{ margin:0 0 1.25rem; }
.pager.is-auto{ display:block; text-align:center; min-height:2.5rem; color: var(--color-muted); font-size:.95rem; }

/* ==================== PANIER (page) ==================== */
.cart-head{ display:flex; align-items:baseline; gap:1rem; flex-wrap:wrap; margin-bottom:1.75rem; padding-bottom:1.25rem; border-bottom:1px solid var(--color-border); }
.cart-head .page-title{ margin:0; }
.cart-head-count{ margin:0; font-family: var(--font-title); font-style:italic; font-size:1.15rem; color: var(--color-accent-text); }
.cart-layout{ grid-template-columns: minmax(0,1fr) 380px; gap:3.5rem; }
.cart-main{ min-width:0; display:flex; flex-direction:column; gap:1.5rem; align-items:flex-start; }
.cart-lines{ width:100%; }
.cart-line{ grid-template-columns: 84px minmax(0,1fr) auto 6.5rem; gap:1.5rem; padding:1.5rem 0; align-items:center; }
.cart-line:first-of-type{ padding-top:0; }
.cart-thumb{ width:84px; height:112px; border-radius:.75rem; border:1px solid var(--color-border); background:#fff; display:flex; align-items:center; justify-content:center; color: var(--color-accent); }
.cart-thumb img{ object-fit:contain; padding:.35rem; }
.cart-line-info{ gap:.3rem; min-width:0; }
.cart-line-name{ font-family: var(--font-title); font-size:1.4rem; font-weight:500; line-height:1.2; }
.cart-line-name:hover{ text-decoration:underline; }
.cart-line-origin{ font-family: var(--font-title); font-style:italic; color: var(--color-accent-text); }
.cart-line-unit{ font-size:.92rem; color: var(--color-muted); }
.cart-line-unit .price{ font-size:inherit; }
.cart-line-unit .price-now{ font-weight:500; color: var(--color-text); }
.cart-line-qty{ display:flex; flex-direction:column; align-items:center; gap:.45rem; }
.cart-line-qty .qty-stepper button{ width:2.4rem; font-size:1.2rem; }
.cart-line-qty .cart-qty{ width:2.8rem; border:0; border-radius:0; padding:.5rem 0; text-align:center; font:inherit; font-weight:500; background:none; -moz-appearance:textfield; appearance:textfield; }
.cart-remove{ font:inherit; font-size:.82rem; color: var(--color-muted); text-decoration:underline; text-underline-offset:3px; padding:0; }
.cart-line-total{ font-size:1.15rem; font-weight:600; font-variant-numeric: tabular-nums; }
.cart-main .continue-link{ text-align:left; color: var(--color-text); }
.cart-summary{ background:#fff; border:1px solid var(--color-border); border-top:3px solid var(--color-accent); border-radius: var(--radius); padding:1.75rem; gap:1.25rem; box-shadow: 0 18px 40px -30px rgba(52,54,58,.45); }
.cart-summary .summary-title{ font-size:1.6rem; font-weight:500; margin:0; }
.free-shipping{ display:flex; flex-direction:column; gap:.55rem; padding:.9rem 1rem; border-radius:.75rem; background: var(--color-soft); font-size:.92rem; }
.free-shipping p{ margin:0; }
.free-shipping-bar{ height:4px; border-radius:2px; background:#E4D9C6; overflow:hidden; }
.free-shipping-bar span{ display:block; height:100%; background: var(--color-accent); border-radius:2px; }
.free-shipping.is-reached{ color: var(--color-success); }
.free-shipping.is-reached .free-shipping-bar span{ background: var(--color-success); }
.cart-summary .totals{ gap:.65rem; }
.cart-summary .totals .is-total{ padding-top:1rem; margin-top:.2rem; align-items:baseline; font-weight:500; font-size:1rem; }
.cart-summary .totals .is-total dt small{ display:block; font-size:.78rem; font-weight:400; color: var(--color-muted); }
.cart-summary .totals .is-total dd{ font-family: var(--font-title); font-size:2rem; font-weight:500; line-height:1; }
.promo-details summary{ cursor:pointer; font-size:.9rem; color: var(--color-muted); text-decoration:underline; text-underline-offset:3px; list-style:none; width:fit-content; }
.promo-details summary::-webkit-details-marker{ display:none; }
.promo-details summary:hover{ color: var(--color-text); }
.promo-details[open] summary{ margin-bottom:.7rem; }
.promo-row input{ border-radius: var(--pill); border-color:#CFC6B6; padding-inline:1rem; }
.promo-row .button{ padding:.6rem 1.1rem; }
.cart-assurances{ list-style:none; margin:0; padding:1.1rem 0 0; border-top:1px solid var(--color-border); display:flex; flex-direction:column; gap:.6rem; font-size:.9rem; color: var(--color-muted); }
.cart-assurances li{ display:flex; align-items:center; gap:.65rem; }
.cart-assurances svg{ color: var(--color-accent); flex:none; }
.cart-summary .payment-logos{ justify-content:center; }
.cart-empty{ max-width:520px; margin:1rem auto 3rem; padding:3rem 1.5rem; text-align:center; border:1px solid var(--color-border); border-radius: var(--radius); display:flex; flex-direction:column; align-items:center; gap:.6rem; color: var(--color-muted); }
.cart-empty svg{ color: var(--color-accent); }
.cart-empty p{ margin:0; }
.cart-empty-title{ font-family: var(--font-title); font-size:1.9rem; color: var(--color-text); }
.cart-empty .button{ margin-top:.9rem; }
@media (max-width: 1000px){ .cart-layout{ grid-template-columns: minmax(0,1fr); gap:2rem; } .cart-summary{ position:static; } }
@media (max-width: 600px){
  .cart-line{ grid-template-columns: 68px minmax(0,1fr); gap:.9rem 1rem; align-items:start; }
  .cart-thumb{ width:68px; height:92px; grid-row: 1 / span 2; }
  .cart-line-name{ font-size:1.25rem; }
  .cart-line-qty{ grid-column:2; flex-direction:row; align-items:center; gap:1rem; }
  .cart-line-total{ grid-column:2; grid-row:auto; text-align:left; }
  .cart-line .cart-remove{ grid-column:auto; grid-row:auto; justify-self:auto; }
  .cart-summary{ padding:1.4rem 1.15rem; }
}

/* ==================== COMMANDE ==================== */
.site-header.is-minimal .header-inner{ padding-block:1.1rem; }
.shipping-options.is-single .shipping-option{ cursor:default; }
.shipping-options.is-single .shipping-option input{ position:absolute; opacity:0; pointer-events:none; }
.checkout-payments{ justify-content:center; }
/* Puces et cases à cocher : pas de cadre au clic (le style des champs texte ne s'applique pas à elles) ;
   au clavier, le repère entoure toute l'option de livraison plutôt que le petit rond */
.form input:is([type="radio"],[type="checkbox"]){ padding:0; border:0; border-radius:0; width:auto; accent-color: var(--color-primary); }
.form input:is([type="radio"],[type="checkbox"]):focus{ outline:none; }
.form input[type="checkbox"]:focus-visible{ outline:2px solid var(--color-accent); outline-offset:2px; }
.shipping-option:has(input:focus-visible){ box-shadow:0 0 0 2px var(--color-accent); }

/* Bandeau du haut : texte plus discret ; sur mobile, les messages défilent l'un après l'autre */
.site-banner{ font-size:.7rem; letter-spacing:.1em; padding:.45rem 1rem; }
.banner-messages{ display:flex; justify-content:center; align-items:center; gap:.7rem; flex-wrap:wrap; }
.banner-sep{ opacity:.55; }
@media (max-width: 760px){
  .site-banner{ font-size:.66rem; letter-spacing:.06em; padding:.45rem .75rem; }
  .banner-messages{ display:grid; justify-items:center; }
  .banner-sep{ display:none; }
  .banner-msg{ grid-area:1 / 1; white-space:nowrap; max-width:100%; overflow:hidden; text-overflow:ellipsis; opacity:0; animation-duration:10s; animation-iteration-count:infinite; animation-delay: calc(var(--i) * 5s); }
  .banner-messages.is-2 .banner-msg{ animation-name: banner2; }
  .banner-messages.is-3 .banner-msg{ animation-name: banner3; animation-duration:15s; }
}
@keyframes banner2{ 0%{ opacity:0; } 4%, 46%{ opacity:1; } 50%, 100%{ opacity:0; } }
@keyframes banner3{ 0%{ opacity:0; } 3%, 30%{ opacity:1; } 33%, 100%{ opacity:0; } }
@media (max-width: 760px) and (prefers-reduced-motion: reduce){
  .banner-msg{ animation:none; } .banner-msg:first-child{ opacity:1; }
}

/* ===================== Page « Qui sommes-nous ? » (pages/a-propos.php) ===================== */
.about-story .cms-content > :first-child{ margin-top:0; }
.about-story .cms-content > :last-child{ margin-bottom:0; }
.about-story .cms-content p{ max-width:56ch; margin:0 0 1em; }
/* Photo de petite taille (collage) : affichée à sa taille réelle, sans recadrage ni agrandissement */
.estate-visual img.is-collage{ aspect-ratio:auto; width:auto; max-width:100%; height:auto; margin-inline:auto; box-shadow: 0 10px 30px rgba(29,26,23,.12); }
.about-actions{ display:flex; flex-wrap:wrap; gap:.75rem; margin:0; }
.pro-band .about-contact{ background:transparent; border-color:#9A8F7E; color:#F1E8D8; }
.pro-band .about-contact:hover{ background:#F1E8D8; border-color:#F1E8D8; color: var(--color-text); }

/* ===================== Chèques-cadeaux (pages/cheque-cadeau.php, panier, commande) ===================== */
.gift-section{ padding-top:3rem; }
.gift-layout{ display:grid; grid-template-columns: minmax(0,1fr); gap:2.5rem; align-items:start; }
@media (min-width: 900px){ .gift-layout{ grid-template-columns: minmax(0,1fr) minmax(0,400px); gap:3.5rem; } .gift-preview-col{ position:sticky; top:96px; } }
.gift-steps{ display:flex; flex-direction:column; gap:2rem; min-width:0; }
.gift-step{ border:0; margin:0; padding:0; min-width:0; display:flex; flex-direction:column; gap:1rem; }
.gift-step legend{ display:flex; align-items:center; gap:.75rem; padding:0; margin-bottom:1rem; font-family: var(--font-title); font-size: clamp(1.4rem, 3vw, 1.75rem); }
.gift-step-num{ flex:none; display:inline-grid; place-items:center; width:2rem; height:2rem; border-radius:50%; background: var(--color-primary); color:#fff; font-family: var(--font-body); font-size:.95rem; }
.gift-amounts{ display:grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap:.75rem; }
@media (min-width: 560px){ .gift-amounts{ grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); } }
.gift-amount{ position:relative; display:flex; flex-direction:column; justify-content:center; gap:.15rem; min-height:5.5rem; padding:1rem 1.1rem; border:1px solid #CFC6B6; border-radius:.9rem; background:#fff; cursor:pointer; transition: border-color .15s, box-shadow .15s; }
.gift-amount:hover{ border-color: var(--color-primary); }
.gift-amount input{ position:absolute; opacity:0; pointer-events:none; }
.gift-amount-value{ font-family: var(--font-title); font-size:1.6rem; line-height:1.1; }
.gift-amount.is-free .gift-amount-value{ font-size:1.2rem; }
.gift-amount-note{ font-size:.8rem; color: var(--color-muted); }
.gift-amount:has(input:checked){ border-color: var(--color-primary); box-shadow: inset 0 0 0 1px var(--color-primary); background:#F7F7F6; }
.gift-amount:has(input:checked)::after{ content:""; position:absolute; top:.7rem; right:.7rem; width:.55rem; height:.55rem; border-radius:50%; background: var(--color-accent); }
.gift-amount:has(input:focus-visible){ outline:2px solid var(--color-accent); outline-offset:2px; }
.gift-free{ max-width:20rem; }
.gift-layout:has(input[value="free"]:not(:checked)) .gift-free{ display:none; }   /* sans :has (vieux navigateurs), le champ reste visible : sans effet */
.gift-free-input{ display:flex; align-items:center; gap:.5rem; }
.gift-free-input input{ max-width:9rem; font-size:1.15rem; }
.gift-free-input span{ font-size:1.15rem; color: var(--color-muted); }
.gift-count{ display:block; text-align:right; }
.gift-count.is-near{ color: var(--color-accent-text); }
.gift-submit{ display:flex; flex-direction:column; align-items:flex-start; gap:1.25rem; border-top:1px solid var(--color-border); padding-top:1.75rem; }
.gift-submit .button{ min-width:16rem; }
.gift-assurances{ list-style:none; margin:0; padding:0; display:flex; flex-wrap:wrap; gap:.6rem 1.6rem; font-size:.9rem; color: var(--color-muted); }
.gift-assurances li{ display:flex; align-items:center; gap:.5rem; }
.gift-assurances svg{ width:20px; height:20px; fill:none; stroke: var(--color-primary); stroke-width:1.5; stroke-linecap:round; stroke-linejoin:round; }
.gift-preview-label{ margin:0 0 .6rem; font-size:.75rem; letter-spacing:.14em; text-transform:uppercase; color: var(--color-muted); }
.gift-preview{ display:flex; aspect-ratio: 148 / 105; width:100%; background:#fff; border-radius:.35rem; overflow:hidden; box-shadow: 0 18px 40px -18px rgba(29,26,23,.35), 0 0 0 1px rgba(29,26,23,.06); container-type:inline-size; }
.gift-preview-band{ flex:0 0 31%; display:flex; flex-direction:column; justify-content:space-between; padding:6.5cqw 4.8cqw; background: var(--color-primary); color:#fff; }
.gift-preview-kicker{ font-size:2.2cqw; letter-spacing:.18em; white-space:nowrap; text-transform:uppercase; color: var(--color-accent-light); }
.gift-preview-amount{ font-family: var(--font-title); font-size:10cqw; line-height:1; white-space:nowrap; }
.gift-preview-code{ font-size:2.3cqw; letter-spacing:.06em; color:#CFC8BB; }
.gift-preview-code strong{ display:block; margin-top:.4em; font-size:1.45em; font-weight:500; letter-spacing:.1em; color:#fff; }
.gift-preview-main{ flex:1; min-width:0; display:flex; flex-direction:column; padding:6.5cqw 6.5cqw 5cqw; }
.gift-preview-main img{ width:26cqw; height:auto; }
.gift-preview-title{ margin:5.5cqw 0 0; font-family: var(--font-title); font-size:5.2cqw; line-height:1.15; }
.gift-preview-title::after{ content:""; display:block; width:7.5cqw; height:1px; background: var(--color-accent); margin:2.5cqw 0 0; }
.gift-preview-message{ flex:1; margin:2.8cqw 0 0; font-family: var(--font-title); font-style:italic; font-size:3.6cqw; line-height:1.4; color: var(--color-primary); overflow:hidden; overflow-wrap:anywhere; }
.gift-preview-message.is-empty{ color:#A39A8D; }
.gift-preview-foot{ margin:0; padding-top:2cqw; border-top:1px solid var(--color-border); font-size:2.2cqw; color: var(--color-muted); }
.gift-preview-note{ margin:.8rem 0 0; font-size:.85rem; }
.gift-mention{ margin:2.5rem 0 0; font-size:.9rem; max-width:70ch; }
@supports not (container-type: inline-size){
  .gift-preview-band{ padding:1.4rem 1rem; } .gift-preview-kicker{ font-size:.55rem; } .gift-preview-amount{ font-size:2.2rem; }
  .gift-preview-code{ font-size:.55rem; } .gift-preview-main{ padding:1.4rem; } .gift-preview-main img{ width:6rem; }
  .gift-preview-title{ font-size:1.15rem; margin-top:1.1rem; } .gift-preview-message{ font-size:.8rem; } .gift-preview-foot{ font-size:.5rem; }
}

/* Panier, panneau et commande : lignes « chèque-cadeau » */
.cart-thumb.is-gift, .cart-panel-thumb.is-gift{ display:grid; place-items:center; background:#F2F2F1; color: var(--color-primary); }
.cart-thumb.is-gift svg{ width:34px; height:34px; }
.cart-panel-thumb.is-gift svg{ width:26px; height:26px; }
.cart-line-message{ display:block; font-family: var(--font-title); font-style:italic; font-size:.95rem; color: var(--color-muted); overflow-wrap:anywhere; }
.totals .is-gift dd, .totals .is-gift dt{ color: var(--color-success); }
.totals .is-to-pay{ border-top:1px solid var(--color-border); padding-top:.6rem; }
.gift-applied{ display:flex; flex-wrap:wrap; justify-content:space-between; align-items:baseline; gap:.3rem .8rem; margin:0 0 .9rem; padding:.75rem .9rem; border-radius:.6rem; background:#F2F2F1; font-size:.9rem; }
.gift-applied small{ display:block; color: var(--color-muted); }
.checkout-gift-note{ margin:0; padding:1rem 1.1rem; border-radius:.75rem; background:#F2F2F1; display:flex; gap:.8rem; align-items:flex-start; }
.checkout-gift-note svg{ flex:none; width:24px; height:24px; fill:none; stroke: var(--color-primary); stroke-width:1.5; stroke-linecap:round; stroke-linejoin:round; margin-top:.1rem; }
.confirm-gifts{ max-width:46rem; margin:0 auto 2rem; text-align:left; }
.cart-panel-info .cart-panel-name{ font-family: var(--font-title); font-size:1.15rem; font-weight:500; line-height:1.2; color: var(--color-text); }
.summary-lines small.is-note{ color: var(--color-muted); font-family: var(--font-title); font-style:italic; font-size:.85rem; }
.nowrap{ white-space:nowrap; }

/* Article épuisé (stock web à zéro) : rien ne peut partir au panier */
.wine-add.is-soldout{ opacity:.55; }
.wine-add.is-soldout select, .wine-add.is-soldout button{ cursor:not-allowed; }
.add-to-cart.is-soldout{ display:flex; flex-wrap:wrap; align-items:center; gap:.6rem 1.2rem; }
.add-to-cart.is-soldout .button[disabled]{ opacity:.5; cursor:not-allowed; }
