:root {
  --navy:#09264b;
  --navy-2:#071d38;
  --yellow:#ffc629;
  --cream:#fbf5e9;
  --blue:#dcecf5;
  --text:#10233e;
  --white:#fff;
  --radius:20px;
  --shadow:0 15px 45px rgba(9,38,75,.10);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;font-family:Arial,Helvetica,sans-serif;color:var(--text);background:#fff}
a{text-decoration:none;color:inherit}
.topbar{background:var(--navy-2);color:#fff;display:flex;justify-content:space-between;padding:10px 5%;font-size:13px}
.header{height:100px;display:flex;align-items:center;gap:35px;padding:0 5%;background:var(--cream);position:sticky;top:0;z-index:10}
.brand{display:flex;align-items:center;gap:10px;min-width:250px}
.brand__mascot{font-size:44px}
.brand b,.footer-brand b{display:block;font-size:17px;line-height:1}
.brand strong,.footer-brand strong{display:block;font-size:30px;line-height:.95;color:var(--navy)}
.brand small{display:block;font-size:9px;max-width:170px;margin-top:5px}
nav{display:flex;gap:25px;font-weight:700;font-size:14px;flex:1;justify-content:center}
.header-icons{display:flex;gap:15px;align-items:center;font-size:21px}
.header-icons sup{background:var(--yellow);border-radius:50%;font-size:10px;padding:3px 6px}
.hero{min-height:520px;display:grid;grid-template-columns:1fr 1fr;align-items:center;padding:55px 7%;background:linear-gradient(110deg,#d9ecf7,#a9d3e7)}
.hero__content{max-width:560px}
.eyebrow,.section-heading>span,.section-kicker{font-weight:800;text-transform:uppercase;letter-spacing:.08em}
.hero h1{font-size:72px;line-height:.85;text-transform:uppercase;margin:15px 0;color:var(--navy)}
.hero h1 strong{font-size:105px}
.hero__signature{font-size:30px;font-style:italic;font-weight:700;margin:10px 0 18px}
.hero p:not(.hero__signature){font-size:18px;line-height:1.55}
.hero__character{display:flex;justify-content:center;align-items:center}
.character-placeholder{font-size:120px;text-align:center;filter:drop-shadow(0 15px 15px rgba(0,0,0,.15))}
.character-head{font-size:115px}.character-body{font-size:130px}.character-boots{font-size:70px}
.btn{display:inline-flex;align-items:center;justify-content:center;border:0;border-radius:999px;padding:14px 25px;font-weight:800;margin-top:18px;cursor:pointer}
.btn--yellow{background:var(--yellow);color:var(--navy)}
.btn--navy{background:var(--navy);color:#fff}
.featured{display:grid;grid-template-columns:1fr .8fr 1.2fr;gap:35px;align-items:center;padding:55px 8%;background:var(--cream)}
.badge{display:inline-block;background:var(--yellow);padding:6px 12px;border-radius:999px;font-size:12px;font-weight:900;text-transform:uppercase}
.featured h2{font-size:40px;line-height:.95;text-transform:uppercase;margin:15px 0}
.price{font-size:28px;font-weight:900;display:block;margin:15px 0}
.featured__toy{text-align:center;font-size:170px}
.features{display:flex;justify-content:space-between;gap:20px}
.features div{display:flex;flex-direction:column;text-align:center;gap:7px;flex:1}
.features b{font-size:28px}.features strong{font-size:15px}.features span{font-size:13px;line-height:1.4}
.section{padding:70px 7%}
.section-heading{text-align:center;margin-bottom:35px}.section-heading span{color:#c39300;font-size:13px}.section-heading h1,.section-heading h2{font-size:38px;margin:8px 0}
.category-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:15px}
.category-card{background:#fff;border-radius:var(--radius);box-shadow:var(--shadow);padding:15px;text-align:center}
.category-card__image{height:145px;border-radius:15px;background:#eef3f6;display:grid;place-items:center;font-size:70px;margin-bottom:12px}
.adventures{padding:70px 7%;background:var(--cream)}
.adventure-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.adventure-card{background:#fff;border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow)}
.adventure-card__image{height:180px;background:#b8dceb;display:grid;place-items:center;font-size:80px}
.adventure-card__body{padding:20px}.adventure-card__body span{font-size:11px;text-transform:uppercase;font-weight:900}.adventure-card h3{font-size:20px}.adventure-card small{color:#64748b}
.newsletter{background:var(--blue);padding:40px 8%;display:flex;justify-content:space-between;align-items:center;gap:30px}
.newsletter p{margin-bottom:0}.newsletter form{display:flex;background:#fff;border-radius:999px;overflow:hidden;min-width:420px}
.newsletter input{border:0;outline:0;padding:15px 20px;flex:1}.newsletter .btn{margin:0}
.footer{background:var(--navy-2);color:#fff;padding:55px 7%;display:grid;grid-template-columns:2fr repeat(4,1fr);gap:35px}
.footer a{display:block;color:#d8e0eb;margin:8px 0;font-size:13px}.footer h4{margin-top:0}.footer-brand{display:flex;gap:15px}.footer-brand strong{color:#fff}.footer-brand p{font-size:13px;color:#d8e0eb}.footer-mascot{font-size:55px}
.footer-bottom{grid-column:1/-1;border-top:1px solid rgba(255,255,255,.2);padding-top:20px;font-size:12px;color:#cbd5e1}
.product-page{display:grid;grid-template-columns:1fr 1fr;gap:70px;padding:80px 10%;background:var(--cream);min-height:600px}
.product-visual{display:grid;place-items:center;font-size:260px;background:#e8f1f4;border-radius:30px}
.product-info h1{font-size:48px;margin:15px 0}.product-info .price{font-size:35px}.limited{padding:18px;background:#fff;border-radius:15px;display:flex;justify-content:space-between;gap:20px;margin:25px 0}.add-cart{display:flex;gap:12px}.add-cart input{width:80px;border:1px solid #ccd5df;border-radius:999px;text-align:center}.product-description{margin-top:30px;line-height:1.7}
.cart-page{padding:70px 10%;min-height:600px}.cart-list{display:grid;gap:12px}.cart-row{display:grid;grid-template-columns:60px 1fr auto;align-items:center;padding:18px;border:1px solid #e5e7eb;border-radius:15px}.cart-row span{font-size:35px}.cart-row small{display:block;color:#64748b;margin-top:4px}.cart-total{display:flex;justify-content:space-between;font-size:22px;margin:25px 0}
@media(max-width:1000px){nav{display:none}.featured{grid-template-columns:1fr}.features{margin-top:20px}.category-grid{grid-template-columns:repeat(3,1fr)}.footer{grid-template-columns:repeat(2,1fr)}}
@media(max-width:700px){.topbar{font-size:11px;gap:10px}.topbar span:nth-child(2){display:none}.header{height:78px}.brand{min-width:0}.brand small{display:none}.hero{grid-template-columns:1fr;min-height:auto;padding:45px 7%}.hero h1{font-size:50px}.hero h1 strong{font-size:72px}.hero__signature{font-size:23px}.hero__character{margin-top:15px}.featured{padding:45px 7%}.category-grid{grid-template-columns:repeat(2,1fr)}.adventure-grid{grid-template-columns:1fr}.newsletter{display:block}.newsletter form{min-width:0;margin-top:20px}.footer{grid-template-columns:1fr}.product-page{grid-template-columns:1fr;padding:40px 7%;gap:30px}.product-info h1{font-size:36px}}

.hero__character img{width:min(100%,430px);height:390px;object-fit:cover;border-radius:28px;box-shadow:0 18px 45px rgba(9,38,75,.18)}
.featured__toy img{width:260px;height:260px;object-fit:cover;border-radius:24px;box-shadow:var(--shadow)}
.category-card__image img{width:100%;height:100%;object-fit:cover;border-radius:15px}
.adventure-card__image img{width:100%;height:100%;object-fit:cover;display:block}
.product-visual img{width:100%;height:100%;object-fit:contain;border-radius:30px}

/* Hero V2 — composition inspirée de la maquette validée */
.hero--new{
  min-height:560px;
  grid-template-columns:minmax(420px,.95fr) minmax(480px,1.15fr);
  padding:42px 6%;
  gap:30px;
  overflow:hidden;
  background:
    linear-gradient(90deg,rgba(251,245,233,.96) 0%,rgba(251,245,233,.86) 43%,rgba(213,235,246,.35) 67%,rgba(169,211,231,.65) 100%),
    #d9ecf7;
}
.hero--new .hero__content{position:relative;z-index:2;max-width:600px}
.hero--new h1{
  margin:10px 0 12px;
  font-size:66px;
  line-height:.82;
  letter-spacing:-2px;
  font-weight:900;
}
.hero--new h1 strong{font-size:105px;letter-spacing:-4px}
.hero--new .hero__signature{
  font-size:26px;
  line-height:1.1;
  max-width:520px;
  margin:18px 0;
}
.hero__visual{
  position:relative;
  min-height:470px;
  display:flex;
  align-items:center;
  justify-content:center;
}
.hero__scene{
  width:100%;
  max-width:650px;
  height:470px;
  object-fit:cover;
  object-position:center;
  border-radius:30px;
  box-shadow:0 25px 60px rgba(9,38,75,.18);
}
.hero__badge{
  position:absolute;
  right:-4px;
  bottom:35px;
  max-width:220px;
  padding:20px 24px;
  background:rgba(255,255,255,.94);
  border:2px solid rgba(9,38,75,.12);
  border-radius:12px;
  color:var(--navy);
  font-family:Georgia,serif;
  font-weight:700;
  font-size:18px;
  line-height:1.25;
  box-shadow:0 12px 30px rgba(9,38,75,.15);
  transform:rotate(-2deg);
}
.hero__badge:after{
  content:"";
  position:absolute;
  left:22px;
  bottom:-12px;
  width:22px;height:22px;
  background:#fff;
  transform:rotate(45deg);
  border-right:2px solid rgba(9,38,75,.12);
  border-bottom:2px solid rgba(9,38,75,.12);
}
@media(max-width:1000px){
  .hero--new{grid-template-columns:1fr;padding:45px 7%}
  .hero__visual{min-height:420px}
  .hero__scene{height:420px}
}
@media(max-width:700px){
  .hero--new h1{font-size:48px}
  .hero--new h1 strong{font-size:72px}
  .hero--new .hero__signature{font-size:21px}
  .hero__visual{min-height:330px}
  .hero__scene{height:330px;border-radius:20px}
  .hero__badge{right:5px;bottom:15px;font-size:14px;max-width:170px;padding:13px 15px}
}

/* Boutique V2 */
.product-page--shop{grid-template-columns:minmax(0,1.05fr) minmax(360px,.95fr);background:#fff}
.product-gallery{position:sticky;top:120px;align-self:start}
.product-main-image{
  width:min(100%,560px);
  height:500px;
  margin:0 auto;
  box-sizing:border-box;
  background:var(--cream);
  border-radius:28px;
  padding:18px;
  display:grid;
  place-items:center;
  overflow:hidden;
}
.product-main-image img{
  display:block;
  max-width:100%;
  max-height:100%;
  width:auto;
  height:auto;
  object-fit:contain;
  border-radius:20px;
}
.product-thumbs{
  display:flex;
  gap:10px;
  margin-top:14px;
  max-width:560px;
  overflow-x:auto;
}
.product-thumb{
  flex:0 0 76px;
  width:76px;
  height:76px;
  padding:4px;
  border:2px solid transparent;
  background:#fff;
  border-radius:12px;
  cursor:pointer;
}
.product-thumb.is-active{border-color:var(--yellow)}
.product-thumb img{width:100%;height:100%;object-fit:cover;border-radius:8px}
.product-category{text-transform:uppercase;letter-spacing:.08em;font-weight:800;color:#75849a;font-size:12px}
.product-price{font-size:38px;font-weight:900;color:var(--navy);margin:12px 0}
.product-price small{font-size:12px;color:#75849a}
.product-lead{font-size:18px;line-height:1.55}
.stock-box{background:var(--cream);border-radius:16px;padding:17px;margin:25px 0}
.stock-box>div:first-child{display:flex;justify-content:space-between;gap:15px;margin-bottom:10px}
.stock-box span{color:#66758b}
.stock-bar{height:7px;background:#e6dfd0;border-radius:99px;overflow:hidden}
.stock-bar span{display:block;height:100%;background:var(--yellow)}
.success-box,.alert-box{padding:14px 17px;border-radius:12px;margin:18px 0;background:#e3f6eb;color:#17633f}
.alert-box{background:#fde9e7;color:#9c2b21}
.add-cart--large{align-items:end}.qty{display:grid;gap:7px;font-size:12px;font-weight:800}.qty input{width:85px;padding:14px;border:1px solid #ccd4df;border-radius:12px;font:inherit}
.product-promises{list-style:none;padding:0;margin:28px 0;display:grid;gap:10px;color:#46566d}
.product-description{border-top:1px solid #e7ebf0;padding-top:25px;margin-top:25px;line-height:1.7}.product-description h2{color:var(--navy)}
.soldout{padding:15px;background:#f2f3f5;border-radius:12px;font-weight:800}
.cart-page--shop{background:#fbfcfd}
.cart-layout{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:25px;align-items:start}
.cart-items{display:grid;gap:12px}
.cart-product{display:grid;grid-template-columns:95px 1fr 75px 100px 35px;align-items:center;gap:18px;background:#fff;border:1px solid #e6eaf0;border-radius:16px;padding:12px}
.cart-product img{width:95px;height:95px;object-fit:cover;border-radius:12px;background:var(--cream)}
.cart-product__info strong{display:block;font-size:16px}.cart-product__info span{display:block;font-weight:800;margin:5px 0}.cart-product__info a{font-size:12px;color:#60718a}
.cart-qty{width:70px;padding:9px;border:1px solid #ccd4df;border-radius:9px}.cart-line-total{text-align:right}.remove-btn{border:0;background:none;font-size:24px;cursor:pointer;color:#8a96a8}
.cart-summary{background:#fff;border:1px solid #e2e7ee;border-radius:18px;padding:25px;box-shadow:var(--shadow);position:sticky;top:120px}
.cart-summary h2{margin-top:0}.cart-summary>div{display:flex;justify-content:space-between;gap:15px;margin:12px 0}.cart-summary small{display:block;line-height:1.45}.cart-summary hr{border:0;border-top:1px solid #e6eaf0;margin:18px 0}.btn--full{width:100%;text-align:center}.secure-note{font-size:12px;color:#728097;text-align:center;margin-bottom:0}
.empty-cart{text-align:center;background:#fff;border:1px dashed #ccd4df;border-radius:22px;padding:70px 20px}.empty-cart>div{font-size:60px}.empty-cart h2{font-size:30px}
.checkout-page{padding:65px 7%;background:#f8fafc}.checkout-layout{display:grid;grid-template-columns:minmax(0,1fr) 380px;gap:25px;align-items:start}.checkout-form{display:grid;gap:18px}.checkout-card{background:#fff;border:1px solid #e3e8ef;border-radius:18px;padding:25px}.checkout-card h2{margin-top:0;color:var(--navy);font-size:21px}.checkout-card label{display:grid;gap:7px;font-size:13px;font-weight:800}.checkout-card input,.checkout-card select,.checkout-card textarea{font:inherit;padding:12px;border:1px solid #ccd4df;border-radius:10px}.checkout-card textarea{resize:vertical}.checkout-card .form-grid{display:grid;grid-template-columns:1fr 1fr;gap:15px}.payment-placeholder{background:var(--cream)}.payment-placeholder p{color:#60718a}.checkout-summary{position:sticky}.checkout-line{display:flex;justify-content:space-between;gap:15px;margin:12px 0;font-size:14px}.success-page{min-height:650px;display:grid;place-items:center;background:linear-gradient(135deg,#dcecf5,#fbf5e9);padding:40px}.success-card{background:#fff;max-width:650px;text-align:center;border-radius:24px;padding:55px;box-shadow:var(--shadow)}.success-icon{width:70px;height:70px;border-radius:50%;background:#dff5e9;color:#14724b;display:grid;place-items:center;margin:0 auto 20px;font-size:36px;font-weight:900}
@media(max-width:1000px){.product-page--shop{grid-template-columns:1fr}.product-gallery{position:static}.cart-layout,.checkout-layout{grid-template-columns:1fr}.cart-summary,.checkout-summary{position:static}}
@media(max-width:700px){.product-main-image{height:380px}.cart-product{grid-template-columns:70px 1fr 60px 30px}.cart-product img{width:70px;height:70px}.cart-line-total{grid-column:2;text-align:left}.checkout-card .form-grid{grid-template-columns:1fr}.add-cart--large{flex-wrap:wrap}}

.cart-qty{display:flex;align-items:center;gap:18px}.cart-qty input{width:70px;padding:10px;border:1px solid #ccd5df;border-radius:10px;text-align:center}.cart-summary{max-width:520px;margin:30px 0 25px auto}.cart-summary>div{display:flex;justify-content:space-between;padding:9px 0}.cart-summary .cart-total{font-size:22px;border-top:1px solid #dbe2ea;padding-top:16px}
.checkout-page{padding:65px 7%;background:var(--cream);min-height:700px}.checkout-grid{display:grid;grid-template-columns:1.5fr .8fr;gap:30px;align-items:start}.checkout-form{display:grid;gap:18px}.checkout-card,.checkout-summary{background:#fff;border-radius:18px;padding:25px;box-shadow:var(--shadow)}.checkout-card h2,.checkout-summary h2{margin-top:0}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:15px}.checkout-card label{display:grid;gap:7px;font-weight:700;font-size:13px}.checkout-card input,.checkout-card select,.checkout-card textarea{font:inherit;border:1px solid #ccd5df;border-radius:9px;padding:12px;background:#fff}.payment-choice{display:flex!important;grid-template-columns:none!important;grid-template-rows:none!important;flex-direction:row;gap:12px!important;padding:14px;border:1px solid #e2e7ee;border-radius:12px;margin:10px 0}.payment-choice input{margin-top:4px}.payment-choice span{display:grid;gap:4px}.payment-choice small{color:#64748b}.checkout-note{font-size:12px;color:#64748b}.consent{display:flex;gap:10px;align-items:flex-start;font-size:13px}.btn--checkout{width:100%;font-size:16px}.checkout-summary{position:sticky;top:120px}.summary-item{display:grid;grid-template-columns:40px 1fr auto;gap:10px;align-items:center;padding:12px 0}.summary-item span{font-size:30px}.summary-item small{display:block;color:#64748b}.checkout-summary>div:not(.summary-item):not(.summary-total){display:flex;justify-content:space-between;padding:7px 0}.summary-total{display:flex;justify-content:space-between;font-size:22px;padding-top:15px}.free-shipping{background:var(--blue);padding:12px;border-radius:10px;font-size:13px}.checkout-errors{background:#fde8e7;color:#9b1c16;border-radius:12px;padding:15px;margin-bottom:20px}.checkout-errors div+div{margin-top:5px}.confirmation-page{min-height:650px;display:grid;place-items:center;padding:60px 7%;background:var(--cream)}.confirmation-card{max-width:680px;text-align:center;background:#fff;border-radius:25px;padding:55px;box-shadow:var(--shadow)}.confirmation-icon{width:70px;height:70px;margin:0 auto 20px;border-radius:50%;display:grid;place-items:center;background:#dff6eb;color:#0b7a53;font-size:35px;font-weight:900}.confirmation-card h1{font-size:42px;margin:12px 0}.bank-box{margin:25px 0;padding:20px;text-align:left;border-radius:15px;background:#eef5f8}
@media(max-width:900px){.checkout-grid{grid-template-columns:1fr}.checkout-summary{position:static}}
@media(max-width:600px){.form-grid{grid-template-columns:1fr}.checkout-page{padding:40px 5%}.confirmation-card{padding:35px 20px}.confirmation-card h1{font-size:32px}}

/* =========================================================
   LE P'TIT BREIZH — FRONT V5
   Image-led, lively, with real hover states
   ========================================================= */
:root{
  --pb-navy:#09264b;
  --pb-yellow:#f5b900;
  --pb-cream:#fbf5e9;
  --pb-sky:#dceef8;
  --pb-ink:#14263e;
}

/* Header logo */
.logo{display:flex;align-items:center;max-width:255px;height:62px;overflow:hidden}
.logo img{width:100%;height:100%;object-fit:contain;object-position:left center;mix-blend-mode:multiply}
.logo:hover img{transform:scale(1.025);transition:transform .25s ease}

/* Dynamic buttons */
.btn-dynamic{
  position:relative;
  overflow:hidden;
  transition:transform .22s ease, box-shadow .22s ease, background-color .22s ease, color .22s ease;
}
.btn-dynamic:before{
  content:"";
  position:absolute;
  inset:0;
  transform:translateX(-110%) skewX(-18deg);
  width:70%;
  background:rgba(255,255,255,.26);
  transition:transform .45s ease;
}
.btn-dynamic:hover{
  transform:translateY(-4px);
  box-shadow:0 14px 28px rgba(9,38,75,.18);
}
.btn-dynamic:hover:before{transform:translateX(180%) skewX(-18deg)}
.btn-dynamic:active{transform:translateY(-1px) scale(.99)}
.btn--ghost{
  border:2px solid var(--pb-navy);
  background:rgba(255,255,255,.7);
  color:var(--pb-navy);
}
.btn--ghost:hover{background:var(--pb-navy);color:#fff}

/* Hero */
.hero-v5{
  position:relative;
  min-height:680px;
  padding:48px clamp(22px,6vw,92px);
  display:grid;
  grid-template-columns:minmax(400px,.82fr) minmax(500px,1.18fr);
  align-items:center;
  gap:35px;
  overflow:hidden;
  background:
    radial-gradient(circle at 75% 25%, rgba(255,255,255,.9), transparent 24%),
    linear-gradient(115deg,#fbf5e9 0%,#f7f0e2 39%,#dff0f8 72%,#c3e0ef 100%);
}
.hero-v5__waves{
  position:absolute;inset:auto -5% -95px;height:220px;
  background:#fff;
  border-radius:50% 50% 0 0/55% 55% 0 0;
  opacity:.55;
  transform:rotate(-2deg);
}
.hero-v5__content{position:relative;z-index:2;max-width:650px}
.hero-v5__logo{
  display:block;width:min(390px,88%);margin-bottom:25px;
}
.hero-v5__logo img{
  width:100%;display:block;mix-blend-mode:multiply;
  filter:drop-shadow(0 8px 15px rgba(9,38,75,.07));
}
.hero-v5 .eyebrow{
  display:inline-flex;
  padding:8px 14px;
  border-radius:999px;
  background:rgba(9,38,75,.08);
  color:var(--pb-navy);
  font-size:12px;
  font-weight:900;
  text-transform:uppercase;
  letter-spacing:.09em;
}
.hero-v5 h1{
  margin:17px 0 15px;
  color:var(--pb-navy);
  font-size:clamp(48px,5.4vw,82px);
  line-height:.93;
  letter-spacing:-.045em;
}
.hero-v5 h1 em{
  font-family:Georgia,serif;
  font-size:.52em;
  font-weight:700;
  letter-spacing:-.02em;
  color:#314a68;
}
.hero-v5__content>p{
  max-width:560px;
  font-size:18px;
  line-height:1.6;
  color:#4d6078;
}
.hero-v5__actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:27px}
.hero-v5__visual{position:relative;z-index:2;min-height:560px;display:grid;place-items:center}
.hero-v5__scene{
  position:relative;width:min(700px,100%);height:540px;
  border-radius:42px;overflow:hidden;
  box-shadow:0 30px 70px rgba(9,38,75,.2);
  transform:rotate(1.1deg);
  border:8px solid rgba(255,255,255,.75);
}
.hero-v5__scene img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .7s cubic-bezier(.2,.7,.2,1)}
.hero-v5__scene:hover img{transform:scale(1.045)}
.hero-v5__sticker{
  position:absolute;left:24px;bottom:24px;
  max-width:230px;padding:16px 20px;
  border-radius:15px;
  background:#fff;
  color:var(--pb-navy);
  font-family:Georgia,serif;
  font-weight:800;
  line-height:1.25;
  box-shadow:0 12px 30px rgba(9,38,75,.16);
  transform:rotate(-3deg);
}
.hero-v5__floating{
  position:absolute;z-index:3;
  padding:12px 18px;
  background:#fff;border-radius:999px;
  color:var(--pb-navy);
  box-shadow:0 12px 25px rgba(9,38,75,.14);
  animation:pbFloat 4.5s ease-in-out infinite;
}
.hero-v5__floating--top{top:9%;right:-3%}
.hero-v5__floating--bottom{bottom:10%;left:-2%;animation-delay:-2s}
@keyframes pbFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-9px)}}

/* Reveal on scroll */
.reveal{opacity:0;transform:translateY(28px);transition:opacity .75s ease,transform .75s ease}
.reveal-delay{transition-delay:.12s}
.reveal.is-visible{opacity:1;transform:none}

/* Adventure cards */
.adventure-card{
  transition:transform .28s ease,box-shadow .28s ease;
  transform:translateY(0);
}
.adventure-card:hover{
  transform:translateY(-9px);
  box-shadow:0 20px 38px rgba(9,38,75,.15);
}
.adventure-card__image{overflow:hidden}
.adventure-card__image img{transition:transform .55s cubic-bezier(.2,.7,.2,1)}
.adventure-card:hover .adventure-card__image img{transform:scale(1.07)}

/* Product/category cards */
.category-card,.product-card{
  transition:transform .25s ease,box-shadow .25s ease;
}
.category-card:hover,.product-card:hover{
  transform:translateY(-7px);
  box-shadow:0 18px 34px rgba(9,38,75,.12);
}
.category-card__image,.product-card__image{overflow:hidden}
.category-card__image img,.product-card__image img{transition:transform .5s ease}
.category-card:hover img,.product-card:hover img{transform:scale(1.06)}

/* Scrollable adventure rail on desktop/mobile */
.adventure-grid{
  scroll-behavior:smooth;
}
@media(max-width:900px){
  .hero-v5{
    min-height:auto;
    grid-template-columns:1fr;
    padding-top:32px;
  }
  .hero-v5__visual{min-height:430px}
  .hero-v5__scene{height:420px}
  .hero-v5__floating--top{right:2%}
  .hero-v5__floating--bottom{left:2%}
}
@media(max-width:600px){
  .logo{max-width:190px;height:52px}
  .hero-v5{padding:28px 18px 75px}
  .hero-v5__logo{width:280px}
  .hero-v5 h1{font-size:49px}
  .hero-v5__actions{display:grid}
  .hero-v5__actions .btn{text-align:center}
  .hero-v5__visual{min-height:340px}
  .hero-v5__scene{height:335px;border-radius:25px;border-width:5px}
  .hero-v5__sticker{left:12px;bottom:12px;font-size:13px;max-width:175px;padding:12px 14px}
  .hero-v5__floating{font-size:12px;padding:9px 12px}
}
@media(prefers-reduced-motion:reduce){
  .hero-v5__floating,.reveal,.btn-dynamic,.adventure-card,.category-card,.product-card{animation:none!important;transition:none!important}
}

/* V5.1 — final logo treatment */
.logo{
  max-width:310px;
  height:72px;
  overflow:visible;
}
.logo img{
  object-fit:contain;
  object-position:left center;
  mix-blend-mode:multiply;
}
@media(max-width:600px){
  .logo{max-width:220px;height:58px}
}

/* V5.2 — official wordmark in header */
.header .brand{
  display:flex;
  align-items:center;
  width:310px;
  height:72px;
  flex:0 0 310px;
  text-decoration:none;
  overflow:hidden;
}
.header .brand img{
  display:block;
  width:100%;
  height:100%;
  object-fit:contain;
  object-position:left center;
  mix-blend-mode:multiply;
  transition:transform .22s ease;
}
.header .brand:hover img{
  transform:scale(1.025);
}
@media(max-width:900px){
  .header .brand{
    width:245px;
    flex-basis:245px;
    height:62px;
  }
}
@media(max-width:600px){
  .header .brand{
    width:190px;
    flex-basis:190px;
    height:54px;
  }
}

/* V5.3 — EXACT official logo supplied by the owner */
.header .brand{
  width:330px;
  height:72px;
  display:flex;
  align-items:center;
  overflow:visible;
}
.header .brand img{
  width:100%;
  height:auto;
  max-height:68px;
  object-fit:contain;
  object-position:left center;
  mix-blend-mode:normal;
  display:block;
}
.header .brand:hover img{
  transform:scale(1.02);
}
@media(max-width:900px){
  .header .brand{width:255px;height:62px}
  .header .brand img{max-height:58px}
}
@media(max-width:600px){
  .header .brand{width:205px;height:55px}
  .header .brand img{max-height:52px}
}

/* =========================================================
   V5.4 — panier intégré à l'identité Le P'tit Breizh
   ========================================================= */
.header-cart{
  position:relative;
  display:inline-flex;
  align-items:center;
  gap:10px;
  min-height:50px;
  padding:7px 10px 7px 9px;
  border:2px solid var(--pb-navy);
  border-radius:16px;
  background:#fffaf0;
  color:var(--pb-navy);
  text-decoration:none;
  box-shadow:0 5px 0 rgba(9,38,75,.08);
  transition:transform .22s ease, box-shadow .22s ease, background-color .22s ease, color .22s ease;
}
.header-cart:before{
  content:"";
  position:absolute;
  left:10px;
  right:10px;
  bottom:-5px;
  height:4px;
  border-radius:999px;
  background:var(--pb-yellow);
  transform:scaleX(.35);
  transform-origin:center;
  transition:transform .25s ease;
}
.header-cart__icon{
  width:37px;
  height:37px;
  display:grid;
  place-items:center;
  border-radius:11px;
  background:var(--pb-yellow);
  flex:0 0 37px;
}
.header-cart__icon svg{
  width:25px;
  height:25px;
  fill:none;
  stroke:var(--pb-navy);
  stroke-width:4;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.header-cart__label{
  font-size:13px;
  font-weight:900;
  white-space:nowrap;
}
.header-cart__count{
  min-width:25px;
  height:25px;
  padding:0 6px;
  display:grid;
  place-items:center;
  border-radius:999px;
  background:var(--pb-navy);
  color:#fff;
  font-size:12px;
  font-weight:900;
}
.header-cart:hover{
  transform:translateY(-3px);
  background:#fff;
  color:var(--pb-navy);
  box-shadow:0 10px 0 rgba(9,38,75,.10), 0 16px 30px rgba(9,38,75,.12);
}
.header-cart:hover:before{transform:scaleX(1)}
.header-cart:hover .header-cart__icon{
  transform:rotate(-4deg) scale(1.06);
}
.header-cart__icon{transition:transform .22s ease}

@media(max-width:1100px){
  .header-cart__label{display:none}
  .header-cart{padding:7px 9px}
}
@media(max-width:600px){
  .header-cart{
    min-height:46px;
    border-radius:14px;
    padding:6px 7px;
    gap:7px;
  }
  .header-cart__icon{width:34px;height:34px;flex-basis:34px}
  .header-cart__icon svg{width:23px;height:23px}
  .header-cart__count{min-width:22px;height:22px;font-size:11px}
}

/* Header proportions — more presence without heaviness */
.header{
  min-height:86px;
}
.header .brand{
  transform-origin:left center;
}
@media(min-width:901px){
  .header .brand{width:350px;height:76px}
}

/* V5.5 — panier : caddie uniquement, moderne et intégré */
.header-cart--icon{
  position:relative;
  width:48px;
  height:48px;
  min-height:48px;
  padding:0;
  display:grid;
  place-items:center;
  border:0;
  border-radius:14px;
  background:transparent;
  color:var(--pb-navy);
  box-shadow:none;
}
.header-cart--icon:before{display:none}
.header-cart--icon .header-cart__icon{
  width:42px;
  height:42px;
  display:grid;
  place-items:center;
  border-radius:13px;
  background:var(--pb-yellow);
  transition:transform .22s ease, box-shadow .22s ease, background-color .22s ease;
}
.header-cart--icon .header-cart__icon svg{
  width:27px;
  height:27px;
  fill:none;
  stroke:var(--pb-navy);
  stroke-width:4;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.header-cart--icon .header-cart__count{
  position:absolute;
  top:-3px;
  right:-4px;
  min-width:21px;
  height:21px;
  padding:0 5px;
  display:grid;
  place-items:center;
  border-radius:50%;
  background:var(--pb-navy);
  color:#fff;
  border:2px solid #fffaf0;
  font-size:10px;
  font-weight:900;
  line-height:1;
}
.header-cart--icon:hover{
  background:transparent;
  color:var(--pb-navy);
  transform:none;
  box-shadow:none;
}
.header-cart--icon:hover .header-cart__icon{
  transform:translateY(-3px) rotate(-5deg) scale(1.06);
  box-shadow:0 8px 18px rgba(9,38,75,.18);
  background:#ffc629;
}
.header-cart--icon:hover .header-cart__count{
  transform:scale(1.08);
}
.header-cart--icon .header-cart__label{display:none}
.header-cart--icon .header-cart__count,
.header-cart--icon .header-cart__icon,
.header-cart--icon:hover .header-cart__count{
  transition:transform .2s ease;
}
@media(max-width:600px){
  .header-cart--icon{width:44px;height:44px;min-height:44px}
  .header-cart--icon .header-cart__icon{width:39px;height:39px}
  .header-cart--icon .header-cart__icon svg{width:25px;height:25px}
}

/* V5.6 — Hero carousel using the six P'tit Breizh situations */
.hero-carousel{
  position:relative;
  overflow:hidden;
  isolation:isolate;
}
.hero-carousel__slides{
  position:absolute;
  inset:0;
}
.hero-carousel__slide{
  position:absolute;
  inset:0;
  margin:0;
  opacity:0;
  transform:scale(1.025);
  transition:opacity .7s ease, transform 5.2s ease;
  pointer-events:none;
}
.hero-carousel__slide.is-active{
  opacity:1;
  transform:scale(1);
  pointer-events:auto;
}
.hero-carousel__slide img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}
.hero-carousel__slide figcaption{
  position:absolute;
  left:20px;
  top:20px;
  padding:10px 16px;
  border-radius:999px;
  background:rgba(255,255,255,.94);
  color:var(--pb-navy);
  font-size:14px;
  font-weight:900;
  box-shadow:0 8px 20px rgba(9,38,75,.14);
}
.hero-carousel__arrow{
  position:absolute;
  z-index:5;
  top:50%;
  width:42px;
  height:42px;
  border:0;
  border-radius:50%;
  display:grid;
  place-items:center;
  transform:translateY(-50%);
  background:rgba(255,255,255,.9);
  color:var(--pb-navy);
  font-size:30px;
  line-height:1;
  cursor:pointer;
  box-shadow:0 8px 20px rgba(9,38,75,.15);
  transition:transform .2s ease, background-color .2s ease;
}
.hero-carousel__arrow:hover{
  background:var(--pb-yellow);
}
.hero-carousel__arrow--prev{left:16px}
.hero-carousel__arrow--next{right:16px}
.hero-carousel__dots{
  position:absolute;
  z-index:5;
  left:50%;
  bottom:16px;
  transform:translateX(-50%);
  display:flex;
  gap:7px;
  padding:8px 10px;
  border-radius:999px;
  background:rgba(255,255,255,.88);
  box-shadow:0 8px 20px rgba(9,38,75,.12);
}
.hero-carousel__dots button{
  width:8px;
  height:8px;
  padding:0;
  border:0;
  border-radius:50%;
  background:#aab7c5;
  cursor:pointer;
  transition:transform .2s ease, background-color .2s ease;
}
.hero-carousel__dots button.is-active{
  background:var(--pb-yellow);
  transform:scale(1.45);
}
@media(max-width:600px){
  .hero-carousel__slide figcaption{
    left:12px;top:12px;font-size:12px;padding:8px 12px;
  }
  .hero-carousel__arrow{
    width:36px;height:36px;font-size:25px;
  }
  .hero-carousel__arrow--prev{left:10px}
  .hero-carousel__arrow--next{right:10px}
}
@media(prefers-reduced-motion:reduce){
  .hero-carousel__slide{transition:opacity .2s ease}
}

/* V5.9 — Hero épuré : suppression des badges flottants fixes */
.hero-v5__floating,
.hero-v5__badge{
  display:none !important;
}

/* V6.0 — L'univers du P'tit Breizh : 6 catégories visuelles */
.universe-section{
  padding:88px 5vw 72px;
  background:#fffaf0;
  position:relative;
}
.universe-heading{
  max-width:900px;
  margin:0 auto 42px;
  text-align:center;
}
.universe-kicker{
  display:inline-block;
  margin-bottom:10px;
  color:var(--pb-navy);
  font-weight:900;
  letter-spacing:.08em;
  text-transform:uppercase;
}
.universe-heading h2{
  margin:0 auto 12px;
  color:var(--pb-navy);
  font-size:clamp(30px,4vw,50px);
  line-height:1.05;
}
.universe-heading p{
  max-width:700px;
  margin:0 auto;
  color:#536b86;
  font-size:17px;
}
.universe-grid{
  max-width:1250px;
  margin:0 auto;
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:22px;
}
.universe-card{
  display:block;
  overflow:hidden;
  border:1px solid rgba(9,38,75,.08);
  border-radius:24px;
  background:#fff;
  color:var(--pb-navy);
  text-decoration:none;
  box-shadow:0 10px 28px rgba(9,38,75,.07);
  transition:transform .25s ease, box-shadow .25s ease, border-color .25s ease;
}
.universe-card:hover{
  transform:translateY(-7px);
  border-color:rgba(9,38,75,.16);
  box-shadow:0 18px 38px rgba(9,38,75,.14);
}
.universe-card__image{
  aspect-ratio:1.5 / 1;
  overflow:hidden;
  background:#e9f3f8;
}
.universe-card__image img{
  width:100%;
  height:100%;
  display:block;
  object-fit:cover;
  transition:transform .55s cubic-bezier(.2,.75,.25,1);
}
.universe-card:hover .universe-card__image img{
  transform:scale(1.055);
}
.universe-card__body{
  padding:20px 20px 19px;
  position:relative;
}
.universe-card__body h3{
  margin:0 0 7px;
  font-size:21px;
}
.universe-card__body p{
  margin:0;
  max-width:78%;
  color:#5a6f87;
  line-height:1.45;
  font-size:14px;
}
.universe-card__body span{
  position:absolute;
  right:18px;
  bottom:18px;
  padding:10px 14px;
  border-radius:999px;
  background:#fff;
  box-shadow:0 5px 16px rgba(9,38,75,.12);
  font-size:13px;
  font-weight:900;
  transition:background-color .2s ease, color .2s ease, transform .2s ease;
}
.universe-card__body span b{
  margin-left:4px;
}
.universe-card:hover .universe-card__body span{
  background:var(--pb-yellow);
  color:var(--pb-navy);
  transform:translateX(3px);
}
.universe-all{
  display:flex;
  width:max-content;
  margin:38px auto 0;
  align-items:center;
  gap:8px;
}
@media(max-width:900px){
  .universe-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:600px){
  .universe-section{padding:64px 18px 54px}
  .universe-grid{grid-template-columns:1fr;gap:18px}
  .universe-card__body p{max-width:68%}
}
@media(prefers-reduced-motion:reduce){
  .universe-card,.universe-card__image img,.universe-card__body span{transition:none}
}

/* V6.1 — Nouveauté : peluche vedette */
.new-product-section{
  padding:76px 5vw 82px;
  background:#fdf8ed;
}
.new-product{
  max-width:1250px;
  margin:0 auto;
  display:grid;
  grid-template-columns:.9fr 1.35fr;
  grid-template-rows:auto auto;
  overflow:hidden;
  border:1px solid rgba(9,38,75,.08);
  border-radius:30px;
  background:#fffaf0;
  box-shadow:0 18px 45px rgba(9,38,75,.09);
}
.new-product__content{
  padding:72px 42px 50px 58px;
  align-self:center;
}
.new-product__kicker{
  display:inline-block;
  color:#e7a600;
  font-size:15px;
  font-weight:900;
  letter-spacing:.12em;
  margin-bottom:22px;
}
.new-product__content h2{
  margin:0;
  color:var(--pb-navy);
  font-size:clamp(38px,4.2vw,62px);
  line-height:.98;
}
.new-product__line{
  width:68px;
  height:4px;
  margin:25px 0 25px;
  border-radius:99px;
  background:var(--pb-yellow);
}
.new-product__content p{
  max-width:440px;
  margin:0 0 30px;
  color:#506783;
  font-size:18px;
  line-height:1.55;
}
.new-product__visual{
  min-height:470px;
  overflow:hidden;
  background:#e8f0f2;
}
.new-product__visual img{
  width:100%;
  height:100%;
  min-height:470px;
  display:block;
  object-fit:cover;
  object-position:center;
  transition:transform .7s ease;
}
.new-product:hover .new-product__visual img{
  transform:scale(1.025);
}
.new-product__benefits{
  grid-column:1 / -1;
  display:grid;
  grid-template-columns:repeat(4,1fr);
  border-top:1px solid rgba(9,38,75,.08);
  background:#fffdf7;
}
.new-product__benefits > div{
  min-height:96px;
  padding:18px 22px;
  display:grid;
  grid-template-columns:38px 1fr;
  grid-template-rows:auto auto;
  column-gap:10px;
  align-content:center;
  border-right:1px solid rgba(9,38,75,.08);
}
.new-product__benefits > div:last-child{border-right:0}
.benefit-icon{
  grid-row:1 / 3;
  width:34px;
  height:34px;
  display:grid;
  place-items:center;
  border-radius:50%;
  background:#fff;
  color:var(--pb-navy);
  font-size:21px;
}
.new-product__benefits strong{
  color:var(--pb-navy);
  font-size:14px;
}
.new-product__benefits small{
  color:#64778d;
  font-size:12px;
  margin-top:3px;
}
@media(max-width:850px){
  .new-product{grid-template-columns:1fr}
  .new-product__content{padding:50px 32px 35px}
  .new-product__visual{min-height:400px}
  .new-product__visual img{min-height:400px}
  .new-product__benefits{grid-template-columns:repeat(2,1fr)}
  .new-product__benefits > div:nth-child(2){border-right:0}
  .new-product__benefits > div:nth-child(-n+2){border-bottom:1px solid rgba(9,38,75,.08)}
}
@media(max-width:520px){
  .new-product-section{padding:52px 18px 60px}
  .new-product__content{padding:40px 25px 30px}
  .new-product__visual{min-height:330px}
  .new-product__visual img{min-height:330px}
  .new-product__benefits{grid-template-columns:1fr}
  .new-product__benefits > div,
  .new-product__benefits > div:nth-child(2){border-right:0;border-bottom:1px solid rgba(9,38,75,.08)}
  .new-product__benefits > div:last-child{border-bottom:0}
}

/* V6.5 — section « Les dernières aventures » */
.adventures{
  padding:82px 5vw 88px;
  background:#fffaf0;
}
.adventures .section-heading{
  max-width:850px;
  margin:0 auto 42px;
  text-align:center;
}
.adventures .section-heading span{
  color:#d79b00;
  font-weight:900;
  letter-spacing:.09em;
  text-transform:uppercase;
}
.adventures .section-heading h2{
  color:var(--pb-navy);
  font-size:clamp(32px,4vw,50px);
}
.adventures .cards,
.adventures .adventures-grid{
  max-width:1250px;
  margin:0 auto;
}

/* V6.6 — Aventures : cartes issues du visuel validé */
.adventures{
  padding:82px 5vw 90px;
  background:#fffaf0;
}
.adventures .section-heading{
  max-width:850px;
  margin:0 auto 42px;
  text-align:center;
}
.adventures .section-heading > span{
  display:block;
  margin-bottom:10px;
  color:#d49b00;
  font-weight:900;
  letter-spacing:.09em;
  text-transform:uppercase;
}
.adventures .section-heading h2{
  margin:0 0 12px;
  color:var(--pb-navy);
  font-size:clamp(34px,4vw,50px);
}
.adventures .section-heading p{
  margin:0;
  color:#536b86;
  font-size:18px;
}
.adventures-grid{
  max-width:1250px;
  margin:0 auto;
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:22px;
}
.adventure-card{
  overflow:hidden;
  border:1px solid rgba(9,38,75,.08);
  border-radius:20px;
  background:#fff;
  box-shadow:0 12px 30px rgba(9,38,75,.08);
  transition:transform .25s ease, box-shadow .25s ease;
}
.adventure-card:hover{
  transform:translateY(-6px);
  box-shadow:0 20px 42px rgba(9,38,75,.13);
}
.adventure-card__image{
  aspect-ratio:1.15 / 1;
  overflow:hidden;
}
.adventure-card__image img{
  width:100%;
  height:100%;
  display:block;
  object-fit:cover;
  transition:transform .55s ease;
}
.adventure-card:hover .adventure-card__image img{transform:scale(1.045)}
.adventure-card__body{padding:25px 26px 27px}
.adventure-card__tag{
  display:inline-block;
  margin-bottom:18px;
  padding:6px 12px;
  border-radius:999px;
  background:var(--pb-yellow);
  color:var(--pb-navy);
  font-size:11px;
  line-height:1;
  font-weight:900;
}
.adventure-card__body h3{
  margin:0 0 13px;
  color:var(--pb-navy);
  font-size:22px;
  line-height:1.18;
}
.adventure-card__body p{
  margin:0 0 30px;
  color:#526a84;
  font-size:15px;
  line-height:1.5;
}
.adventure-card__body a{
  color:var(--pb-navy);
  font-size:14px;
  font-weight:900;
  text-decoration:none;
}
.adventure-card__body a b{margin-left:7px;font-size:17px}
.adventures-all{
  display:flex;
  width:max-content;
  margin:28px auto 0;
  align-items:center;
  gap:8px;
}
@media(max-width:900px){
  .adventures-grid{grid-template-columns:1fr}
  .adventure-card__image{aspect-ratio:1.7 / 1}
}
@media(prefers-reduced-motion:reduce){
  .adventure-card,.adventure-card__image img{transition:none}
}

/* V6.7 — correction du cadrage des cartes aventures */
.adventure-card__image{
  width:100%;
  height:390px;
  aspect-ratio:auto;
  overflow:hidden;
}
.adventure-card__image img{
  width:100%;
  height:100%;
  display:block;
  object-fit:cover;
  object-position:center;
}
@media(max-width:900px){
  .adventure-card__image{
    height:360px;
    aspect-ratio:auto;
  }
}
@media(max-width:600px){
  .adventure-card__image{
    height:300px;
  }
}

/* V6.8 — vrais effets hover sur les boutons */
.btn,
.universe-card__body span,
.adventures-all,
.adventure-card__body a{
  transition:
    transform .22s ease,
    background-color .22s ease,
    color .22s ease,
    box-shadow .22s ease,
    border-color .22s ease;
}

.btn:hover{
  transform:translateY(-3px);
  box-shadow:0 9px 20px rgba(9,38,75,.18);
}

.btn--yellow:hover{
  background:#f0ae00;
  color:var(--pb-navy);
}

.btn--navy:hover{
  background:#0d2f58;
  color:#fff;
  box-shadow:0 10px 24px rgba(9,38,75,.24);
}

.adventures-all:hover{
  transform:translateY(-3px);
}

.adventure-card__body a:hover{
  color:#d79b00;
  transform:translateX(4px);
}

.adventure-card__body a:hover b{
  display:inline-block;
  transform:translateX(3px);
}

.universe-card__body span:hover{
  transform:translateX(4px);
}

@media(prefers-reduced-motion:reduce){
  .btn,
  .universe-card__body span,
  .adventures-all,
  .adventure-card__body a{
    transition:none;
  }
}

/* V6.9 — vrai logo Le P'tit Breizh dans le footer */
.footer-brand{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:14px;
}
.footer-logo-wrap{
  width:min(285px,100%);
}
.footer-logo-wrap img{
  display:block;
  width:100%;
  height:auto;
  max-height:105px;
  object-fit:contain;
  object-position:left center;
}
.footer-brand p{
  margin:0;
  max-width:300px;
  font-size:13px;
  line-height:1.5;
  color:#d8e0eb;
}
@media(max-width:600px){
  .footer-logo-wrap{width:240px}
}

/* V7.0 — menu burger mobile */
.mobile-menu-toggle{
  display:none;
  width:44px;
  height:44px;
  padding:9px;
  border:1px solid rgba(9,38,75,.12);
  border-radius:12px;
  background:#fffaf0;
  cursor:pointer;
  align-items:center;
  justify-content:center;
  flex-direction:column;
  gap:5px;
  transition:background-color .2s ease, transform .2s ease, box-shadow .2s ease;
}
.mobile-menu-toggle span{
  display:block;
  width:22px;
  height:2px;
  border-radius:4px;
  background:var(--pb-navy, #09264b);
  transition:transform .22s ease, opacity .22s ease;
}
.mobile-menu-toggle:hover{
  background:#fff;
  transform:translateY(-2px);
  box-shadow:0 6px 15px rgba(9,38,75,.12);
}
.mobile-menu-open .mobile-menu-toggle span:nth-child(1){
  transform:translateY(7px) rotate(45deg);
}
.mobile-menu-open .mobile-menu-toggle span:nth-child(2){opacity:0}
.mobile-menu-open .mobile-menu-toggle span:nth-child(3){
  transform:translateY(-7px) rotate(-45deg);
}

@media(max-width:900px){
  .header{
    position:relative;
  }
  .mobile-menu-toggle{
    display:flex;
    margin-left:auto;
    margin-right:10px;
    flex-shrink:0;
  }
  .header .main-navigation{
    position:absolute;
    top:calc(100% + 1px);
    left:0;
    right:0;
    z-index:1000;
    display:flex;
    flex-direction:column;
    align-items:stretch;
    gap:0;
    padding:10px 18px 16px;
    background:#fffaf0;
    border-top:1px solid rgba(9,38,75,.08);
    box-shadow:0 14px 28px rgba(9,38,75,.12);
    opacity:0;
    visibility:hidden;
    transform:translateY(-8px);
    pointer-events:none;
    transition:opacity .2s ease, transform .2s ease, visibility .2s ease;
  }
  .mobile-menu-open .header .main-navigation{
    opacity:1;
    visibility:visible;
    transform:translateY(0);
    pointer-events:auto;
  }
  .header .main-navigation a{
    padding:13px 8px;
    border-bottom:1px solid rgba(9,38,75,.07);
    text-decoration:none;
  }
  .header .main-navigation a:last-child{border-bottom:0}
  .header-icons{
    margin-left:0;
  }
}
@media(max-width:600px){
  .header{
    padding-left:18px;
    padding-right:18px;
  }
  .header .brand img{
    max-width:190px;
  }
  .header-icons > span:first-child,
  .header-icons > span:nth-child(2){
    display:none;
  }
}
@media(prefers-reduced-motion:reduce){
  .mobile-menu-toggle,
  .mobile-menu-toggle span,
  .header .main-navigation{
    transition:none;
  }
}

/* V7.3 — rubrique éditoriale unique : Histoires & découvertes */
.stories-section{
  padding:84px 5vw 90px;
  background:#f5f1e7;
}
.stories-heading{
  max-width:820px;
  margin:0 auto 42px;
  text-align:center;
}
.stories-heading > span{
  display:block;
  margin-bottom:10px;
  color:#d49b00;
  font-weight:900;
  letter-spacing:.09em;
  text-transform:uppercase;
}
.stories-heading h2{
  margin:0 0 12px;
  color:var(--pb-navy);
  font-size:clamp(34px,4vw,50px);
}
.stories-heading p{
  margin:0 auto;
  max-width:700px;
  color:#536b86;
  font-size:17px;
  line-height:1.5;
}
.stories-grid{
  max-width:1100px;
  margin:0 auto;
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:18px;
}
.story-card{
  display:grid;
  grid-template-columns:58px 1fr 28px;
  align-items:center;
  gap:16px;
  padding:22px;
  border:1px solid rgba(9,38,75,.08);
  border-radius:20px;
  background:#fffaf0;
  color:var(--pb-navy);
  text-decoration:none;
  box-shadow:0 9px 24px rgba(9,38,75,.06);
  transition:transform .22s ease, box-shadow .22s ease, background-color .22s ease;
}
.story-card:hover{
  transform:translateY(-4px);
  background:#fff;
  box-shadow:0 16px 30px rgba(9,38,75,.11);
}
.story-card__icon{
  width:58px;
  height:58px;
  display:grid;
  place-items:center;
  border-radius:17px;
  background:var(--pb-yellow);
  font-size:27px;
}
.story-card span{
  display:block;
  margin-bottom:5px;
  color:#d49b00;
  font-size:11px;
  font-weight:900;
  text-transform:uppercase;
  letter-spacing:.08em;
}
.story-card h3{
  margin:0 0 5px;
  font-size:18px;
}
.story-card p{
  margin:0;
  color:#5d7088;
  font-size:13px;
  line-height:1.4;
}
.story-card > b{
  font-size:22px;
  transition:transform .2s ease;
}
.story-card:hover > b{transform:translateX(4px)}
@media(max-width:700px){
  .stories-section{padding:62px 18px 68px}
  .stories-grid{grid-template-columns:1fr}
}

/* V7.4 — hover du menu principal */
@media(min-width:901px){
  .header .main-navigation a,
  .header nav a{
    position:relative;
    transition:color .2s ease, transform .2s ease;
  }
  .header .main-navigation a::after,
  .header nav a::after{
    content:"";
    position:absolute;
    left:8px;
    right:8px;
    bottom:-7px;
    height:3px;
    border-radius:999px;
    background:var(--pb-yellow, #f5c400);
    transform:scaleX(0);
    transform-origin:center;
    transition:transform .22s ease;
  }
  .header .main-navigation a:hover,
  .header nav a:hover{
    color:var(--pb-navy, #09264b);
    transform:translateY(-1px);
  }
  .header .main-navigation a:hover::after,
  .header nav a:hover::after{
    transform:scaleX(1);
  }
}

/* V8.0 — pages internes */
.inner-page{min-height:60vh;background:#fffaf0;color:var(--pb-navy,#09264b)}
.page-hero{padding:90px 6vw 65px;text-align:center;background:linear-gradient(135deg,#fffaf0 0%,#eef8fb 100%);border-bottom:1px solid rgba(9,38,75,.06)}
.page-hero .eyebrow{display:inline-block;margin-bottom:14px}
.page-hero h1{margin:0 0 16px;font-size:clamp(40px,6vw,68px);line-height:1.05}
.page-hero p{max-width:760px;margin:0 auto;color:#536b86;font-size:18px;line-height:1.6}
.page-section{max-width:1180px;margin:0 auto;padding:70px 5vw 90px}
.narrow-section{max-width:900px}
.editorial-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}
.editorial-card{overflow:hidden;border-radius:22px;background:#fff;box-shadow:0 12px 30px rgba(9,38,75,.08);border:1px solid rgba(9,38,75,.06)}
.editorial-card img{width:100%;height:230px;object-fit:cover;display:block}
.editorial-card__body{padding:24px}
.editorial-card__body>span{color:#d49b00;font-size:11px;font-weight:900;text-transform:uppercase;letter-spacing:.08em}
.editorial-card h2{font-size:22px;line-height:1.2;margin:10px 0}
.editorial-card p{color:#5d7088;line-height:1.55}
.text-link{display:inline-block;margin-top:12px;color:var(--pb-navy,#09264b);font-weight:900;text-decoration:none;transition:transform .2s,color .2s}
.text-link:hover{color:#d49b00;transform:translateX(4px)}
.empty-editorial{max-width:700px;margin:auto;text-align:center;padding:65px 30px;background:#fff;border-radius:24px;box-shadow:0 12px 30px rgba(9,38,75,.07)}
.empty-editorial__icon{font-size:54px;margin-bottom:12px}
.empty-editorial h2{margin:0 0 10px}
.empty-editorial p,.muted{color:#667990;line-height:1.6}
.contact-layout{display:grid;grid-template-columns:.8fr 1.2fr;gap:32px;align-items:start}
.info-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px}
.info-card{background:#fff;border:1px solid rgba(9,38,75,.07);border-radius:22px;padding:30px;box-shadow:0 10px 25px rgba(9,38,75,.06)}
.info-card__icon{display:grid;place-items:center;width:52px;height:52px;border-radius:16px;background:#ffc42b;font-size:25px;margin-bottom:18px}
.info-card h2{margin:0 0 10px}
.info-card p{color:#5d7088;line-height:1.6}
.site-form{display:grid;gap:18px;background:#fff;border-radius:22px;padding:30px;box-shadow:0 10px 25px rgba(9,38,75,.06);border:1px solid rgba(9,38,75,.07)}
.site-form label{font-weight:800;display:grid;gap:8px}
.site-form input,.site-form textarea{width:100%;box-sizing:border-box;border:1px solid #d7dfe8;border-radius:12px;padding:13px 14px;font:inherit;color:var(--pb-navy,#09264b);background:#fff}
.site-form input:focus,.site-form textarea:focus{outline:2px solid rgba(255,196,43,.55);border-color:#ffc42b}
.form-success,.form-error{padding:13px 15px;border-radius:12px;font-weight:700}
.form-success{background:#e8f7ed;color:#1f6a3b}.form-error{background:#fff0ee;color:#9a3428}
.faq-list{display:grid;gap:14px}
.faq-list details{background:#fff;border:1px solid rgba(9,38,75,.08);border-radius:16px;padding:0 22px;box-shadow:0 8px 22px rgba(9,38,75,.05)}
.faq-list summary{cursor:pointer;list-style:none;padding:22px 0;font-weight:900;font-size:18px}
.faq-list summary::-webkit-details-marker{display:none}
.faq-list details>div{padding:0 0 22px;color:#5d7088;line-height:1.6}
.legal-content{max-width:900px}
.legal-content h2{margin:34px 0 10px;font-size:25px}
.legal-content h2:first-child{margin-top:0}
.legal-content p{color:#536b86;line-height:1.7}
.legal-warning{margin-top:38px;padding:20px;border-left:4px solid #ffc42b;background:#fff3cf;border-radius:12px;color:#6d5818;line-height:1.55}
@media(max-width:850px){
 .editorial-grid{grid-template-columns:1fr 1fr}
 .contact-layout{grid-template-columns:1fr}
}
@media(max-width:600px){
 .page-hero{padding:62px 20px 48px}
 .page-section{padding:48px 18px 65px}
 .editorial-grid,.info-grid{grid-template-columns:1fr}
 .editorial-card img{height:220px}
 .site-form,.info-card{padding:22px}
}

/* V9.0 — vraie page Boutique + panier */
.shop-content{max-width:1220px;margin:0 auto;padding:52px 5vw 90px}
.shop-toolbar{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:32px}
.shop-categories{display:flex;flex-wrap:wrap;gap:9px}
.shop-categories a{display:inline-flex;padding:10px 15px;border-radius:999px;background:#fff;border:1px solid rgba(9,38,75,.1);color:var(--pb-navy,#09264b);font-weight:800;text-decoration:none;transition:.2s}
.shop-categories a:hover,.shop-categories a.is-active{background:#ffc42b;border-color:#ffc42b;transform:translateY(-1px)}
.shop-count{color:#667990;font-weight:700;white-space:nowrap}
.product-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}
.shop-product-card{overflow:hidden;background:#fff;border-radius:22px;border:1px solid rgba(9,38,75,.07);box-shadow:0 10px 26px rgba(9,38,75,.07);transition:transform .22s,box-shadow .22s}
.shop-product-card:hover{transform:translateY(-5px);box-shadow:0 18px 34px rgba(9,38,75,.12)}
.shop-product-card__image{position:relative;display:block;aspect-ratio:1/1;background:#f4efe5;overflow:hidden}
.shop-product-card__image img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .3s}
.shop-product-card:hover .shop-product-card__image img{transform:scale(1.025)}
.product-badge{position:absolute;left:16px;top:16px;padding:7px 10px;border-radius:999px;background:#ffc42b;color:#09264b;font-size:11px;font-weight:900}
.shop-product-card__body{padding:22px}
.shop-product-card__category{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:#d49b00;font-weight:900}
.shop-product-card h2{margin:8px 0 7px;font-size:21px;line-height:1.2}
.shop-product-card h2 a{color:var(--pb-navy,#09264b);text-decoration:none}
.shop-product-card p{margin:0 0 18px;color:#667990;line-height:1.5;min-height:45px}
.shop-product-card__bottom{display:flex;justify-content:space-between;align-items:center;gap:12px}
.shop-product-card__bottom>strong{font-size:22px}
.btn--small{padding:11px 14px;font-size:13px}
.soldout-label{font-weight:800;color:#9a3428}
.cart-page{max-width:1050px;margin:0 auto;padding:80px 5vw 100px;min-height:60vh}
.cart-page .section-heading{text-align:center;margin-bottom:40px}
.cart-list{display:grid;gap:12px;margin-bottom:25px}
.cart-row{display:grid;grid-template-columns:48px 1fr auto;align-items:center;gap:15px;padding:18px 20px;background:#fff;border-radius:16px;border:1px solid rgba(9,38,75,.08)}
.cart-row>span{font-size:27px}
.cart-row small{display:block;color:#667990;margin-top:4px}
.cart-qty{display:flex;align-items:center;gap:20px}
.cart-qty input{width:70px;padding:10px;border:1px solid #d7dfe8;border-radius:10px}
.cart-summary{margin:25px 0 28px;padding:24px;background:#fff;border-radius:18px;border:1px solid rgba(9,38,75,.08)}
.cart-summary>div{display:flex;justify-content:space-between;padding:7px 0;color:#536b86}
.cart-summary .cart-total{margin-top:10px;padding-top:16px;border-top:1px solid #e4e8ed;color:var(--pb-navy,#09264b);font-size:21px}
@media(max-width:900px){.product-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){.shop-toolbar{display:block}.shop-count{display:block;margin-top:12px}.product-grid{grid-template-columns:1fr}.shop-product-card__bottom{align-items:flex-end}.cart-row{grid-template-columns:40px 1fr}.cart-qty{grid-column:2;justify-content:space-between}.cart-page{padding:55px 18px 70px}}

/* V11 — page Le P'tit Breizh : récit épuré */
.petit-breizh-page{background:#fffaf0;color:var(--pb-navy,#09264b)}
.pb-story-hero{display:grid;grid-template-columns:.78fr 1.22fr;min-height:540px;background:linear-gradient(120deg,#fffaf0 0%,#f7f4ec 45%,#e8f6fa 100%);overflow:hidden}
.pb-story-hero__copy{display:flex;flex-direction:column;justify-content:center;padding:72px 7vw 72px 8vw;position:relative;z-index:1}
.pb-story-hero__copy h1{margin:10px 0 20px;font-size:clamp(48px,6vw,82px);line-height:.96;letter-spacing:-.025em}
.pb-story-hero__copy h1 span{color:#ffc42b;font-size:.65em}
.pb-story-hero__copy p{margin:0;max-width:470px;color:#536b86;font-size:20px;line-height:1.5}
.pb-wave{margin-top:20px;font-size:34px;color:#ffc42b}
.pb-story-hero__image{display:flex;align-items:center;padding:35px 6vw 35px 0}
.pb-story-hero__image img{width:100%;height:455px;object-fit:cover;object-position:center top;border-radius:28px;box-shadow:0 22px 55px rgba(9,38,75,.15)}
.pb-story-section,.pb-personality{max-width:1080px;margin:0 auto;padding:78px 5vw;display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:center}
.pb-story-section--intro{min-height:320px}
.pb-story-copy h2{font-size:clamp(30px,3.5vw,43px);line-height:1.08;margin:8px 0 20px}
.pb-story-copy p{color:#536b86;font-size:17px;line-height:1.7;margin:0 0 12px}
.pb-step{display:inline-grid;place-items:center;width:38px;height:38px;border-radius:50%;background:#ffc42b;color:#09264b;font-weight:900}
.pb-story-image{overflow:hidden;border-radius:24px;box-shadow:0 15px 38px rgba(9,38,75,.1)}
.pb-story-image img{display:block;width:100%;height:390px;object-fit:cover;object-position:center}
.pb-story-image--sketch{background:#eee6d7;padding:10px}
.pb-story-image--sketch img{height:365px}
.pb-story-image--wide{height:365px}
.pb-story-image--wide img{height:100%}
.pb-doodle{font-size:55px;line-height:.7;text-align:center;color:#ffc42b;opacity:.85}
.pb-personality{max-width:none;padding-left:max(5vw,calc((100% - 1080px)/2));padding-right:max(5vw,calc((100% - 1080px)/2));background:#f1f8fa}
.pb-personality .pb-story-copy{padding:15px 0}
.pb-next{padding:34px 35px;background:#fff5d9;border-radius:24px;box-shadow:0 10px 25px rgba(9,38,75,.06)}
.pb-next h3{margin:0 0 12px;font-size:28px}
.pb-next p{color:#536b86;line-height:1.6;margin:0 0 18px}
.pb-next strong{line-height:1.55}
.pb-heart{display:block;margin-top:15px;color:#ffc42b;font-size:30px}
.pb-story-section--final{align-items:stretch}
.pb-story-end{padding:30px 20px 45px;background:#09264b;color:#fff;text-align:center}
.pb-story-end p{margin:0;font-family:Georgia,serif;font-style:italic;font-size:30px}
.pb-story-end span{color:#ffc42b}
@media(max-width:850px){
 .pb-story-hero{grid-template-columns:1fr}
 .pb-story-hero__copy{padding:58px 24px 30px}
 .pb-story-hero__image{padding:18px 18px 45px}
 .pb-story-hero__image img{height:330px}
 .pb-story-section,.pb-personality{grid-template-columns:1fr;gap:30px;padding:58px 20px}
 .pb-story-section--image-right .pb-story-image{order:2}
 .pb-story-section--image-right .pb-story-copy{order:1}
 .pb-story-image,.pb-story-image--wide{height:auto}
 .pb-story-image img,.pb-story-image--sketch img{height:320px}
 .pb-next{padding:26px}
}

.article-editor{min-height:340px;padding:18px;border:1px solid #d7dfe8;border-radius:12px;background:#fff;line-height:1.7;outline:none}.editor-toolbar{display:flex;flex-wrap:wrap;gap:7px;margin:8px 0}.editor-toolbar button{border:1px solid #d7dfe8;background:#fff;border-radius:9px;padding:8px 11px;cursor:pointer;font-weight:800}.editor-toolbar button:hover{background:#ffc42b;border-color:#ffc42b}.article-editor img,.article-content img{max-width:100%;height:auto;border-radius:18px;margin:28px auto;display:block}.article-admin-main-image{display:block;max-width:260px;max-height:180px;object-fit:cover;border-radius:12px;margin:10px 0}.admin-help{color:#667990;font-size:13px;line-height:1.5}

/* V16 — zone de rédaction clairement visible */
.article-editor{
  display:block;
  width:100%;
  min-height:420px;
  box-sizing:border-box;
  padding:22px;
  margin:8px 0 12px;
  border:1px solid #cbd5e1;
  border-radius:12px;
  background:#ffffff;
  color:#102a43;
  font-size:16px;
  line-height:1.7;
  outline:none;
  cursor:text;
  box-shadow:inset 0 1px 3px rgba(15,35,55,.06);
}
.article-editor:empty:before{
  content:attr(data-placeholder);
  color:#8a98a8;
  pointer-events:none;
}
.article-editor:focus{
  border-color:#ffc42b;
  box-shadow:0 0 0 3px rgba(255,196,43,.18);
}
.editor-toolbar{
  display:flex;
  flex-wrap:wrap;
  gap:7px;
  margin:8px 0 0;
}
.editor-toolbar button{
  appearance:none;
  border:1px solid #cbd5e1;
  background:#fff;
  color:#092a52;
  border-radius:8px;
  padding:8px 12px;
  cursor:pointer;
  font-weight:700;
}
.editor-toolbar button:hover{
  background:#ffc42b;
  border-color:#ffc42b;
}


/* =========================================================
   ARTICLE V2 — référence graphique validée
   ========================================================= */
.article-page-v2{
  background:var(--cream);
  padding:28px 4.2% 0;
}
.article-breadcrumb{
  max-width:1320px;
  margin:0 auto 28px;
  display:flex;
  gap:10px;
  align-items:center;
  flex-wrap:wrap;
  color:#718096;
  font-size:12px;
}
.article-breadcrumb a{color:#55749a}
.article-layout{
  max-width:1320px;
  margin:0 auto;
  display:grid;
  grid-template-columns:minmax(0,1fr) 275px;
  gap:42px;
  align-items:start;
}
.article-main{min-width:0}
.article-header-v2{padding:5px 0 20px}
.article-kicker{
  color:var(--navy);
  font-size:12px;
  font-weight:900;
  letter-spacing:.1em;
  text-transform:uppercase;
}
.article-header-v2 h1{
  color:var(--navy);
  font-size:58px;
  line-height:1.02;
  letter-spacing:-1.7px;
  max-width:850px;
  margin:12px 0 20px;
}
.article-heart{color:var(--yellow);font-size:.62em;vertical-align:middle}
.article-meta{
  display:flex;
  gap:24px;
  flex-wrap:wrap;
  color:#52657d;
  font-size:12px;
  font-weight:700;
}
.article-hero-v2{
  margin:0;
  width:100%;
  height:470px;
  overflow:hidden;
  border-radius:20px;
  background:#e8eef1;
  box-shadow:0 16px 38px rgba(9,38,75,.10);
}
.article-hero-v2 img{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
}
.article-lead{
  margin:18px 0 0;
  padding:0 2px;
  color:#1d3553;
  font-size:15px;
  font-weight:700;
  line-height:1.65;
}
.article-divider{
  display:flex;
  align-items:center;
  gap:12px;
  margin:22px 0 5px;
  color:var(--yellow);
}
.article-divider:before,.article-divider:after{
  content:"";
  height:1px;
  background:#d8dee5;
  flex:1;
}
.article-divider span{font-size:14px}
.article-content-v2{
  color:#253b55;
  font-size:15px;
  line-height:1.72;
}
.article-content-v2 h2{
  color:var(--navy);
  font-size:28px;
  line-height:1.18;
  margin:36px 0 12px;
  max-width:420px;
}
.article-content-v2 h2:before{
  content:"";
  color:var(--yellow);
  font-size:34px;
  font-weight:900;
  margin-right:8px;
}
.article-content-v2 p{margin:0 0 17px}
.article-content-v2 strong{color:var(--navy)}
.article-content-v2 em{color:#52657d}
.article-content-v2 blockquote{
  margin:34px auto;
  padding:20px 28px;
  max-width:680px;
  border-left:4px solid var(--yellow);
  background:#fff9df;
  border-radius:0 15px 15px 0;
  color:var(--navy);
  font-family:Georgia,serif;
  font-size:22px;
  line-height:1.4;
}
.article-content-v2 img{
  display:block;
  width:min(100%,650px);
  max-height:420px;
  object-fit:cover;
  border-radius:18px;
  box-shadow:0 12px 30px rgba(9,38,75,.12);
  margin:28px 0 32px auto;
}
.article-content-v2 img:nth-of-type(even){margin-left:0;margin-right:auto}
.article-content-v2 h2 + p{max-width:520px}
.article-question{
  margin:20px 0 42px;
  padding:10px 0 0;
  text-align:center;
  color:var(--navy);
  font-family:Georgia,serif;
  font-style:italic;
  font-size:26px;
}
.article-question b{display:block;color:var(--yellow);font-family:Arial;margin-top:10px;font-size:16px}
.article-sidebar{position:sticky;top:125px}
.sidebar-about{
  background:#fff5d7;
  border-radius:14px;
  padding:20px 18px 22px;
  text-align:center;
}
.sidebar-kicker{display:block;color:var(--navy);font-size:14px;font-weight:900;margin-bottom:10px}
.sidebar-mascot{
  height:115px;
  width:115px;
  margin:0 auto 12px;
  display:grid;
  place-items:center;
  border-radius:50%;
  background:#fff;
  font-size:70px;
}
.sidebar-about p{font-size:12px;line-height:1.55;color:#4b6078}
.sidebar-button{
  display:inline-flex;
  justify-content:center;
  width:100%;
  padding:11px 14px;
  border-radius:7px;
  background:var(--navy);
  color:#fff;
  font-size:12px;
  font-weight:900;
}
.sidebar-section{
  border-top:1px solid #d8dee5;
  margin-top:24px;
  padding-top:20px;
}
.sidebar-section h2{
  color:var(--navy);
  font-size:18px;
  margin:0 0 15px;
}
.recent-list{display:grid;gap:13px}
.recent-item{
  display:grid;
  grid-template-columns:56px 1fr;
  gap:10px;
  align-items:center;
  color:var(--navy);
}
.recent-item strong{font-size:11px;line-height:1.35}
.recent-thumb{
  width:56px;height:48px;
  border-radius:8px;
  overflow:hidden;
  background:#dcecf5;
  display:grid;place-items:center;
}
.recent-thumb img{width:100%;height:100%;object-fit:cover}
.article-categories{display:grid;gap:9px;margin-bottom:18px}
.article-categories a{
  display:flex;gap:10px;align-items:center;
  color:#415a76;font-size:12px;font-weight:700;
}
.article-categories a:first-letter{color:var(--yellow)}
.sidebar-button--dark{background:var(--navy-2)}
.article-newsletter{
  max-width:1180px;
  margin:0 auto 0;
  padding:22px 28px;
  border-radius:18px 18px 0 0;
  background:var(--blue);
  display:grid;
  grid-template-columns:120px 1fr minmax(280px,380px);
  gap:22px;
  align-items:center;
}
.article-newsletter__mascot{
  font-size:75px;
  text-align:center;
}
.article-newsletter h2{margin:0 0 5px;color:var(--navy);font-size:18px}
.article-newsletter p{margin:0;color:#52657d;font-size:12px}
.article-newsletter form{
  display:flex;
  background:#fff;
  border-radius:999px;
  overflow:hidden;
}
.article-newsletter input{
  min-width:0;
  flex:1;
  border:0;
  outline:0;
  padding:13px 16px;
}
.article-newsletter button{
  border:0;
  background:var(--yellow);
  color:var(--navy);
  font-weight:900;
  padding:0 17px;
  cursor:pointer;
}

@media(max-width:1000px){
  .article-page-v2{padding-left:5%;padding-right:5%}
  .article-layout{grid-template-columns:1fr}
  .article-sidebar{position:static;display:grid;grid-template-columns:1fr 1fr;gap:22px}
  .sidebar-section{margin-top:0}
  .sidebar-about{grid-row:span 2}
  .article-newsletter{grid-template-columns:80px 1fr;max-width:none}
  .article-newsletter form{grid-column:1/-1}
}
@media(max-width:700px){
  .article-page-v2{padding:20px 5% 0}
  .article-breadcrumb{margin-bottom:18px;font-size:11px}
  .article-header-v2 h1{font-size:38px;letter-spacing:-.8px}
  .article-meta{gap:10px 16px}
  .article-hero-v2{height:285px;border-radius:16px}
  .article-lead{font-size:14px}
  .article-content-v2{font-size:15px}
  .article-content-v2 h2{font-size:25px;margin-top:30px}
  .article-content-v2 img,
  .article-content-v2 img:nth-of-type(even){
    width:100%;
    max-height:290px;
    margin:22px 0 28px;
  }
  .article-content-v2 blockquote{font-size:19px;padding:17px 20px}
  .article-sidebar{display:block}
  .sidebar-about,.sidebar-section{margin-top:22px}
  .article-newsletter{
    grid-template-columns:1fr;
    text-align:center;
    padding:22px 18px;
  }
  .article-newsletter form{grid-column:auto;display:flex}
  .article-newsletter button{padding:0 12px}
}


/* =========================================================
   ARTICLE V24 — blocs éditoriaux alternés
   ========================================================= */
.article-content-v2 > p{
  max-width:820px;
}
.article-story-block{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(330px,.95fr);
  gap:44px;
  align-items:center;
  padding:34px 0;
  border-bottom:1px solid #d9dfe5;
}
.article-story-block--reverse{
  grid-template-columns:minmax(330px,.95fr) minmax(0,1fr);
}
.article-story-block--reverse .article-story-copy{order:2}
.article-story-block--reverse .article-story-image{order:1}
.article-story-copy{min-width:0}
.article-story-text{
  position:relative;
  padding-left:48px;
}
.article-story-number{
  position:absolute;
  left:0;
  top:-5px;
  color:var(--yellow);
  font-size:34px;
  line-height:1;
  font-weight:900;
}
.article-story-text h2{
  margin:0 0 15px;
  max-width:420px;
  font-size:27px;
  line-height:1.2;
}
.article-story-text h2:before{display:none}
.article-story-text p{
  max-width:510px;
  margin:0 0 13px;
}
.article-story-text ul,.article-story-text ol{
  max-width:510px;
}
.article-story-image{
  min-height:250px;
  display:flex;
  align-items:center;
}
.article-story-image img{
  display:block!important;
  width:100%!important;
  max-width:560px!important;
  height:310px!important;
  max-height:none!important;
  object-fit:cover!important;
  margin:0!important;
  border-radius:18px;
  box-shadow:0 14px 32px rgba(9,38,75,.13);
}
.article-story-tail{
  padding-top:25px;
}
@media(max-width:800px){
  .article-story-block,
  .article-story-block--reverse{
    grid-template-columns:1fr;
    gap:20px;
    padding:28px 0;
  }
  .article-story-block--reverse .article-story-copy,
  .article-story-block--reverse .article-story-image{
    order:initial;
  }
  .article-story-copy{order:1!important}
  .article-story-image{order:2!important}
  .article-story-text{padding-left:40px}
  .article-story-number{font-size:30px}
  .article-story-text h2{font-size:24px}
  .article-story-image img{
    width:100%!important;
    height:270px!important;
  }
}

/* V25 — images are moved, never duplicated */
.article-story-image img{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
  margin:0;
}

/* =========================================================
   V26 — fin d'article plus légère et mieux intégrée
   ========================================================= */
.article-question{
  margin:34px auto 58px;
  padding:0 20px;
  max-width:720px;
  text-align:center;
  color:var(--navy);
  font-family:Georgia,serif;
  font-style:italic;
  font-size:27px;
  line-height:1.35;
}
.article-question b{
  display:block;
  margin-top:12px;
  color:var(--yellow);
  font-family:Arial,sans-serif;
  font-size:14px;
}

.article-newsletter{
  position:relative;
  max-width:1120px;
  margin:0 auto 72px;
  padding:26px 34px;
  border-radius:20px;
  background:linear-gradient(135deg,#e5f2f7 0%,#d9edf5 100%);
  border:1px solid rgba(10,48,88,.06);
  box-shadow:0 12px 32px rgba(9,38,75,.07);
  display:grid;
  grid-template-columns:82px 1fr minmax(300px,390px);
  gap:22px;
  align-items:center;
}
.article-newsletter__mascot{
  width:68px;
  height:68px;
  border-radius:50%;
  background:#fff;
  display:grid;
  place-items:center;
  font-size:45px;
  box-shadow:0 5px 16px rgba(9,38,75,.08);
}
.article-newsletter h2{
  margin:0 0 5px;
  color:var(--navy);
  font-size:20px;
}
.article-newsletter p{
  margin:0;
  color:#52657d;
  font-size:12px;
  line-height:1.5;
}
.article-newsletter form{
  display:flex;
  min-height:43px;
  background:#fff;
  border:1px solid #e0e7ec;
  border-radius:999px;
  overflow:hidden;
  box-shadow:0 3px 12px rgba(9,38,75,.05);
}
.article-newsletter input{
  min-width:0;
  flex:1;
  border:0;
  outline:0;
  padding:12px 16px;
  color:var(--navy);
  background:#fff;
}
.article-newsletter button{
  border:0;
  background:var(--yellow);
  color:var(--navy);
  font-weight:900;
  font-size:12px;
  padding:0 18px;
  cursor:pointer;
  white-space:nowrap;
}

/* Give the footer a cleaner visual separation without changing its content. */
.article-page-v2 + footer,
.article-page-v2 ~ footer{
  margin-top:0;
}

@media(max-width:1000px){
  .article-newsletter{
    grid-template-columns:70px 1fr;
    margin-bottom:52px;
  }
  .article-newsletter form{
    grid-column:1/-1;
  }
}
@media(max-width:700px){
  .article-question{
    margin:28px auto 42px;
    font-size:22px;
  }
  .article-newsletter{
    grid-template-columns:1fr;
    gap:14px;
    margin-bottom:38px;
    padding:22px 18px;
    border-radius:17px;
    text-align:center;
  }
  .article-newsletter__mascot{
    margin:0 auto;
  }
  .article-newsletter form{
    grid-column:auto;
    width:100%;
  }
  .article-newsletter button{
    padding:0 13px;
  }
}

/* =========================================================
   V27 — respiration équilibrée entre article et sidebar
   ========================================================= */
.article-page-v2{
  padding-left:clamp(28px,5vw,80px);
  padding-right:clamp(28px,5vw,80px);
}
.article-layout{
  max-width:1240px;
  grid-template-columns:minmax(0,1fr) 250px;
  gap:52px;
}
.article-main{min-width:0}
.article-sidebar{
  width:100%;
  max-width:250px;
  justify-self:end;
}
.article-newsletter{
  max-width:1080px;
}
@media(max-width:1000px){
  .article-layout{
    max-width:900px;
    grid-template-columns:1fr;
  }
  .article-sidebar{
    max-width:none;
    width:auto;
    justify-self:stretch;
  }
}
@media(max-width:700px){
  .article-page-v2{
    padding-left:18px;
    padding-right:18px;
  }
}

/* =========================================================
   V28 — CTA aligné sur la colonne article
   ========================================================= */
.article-newsletter{
  width:min(938px, calc(100% - 36px));
  max-width:none;
  margin-left:max(18px, calc((100% - 1240px) / 2));
  margin-right:0;
}
@media(max-width:1000px){
  .article-newsletter{
    width:min(900px, calc(100% - 36px));
    margin-left:auto;
    margin-right:auto;
  }
}
@media(max-width:700px){
  .article-newsletter{
    width:100%;
    margin-left:0;
    margin-right:0;
  }
}

/* =========================================================
   PANIER V2 — design éditorial Le P'tit Breizh
   ========================================================= */
.cart-page--v2{
  background:var(--cream);
  min-height:calc(100vh - 100px);
  padding:70px clamp(24px,7vw,100px) 90px;
}
.cart-heading-v2{
  max-width:1180px;
  margin:0 auto 38px;
  text-align:center;
}
.cart-heading-v2>span{
  display:block;
  color:#c39300;
  text-transform:uppercase;
  letter-spacing:.1em;
  font-weight:900;
  font-size:12px;
}
.cart-heading-v2 h1{
  margin:8px 0 6px;
  color:var(--navy);
  font-size:46px;
  line-height:1;
}
.cart-heading-v2 p{margin:0;color:#64748b;font-size:14px}
.cart-layout-v2{
  max-width:1180px;
  margin:0 auto;
  display:grid;
  grid-template-columns:minmax(0,1fr) 350px;
  gap:28px;
  align-items:start;
}
.cart-main-v2,.cart-summary-v2{
  min-width:0;
}
.cart-list-head-v2{
  display:grid;
  grid-template-columns:1fr 100px 95px;
  padding:0 20px 10px;
  color:#718096;
  font-size:11px;
  text-transform:uppercase;
  letter-spacing:.06em;
}
.cart-list-head-v2 span{text-align:right}
.cart-list-v2{display:grid;gap:12px}
.cart-item-v2{
  display:grid;
  grid-template-columns:105px minmax(0,1fr) 92px 100px;
  gap:18px;
  align-items:center;
  padding:14px;
  background:#fff;
  border:1px solid #e4e8ed;
  border-radius:18px;
  box-shadow:0 8px 25px rgba(9,38,75,.05);
}
.cart-item-v2__image{
  width:105px;
  height:105px;
  border-radius:14px;
  overflow:hidden;
  background:#eef3f5;
  display:grid;
  place-items:center;
}
.cart-item-v2__image img{width:100%;height:100%;object-fit:cover}
.cart-item-v2__image span{font-size:46px}
.cart-item-v2__eyebrow{
  color:#c39300;
  font-size:10px;
  font-weight:900;
  text-transform:uppercase;
  letter-spacing:.07em;
}
.cart-item-v2__info h2{
  color:var(--navy);
  font-size:17px;
  margin:6px 0;
}
.cart-item-v2__info p{
  margin:0;
  color:#415a76;
  font-weight:800;
  font-size:14px;
}
.cart-item-v2__info small{font-weight:400;color:#718096}
.cart-item-v2__qty label{
  display:block;
  color:#718096;
  font-size:10px;
  margin-bottom:6px;
}
.cart-item-v2__qty input{
  width:76px;
  padding:10px 8px;
  border:1px solid #ccd5df;
  border-radius:10px;
  text-align:center;
  font:inherit;
  color:var(--navy);
  background:#fff;
}
.cart-item-v2__total{
  color:var(--navy);
  font-size:16px;
  text-align:right;
}
.cart-actions-v2{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:15px;
  padding:18px 4px;
}
.cart-actions-v2 a{color:#50657e;font-size:13px;font-weight:800}
.cart-actions-v2 button{
  border:0;
  background:#e8ebef;
  color:var(--navy);
  border-radius:999px;
  padding:11px 18px;
  font-weight:800;
  cursor:pointer;
}
.cart-promises-v2{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:10px;
  margin-top:20px;
  padding-top:20px;
  border-top:1px solid #dfe4e9;
}
.cart-promises-v2 div{
  display:flex;
  align-items:center;
  gap:8px;
  color:#50657e;
  font-size:11px;
}
.cart-promises-v2 span{font-size:17px}
.cart-summary-v2{
  background:#fff;
  border:1px solid #e2e7ed;
  border-radius:20px;
  padding:25px;
  box-shadow:0 15px 40px rgba(9,38,75,.09);
  position:sticky;
  top:120px;
}
.cart-summary-v2__head>span{
  color:#c39300;
  text-transform:uppercase;
  letter-spacing:.08em;
  font-weight:900;
  font-size:10px;
}
.cart-summary-v2__head h2{
  color:var(--navy);
  font-size:24px;
  margin:7px 0 20px;
}
.shipping-progress-v2{
  padding:13px;
  background:#eef6fa;
  border-radius:12px;
  margin-bottom:20px;
}
.shipping-progress-v2 p{
  margin:0 0 10px;
  color:#52657d;
  font-size:11px;
  line-height:1.4;
}
.shipping-progress-v2 strong{color:var(--navy)}
.shipping-progress-v2>div{
  height:6px;
  background:#d6e1e7;
  border-radius:99px;
  overflow:hidden;
}
.shipping-progress-v2>div span{
  display:block;
  height:100%;
  background:var(--yellow);
  border-radius:99px;
}
.summary-line-v2,.summary-total-v2{
  display:flex;
  justify-content:space-between;
  gap:15px;
  padding:9px 0;
  color:#52657d;
  font-size:14px;
}
.summary-total-v2{
  margin-top:8px;
  padding-top:16px;
  border-top:1px solid #e1e6eb;
  color:var(--navy);
  font-size:20px;
}
.cart-checkout-v2{
  width:100%;
  margin-top:20px;
  padding:15px 20px;
  font-size:15px;
}
.cart-checkout-v2 span{margin-left:auto}
.cart-secure-v2{
  margin:12px 0 0;
  text-align:center;
  color:#7a8798;
  font-size:10px;
}
.empty-cart-v2{
  max-width:650px;
  margin:50px auto 20px;
  padding:55px 25px;
  background:#fff;
  border-radius:22px;
  box-shadow:var(--shadow);
  text-align:center;
}
.empty-cart-v2__icon{font-size:55px;margin-bottom:10px}
.empty-cart-v2>span{
  color:#c39300;
  font-weight:900;
  text-transform:uppercase;
  letter-spacing:.08em;
  font-size:11px;
}
.empty-cart-v2 h2{color:var(--navy);font-size:30px;margin:10px 0}
.empty-cart-v2 p{color:#64748b}
@media(max-width:1000px){
  .cart-layout-v2{grid-template-columns:1fr}
  .cart-summary-v2{position:static}
  .cart-summary-v2{max-width:520px;width:100%;margin-left:auto;margin-right:auto}
}
@media(max-width:700px){
  .cart-page--v2{padding:45px 18px 65px}
  .cart-heading-v2 h1{font-size:38px}
  .cart-list-head-v2{display:none}
  .cart-item-v2{
    grid-template-columns:78px minmax(0,1fr);
    gap:12px;
    padding:12px;
  }
  .cart-item-v2__image{width:78px;height:78px}
  .cart-item-v2__qty{grid-column:2}
  .cart-item-v2__total{grid-column:2;text-align:left}
  .cart-actions-v2{align-items:stretch;flex-direction:column}
  .cart-actions-v2 button{width:100%}
  .cart-promises-v2{grid-template-columns:1fr}
  .cart-summary-v2{padding:20px}
}

/* V31 — fond du panier uniforme sur toute la largeur */
body:has(.cart-page--v2){
  background:var(--cream);
}
.cart-page--v2{
  width:100%;
  max-width:none;
  margin:0;
  background:var(--cream);
}

/* V32 — mise à jour instantanée des quantités */
.cart-item-v2.is-updating{opacity:.62;pointer-events:none;transition:opacity .15s}
.cart-item-v2__qty input{transition:border-color .15s,box-shadow .15s}
.cart-item-v2__qty input:focus{border-color:var(--yellow);box-shadow:0 0 0 3px rgba(255,198,41,.18);outline:0}
.cart-live-status{font-size:11px;color:#718096;min-height:16px;margin-top:8px;text-align:right}

/* =========================================================
   V34 — checkout cohérent avec le panier
   ========================================================= */
body:has(.checkout-page){
  background:var(--cream);
}
.checkout-page{
  width:100%;
  max-width:none;
  margin:0;
  padding:68px clamp(24px,7vw,100px) 90px;
  background:var(--cream);
  min-height:calc(100vh - 90px);
}
.checkout-page .section-heading{
  max-width:1180px;
  margin:0 auto 38px;
  text-align:center;
}
.checkout-page .section-heading>span{
  display:block;
  color:#c39300;
  text-transform:uppercase;
  letter-spacing:.1em;
  font-size:12px;
  font-weight:900;
}
.checkout-page .section-heading h1{
  margin:8px 0 0;
  color:var(--navy);
  font-size:44px;
  line-height:1.05;
}
.checkout-grid{
  max-width:1180px;
  margin:0 auto;
  display:grid;
  grid-template-columns:minmax(0,1fr) 350px;
  gap:28px;
  align-items:start;
}
.checkout-form{display:grid;gap:18px}
.checkout-card{
  background:#fff;
  border:1px solid #e2e7ed;
  border-radius:18px;
  padding:25px 25px 24px;
  box-shadow:0 8px 25px rgba(9,38,75,.05);
}
.checkout-card h2{
  display:flex;
  align-items:center;
  gap:10px;
  color:var(--navy);
  font-size:19px;
  margin:0 0 20px;
}
.checkout-card h2:before{
  display:grid;
  place-items:center;
  width:27px;
  height:27px;
  border-radius:50%;
  background:var(--yellow);
  color:var(--navy);
  font-size:12px;
  font-weight:900;
}
.checkout-card:nth-of-type(1) h2:before{content:"1"}
.checkout-card:nth-of-type(2) h2:before{content:"2"}
.checkout-card:nth-of-type(3) h2:before{content:"3"}
.checkout-card:nth-of-type(4) h2:before{content:"4"}
.checkout-page .form-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:16px 14px;
}
.checkout-page .form-grid label{
  color:var(--navy);
  font-size:11px;
  font-weight:900;
}
.checkout-page .form-grid label:nth-child(5){max-width:50%}
.checkout-page .form-grid input,
.checkout-page .form-grid select,
.checkout-page textarea{
  display:block;
  width:100%;
  box-sizing:border-box;
  margin-top:7px;
  padding:12px 13px;
  border:1px solid #ccd7e1;
  border-radius:10px;
  background:#fff;
  color:var(--navy);
  font:inherit;
  outline:0;
  transition:.15s;
}
.checkout-page .form-grid input:focus,
.checkout-page .form-grid select:focus,
.checkout-page textarea:focus{
  border-color:var(--yellow);
  box-shadow:0 0 0 3px rgba(255,198,41,.16);
}
.checkout-page textarea{resize:vertical;min-height:100px}
.payment-choice{
  display:flex;
  gap:13px;
  align-items:flex-start;
  padding:14px;
  margin:0 0 10px;
  border:1px solid #dce3e9;
  border-radius:12px;
  cursor:pointer;
  background:#fbfcfd;
}
.payment-choice:has(input:checked){
  border-color:#f2c21f;
  background:#fff9df;
}
.payment-choice input{margin-top:3px;accent-color:#f2bd00}
.payment-choice strong{display:block;color:var(--navy);font-size:13px}
.payment-choice small{display:block;margin-top:4px;color:#718096;font-size:11px;line-height:1.45}
.checkout-note{
  margin:12px 0 0;
  padding:11px 13px;
  background:#eef6fa;
  border-radius:9px;
  color:#52657d;
  font-size:11px;
}
.checkout-page .consent{
  display:flex;
  gap:10px;
  align-items:flex-start;
  color:#52657d;
  font-size:11px;
  line-height:1.5;
  padding:0 4px;
}
.checkout-page .consent input{margin-top:2px;accent-color:#f2bd00}
.checkout-page .btn--checkout{
  width:100%;
  padding:16px 22px;
  border:0;
  border-radius:999px;
  font-size:15px;
  font-weight:900;
  cursor:pointer;
  box-shadow:0 8px 20px rgba(244,184,0,.18);
}
.checkout-errors{
  max-width:1180px;
  margin:-15px auto 20px;
  padding:13px 16px;
  background:#fff0ee;
  border:1px solid #f1cbc5;
  border-radius:12px;
  color:#8d3127;
  font-size:12px;
}
.checkout-summary{
  background:#fff;
  border:1px solid #e2e7ed;
  border-radius:20px;
  padding:25px;
  box-shadow:0 15px 40px rgba(9,38,75,.09);
  position:sticky;
  top:120px;
}
.checkout-summary>h2{
  color:var(--navy);
  margin:0 0 20px;
  font-size:23px;
}
.checkout-summary .summary-item{
  display:grid;
  grid-template-columns:38px minmax(0,1fr) auto;
  gap:10px;
  align-items:center;
  padding:10px 0;
}
.checkout-summary .summary-item>span{
  width:38px;height:38px;
  display:grid;place-items:center;
  border-radius:9px;
  background:#eef3f5;
  font-size:20px;
}
.checkout-summary .summary-item strong{
  color:var(--navy);
  font-size:12px;
}
.checkout-summary .summary-item small{
  display:block;
  color:#718096;
  margin-top:3px;
}
.checkout-summary hr{
  border:0;
  border-top:1px solid #e1e6eb;
  margin:12px 0;
}
.checkout-summary>div:not(.summary-item){
  display:flex;
  justify-content:space-between;
  gap:15px;
  padding:7px 0;
  color:#52657d;
  font-size:13px;
}
.checkout-summary .summary-total{
  margin-top:8px;
  padding-top:14px!important;
  border-top:1px solid #e1e6eb;
  color:var(--navy);
  font-size:19px!important;
}
.checkout-summary .summary-total strong{font-size:20px}
.checkout-summary .free-shipping{
  margin:15px 0 0;
  padding:12px;
  background:#eef6fa;
  border-radius:10px;
  color:#52657d;
  font-size:11px;
}
@media(max-width:1000px){
  .checkout-grid{grid-template-columns:1fr}
  .checkout-summary{
    position:static;
    max-width:600px;
    width:100%;
    box-sizing:border-box;
    margin:0 auto;
    order:-1;
  }
}
@media(max-width:700px){
  .checkout-page{padding:45px 18px 65px}
  .checkout-page .section-heading h1{font-size:36px}
  .checkout-card{padding:20px 17px}
  .checkout-page .form-grid{grid-template-columns:1fr;gap:14px}
  .checkout-page .form-grid label:nth-child(5){max-width:none}
  .checkout-summary{padding:20px}
}

/* =========================================================
   V35 — Hero Le P'tit Breizh
   Image = véritable fond du Hero
   Typographie éditoriale dédiée
   ========================================================= */
@import url('https://fonts.googleapis.com/css2?family=Poppins:wght@400;500;600;700;800;900&display=swap');

.pb-story-hero{
  position:relative;
  display:flex;
  min-height:650px;
  width:100%;
  overflow:hidden;
  background-image:
    linear-gradient(90deg,
      rgba(251,245,233,.96) 0%,
      rgba(251,245,233,.90) 27%,
      rgba(251,245,233,.48) 49%,
      rgba(251,245,233,.06) 72%,
      rgba(251,245,233,0) 100%),
    url('../images/hero-ptit-breizh.png');
  background-size:cover;
  background-position:center center;
  background-repeat:no-repeat;
}

.pb-story-hero__copy{
  position:relative;
  z-index:2;
  display:flex;
  flex-direction:column;
  justify-content:center;
  width:min(600px,52%);
  padding:80px 0 80px clamp(28px,8vw,120px);
}

.pb-story-hero__copy .eyebrow{
  display:block;
  margin-bottom:14px;
  color:var(--navy);
  font-family:'Poppins',Arial,sans-serif;
  font-size:13px;
  font-weight:800;
  letter-spacing:.12em;
  text-transform:uppercase;
}

.pb-story-hero__copy h1{
  margin:0 0 22px;
  color:var(--navy);
  font-family:'Poppins',Arial,sans-serif;
  font-size:clamp(48px,5.4vw,76px);
  font-weight:800;
  line-height:.98;
  letter-spacing:-.045em;
}

.pb-story-hero__copy h1 span{
  color:var(--yellow);
  font-size:.48em;
  vertical-align:middle;
  margin-left:5px;
}

.pb-story-hero__copy p{
  max-width:470px;
  margin:0;
  color:#334d6b;
  font-family:'Poppins',Arial,sans-serif;
  font-size:18px;
  font-weight:500;
  line-height:1.55;
}

.pb-wave{
  margin-top:18px;
  color:var(--yellow);
  font-size:30px;
  line-height:1;
}

.pb-story-hero__image{
  display:none;
}

/* Le Hero est plein écran visuellement, sans bloc image séparé. */
.pb-story-hero::after{
  content:"";
  position:absolute;
  inset:0;
  z-index:1;
  pointer-events:none;
  background:linear-gradient(
    0deg,
    rgba(9,38,75,.10) 0%,
    rgba(9,38,75,0) 22%
  );
}

@media(max-width:850px){
  .pb-story-hero{
    min-height:650px;
    background-image:
      linear-gradient(180deg,
        rgba(251,245,233,.98) 0%,
        rgba(251,245,233,.93) 35%,
        rgba(251,245,233,.34) 58%,
        rgba(251,245,233,.05) 100%),
      url('../images/hero-ptit-breizh.png');
    background-position:center top;
  }

  .pb-story-hero__copy{
    width:100%;
    justify-content:flex-start;
    padding:65px 24px 40px;
  }

  .pb-story-hero__copy h1{
    font-size:clamp(43px,12vw,62px);
  }

  .pb-story-hero__copy p{
    max-width:360px;
    font-size:15px;
  }
}

/* =========================================================
   V37 — structure éditoriale de la page P'tit Breizh
   Pas de cartes autour des photos : images intégrées
   ========================================================= */
.petit-breizh-page{
  background:#fff;
  overflow:hidden;
}
.pb-editorial-row,
.pb-editorial-final{
  width:min(1280px, calc(100% - 80px));
  margin:0 auto;
  display:grid;
  align-items:center;
  column-gap:58px;
}
.pb-editorial-row{
  grid-template-columns:minmax(280px,.78fr) minmax(0,1.22fr);
  padding:72px 0;
}
.pb-editorial-row--image-left{
  grid-template-columns:minmax(0,1.22fr) minmax(280px,.78fr);
}
.pb-editorial-copy{
  padding:8px 0;
}
.pb-editorial-copy h2{
  margin:0 0 22px;
  color:var(--navy);
  font-size:24px;
  line-height:1.2;
}
.pb-editorial-copy h2 .pb-step{
  color:var(--yellow);
  margin-right:6px;
}
.pb-editorial-copy p{
  margin:0 0 14px;
  color:#344d6b;
  font-size:14px;
  line-height:1.75;
}
.pb-editorial-image{
  overflow:hidden;
  border-radius:0;
  box-shadow:none;
}
.pb-editorial-image img{
  display:block;
  width:100%;
  height:auto;
  aspect-ratio:4/3;
  object-fit:cover;
}
.pb-editorial-image--wide img{
  aspect-ratio:16/8.5;
}
.pb-photo-strip{
  display:grid;
  gap:8px;
  align-items:start;
}
.pb-photo-strip--3{grid-template-columns:repeat(3,1fr)}
.pb-photo-strip--4{grid-template-columns:repeat(4,1fr)}
.pb-photo-strip img{
  display:block;
  width:100%;
  aspect-ratio:1/1;
  object-fit:cover;
  border-radius:2px;
  box-shadow:0 3px 10px rgba(9,38,75,.12);
}
.pb-photo-strip img:nth-child(2){margin-top:8px}
.pb-photo-strip img:nth-child(3){margin-top:3px}
.pb-photo-strip--4 img:nth-child(2){margin-top:5px}
.pb-photo-strip--4 img:nth-child(3){margin-top:0}
.pb-photo-strip--4 img:nth-child(4){margin-top:7px}
.pb-outfit-list{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:12px;
  margin-top:24px;
  color:#52657d;
  font-size:10px;
  text-align:center;
}
.pb-outfit-list span:before{
  content:"";
  display:block;
  height:38px;
  margin-bottom:6px;
  border-bottom:1px solid #d8dee5;
}
.pb-editorial-final{
  grid-template-columns:minmax(0,1.12fr) minmax(280px,.78fr) minmax(220px,.5fr);
  gap:38px;
  padding:72px 0 80px;
}
.pb-editorial-final .pb-editorial-image img{
  aspect-ratio:4/3;
}
.pb-next{
  background:#fff8e8;
  padding:28px;
  align-self:stretch;
}
.pb-next h3{
  margin:0 0 16px;
  color:var(--navy);
  font-size:21px;
}
.pb-next p{
  color:#344d6b;
  font-size:13px;
  line-height:1.7;
}
.pb-next strong{
  display:block;
  color:var(--navy);
  font-size:12px;
  line-height:1.6;
}
.pb-heart{
  display:block;
  margin-top:18px;
  color:var(--navy);
  font-size:28px;
  text-align:right;
}
.pb-story-end{
  background:var(--navy);
  color:#fff;
  padding:20px 30px 24px;
  text-align:center;
}
.pb-story-end p{
  margin:0;
  font-family:Georgia,serif;
  font-style:italic;
  font-size:28px;
}
.pb-story-end span{color:var(--yellow)}
@media(max-width:900px){
  .pb-editorial-row,
  .pb-editorial-row--image-left,
  .pb-editorial-final{
    width:min(700px, calc(100% - 40px));
    grid-template-columns:1fr;
    gap:28px;
    padding:55px 0;
  }
  .pb-editorial-row--image-left .pb-editorial-image{order:0}
  .pb-editorial-row--image-left .pb-editorial-copy{order:1}
  .pb-photo-strip--4{grid-template-columns:repeat(2,1fr)}
  .pb-outfit-list{grid-template-columns:repeat(2,1fr)}
  .pb-next{margin-top:0}
}
@media(max-width:600px){
  .pb-editorial-row,
  .pb-editorial-row--image-left,
  .pb-editorial-final{
    width:calc(100% - 32px);
    padding:42px 0;
  }
  .pb-editorial-copy h2{font-size:21px}
  .pb-editorial-copy p{font-size:13px}
  .pb-photo-strip--3{gap:5px}
  .pb-photo-strip--4{gap:6px}
  .pb-story-end p{font-size:22px}
}

/* V42 — vrais visuels des quatre éléments de la tenue */
.pb-outfit-products{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:10px;
  margin-top:22px;
  align-items:end;
}
.pb-outfit-products > div{
  min-width:0;
  text-align:center;
}
.pb-outfit-products img{
  display:block;
  width:100%;
  height:76px;
  object-fit:contain;
  margin:0 auto 7px;
}
.pb-outfit-products span{
  display:block;
  color:#52657d;
  font-size:10px;
  line-height:1.25;
}
@media(max-width:600px){
  .pb-outfit-products img{height:68px}
}

/* =========================================================
   V46 — popup "Produit ajouté au panier"
   ========================================================= */
body.cart-modal-open{overflow:hidden}
.cart-added-modal{
  position:fixed;
  inset:0;
  z-index:9999;
  display:grid;
  place-items:center;
  padding:20px;
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  transition:opacity .2s ease, visibility .2s ease;
}
.cart-added-modal.is-open{
  opacity:1;
  visibility:visible;
  pointer-events:auto;
}
.cart-added-modal__backdrop{
  position:absolute;
  inset:0;
  background:rgba(9,38,75,.52);
  backdrop-filter:blur(3px);
}
.cart-added-modal__dialog{
  position:relative;
  z-index:1;
  width:min(520px,100%);
  padding:34px;
  background:#fff;
  border-radius:18px;
  box-shadow:0 25px 70px rgba(9,38,75,.25);
  text-align:center;
  transform:translateY(12px) scale(.98);
  transition:transform .22s ease;
}
.cart-added-modal.is-open .cart-added-modal__dialog{
  transform:translateY(0) scale(1);
}
.cart-added-modal__close{
  position:absolute;
  top:12px;
  right:15px;
  border:0;
  background:none;
  color:var(--navy);
  font-size:30px;
  line-height:1;
  cursor:pointer;
}
.cart-added-modal__check{
  width:46px;
  height:46px;
  margin:0 auto 12px;
  display:grid;
  place-items:center;
  border-radius:50%;
  background:var(--yellow);
  color:var(--navy);
  font-size:25px;
  font-weight:800;
}
.cart-added-modal__eyebrow{
  margin:0 0 4px;
  color:#718197;
  font-size:11px;
  font-weight:700;
  letter-spacing:.1em;
  text-transform:uppercase;
}
.cart-added-modal__dialog h2{
  margin:0 0 22px;
  color:var(--navy);
  font-size:25px;
}
.cart-added-modal__product{
  display:flex;
  align-items:center;
  gap:20px;
  padding:15px;
  margin-bottom:25px;
  background:#fbf5e9;
  border-radius:12px;
  text-align:left;
}
.cart-added-modal__image{
  width:110px;
  height:110px;
  flex:0 0 110px;
  display:grid;
  place-items:center;
  overflow:hidden;
  background:#fff;
  border-radius:8px;
}
.cart-added-modal__image img{
  width:100%;
  height:100%;
  object-fit:contain;
}
.cart-added-modal__info strong{
  display:block;
  margin-bottom:8px;
  color:var(--navy);
  font-size:17px;
}
.cart-added-modal__info span{
  display:block;
  color:var(--navy);
  font-weight:700;
  font-size:16px;
}
.cart-added-modal__info small{
  display:block;
  margin-top:5px;
  color:#718197;
  font-size:12px;
}
.cart-added-modal__actions{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:10px;
}
.cart-added-modal__actions .btn{
  display:flex;
  align-items:center;
  justify-content:center;
}
.cart-added-modal__continue{
  min-height:48px;
  padding:0 18px;
  border:1px solid #d7dee7;
  border-radius:8px;
  background:#fff;
  color:var(--navy);
  font:inherit;
  font-size:13px;
  font-weight:700;
  cursor:pointer;
}
.cart-added-modal__continue:hover{
  background:#f7f8fa;
}
@media(max-width:600px){
  .cart-added-modal{align-items:end;padding:10px}
  .cart-added-modal__dialog{
    width:100%;
    padding:28px 20px 20px;
    border-radius:18px 18px 10px 10px;
  }
  .cart-added-modal__product{gap:14px}
  .cart-added-modal__image{width:88px;height:88px;flex-basis:88px}
  .cart-added-modal__actions{grid-template-columns:1fr}
}

/* =========================================================
   V48 — Hero commun pour les pages internes
   L'accueil conserve son Hero propre.
   Le P'tit Breizh sert de référence graphique.
   ========================================================= */
.pb-inner-hero{
  position:relative;
  display:flex;
  align-items:center;
  min-height:420px;
  width:100%;
  overflow:hidden;
  background-image:
    linear-gradient(90deg,
      rgba(251,245,233,.97) 0%,
      rgba(251,245,233,.90) 28%,
      rgba(251,245,233,.48) 52%,
      rgba(251,245,233,.10) 78%,
      rgba(251,245,233,0) 100%),
    var(--pb-inner-hero-image, url('../images/hero-ptit-breizh.png'));
  background-size:cover;
  background-position:center center;
  background-repeat:no-repeat;
}
.pb-inner-hero::after{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  background:linear-gradient(0deg,rgba(9,38,75,.10),transparent 28%);
}
.pb-inner-hero__copy{
  position:relative;
  z-index:2;
  width:min(620px,52%);
  padding:70px 0 70px clamp(28px,8vw,120px);
}
.pb-inner-hero__copy .eyebrow{
  display:block;
  margin-bottom:13px;
  color:var(--navy);
  font-family:'Poppins',Arial,sans-serif;
  font-size:12px;
  font-weight:800;
  letter-spacing:.12em;
  text-transform:uppercase;
}
.pb-inner-hero__copy h1{
  margin:0 0 20px;
  color:var(--navy);
  font-family:'Poppins',Arial,sans-serif;
  font-size:clamp(44px,5vw,70px);
  font-weight:800;
  line-height:1;
  letter-spacing:-.045em;
}
.pb-inner-hero__copy p{
  max-width:500px;
  margin:0;
  color:#334d6b;
  font-family:'Poppins',Arial,sans-serif;
  font-size:16px;
  font-weight:500;
  line-height:1.55;
}
.pb-inner-hero__copy .pb-wave{
  margin-top:17px;
  color:var(--yellow);
  font-size:28px;
  line-height:1;
}
@media(max-width:850px){
  .pb-inner-hero{
    min-height:470px;
    background-image:
      linear-gradient(180deg,
        rgba(251,245,233,.98) 0%,
        rgba(251,245,233,.92) 35%,
        rgba(251,245,233,.35) 62%,
        rgba(251,245,233,.05) 100%),
      var(--pb-inner-hero-image, url('../images/hero-ptit-breizh.png'));
    background-position:center top;
  }
  .pb-inner-hero__copy{
    width:100%;
    padding:60px 24px 40px;
    align-self:flex-start;
  }
}

@media(max-width:900px){
  .product-main-image{
    width:100%;
    height:min(500px,70vw);
    min-height:320px;
  }
}
@media(max-width:600px){
  .product-main-image{
    height:min(420px,100vw);
    min-height:280px;
    padding:12px;
    border-radius:20px;
  }
  .product-main-image img{border-radius:14px}
  .product-thumb{flex-basis:68px;width:68px;height:68px}
}

/* =========================================================
   V53 — Footer : liens légaux sur une seule ligne
   ========================================================= */
.footer{
  display:grid;
  grid-template-columns:2fr repeat(4,1fr);
  column-gap:55px;
  row-gap:28px;
  padding:58px max(7vw,32px) 28px;
}
.footer-brand{min-width:0}
.footer-brand img{
  max-width:280px;
  height:auto;
}
.footer h4{
  margin:0 0 18px;
}
.footer > div:not(.footer-brand):not(.footer-bottom){
  min-width:0;
}
.footer > div:not(.footer-brand):not(.footer-bottom) a{
  display:block;
  margin:0 0 10px;
}
.footer-bottom{
  grid-column:1 / -1;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:30px;
  padding-top:20px;
  border-top:1px solid rgba(255,255,255,.18);
}
.footer-bottom > span:first-child{
  white-space:nowrap;
}
.footer-bottom > span:last-child{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  flex-wrap:wrap;
  gap:0;
}
.footer-bottom > span:last-child a{
  display:inline-block;
  margin:0;
  padding:0 14px;
  border-left:1px solid rgba(255,255,255,.22);
  white-space:nowrap;
}
.footer-bottom > span:last-child a:first-child{
  border-left:0;
}
@media(max-width:900px){
  .footer{
    grid-template-columns:repeat(2,1fr);
    gap:35px 30px;
  }
  .footer-brand{
    grid-column:1 / -1;
  }
  .footer-bottom{
    grid-column:1 / -1;
    align-items:flex-start;
    flex-direction:column;
    gap:12px;
  }
  .footer-bottom > span:last-child{
    justify-content:flex-start;
  }
}
@media(max-width:560px){
  .footer{
    grid-template-columns:1fr;
  }
  .footer-brand{
    grid-column:auto;
  }
  .footer-bottom > span:last-child{
    display:flex;
    flex-direction:column;
    align-items:flex-start;
  }
  .footer-bottom > span:last-child a{
    border-left:0;
    padding:3px 0;
  }
}

/* V56 — la section aventures accepte automatiquement tous les articles publiés */
.adventures-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:24px;
}
@media(max-width:950px){
  .adventures-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:620px){
  .adventures-grid{grid-template-columns:1fr}
}

/* V58 — la page article se termine directement après son contenu */
.article-page-v2{padding-bottom:0 !important}
.article-page-v2 > .article-layout{margin-bottom:0}

/* V59 — avatar officiel du P'tit Breizh dans la carte À propos */
.sidebar-mascot{
  width:112px;
  height:112px;
  margin:0 auto 18px;
  border-radius:50%;
  background:#fff;
  display:flex;
  align-items:center;
  justify-content:center;
  overflow:hidden;
}
.sidebar-mascot img{
  width:100%;
  height:100%;
  object-fit:contain;
  display:block;
}
