/* Maison Kôssi (marque fictive) — styles propres à : index. Chargée après styles.css, qui déclare l’ordre des couches. */
@layer components {
  .carousel__ctrl { display: flex; gap: var(--s-2); }
  .quote-cards { display: grid; gap: var(--s-4); } @media (min-width: 48em) { .quote-cards { grid-template-columns: repeat(3, 1fr); } }
  .quote-card { padding: var(--s-5); border-radius: var(--radius-lg); background: var(--color-papier); border: 1px solid var(--color-ligne-deco); display: grid; gap: var(--s-3); align-content: start; }
  .quote-card p { margin: 0; } .quote-card cite { font-style: normal; font-weight: 600; color: var(--color-encre); } .quote-card figcaption { font-size: var(--fs-small); color: var(--color-doux); }
}
@layer pages {
  /* ---------- Accueil ---------- */
  .hero { padding-block: var(--s-6) var(--s-7); overflow: clip; background: radial-gradient(60rem 30rem at 85% 10%, color-mix(in srgb, var(--color-or-pale) 70%, transparent), transparent 70%), var(--color-creme); }
  .hero__grid { display: grid; gap: var(--s-6); align-items: center; }
  .hero__txt { display: grid; gap: var(--s-4); justify-items: start; }
  .hero__txt .lede { max-inline-size: 42ch; }
  .hero__proof { display: grid; gap: 0.25rem; font-size: var(--fs-small); color: var(--color-doux); padding-block-start: var(--s-3); }
  .hero__proof span::before { content: "✓"; color: var(--color-vert); font-weight: 700; margin-inline-end: 0.5rem; }
  .hero__art { position: relative; justify-self: center; inline-size: min(100%, 24rem); }
  .hero__arch { aspect-ratio: 4 / 5; border-radius: var(--arch); overflow: hidden; background: var(--color-indigo); box-shadow: var(--shadow-warm); }
  .hero__arch img, .hero__arch svg { display: block; inline-size: 100%; block-size: 100%; object-fit: cover; }
  .hero__arch2 { position: absolute; inset-block-end: -1.5rem; inset-inline-start: -1.75rem; inline-size: 38%; aspect-ratio: 4 / 5; border-radius: var(--arch); overflow: hidden; border: 4px solid var(--color-creme); box-shadow: var(--shadow-warm); }
  .hero__arch2 img { inline-size: 100%; block-size: 100%; object-fit: cover; object-position: 38% 50%; }
  .hero__sun { position: absolute; inset-block-start: -1rem; inset-inline-end: -1.25rem; inline-size: 5.5rem; block-size: 5.5rem; border-radius: 50%; background: var(--color-indigo); display: grid; place-items: center; border: 4px solid var(--color-creme); box-shadow: var(--shadow-warm); }
  .hero__sun svg { inline-size: 3.2rem; block-size: 3.2rem; }
  .hero__tag { position: absolute; inset-block-end: 1.25rem; inset-inline-end: -0.75rem; display: grid; gap: 0.1rem; padding: 0.6rem 1rem; border-radius: var(--radius); background: var(--color-papier); box-shadow: var(--shadow-warm); font-size: 0.8125rem; line-height: 1.35; text-decoration: none; color: var(--color-encre); border-inline-start: 4px solid var(--color-rouille); transition: translate var(--dur-2) var(--ease-out); }
  .hero__tag strong { font-size: 0.9375rem; color: var(--color-indigo); } .hero__tag span { color: var(--color-doux); } .hero__tag span span { color: var(--color-encre); font-weight: 700; }
  .hero__tag:hover { translate: 0 -2px; } .hero__tag:hover strong { text-decoration: underline; }
  @media (min-width: 48em) { .hero { padding-block: var(--s-8); } .hero__grid { grid-template-columns: 6fr 6fr; gap: var(--s-7); } .hero__art { inline-size: min(100%, 28rem); justify-self: end; margin-inline-end: 1.5rem; } }
  @media (min-width: 64em) { .hero { padding-block: var(--s-8) var(--s-9); } .hero__art { inline-size: min(100%, 31rem); } }
  @media (max-width: 47.99em) { .hero__art { inline-size: min(78%, 20rem); margin-inline-start: 2rem; } .hero { padding-block-end: var(--s-8); } }
  .cats { display: grid; gap: var(--s-4); grid-template-columns: repeat(2, 1fr); }
  @media (min-width: 48em) { .cats { grid-template-columns: repeat(4, 1fr); } .cats .cat--big { grid-column: span 2; grid-row: span 1; } }
  @media (min-width: 64em) { .cats { grid-template-columns: repeat(12, 1fr); } .cats .cat--big { grid-column: span 6; } .cats .cat:not(.cat--big) { grid-column: span 3; } }
  .cat { position: relative; display: grid; text-decoration: none; color: var(--color-creme); isolation: isolate; border-radius: var(--arch); overflow: hidden; aspect-ratio: 4 / 5; background: var(--color-indigo); }
  .cat--art { background: var(--color-sable); }
  @media (min-width: 48em) { .cat--big { aspect-ratio: 1 / 1; } }
  .cat { --band: 3.25rem; } @media (min-width: 48em) { .cat { --band: 3.75rem; } }
  .cat > img, .cat > svg { position: absolute; inset: 0 0 var(--band); inline-size: 100%; block-size: calc(100% - var(--band)); object-fit: cover; z-index: -2; transition: scale var(--dur-4) var(--ease-out); }
  .cat::before { content: ""; position: absolute; inset: auto 0 0; block-size: var(--band); z-index: -1; background: var(--color-indigo); box-shadow: 0 -4px 0 var(--color-or); }
  .cat span { align-self: end; min-block-size: var(--band); padding: 0 var(--s-4); font-family: var(--font-display); font-weight: 500; font-size: clamp(1rem, 0.9rem + 0.6vw, 1.375rem); display: flex; justify-content: space-between; align-items: center; gap: var(--s-2); }
  .cat span::after { content: "→"; color: var(--color-or); }
  .cat:hover > img, .cat:hover > svg { scale: 1.05; } .cat:focus-visible { outline-offset: 4px; }
  .month { display: grid; gap: var(--s-6); align-items: center; }
  @media (min-width: 48em) { .month { grid-template-columns: 5fr 6fr; gap: var(--s-8); } }
  .month__fabric { aspect-ratio: 4 / 3; border-radius: var(--radius-lg); overflow: hidden; box-shadow: var(--shadow-warm); position: relative; } .month__fabric svg { position: absolute; inset-inline: 0; inset-block-start: 50%; translate: 0 -50%; inline-size: 100%; block-size: auto; transition: opacity var(--dur-3); } /* le tissu (4:5) remplit la carte (4:3) au lieu d’y flotter */
  .month__fabric .tag { position: absolute; inset-block-end: 1rem; inset-inline-start: 1rem; padding: 0.35rem 0.9rem; border-radius: 999px; background: var(--color-papier); font-weight: 700; font-size: 0.875rem; }
  .month .opt-grid { margin-block: var(--s-4); }
  .month fieldset legend { font-weight: 700; margin-block-end: var(--s-2); }
  .stats { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--s-3); margin-block: var(--s-5); }
  .stats div { display: grid; gap: 0.25rem; } .stats dd { margin: 0; font-family: var(--font-display); font-weight: 600; font-size: clamp(1.5rem, 1.1rem + 1.6vw, 2.5rem); line-height: 1; color: var(--color-indigo); } .stats dt { font-size: var(--fs-small); color: var(--color-doux); order: 2; }
  .glow { display: grid; gap: var(--s-6); align-items: center; } @media (min-width: 48em) { .glow { grid-template-columns: 1fr 1fr; gap: var(--s-8); } }
  .glow__art { border-radius: var(--arch); overflow: hidden; aspect-ratio: 4 / 5; max-inline-size: 26rem; justify-self: center; inline-size: 100%; } .glow__art svg { inline-size: 100%; block-size: 100%; }
  .glow__price { display: flex; flex-wrap: wrap; gap: var(--s-2) var(--s-4); align-items: baseline; font-family: var(--font-display); font-weight: 600; font-size: 1.75rem; } .glow__price small { font-family: var(--font-body); font-weight: 400; font-size: 0.9375rem; color: var(--color-sur-indigo); }
  .score { display: flex; flex-wrap: wrap; align-items: center; gap: var(--s-2) var(--s-4); }
  .score strong { font-family: var(--font-display); font-size: 1.75rem; font-weight: 600; color: var(--color-indigo); } .score span:last-child { color: var(--color-doux); }
  .deliver { display: grid; gap: var(--s-5); } @media (min-width: 48em) { .deliver { grid-template-columns: repeat(4, 1fr); } }
  .deliver li { list-style: none; position: relative; padding-block-start: var(--s-5); border-block-start: 3px solid var(--color-or); display: grid; gap: var(--s-1); align-content: start; }
  .deliver strong { font-family: var(--font-display); font-weight: 500; font-size: 1rem; } .deliver span { font-size: var(--fs-small); color: var(--color-sur-indigo); } .deliver b { font-family: var(--font-display); font-weight: 600; font-size: 1.5rem; color: var(--color-or); }
  .deliver--light li span { color: var(--color-doux); } .deliver--light b { color: var(--color-indigo); }
}
