/*
Theme Name: La Poulette à Facettes
Theme URI: https://lapouletteafacettes.example
Author: La Poulette à Facettes
Author URI: https://lapouletteafacettes.example
Description: Thème bloc pour La Poulette à Facettes — petite ferme bio en Belledonne. Palette crème / vert / aubergine, typographie Bricolage Grotesque + DM Sans, motif facettes multicolore, texture grain papier. Light mode uniquement.
Version: 1.0.0
Requires at least: 6.5
Tested up to: 7.0
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: la-poulette-a-facettes
*/

/* ============================================================
   TOKENS — mirrored from design-tokens.json (LAW)
   ============================================================ */
:root{
  --cream:#f8f3e6; --paper:#f3f2ec; --card:#ffffff;
  --ink:#161d17; --aubergine:#1f3423; --muted:#4e594f;
  --leaf:#196632; --leaf-deep:#124d26; --leaf-bright:#1d9e75;
  --accent:#5bb0d7; --border:#dad7cf;
  --raspberry:#dc5f82; --raspberry-text:#b02a52; --currant:#662f2c;
  --sun:#eabe4a; --orange-fruit:#eb7c33;
  --f-mustard:#efa31d; --f-teal:#1d9e75; --f-pink:#d4537e;
  --f-sky:#7dbfe8; --f-orange:#e5722c; --f-black:#141414;
  --radius-lg:2rem; --radius-btn:8px; --radius-pill:9999px;
  --font-display:"Bricolage Grotesque","Segoe UI",system-ui,sans-serif;
  --font-body:"DM Sans",system-ui,sans-serif;
  --grain-opacity:.5;
  --content-size:800px; --wide-size:1280px;
}
*{box-sizing:border-box;}
html{scroll-behavior:smooth; overflow-x:clip;}
body{overflow-x:clip;}
body{
  margin:0; background:var(--cream); color:var(--ink);
  font-family:var(--font-body); font-size:16px; line-height:1.6;
  -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility;
}
img{max-width:100%; display:block;}
a{color:var(--leaf);}

/* Footer top-margin reset (WP adds margin to direct children of .wp-site-blocks) */
.wp-site-blocks > footer{margin-block-start:0;}
.wp-site-blocks > *{margin-block-start:0;}

/* ---- Film-grain / paper texture (whole page overlay) ---- */
body::before{
  content:""; position:fixed; inset:0; z-index:9999; pointer-events:none;
  opacity:var(--grain-opacity); mix-blend-mode:multiply;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='140' height='140'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/><feColorMatrix type='matrix' values='0 0 0 0 0.35  0 0 0 0 0.28  0 0 0 0 0.15  0 0 0 0.5 0'/></filter><rect width='140' height='140' filter='url(%23n)'/></svg>");
}
body::after{
  content:""; position:fixed; inset:0; z-index:9998; pointer-events:none;
  background:
    radial-gradient(circle at 1px 1px, rgba(120,80,40,.045) 1px, transparent 0) 0 0/24px 24px,
    radial-gradient(circle at 1px 1px, rgba(120,80,40,.03) 1px, transparent 0) 0 0/17px 17px;
}

/* ---- Layout widths ---- */
.wide{max-width:1120px; margin:0 auto; padding:0 24px;}
.content{max-width:var(--content-size); margin:0 auto; padding:0 24px;}

/* ---- Grid-card equal height fix ----
   These containers are marked is-layout-flow by WP but the theme renders
   them as CSS grids. WP's global styles add margin-block-start:24px to every
   non-first flow child, which on a grid item offsets it inside its cell and
   shrinks it — staggering the cards and breaking equal heights. Reset the
   flow margins and stretch cards to fill their row. */
.card-grid, .price-grid, .product-grid, .specs-grid, .reasons-grid, .gallery-mosaic{align-items:stretch;}
/* Doubled container class raises specificity above WP's (0,1,0) flow-margin
   rule, which style.css cannot beat on load-order alone (it loads first). */
.card-grid.card-grid > *, .price-grid.price-grid > *, .product-grid.product-grid > *,
.specs-grid.specs-grid > *, .reasons-grid.reasons-grid > *, .gallery-mosaic.gallery-mosaic > *{
  margin-block-start:0; margin-block-end:0;
}
.card-grid.card-grid > *, .price-grid.price-grid > *, .product-grid.product-grid > *,
.specs-grid.specs-grid > *, .reasons-grid.reasons-grid > *{ height:100%; }

/* ============================================================
   LINKS / PROSE
   ============================================================ */
.prose a, a.link{color:var(--leaf); text-decoration:underline; text-underline-offset:3px; text-decoration-thickness:1.5px; transition:color .18s ease;}
.prose a:hover, a.link:hover{color:var(--leaf-deep);}

/* ============================================================
   BUTTONS — GREEN SYSTEM ONLY. Modest 8px radius.
   (both custom .btn and WP core button wrapper)
   ============================================================ */
.btn,
.wp-block-button__link.wp-block-button__link{
  display:inline-flex; align-items:center; gap:.5rem; cursor:pointer;
  font-family:var(--font-body); font-size:.95rem; font-weight:500; letter-spacing:.01em;
  padding:.72rem 1.4rem; border-radius:var(--radius-btn); text-decoration:none;
  border:1.5px solid transparent; box-shadow:none;
  transition:background .2s ease, color .2s ease, transform .2s ease, border-color .2s ease, box-shadow .2s ease;
}
.btn-primary,
.wp-block-button.btn-primary .wp-block-button__link{background:var(--leaf); color:var(--cream); border-color:var(--leaf);}
.btn-primary:hover,
.wp-block-button.btn-primary .wp-block-button__link:hover{background:var(--leaf-deep); color:var(--cream); border-color:var(--leaf-deep); transform:translateY(-2px); box-shadow:0 8px 18px rgba(18,77,38,.28);}
.btn-secondary,
.wp-block-button.btn-secondary .wp-block-button__link{background:transparent; color:var(--leaf); border-color:var(--leaf);}
.btn-secondary:hover,
.wp-block-button.btn-secondary .wp-block-button__link:hover{background:var(--leaf); color:var(--cream); border-color:var(--leaf); transform:translateY(-2px); box-shadow:0 8px 18px rgba(18,77,38,.22);}
.btn-on-dark,
.wp-block-button.btn-on-dark .wp-block-button__link{background:var(--leaf); color:var(--cream); border-color:var(--cream);}
.btn-on-dark:hover,
.wp-block-button.btn-on-dark .wp-block-button__link:hover{background:var(--leaf-deep); color:var(--cream); border-color:var(--cream); transform:translateY(-2px); box-shadow:0 8px 18px rgba(0,0,0,.32);}
.btn-secondary-on-dark .wp-block-button__link{background:transparent; color:var(--cream); border-color:var(--cream);}
.btn-secondary-on-dark .wp-block-button__link:hover{background:var(--cream); color:var(--aubergine); border-color:var(--cream); transform:translateY(-2px);}
.btn-row{display:flex; gap:12px; flex-wrap:wrap; align-items:center; margin-top:1.25rem;}
.wp-block-buttons.btn-row{margin-top:1.25rem;}
/* WP puts the variant class (btn-primary/btn-on-dark/…) on the .wp-block-button
   WRAPPER div, not the <a>. The standalone .btn-* rules above therefore paint the
   wrapper — a square, radius-less colored box that pokes past the rounded link's
   corners. Neutralise the wrapper so ONLY the <a> link is the button. */
