/* Revue design 2026-10-05.
   Chargée en dernier sur toutes les pages : échelle de titres unique,
   corps de texte à 16 px, trois styles de boutons, retouches de mise en page.
   Les numéros renvoient aux points du rapport outputs/Revue-design-2026-10-05.md. */
:root{--t-h2:clamp(36px,3.7vw,52px);--t-h3:clamp(22px,2vw,26px);--t-body:16px;--radius:3px}

/* 8. Une seule échelle de titres : h2 de section, h2 secondaire, h3 de carte. */
/* Les « !important » de cette feuille sont voulus : elle corrige 15 feuilles antérieures qui fixent chacune leur taille. */
main h2,.contact-faq h2,.site-footer h2,.news-contact h2,.catalog-contact h2,.article-end h2,.about-chapter h2,.shop-shopping-help h2,.shop-catalog-heading h2,.shop-advice-copy h2{font-size:var(--t-h2)!important;line-height:1.1!important;letter-spacing:-.03em}
dialog h2,.local-contact h2,.contact-form-panel h2,.realisation-dialog-caption h2,.article-end h2{font-size:32px!important;line-height:1.15!important;letter-spacing:-.02em}
.realisation-card :is(h2,h3),.interior-card-title h3,.news-card h3,.news-feature h3,.steps h3,.contact-result h3,.shop-card h3,.about-step h3,.shop-service h3,.shop-empty h3,.article-main h3,.article-section h3{font-size:var(--t-h3)!important;line-height:1.3!important;letter-spacing:-.02em}

/* Articles : sous-titres à la taille des titres de carte, corps à 16 px. */
.article-prose section h2{font-size:28px!important;line-height:1.25!important;letter-spacing:-.02em}
.article-prose p,.article-prose li{font-size:var(--t-body)!important;line-height:1.75}

