/* Direction artistique BRASVEO — « nuit nordique et braise ». Chargée après theme.css, qu'elle surcharge.
   Partis pris, à l'opposé du gabarit d'origine (crème, grotesque fine, capitales espacées, boutons pilule, tout centré) :
   - surfaces sombres vert sapin pour l'en-tête, les bandeaux et le pied de page, fond blanc os ailleurs ;
   - un seul accent, l'orange braise, réservé aux actions et aux repères ;
   - titres en serif (Fraunces), texte courant en bas de casse, sans capitales espacées ;
   - angles légèrement arrondis, compositions alignées à gauche. */
@font-face { font-family: "Fraunces"; src: url("/assets/fonts/fraunces-latin.woff2") format("woff2"); font-weight: 300 700; font-style: normal; font-display: swap; }

:root {
  --bg: #f3f1ec; --bg-alt: #e8e5dd; --text: #16201d; --muted: #5c6662; --line: #d6d3c9;
  --nuit: #14201c; --nuit-2: #1d2c27; --os: #f3f1ec; --os-doux: rgba(243,241,236,.68);
  --braise: #c4501b; --braise-fonce: #a3400f; --braise-texte: #a3400f; /* texte orange sur fond clair : contraste 5,6:1 (WCAG AA) */ --terre: #c4501b;
  --btn: #c4501b; --btn-text: #fff; --rayon: .6rem; --rayon-l: 1.2rem;
  --serif: "Fraunces", "Iowan Old Style", Georgia, serif;
}
body { letter-spacing: 0; font-size: 1.6rem; line-height: 1.65; }
h1, h2, h3 { font-family: var(--serif); font-weight: 400; letter-spacing: -.012em; line-height: 1.1; font-variation-settings: "opsz" 96; }
h1 { font-size: clamp(3.4rem, 4.6vw, 5.8rem); } h2 { font-size: clamp(2.6rem, 3.2vw, 4rem); } h3 { font-size: 2rem; }
.caption { color: var(--braise-texte); letter-spacing: .08em; font-size: 1.2rem; font-weight: 400; }
a.caption:hover { text-decoration: underline; text-underline-offset: .3rem; }
::selection { background: var(--braise); color: #fff; }

/* ---------- Barre d'annonce et en-tête : sombres, logo à gauche */
.announcement-bar { background: var(--braise); color: #fff; text-transform: none; letter-spacing: .01em; font-size: 1.3rem; padding: .8rem 1rem; }
.header-wrapper { background: var(--nuit); color: var(--os); border-bottom-color: transparent; }
.header { grid-template-columns: auto 1fr auto; gap: 4rem; min-height: 7.4rem; }
.header__heading-link { order: -1; font-family: var(--serif); font-weight: 500; font-size: 2.6rem; letter-spacing: .06em; text-transform: none; display: inline-flex; align-items: baseline; gap: .5rem; }
.header__heading-link::after { content: ""; width: .8rem; height: .8rem; border-radius: 50%; background: var(--braise); box-shadow: 0 0 1.2rem rgba(196,80,27,.9); }
.header__menu-item { text-transform: none; letter-spacing: 0; font-size: 1.5rem; border-bottom-width: 2px; }
.header__menu-item:hover, .header__menu-item[aria-current] { border-color: var(--braise); }
.header__list { gap: 3rem; }
.menu-icon, .menu-icon::before, .menu-icon::after { background: var(--os); height: 2px; }
.header-wrapper--overlay:hover, .header-wrapper--overlay:focus-within { background: var(--nuit); color: var(--os); border-bottom-color: transparent; }
.header-wrapper .mega, .header-wrapper .menu-drawer { background: var(--bg); color: var(--text); }
.mega { border-top: 0; box-shadow: 0 2.4rem 4rem -2rem rgba(20,32,28,.35); }
.mega__title { text-transform: none; letter-spacing: 0; font-family: var(--serif); font-size: 1.9rem; border-bottom-color: var(--line); }
.mega__col li a { font-size: 1.5rem; } .mega__col li a:hover { color: var(--braise-texte); }
.menu-drawer a, .menu-drawer__group summary { text-transform: none; letter-spacing: 0; font-size: 1.6rem; }
[data-cart-count]:not(:empty), [data-wish-count]:not(:empty) { color: #f0b08e; font-weight: 500; } /* en-tête sombre */

/* ---------- Boutons, liens, champs : angles doux, bas de casse */
.button, .home-link--button, .search-form input, .newsletter input[type=email], .product-form__input label, .quantity, .chips a, .pagination a, .pagination span,
.field input, .field select, .field textarea, .devis__profils button, .devis__choix label, .tri button[data-f-mat], .tri button[data-f-prix], .tri__ordre select, .cart-item__remove, .chat__rapides button, .chat__form input { border-radius: var(--rayon); }
.button { text-transform: none; letter-spacing: 0; font-size: 1.6rem; font-weight: 400; min-height: 5.2rem; padding: 0 2.8rem; transition: background .2s, transform .2s; }
.button:hover { opacity: 1; background: var(--braise-fonce); border-color: var(--braise-fonce); }
.button--secondary { background: transparent; color: var(--text); border-color: var(--text); } .button--secondary:hover { background: var(--text); color: var(--bg); border-color: var(--text); }
.link, .home-link { text-transform: none; letter-spacing: 0; font-size: 1.5rem; border-bottom: 2px solid var(--braise); padding-bottom: .2rem; }
.home-link--dark { color: var(--text); }
.chips a { background: #fff; border-color: transparent; font-size: 1.4rem; padding: .9rem 1.6rem; } .chips a:hover { border-color: var(--braise); color: var(--braise-texte); }
.field label, .product-form__input legend, .facets, .tri__groupe span, .tri__ordre, .essentiel dt, .rte th, table.tarifs th { text-transform: none; letter-spacing: 0; font-size: 1.4rem; }
.product-form__input input:checked + label, .devis__choix input:checked + label, .devis__profils button[aria-selected="true"], .tri button[aria-pressed="true"] { background: var(--nuit); border-color: var(--nuit); color: var(--os); }

/* ---------- Accueil : grande photo, texte calé à gauche */
.home-hero { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.2fr); height: auto; min-height: min(92vh, 86rem); background: var(--nuit); }
.home-hero::after { display: none; }
.home-hero img { position: relative; inset: auto; grid-column: 2; grid-row: 1; width: 100%; height: 100%; min-height: 0; object-fit: cover; }
.home-hero__text { position: relative; grid-column: 1; grid-row: 1; align-self: center; text-align: left; left: auto; right: auto; bottom: auto; width: auto; padding: 14rem clamp(2.4rem, 5vw, 8rem) 8rem max(var(--gutter), calc((100vw - var(--page)) / 2 + var(--gutter))); }
.home-hero__text::before { content: "Feu de bois · cèdre rouge · inox"; display: block; color: #f0b08e; font-size: 1.4rem; letter-spacing: .06em; margin-bottom: 2rem; }
.home-hero__text h1 { font-size: clamp(3.6rem, 4.6vw, 6.4rem); max-width: 13ch; margin: 0 0 3rem; line-height: 1.02; }
.home-hero__text .home-link { display: inline-flex; align-items: center; min-height: 5.4rem; padding: 0 3rem; background: var(--braise); border: 0; border-radius: var(--rayon); font-size: 1.6rem; transition: background .2s; }
.home-hero__text .home-link:hover { background: var(--braise-fonce); }
.home-section { padding: 9rem 0; }
.home-heading { font-size: clamp(2.8rem, 3.6vw, 4.6rem); margin-bottom: 4rem; max-width: 20ch; }
.home-tiles { gap: 2rem; }
.home-tile { position: relative; display: block; border-radius: var(--rayon-l); overflow: hidden; background: var(--nuit); }
.home-tile__media { aspect-ratio: 3 / 4; background: var(--nuit); }
.home-tile span { position: absolute; left: 0; right: 0; bottom: 0; margin: 0; padding: 8rem 2.2rem 2.2rem; color: #fff; font-family: var(--serif); font-size: 2.2rem; line-height: 1.15; background: linear-gradient(180deg, rgba(14,22,19,0), rgba(14,22,19,.86)); }
.home-tile span::after { content: "→"; display: block; margin-top: .8rem; font-family: inherit; color: #f0b08e; transition: transform .25s; } .home-tile:hover span::after { transform: translateX(.6rem); }
.home-banner { height: min(52vw, 76vh); border-radius: 0; background: var(--nuit); }
.home-banner::after { background: linear-gradient(0deg, rgba(14,22,19,.82), rgba(14,22,19,.18) 70%); }
.home-banner__text { align-items: flex-start; justify-content: flex-end; text-align: left; padding: 0 0 clamp(4rem, 8vh, 8rem); left: max(var(--gutter), calc((100vw - var(--page)) / 2 + var(--gutter))); right: var(--gutter); }
.home-banner__text h2 { font-size: clamp(2.8rem, 3.8vw, 5rem); max-width: 20ch; margin: 0 0 2.4rem; }
.home-mosaic { grid-template-columns: 1.5fr 1fr 1fr; gap: 2rem; }
.home-mosaic__item img { border-radius: var(--rayon-l); aspect-ratio: 4 / 5; } .home-mosaic__item--1 img { aspect-ratio: 6 / 5; }
.home-mosaic__item span { font-size: 1.5rem; color: var(--text); margin-top: 1.2rem; }
.home-rail { grid-auto-columns: min(36rem, 78vw); gap: 2rem; padding-left: max(var(--gutter), calc((100vw - var(--page)) / 2 + var(--gutter))); }
.home-section .article { max-width: none; display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.5fr); gap: 2rem 7rem; align-items: start; }
.home-section .article > .caption, .home-section .article > .home-heading { grid-column: 1; margin-bottom: 0; } .home-section .article > .rte { grid-column: 2; grid-row: 1 / span 3; max-width: none; }

/* ---------- Atouts : bandeau sombre */
.usp { background: var(--nuit); color: var(--os); border: 0; border-radius: var(--rayon-l); padding: 4rem; margin: 0 0 2rem; text-align: left; gap: 3rem; font-size: 1.4rem; }
.usp > div { padding-left: 2rem; border-left: 2px solid var(--braise); }
.usp strong { font-family: var(--serif); text-transform: none; letter-spacing: 0; font-size: 2rem; line-height: 1.2; margin-bottom: .8rem; } .usp span { color: var(--os-doux); }

/* ---------- Cartes */
.grid { gap: 4rem 2.4rem; }
.card__media, .collection-card .card__media { aspect-ratio: 4 / 5; border-radius: var(--rayon-l); margin-bottom: 1.6rem; background: var(--bg-alt); }
.card-wrapper:hover .card__media img { transform: scale(1.045); }
.card__heading { font-family: "HK Grotesk", "Helvetica Neue", Arial, sans-serif; font-size: 1.6rem; letter-spacing: 0; line-height: 1.35; margin-bottom: .6rem; }
.collection-card .card__heading { font-family: var(--serif); font-size: 2rem; text-transform: none; letter-spacing: -.01em; }
.price { color: var(--text); font-size: 1.5rem; }
.wish { border-radius: var(--rayon); } .wish.is-active { color: var(--braise); }

/* ---------- Collections : en-tête à gauche, sur fond sombre en pleine largeur */
.collection-hero { text-align: left; padding: 4rem 0 4rem; }
.collection-hero h1 { max-width: 18ch; }
.collection-hero__description { margin-left: 0; margin-right: 0; font-size: 1.7rem; max-width: 62ch; }
.collection-hero__description a strong { border-bottom: 2px solid var(--braise); }
.collection-hero .chips { justify-content: flex-start; }
.facets { border-top: 0; border-bottom: 1px solid var(--line); padding: 0 0 1.4rem; }
.pagination [aria-current] { background: var(--nuit); color: var(--os); border-color: var(--nuit); }
.essentiel { background: #fff; border: 0; border-radius: var(--rayon-l); padding: 3.6rem; } .essentiel dd { font-family: var(--serif); font-size: 1.9rem; line-height: 1.25; }
.section--alt { background: var(--bg-alt); }

/* ---------- Fiche produit : colonne d'achat en carte */
.product { gap: 5rem; grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr); }
.product__media-list { gap: 1.2rem; } .product__media-item { border-radius: var(--rayon-l); }
.product__info-container { background: #fff; border-radius: var(--rayon-l); padding: 3.6rem; top: 9.6rem; box-shadow: 0 2rem 5rem -3rem rgba(20,32,28,.3); }
.product__title h1 { font-size: clamp(2.6rem, 2.6vw, 3.4rem); line-height: 1.12; }
.product__info-container .price { font-family: var(--serif); font-size: 3.4rem; line-height: 1; }
.product__tax { font-size: 1.4rem; margin: 1rem 0 2.6rem; }
.product__reassurance { font-size: 1.5rem; color: var(--text); } .product__reassurance li { padding-left: 2.6rem; } .product__reassurance li::before { content: ""; top: 1.3rem; width: .9rem; height: .9rem; border-radius: 50%; background: var(--braise); }
.product__facts { font-size: 1.5rem; } .product__facts dd { font-weight: 400; }
.product__quote { text-transform: none; letter-spacing: 0; font-size: 1.5rem; text-decoration-color: var(--braise); text-decoration-thickness: 2px; }
.sticky-atc strong { font-family: var(--serif); font-size: 2rem; }
.galerie__points i.is-active { background: var(--braise); }

/* ---------- Accordéons, tableaux */
.accordion summary { text-transform: none; letter-spacing: 0; font-size: 1.8rem; font-family: var(--serif); padding: 2rem 0; gap: 2rem; }
.accordion summary::after { color: var(--braise); font-family: "HK Grotesk", Arial, sans-serif; }
.accordion__content { font-size: 1.6rem; }
.faq-centre > h1, .faq-centre > h2 { text-align: left; }
table.tarifs { background: #fff; border-radius: var(--rayon-l); overflow: hidden; border-collapse: separate; border-spacing: 0; }
table.tarifs th { background: var(--nuit); color: var(--os); padding: 1.4rem 1.6rem; } table.tarifs td { padding: 1.5rem 1.6rem; } table.tarifs tr:last-child td { border-bottom: 0; }
table.tarifs td:last-child { white-space: nowrap; font-family: var(--serif); font-size: 1.7rem; }

/* ---------- Pages d'information : en-têtes sombres */
.page-hero, .page-band { background: var(--nuit); color: var(--os); }
.page-hero .breadcrumbs, .page-band .breadcrumbs, .page-hero__intro, .page-band .page-hero__intro { color: var(--os-doux); } .page-hero .breadcrumbs a:hover, .page-band .breadcrumbs a:hover { color: #fff; }
.page-hero .caption, .page-band .caption { color: #f0b08e; }
.page-band { text-align: left; padding: 5rem 0 6rem; } .page-band .page-hero__intro { margin: 0; }
.page-title { text-align: left; }
.page-duo__media img { border-radius: var(--rayon-l); }
.page-duo__text .rte { color: var(--text); font-size: 1.7rem; }
.page-steps li { border-top: 2px solid var(--braise); } .page-steps span { font-family: var(--serif); color: var(--braise); }
.page-cards li { border-radius: var(--rayon-l); background: #fff; }
.page-cta { background: var(--nuit); color: var(--os); text-align: left; } .page-cta .page-width { display: grid; grid-template-columns: 1fr auto; gap: 1rem 6rem; align-items: center; }
.page-cta h2, .page-cta p { margin-left: 0; margin-right: 0; } .page-cta h2 { grid-column: 1; } .page-cta p { grid-column: 1; } .page-cta p:last-child { grid-column: 2; grid-row: 1 / span 2; justify-content: flex-end; }
.page-cta .button { background: var(--braise); border-color: var(--braise); color: #fff; } .page-cta .home-link { color: var(--os); }
.page-legal__fin { border-radius: var(--rayon-l); }
.devis { border-radius: var(--rayon-l); } .devis__barre i { background: var(--braise); } .devis__rassure li::before { content: "● "; font-size: .9rem; vertical-align: .2rem; }
.devis__profils { justify-content: flex-start; } .devis__profils button { text-transform: none; letter-spacing: 0; font-size: 1.5rem; }
.devis__progress { text-transform: none; letter-spacing: 0; font-size: 1.4rem; }

/* ---------- Lettre et pied de page : sombres */
.newsletter.section--alt { background: var(--nuit-2); color: var(--os); text-align: left; }
.newsletter .page-width { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem 6rem; align-items: center; }
.newsletter .caption { color: #f0b08e; grid-column: 1; margin: 0; } .newsletter h2 { grid-column: 1; margin: 0; } .newsletter p { grid-column: 1; color: var(--os-doux); margin: 0; max-width: 46ch; }
.newsletter form { grid-column: 2; grid-row: 1 / span 3; margin: 0; max-width: none; } .newsletter input[type=email] { border-color: transparent; padding-left: 1.8rem; padding-right: 1.8rem; }
.newsletter small { grid-column: 2; color: var(--os-doux); margin: 0; }
.footer { background: var(--nuit); color: var(--os); border-top: 0; margin-top: 0; padding-top: 7rem; }
.footer-block__heading { text-transform: none; letter-spacing: 0; font-family: var(--serif); font-size: 1.9rem; }
.footer li, .footer p[style] { color: var(--os-doux) !important; } .footer li a:hover { color: #fff; } .footer .link { color: var(--os); }
.footer__frequent, .footer__content-bottom { border-top-color: rgba(243,241,236,.16); } .footer__content-bottom { color: var(--os-doux); }
.footer__frequent .chips a { background: transparent; border-color: rgba(243,241,236,.22); color: var(--os-doux); } .footer__frequent .chips a:hover { border-color: var(--braise); color: #fff; }

/* ---------- Panier, discussion */
.cart-drawer__header h2 { font-size: 2.6rem; } .commande__recap { border-radius: var(--rayon-l); background: #fff; }
.chat__panel { border-radius: var(--rayon-l); } .chat__header { background: var(--nuit); } .chat__header strong { font-family: var(--serif); letter-spacing: .04em; font-size: 1.8rem; }
.chat__msg--moi { background: var(--nuit); }

@media (max-width: 1199px) { .header { grid-template-columns: auto 1fr auto; } .header__heading-link { order: 0; justify-self: center; } }
@media (max-width: 989px) {
  .header__heading-link { font-size: 2.2rem; letter-spacing: .05em; }
  .home-hero { grid-template-columns: 1fr; min-height: 0; } .home-hero img { grid-column: 1; grid-row: 1; aspect-ratio: 1; height: auto; } .home-hero__text { grid-row: 2; padding: 4rem var(--gutter) 5rem; }
  .home-banner { height: 64vh; }
  .home-section { padding: 5.5rem 0; } .home-mosaic { grid-template-columns: 1fr; } .home-mosaic__item img, .home-mosaic__item--1 img { aspect-ratio: 4 / 3; }
  .home-section .article { display: block; } .home-section .article > .home-heading { margin-bottom: 2.4rem; }
  .product { grid-template-columns: minmax(0, 1fr); gap: 3rem; }
  .usp { padding: 2.8rem 2.2rem; } .product__info-container { padding: 2.4rem 2rem; box-shadow: none; }
  .newsletter .page-width, .page-cta .page-width { display: block; } .newsletter form { margin-top: 2.4rem; } .newsletter small { margin-top: 1.2rem; } .page-cta p:last-child { justify-content: flex-start; margin-top: 2.4rem; }
  .sticky-atc { background: var(--nuit); color: var(--os); border-top: 0; }
}

/* ---------- Journal */
.article-blog { padding-top: 2rem; } .article-blog .article { max-width: 76rem; }
.article-blog h1 { font-size: clamp(3.2rem, 4vw, 5rem); margin: 1rem 0 1.6rem; }
.article-blog__meta { color: var(--muted); font-size: 1.4rem; margin-bottom: 3.2rem; }
.article-blog .rte { max-width: none; font-size: 1.7rem; } .article-blog .rte > p:first-child { font-size: 1.9rem; line-height: 1.55; }
.article-blog .rte h2 { margin-top: 4.8rem; } .article-blog .rte h3 { font-family: var(--serif); font-size: 2.1rem; }
.article-blog .rte table { background: #fff; border-radius: var(--rayon-l); } .article-blog .rte th, .article-blog .rte td { padding: 1.1rem 1.4rem; }
.article-blog .sommaire { background: #fff; border-radius: var(--rayon-l); }
.article-modeles { margin: 4rem 0; padding: 3rem; background: var(--bg-alt); border-radius: var(--rayon-l); } .article-modeles .grid { gap: 2rem 1.6rem; } .article-modeles .card__heading { font-size: 1.4rem; }
.article-blog__sources { margin-top: 4rem; font-size: 1.4rem; color: var(--muted); } .article-blog__sources h2 { font-size: 2.2rem; } .article-blog__sources a { text-decoration: underline; text-underline-offset: .3rem; word-break: break-word; }
.article-blog .auteur { border-radius: var(--rayon-l); background: #fff; border: 0; }
.card__media--guide { aspect-ratio: 4 / 3; }
@media (max-width: 749px) { .article-modeles { padding: 2rem 1.4rem; } .article-blog .rte { font-size: 1.6rem; } }

/* Accessibilité : focus clavier toujours visible */
a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible, summary:focus-visible { outline: 3px solid var(--braise); outline-offset: 2px; }

/* Stories et film de la fiche produit */
.at-story:hover .at-story__thumb { border-color: var(--braise); }
.at-story-dialog__title { font-family: var(--font-heading-family, "Fraunces", serif); }
.film-produit { margin: 0 0 4.8rem; border-radius: 1.6rem; overflow: hidden; background: var(--nuit); aspect-ratio: 16 / 9; }
.film-produit video { width: 100%; height: 100%; object-fit: cover; display: block; }