.wp-block-button.btn,
.wp-block-button.btn-primary,
.wp-block-button.btn-secondary,
.wp-block-button.btn-on-dark,
.wp-block-button.btn-secondary-on-dark{
  background:transparent !important; border:0 !important; padding:0 !important;
  border-radius:0 !important; box-shadow:none !important; transform:none !important;
}

/* ============================================================
   FACET STRIP — square-edged multicolor divider
   ============================================================ */
.facet{height:4px; width:100%; display:flex; border-radius:0;
  background:linear-gradient(90deg, var(--f-mustard) 0 20%, var(--f-teal) 20% 40%, var(--f-pink) 40% 60%, var(--f-sky) 60% 80%, var(--f-orange) 80% 100%);}
.facet span{flex:1;}
.facet .m{background:var(--f-mustard);} .facet .t{background:var(--f-teal);}
.facet .p{background:var(--f-pink);} .facet .s{background:var(--f-sky);}
.facet .o{background:var(--f-orange);}

/* HEAD-FACET — small multicolor divider under section headings */
.head-facet{display:flex; height:5px; width:60px; border-radius:3px; overflow:hidden; margin:.8rem 0 0;
  background:linear-gradient(90deg, var(--f-mustard) 0 20%, var(--f-teal) 20% 40%, var(--f-pink) 40% 60%, var(--f-sky) 60% 80%, var(--f-orange) 80% 100%);}
.head-facet span{flex:1;}
.head-facet .m{background:var(--f-mustard);} .head-facet .t{background:var(--f-teal);}
.head-facet .p{background:var(--f-pink);} .head-facet .s{background:var(--f-sky);}
.head-facet .o{background:var(--f-orange);}
.head-facet.center{margin-left:auto; margin-right:auto;}

/* ============================================================
   HEADER — sticky
   ============================================================ */
.site-header{position:sticky; top:0; z-index:100; background:rgba(248,243,230,.92); backdrop-filter:blur(8px); border-bottom:1px solid var(--border);}
.site-header .facet{margin-block:0;}
.header-bar{display:flex; align-items:center; justify-content:space-between; gap:1rem; padding:.55rem 24px; max-width:1120px; margin:0 auto;}
.logo img{height:66px; width:auto;}
.logo .wp-block-image{margin:0;}
.logo .wp-block-image img{height:66px; width:auto;}
.nav{display:flex; align-items:center; gap:1.4rem;}
.nav a{font-family:var(--font-body); font-weight:500; font-size:.95rem; color:var(--aubergine); text-decoration:none; transition:color .18s ease;}
.nav a:hover{color:var(--leaf);}
/* !important: WP global styles set .wp-block-navigation ...__content.__content{color:inherit} at (0,3,0), which beats our selectors. */
.nav .wp-block-navigation-item__content{color:var(--aubergine) !important; text-decoration:none;}
.nav .current-menu-item .wp-block-navigation-item__content,
.nav a.is-active,
.nav .is-active .wp-block-navigation-item__content,
.nav a[aria-current="page"]{color:var(--leaf) !important; text-decoration:underline; text-underline-offset:4px; text-decoration-thickness:2px; font-weight:600;}
.nav .wp-block-navigation__responsive-container-open,
.nav .wp-block-navigation__responsive-container-close{color:var(--leaf);}

/* ---- Custom mobile menu ----
   WordPress wasn't loading the core Navigation block's overlay stylesheet, so
   its hamburger opened a tiny, unstyled dropdown. We hide the core nav on mobile
   and use our own full-screen overlay (built in theme.js) that we fully control. */
.lp-burger{display:none; flex-direction:column; justify-content:center; gap:5px; width:44px; height:44px; padding:10px; background:transparent; border:0; cursor:pointer;}
.lp-burger span{display:block; height:2px; width:100%; background:var(--aubergine); border-radius:2px; transition:background .18s ease;}
.lp-burger:hover span{background:var(--leaf);}
.lp-mobile-menu{position:fixed; inset:0; z-index:100000; background:var(--cream); display:flex; flex-direction:column; padding:5rem 2rem 2.5rem; transform:translateX(100%); visibility:hidden; transition:transform .28s ease, visibility .28s ease;}
body.lp-menu-open .lp-mobile-menu{transform:none; visibility:visible;}
.lp-mm-close{position:absolute; top:1.2rem; right:1.3rem; width:46px; height:46px; font-size:2.4rem; line-height:1; background:transparent; border:0; color:var(--aubergine); cursor:pointer;}
.lp-mm-close:hover{color:var(--leaf);}
.lp-mm-list{display:flex; flex-direction:column; gap:1.7rem; margin:auto 0;}
.lp-mm-list a{font-family:var(--font-display); font-weight:600; font-size:1.7rem; color:var(--aubergine); text-decoration:none;}
.lp-mm-list a:hover{color:var(--leaf);}
.lp-mm-list a.is-active{color:var(--leaf); text-decoration:underline; text-underline-offset:5px; text-decoration-thickness:2px;}
@media (max-width:781px){
  .site-header .nav{display:none !important;}
  .lp-burger{display:flex;}
}
@media (prefers-reduced-motion: reduce){ .lp-mobile-menu{transition:none;} }
/* Panier — plain link with a cart glyph. Scoped to a.cart so it never leaks
   onto WooCommerce's <form class="cart"> (add-to-cart form). */