/* 9. Corps de texte à 16 px. Les légendes et crédits restent à 12 px. */
.practical-faq details p,.faq details p,.shop-shopping-help details p,.shop-price-help p,.project-atmosphere,.interior-card>p,.realisations-heading p,.intro-description p,.intro-grid .section-caption,.news-card-body p,.news-feature p,.news-heading p,.news-hero-content p,.steps p,.catalog-heading>p,.contact-aside p,.contact-heading p,.about-text p,.about-intro,.shop-hero-copy>p,.article-main p,.article-main li,.article-hero-copy p,.shop-service p,.shop-advice-copy>p,.reviews-intro,.realisation-story p,.realisation-detail-list li,.local-contact p,.required-note,.form-note,.field-error,details>summary,.collection-caption small{font-size:var(--t-body)!important;line-height:1.7}
.local-contact address,.contact-direct small,.contact-fields .field>label,.message-field>label{font-size:14px!important;line-height:1.7}
.practical-faq details p,.faq details p{max-width:62ch;color:#4f4a44}
.contact-photo-credit,.contact-aside .contact-photo-credit{font-size:12px!important;letter-spacing:.06em;line-height:1.6}

/* 16. Trois styles de boutons : plein sombre, contour, lien souligné. Un seul rayon. */
.pill,.header-cta,.card-action,.shop-button,.gallery-filters button,.catalog-categories a,.project-choice,.shop-type-switch button,.contact-copy-link,.shop-cart-continue,input:not([type=radio]):not([type=checkbox]),select,textarea{border-radius:var(--radius)}
.pill,.header-cta{min-height:52px;padding:14px 26px;font-size:14px;letter-spacing:.02em}
.pill.light{box-shadow:none;border-color:#f2f2ef}
@media (hover:hover) and (pointer:fine){.pill.light:hover{background:#fff;border-color:#fff}}

/* 15. Sélecteur de collection du hero : libellé explicite, boutons qui ressemblent à des boutons. */
.hero-selector{align-items:center;gap:25px}
.hero-selector-label{font-size:12px;letter-spacing:.08em;color:#e9e9e9;margin-right:10px;white-space:nowrap}
.hero-selector button{transition:color .2s,border-color .2s}
@media (hover:hover) and (pointer:fine){.hero-selector button:hover{color:#fff;border-top-color:#ffffffa6}}

/* 11. Réalisations : la photo entière est le lien ; une grande, puis deux par deux. */
.realisations-page .realisation-photo img{transition:transform .6s,filter .3s}
.realisations-page .realisation-photo:focus-visible img{filter:brightness(.82)}@media (hover:hover) and (pointer:fine){.realisations-page .realisation-photo:hover img{filter:brightness(.82)}}
.realisations-page .realisation-grid:not(.is-filtered)>.realisation-card:nth-child(5n+1){grid-column:1/-1}
.realisations-page .realisation-grid:not(.is-filtered)>.realisation-card:nth-child(5n+1) .realisation-photo img{height:auto;aspect-ratio:1.9;max-height:640px;object-position:center 70%}

/* 12. Gammes : l'action devient un lien discret ; un packshot se présente comme tel. */
.catalog-page .catalog-card .card-action{border:0;background:transparent;padding:0;min-height:0;font-size:13px;text-decoration:underline;text-underline-offset:6px;text-decoration-thickness:1px;border-radius:0}
@media (hover:hover) and (pointer:fine){.catalog-page .catalog-card:hover .card-action{background:transparent;text-decoration-thickness:2px}}
.catalog-page .catalog-card--packshot img{object-fit:contain!important;background:#ebebe8;padding:9%}

/* Cuisine bleue (projet vedette du 05/10) : la pièce est dans le bas de la photo, le cadrage suit. */
.home-page .realisation-photo[data-realisation="bleu-profond-laiton"] img,.news-hero>img,.boutique-page .shop-hero-photo img{object-position:center 76%!important}

/* 4. Formulaire de contact sans numéros : les titres de groupe gardent leur place. */
.contact-form-panel legend,.message-field>label{display:block}

@media(max-width:760px){
  .hero-selector{flex-wrap:wrap;gap:8px}
  .hero-selector-label{width:100%;margin:0 0 2px}
  .realisations-page .realisation-grid:not(.is-filtered)>.realisation-card:nth-child(5n+1) .realisation-photo img{height:300px;aspect-ratio:auto}
  dialog h2,.local-contact h2,.contact-form-panel h2{font-size:28px}
}
@media(prefers-reduced-motion:reduce){.realisations-page .realisation-photo img{transition:none}}
/* 17. Boutons de découverte (« Voir toutes… », « Explorer les collections », « Lire l'article ») :
   liens soulignés, de la même famille que « Découvrir ». Les actions de contact restent des boutons pleins. */
.home-page .pill.dark.collection-cta,.pill.dark.interior-cta,.pill.dark.news-feature-cta{display:inline-flex;align-items:center;justify-content:flex-start;min-width:0!important;min-height:44px;width:auto!important;padding:0!important;background:transparent!important;border:0!important;border-radius:0;box-shadow:none!important;color:var(--ink,#302c28)!important;font-size:15px!important;font-weight:500!important;letter-spacing:0;transform:none!important;text-decoration:underline;text-underline-offset:8px;text-decoration-thickness:1px}@media (hover:hover) and (pointer:fine){.home-page .pill.dark.collection-cta:hover,.pill.dark.interior-cta:hover,.pill.dark.news-feature-cta:hover{display:inline-flex;align-items:center;justify-content:flex-start;min-width:0!important;min-height:44px;width:auto!important;padding:0!important;background:transparent!important;border:0!important;border-radius:0;box-shadow:none!important;color:var(--ink,#302c28)!important;font-size:15px!important;font-weight:500!important;letter-spacing:0;transform:none!important;text-decoration:underline;text-underline-offset:8px;text-decoration-thickness:1px}}
@media (hover:hover) and (pointer:fine){.home-page .pill.dark.collection-cta:hover,.pill.dark.interior-cta:hover,.pill.dark.news-feature-cta:hover{text-decoration-thickness:2px}}
.home-page .pill.dark.collection-cta:focus-visible,.pill.dark.interior-cta:focus-visible,.pill.dark.news-feature-cta:focus-visible{outline:2px solid currentColor;outline-offset:6px}

/* Pages légales : titres d’article plus sobres que les h2 de section. */
.legal-inner h2{font-size:26px!important;line-height:1.25!important;letter-spacing:-.02em}

/* Audit 06/10 : crédits et légendes à 12 px au moins, choix du formulaire lisibles, sélecteur du hero plus net. */
figcaption,.shop-image-credit,.edition,.contact-photo-credit,.visual-note{font-size:12px!important}
.project-choice span{font-size:14px!important}
.hero-selector button{font-size:14px!important;min-height:44px}
.hero-selector-label{font-size:13px!important}
.legal-back{margin:18px 0 0}.legal-back a{font-size:14px}
/* Fiche produit : la barre d’ajout basse ne sert que sur mobile. */
@media(min-width:761px){body.boutique-page .shop-mobile-buybar{display:none!important}}
@media(max-width:760px){
  body.has-mobile-contact:not(.contact-page){padding-bottom:calc(var(--mobile-contact-height,70px) + 8px)}
  body.boutique-page .site-header .header-cta{font-size:14px!important}
}
/* Audit good-css du 10/10/2026.
   Ancres : la marge suit la hauteur de la barre fixe (112 px, 90 px sur mobile). À 100 px, un titre visé passait sous la barre de 112 px. */
:root{--header-h:112px}
@media(max-width:760px){:root{--header-h:90px}}
html{scroll-padding-top:calc(var(--header-h) + 16px)}
/* Zones de tap d'au moins 44 px : la zone grandit autour de l'élément, le dessin ne bouge pas. */
.legal-toc a,.legal-back a,.footer-legal a,.catalogue-link,.reviews-google,.business-phone,.about-contents a,.about-brands-list dd a,.business-link,.about-phone,.shop-topline>a,.shop-advice-actions a,.shop-card h3 button,.article-end h2+a{position:relative}
.legal-toc a::after,.legal-back a::after,.footer-legal a::after,.catalogue-link::after,.reviews-google::after,.business-phone::after,.about-contents a::after,.about-brands-list dd a::after,.business-link::after,.about-phone::after,.shop-topline>a::after,.shop-advice-actions a::after,.shop-card h3 button::after,.article-end h2+a::after{content:"";position:absolute;inset:min(0px,(100% - 44px) / 2)}
.shop-qty button,.shop-cart-line .shop-qty button{width:44px;min-height:44px}
.shop-cart-line .shop-qty{min-height:44px}
body.boutique-page .site-header .header-cta,.shop-cart-trigger{min-height:44px}
/* Accueil (demande de Léo, 10/10) : plus de blocs gris, le fond de la page continue derrière.
   « Découvrir » des collections : plus de pastille grise au survol (elle apparaissait pendant le défilement). */
.home-page .realisations,.home-page .interior-card,.home-page .reviews-section,.home-page .questions-contact{background:var(--cream,#f5f5f2)}
.home-page .collection .card-action,.home-page .collection:hover .card-action{background:transparent;-webkit-backdrop-filter:none;backdrop-filter:none;box-shadow:none}
/* « Vider le panier » et sa confirmation : zone de tap de 44 px sans changer le rendu. */
.shop-cart-clear button{position:relative}
.shop-cart-clear button::after{content:"";position:absolute;inset:min(0px,(100% - 44px) / 2)}
