:root {
  color-scheme: light;
  --paper: #f3ece2;
  --paper-light: #fcf8f2;
  --stone-soft: #e4dbd1;
  --wood: #725039;
  --charcoal: #302720;
  --ink: #302720;
  --muted: #76685e;
  --line: #d7c9bc;
  --line-dark: #9b897a;
  --terracotta: #bf6b42;
  --serif: Georgia, 'Times New Roman', serif;
  --sans: 'Plus Jakarta Sans', 'Aptos', 'Segoe UI', sans-serif;
  --measure: 74ch;
}

* { box-sizing: border-box; }
html { scroll-padding-top: 1.5rem; }
.breadcrumbs { padding-top: .65rem; padding-bottom: .65rem; font-size: .75rem; color: var(--muted); }
.breadcrumbs a { color: var(--wood); }
.editorial-byline { font-size: .8rem; color: var(--muted); }
.article-toc { margin: 1.4rem 0 2rem; padding: 1.2rem 1.4rem; border: 1px solid var(--line); background: var(--paper-light); }
.article-toc ol { margin: .6rem 0 0; padding-left: 1.2rem; }
.article-toc li + li { margin-top: .3rem; }
.article-toc a { font-size: .9rem; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  background: var(--paper);
  color: var(--ink);
  font-family: var(--sans);
  font-size: 16px;
  line-height: 1.68;
  text-rendering: optimizeLegibility;
}
img, svg { display: block; max-width: 100%; }
a { color: var(--wood); text-underline-offset: .2em; text-decoration-thickness: .07em; }
a:hover { color: var(--terracotta); }
a:focus-visible, button:focus-visible, input:focus-visible, summary:focus-visible {
  outline: 3px solid var(--terracotta);
  outline-offset: 4px;
}
button, input { font: inherit; }
button { cursor: pointer; }
::selection { background: #e5b999; color: #2f2721; }

.skip-link {
  position: absolute;
  z-index: 20;
  top: .5rem;
  left: .5rem;
  transform: translateY(-150%);
  padding: .55rem .8rem;
  background: var(--charcoal);
  color: #fff;
}
.skip-link:focus { transform: translateY(0); }
.preview-bar {
  min-height: 30px;
  padding: .2rem 1rem;
  background: var(--charcoal);
  color: #f5eee4;
  font-size: .72rem;
  letter-spacing: .08em;
  text-align: center;
  text-transform: uppercase;
}
.site-header { border-bottom: 1px solid var(--line); }
.header-inner {
  width: min(100% - 48px, 1320px);
  min-height: 78px;
  margin: 0 auto;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 2rem;
}
.wordmark {
  display: inline-flex;
  flex-direction: column;
  color: var(--charcoal);
  line-height: 1;
  text-decoration: none;
}
.wordmark strong {
  font-family: var(--serif);
  font-size: 1.5rem;
  font-weight: 600;
  letter-spacing: -.045em;
}
.wordmark span {
  margin-top: .38rem;
  color: var(--muted);
  font-size: .62rem;
  font-weight: 700;
  letter-spacing: .17em;
  text-transform: uppercase;
}
.desktop-nav { display: flex; align-items: center; gap: clamp(1rem, 2.1vw, 2rem); }
.desktop-nav a, .mobile-nav summary {
  color: var(--ink);
  font-size: .86rem;
  font-weight: 650;
  text-decoration: none;
}
.desktop-nav a[aria-current='page'] { color: var(--terracotta); text-decoration: underline; text-underline-offset: .35em; }
.mobile-nav { display: none; position: relative; }
.mobile-nav summary {
  list-style: none;
  cursor: pointer;
  border: 1px solid var(--line-dark);
  padding: .48rem .7rem;
}
.mobile-nav summary::-webkit-details-marker { display: none; }
.mobile-menu {
  position: absolute;
  z-index: 10;
  top: calc(100% + .6rem);
  right: 0;
  min-width: 230px;
  padding: .65rem;
  border: 1px solid var(--line-dark);
  background: var(--paper-light);
}
.mobile-menu a { display: block; padding: .6rem .5rem; color: var(--ink); text-decoration: none; }
.mobile-menu a + a { border-top: 1px solid #e4dacf; }

.page-shell { width: min(100% - 48px, 1320px); margin: 0 auto; }
.home-hero {
  display: grid;
  grid-template-columns: minmax(0, 1.1fr) minmax(330px, .9fr);
  align-items: stretch;
  gap: clamp(2rem, 5vw, 5.2rem);
  padding: clamp(3rem, 6vw, 5.5rem) 0 2.4rem;
}
.hero-copy { max-width: 720px; align-self: start; padding: 0 0 1.5rem; }
.eyebrow, .section-label, .guide-kind, .guide-topic, .product-kind {
  margin: 0;
  color: #75675d;
  font-size: .72rem;
  font-weight: 750;
  letter-spacing: .13em;
  line-height: 1.4;
  text-transform: uppercase;
}
.hero-copy h1 {
  max-width: 15ch;
  margin: .7rem 0 1.1rem;
  font-family: var(--serif);
  font-size: clamp(2.8rem, 5.6vw, 5.25rem);
  font-weight: 500;
  letter-spacing: -.055em;
  line-height: .99;
}
.lead { max-width: 59ch; color: #5f5147; font-size: clamp(1rem, 1.25vw, 1.16rem); }
.button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 48px;
  margin: .65rem 0 .25rem;
  padding: .72rem 1rem;
  border: 1px solid var(--wood);
  background: var(--wood);
  color: #fff;
  font-size: .88rem;
  font-weight: 700;
  line-height: 1.25;
  text-decoration: none;
  transition: background-color .16s ease, color .16s ease;
}
.button:hover { background: var(--charcoal); color: #fff; }
.market-note { margin: 1rem 0 0; color: var(--muted); font-size: .82rem; }

.product-glance {
  align-self: center;
  padding: 1.35rem 1.45rem 1.15rem;
  border: 1px solid var(--line-dark);
  background: var(--paper-light);
}
.glance-heading h2 {
  margin: .38rem 0 .35rem;
  font-family: var(--serif);
  font-size: clamp(1.5rem, 2.1vw, 2.05rem);
  font-weight: 500;
  letter-spacing: -.035em;
  line-height: 1.1;
}
.glance-heading > p:last-child { margin: 0; color: var(--muted); font-size: .85rem; line-height: 1.5; }
.affiliate-note { margin: 1rem 0 0; color: #5f5147; font-size: .77rem; line-height: 1.5; }
.affiliate-note-standalone { max-width: 70ch; padding: .75rem 0; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.product-list { margin: 1.1rem 0 0; padding: 0; list-style: none; }
.product-list li {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: .9rem 1.2rem;
  padding: .85rem 0;
  border-top: 1px solid #e1d6cb;
}
.product-list h3 { margin: .18rem 0 .1rem; font-size: .92rem; line-height: 1.35; }
.product-list .product-detail { margin: .2rem 0 0; color: var(--muted); font-size: .78rem; line-height: 1.45; }
.product-list .product-check { margin: .3rem 0 0; color: #765943; font-size: .72rem; line-height: 1.4; }
.product-link {
  display: inline-flex;
  max-width: 165px;
  min-height: 42px;
  align-items: center;
  justify-content: center;
  padding: .55rem .7rem;
  border: 1px solid var(--wood);
  color: var(--charcoal);
  font-size: .76rem;
  font-weight: 750;
  line-height: 1.25;
  text-align: center;
  text-decoration: none;
}
.product-link:hover { background: var(--wood); color: #fff; }
.product-list-wide { margin-top: 1.4rem; }
.product-list-wide li { padding: 1.05rem .2rem; }
.product-list-wide h3 { font-family: var(--serif); font-size: 1.27rem; font-weight: 500; }
.product-list-wide .product-kind { font-size: .68rem; }
.product-list-wide .product-detail { max-width: 66ch; font-size: .9rem; }
.product-list-wide .product-check { font-size: .79rem; }
.small-print { max-width: 75ch; color: var(--muted); font-size: .77rem; }

.site-search {
  position: relative;
  max-width: 820px;
  margin: 0 0 clamp(3.2rem, 6vw, 5.5rem);
  padding: 1rem 1.1rem 1.1rem;
  border-top: 2px solid var(--wood);
  border-bottom: 1px solid var(--line);
  background: #e9e0d5;
}
.site-search label { display: block; margin: 0 0 .55rem; font-family: var(--serif); font-size: 1.23rem; }
.search-row { display: flex; align-items: stretch; gap: .6rem; }
.search-row input {
  flex: 1;
  width: 100%;
  min-width: 0;
  min-height: 46px;
  padding: .55rem .7rem;
  border: 1px solid #9a8777;
  border-radius: 0;
  background: var(--paper-light);
  color: var(--ink);
}
.search-row input::placeholder { color: #7d7066; }
.search-submit, .search-clear {
  min-height: 46px;
  padding: .55rem .85rem;
  border: 1px solid var(--wood);
  border-radius: 0;
  background: var(--wood);
  color: #fff;
  font-size: .83rem;
  font-weight: 700;
}
.search-clear { margin-top: .55rem; background: transparent; color: var(--wood); }
.search-scope-toggle { display: block; margin-top: .55rem; padding: .25rem 0; border: 0; background: transparent; color: var(--wood); font: inherit; text-decoration: underline; cursor: pointer; }
.search-scope-toggle:hover { color: var(--charcoal); }
.search-scope-toggle:focus-visible { outline: 3px solid var(--copper); outline-offset: 3px; }
.search-results { margin-top: .75rem; }
.search-results:empty { display: none; }
.search-results ul { margin: .35rem 0 0; padding: 0; list-style: none; }
.search-results li { padding: .65rem 0; border-top: 1px solid #d8cdc2; }
.search-results a { font-weight: 700; }
.search-results p { margin: .15rem 0 0; color: var(--muted); font-size: .84rem; }
.search-hint { margin: .55rem 0 0; color: var(--muted); font-size: .79rem; }

.home-illustration {
  display: grid;
  grid-template-columns: minmax(250px, .7fr) minmax(0, 1.3fr);
  align-items: center;
  gap: clamp(2rem, 5vw, 5.5rem);
  margin: 0 calc((min(100vw - 48px, 1320px) - 100vw) / 2);
  padding: clamp(2rem, 4vw, 3.5rem) max(24px, calc((100vw - 1320px) / 2));
  background: var(--stone-soft);
}
.illustration-copy { max-width: 420px; }
.illustration-copy h2, .section-heading h2, .family-strip h2 {
  margin: .55rem 0 .75rem;
  font-family: var(--serif);
  font-size: clamp(2rem, 3.3vw, 3.2rem);
  font-weight: 500;
  letter-spacing: -.045em;
  line-height: 1.08;
}
.illustration-copy p:last-child, .family-strip > p { color: #5f5147; }
.cabin-figure { margin: 0; }
.cabin-figure svg { width: 100%; min-height: 210px; border: 1px solid #a39486; }
.cabin-figure figcaption { margin-top: .45rem; color: var(--muted); font-size: .72rem; }

.guide-section { padding: clamp(3rem, 6vw, 5.5rem) 0; }
.section-heading { max-width: 680px; margin-bottom: 1.6rem; }
.guide-list { margin: 0; padding: 0; border-top: 1px solid var(--line-dark); list-style: none; }
.guide-list li {
  display: grid;
  grid-template-columns: 150px minmax(0, 1fr) 150px;
  align-items: baseline;
  gap: 1rem;
  padding: 1.25rem .2rem;
  border-bottom: 1px solid var(--line);
}
.guide-list h3 { margin: 0; font-family: var(--serif); font-size: clamp(1.3rem, 2vw, 1.7rem); font-weight: 500; line-height: 1.2; }
.guide-list h3 a { color: var(--ink); text-decoration: none; }
.guide-list h3 a:hover { color: var(--terracotta); text-decoration: underline; }
.guide-list p { margin: .35rem 0 0; max-width: 63ch; color: var(--muted); font-size: .9rem; }
.guide-kind { color: var(--terracotta); }
.guide-topic { text-align: right; letter-spacing: .08em; }
.family-strip {
  display: grid;
  grid-template-columns: minmax(230px, .72fr) minmax(0, 1.28fr);
  align-items: center;
  gap: 2.5rem;
  padding: 2.5rem clamp(1.1rem, 4vw, 3rem);
  margin-bottom: clamp(3rem, 6vw, 5rem);
  border-top: 1px solid var(--line-dark);
  border-bottom: 1px solid var(--line-dark);
}
.family-strip h2 { margin-bottom: 0; font-size: clamp(1.9rem, 3vw, 2.7rem); }
.family-strip > p { margin: 0; }

.article-header { max-width: 900px; padding: clamp(2.6rem, 5vw, 4.5rem) 0 1.2rem; }
.article-header .eyebrow { margin-bottom: .65rem; }
.article-header h1 {
  max-width: 20ch;
  margin: 0;
  font-family: var(--serif);
  font-size: clamp(2.45rem, 4.8vw, 4.45rem);
  font-weight: 500;
  letter-spacing: -.05em;
  line-height: 1.02;
}
.article-header .dek { max-width: 68ch; margin: 1rem 0 0; color: #5f5147; font-size: 1.1rem; }
.article-header .byline { margin: .8rem 0 0; color: var(--muted); font-size: .77rem; }
.article-header + .site-search { margin-top: .5rem; }
.article-body { width: min(calc(100% - 48px), var(--measure)); max-width: var(--measure); margin: 0 auto; padding-top: 1.5rem; padding-bottom: clamp(3rem, 6vw, 5rem); }
.article-body h2 {
  margin: 2.65rem 0 .75rem;
  font-family: var(--serif);
  font-size: clamp(1.7rem, 2.6vw, 2.3rem);
  font-weight: 500;
  letter-spacing: -.035em;
  line-height: 1.14;
}
.article-body h3 { margin: 0 0 .35rem; font-size: 1rem; line-height: 1.4; }
.article-body p { margin: .75rem 0; }
.article-body ul { padding-left: 1.25rem; }
.article-body li + li { margin-top: .55rem; }
.article-body > .answer-panel { margin: 0 0 1.6rem; }
.answer-panel, .editorial-note {
  padding: 1.2rem 1.35rem;
  border: 1px solid #a99a8e;
  background: var(--stone-soft);
}
.answer-panel > p:last-child, .editorial-note > p:last-child { margin-bottom: 0; }
.answer-panel > p:nth-child(2) { font-family: var(--serif); font-size: 1.2rem; line-height: 1.5; }
.editorial-note { margin: 2rem 0; border-color: var(--line); background: #faf6ef; }
.prominent-note { border-color: var(--terracotta); background: #f3e5d8; }
.table-wrap { width: 100%; margin: 1.15rem 0; overflow-x: auto; }
table { width: 100%; min-width: 620px; border-collapse: collapse; font-size: .88rem; line-height: 1.5; }
th, td { padding: .72rem .65rem; border-bottom: 1px solid var(--line); text-align: left; vertical-align: top; }
thead th { border-top: 1px solid var(--line-dark); color: var(--charcoal); font-size: .74rem; letter-spacing: .05em; text-transform: uppercase; }
tbody th { width: 18%; font-family: var(--serif); font-size: 1.05rem; font-weight: 600; }
.editorial-list { margin: 1rem 0; }
.question-list { margin: 1.25rem 0; border-top: 1px solid var(--line-dark); }
.question-list article { padding: 1.05rem 0; border-bottom: 1px solid var(--line); }
.question-list p { margin: .3rem 0 0; color: #5f5147; }
.cost-ledger { margin: 1rem 0; border-top: 1px solid var(--line-dark); }
.cost-ledger p { display: grid; grid-template-columns: 140px 1fr; gap: 1.2rem; margin: 0; padding: .75rem .2rem; border-bottom: 1px solid var(--line); }
.cost-ledger span { color: var(--terracotta); font-size: .72rem; font-weight: 750; letter-spacing: .09em; text-transform: uppercase; }
.cost-ledger strong { font-weight: 600; }
.checklist-panel { margin: 2rem 0; padding: 1.25rem 1.35rem; border: 1px solid var(--line-dark); background: var(--paper-light); }
.checklist-panel h2 { margin: 0 0 .5rem; font-size: 1.7rem; }
.checklist { margin: .8rem 0 0; padding-left: 1.2rem; }
.related-links { margin-top: 3rem; padding-top: 1rem; border-top: 2px solid var(--wood); }
.related-links h2 { margin-top: .5rem; }
.source-list { padding-left: 1.2rem; }
.small-print + h2 { margin-top: 2.5rem; }
.noscript-links { margin: 1rem 0 2rem; }
.search-page-results { margin-top: 1.5rem; }
.search-page-results:empty { display: none; }

.site-footer { background: var(--charcoal); color: #f3ece2; }
.footer-inner { width: min(100% - 48px, 1320px); margin: 0 auto; padding: 2.5rem 0 1.3rem; }
.footer-top { display: grid; grid-template-columns: minmax(240px, .9fr) 1.1fr; gap: 3rem; padding-bottom: 1.8rem; }
.footer-brand { color: #fff; font-family: var(--serif); font-size: 1.65rem; letter-spacing: -.03em; text-decoration: none; }
.footer-intro { max-width: 42ch; margin: .55rem 0; color: #e3d8cd; font-size: .87rem; }
.footer-links { display: grid; grid-template-columns: repeat(2, minmax(130px, 1fr)); gap: .5rem 2rem; align-content: start; }
.footer-links a { color: #f3ece2; font-size: .82rem; text-decoration-color: #b7a08e; }
.footer-disclosure { max-width: 90ch; margin: 0; padding: 1rem 0; border-top: 1px solid #726359; color: #e3d8cd; font-size: .78rem; }
.footer-meta { display: flex; justify-content: space-between; gap: 1rem; padding-top: 1rem; border-top: 1px solid #726359; color: #dbd0c4; font-size: .72rem; }

@media (max-width: 900px) {
  .desktop-nav { display: none; }
  .mobile-nav { display: block; }
  .home-hero { grid-template-columns: minmax(0, 1fr) minmax(305px, .9fr); gap: 1.5rem; }
  .product-glance { padding: 1.1rem; }
  .product-list li { grid-template-columns: 1fr; gap: .45rem; }
  .product-link { justify-self: start; max-width: none; min-height: 38px; }
  .home-illustration { margin-right: calc((100vw - min(100vw - 48px, 1320px)) / -2); margin-left: calc((100vw - min(100vw - 48px, 1320px)) / -2); padding-right: 24px; padding-left: 24px; }
}
@media (max-width: 680px) {
  body { font-size: 15.5px; }
  .header-inner, .page-shell, .footer-inner { width: min(100% - 32px, 1320px); }
  .header-inner { min-height: 66px; }
  .desktop-nav { display: none; }
  .mobile-nav { display: block; }
  .preview-bar { font-size: .65rem; }
  .wordmark strong { font-size: 1.33rem; }
  .wordmark-mark { width: 38px; height: 38px; }
  .home-hero { grid-template-columns: 1fr; gap: 1.35rem; padding: 2.45rem 0 1.8rem; }
  .hero-copy { padding-bottom: 0; }
  .hero-copy h1 { max-width: 16ch; font-size: clamp(2.55rem, 12vw, 3.65rem); }
  .lead { font-size: 1rem; }
  .product-glance { padding: 1rem 1rem .9rem; }
  .product-list li { grid-template-columns: minmax(0, 1fr) auto; gap: .6rem; }
  .product-link { max-width: 132px; padding: .45rem .55rem; font-size: .7rem; }
  .site-search { margin-bottom: 2.6rem; padding: .85rem .8rem 1rem; }
  .search-row { flex-wrap: wrap; }
  .search-row input { flex-basis: 100%; }
  .search-submit { flex: 1; }
  .search-clear { flex: 0 0 auto; }
  .home-illustration { grid-template-columns: 1fr; gap: 1.25rem; margin-right: -16px; margin-left: -16px; padding: 2rem 16px; }
  .illustration-copy h2, .section-heading h2 { font-size: 2.2rem; }
  .cabin-figure svg { min-height: 0; }
  .guide-section { padding: 2.8rem 0; }
  .guide-list li { grid-template-columns: 1fr; gap: .28rem; padding: 1rem 0; }
  .guide-topic { text-align: left; }
  .family-strip { grid-template-columns: 1fr; gap: .6rem; margin: 0 -16px 2.6rem; padding: 1.7rem 16px; }
  .family-strip h2 { font-size: 2rem; }
  .article-header { padding: 2.25rem 0 1rem; }
  .article-header h1 { font-size: clamp(2.35rem, 10vw, 3.25rem); }
  .article-header .dek { font-size: 1rem; }
  .article-body h2 { margin-top: 2.1rem; font-size: 1.8rem; }
  .article-body { width: calc(100% - 32px); }
  .answer-panel, .editorial-note, .checklist-panel { padding: 1rem; }
  .product-list-wide li { grid-template-columns: 1fr; }
  .product-list-wide .product-link { max-width: 230px; }
  .cost-ledger p { grid-template-columns: 1fr; gap: .15rem; }
  .footer-top { grid-template-columns: 1fr; gap: 1.4rem; }
  .footer-links { gap: .65rem 1rem; }
  .footer-meta { flex-direction: column; gap: .3rem; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { transition-duration: .01ms !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; }
}

/* Ajustements hérités de l’ancienne DA ; les overrides magazine ci-dessous prévalent. */
body { overflow-x: clip; }
.home-hero {
  position: relative;
  display: block;
  padding: 0;
  border-bottom: 1px solid var(--line-dark);
  background: linear-gradient(108deg, var(--paper) 0%, var(--paper) 55%, var(--stone-soft) 55%, var(--stone-soft) 100%);
}
.home-hero-inner {
  width: min(100% - 48px, 1320px);
  min-height: 510px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: minmax(0, 1.08fr) minmax(350px, .92fr);
  align-items: center;
  gap: clamp(2.5rem, 6vw, 6rem);
  padding: clamp(3.3rem, 6vw, 5.4rem) 0 3.6rem;
}
.hero-copy { max-width: 700px; align-self: center; padding: 0; }
.hero-copy .eyebrow { color: #70513f; }
.hero-copy h1 {
  max-width: 16ch;
  margin: .75rem 0 1.1rem;
  font-size: clamp(3rem, 5.15vw, 4.8rem);
  line-height: 1.01;
  letter-spacing: -.06em;
}
.hero-copy .lead { max-width: 55ch; }
.hero-copy .button { margin-top: .75rem; }
.market-note { max-width: 48ch; }
.project-sheet {
  position: relative;
  padding: clamp(1.2rem, 2.3vw, 1.8rem);
  border: 1px solid #9a8777;
  background: var(--paper-light);
  box-shadow: 10px 10px 0 #d3c1b0;
}
.sheet-heading { padding-bottom: 1.15rem; border-bottom: 1px solid var(--line); }
.sheet-index {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin: 0 0 .8rem;
  color: #77685d;
  font-size: .7rem;
  font-weight: 750;
  letter-spacing: .13em;
  text-transform: uppercase;
}
.sheet-index span { color: var(--terracotta); font-family: var(--serif); font-size: 1.25rem; font-weight: 500; letter-spacing: 0; }
.sheet-heading h2 {
  max-width: 18ch;
  margin: 0;
  font-family: var(--serif);
  font-size: clamp(1.65rem, 2.4vw, 2.15rem);
  font-weight: 500;
  letter-spacing: -.04em;
  line-height: 1.08;
}
.sheet-checklist { margin: 0; padding: 0; list-style: none; counter-reset: none; }
.sheet-checklist li {
  display: grid;
  grid-template-columns: 2.35rem minmax(0, 1fr);
  gap: .8rem;
  align-items: start;
  padding: 1rem 0 .85rem;
  border-bottom: 1px solid #e1d6cb;
}
.sheet-number { padding-top: .1rem; color: var(--terracotta); font-family: var(--serif); font-size: 1.2rem; line-height: 1.2; }
.sheet-checklist strong { display: block; font-family: var(--serif); font-size: 1.12rem; font-weight: 600; line-height: 1.3; }
.sheet-checklist p { margin: .12rem 0 0; color: var(--muted); font-size: .84rem; line-height: 1.45; }
.sheet-footnote { margin: .9rem 0 0; color: #76665c; font-size: .72rem; line-height: 1.45; }
.hero-signature {
  width: min(100% - 48px, 1320px);
  margin: 0 auto;
  display: flex;
  gap: clamp(1.4rem, 4vw, 3.5rem);
  padding: .65rem 0 .8rem;
  border-top: 1px solid #d7c9bc;
  color: #75675d;
  font-size: .64rem;
  font-weight: 750;
  letter-spacing: .13em;
  text-transform: uppercase;
}
.hero-signature span + span::before { content: "/"; margin-right: clamp(1.4rem, 4vw, 3.5rem); color: var(--terracotta); }
.home-search { padding-top: 2rem; }
.home-search .site-search { margin-bottom: 0; }
.decision-section {
  display: grid;
  grid-template-columns: minmax(220px, .72fr) minmax(0, 1.28fr);
  align-items: start;
  gap: clamp(2rem, 6vw, 6rem);
  margin-top: clamp(4rem, 8vw, 7rem);
  padding-top: 1.15rem;
  border-top: 2px solid var(--wood);
}
.decision-heading { max-width: 480px; }
.decision-heading h2, .amazon-heading h2 {
  margin: .55rem 0 .8rem;
  font-family: var(--serif);
  font-size: clamp(2rem, 3.5vw, 3.25rem);
  font-weight: 500;
  letter-spacing: -.05em;
  line-height: 1.04;
}
.decision-heading > p:last-child, .amazon-heading > p:last-child { max-width: 54ch; margin: 0; color: #5f5147; }
.decision-list { margin: 0; padding: 0; list-style: none; }
.decision-list li {
  display: grid;
  grid-template-columns: 4.2rem minmax(0, 1fr);
  gap: 1rem;
  padding: .9rem 0 1.1rem;
  border-bottom: 1px solid var(--line);
}
.decision-number { color: var(--terracotta); font-family: var(--serif); font-size: 2.2rem; line-height: 1.05; }
.decision-list h3 { margin: 0; font-family: var(--serif); font-size: 1.35rem; font-weight: 600; line-height: 1.2; }
.decision-list p { max-width: 58ch; margin: .25rem 0 0; color: var(--muted); font-size: .9rem; }
.guide-section { padding-top: clamp(4rem, 8vw, 7rem); }
.guide-section .section-heading { max-width: 760px; }
.guide-section .section-heading h2 { max-width: 18ch; font-size: clamp(2.25rem, 4vw, 3.7rem); }
.guide-list li { grid-template-columns: 135px minmax(0, 1fr) 155px; padding: 1.35rem .2rem; }
.guide-list h3 { letter-spacing: -.02em; }
.amazon-spotlight { margin-top: clamp(3rem, 6vw, 5.5rem); padding: clamp(2.8rem, 5.5vw, 5rem) 0; background: var(--stone-soft); }
.amazon-heading { max-width: 770px; }
.amazon-heading h2 { max-width: 16ch; }
.amazon-spotlight .product-list { margin-top: 1.6rem; border-top: 1px solid #9b897a; }
.amazon-spotlight .product-list li { padding: 1rem .15rem; border-bottom: 1px solid #d7c9bc; }
.amazon-spotlight .product-list h3 { font-family: var(--serif); font-size: 1.28rem; font-weight: 500; letter-spacing: -.02em; }
.amazon-spotlight .product-list .product-detail { max-width: 73ch; font-size: .86rem; }
.amazon-spotlight .product-list .product-check { max-width: 73ch; }
.amazon-spotlight .product-link {
  justify-self: end;
  max-width: none;
  min-height: 0;
  padding: .28rem 0;
  border: 0;
  border-bottom: 1px solid currentColor;
  font-size: .8rem;
  text-align: left;
}
.amazon-spotlight .product-link:hover { background: transparent; color: var(--terracotta); }
.amazon-spotlight .affiliate-note-standalone { max-width: none; margin-top: 1rem; padding: 1rem 0; border-color: #aeb9ae; }
.amazon-spotlight .market-note { margin-top: .75rem; }
.family-strip { margin-top: clamp(3rem, 6vw, 5rem); }
.article-header {
  max-width: 960px;
  padding-left: clamp(1rem, 2.5vw, 1.8rem);
  border-left: 3px solid var(--terracotta);
}
.article-header h1 { max-width: 19ch; }
.article-header .dek { max-width: 65ch; }
.answer-panel { border-width: 0 0 0 3px; border-color: var(--wood); background: var(--stone-soft); }
.editorial-note, .checklist-panel { border-radius: 0; box-shadow: none; }

@media (max-width: 900px) {
  .home-hero-inner { grid-template-columns: minmax(0, 1fr) minmax(285px, .88fr); gap: 2rem; }
  .hero-copy h1 { font-size: clamp(2.8rem, 5.7vw, 4.3rem); }
  .decision-section { grid-template-columns: minmax(180px, .7fr) minmax(0, 1.3fr); gap: 2rem; }
}
@media (max-width: 680px) {
  .home-hero { background: linear-gradient(180deg, var(--paper) 0%, var(--paper) 56%, var(--stone-soft) 56%, var(--stone-soft) 100%); }
  .home-hero-inner { width: min(100% - 32px, 1320px); min-height: 0; grid-template-columns: 1fr; gap: 1.8rem; padding: 2.4rem 0 2rem; }
  .hero-copy h1 { max-width: 15ch; margin-top: .6rem; font-size: clamp(2.6rem, 10.5vw, 3.5rem); }
  .hero-copy .lead { font-size: 1rem; }
  .project-sheet { margin: 0 .55rem .55rem 0; padding: 1.1rem; box-shadow: 7px 7px 0 #d3c1b0; }
  .hero-signature { width: min(100% - 32px, 1320px); gap: .85rem; font-size: .57rem; letter-spacing: .09em; }
  .hero-signature span + span::before { margin-right: .85rem; }
  .home-search { padding-top: 1.4rem; }
  .decision-section { grid-template-columns: 1fr; gap: 1.2rem; margin-top: 3.4rem; }
  .decision-heading h2 { max-width: 15ch; }
  .decision-list li { grid-template-columns: 3rem minmax(0, 1fr); gap: .65rem; }
  .decision-number { font-size: 1.8rem; }
  .guide-section { padding: 3.8rem 0 2.2rem; }
  .guide-list li { grid-template-columns: 1fr; gap: .28rem; }
  .amazon-spotlight { margin-top: 2.8rem; padding: 2.7rem 0; }
  .amazon-spotlight .product-list li { grid-template-columns: 1fr; gap: .45rem; }
  .amazon-spotlight .product-link { justify-self: start; }
  .family-strip { margin-top: 2.8rem; }
  .article-header { padding-left: 1rem; }
}
@media print {
  .preview-bar, .site-header, .site-search, .site-footer, .button, .product-link { display: none !important; }
  body { background: #fff; color: #111; }
  .page-shell { width: 100%; }
  .article-body { max-width: none; }
  a { color: inherit; }
}

/* Quel Sauna — magazine d’architecture thermique */
:root {
  color-scheme: light;
  --paper: #f3ece2;
  --paper-light: #fcf8f2;
  --stone-soft: #e5dcd1;
  --wood: #704f38;
  --charcoal: #302720;
  --ink: #302720;
  --muted: #74665d;
  --line: #d5cabe;
  --line-dark: #968578;
  --terracotta: #c77946;
  --serif: Bahnschrift, 'Arial Narrow', 'Franklin Gothic Medium', sans-serif;
  --sans: 'Plus Jakarta Sans', 'Aptos', 'Segoe UI', sans-serif;
}

body { background: var(--paper); color: var(--ink); }
.preview-bar {
  background: #221b17;
  color: #e1d7ce;
  border-bottom: 1px solid #50443b;
  font-size: .66rem;
  letter-spacing: .16em;
}
.site-header { background: #f3ece2; border-bottom: 1px solid #d3c1b0; }
.header-inner { min-height: 76px; }
.wordmark { color: #302720; }
.wordmark strong { font-family: var(--serif); font-size: 1.65rem; font-weight: 800; letter-spacing: -.04em; }
.wordmark span { color: #74665d; font-size: .58rem; letter-spacing: .18em; }
.desktop-nav a, .mobile-nav summary { color: #4a3d33; }
.desktop-nav a { font-size: .78rem; letter-spacing: .035em; }
.desktop-nav a[aria-current='page'] { color: #d88956; text-decoration-color: #d88956; }
.mobile-nav summary { border-color: #9a8878; }
.mobile-menu { border-color: #968578; background: #f8f1e9; }
.mobile-menu a { color: #302720; }
.mobile-menu a + a { border-color: #d7c9bc; }

.wordmark {
  flex-direction: row;
  align-items: center;
  gap: .72rem;
}
.wordmark-mark { width: 44px; height: 44px; flex: none; }
.wordmark > .wordmark-copy {
  display: flex;
  flex-direction: column;
  gap: .28rem;
  margin: 0;
}
.wordmark-copy > span { margin: 0; }

.home-hero {
  display: block;
  padding: clamp(1rem, 2.2vw, 2rem) 0 clamp(2.5rem, 5vw, 4rem);
  border: 0;
  background: var(--paper);
}
.home-hero-inner, .hero-signature { display: none; }
.hero-frame {
  position: relative;
  isolation: isolate;
  width: min(100% - 48px, 1320px);
  aspect-ratio: 16 / 9;
  margin: 0 auto;
  overflow: hidden;
  background: #29231f;
  color: #fcf8f2;
}
.hero-frame img {
  position: absolute;
  z-index: -2;
  inset: 0;
  width: 100%;
  height: 100%;
  max-width: none;
  object-fit: cover;
  object-position: center 52%;
}
.hero-shade {
  position: absolute;
  z-index: -1;
  inset: 0;
  background: linear-gradient(90deg, rgba(18, 15, 13, .86) 0%, rgba(18, 15, 13, .67) 34%, rgba(18, 15, 13, .18) 67%, rgba(18, 15, 13, .03) 100%), linear-gradient(0deg, rgba(18, 15, 13, .48), transparent 36%);
}
.hero-copy {
  position: absolute;
  left: clamp(1.5rem, 5.2vw, 5rem);
  bottom: clamp(3.3rem, 7.2vw, 6.2rem);
  width: min(55%, 670px);
  max-width: none;
  padding: 0;
  color: #fcf8f2;
}
.hero-copy .eyebrow, .eyebrow, .section-label, .guide-kind, .guide-topic, .product-kind {
  color: #a65e34;
  font-size: .67rem;
  font-weight: 800;
  letter-spacing: .16em;
}
.hero-copy .eyebrow { color: #e8b487; }
.hero-copy h1 {
  max-width: 13ch;
  margin: .85rem 0 1rem;
  font-family: var(--serif);
  font-size: clamp(3rem, 6.7vw, 6.3rem);
  font-weight: 800;
  letter-spacing: -.045em;
  line-height: .92;
  text-wrap: balance;
}
.hero-copy .lead { max-width: 55ch; margin: 0; color: #e3d8cd; font-size: clamp(.96rem, 1.18vw, 1.13rem); line-height: 1.55; }
.hero-copy .button {
  min-height: 48px;
  margin-top: 1.35rem;
  padding: .8rem 1.05rem;
  border: 1px solid #d8935f;
  background: #c77946;
  color: #302720;
  font-weight: 800;
}
.hero-copy .button:hover { background: #e09a66; color: #302720; }
.hero-copy .market-note { margin: .9rem 0 0; color: #e1d7ce; font-size: .7rem; letter-spacing: .04em; }
.hero-caption {
  position: absolute;
  right: 1rem;
  bottom: .85rem;
  max-width: 42%;
  padding: .28rem .5rem;
  background: rgba(18, 15, 13, .48);
  color: #eee6dc;
  font-size: .64rem;
  letter-spacing: .035em;
  text-align: right;
}

.home-search { padding-top: 0; }
.site-search {
  margin-bottom: 0;
  padding: 1.05rem 1.15rem 1rem;
  border: 1px solid var(--line);
  background: var(--paper-light);
  box-shadow: 0 12px 26px rgba(61, 43, 32, .055);
}
.site-search label { color: var(--charcoal); font-family: var(--serif); font-size: 1.15rem; font-weight: 800; }
.search-row input { border-color: #c8b9ab; background: white; }
.search-submit { border-color: var(--charcoal); background: var(--charcoal); color: #f6f4ed; }
.search-clear { border-color: var(--line-dark); color: var(--charcoal); }
.search-hint { color: var(--muted); }

.decision-section {
  grid-template-columns: minmax(250px, .8fr) minmax(0, 1.2fr);
  gap: clamp(2.5rem, 6vw, 6rem);
  border-top: 2px solid var(--charcoal);
}
.decision-heading h2, .amazon-heading h2, .section-heading h2, .family-strip h2 {
  font-family: var(--serif);
  font-weight: 800;
  letter-spacing: -.04em;
}
.decision-heading h2, .amazon-heading h2 { color: var(--charcoal); }
.decision-heading > p:last-child, .amazon-heading > p:last-child { color: #625349; }
.decision-list li { border-color: var(--line); }
.decision-number { color: #b86737; font-family: var(--sans); font-size: 1.3rem; font-weight: 800; }
.decision-list h3 { font-family: var(--serif); font-weight: 800; }
.decision-list p { color: var(--muted); }
.guide-section .section-heading { border-bottom: 1px solid var(--line); padding-bottom: 1rem; }
.guide-list { border-top: 1px solid var(--line-dark); }
.guide-list li { border-color: var(--line); }
.guide-list h3 { font-family: var(--serif); font-size: 1.4rem; font-weight: 800; }
.guide-kind, .guide-topic { color: #81512f; }

.amazon-spotlight {
  background: var(--charcoal);
  color: #f4ede3;
}
.amazon-spotlight .eyebrow { color: #d88956; }
.amazon-heading h2 { color: #f4ede3; }
.amazon-heading > p:last-child { color: #ddd3c8; }
.amazon-spotlight .product-list { border-color: #68584d; }
.amazon-spotlight .product-list li { border-color: #68584d; }
.amazon-spotlight .product-kind { color: #d88956; }
.amazon-spotlight .product-list h3 { color: #f4ede3; font-family: var(--serif); font-weight: 800; }
.amazon-spotlight .product-list .product-detail, .amazon-spotlight .product-list .product-check { color: #ddd3c8; }
.amazon-spotlight .product-link { color: #f0b582; }
.amazon-spotlight .product-link:hover { color: #fff; }
.amazon-spotlight .affiliate-note-standalone { border-color: #68584d; color: #e1d7ce; }
.amazon-spotlight .affiliate-note a, .amazon-spotlight .market-note a { color: #f0b582; }
.family-strip { border-top: 1px solid var(--line-dark); border-bottom: 1px solid var(--line-dark); }
.family-strip .eyebrow { color: #a65e34; }
.family-strip h2 { color: var(--charcoal); }
.family-strip > p { color: #625349; }

.article-header {
  width: 100%;
  max-width: none;
  margin: 0;
  padding: clamp(2.8rem, 6vw, 5.2rem) max(24px, calc((100vw - 1320px) / 2)) clamp(2.6rem, 5vw, 4.2rem);
  border: 0;
  background: var(--charcoal);
  color: #f4ede3;
}
.article-header .eyebrow { color: #d88956; }
.article-header h1 { max-width: 19ch; color: #f4ede3; font-family: var(--serif); font-weight: 800; }
.article-header .dek { max-width: 65ch; color: #e0d6cb; }
.page-shell:has(> .site-search) { padding-top: 1.4rem; }
.article-body h2, .article-body h3 { font-family: var(--serif); font-weight: 800; }
.answer-panel { border-color: var(--terracotta); background: var(--stone-soft); }
.editorial-note, .checklist-panel { background: var(--paper-light); }
.site-footer { background: #221b17; }
.footer-brand { font-family: var(--serif); font-weight: 800; }

@media (max-width: 900px) {
  .hero-copy { bottom: 3.6rem; width: 64%; }
  .hero-copy h1 { font-size: clamp(2.8rem, 6vw, 4.7rem); }
  .decision-section { grid-template-columns: minmax(180px, .7fr) minmax(0, 1.3fr); }
}
@media (max-width: 680px) {
  .hero-frame { width: min(100% - 32px, 1320px); aspect-ratio: auto; overflow: visible; }
  .hero-frame img { position: relative; z-index: 0; inset: auto; width: 100%; height: auto; aspect-ratio: 16 / 9; object-position: center 52%; }
  .hero-shade { display: none; }
  .hero-copy { position: static; width: auto; padding: 1.45rem 1.15rem 1.35rem; background: var(--charcoal); }
  .hero-copy h1 { max-width: 13ch; margin: .65rem 0 .8rem; font-size: clamp(2.55rem, 10.5vw, 4rem); }
  .hero-copy .lead { max-width: 52ch; font-size: .98rem; }
  .hero-copy .button { margin-top: 1rem; }
  .hero-caption { position: static; max-width: none; padding: .5rem .7rem; background: var(--charcoal); color: #e1d7ce; font-size: .62rem; text-align: left; }
  .home-search { padding-top: 1.35rem; }
  .decision-section { grid-template-columns: 1fr; gap: 1.2rem; }
  .article-header { padding: 2.4rem 16px 2.2rem; }
  .page-shell:has(> .site-search) { padding-top: 1rem; }
}
@media print {
  .hero-shade { display: none; }
  .hero-copy { position: static; width: auto; padding: 1rem; background: var(--charcoal); }
  .hero-frame { aspect-ratio: auto; }
  .hero-frame img { position: static; height: auto; }
}

/* Le guide hammam emprunte la matière d'une vitre embuée, sans ralentir la lecture. */
.article-header-hammam {
  display: grid;
  grid-template-columns: minmax(0, .76fr) minmax(0, 1.24fr);
  align-items: center;
  gap: clamp(2rem, 5vw, 5.25rem);
}
.article-header-hammam .article-header-copy { max-width: 34rem; }
.article-header-hammam h1 {
  max-width: 12ch;
  font-family: Bahnschrift, 'Arial Narrow', 'Franklin Gothic Medium', sans-serif;
  font-size: clamp(3rem, 4.2vw, 4.65rem);
  font-weight: 700;
  letter-spacing: -.065em;
  line-height: .98;
}
.article-header-hammam .dek { max-width: 48ch; }
.fog-scene { min-width: 0; margin: 0; }
.fog-viewport {
  position: relative;
  aspect-ratio: 16 / 9;
  overflow: hidden;
  isolation: isolate;
  border: 1px solid rgba(231, 219, 205, .52);
  background: #2b2420;
}
.fog-viewport img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.fog-layer {
  position: absolute;
  z-index: 1;
  inset: 0;
  display: block;
  width: 100%;
  height: 100%;
  cursor: crosshair;
  touch-action: pan-y;
  user-select: none;
}
.fog-toggle {
  position: absolute;
  z-index: 2;
  right: .8rem;
  bottom: .8rem;
  display: inline-flex;
  min-height: 44px;
  align-items: center;
  justify-content: center;
  padding: .58rem .9rem;
  border: 1px solid rgba(255, 255, 255, .65);
  background: rgba(242, 239, 230, .96);
  color: #302720;
  font-size: .82rem;
  font-weight: 700;
  line-height: 1.2;
}
.fog-toggle:hover { background: #fff; color: #302720; }
.fog-toggle[hidden] { display: none; }
.fog-scene figcaption {
  max-width: 76ch;
  margin-top: .62rem;
  color: #e0d6cb;
  font-size: .74rem;
  line-height: 1.5;
}
.fog-status {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  clip-path: inset(50%);
  white-space: nowrap;
}
.hammam-search-shell { padding-top: 1.35rem; }

@media (max-width: 900px) {
  .article-header-hammam { grid-template-columns: 1fr; gap: 1.8rem; }
  .article-header-hammam .article-header-copy { max-width: 45rem; }
  .article-header-hammam h1 { max-width: 15ch; font-size: clamp(3rem, 7.5vw, 4.4rem); }
  .fog-scene { width: min(100%, 900px); }
}

@media (max-width: 680px) {
  .article-header-hammam { gap: 1.35rem; padding: 2.25rem 16px 1.9rem; }
  .article-header-hammam h1 { max-width: 12ch; font-size: clamp(2.7rem, 11vw, 3.45rem); }
  .article-header-hammam .dek { margin-top: .75rem; font-size: .98rem; }
  .fog-toggle { right: .5rem; bottom: .5rem; min-height: 44px; padding: .52rem .72rem; font-size: .76rem; }
  .fog-scene figcaption { margin-top: .5rem; font-size: .68rem; }
  .hammam-search-shell { padding-top: .95rem; }
}


/* 16 octobre — atelier de choix : pierre claire, cadres de bois, cuivre en relief. */
[hidden] { display: none !important; }
.home-hero { padding: 0; background: #211e1b; }
.hero-frame { width:100%; height:clamp(400px,38vw,545px); aspect-ratio:auto; margin:0; overflow:hidden; }
.hero-frame img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:65% 54%; }
.hero-shade { display:block; background:linear-gradient(90deg,rgba(20,18,16,.94),rgba(20,18,16,.66) 40%,rgba(20,18,16,.06) 75%),linear-gradient(0deg,rgba(20,18,16,.45),transparent 38%); }
.hero-copy { position:absolute; left:max(24px,calc((100vw - 1240px)/2)); bottom:3.3rem; width:min(52%,630px); padding:0; background:transparent; }
.hero-copy h1 { font-size:clamp(3.1rem,4.8vw,4.8rem); max-width:16ch; line-height:1; margin:.7rem 0 1rem; }
.hero-copy .lead { max-width:49ch; font-size:1rem; }
.hero-caption { right:24px; bottom:.6rem; font-size:.63rem; color:#f4e8db; background:rgba(20,18,16,.7); }
.button, .hero-copy .button, .product-link, .search-submit { border-radius:4px; border:1px solid #8f4b28; border-top-color:#ecae7f; background:#c77946; color:#241b16; box-shadow:inset 0 1px 0 #edb68f,0 3px 0 #814a2d,0 6px 13px #3027201c; text-decoration:none; font-weight:750; min-height:46px; transition:transform 180ms ease,background-color 180ms ease,box-shadow 180ms ease; }
.button:hover, .hero-copy .button:hover, .product-link:hover, .search-submit:hover { background:#dfa06c; color:#241b16; transform:translateY(-2px); box-shadow:inset 0 1px 0 #f2c8a8,0 4px 0 #814a2d,0 9px 18px #30272024; }
.button:active, .product-link:active, .search-submit:active { transform:translateY(2px); box-shadow:inset 0 1px 2px #6c3d2333,0 1px 0 #814a2d; }
.button-secondary { background:#faf3ea; border-color:#bca895; border-top-color:#fff; box-shadow:inset 0 1px 0 #fff,0 3px 0 #c6b5a2,0 6px 12px #30272014; }
.button-secondary:hover { background:#fffaf4; box-shadow:inset 0 1px 0 #fff,0 4px 0 #c6b5a2,0 8px 15px #3027201a; }
.home-search { padding-top:1.1rem; padding-bottom:1.15rem; border-bottom:1px solid var(--line); }
.home-search .site-search { display:grid; grid-template-columns:1fr auto; align-items:end; gap:0 2rem; padding:0; border:0; background:transparent; box-shadow:none; }
.home-search .site-search label { font-size:.78rem; }
.home-search .search-hint { margin:0 0 .6rem; font-size:.73rem; }
.home-search .search-results { grid-column:1/-1; }
.home-search .search-results:empty { display:none; }
.search-row input, .energy-fields input { border-radius:4px; border:1px solid #b8a591; background:#fffaf4; box-shadow:inset 0 2px 4px #30272012; min-height:46px; }
.choice-workshop { padding-top:2.5rem; padding-bottom:3.75rem; }
.workshop-heading { display:flex; align-items:end; justify-content:space-between; gap:2rem; margin-bottom:1.5rem; }
.workshop-heading h2 { margin:.25rem 0 0; max-width:25ch; font:750 clamp(1.9rem,3.3vw,3rem)/1.1 var(--serif); letter-spacing:-.035em; }
.workshop-heading > p { max-width:43ch; margin:0; font-size:.9rem; color:#65584d; }
.choice-controls fieldset { display:flex; flex-wrap:wrap; gap:.65rem; margin:0; padding:0; border:0; }
.choice-controls legend { position:absolute; width:1px; height:1px; clip-path:inset(50%); overflow:hidden; }
.choice-controls label { position:relative; cursor:pointer; }
.choice-controls input { position:absolute; width:1px; height:1px; opacity:0; }
.choice-controls span { display:flex; align-items:center; min-height:46px; padding:.55rem 1.1rem; border:1px solid #c2ae99; border-radius:4px; background:#fcf8f1; box-shadow:inset 0 1px 0 #fff,0 2px 0 #d1c3b5; font-size:.86rem; font-weight:700; transition:background 180ms ease,box-shadow 180ms ease; }
.choice-controls input:checked + span { background:#352b24; color:#fff3e4; border-color:#352b24; box-shadow:inset 0 2px 2px #16100b,0 2px 0 #b3774c; }
.choice-controls input:focus-visible + span { outline:3px solid #a15c31; outline-offset:4px; }
.choice-controls label:hover span { border-color:#885b3d; }
.choice-advice { display:flex; align-items:center; justify-content:space-between; gap:1.5rem; margin:1.25rem 0; padding:1.2rem 1.5rem; background:#e8dfd3; border:1px solid #c6b6a4; border-left:4px solid #a5643b; box-shadow:inset 0 1px 0 #fff6ec,0 5px 12px #3027200b; }
.choice-advice .section-label { margin:0 0 .3rem; }
.choice-advice h3 { margin:0 0 .35rem; font:700 1.25rem/1.25 var(--serif); }
.choice-advice p:last-child { margin:0; max-width:85ch; font-size:.87rem; }
.choice-advice a { flex-shrink:0; font-size:.82rem; padding:.6rem .9rem; text-align:center; }
.selection-disclosure, .selection-foot { font-size:.76rem; color:#67584c; line-height:1.6; }
.selection-disclosure { max-width:105ch; margin:1rem 0 1.35rem; }
.product-list, .product-list-wide { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1.2rem; list-style:none; margin:0; padding:0; border:0; }
.product-list li { position:relative; display:flex; flex-direction:column; justify-content:space-between; align-items:stretch; gap:1.3rem; padding:1.65rem 1.4rem 1.5rem; border:1px solid #c5b19b; border-top:4px solid #895b3e; border-radius:3px; background:#fffaf3; color:#302720; box-shadow:inset 0 1px 0 #fff,4px 5px 0 #ded1c0,8px 13px 23px #30272012; transition:transform 220ms ease,box-shadow 220ms ease,border-color 220ms ease; }
.product-list li:hover { transform:translateY(-4px); border-color:#a16d48; box-shadow:inset 0 1px 0 #fff,4px 8px 0 #dac7b1,8px 18px 28px #3027201a; }
.product-list .product-kind { margin:0 0 1.1rem; color:#86502e; font-size:.63rem; letter-spacing:.12em; }
.product-brand { margin:0 0 .35rem; font-size:.74rem; color:#6c5b4e; font-weight:650; }
.product-list h3 { margin:0 0 .8rem; font:700 clamp(1.35rem,1.8vw,1.7rem)/1.17 var(--serif); letter-spacing:-.025em; }
.product-reference { margin:0 0 .85rem; font-size:.77rem; color:#736052; }
.product-use { margin:0; font-size:.88rem; line-height:1.65; }
.product-evidence { margin-top:1.2rem; border-top:1px solid #dfd1c0; padding-top:.65rem; }
.product-evidence summary { cursor:pointer; min-height:36px; font-size:.77rem; font-weight:700; color:#725039; }
.product-list .product-detail, .product-list .product-check { font-size:.8rem; line-height:1.65; color:#625348; }
.product-list .product-link { display:flex; align-items:center; justify-content:center; align-self:stretch; width:auto; padding:.65rem .55rem; font-size:.8rem; text-align:center; }
.article-body:has(.product-list-wide) { max-width:1100px; }
.product-list-wide { grid-template-columns:repeat(2,minmax(0,1fr)); }
.energy-feature { padding:3.5rem 0; background:#302720; color:#f8efe3; border-top:1px solid #856247; border-bottom:1px solid #5d4534; box-shadow:inset 0 10px 24px #16100a55; }
.energy-feature-inner { display:grid; grid-template-columns:1fr 1fr; gap:5rem; align-items:center; }
.energy-feature h2 { max-width:16ch; margin:.5rem 0 0; font:700 clamp(2.5rem,4.2vw,4rem)/1.06 var(--serif); letter-spacing:-.035em; color:#fff3e3; }
.energy-feature .eyebrow { color:#e6a675; }
.energy-feature p { color:#e2d3c3; }
.energy-feature .feature-caption { max-width:48ch; font-size:.73rem; margin-top:1.2rem; }
.guide-list li { transition:background-color 180ms ease; padding-left:.6rem; padding-right:.6rem; }
.guide-list li:hover { background:#e8ded0; }
.guide-list h3 a:hover { color:#92522f; }
.editorial-signoff { margin:0 auto 4rem; padding:2rem 0 0; border-top:1px solid #b9a28b; max-width:880px; }
.editorial-signoff h2 { font:700 2rem/1.1 var(--serif); }
.editorial-signoff p { max-width:72ch; }
.article-toc, .editorial-note, .checklist-panel { border:1px solid #ccbaa6; border-top:3px solid #9b6a47; box-shadow:3px 4px 0 #e0d2c1; }
.article-header:not(.article-header-hammam) { box-shadow:inset 0 -8px 18px #16100a2e; border-bottom:4px solid #886044; }
.energy-calculator { margin:2.5rem 0; padding:1.5rem; background:#e9dfd1; border:1px solid #baa186; border-top:4px solid #9c623c; box-shadow:5px 6px 0 #d9c7b1; }
.energy-calculator h2 { margin:0 0 .7rem; }
.energy-fields { display:grid; grid-template-columns:1fr 1fr; gap:1rem; margin:1.2rem 0; }
.energy-fields label { display:flex; flex-direction:column; gap:.35rem; font-size:.8rem; font-weight:700; }
.energy-fields input { width:100%; padding:.55rem .7rem; color:#302720; }
.energy-result { display:block; margin-top:1.3rem; padding:1rem; border:1px solid #c3ac93; background:#fff8ed; }
.energy-result strong { display:block; font:700 1.55rem/1.2 var(--serif); }
.energy-result span { display:block; margin-top:.7rem; font-size:.8rem; line-height:1.65; }
@media(max-width:1000px) {
  .product-list { gap:1rem; }
  .product-list li { padding:1.2rem 1rem; }
  .energy-feature-inner { gap:2.5rem; }
  .choice-advice { align-items:start; }
}
@media(max-width:680px) {
  .hero-frame { height:435px; width:100%; }
  .hero-frame img { position:absolute; height:100%; aspect-ratio:auto; object-position:62% 50%; }
  .hero-shade { background:linear-gradient(90deg,#171411d9,#17141183),linear-gradient(0deg,#1714116b,transparent); }
  .hero-copy { position:absolute; left:20px; right:20px; bottom:3rem; width:auto; padding:0; background:transparent; }
  .hero-copy h1 { font-size:clamp(2.7rem,10vw,3.5rem); max-width:15ch; }
  .hero-copy .lead { font-size:.93rem; max-width:42ch; }
  .hero-caption { position:absolute; left:20px; right:20px; bottom:.55rem; padding:0; background:transparent; max-width:none; font-size:.58rem; }
  .home-search .site-search { display:block; }
  .home-search .search-hint { display:none; }
  .home-search { padding-top:.85rem; padding-bottom:.9rem; }
  .workshop-heading { display:block; margin-bottom:1.1rem; }
  .workshop-heading > p { margin-top:.8rem; }
  .choice-workshop { padding-top:1.75rem; padding-bottom:2.5rem; }
  .choice-controls fieldset { display:grid; grid-template-columns:1fr 1fr; gap:.6rem; }
  .choice-controls span { padding:.55rem .65rem; height:100%; font-size:.77rem; line-height:1.4; }
  .choice-advice { display:block; padding:1rem; }
  .choice-advice a { display:inline-flex; margin-top:1rem; }
  .product-list, .product-list-wide { grid-template-columns:1fr; gap:1.3rem; }
  .product-list li { padding:1.35rem; }
  .product-list h3 { font-size:1.65rem; }
  .product-list .product-kind { margin-bottom:.75rem; }
  .energy-feature { padding:2.5rem 0; }
  .energy-feature-inner { grid-template-columns:1fr; gap:1rem; }
  .energy-feature h2 { font-size:2.7rem; }
  .editorial-signoff { padding-top:1.4rem; margin-bottom:2.5rem; }
  .energy-calculator { padding:1rem; }
  .energy-fields { gap:.85rem; }
}
@media(prefers-reduced-motion:reduce) {
  html { scroll-behavior:auto; }
  *, *::before, *::after { animation:none !important; transition:none !important; }
  .product-list li:hover, .button:hover, .hero-copy .button:hover, .product-link:hover, .search-submit:hover { transform:none; }
}
@media print { .choice-controls, .energy-calculator form { display:none; } .hero-frame { height:auto; } .hero-copy { position:static; color:#111; } }
.product-list .product-link { max-width:none; }
.hero-frame { display:grid; align-items:center; height:auto; min-height:clamp(400px,38vw,545px); }
.hero-copy { position:relative; inset:auto; margin:3rem max(24px,calc((100vw - 1240px)/2)) 3.3rem; }
.motion-toggle { margin-top:1rem; padding:.55rem .8rem; min-height:44px; border:1px solid #9c8774; border-radius:4px; background:transparent; color:#f3e8dc; font-size:.78rem; }
.motion-toggle:hover { background:#49392d; }
.motion-toggle[aria-pressed='true'] { background:#e9dfd1; color:#302720; }
.motion-toggle:disabled { cursor:default; opacity:1; }
.table-wrap:focus-visible { outline:3px solid #a15c31; outline-offset:4px; }
.table-scroll-hint { display:none; }
html[data-motion='reduced'] { scroll-behavior:auto; }
html[data-motion='reduced'] *, html[data-motion='reduced'] *::before, html[data-motion='reduced'] *::after { animation:none !important; transition:none !important; }
html[data-motion='reduced'] :is(.product-list li,.button,.product-link,.search-submit) { transform:none !important; }
@media(prefers-reduced-motion:reduce) {
  :is(.product-list li,.button,.product-link,.search-submit) { transform:none !important; }
}
@media(hover:none), (pointer:coarse) {
  .product-list li:hover, .button:hover, .hero-copy .button:hover, .product-link:hover, .search-submit:hover { transform:none; }
}
@media(max-width:680px) {
  /* La hauteur suit le texte : aucun titre rogné à320px ou après agrandissement. */
  .hero-frame { display:grid; align-items:center; height:auto; min-height:435px; }
  .hero-copy { position:relative; inset:auto; width:auto; margin:2rem 20px 3.25rem; }
  .hero-caption { line-height:1.5; }
  .home-search .site-search { margin-bottom:0; }
  .energy-fields { align-items:end; }
  .search-row input, .energy-fields input { font-size:16px; }
  .table-scroll-hint { display:block; margin:1.1rem 0 .4rem; font-size:.75rem; color:#69584a; }
}
@media(max-width:360px) {
  .header-inner { gap:.7rem; }
  .wordmark { gap:.45rem; }
  .wordmark strong { font-size:1.2rem; }
  .wordmark-copy > span { font-size:.5rem; letter-spacing:.12em; }
  .mobile-nav summary { padding:.55rem .65rem; }
  .hero-copy { margin:1.75rem 16px 3.1rem; }
  .hero-copy h1 { font-size:2.45rem; }
  .product-list li { padding:1.1rem; }
  .product-list h3 { font-size:1.5rem; }
  .energy-fields { grid-template-columns:1fr; }
}
@media(min-width:681px) {
 .choice-workshop .product-list:has(> li[data-family="hammam"]:not([hidden])), .choice-workshop .product-list:has(> li[data-family="immersion"]:not([hidden])) { grid-template-columns:1fr; }
 .choice-workshop .product-list > li[data-family="hammam"]:not([hidden]), .choice-workshop .product-list > li[data-family="immersion"]:not([hidden]) { display:grid; grid-template-columns:minmax(0,1fr) 240px; align-items:end; }
 .choice-workshop .product-list > li[data-family="hammam"] .product-link, .choice-workshop .product-list > li[data-family="immersion"] .product-link { align-self:end; }
}

/* Piste maison : lumière du jour, lecture ouverte et boutons plus doux. */
:root { --serif:Georgia,'Times New Roman',serif; --sans:'Trebuchet MS','Aptos','Segoe UI',sans-serif; --paper:#f7f2e9; --paper-light:#fffcf7; --ink:#352b25; --charcoal:#352b25; --terracotta:#9e5e3c; }
body { line-height:1.75; }
.wordmark strong { font-family:Bahnschrift,'Arial Narrow',sans-serif; }
.hero-shade { background:linear-gradient(90deg,rgba(250,246,237,.99),rgba(250,246,237,.96) 48%,rgba(250,246,237,0) 76%); }
.hero-copy { color:#352b25; width:min(46%,600px); }
.hero-frame img { z-index:0; }
.hero-shade { z-index:1; pointer-events:none; }
.hero-copy,.hero-caption { z-index:2; }
.hero-copy .eyebrow { color:#80533c; letter-spacing:.11em; font-weight:600; }
.hero-copy h1 { font-family:var(--serif); font-weight:400; letter-spacing:-.035em; line-height:1.08; max-width:18ch; font-size:clamp(2.8rem,4.2vw,4.35rem); }
.hero-copy .lead { color:#4e4035; max-width:47ch; line-height:1.65; }
.hero-caption { background:rgba(253,248,238,.92); color:#5e4b3b; border-radius:3px; }
.button,.hero-copy .button,.product-list .product-link,.search-submit { min-height:48px; border:1px solid #65422f; border-radius:10px; padding:.78rem 1.15rem; background:#694430; color:#fffaf2; box-shadow:0 3px 9px #49302212; font-family:var(--sans); font-weight:600; letter-spacing:0; transition:background-color 180ms ease,transform 180ms ease,box-shadow 180ms ease; }
.button:hover,.hero-copy .button:hover,.product-list .product-link:hover,.search-submit:hover { background:#503322; color:#fffaf2; transform:translateY(-1px); box-shadow:0 5px 12px #4930221c; }
.button:active,.hero-copy .button:active,.product-list .product-link:active,.search-submit:active { transform:translateY(0); box-shadow:inset 0 1px 2px #24170f33; }
.button-secondary,.choice-advice .button-secondary { color:#684733; background:#fffcf6; border:1px solid #bba38e; box-shadow:none; }
.button-secondary:hover,.choice-advice .button-secondary:hover { color:#513321; background:#f1e5d6; box-shadow:0 3px 8px #49302212; }
.search-row input,.energy-fields input { border-radius:9px; border-color:#cbbdab; box-shadow:inset 0 1px 2px #49302209; }
.choice-controls span { border-radius:9px; background:#fffcf7; border-color:#d4c5b4; box-shadow:none; font-weight:600; }
.choice-controls input:checked + span { background:#eadbca; color:#513624; border-color:#9b7759; box-shadow:inset 0 0 0 1px #9b7759; }
.choice-advice { background:#eee4d6; border:1px solid #d5c3ae; border-radius:12px; box-shadow:0 4px 13px #49302208; }
.choice-advice h3 { font-family:var(--sans); font-size:1.15rem; font-weight:600; line-height:1.4; }
.workshop-heading h2,.section-heading h2,.energy-feature h2,.editorial-signoff h2 { font-family:var(--serif); font-weight:400; letter-spacing:-.035em; line-height:1.15; }
.workshop-heading h2 { font-size:clamp(1.9rem,3vw,2.8rem); }
.product-list li { border:1px solid #ddcdbc; border-radius:12px; background:#fffcf7; box-shadow:0 7px 20px #4b352311; }
.product-list li:hover { transform:translateY(-2px); border-color:#bca186; box-shadow:0 10px 23px #4b35231a; }
.product-list h3 { font-family:var(--serif); font-weight:400; line-height:1.24; letter-spacing:-.025em; font-size:clamp(1.35rem,1.8vw,1.65rem); }
.product-list .product-kind { font-weight:600; letter-spacing:.09em; }
.article-header:not(.article-header-hammam) { background:#ece1d2; color:#352b25; border-bottom:1px solid #d5c4b1; box-shadow:none; }
.article-header:not(.article-header-hammam) h1 { color:#352b25; }
.article-header:not(.article-header-hammam) .dek { color:#5b493c; }
.article-header:not(.article-header-hammam) .eyebrow { color:#875a3d; }
.article-header h1,.article-header-hammam h1 { font-family:var(--serif); font-weight:400; letter-spacing:-.035em; line-height:1.1; }
.article-header h1 { max-width:22ch; font-size:clamp(2.5rem,4.4vw,4.4rem); }
.article-header-hammam h1 { max-width:15ch; font-size:clamp(2.8rem,4.2vw,4rem); }
.article-body h2,.article-body h3 { font-family:var(--serif); font-weight:400; letter-spacing:-.02em; line-height:1.25; }
.article-toc,.editorial-note,.checklist-panel,.energy-calculator { border:1px solid #d2bfa7; border-radius:10px; box-shadow:0 4px 13px #4930220a; }
.article-toc { background:#f5ecdf; }
.energy-result { border-radius:8px; }
.energy-result strong { font-family:var(--sans); font-size:1.4rem; font-weight:600; letter-spacing:-.02em; }
.guide-list h3 { font-family:var(--serif); font-weight:400; line-height:1.3; }
.energy-feature { background:#49382c; border-color:#715540; box-shadow:none; }
.energy-feature h2 { max-width:19ch; font-size:clamp(2.4rem,4vw,3.5rem); }
@media(max-width:680px) {
 .hero-copy { width:auto; margin:2rem 20px 3.25rem; }
 .hero-copy h1 { font-size:clamp(2.5rem,9.6vw,3.25rem); max-width:18ch; }
 .hero-shade { background:linear-gradient(90deg,rgba(250,246,237,.97),rgba(250,246,237,.94)); }
 .hero-frame img { object-position:62% 50%; }
 .hero-caption { left:16px; right:16px; padding:.25rem .4rem; bottom:.4rem; }
 .hero-copy .lead { font-size:.95rem; }
 .product-list h3 { font-size:1.5rem; }
 .article-header h1 { font-size:clamp(2.35rem,9vw,3rem); }
 .article-header-hammam h1 { font-size:clamp(2.45rem,9vw,3.1rem); }
 .article-body h2 { font-size:1.7rem; }
 .workshop-heading h2 { font-size:2rem; }
 .choice-controls span { font-size:.78rem; }
}
@media(max-width:360px) { .hero-copy { margin:1.75rem 16px 3.25rem; } .hero-copy h1 { font-size:2.25rem; } }
@media(hover:none),(pointer:coarse) { .product-list li:hover,.button:hover,.hero-copy .button:hover,.product-list .product-link:hover,.search-submit:hover { transform:none; } }
@media(prefers-reduced-motion:reduce) { .product-list li:hover,.button:hover,.hero-copy .button:hover,.product-list .product-link:hover,.search-submit:hover { transform:none !important; } }

/* Les quatre univers : texte sur pierre opaque, illustration visible et autonome. */
.universe-directory { padding-block:3.5rem; }
.universe-list { list-style:none; padding:0; margin:2rem 0; }
.universe-list > li { display:grid; grid-template-columns:45px minmax(0,1fr) minmax(200px,260px); gap:1.4rem; padding:1.75rem 0; border-top:1px solid #d6c5b3; align-items:start; }
.universe-number { color:#936649; font-size:.85rem; padding-top:.65rem; }
.universe-list h3 { font-family:var(--serif); font-weight:400; font-size:2rem; line-height:1.2; margin:0 0 .5rem; }
.universe-list h3 a { color:#352b25; text-decoration:none; }
.universe-list p { margin:.3rem 0; }
.universe-stock { color:#6a5443; font-size:.85rem; }
.universe-list nav { display:flex; flex-direction:column; align-items:flex-start; gap:.7rem; }
.universe-list nav > a:not(.button) { font-size:.9rem; }
.silo-header { position:relative; isolation:isolate; overflow:hidden; display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); background:#faf6ed; color:#352b25; border-block:1px solid #ddcdbc; }
.silo-heading.page-shell { grid-column:1; grid-row:1; width:auto; max-width:none; margin:0; padding:clamp(1.5rem,4vw,4rem); align-self:center; }
.silo-heading h1 { font-family:var(--serif); font-weight:400; font-size:clamp(2.3rem,3.7vw,3.7rem); line-height:1.1; letter-spacing:-.035em; max-width:20ch; margin:.6rem 0 1rem; }
.silo-heading .dek { color:#594638; font-size:1rem; max-width:53ch; }
.silo-heading .eyebrow { color:#78543b; }
.silo-shortcuts { display:flex; flex-wrap:wrap; gap:.65rem; margin-top:1.5rem; }
.silo-hero { grid-column:2; grid-row:1; margin:0; position:relative; min-height:430px; background:#e7dac8; }
.silo-hero img { width:100%; height:100%; object-fit:cover; object-position:65% 50%; position:absolute; inset:0; }
.silo-hero figcaption { position:absolute; left:1rem; right:1rem; bottom:.75rem; background:#faf6ed; color:#594638; font-size:.68rem; padding:.3rem .5rem; line-height:1.5; }
.silo-body > section { margin-block:3rem; }
.silo-intro { font-size:1.15rem; color:#4e4035; }
.range-list { margin:1.5rem 0; }
.range-list > div { padding:1rem 0; border-top:1px solid #d7c5b2; }
.range-list dt { font-weight:700; color:#513624; }
.range-list dd { margin:.4rem 0 0; }
.silo-return { display:flex; gap:.8rem 1.5rem; flex-wrap:wrap; padding-block:1rem; border-bottom:1px solid #d7c5b2; font-size:.88rem; }
.catalogue-family { margin-block:3.5rem; padding-top:1rem; border-top:1px solid #d7c5b2; }
.silo-body .product-list { grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr)); }
.silo-body .product-list:has(>li:only-child) { max-width:680px; }
@media(max-width:800px) {
 .silo-header { display:flex; flex-direction:column; }
 .silo-hero { min-height:0; aspect-ratio:16/9; width:100%; order:0; }
 .silo-hero img { object-fit:cover; object-position:center; }
 .silo-heading.page-shell { order:1; padding:1.5rem max(16px,4vw) 2rem; }
 .silo-heading h1 { font-size:clamp(2.15rem,6.7vw,3rem); }
 .universe-list > li { grid-template-columns:28px minmax(0,1fr); gap:.7rem; }
 .universe-list nav { grid-column:2; }
 .universe-directory { padding-block:2.5rem; }
}
@media(max-width:680px) {
 .hero-frame { display:flex; flex-direction:column; min-height:0; background:#faf6ed; }
 .hero-frame img { position:static; display:block; width:100%; height:auto; min-height:0; aspect-ratio:16/9; object-fit:cover; order:0; }
 .hero-shade { display:none; }
 .hero-copy { position:static; width:auto; margin:0; padding:1.5rem 20px; order:1; }
 .hero-copy h1 { font-size:clamp(2.25rem,8.6vw,3rem); }
 .hero-caption { position:static; order:2; margin:0 16px .75rem; width:auto; background:#faf6ed; }
}
@media(max-width:360px) { .silo-shortcuts { flex-direction:column; align-items:flex-start; } .silo-hero figcaption { font-size:.6rem; left:.5rem; right:.5rem; bottom:.4rem; } }

.project-planner { padding-block:3rem; border-bottom:1px solid #d7c5b2; }
.project-planner h2,.home-catalogue > h2 { font-family:var(--serif); font-weight:400; font-size:clamp(1.8rem,3vw,2.7rem); line-height:1.2; }
.planner-fields { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1rem; margin:1.5rem 0; }
.planner-fields label { display:flex; flex-direction:column; gap:.4rem; font-size:.9rem; font-weight:600; }
.planner-fields input,.planner-fields select { width:100%; min-width:0; min-height:48px; padding:.65rem; border:1px solid #bba38e; border-radius:9px; background:#fffcf7; color:#352b25; font:inherit; font-size:16px; }
.planner-result { display:block; margin-top:1.5rem; padding:1rem; border:1px solid #d7c5b2; border-radius:10px; background:#faf6ed; }
.home-catalogue { padding-block:2.5rem; }
.home-catalogue .catalogue-family { margin-block:2rem; }
@media(max-width:680px) { .planner-fields { grid-template-columns:1fr; } }


/* Illustrations d’univers : scènes éditoriales séparées des références commerciales. */
.catalogue-intro { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:clamp(1.25rem,3vw,2.75rem); align-items:center; margin-bottom:2rem; }
.catalogue-intro h2 { font-family:var(--serif); font-weight:400; line-height:1.2; font-size:clamp(1.8rem,3vw,2.7rem); }
.catalogue-scene { margin:0; }
.catalogue-scene a { display:block; border-radius:12px; overflow:hidden; background:#e7dac8; box-shadow:0 8px 24px #49302214; }
.catalogue-scene img { display:block; width:100%; height:auto; aspect-ratio:16/9; object-fit:cover; transition:transform 240ms ease; }
.catalogue-scene a:hover img { transform:scale(1.025); }
.catalogue-scene figcaption { color:#594638; font-size:.72rem; line-height:1.5; padding:.55rem .1rem; }
.catalogue-scene a:focus-visible { outline:3px solid #9e5e3c; outline-offset:4px; }
@media(max-width:680px) { .catalogue-intro { grid-template-columns:1fr; gap:.5rem; } .catalogue-intro h2 { margin-top:.5rem; } }
@media(prefers-reduced-motion:reduce),(hover:none) { .catalogue-scene a:hover img { transform:none; } }

/* Project compatibility and schema tools */
.project-tool-callout { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 1.5rem; margin-block: 1.8rem; padding: 1.2rem 1.4rem; border: 1px solid #cbb9a6; border-left: 4px solid #9b6a47; border-radius: 10px; background: #f1e7dc; }
.project-tool-callout h2 { margin: .32rem 0 .45rem; font: 400 clamp(1.4rem, 2.4vw, 2rem)/1.18 var(--serif); }
.project-tool-callout p:not(.eyebrow) { max-width: 78ch; margin: 0; color: #65584d; font-size: .85rem; }
.project-tool-callout .button { margin: 0; white-space: nowrap; }
.tool-next-step { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 1.5rem; margin: 2rem 0; padding: 1.35rem 1.5rem; border-radius: 10px; background: #302720; color: #fffaf2; }
.tool-next-step h2 { margin: .35rem 0 .4rem; color: #fff5e8; font: 400 clamp(1.5rem, 2.5vw, 2.2rem)/1.15 var(--serif); }
.tool-next-step p:not(.eyebrow) { max-width: 75ch; margin: 0; color: #e1d5c9; font-size: .84rem; }
.tool-next-step .eyebrow { color: #e7b98d; }
.tool-next-step .button { margin: 0; border-color: #d9b48f; background: #f3e4d2; color: #302720; white-space: nowrap; }
.tool-next-step .button:hover { background: #fff7eb; color: #302720; }
.tool-friction-faq { margin: 2.5rem 0; }
.tool-friction-faq > h2 { max-width: 30ch; margin: .4rem 0 .65rem; font: 400 clamp(1.8rem, 3vw, 2.5rem)/1.15 var(--serif); }
.tool-friction-faq > p:not(.eyebrow) { max-width: 75ch; color: #65584d; font-size: .9rem; }
.tool-friction-faq details { border-top: 1px solid #cbb9a6; }
.tool-friction-faq details:last-child { border-bottom: 1px solid #cbb9a6; }
.tool-friction-faq summary { padding: .85rem .1rem; color: #302720; font-family: var(--serif); font-size: 1.12rem; font-weight: 600; cursor: pointer; }
.tool-friction-faq details p { max-width: 78ch; margin: 0 0 1rem; color: #5f5147; font-size: .87rem; }
.connection-tool { padding-top: clamp(1.2rem, 3vw, 2.5rem); padding-bottom: clamp(3rem, 6vw, 5rem); }
.tool-lede { max-width: 78ch; margin: .4rem 0 1.5rem; color: #5f5147; font-size: 1.05rem; }
.tool-family-panel { display: grid; grid-template-columns: minmax(220px, .72fr) minmax(250px, 1.28fr); align-items: end; gap: .5rem 1.4rem; margin: 0 0 1.5rem; padding: 1.15rem 1.35rem; border: 1px solid #cbb9a6; border-radius: 10px; background: #eee4d8; }
.tool-family-panel label, .project-notes-card label { display: grid; gap: .35rem; }
.tool-family-heading { color: #302720; font-family: var(--serif); font-size: 1.2rem; line-height: 1.2; }
.tool-family-panel select { width: 100%; min-height: 46px; padding: .55rem .7rem; border: 1px solid #bba38e; border-radius: 8px; background: #fffcf7; color: #302720; font: inherit; }
.tool-family-panel > p { margin: 0 0 .45rem; color: #65584d; font-size: .82rem; }
.tool-panel { margin: 1.4rem 0 2rem; padding: clamp(1.1rem, 2.4vw, 2rem); border: 1px solid #d2bfa7; border-radius: 12px; background: #fcf8f2; box-shadow: 0 5px 18px #4930220a; }
.tool-section-heading { max-width: 78ch; margin-bottom: 1.2rem; }
.tool-section-heading h2, .tool-guides h2 { margin: .45rem 0 .65rem; font: 400 clamp(1.8rem, 3vw, 2.5rem)/1.15 var(--serif); letter-spacing: -.025em; }
.tool-section-heading > p:last-child { margin: 0; max-width: 75ch; color: #65584d; font-size: .92rem; }
.compatibility-fields { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .95rem 1.2rem; }
.compatibility-fields label, .add-component-form label, .connection-form label { display: flex; min-width: 0; flex-direction: column; gap: .4rem; color: #493d33; font-size: .84rem; font-weight: 650; }
.compatibility-fields input, .compatibility-fields textarea, .add-component-form input, .connection-form select, .connection-note-field input, .project-notes-card textarea { width: 100%; min-width: 0; min-height: 46px; padding: .65rem .75rem; border: 1px solid #cbbdab; border-radius: 8px; background: #fffdf9; color: #302720; font: inherit; font-size: 16px; }
.compatibility-fields textarea, .project-notes-card textarea { min-height: 130px; resize: vertical; }
.evidence-source-field, .evidence-text-field { grid-column: 1 / -1; }
.compatibility-result { margin: 1rem 0 0; padding: 1rem 1.1rem; border: 1px solid #c7aa8e; border-left: 4px solid #98714e; border-radius: 8px; background: #f3eadf; }
.compatibility-result[hidden] { display: none; }
.compatibility-result.is-found { border-left-color: #55705d; background: #eef2e9; }
.compatibility-result.is-negative { border-left-color: #9b4f3a; background: #f6e9e3; }
.compatibility-result strong { display: block; margin-bottom: .25rem; }
.compatibility-result p { margin: .3rem 0; }
.compatibility-result small { display: block; color: #65584d; }
.schema-boundary { display: grid; grid-template-columns: 160px 1fr; gap: .8rem 1rem; margin: 1.15rem 0 1.4rem; padding: .95rem 1.05rem; border-left: 3px solid #bf6b42; background: #f1e7dc; color: #53453a; font-size: .86rem; }
.schema-boundary strong { color: #302720; }
.schema-editor { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, .85fr); align-items: start; gap: 1rem; }
.editor-card { min-width: 0; padding: 1.1rem; border: 1px solid #d6c6b7; border-radius: 10px; background: #fffaf4; }
.editor-card-heading, .preview-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; }
.editor-card-heading h3, .preview-heading h3 { margin: .25rem 0 0; font: 400 1.45rem/1.2 var(--serif); }
.button-compact { min-height: 40px; margin: 0; padding: .55rem .75rem; font-size: .76rem; }
.component-list { display: grid; gap: .55rem; margin: .9rem 0 1rem; }
.component-editor-row { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: end; gap: .5rem; }
.component-edit-label { display: grid; min-width: 0; gap: .2rem; }
.component-edit-label > span { overflow: hidden; color: #796b60; font-size: .68rem; text-overflow: ellipsis; white-space: nowrap; }
.component-edit-label input { width: 100%; min-width: 0; min-height: 42px; padding: .5rem .65rem; border: 1px solid #cbbdab; border-radius: 7px; background: #fff; color: #302720; font: inherit; font-size: 16px; }
.remove-item-button, .text-button { min-height: 42px; padding: .45rem .6rem; border: 1px solid #c8b5a2; border-radius: 7px; background: transparent; color: #694430; font: inherit; font-size: .76rem; font-weight: 650; }
.remove-item-button:hover, .text-button:hover { background: #f1e6d9; }
.add-component-form { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: end; gap: .65rem; padding-top: .8rem; border-top: 1px solid #e2d7cb; }
.add-component-form .button { min-height: 46px; margin: 0; padding: .55rem .75rem; font-size: .78rem; }
.connection-form { display: grid; gap: .7rem; }
.connection-form .button { justify-self: start; margin: .15rem 0 0; }
.connection-form .button:disabled { cursor: not-allowed; opacity: .55; transform: none; box-shadow: none; }
.connection-list { display: grid; gap: .55rem; margin: .9rem 0 0; padding: 0; list-style: none; }
.connection-list-item { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: .6rem; padding: .65rem 0; border-top: 1px solid #e2d7cb; }
.connection-summary { display: grid; gap: .15rem; min-width: 0; }
.connection-summary strong { overflow-wrap: anywhere; font-size: .8rem; }
.connection-summary span, .connection-summary small { color: #75675d; font-size: .72rem; }
.connection-empty, .component-empty { margin: .7rem 0; color: #76685e; font-size: .8rem; }
.project-notes-card { margin: 1rem 0 1.7rem; padding: 1.1rem; border: 1px solid #d6c6b7; border-radius: 10px; background: #f4ede4; }
.project-notes-card textarea { min-height: 90px; margin-top: .3rem; }
.save-state { margin: .4rem 0 0; color: #76685e; font-size: .73rem; }
.preview-heading { align-items: center; }
.preview-heading h3 { font-size: 1.7rem; }
.preview-heading p:not(.eyebrow) { max-width: 65ch; margin: .45rem 0 0; color: #75675d; font-size: .82rem; }
.preview-actions { display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-end; gap: .45rem; }
.preview-actions .button { margin: 0; font-size: .78rem; }
.schema-scroll-hint { display: none; margin: .5rem 0; color: #76685e; font-size: .75rem; }
.schema-visual { margin-top: 1rem; overflow-x: auto; border: 1px solid #d9cbbc; border-radius: 10px; background: #f8f2e9; scrollbar-color: #bca48e #eee5d9; }
.schema-visual svg { width: max(100%, 760px); max-width: none; height: auto; }
.diagram-disclaimer { margin: .65rem 0 0; color: #76685e; font-size: .74rem; }
.tool-guides { margin: 2.5rem 0 0; padding: 1.6rem; border-top: 2px solid #9b6a47; border-bottom: 1px solid #cbb9a6; background: #f0e6da; }
.tool-guides h2 { max-width: 30ch; }
.tool-guides ul { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .55rem 1.2rem; margin: 1rem 0; padding-left: 1.2rem; }
.tool-guides li { padding-left: .15rem; }
.tool-guides > p:last-child { color: #65584d; font-size: .82rem; }
.noscript-note { padding: 1rem; border: 1px solid #bf6b42; }
@media(max-width:820px) {
  .schema-editor { grid-template-columns: 1fr; }
  .tool-family-panel { grid-template-columns: 1fr; }
  .tool-family-panel > p { margin: .1rem 0 0; }
  .project-tool-callout { grid-template-columns: 1fr; justify-items: start; }
  .tool-next-step { grid-template-columns: 1fr; justify-items: start; }
}
@media(max-width:680px) {
  .connection-tool { width: calc(100% - 32px); }
  .tool-panel { padding: 1rem; }
  .compatibility-fields { grid-template-columns: 1fr; }
  .evidence-source-field, .evidence-text-field { grid-column: auto; }
  .schema-boundary { grid-template-columns: 1fr; gap: .2rem; }
  .editor-card { padding: .85rem; }
  .editor-card-heading, .preview-heading { align-items: flex-start; flex-direction: column; }
  .preview-actions { justify-content: flex-start; }
  .schema-scroll-hint { display: block; }
  .tool-guides { padding: 1rem; }
  .tool-guides ul { grid-template-columns: 1fr; }
  .add-component-form { grid-template-columns: 1fr; }
  .add-component-form .button, .connection-form .button { width: 100%; }
}
@media(prefers-reduced-motion:reduce) {
  .connection-tool *, .connection-tool *::before, .connection-tool *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
}
html[data-motion="reduced"] .catalogue-scene img { transition:none; transform:none; }

/* DA 2026-10-20 — atelier de chaleur domestique. */
@font-face {
  font-family: 'Bricolage Grotesque'; font-style: normal; font-weight: 200 800; font-stretch: 75% 100%; font-display: swap;
  src: url('/assets/fonts/BricolageGrotesque-LatinExt.woff2') format('woff2');
  unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF;
}
@font-face {
  font-family: 'Bricolage Grotesque'; font-style: normal; font-weight: 200 800; font-stretch: 75% 100%; font-display: swap;
  src: url('/assets/fonts/BricolageGrotesque-Latin.woff2') format('woff2');
  unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
@font-face {
  font-family: 'DM Sans'; font-style: normal; font-weight: 400 700; font-display: swap;
  src: url('/assets/fonts/DMSans-LatinExt.woff2') format('woff2');
  unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF;
}
@font-face {
  font-family: 'DM Sans'; font-style: normal; font-weight: 400 700; font-display: swap;
  src: url('/assets/fonts/DMSans-Latin.woff2') format('woff2');
  unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
:root {
  --paper: #f4eee5;
  --paper-light: #fffaf2;
  --stone-soft: #e6dbcf;
  --wood: #50372b;
  --charcoal: #27211e;
  --ink: #2d2722;
  --muted: #665c55;
  --line: #d2c5b7;
  --line-dark: #9d8979;
  --terracotta: #a64e33;
  --display: 'Bricolage Grotesque', Bahnschrift, 'Trebuchet MS', 'Segoe UI', Arial, sans-serif;
  --serif: var(--display);
  --sans: 'DM Sans', 'Trebuchet MS', 'Segoe UI', Arial, sans-serif;
  --water: #647c88;
}
body { background:var(--paper); color:var(--ink); font-family:var(--sans); line-height:1.7; }
.site-header { background:#fbf7f0; border-bottom:1px solid #d2c5b7; }
.header-inner { min-height:82px; }
.wordmark { align-items:center; flex-direction:row; gap:.72rem; }
.wordmark-mark { width:46px; height:46px; }
.wordmark-copy { display:flex; flex-direction:column; }
.wordmark strong { color:#27211e; font-family:var(--display); font-size:1.35rem; font-weight:700; letter-spacing:-.035em; }
.wordmark span { color:#665c55; font-size:.56rem; letter-spacing:.15em; }
.desktop-nav { gap:clamp(.8rem,1.7vw,1.6rem); }
.desktop-nav a,.mobile-nav summary { font-family:var(--sans); font-size:.81rem; letter-spacing:.01em; }
.mobile-nav summary { border-radius:3px; }
.home-hero { display:block; padding:0; background:#27211e; }
.hero-frame { position:relative; display:flex; align-items:center; width:min(100%,1600px); min-height:clamp(500px,44vw,650px); height:auto; margin:0 auto; overflow:hidden; isolation:isolate; background:#29231e; }
.hero-frame img { position:absolute; z-index:0; inset:0; width:100%; height:100%; aspect-ratio:auto; object-fit:cover; object-position:68% 53%; }
.hero-shade { position:absolute; z-index:1; inset:0; display:block; pointer-events:none; background:linear-gradient(90deg,#211a16ed 0%,#211a16d9 29%,#211a168c 48%,#211a1620 72%),linear-gradient(0deg,#211a1670 0%,transparent 38%); }
.hero-copy { position:relative; z-index:2; width:min(49%,620px); max-width:620px; margin:3rem max(28px,calc((100vw - 1240px)/2)); padding:0; color:#fff8ed; }
.hero-copy .eyebrow { color:#efbd91; font-size:.69rem; letter-spacing:.16em; }
.hero-copy h1 { max-width:14ch; margin:.65rem 0 1rem; color:#fff8ed; font:400 clamp(3rem,5vw,5.1rem)/1.02 var(--serif); letter-spacing:-.045em; text-wrap:balance; }
.hero-copy .lead { max-width:48ch; color:#f0e8de; font-size:clamp(1rem,1.2vw,1.12rem); line-height:1.62; }
.hero-copy .button { margin-top:1.1rem; }
.hero-copy .button,.button,.product-list .product-link,.search-submit { min-height:48px; padding:.74rem 1.05rem; border:1px solid #813e2b; border-radius:6px; background:#a64e33; color:#fffaf3; box-shadow:inset 0 1px 0 #ffffff26,0 3px 0 #743724,0 5px 10px #1d151018; font-family:var(--sans); font-weight:700; letter-spacing:.01em; transition:background-color 180ms ease,transform 180ms ease,box-shadow 180ms ease; }
.hero-copy .button:hover,.button:hover,.product-list .product-link:hover,.search-submit:hover { background:#843e2c; color:#fffaf3; transform:translateY(-1px); box-shadow:inset 0 1px 0 #ffffff26,0 4px 0 #633020,0 7px 14px #1d151023; }
.button-secondary,.choice-advice .button-secondary { border-color:#998373; background:#fffaf2; color:#50372b; box-shadow:none; }
.button-secondary:hover,.choice-advice .button-secondary:hover { border-color:#50372b; background:#e9ded1; color:#302720; box-shadow:none; }
.hero-caption { right:clamp(16px,3vw,42px); bottom:14px; left:auto; width:auto; max-width:min(38ch,44%); padding:.36rem .58rem; border:1px solid #ffffff33; background:#211a16cc; color:#fff8ed; font-size:.66rem; letter-spacing:.02em; }
.project-planner { margin-top:0; padding-block:clamp(2.5rem,5vw,4.2rem); border-bottom:1px solid var(--line); }
.project-planner > .eyebrow,.home-catalogue > .eyebrow { color:var(--terracotta); }
.project-planner h2,.home-catalogue > h2,.workshop-heading h2,.guide-section h2 { color:#2d2722; }
.planner-fields input,.planner-fields select,.compatibility-fields input,.compatibility-fields textarea,.add-component-form input,.connection-form select,.connection-note-field input,.project-notes-card textarea { border-color:#b8a594; border-radius:4px; background:#fffdf9; }
.home-catalogue { padding-block:clamp(2.5rem,5vw,4rem); }
.home-catalogue > h2 { margin-bottom:.5rem; }
.home-catalogue .catalogue-family { padding-top:1.5rem; border-top:1px solid #bdae9e; }
.catalogue-scene a { border-radius:3px; box-shadow:0 9px 22px #3027201a; }
.catalogue-scene figcaption,.silo-hero figcaption { background:#27211e; color:#fff8ed; }
.product-list li { border:1px solid #d4c3b2; border-top:3px solid #916248; border-left:1px solid #d4c3b2; border-radius:8px; background:#fffaf3; box-shadow:inset 0 1px 0 #fff,0 3px 0 #e4d7c7,0 9px 20px #3027200d; }
.product-list li:hover { border-color:#a78569; border-top-color:#a64e33; transform:translateY(-2px); box-shadow:inset 0 1px 0 #fff,0 4px 0 #dfcfbc,0 12px 24px #30272016; }
.product-list h3,.universe-list h3,.guide-list h3,.article-body h2,.article-body h3 { color:#302720; font-family:var(--serif); font-weight:400; letter-spacing:-.025em; }
.product-link { border-radius:3px; }
.silo-header { border-color:#d2c5b7; background:#f4eee5; }
.silo-heading.page-shell { padding:clamp(1.6rem,4vw,4.3rem); }
.silo-heading .eyebrow,.article-header .eyebrow { color:var(--terracotta); }
.silo-heading h1,.article-header h1 { color:#2d2722; font:400 clamp(2.5rem,4vw,4.1rem)/1.04 var(--serif); letter-spacing:-.04em; }
.silo-heading .dek,.article-header .dek { color:#51473f; }
.silo-hero { background:#302720; }
.silo-hero figcaption { left:12px; right:auto; max-width:calc(100% - 24px); border:1px solid #ffffff30; border-radius:2px; }
.article-header:not(.article-header-hammam) { background:#e8ddd0; }
.article-header-hammam h1 { color:#fff8ed; }
.article-header-hammam .dek { color:#f0e8de; }
.article-header-hammam .eyebrow { color:#efbd91; }
.breadcrumbs { color:#665c55; }
.breadcrumbs a { color:#62452f; }
.universe-list > li { border-color:#cbbcae; }
.universe-number,.universe-stock { color:#725039; }
.project-tool-callout { border-color:#cfbca8; border-left-color:#a64e33; border-radius:4px; background:#ebe0d4; }
.tool-next-step { border-radius:4px; background:#302720; }
.tool-next-step .button { border-color:#e2b28d; background:#f3e6d8; color:#302720; box-shadow:none; }
.tool-next-step .button:hover { background:#fffaf2; color:#302720; }
.tool-family-panel,.project-notes-card { border-color:#d0c1b1; border-radius:4px; background:#eee4d8; }
.tool-panel,.editor-card { border-color:#d3c5b7; border-radius:4px; background:#fffbf5; box-shadow:0 8px 22px #3027200b; }
.tool-friction-faq details,.tool-guides { border-color:#cbbcae; }
.tool-guides { border-top-color:#a64e33; background:#eae0d5; }
.compatibility-result.is-found { border-left-color:#536f7c; background:#e9eff0; }
.compatibility-result.is-negative { border-left-color:#9b4f3a; background:#f6e9e3; }
@media(min-width:681px) and (max-width:800px) {
  .silo-heading.page-shell { padding:1.1rem 1.5rem 1.4rem; }
  .silo-heading h1 { font-size:2.2rem; margin:.45rem 0 .7rem; }
  .silo-shortcuts { margin-top:1rem; }
}
.site-footer { background:#27211e; color:#f3ece2; }
.site-footer a,.site-footer .footer-brand { color:#f3ece2; }
.site-footer .footer-disclosure,.site-footer .footer-meta { color:#d3c7bb; }
@media(max-width:800px) {
  .hero-frame { min-height:0; height:auto; align-items:stretch; flex-direction:column; }
  .hero-frame img { position:static; display:block; width:100%; height:auto; min-height:0; aspect-ratio:16/9; object-position:68% 53%; order:0; }
  .hero-shade { display:none; }
  .hero-copy { position:static; width:auto; max-width:none; margin:0; padding:1.5rem max(20px,calc((100vw - 680px)/2)) 1.7rem; background:#27211e; color:#fff8ed; order:1; }
  .hero-copy h1 { max-width:17ch; font-size:clamp(2.4rem,7.5vw,3.55rem); }
  .hero-copy .lead { max-width:58ch; font-size:1rem; }
  .hero-caption { position:static; order:2; align-self:flex-start; max-width:calc(100% - 32px); margin:.7rem 16px .8rem; border:0; background:#27211e; color:#e4d8ca; }
  .silo-header { background:#f4eee5; }
}
@media(max-width:680px) {
  .header-inner { width:calc(100% - 32px); min-height:72px; gap:1rem; }
  .wordmark-mark { width:40px; height:40px; }
  .wordmark strong { font-size:1.2rem; }
  .wordmark-copy > span { font-size:.51rem; }
  .home-hero { padding:0; }
  .hero-copy { padding:1.4rem 20px 1.5rem; }
  .hero-copy h1 { max-width:16ch; font-size:clamp(2.25rem,9vw,3.2rem); line-height:1.04; }
  .hero-copy .lead { font-size:.96rem; }
  .hero-caption { margin:.55rem 14px .65rem; font-size:.7rem; }
  .button,.hero-copy .button,.product-list .product-link,.search-submit { min-height:46px; border-radius:3px; }
  .silo-heading.page-shell { padding:1.4rem 20px 1.8rem; }
  .silo-heading h1,.article-header h1 { font-size:clamp(2.2rem,9vw,3rem); }
  .silo-shortcuts { align-items:stretch; }
  .silo-shortcuts .button { flex:1 1 100%; }
  .product-list li { border-left-width:1px; border-radius:8px; }
  .site-footer { padding-bottom:2rem; }
}
@media(max-width:360px) {
  .wordmark { gap:.45rem; }
  .wordmark-mark { width:35px; height:35px; }
  .wordmark strong { font-size:1.1rem; }
  .hero-copy { padding-right:16px; padding-left:16px; }
  .hero-copy h1 { font-size:2.2rem; }
}
@media(hover:none),(pointer:coarse),(prefers-reduced-motion:reduce) {
  .product-list li:hover,.button:hover,.hero-copy .button:hover,.product-list .product-link:hover,.search-submit:hover { transform:none; }
}
@media(prefers-reduced-motion:reduce) {
  .button,.hero-copy .button,.product-list .product-link,.search-submit,.product-list li { transition:none !important; }
}

/* Toolbox component refresh: copper controls, stone cards and inset search. */
.hero-copy .button:active,.button:active,.product-list .product-link:active,.search-submit:active {
  transform:translateY(2px); box-shadow:inset 0 1px 2px #39231733,0 1px 0 #743724;
}
:is(.button,.product-link,.search-submit):focus-visible {
  outline:3px solid #718893; outline-offset:4px;
}
:is(.button,.search-submit):disabled {
  background:#e4d9ce; color:#746558; border-color:#c9b9aa; box-shadow:none; transform:none; cursor:not-allowed;
}
.product-list li:focus-within { border-color:#8b644b; }
.product-list .product-details { border-top-color:#dfd0bf; }
.site-search {
  padding:clamp(1.15rem,2.8vw,1.8rem); border:1px solid #d1beaa;
  border-top:3px solid #8a6046; border-radius:8px; background:#ede3d6;
  box-shadow:inset 0 1px 0 #fff9,0 3px 0 #ded0bf,0 10px 24px #3027200b;
}
.site-search label { display:block; margin-bottom:.75rem; font:400 clamp(1.25rem,2vw,1.6rem)/1.25 var(--serif); letter-spacing:-.02em; }
.site-search .search-row { gap:.65rem; align-items:stretch; }
.site-search .search-row input {
  min-width:0; min-height:52px; padding:.8rem 1rem; border:1px solid #af9882;
  border-radius:5px; background:#fffcf7; color:#302720; font-size:1rem;
  box-shadow:inset 0 2px 3px #4930220b; transition:border-color 160ms ease,box-shadow 160ms ease;
}
.site-search .search-row input::placeholder { color:#786758; opacity:1; }
.site-search .search-row input:focus { outline:2px solid #718893; outline-offset:2px; border-color:#526b76; box-shadow:none; }
.site-search .search-hint { margin:.8rem 0 0; color:#635446; font-size:.8rem; }
.site-search .search-clear { border:1px solid #ab927c; border-radius:5px; background:#fff9ef; color:#513a2b; min-height:44px; }
.site-search .search-scope-toggle { margin-top:.8rem; color:#65432e; }
.site-search .search-results:not(:empty) { margin-top:1rem; padding-top:.8rem; border-top:1px solid #cdbba7; }
.home-search .site-search { display:block; padding:clamp(1.15rem,2.8vw,1.8rem); border:1px solid #d1beaa; border-top:3px solid #8a6046; background:#ede3d6; box-shadow:0 3px 0 #ded0bf; }
.home-search .site-search label { font-size:1.5rem; }
@media(max-width:680px) {
  .site-search .search-row { display:flex; flex-wrap:wrap; }
  .site-search .search-row input { flex:1 1 100%; width:100%; }
  .site-search .search-submit { flex:1 1 auto; }
  .site-search .search-clear { flex:0 0 auto; }
}
@media(hover:none),(pointer:coarse),(prefers-reduced-motion:reduce) {
  .product-list li:hover { transform:none; }
}
@media(prefers-reduced-motion:reduce) { .site-search .search-row input { transition:none; } }
/* Keep live suggestions usable without pushing the whole page down. */
.site-search .search-results:not(:empty) { max-height:28rem; overflow-y:auto; overscroll-behavior:contain; scrollbar-color:#9a7b63 #e5d7c6; }

/* Guided choice: three domestic scenes lead into one useful next step. */
.guided-choice { border-block:1px solid #d3c4b4; background:var(--stone-soft); }
.guided-choice[hidden],.guided-choice [hidden] { display:none !important; }
.guided-choice-inner { padding-block:clamp(2.5rem,5vw,4.25rem); }
.guided-choice-heading { display:grid; grid-template-columns:minmax(0,1.2fr) minmax(250px,.7fr); align-items:end; gap:clamp(1.5rem,5vw,5rem); margin-bottom:1.35rem; }
.guided-choice-heading .eyebrow { margin-bottom:.35rem; color:var(--terracotta); font-size:.71rem; font-weight:700; letter-spacing:.11em; text-transform:uppercase; }
.guided-choice-heading h2 { max-width:18ch; margin:0; color:var(--charcoal); font:400 clamp(2rem,3.45vw,3.35rem)/1.04 var(--serif); letter-spacing:-.04em; text-wrap:balance; }
.guided-choice-heading > p { max-width:42ch; margin:0 0 .18rem; color:#51473f; font-size:.96rem; line-height:1.65; }
.guided-choice-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:.8rem; }
.guided-choice-card { position:relative; isolation:isolate; display:flex; min-width:0; min-height:clamp(205px,22vw,290px); flex-direction:column; align-items:flex-start; justify-content:flex-end; overflow:hidden; padding:1.2rem 1.3rem 1.25rem; border:1px solid #746154; border-radius:3px; background:#302720; color:#fff8ed; text-align:left; cursor:pointer; box-shadow:0 4px 0 #cdbdab,0 11px 22px #30272012; transition:border-color 160ms ease,box-shadow 160ms ease,transform 160ms ease; }
.guided-choice-card::before { position:absolute; z-index:0; inset:0; background:linear-gradient(0deg,#201915e8 0%,#2019159c 34%,#20191512 76%); content:""; pointer-events:none; }
.guided-choice-card::after { position:absolute; z-index:2; inset:0; border:2px solid transparent; content:""; pointer-events:none; transition:border-color 160ms ease; }
.guided-choice-card img { position:absolute; z-index:-1; inset:0; width:100%; height:100%; object-fit:cover; object-position:center; transition:transform 220ms ease; }
.guided-choice-number { position:absolute; z-index:1; top:1rem; left:1rem; display:grid; width:38px; height:38px; place-items:center; background:#fff8ed; color:#302720; font-size:.78rem; font-weight:800; }
.guided-choice-name,.guided-choice-deck { position:relative; z-index:1; }
.guided-choice-name { max-width:100%; color:#fff8ed; font:400 clamp(1.55rem,2.2vw,2.2rem)/1.12 var(--serif); letter-spacing:-.025em; }
.guided-choice-deck { margin-top:.28rem; color:#f5ede2; font-size:.86rem; line-height:1.4; }
.guided-choice-card:hover { transform:translateY(-2px); box-shadow:0 5px 0 #c4ae98,0 14px 26px #30272020; }
.guided-choice-card:hover img { transform:scale(1.025); }
.guided-choice-card[aria-pressed="true"] { z-index:1; transform:translateY(-3px); border-color:#9a5736; box-shadow:0 7px 0 #b67855,0 18px 30px #30272024; }
.guided-choice-card[aria-pressed="true"] img { transform:scale(1.04); }
.guided-choice-card[aria-pressed="true"]::after { border-color:#efbd91; }
.guided-choice-card:focus-visible { outline:3px solid var(--water); outline-offset:4px; }
.guided-choice-result { display:grid; grid-template-columns:76px minmax(0,1.2fr) minmax(230px,.8fr); align-items:center; gap:clamp(1rem,3vw,2.5rem); min-height:188px; margin-top:.85rem; padding:1.5rem clamp(1.1rem,3vw,2.35rem); border-left:4px solid #c77946; background:#27211e; color:#fff8ed; box-shadow:inset 0 1px 0 #ffffff1c,0 4px 0 #bca791,0 16px 28px #3027201a; }
.guided-choice-index { color:#efbd91; font:400 clamp(3.25rem,5vw,4.45rem)/.9 var(--serif); letter-spacing:-.06em; }
.guided-choice-copy .eyebrow { margin:0 0 .35rem; color:#efbd91; font-size:.7rem; font-weight:700; letter-spacing:.1em; text-transform:uppercase; }
.guided-choice-copy h3 { max-width:26ch; margin:0 0 .45rem; color:#fff8ed; font:400 clamp(1.45rem,2.25vw,2rem)/1.14 var(--serif); letter-spacing:-.025em; text-wrap:balance; }
.guided-choice-copy > p:last-child { max-width:62ch; margin:0; color:#e5d9cd; font-size:.88rem; line-height:1.55; }
.guided-choice-actions { display:flex; min-width:0; flex-direction:column; align-items:flex-start; gap:.55rem; }
.guided-choice-actions .button { max-width:100%; }
.guided-choice-amazon { max-width:100%; color:#f3c69f; font-size:.85rem; font-weight:700; line-height:1.4; text-decoration-thickness:1px; text-underline-offset:3px; overflow-wrap:anywhere; }
.guided-choice-amazon:hover { color:#fff8ed; }
.guided-choice-amazon:focus-visible { outline:3px solid var(--water); outline-offset:4px; }
.guided-choice-specialist { max-width:35ch; margin:0; color:#e5d9cd; font-size:.88rem; line-height:1.5; }
.guided-choice-note { margin:1rem 0 0; color:#5d5147; font-size:.76rem; line-height:1.5; }
@media(max-width:820px) {
  .guided-choice-heading { grid-template-columns:1fr; align-items:start; gap:.65rem; }
  .guided-choice-heading h2 { max-width:22ch; }
  .guided-choice-result { grid-template-columns:56px minmax(0,1fr); align-items:start; gap:.7rem 1rem; }
  .guided-choice-index { padding-top:.1rem; font-size:3.15rem; }
  .guided-choice-actions { grid-column:2; }
}
@media(max-width:680px) {
  .guided-choice-inner { padding-block:2.25rem 2rem; }
  .guided-choice-heading { margin-bottom:1rem; }
  .guided-choice-heading h2 { max-width:16ch; font-size:clamp(2rem,8vw,2.8rem); }
  .guided-choice-heading > p { font-size:.9rem; }
  .guided-choice-grid { grid-template-columns:1fr; gap:.55rem; }
  .guided-choice-card { min-height:148px; padding:1rem 1rem 1rem 4.4rem; }
  .guided-choice-card img { object-position:center 56%; }
  .guided-choice-number { top:.85rem; left:.85rem; width:42px; height:42px; }
  .guided-choice-name { font-size:1.55rem; }
  .guided-choice-deck { max-width:32ch; font-size:.82rem; }
  .guided-choice-result { margin-top:.65rem; padding:1.1rem .95rem 1.2rem; }
  .guided-choice-index { font-size:2.65rem; }
  .guided-choice-copy .eyebrow { font-size:.65rem; }
  .guided-choice-copy h3 { font-size:1.45rem; }
  .guided-choice-copy > p:last-child { font-size:.84rem; }
  .guided-choice-actions .button { width:auto; }
  .guided-choice-note { font-size:.72rem; }
}
@media(max-width:360px) {
  .guided-choice-inner { padding-right:16px; padding-left:16px; }
  .guided-choice-result { grid-template-columns:42px minmax(0,1fr); gap:.65rem .8rem; }
  .guided-choice-index { font-size:2.35rem; }
  .guided-choice-card { padding-left:4.15rem; }
}
@media(hover:none),(pointer:coarse),(prefers-reduced-motion:reduce) {
  .guided-choice-card:hover { transform:none; }
  .guided-choice-card:hover img { transform:none; }
}
@media(prefers-reduced-motion:reduce) {
  .guided-choice-card,.guided-choice-card::after,.guided-choice-card img { transition:none !important; }
  .guided-choice-card[aria-pressed="true"] { transform:none; }
  .guided-choice-card[aria-pressed="true"] img { transform:none; }
}
html[data-motion="reduced"] .guided-choice-card[aria-pressed="true"] { transform:none; }
html[data-motion="reduced"] .guided-choice-card[aria-pressed="true"] img { transform:none; }

/* A more individual display voice, while keeping long-form reading calm. */
body { font-optical-sizing:auto; }
h1,h2,h3,.wordmark strong { font-optical-sizing:auto; }
.hero-copy h1,.silo-heading h1,.article-header h1,.article-header-hammam h1,.workshop-heading h2,.section-heading h2,.guided-choice-heading h2,.guided-choice-copy h3,.home-catalogue>h2,.catalogue-intro h2,.project-tool-callout h2,.tool-next-step h2,.tool-friction-faq>h2 { font-weight:520; font-stretch:94%; }