a.cart{display:inline-flex; align-items:center; gap:.4rem; padding:.35rem .45rem; border-radius:var(--radius-btn); color:var(--leaf); text-decoration:none; font-size:.92rem; font-weight:500; transition:background .18s ease,color .18s ease;}
a.cart:hover{background:rgba(25,102,50,.08); color:var(--leaf-deep);}
a.cart svg{width:18px; height:18px;}
a.cart .cart-glyph{display:inline-flex; align-items:center;}
/* Live cart-count badge — small leaf circle, cream text; muted "0" when empty */
.lpaf-cart-count{display:inline-flex; align-items:center; justify-content:center; min-width:1.15rem; height:1.15rem; padding:0 .32rem; border-radius:999px; background:var(--leaf); color:var(--cream); font-family:var(--font-body); font-size:.72rem; font-weight:600; line-height:1; margin-left:.1rem;}
/* Hidden when the cart is empty (kept in the DOM so the ajax cart-count
   fragment can still reveal it the moment something is added). */
.lpaf-cart-count.is-empty{display:none;}
.header-actions{display:flex; align-items:center; gap:.7rem;}

/* ============================================================
   HERO — full-bleed image, content upper third
   ============================================================ */
/* Remove WordPress's injected 24px top margin above the first content block
   (measured 25px gap between the header facet strip and the hero). main itself
   is already reset; the margin lands on post-content / its first child. !important
   so it wins no matter the stylesheet load order. */
.wp-site-blocks > main{margin-block-start:0 !important;}
main > .wp-block-post-content{margin-block-start:0 !important; padding-block-start:0 !important;}
.wp-block-post-content > *{margin-block-start:0 !important;}

.hero{position:relative; overflow:hidden;}
/* WP applies margin-block-start:24px to non-first flow children; on the
   absolutely-positioned .scrim (inset:0) this over-constrains the box and
   shifts it down, leaving the image top uncovered. Zero it out. */
.hero.hero > *{margin-block-start:0; margin-block-end:0;}
.hero .wp-block-image.hero-bg,
.hero img.hero-bg{position:absolute; inset:0; width:100%; height:100%; margin:0; z-index:0;}
.hero .wp-block-image.hero-bg img{width:100%; height:100%; object-fit:cover;}
.hero .scrim{position:absolute; inset:0; z-index:1; background:linear-gradient(to bottom, rgba(22,29,23,.55) 0%, rgba(22,29,23,.25) 40%, rgba(31,52,35,.72) 100%);}
.hero-inner{position:relative; z-index:2; max-width:1120px; margin:0 auto; padding:clamp(2.6rem,6vw,4.6rem) 24px clamp(2.5rem,6vw,4.5rem);}
.hero-content{max-width:54rem;}
.hero h1{font-family:var(--font-display); font-weight:800; color:var(--cream); font-size:clamp(2.4rem,6vw,3.6rem); line-height:.98; letter-spacing:-.02em; margin:0; text-shadow:0 4px 20px rgba(0,0,0,.35); text-wrap:balance;}
.hero p{color:rgba(248,243,230,.94); font-size:clamp(1.05rem,2vw,1.2rem); margin:1.2rem 0 0; max-width:40ch; text-shadow:0 2px 12px rgba(0,0,0,.4);}
.hero .head-facet{margin-top:1.1rem;}

/* ============================================================
   SECTIONS
   ============================================================ */
.band{padding:clamp(2rem,4vw,3.2rem) 0; position:relative;}
.band.paper{background:var(--paper);}
.band.pt0{padding-top:0;}
.section-intro{text-align:center; padding:clamp(1.8rem,3.5vw,2.6rem) 0 0;}
.section-intro.flush{padding-top:0;}
.section-intro h2{font-family:var(--font-display); font-weight:700; color:var(--aubergine); font-size:clamp(1.7rem,3.5vw,2.3rem); line-height:1.05; letter-spacing:-.015em; margin:0 auto; max-width:20ch; text-wrap:balance;}
.section-intro p{color:rgba(22,29,23,.78); max-width:60ch; margin:1rem auto 0; font-size:1.05rem;}

