/* Banner module is also inlined with home critical CSS to reserve image space before first paint. */
.home-boutique .banner-sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; border:0; }
.home-boutique .hero-slider { padding-top:24px; padding-bottom:14px; }
.home-boutique .hero-slides { position:relative; aspect-ratio:16/9; min-height:0; border-radius:22px; background:#f8f7f3; overflow:hidden; touch-action:pan-y; }
.home-boutique .hero-slide { position:absolute; inset:0; opacity:0; visibility:hidden; transition:opacity .35s ease,visibility .35s; }
.home-boutique .hero-slide.is-active { opacity:1; visibility:visible; }
.home-boutique .hero-slide picture,.home-boutique .hero-slide img { display:block; width:100%; height:100%; object-fit:contain; }
.home-boutique .hero-slide-link { position:absolute; inset:0; border-radius:inherit; }
.home-boutique .hero-slide-link:focus-visible { outline:3px solid var(--brand,#154d3c); outline-offset:-5px; }
.home-boutique .hero-slider-footer { display:flex; align-items:center; justify-content:space-between; gap:20px; min-height:78px; }
.home-boutique .banner-assurance { display:flex; align-items:center; gap:12px; color:var(--brand,#154d3c); padding:12px 0; text-decoration:none; }
.home-boutique .banner-assurance > .ico:first-child { width:22px; height:22px; flex:none; }
.home-boutique .banner-assurance > .ico:last-child { width:16px; height:16px; flex:none; }
.home-boutique .banner-assurance > span { display:grid; gap:3px; }
.home-boutique .banner-assurance strong { font-size:13px; font-weight:500; }
.home-boutique .banner-assurance span span { font-size:11px; color:var(--muted,#66786e); }
.home-boutique .hero-slider-nav { display:flex; align-items:center; gap:5px; margin:0; flex:none; }
.no-js .home-boutique .hero-slider-nav { display:none; }
.home-boutique .hero-slider-nav .icon-btn { width:44px; height:44px; border:1px solid var(--line,#dfe5df); border-radius:50%; background:transparent; color:var(--brand,#154d3c); cursor:pointer; }
.home-boutique .hero-dots { display:flex; gap:0; }
.home-boutique .hero-dots button { width:44px; height:44px; }
.home-boutique .hero-slider-nav button:focus-visible,.home-boutique .promo-tile:focus-visible { outline:3px solid var(--brand,#154d3c); outline-offset:3px; }
.home-boutique .banner-collections { padding-top:12px; padding-bottom:28px; }
.home-boutique .banner-collections-heading { display:flex; align-items:baseline; justify-content:space-between; gap:16px; margin-bottom:20px; }
.home-boutique .banner-collections-heading h2 { font:500 30px/1.15 var(--serif); letter-spacing:-.025em; margin:0; color:var(--brand,#154d3c); }
.home-boutique .banner-collections-heading > span { font-size:12px; color:var(--muted,#66786e); }
.home-boutique .promo-tiles { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; padding:0; }
.home-boutique .promo-tile { display:block; position:relative; min-width:0; aspect-ratio:4/3; border-radius:18px; background:#f8f7f3; overflow:hidden; text-decoration:none; }
.home-boutique .promo-tile picture,.home-boutique .promo-tile img { display:block; width:100%; height:100%; object-fit:contain; }
.home-boutique .promo-tile img { transition:transform .3s ease; }
.home-boutique .promo-tile:hover img { transform:none; }
.home-boutique .banner-collections-hint { display:none; }
@media (hover:hover) and (prefers-reduced-motion:no-preference) {
  .home-boutique .promo-tile:hover img { transform:scale(1.015); }
}
@media (max-width:767px) {
  .home-boutique .hero-slider { padding-top:16px; padding-bottom:6px; }
  .home-boutique .hero-slides { aspect-ratio:9/11; border-radius:16px; }
  .home-boutique .hero-slider-footer { flex-wrap:wrap; gap:0; justify-content:center; padding-top:6px; }
  .home-boutique .hero-slider-nav { order:-1; width:100%; justify-content:center; }
  .home-boutique .banner-assurance { width:100%; gap:9px; padding:10px 0 14px; }
  .home-boutique .banner-assurance strong { font-size:11px; line-height:1.5; }
  .home-boutique .banner-assurance span span { font-size:10px; line-height:1.5; }
  .home-boutique .banner-assurance > .ico:first-child { width:19px; height:19px; }
  .home-boutique .banner-assurance > .ico:last-child { margin-left:auto; }
  .home-boutique .banner-collections { padding-top:8px; padding-bottom:18px; }
  .home-boutique .banner-collections-heading { margin-bottom:14px; gap:10px; }
  .home-boutique .banner-collections-heading h2 { font-size:25px; }
  .home-boutique .banner-collections-heading > span { font-size:10px; }
  .home-boutique .promo-tiles { display:flex; gap:12px; overflow-x:auto; padding:3px 3px 12px; margin:0 -3px; scroll-snap-type:x mandatory; scroll-padding-inline:3px; overscroll-behavior-x:contain; scrollbar-width:thin; scrollbar-color:#a6b9ae transparent; }
  .home-boutique .promo-tile { flex:0 0 80%; scroll-snap-align:start; border-radius:14px; }
  .home-boutique .promo-tile--mobile { aspect-ratio:9/11; }
  .home-boutique .banner-collections-hint { display:flex; align-items:center; justify-content:center; gap:7px; margin:6px 0 0; font-size:10px; color:var(--muted,#66786e); }
  .home-boutique .banner-collections-hint .ico { width:14px; height:14px; }
}
@media (prefers-reduced-motion:reduce) {
  .home-boutique .hero-slide,.home-boutique .promo-tile img { transition:none; }
}