/* alternating image/text split */
.split{display:grid; grid-template-columns:1fr 1fr; gap:clamp(2rem,5vw,4rem); align-items:center;}
.split.reverse .media{order:2;}
.split .media{position:relative; border-radius:var(--radius-lg); overflow:hidden; aspect-ratio:4/3; background:#2a3a2c;}
.split .media .wp-block-image,
.split .media figure{margin:0; position:absolute; inset:0; height:100%; width:100%;}
.split .media img{position:absolute; inset:0; width:100%; height:100%; object-fit:cover; transition:transform .6s ease;}
.split .media img[src*="everything.jpeg"]{object-position:center bottom;}
.split .media img[src*="chickens.jpg"]{object-position:center bottom;}
.split .media:hover img{transform:scale(1.04);}
.split .text h2{font-family:var(--font-display); font-weight:700; color:var(--aubergine); font-size:clamp(1.6rem,3.4vw,2.2rem); line-height:1.05; letter-spacing:-.015em; margin:0; text-wrap:balance;}
.split .text p{color:rgba(22,29,23,.78); font-size:1.05rem; margin:1rem 0 0; max-width:46ch; text-wrap:pretty;}
.locate{margin-top:1rem; font-size:.9rem; color:var(--muted); line-height:1.5;}
.locate strong{color:var(--aubergine); font-weight:600;}
@media(max-width:820px){
  .split{grid-template-columns:1fr; gap:1.6rem;}
  .split.reverse .media{order:0;}
}

/* ============================================================
   FACET FLAKES — reusable motif for dark blocks
   ============================================================ */
.flake-cluster{position:absolute; width:150px; height:150px; pointer-events:none; z-index:1;}
.flakes--tr .flake-cluster{top:-10px; right:-10px;}
.flakes--tl .flake-cluster{top:-10px; left:-10px; transform:scaleX(-1);}
.flakes--br .flake-cluster{bottom:-30px; right:-46px; transform:scaleY(-1);}
.flakes--bl .flake-cluster{bottom:-8px; left:-8px; transform:scale(-1,-1);}
.flake{position:absolute; z-index:1; display:block; overflow:visible; pointer-events:none; transform:translateY(0) rotate(var(--rot,0deg));}
.flake use{fill:currentColor;}
@keyframes flakeDrift{0%,100%{transform:translateY(0) rotate(var(--rot,0deg));} 50%{transform:translateY(-7px) rotate(calc(var(--rot,0deg) + 5deg));}}
.flake.drift{animation:flakeDrift var(--dur,8s) ease-in-out infinite; animation-delay:var(--delay,0s);}
@media (prefers-reduced-motion: reduce){ .flake.drift{animation:none;} }

/* Home « Sur mesure » slim flake band along the bottom edge */
.flakes-band{
  position:absolute; left:0; right:0; bottom:0;
  height:clamp(44px,6vw,58px);
  pointer-events:none; z-index:1; overflow:hidden;
}
.flakes-band .flake{position:absolute;}
@keyframes flakeDriftBand{0%,100%{transform:translateY(0) rotate(var(--rot,0deg));} 50%{transform:translateY(-6px) rotate(calc(var(--rot,0deg) + 5deg));}}
.flakes-band .flake.drift{animation:flakeDriftBand var(--dur,8s) ease-in-out infinite; animation-delay:var(--delay,0s);}

/* ============================================================
   DARK CTA PANEL — reusable, flake-friendly
   ============================================================ */
.cta-dark{position:relative; isolation:isolate; overflow:visible; background:var(--ink); color:var(--cream); border-radius:var(--radius-lg); padding:clamp(2.2rem,4vw,3rem); padding-right:clamp(2.2rem,20vw,13rem);}
.cta-dark h2{font-family:var(--font-display); font-weight:700; color:var(--cream); font-size:clamp(1.6rem,3vw,2.1rem); line-height:1.06; letter-spacing:-.015em; margin:0; text-wrap:balance;}
.cta-dark p{color:rgba(248,243,230,.9); font-size:1.02rem; margin:1rem 0 0; max-width:52ch; text-wrap:pretty;}
.cta-dark .head-facet{margin-top:.85rem;}
.cta-dark .flake-cluster{width:clamp(230px, calc(100vw - 620px), 540px); height:clamp(160px,22vw,232px);}
@media(max-width:820px){
  .cta-dark{padding-right:clamp(2rem,6vw,2.4rem); padding-bottom:clamp(8rem,30vw,10rem);}
  .cta-dark .flake-cluster{width:clamp(210px,74vw,360px); height:clamp(122px,34vw,150px);}
}
/* gîte closing CTA contact line */
.cta-dark .gite-contact{font-size:.95rem; line-height:1.85; color:rgba(248,243,230,.82); margin:1.1rem 0 0;}
.cta-dark .gite-contact a{color:#e9c98f; text-decoration:underline; text-underline-offset:3px;}
.cta-dark .gite-contact strong{color:var(--cream); font-weight:600;}

/* ============================================================
   HOME — DARK « Sur mesure » side-by-side panel (darkpanel)
   ============================================================ */
.darkpanel{
  position:relative; isolation:isolate;
  background:var(--ink); border-radius:var(--radius-lg); overflow:hidden;
  display:grid; grid-template-columns:1fr 1fr; gap:0; align-items:stretch;
}
.darkpanel .dp-text{
  position:relative; z-index:2;
  padding:clamp(2rem,3.5vw,2.8rem);
  padding-bottom:clamp(3.2rem,4.5vw,3.9rem);
  display:flex; flex-direction:column; align-items:flex-start; justify-content:center;
}
.darkpanel h2{font-family:var(--font-display); font-weight:700; color:var(--cream); font-size:clamp(1.5rem,3vw,2rem); line-height:1.06; letter-spacing:-.015em; margin:0; text-wrap:balance;}
.darkpanel p{color:rgba(248,243,230,.92); font-size:1rem; margin:1rem 0 0; max-width:38ch; text-wrap:pretty;}
.darkpanel .dp-text .head-facet{margin-top:.85rem;}
.dp-grid{
  position:relative; z-index:2;
  display:grid; grid-template-columns:1.5fr 1fr; grid-template-rows:1fr 1fr; gap:6px;
  height:clamp(360px,40vw,420px);
  overflow:hidden; border-top-right-radius:var(--radius-lg); border-bottom-right-radius:var(--radius-lg);
}
.dp-grid a,
.dp-grid .wp-block-image{overflow:hidden; display:block; margin:0; height:100%; min-height:0;}
.dp-grid > *:first-child{grid-row:span 2;}
.dp-grid img{width:100%; height:100%; object-fit:cover; transition:transform .6s ease;}
.dp-grid a:hover img,
.dp-grid .wp-block-image:hover img{transform:scale(1.05);}
@media(max-width:820px){
  .darkpanel{grid-template-columns:1fr;}
  .darkpanel .dp-text{justify-content:flex-start; padding-bottom:clamp(2.8rem,11vw,3.4rem);}
  .dp-grid{height:clamp(200px,46vw,260px); border-top-right-radius:0; border-bottom-left-radius:var(--radius-lg); border-bottom-right-radius:var(--radius-lg);}
}

/* ============================================================
   BOUTIQUE — intro, filters, product grid
   ============================================================ */
.shop-intro{padding:clamp(1.8rem,4vw,2.8rem) 0 0; text-align:center;}
.shop-intro h1{font-family:var(--font-display); font-weight:800; color:var(--aubergine); font-size:clamp(2.1rem,5vw,3rem); line-height:1.02; letter-spacing:-.02em; margin:0; text-wrap:balance;}
.shop-intro p{color:rgba(22,29,23,.78); max-width:60ch; margin:1.1rem auto 0; font-size:1.06rem;}
.filter-bar{display:flex; flex-wrap:wrap; gap:10px; justify-content:center; align-items:center; position:sticky; top:86px; z-index:60; background:var(--cream); padding:.8rem 1rem; margin:clamp(1.6rem,3vw,2.2rem) 0 0; border:1px solid var(--border); border-radius:var(--radius-btn); box-shadow:0 6px 16px rgba(22,29,23,.08);}
.filter-label{width:100%; text-align:center; font-size:.74rem; font-weight:600; letter-spacing:.08em; text-transform:uppercase; color:var(--muted); margin:0 0 .1rem;}
.filter-btn{font-family:var(--font-body); font-size:.9rem; font-weight:500; color:var(--aubergine); background:var(--card); border:1.5px solid var(--border); border-radius:var(--radius-btn); padding:.55rem 1.05rem; cursor:pointer; transition:background .18s ease,color .18s ease,border-color .18s ease,box-shadow .18s ease;}
.filter-btn:hover{border-color:var(--leaf); color:var(--leaf);}
.filter-btn[aria-pressed="true"]{background:var(--leaf); color:var(--cream); border-color:var(--leaf); box-shadow:0 6px 14px rgba(18,77,38,.2);}
.filter-btn.primary{font-size:.98rem; font-weight:600; padding:.62rem 1.25rem;}
.product-grid{display:grid; grid-template-columns:repeat(auto-fill,minmax(240px,1fr)); gap:clamp(1.2rem,2.5vw,1.8rem); margin-top:clamp(1.6rem,3vw,2.2rem);}
.product-card{display:flex; flex-direction:column; background:var(--card); border:1px solid var(--border); border-radius:14px; overflow:hidden; transition:transform .2s ease, box-shadow .2s ease;}
.product-card:hover{transform:translateY(-4px); box-shadow:0 14px 30px rgba(22,29,23,.12);}
.product-illus{aspect-ratio:4/3; display:flex; align-items:center; justify-content:center; padding:1.2rem; border-radius:14px 14px 0 0;}
.product-illus svg{width:64%; height:auto; max-height:130px;}
.product-body{display:flex; flex-direction:column; flex:1; padding:1.1rem 1.2rem 1.3rem; border-top:1px solid var(--border);}
.product-cat{font-size:.74rem; font-weight:600; letter-spacing:.06em; text-transform:uppercase; color:var(--leaf); margin:0 0 .35rem;}
.product-card h3{font-family:var(--font-display); font-weight:700; color:var(--aubergine); font-size:1.12rem; line-height:1.15; margin:0; letter-spacing:-.01em;}
.product-desc{color:rgba(22,29,23,.72); font-size:.92rem; margin:.5rem 0 0; flex:1;}
.product-avail{font-size:.84rem; color:var(--muted); margin:.7rem 0 0; line-height:1.4;}
.product-avail svg{width:14px; height:14px; display:inline-block; vertical-align:-2px; margin-right:.3rem; stroke:var(--leaf);}
.product-tags{font-size:.82rem; color:var(--muted); margin:.35rem 0 0;}
.product-meta{display:flex; align-items:baseline; justify-content:space-between; gap:.6rem; margin:.9rem 0 0;}
.product-price{font-family:var(--font-display); font-weight:700; color:var(--aubergine); font-size:1.3rem;}
.product-unit{font-size:.85rem; color:var(--muted);}
.product-card .btn,
.product-card .wp-block-button__link{width:100%; justify-content:center; margin-top:.9rem;}
.product-card .wp-block-button{width:100%;}
.no-results{grid-column:1/-1; text-align:center; color:var(--muted); padding:2rem 0; display:none;}

/* ============================================================
   ACCUEIL PÉDAGOGIQUE — theme cards, pricing
   ============================================================ */
.card-grid{display:grid; grid-template-columns:repeat(2,1fr); gap:clamp(1.2rem,2.5vw,1.8rem); margin-top:clamp(1.6rem,3vw,2.2rem);}
.card-grid.cols-3{grid-template-columns:repeat(3,1fr);}
.theme-card{background:var(--card); border:1px solid var(--border); border-radius:var(--radius-lg); padding:clamp(1.5rem,3vw,2rem);}
.theme-card h3{font-family:var(--font-display); font-weight:700; color:var(--aubergine); font-size:1.25rem; margin:0 0 1rem; letter-spacing:-.01em;}
.theme-card .head-facet{margin:.6rem 0 1rem;}
.theme-card ul{list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:.6rem;}
.theme-card li{position:relative; padding-left:1.4rem; color:rgba(22,29,23,.78); font-size:.96rem; line-height:1.5;}
.theme-card li::before{content:""; position:absolute; left:0; top:.55em; width:8px; height:8px; border-radius:2px; background:var(--f-teal);}
.theme-card:nth-child(2) li::before{background:var(--f-mustard);}
.theme-card:nth-child(3) li::before{background:var(--f-pink);}
.theme-card:nth-child(4) li::before{background:var(--f-sky);}
/* .cols-3 is (0,2,0), so the stacking rule below must match it or the modifier
   keeps its 3 columns on mobile. */
@media(max-width:820px){ .card-grid, .card-grid.cols-3{grid-template-columns:1fr;} }

.price-grid{display:grid; grid-template-columns:repeat(2,1fr); gap:clamp(1.2rem,2.5vw,1.8rem); margin-top:clamp(1.6rem,3vw,2.2rem);}
.price-card{background:var(--card); border:1px solid var(--border); border-radius:var(--radius-lg); padding:clamp(1.6rem,3vw,2.1rem); text-align:center;}
.price-card h3{font-family:var(--font-display); font-weight:700; color:var(--aubergine); font-size:1.2rem; margin:0 0 .3rem; letter-spacing:-.01em;}
.price-card .price-rows{list-style:none; margin:1.1rem 0 0; padding:0; display:flex; flex-direction:column; gap:.8rem;}
.price-card .price-rows li{display:flex; align-items:baseline; justify-content:space-between; gap:1rem; padding:.7rem 0; border-top:1px solid var(--border); text-align:left;}
.price-card .price-rows li:first-child{border-top:none;}
.price-card .price-rows .lbl{color:rgba(22,29,23,.78); font-size:.96rem;}
.price-card .price-rows .val{font-family:var(--font-display); font-weight:700; color:var(--leaf); font-size:1.1rem; white-space:nowrap;}
.price-note{text-align:center; color:var(--muted); font-size:.95rem; margin:1.4rem auto 0; max-width:44ch;}
.price-note strong{color:var(--aubergine); font-weight:600;}
.info-line{display:flex; flex-wrap:wrap; gap:.6rem 1.6rem; justify-content:center; margin-top:1rem; color:var(--muted); font-size:.92rem;}
.info-line strong{color:var(--aubergine); font-weight:600;}

/* WordPress injects margin-block-start:24px on non-first children of flow-layout
   containers. On these custom grid/flex blocks that created a dark bar above the
   Sur mesure images and pushed the Tarifs "Saison" items out of alignment.
   Doubled class beats WP's :where() rule without touching intended spacing. */
.darkpanel.darkpanel > *{margin-block-start:0; margin-block-end:0;}
.dp-grid.dp-grid > *{margin-block-start:0; margin-block-end:0;}
.info-line.info-line > *{margin-block-start:0; margin-block-end:0;}
@media(max-width:820px){ .price-grid{grid-template-columns:1fr;} }

/* ============================================================
   GÎTE — price summary, specs, gallery mosaic, lightbox
   ============================================================ */
.price-summary{display:flex; flex-wrap:wrap; align-items:flex-end; justify-content:space-between; gap:1.2rem 2rem; background:var(--card); border:1px solid var(--border); border-radius:var(--radius-lg); padding:clamp(1.4rem,3vw,1.9rem) clamp(1.6rem,3.5vw,2.2rem); box-shadow:0 12px 30px rgba(22,29,23,.07);}
.price-summary-main{display:flex; flex-direction:column; gap:.35rem;}
.price-summary .ps-price{font-family:var(--font-display); font-weight:800; color:var(--aubergine); font-size:clamp(2rem,4.4vw,2.7rem); line-height:1; letter-spacing:-.02em; margin:0;}
.price-summary .ps-price span{font-family:var(--font-body); font-weight:500; font-size:1.05rem; color:var(--muted); letter-spacing:0;}
.price-summary .ps-note{margin:0; color:var(--muted); font-size:.98rem;}
.price-summary-cta{display:flex; flex-direction:column; align-items:flex-start; gap:.55rem;}
.price-summary .ps-contact{margin:0; font-size:.9rem; color:var(--muted);}
.price-summary .ps-contact a{color:var(--leaf); text-decoration:underline; text-underline-offset:3px;}
@media(max-width:600px){ .price-summary{flex-direction:column; align-items:flex-start;} }

.specs-grid{display:grid; grid-template-columns:repeat(2,1fr); gap:clamp(1.2rem,2.5vw,1.8rem); margin-top:clamp(1.4rem,3vw,2rem);}
.spec-card{background:var(--card); border:1px solid var(--border); border-radius:var(--radius-lg); padding:clamp(1.5rem,3vw,2rem);}
.spec-card h3{font-family:var(--font-display); font-weight:700; color:var(--aubergine); font-size:1.2rem; margin:0 0 1rem; letter-spacing:-.01em;}
.spec-card .head-facet{margin:.6rem 0 1rem;}
.spec-card ul{list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:.65rem;}
.spec-card li{position:relative; padding-left:1.4rem; color:rgba(22,29,23,.78); font-size:.98rem; line-height:1.5;}
.spec-card li::before{content:""; position:absolute; left:0; top:.55em; width:8px; height:8px; border-radius:2px; background:var(--f-teal);}
.spec-card:nth-child(2) li::before{background:var(--f-mustard);}
@media(max-width:820px){ .specs-grid{grid-template-columns:1fr;} }

.access-note{max-width:60ch; margin:1.4rem auto 0; text-align:center; font-size:1.05rem; color:var(--muted); line-height:1.6;}
.access-note strong{color:var(--aubergine); font-weight:600;}

.gallery-mosaic{display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(.7rem,1.5vw,1.1rem); margin-top:clamp(1.4rem,3vw,2rem);}
.gallery-mosaic a{position:relative; display:block; border-radius:var(--radius-lg); overflow:hidden; aspect-ratio:1/1; background:#2a3a2c; cursor:zoom-in;}
.gallery-mosaic a.feature{grid-column:span 2; grid-row:span 2;}
.gallery-mosaic .wp-block-image{margin:0; height:100%;}
.gallery-mosaic img{width:100%; height:100%; object-fit:cover; transition:transform .6s ease;}
.gallery-mosaic a:hover img{transform:scale(1.05);}
@media(max-width:820px){
  .gallery-mosaic{grid-template-columns:repeat(2,1fr);}
  .gallery-mosaic a.feature{grid-column:span 2; grid-row:span 2;}
}
@media(max-width:520px){
  .gallery-mosaic a.feature{grid-row:span 1;}
}

.lightbox{position:fixed; inset:0; z-index:10000; display:none; align-items:center; justify-content:center; padding:clamp(1rem,4vw,3rem); background:rgba(16,20,16,.93);}
.lightbox.open{display:flex;}
.lb-img{max-width:92vw; max-height:86vh; width:auto; height:auto; border-radius:14px; box-shadow:0 24px 70px rgba(0,0,0,.55);}
.lb-close,.lb-nav{position:absolute; display:flex; align-items:center; justify-content:center; color:var(--cream); background:rgba(248,243,230,.14); border:1.5px solid rgba(248,243,230,.42); border-radius:var(--radius-btn); cursor:pointer; line-height:1; transition:background .18s ease, border-color .18s ease;}
.lb-close:hover,.lb-nav:hover{background:rgba(248,243,230,.28); border-color:rgba(248,243,230,.7);}
.lb-close{top:clamp(1rem,3vw,1.6rem); right:clamp(1rem,3vw,1.6rem); width:44px; height:44px; font-size:1.7rem;}
.lb-nav{top:50%; transform:translateY(-50%); width:48px; height:48px; font-size:2rem;}
.lb-prev{left:clamp(.6rem,2vw,1.4rem);}
.lb-next{right:clamp(.6rem,2vw,1.4rem);}
@media (prefers-reduced-motion: no-preference){ .lb-img{transition:opacity .2s ease;} }

/* ============================================================
   CONTACT — intro, reason cards, buy card
   ============================================================ */
.contact-intro{padding:clamp(2.6rem,6vw,4.5rem) 0 0; text-align:center;}
.contact-intro h1{font-family:var(--font-display); font-weight:800; color:var(--aubergine); font-size:clamp(2.1rem,4.6vw,2.9rem); line-height:1; letter-spacing:-.02em; margin:0;}
.contact-intro p{color:rgba(22,29,23,.78); max-width:52ch; margin:1.2rem auto 0; font-size:1.08rem; text-wrap:pretty;}
.contact-intro .rdv{color:var(--muted); font-size:1rem; max-width:50ch; margin:.7rem auto 0;}
.contact-intro .rdv strong{color:var(--leaf-deep); font-weight:600;}

.reasons{padding:clamp(2rem,4.5vw,3.4rem) 0 clamp(2.6rem,5vw,4rem);}
.reasons-grid{display:grid; grid-template-columns:repeat(2,1fr); gap:clamp(1.1rem,2.4vw,1.7rem); max-width:900px; margin:0 auto;}
@media(max-width:720px){ .reasons-grid{grid-template-columns:1fr;} }
.reason-card{display:flex; flex-direction:column; background:var(--card); border:1px solid var(--border); border-radius:var(--radius-lg); padding:clamp(1.6rem,3.2vw,2.2rem);}
.reason-card .r-icon{width:44px; height:44px; display:inline-flex; align-items:center; justify-content:center; border-radius:var(--radius-btn); background:rgba(25,102,50,.1); color:var(--leaf);}
.reason-card .r-icon svg{width:26px; height:26px;}
.reason-card h2{font-family:var(--font-display); font-weight:700; color:var(--aubergine); font-size:1.3rem; line-height:1.12; letter-spacing:-.01em; margin:1rem 0 0;}
.reason-card p{color:rgba(22,29,23,.76); font-size:1rem; margin:.7rem 0 0; text-wrap:pretty;}
.reason-card .r-foot{margin-top:auto; padding-top:1.3rem; display:flex; flex-direction:column; gap:.5rem;}
.reason-card .r-mail{display:inline-flex; align-items:center; gap:.5rem; align-self:flex-start; font-family:var(--font-body); font-weight:600; font-size:1.02rem; color:var(--leaf); text-decoration:none; word-break:break-word; border-bottom:1.5px solid transparent; transition:color .18s ease, border-color .18s ease;}
.reason-card .r-mail svg{width:18px; height:18px; flex:0 0 auto; color:var(--leaf-bright); transition:color .18s ease;}
.reason-card .r-mail:hover{color:var(--leaf-deep); border-bottom-color:var(--leaf-deep);}
.reason-card .r-mail:hover svg{color:var(--leaf-deep);}
.reason-card .r-more{font-size:.9rem; color:var(--muted); text-decoration:underline; text-underline-offset:3px; text-decoration-thickness:1.2px; align-self:flex-start; transition:color .18s ease;}
.reason-card .r-more:hover{color:var(--leaf);}
.reason-card.gite{order:1;}
.reason-card.gite .r-icon{color:var(--raspberry); background:rgba(220,95,130,.12);}

.buy{padding:0 0 clamp(3rem,6vw,4.5rem);}
.buy-card{max-width:900px; margin:2.4rem auto 0; background:rgba(25,102,50,.06); border:1.5px solid rgba(25,102,50,.30); border-radius:var(--radius-lg); padding:clamp(1.8rem,3.6vw,2.6rem); display:grid; grid-template-columns:44px 1fr; column-gap:1.1rem; row-gap:.2rem;}
.buy-card .b-icon{width:44px; height:44px; display:inline-flex; align-items:center; justify-content:center; border-radius:var(--radius-btn); background:var(--leaf); color:var(--cream);}
.buy-card .b-icon svg{width:26px; height:26px;}
.buy-card .b-body{grid-column:2;}
.buy-card .b-eyebrow{font-family:var(--font-body); font-weight:600; font-size:.82rem; letter-spacing:.08em; text-transform:uppercase; color:var(--leaf); margin:0;}
.buy-card h2{font-family:var(--font-display); font-weight:700; color:var(--aubergine); font-size:clamp(1.5rem,3vw,1.8rem); line-height:1.1; letter-spacing:-.01em; margin:.5rem 0 0;}
.buy-card .b-shop{font-family:var(--font-display); font-weight:600; color:var(--aubergine); font-size:1.15rem; margin:1rem 0 0;}
.buy-card .b-lead{color:rgba(22,29,23,.76); font-size:1rem; margin:.35rem 0 0; text-wrap:pretty;}
.buy-card .b-info{list-style:none; margin:1.1rem 0 0; padding:0; display:flex; flex-direction:column; gap:.45rem;}
.buy-card .b-info li{display:flex; align-items:flex-start; gap:.55rem; color:var(--muted); font-size:.96rem;}
.buy-card .b-info svg{width:17px; height:17px; flex:0 0 auto; margin-top:.18rem; color:var(--leaf-bright);}
.buy-card .b-info .b-label{font-weight:600; color:var(--aubergine);}
.buy-card .b-actions{margin-top:1.4rem; display:flex; flex-wrap:wrap; align-items:center; gap:.8rem 1.1rem;}
.btn-buy{display:inline-flex; align-items:center; gap:.5rem; font-family:var(--font-body); font-weight:600; font-size:.98rem; background:var(--leaf); color:var(--cream); text-decoration:none; padding:.7rem 1.2rem; border-radius:var(--radius-btn); transition:background .18s ease, transform .18s ease, box-shadow .18s ease;}
.btn-buy svg{width:18px; height:18px;}
.btn-buy:hover{background:var(--leaf-deep); transform:translateY(-2px); box-shadow:0 10px 22px rgba(18,77,38,.24);}
.link-buy{display:inline-flex; align-items:center; gap:.4rem; font-family:var(--font-body); font-weight:600; font-size:.98rem; color:var(--leaf); text-decoration:none; border-bottom:1.5px solid transparent; transition:color .18s ease, border-color .18s ease;}
.link-buy svg{width:17px; height:17px;}
.link-buy:hover{color:var(--leaf-deep); border-bottom-color:var(--leaf-deep);}
@media(max-width:560px){
  .buy-card{grid-template-columns:1fr; row-gap:1rem;}
  .buy-card .b-body{grid-column:1;}
  .buy-card .b-actions .btn-buy, .buy-card .b-actions .link-buy{width:100%; justify-content:center;}
}

/* ============================================================
   FOOTER
   ============================================================ */
footer.site-footer{margin-top:0; border-radius:0; overflow:hidden; background:var(--aubergine); color:rgba(248,243,230,.85);}
footer.site-footer .facet{margin-block:0;}
.foot-grid{max-width:1120px; margin:0 auto; padding:clamp(2.2rem,4.5vw,3rem) 24px 1.3rem; display:grid; grid-template-columns:1.6fr 1fr; gap:2.5rem;}
footer .brand-row{display:flex; align-items:center; flex-wrap:wrap; gap:.9rem .95rem;}
footer .brand-row .brand-line{margin:0;}
footer .brand-row .foot-social{margin:0; align-items:center;}
footer .brand-line{font-family:var(--font-display); font-weight:700; color:var(--cream); font-size:1.3rem;}
footer .foot-desc{margin:.8rem 0 0; font-size:.92rem; max-width:42ch; color:rgba(248,243,230,.8);}
footer .owners{margin-top:.7rem; font-size:.9rem; color:rgba(248,243,230,.7);}
footer h4{font-family:var(--font-display); font-weight:600; color:var(--cream); font-size:1rem; margin:0 0 .8rem;}
footer ul{list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:.5rem;}
footer ul a, footer .foot-contact a{color:rgba(248,243,230,.82); text-decoration:none; font-size:.92rem; transition:color .18s ease;}
footer ul a:hover, footer .foot-contact a:hover{color:var(--cream);}
footer .foot-contact{font-size:.92rem; line-height:1.9; color:rgba(248,243,230,.82);}
.foot-bottom{max-width:1120px; margin:0 auto; padding:1.2rem 24px 2rem; border-top:1px solid rgba(248,243,230,.16); text-align:center;}
.cert-block{display:flex; align-items:center; gap:16px; flex-wrap:wrap;}
.bio-logos{display:flex; align-items:flex-end; gap:14px;}
.bio-logos svg,
.bio-logos img{height:64px; width:auto; display:block;}
.foot-bottom .cert{font-size:.82rem; color:rgba(248,243,230,.72); letter-spacing:.02em;}
.foot-bottom .copy{font-size:.82rem; color:rgba(248,243,230,.6);}
/* EU / Région funding notice — required, kept subtle */
.foot-bottom .funding-block{display:flex; align-items:center; justify-content:center; gap:1.52rem; max-width:none; margin:0 auto; text-align:left;}
.foot-bottom .funding-logos{flex:0 0 auto; display:flex; align-items:center; gap:1.1rem;}
.foot-bottom .funding-logos a{display:block; line-height:0;}
.foot-bottom .funding-logo{width:auto; height:54px; display:block;}
.foot-bottom .funding-note{display:block; margin:0; max-width:none; font-size:.9rem; line-height:1.55; color:rgba(248,243,230,.72);}
.foot-grid .bio-logos{margin:.5rem 0 .7rem; flex-wrap:wrap; justify-content:flex-end;}
.foot-grid .bio-logos svg,
.foot-grid .bio-logos img{height:56px;}
.foot-grid .cert{display:block; font-size:.82rem; color:rgba(248,243,230,.72); letter-spacing:.02em;}
@media(max-width:820px){ .foot-grid{grid-template-columns:1fr; gap:1.8rem;} .foot-grid .bio-logos{justify-content:flex-start;} }
@media(max-width:560px){ .foot-bottom .funding-block{flex-direction:column; align-items:flex-start; gap:1rem;} }
/* Social links */
.foot-social{display:flex; gap:.85rem; margin:1.1rem 0 0; line-height:1;}
.foot-social a{color:rgba(248,243,230,.78); display:inline-flex; transition:color .18s ease, transform .18s ease;}
.foot-social a:hover{color:var(--cream); transform:translateY(-2px);}
.foot-social svg{width:22px; height:22px;}
.contact-intro .contact-social{display:flex; align-items:center; justify-content:center; gap:.65rem; margin:1.3rem auto 0; color:var(--muted); font-size:1rem;}
.contact-social a{color:var(--leaf); display:inline-flex; transition:color .18s ease, transform .18s ease;}
.contact-social a:hover{color:var(--leaf-deep); transform:translateY(-2px);}
.contact-social svg{width:23px; height:23px;}

/* ============================================================
   SCROLL REVEAL — snappy, subtle, fail-safe
   ============================================================ */
.reveal{transition:opacity .25s ease, transform .25s ease;}
.js .reveal{opacity:0; transform:translateY(10px);}
.js .reveal.in{opacity:1; transform:none;}
@media (prefers-reduced-motion: reduce){ .js .reveal{opacity:1; transform:none; transition:none;} }

/* ============================================================
   Editor: keep animated/hidden content visible while editing
   ============================================================ */
.editor-styles-wrapper .reveal{opacity:1 !important; transform:none !important; transition:none !important;}
.editor-styles-wrapper .flake.drift{animation:none !important;}

@media (prefers-reduced-motion: reduce){
  *, *::before, *::after{ animation-duration:0.01ms !important; transition-duration:0.01ms !important; }
  .reveal{opacity:1 !important; transform:none !important;}
}

footer .foot-address{margin:.85rem 0 0; font-size:.9rem; line-height:1.55; color:rgba(248,243,230,.82);}

/* Plain-text legal pages (privacy 54, returns 23): flow content renders
   full-width with no top space (the theme forces
   main > .wp-block-post-content padding-block-start:0). Constrain to the site
   box (aligned with the header), a readable text measure, and give it proper
   vertical rhythm. Higher specificity + !important to beat the theme's padding
   reset. Add new legal pages to the :is() list. */
:is(.page-id-54, .page-id-23) main .entry-content.wp-block-post-content{
  max-width:1120px !important; margin-inline:auto !important;
  padding:clamp(2.2rem,5vw,3.6rem) 24px clamp(2.6rem,5vw,4rem) !important;
  box-sizing:border-box;
}
:is(.page-id-54, .page-id-23) .entry-content.wp-block-post-content > *{ max-width:760px; }
:is(.page-id-54, .page-id-23) .entry-content.wp-block-post-content h1{
  font-family:var(--font-display); font-weight:800; color:var(--aubergine);
  font-size:clamp(2rem,4vw,2.8rem); line-height:1.05; letter-spacing:-.015em;
  margin:0 0 1.6rem;
}
:is(.page-id-54, .page-id-23) .entry-content.wp-block-post-content h2{
  font-family:var(--font-display); font-weight:700; color:var(--aubergine);
  font-size:clamp(1.35rem,2.6vw,1.7rem); line-height:1.15; letter-spacing:-.01em;
  margin:2.4rem 0 .5rem;
}
:is(.page-id-54, .page-id-23) .entry-content.wp-block-post-content p{ margin:0 0 1rem; line-height:1.65; color:var(--ink); }
:is(.page-id-54, .page-id-23) .entry-content.wp-block-post-content ul{ margin:.2rem 0 1rem; padding-left:1.2rem; }
:is(.page-id-54, .page-id-23) .entry-content.wp-block-post-content li{ margin:.25rem 0; line-height:1.55; }

/* ============================================================
   FAQ (gite page) — native <details>, no JS
   ============================================================ */
.faq-list{max-width:820px; margin:0 auto; display:flex; flex-direction:column; gap:.65rem;}
.faq-item{background:var(--card); border:1px solid var(--border); border-radius:14px; overflow:hidden; transition:border-color .18s ease;}
.faq-item:hover{border-color:#c3bfb4;}
.faq-item[open]{border-color:var(--leaf);}
.faq-item summary{cursor:pointer; list-style:none; display:flex; align-items:center; justify-content:space-between; gap:1.2rem; padding:1.05rem 1.2rem; font-family:var(--font-display); font-weight:600; font-size:1.02rem; line-height:1.35; color:var(--ink);}
.faq-item summary::-webkit-details-marker{display:none;}
.faq-item summary:hover{color:var(--leaf-deep);}
.faq-item summary::after{content:""; flex:0 0 auto; width:9px; height:9px; margin-right:3px; border-right:2px solid var(--leaf); border-bottom:2px solid var(--leaf); transform:translateY(-3px) rotate(45deg); transition:transform .2s ease;}
.faq-item[open] summary::after{transform:translateY(2px) rotate(225deg);}
.faq-item summary:focus-visible{outline:2px solid var(--leaf); outline-offset:-2px;}
.faq-answer{padding:0 1.2rem 1.15rem; color:var(--muted); font-size:.95rem; line-height:1.65;}
.faq-answer p{margin:0;}
.faq-answer a{color:var(--leaf); text-decoration:underline; text-underline-offset:2px;}
.faq-answer a:hover{color:var(--leaf-deep);}
@media (prefers-reduced-motion: reduce){ .faq-item, .faq-item summary::after{transition:none;} }
@media(max-width:560px){ .faq-item summary{padding:.95rem 1rem; font-size:.98rem;} .faq-answer{padding:0 1rem 1rem;} }
