/* Menuiserie Pays Basque — « Linteaux de village »
   Chaux, charbon, sang-de-bœuf, vert basque. Inscriptions en petites capitales, filets gravés, beaucoup de blanc. */

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; scroll-padding-top: 24px; }
body {
  margin: 0; background: var(--chaux); color: var(--charbon);
  font-family: var(--f-texte); font-size: var(--t-corps); line-height: 1.65; font-weight: 400;
  font-feature-settings: "kern"; text-rendering: optimizeLegibility;
  overflow-x: hidden;
}
img, svg, video { max-width: 100%; height: auto; display: block; }
picture { display: block; }
a { color: var(--sang); text-decoration-thickness: 1px; text-underline-offset: .18em; }
a:hover { color: var(--sang-nuit); text-decoration-thickness: 2px; }
:focus-visible { outline: 3px solid var(--vert); outline-offset: 2px; }
::selection { background: var(--sang); color: var(--chaux-pure); }
h1, h2, h3, h4 { font-family: var(--f-grave); font-weight: 500; line-height: 1.08; margin: 0; letter-spacing: .005em; text-wrap: balance; }
p { margin: 0 0 1em; }
button, input, select, textarea { font: inherit; color: inherit; }
.visuellement-cache { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

.evitement { position: absolute; left: 16px; top: -100px; z-index: 50; background: var(--charbon); color: var(--chaux); padding: 12px 18px; }
.evitement:focus { top: 12px; }

.cadre { max-width: var(--largeur); margin-inline: auto; padding-inline: var(--gouttiere); }

/* ---------- boutons ---------- */
.bouton {
  display: inline-flex; align-items: center; justify-content: center; gap: .5em;
  min-height: 48px; padding: 0 1.4em; border: 0; cursor: pointer;
  font-family: var(--f-texte); font-weight: 600; font-size: 1rem; letter-spacing: .01em; text-decoration: none;
  clip-path: polygon(0 0, 100% 0, 100% calc(100% - 8px), calc(100% - 8px) 100%, 8px 100%, 0 calc(100% - 8px));
  transition: background-color .25s var(--courbe), color .25s var(--courbe), transform .2s var(--courbe);
}
.bouton:active { transform: translateY(1px); }
.bouton-plein { background: var(--sang); color: var(--chaux-pure); }
.bouton-plein:hover { background: var(--sang-nuit); color: var(--chaux-pure); }
.bouton-chaux { background: var(--chaux); color: var(--sang); }
.bouton-chaux:hover { background: var(--chaux-pure); color: var(--sang-nuit); }
.lien-trait { font-weight: 600; text-decoration: none; border-bottom: 2px solid currentColor; padding-bottom: 2px; display: inline-block; min-height: 44px; line-height: 44px; }
.lien-trait::after { content: " \2192"; }
.lien-trait:hover { border-bottom-color: var(--charbon); }

/* ---------- inscription (titre de section façon linteau) ---------- */
.inscription { font-size: var(--t-h2); position: relative; padding-top: 22px; }
.inscription::before {
  content: ""; position: absolute; left: 0; top: 0; width: 56px; height: 6px;
  border-top: 1px solid var(--sang); border-bottom: 1px solid var(--sang);
}

/* ---------- en-tête ---------- */
.fronton { background: var(--chaux); border-bottom: 3px double var(--pierre); position: relative; z-index: 20; }
.fronton-ligne { display: flex; align-items: center; gap: 28px; min-height: 84px; }
.fronton-marque { display: block; flex: 0 0 auto; padding: 8px 0; }
.fronton-marque img { height: 40px; width: auto; }
.fronton-nav { margin-left: auto; }
.fronton-nav ul { list-style: none; margin: 0; padding: 0; display: flex; gap: 6px; }
.fronton-nav a {
  display: inline-flex; align-items: center; min-height: 44px; padding: 0 10px;
  color: var(--charbon); text-decoration: none; font-size: 1rem; font-weight: 500;
}
.fronton-nav a:hover, .fronton-nav a[aria-current="page"] { color: var(--sang); text-decoration: underline; text-decoration-thickness: 2px; text-underline-offset: .4em; }
.fronton-tel-mobile { display: none; }
.fronton-actions { display: flex; align-items: center; gap: 18px; }
.fronton-tel { font-family: var(--f-grave); font-weight: 500; font-size: 1.15rem; color: var(--charbon); text-decoration: none; white-space: nowrap; font-variant-numeric: oldstyle-nums; min-height: 44px; display: inline-flex; align-items: center; }
.fronton-tel:hover { color: var(--sang); }
.fronton-menu { display: none; }

@media (max-width: 1320px) { .fronton-tel { display: none; } }
@media (max-width: 1080px) {
  .fronton-ligne { min-height: 68px; gap: 12px; }
  .fronton-marque img { height: 32px; }
  .fronton-actions { margin-left: auto; gap: 8px; }
  .fronton-menu {
    display: inline-flex; align-items: center; gap: 10px; min-height: 48px; min-width: 48px; padding: 0 12px;
    background: transparent; border: 1px solid var(--charbon); cursor: pointer; font-weight: 600;
  }
  .fronton-menu-traits { width: 18px; height: 10px; border-top: 2px solid currentColor; border-bottom: 2px solid currentColor; }
  .avec-js .fronton-nav {
    position: absolute; left: 0; right: 0; top: 100%; margin: 0;
    background: var(--chaux); border-bottom: 3px double var(--pierre); padding: 8px var(--gouttiere) 24px;
    display: none;
  }
  .avec-js .fronton-nav.ouvert { display: block; }
  .fronton-nav ul { flex-direction: column; gap: 0; }
  .fronton-nav li { border-bottom: 1px solid var(--pierre); }
  .fronton-nav a { font-family: var(--f-grave); font-size: 1.5rem; min-height: 56px; padding: 0; width: 100%; }
  .fronton-tel-mobile { display: block; margin: 16px 0 0; font-size: 1rem; }
  .fronton-tel-mobile a { font-family: var(--f-grave); font-size: 1.35rem; }
  .sans-js .fronton-ligne { flex-wrap: wrap; }
  .sans-js .fronton-nav { order: 3; width: 100%; }
  .sans-js .fronton-nav ul { flex-direction: row; flex-wrap: wrap; }
  .sans-js .fronton-nav li { border: 0; }
  .sans-js .fronton-nav a { font-size: 1.1rem; padding-right: 14px; }
  .sans-js .fronton-menu { display: none; }
}
@media (max-width: 560px) {
  .fronton-marque img { height: 26px; }
  .fronton-actions .bouton { min-height: 48px; padding: 0 .9em; font-size: .95rem; }
  .fronton-menu { padding: 0; width: 48px; justify-content: center; }
  .fronton-menu-mot { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
  .seuil-chapo, .tympan-chapo { font-size: 1.1rem; }
}

/* ---------- seuil (premier écran avec formulaire) ---------- */
.seuil { padding-block: clamp(28px, 4vw, 56px) clamp(56px, 7vw, 112px); }
.seuil-tete { margin-bottom: clamp(20px, 2.4vw, 36px); }
.seuil-sur { font-family: var(--f-grave); font-size: 1.2rem; color: var(--vert); margin: 0 0 8px; }
.seuil-accueil h1 { font-size: var(--t-h1); line-height: 1.0; letter-spacing: -.005em; }
.seuil-grille { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: clamp(24px, 3vw, 48px); align-items: start; }
.seuil-media { grid-column: 1 / span 7; min-width: 0; }
.seuil-devis { grid-column: 8 / -1; min-width: 0; }
.seuil-accueil .media-accueil { aspect-ratio: 3 / 2; overflow: hidden; background: var(--chaux-pierre); }
.seuil-accueil .media-accueil img { width: 100%; height: 100%; object-fit: cover; transform-origin: 62% 40%; }
.seuil-chapo { font-size: 1.25rem; line-height: 1.5; margin: 22px 0 0; max-width: 46ch; }

@media (prefers-reduced-motion: no-preference) {
  .media-anime img { animation: souffle-chaux 26s ease-in-out infinite alternate; will-change: transform; }
}
@keyframes souffle-chaux {
  from { transform: scale(1.0) translate3d(0, 0, 0); }
  to { transform: scale(1.09) translate3d(-1.6%, 1.1%, 0); }
}

/* hero des pages (tympan) */
.tympan { padding-top: 4px; }
.tympan-rubrique { font-family: var(--f-grave); font-size: 1.15rem; margin: 0 0 10px; }
.tympan-rubrique a { color: var(--vert); text-decoration: none; }
.tympan-rubrique a:hover { text-decoration: underline; }
.tympan-titre { font-size: var(--t-h1); line-height: 1.02; }
.seuil-page .tympan-titre { font-size: clamp(2.1rem, 3.5vw, 3.5rem); }
.tympan-chapo { font-size: 1.25rem; line-height: 1.5; margin: 20px 0 0; max-width: 52ch; }
.tympan-image { margin-top: clamp(22px, 3vw, 40px); overflow: hidden; background: var(--chaux-pierre); }
.tympan-image img { width: 100%; aspect-ratio: 3 / 2; object-fit: cover; }
.cadre-tete { padding-top: clamp(28px, 4vw, 56px); }
.cadre-article .tympan-titre { max-width: 26ch; }
.cadre-article .tympan-image img, .cadre-tete .tympan-image img { aspect-ratio: 21 / 9; }

.ariane ol { list-style: none; margin: 0 0 18px; padding: 0; display: flex; flex-wrap: wrap; gap: 4px 0; font-size: var(--t-petit); color: var(--charbon-doux); }
.ariane li + li::before { content: "/"; margin: 0 10px; color: var(--pierre-sombre); }
.ariane a { color: var(--charbon-doux); display: inline-block; padding: 10px 0; }
.ariane a:hover { color: var(--sang); }
.ariane span { display: inline-block; padding: 10px 0; }

.gravure-date { display: flex; flex-wrap: wrap; gap: 6px 28px; margin: 22px 0 0; font-family: var(--f-grave); font-size: 1.1rem; color: var(--charbon-doux); font-variant-numeric: oldstyle-nums; }
.gravure-date span:first-child { color: var(--sang); }

/* ---------- formulaire « linteau » ---------- */
.devis-linteau { background: var(--chaux-pure); }
.devis-bandeau {
  margin: 0; background: var(--sang); color: var(--chaux-pure);
  font-size: 1.5rem; font-weight: 500; padding: 12px 22px 14px; letter-spacing: .02em;
  clip-path: polygon(0 0, 100% 0, 100% calc(100% - 10px), calc(100% - 10px) 100%, 10px 100%, 0 calc(100% - 10px));
}
.devis-corps { padding: 18px 22px 20px; border: 1px solid var(--pierre); border-top: 0; }
.devis-etape { border: 0; margin: 0; padding: 0; min-width: 0; }
.devis-etape > legend { font-weight: 600; font-size: 1rem; padding: 0; margin-bottom: 10px; }
.devis-puces { display: flex; flex-wrap: wrap; gap: 6px; }
.puce { position: relative; display: inline-flex; }
.puce input { position: absolute; opacity: 0; inset: 0; margin: 0; cursor: pointer; }
.puce span {
  display: inline-flex; align-items: center; min-height: 44px; padding: 0 14px;
  border: 1px solid var(--pierre-sombre); font-size: .98rem; background: var(--chaux-pure);
  transition: background-color .2s, color .2s, border-color .2s; cursor: pointer; user-select: none;
}
.puce:hover span { border-color: var(--sang); }
.puce input:checked + span { background: var(--charbon); color: var(--chaux-pure); border-color: var(--charbon); }
.puce input:checked + span::before { content: "\2713"; margin-right: 8px; }
.puce input:focus-visible + span { outline: 3px solid var(--vert); outline-offset: 2px; }
.devis-ligne { display: flex; gap: 12px; align-items: end; margin-top: 14px; }
.devis-ligne .champ { flex: 1 1 auto; margin: 0; }
.champ { margin: 0; min-width: 0; }
.champ label, .champ > legend { display: block; font-weight: 500; font-size: .95rem; margin-bottom: 4px; padding: 0; }
.champ input[type="text"], .champ input[type="tel"], .champ input[type="email"], .champ select, .champ textarea {
  width: 100%; min-height: 48px; padding: 10px 12px; background: var(--chaux-pure);
  border: 1px solid rgba(30, 29, 27, .55); border-radius: 0; font-size: 1rem;
}
.champ select { appearance: none; background-image: linear-gradient(45deg, transparent 50%, var(--charbon) 50%), linear-gradient(135deg, var(--charbon) 50%, transparent 50%); background-position: calc(100% - 20px) 21px, calc(100% - 14px) 21px; background-size: 6px 6px; background-repeat: no-repeat; padding-right: 36px; }
.champ textarea { resize: vertical; min-height: 84px; }
.champ input:focus, .champ select:focus, .champ textarea:focus { border-color: var(--vert); outline: 2px solid var(--vert); outline-offset: 0; }
.champ [aria-invalid="true"] { border-color: var(--erreur); }
.devis-erreur { color: var(--erreur); font-size: .92rem; font-weight: 500; margin: 6px 0 0; }
.devis-etape-2 { margin-top: 22px; padding-top: 18px; border-top: 3px double var(--pierre); }
.devis-grille { display: grid; grid-template-columns: 1fr 1fr; gap: 14px 14px; }
.champ-large { grid-column: 1 / -1; }
.champ-radios { border: 0; padding: 0; margin: 0; display: flex; flex-wrap: wrap; gap: 0 14px; align-items: center; }
.champ-radios legend { width: 100%; }
.radio { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; cursor: pointer; }
.radio input, .devis-accord input { width: 20px; height: 20px; accent-color: var(--sang); margin: 0; flex: 0 0 auto; }
.devis-accord { display: flex; gap: 12px; align-items: flex-start; margin-top: 18px; font-size: .95rem; line-height: 1.5; cursor: pointer; }
.devis-accord input { margin-top: 2px; }
.devis-accord-lien { margin: 4px 0 0 32px; font-size: .92rem; }
.devis-accord-lien a { display: inline-block; padding: 8px 0; }
.devis-envoyer { margin-top: 12px; width: 100%; }
.devis-captcha { margin-top: 18px; min-width: 0; }
.devis-captcha .h-captcha { min-height: 78px; max-width: 100%; }
.devis-captcha .h-captcha iframe { display: block; max-width: 100%; }
.devis-pied { margin: 14px 0 0; font-size: .92rem; color: var(--charbon-doux); display: flex; flex-wrap: wrap; gap: 4px 16px; justify-content: space-between; }
.devis-pied a { font-family: var(--f-grave); font-size: 1.1rem; font-weight: 500; color: var(--sang); white-space: nowrap; }
.avec-js .devis-corps:not(.deplie) .devis-etape-2 { display: none; }
.sans-js .devis-continuer, .devis-corps.deplie .devis-continuer { display: none; }
.devis-continuer { flex: 0 0 auto; }

/* ---------- prose gravée : intertitres en marge, texte sur la largeur restante ---------- */
.corps { padding-block: clamp(40px, 6vw, 96px) var(--pas); }
.prose-gravee { display: grid; grid-template-columns: minmax(0, 4fr) minmax(0, 8fr); column-gap: clamp(28px, 4vw, 72px); align-items: start; }
.prose-gravee > * { grid-column: 2; min-width: 0; }
.prose-gravee > h2 {
  grid-column: 1; grid-row: span 4; font-size: var(--t-h2); margin-top: clamp(48px, 6vw, 88px); padding-top: 22px; position: relative;
}
.prose-gravee > h2::before { content: ""; position: absolute; left: 0; top: 0; width: 56px; height: 6px; border-top: 1px solid var(--sang); border-bottom: 1px solid var(--sang); }
.prose-gravee > h2 + * { margin-top: clamp(48px, 6vw, 88px); padding-top: 22px; }
.prose-gravee > h2:first-child, .prose-gravee > h2:first-child + * { margin-top: 0; }
.prose-gravee > h3 { font-size: var(--t-h3); margin: 1.6em 0 .5em; color: var(--vert); }
.prose-gravee p, .prose-gravee li { max-width: none; }
.prose-gravee ul, .prose-gravee ol { padding-left: 1.2em; margin: 0 0 1.1em; }
.prose-gravee li { margin-bottom: .35em; }
.prose-gravee li::marker { color: var(--sang); }
.prose-gravee strong { font-weight: 650; }
.prose-gravee > p:first-child, .t-accueil .prose-gravee > p:first-of-type { font-size: 1.3rem; line-height: 1.55; }
.prose-gravee table { width: 100%; border-collapse: collapse; margin: 0 0 1.4em; font-size: 1rem; }
.prose-gravee th { font-family: var(--f-grave); font-weight: 500; font-size: 1.1rem; text-align: left; border-bottom: 3px double var(--pierre-sombre); padding: 10px 12px 10px 0; }
.prose-gravee td { border-bottom: 1px solid var(--pierre); padding: 12px 12px 12px 0; vertical-align: top; }
.prose-gravee .table-defile { overflow-x: auto; }
.prose-gravee hr { border: 0; border-top: 3px double var(--pierre); margin: 2em 0; }
.prose-gravee blockquote { margin: 0 0 1.2em; padding-left: 20px; border-left: 3px solid var(--sang); font-size: 1.2rem; }

/* résumé, sommaire, encadré */
.prose-gravee > .table-pierre { grid-column: 1; grid-row: span 12; }
.table-pierre { font-size: .98rem; position: sticky; top: 24px; margin-bottom: 32px; }
.table-pierre-titre { font-family: var(--f-grave); font-size: 1.2rem; margin: 0 0 8px; color: var(--vert); }
.table-pierre ol { list-style: none; padding: 0; margin: 0; counter-reset: pierre; }
.table-pierre li { counter-increment: pierre; border-top: 1px solid var(--pierre); margin: 0; }
.table-pierre a { display: grid; grid-template-columns: 2.2em 1fr; padding: 8px 0; color: var(--charbon); text-decoration: none; line-height: 1.4; min-height: 44px; }
.table-pierre a::before { content: counter(pierre, upper-roman); font-family: var(--f-grave); color: var(--sang); }
.table-pierre a:hover { color: var(--sang); }
.essentiel { background: var(--chaux-pierre); padding: 22px 26px; margin-bottom: 2em; }
.essentiel-titre { font-family: var(--f-grave); font-size: 1.25rem; margin: 0 0 6px; color: var(--sang); }
.essentiel ul { margin: 0; padding-left: 1.1em; }
.essentiel li:last-child { margin-bottom: 0; }
.cartouche { border-top: 3px double var(--sang); border-bottom: 1px solid var(--pierre); padding: 18px 0 8px; margin: .6em 0 1.6em; }
.cartouche-titre { font-family: var(--f-grave); font-size: 1.25rem; color: var(--sang); margin: 0 0 6px; }
.planche { margin: 1em 0 2em; }
.planche figcaption { font-size: var(--t-petit); color: var(--charbon-doux); margin-top: 8px; }

/* FAQ */
.prose-gravee > .questions { grid-column: 1 / -1; display: grid; grid-template-columns: minmax(0, 4fr) minmax(0, 8fr); column-gap: clamp(28px, 4vw, 72px); margin-top: clamp(56px, 7vw, 104px); }
.questions > h2 { font-size: var(--t-h2); padding-top: 22px; position: relative; }
.questions > h2::before { content: ""; position: absolute; left: 0; top: 0; width: 56px; height: 6px; border-top: 1px solid var(--sang); border-bottom: 1px solid var(--sang); }
.questions-liste { padding-top: 14px; }
.questions details { border-top: 1px solid var(--pierre); }
.questions details:last-child { border-bottom: 1px solid var(--pierre); }
.questions summary { list-style: none; cursor: pointer; display: flex; justify-content: space-between; gap: 24px; padding: 18px 0; min-height: 44px; font-family: var(--f-grave); font-size: 1.3rem; line-height: 1.3; }
.questions summary::-webkit-details-marker { display: none; }
.questions summary::after { content: "+"; font-family: var(--f-texte); font-weight: 300; font-size: 1.8rem; line-height: 1; color: var(--sang); flex: 0 0 auto; }
.questions details[open] summary::after { content: "\2212"; }
.questions summary:hover span { color: var(--sang); }
.questions-reponse { padding: 0 0 18px; }
.questions-reponse p { margin: 0; }

/* relais IA */
.relais-ia { margin-top: clamp(48px, 6vw, 80px); padding: 22px 0 0; border-top: 3px double var(--pierre); font-size: .98rem; }
.relais-ia-titre { font-family: var(--f-grave); font-size: 1.2rem; margin: 0 0 10px; }
.relais-ia ul { list-style: none; padding: 0; margin: 0 0 10px; display: flex; flex-wrap: wrap; gap: 8px; }
.relais-ia li { margin: 0; }
.relais-ia ul a { display: inline-flex; align-items: center; min-height: 44px; padding: 0 14px; border: 1px solid var(--pierre-sombre); color: var(--charbon); text-decoration: none; }
.relais-ia ul a:hover { border-color: var(--sang); color: var(--sang); }
.relais-ia-md { display: flex; flex-wrap: wrap; gap: 10px 20px; align-items: center; }
.relais-ia-md a { display: inline-block; padding: 10px 0; }
.relais-ia-copie { min-height: 44px; padding: 0 14px; background: transparent; border: 1px solid var(--pierre-sombre); cursor: pointer; }
.relais-ia-copie:hover { border-color: var(--sang); }
.relais-ia-note { color: var(--charbon-doux); font-size: .92rem; margin-top: 8px; }
.signature { margin-top: 32px; }

/* ---------- catalogue (tableau à filets gravés) ---------- */
.catalogue { padding-block: var(--pas); background: var(--chaux-pure); }
.catalogue-grille { display: grid; grid-template-columns: minmax(0, 4fr) minmax(0, 8fr); column-gap: clamp(28px, 4vw, 72px); align-items: start; }
.catalogue-intro p { margin-top: 20px; font-size: 1.15rem; max-width: 34ch; }
.catalogue-liste { list-style: none; margin: 0; padding: 0; border-top: 3px double var(--pierre-sombre); }
.catalogue-liste li { border-bottom: 1px solid var(--pierre); }
.catalogue-liste a {
  display: grid; grid-template-columns: minmax(0, 15rem) minmax(0, 1fr) 28px; gap: 20px; align-items: baseline;
  padding: 16px 0; color: var(--charbon); text-decoration: none; transition: padding .3s var(--courbe), color .2s;
}
.catalogue-nom { font-family: var(--f-grave); font-size: 1.45rem; font-weight: 500; line-height: 1.2; }
.catalogue-detail { color: var(--charbon-doux); font-size: 1rem; line-height: 1.45; }
.catalogue-fleche { width: 22px; height: 12px; align-self: center; position: relative; }
.catalogue-fleche::before { content: ""; position: absolute; left: 0; right: 4px; top: 5px; border-top: 2px solid var(--sang); }
.catalogue-fleche::after { content: ""; position: absolute; right: 2px; top: 1px; width: 8px; height: 8px; border-top: 2px solid var(--sang); border-right: 2px solid var(--sang); transform: rotate(45deg); }
.catalogue-liste a:hover { color: var(--sang); padding-left: 10px; }
.catalogue-liste a:hover .catalogue-detail { color: var(--charbon); }
.catalogue-page { background: var(--chaux-pierre); }

/* ---------- gravure (le linteau à son nom) ---------- */
.gravure { padding-block: var(--pas); }
.gravure-grille { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); column-gap: clamp(28px, 5vw, 96px); align-items: center; }
.gravure-texte > p { font-size: 1.15rem; margin-top: 20px; }
.gravure-form { display: flex; gap: 12px; margin: 26px 0 18px; }
.gravure-form .champ { flex: 1 1 auto; }
.gravure-form .champ-annee { flex: 0 0 7.5rem; }
.linteau-pierre {
  position: relative; background: #D9CFBF; color: #3A3229;
  padding: clamp(26px, 4vw, 52px) clamp(20px, 4vw, 56px) clamp(22px, 3.4vw, 44px);
  display: grid; grid-template-columns: 1fr; justify-items: center; text-align: center; gap: 4px;
  clip-path: polygon(0 0, 100% 0, 100% calc(100% - 22px), calc(100% - 22px) 100%, 22px 100%, 0 calc(100% - 22px));
  background-image: radial-gradient(rgba(58, 50, 41, .07) 1px, transparent 1.4px), radial-gradient(rgba(255, 255, 255, .25) 1px, transparent 1.6px);
  background-size: 7px 7px, 11px 11px; background-position: 0 0, 3px 5px;
}
.linteau-croix { width: 34px; height: 34px; border: 3px solid currentColor; transform: rotate(45deg); opacity: .55; margin-bottom: 14px; }
.linteau-nom {
  font-family: var(--f-grave); font-weight: 700; font-size: clamp(2rem, 5.4vw, 4.6rem); line-height: 1; letter-spacing: .06em;
  color: #3A3229; text-shadow: 0 1px 0 rgba(255, 255, 255, .55), 0 -1px 0 rgba(0, 0, 0, .28);
  overflow-wrap: anywhere; max-width: 100%;
}
.linteau-annee { font-family: var(--f-grave); font-size: clamp(1.4rem, 2.6vw, 2.2rem); letter-spacing: .3em; color: #3A3229; text-shadow: 0 1px 0 rgba(255, 255, 255, .55), 0 -1px 0 rgba(0, 0, 0, .25); }
.linteau-jambages { display: grid; grid-template-columns: 14% 1fr 14%; height: clamp(70px, 10vw, 150px); }
.linteau-jambages span:first-child, .linteau-jambages span:last-child { background: #CDBFAB; }
.linteau-porte { background: var(--vert); margin: 0 6%; }

/* ---------- villages ---------- */
.villages { padding-block: var(--pas); background: var(--charbon); color: var(--chaux); }
.villages a { color: var(--chaux); }
.villages .inscription::before { border-color: #E6B7A9; }
.villages-grille { display: grid; grid-template-columns: minmax(0, 4fr) minmax(0, 8fr); column-gap: clamp(28px, 4vw, 72px); align-items: start; }
.villages-intro p { margin-top: 20px; font-size: 1.1rem; color: #E9E4DA; max-width: 36ch; }
.villages .lien-trait { color: var(--chaux); }
.villages-liste { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border-top: 3px double #6E675C; }
.villages-liste li { border-bottom: 1px solid #4A4640; }
.villages-liste a { display: flex; flex-direction: column; gap: 2px; padding: 18px 16px 18px 0; text-decoration: none; min-height: 44px; transition: color .2s; }
.villages-nom { font-family: var(--f-grave); font-size: 1.5rem; line-height: 1.15; }
.villages-province { font-size: .95rem; color: #CFC8BB; }
.villages-liste a:hover .villages-nom { color: #F2C9BD; text-decoration: underline; text-underline-offset: .2em; }

/* ---------- rubriques (mur de vignettes inégales) ---------- */
.rubriques { padding-block: var(--pas); }
.rubriques-mur { list-style: none; margin: clamp(32px, 4vw, 56px) 0 0; padding: 0; display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: clamp(20px, 2.4vw, 36px); align-items: start; }
.rubriques-mur li { grid-column: span 4; }
.rubriques-mur li:nth-child(1) { grid-column: 1 / span 5; }
.rubriques-mur li:nth-child(2) { grid-column: 7 / span 6; margin-top: 64px; }
.rubriques-mur li:nth-child(3) { grid-column: 2 / span 4; }
.rubriques-mur li:nth-child(4) { grid-column: 6 / span 3; margin-top: 96px; }
.rubriques-mur li:nth-child(5) { grid-column: 9 / span 4; margin-top: 24px; }
.rubriques-mur a { display: flex; flex-direction: column; gap: 6px; color: var(--charbon); text-decoration: none; }
.rubriques-img { display: block; overflow: hidden; background: var(--chaux-pierre); margin-bottom: 10px; }
.rubriques-img img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; transition: transform 1.2s var(--courbe); }
.rubriques-mur li:nth-child(2) .rubriques-img img { aspect-ratio: 16 / 10; }
.rubriques-mur li:nth-child(4) .rubriques-img img { aspect-ratio: 4 / 5; }
.rubriques-mur a:hover .rubriques-img img { transform: scale(1.04); }
.rubriques-nom { font-family: var(--f-grave); font-size: 1.5rem; line-height: 1.15; }
.rubriques-mur a:hover .rubriques-nom { color: var(--sang); }
.rubriques-acc { color: var(--charbon-doux); font-size: 1rem; line-height: 1.5; }
.rubriques-nb { font-family: var(--f-grave); color: var(--vert); font-size: 1.05rem; }

/* ---------- journal / registre des conseils ---------- */
.journal { padding-block: var(--pas); }
.corps + .journal { padding-top: 0; }
.journal-tete { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: end; gap: 12px 24px; margin-bottom: clamp(24px, 3vw, 40px); }
.journal-compte { font-family: var(--f-grave); font-size: 1.2rem; color: var(--vert); }
.registre { border-top: 3px double var(--pierre-sombre); }
.registre-ligne {
  display: grid; grid-template-columns: minmax(0, 3fr) minmax(0, 6fr) minmax(0, 3fr); column-gap: clamp(20px, 3vw, 48px);
  padding: 22px 0; border-bottom: 1px solid var(--pierre); align-items: start; position: relative;
}
.registre-date { margin: 0; font-family: var(--f-grave); font-size: 1.15rem; color: var(--sang); display: flex; flex-direction: column; font-variant-numeric: oldstyle-nums; }
.registre-date span { color: var(--vert); font-size: 1rem; }
.registre-texte h3 { font-size: clamp(1.35rem, 1.9vw, 1.75rem); line-height: 1.15; margin-bottom: 8px; }
.registre-texte h3 a { color: var(--charbon); text-decoration: none; }
.registre-texte h3 a::after { content: ""; position: absolute; inset: 0; }
.registre-ligne:hover h3 a { color: var(--sang); }
.registre-texte p { margin: 0; color: var(--charbon-doux); font-size: 1rem; }
.registre-image { overflow: hidden; background: var(--chaux-pierre); }
.registre-image img { width: 100%; aspect-ratio: 3 / 2; object-fit: cover; transition: transform 1s var(--courbe); }
.registre-ligne:hover .registre-image img { transform: scale(1.04); }
.registre-ligne:focus-within { outline: 3px solid var(--vert); outline-offset: 4px; }
.registre-ligne:focus-within h3 a:focus-visible { outline: none; }
.vide { font-family: var(--f-grave); font-size: 1.3rem; color: var(--charbon-doux); }
.voisinage { padding-block: 0 var(--pas); }
.voisinage .inscription { margin-bottom: clamp(24px, 3vw, 40px); }

/* ---------- envoi (bandeau final « linteau ») ---------- */
.envoi { padding-block: var(--pas); }
.envoi-in {
  background: var(--sang); color: var(--chaux-pure); padding-block: clamp(40px, 6vw, 88px);
  clip-path: polygon(0 0, 100% 0, 100% calc(100% - 24px), calc(100% - 24px) 100%, 24px 100%, 0 calc(100% - 24px));
  display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); column-gap: 48px; align-items: end;
  max-width: calc(var(--largeur) - 2 * var(--gouttiere)); margin-inline: auto; padding-inline: clamp(24px, 5vw, 72px);
}
.envoi { padding-inline: var(--gouttiere); }
.envoi h2 { font-size: var(--t-h2); grid-column: 1; grid-row: 1 / span 2; }
.envoi p { margin: 0 0 14px; grid-column: 2; font-size: 1.1rem; }
.envoi p:last-child { margin: 0; display: flex; flex-wrap: wrap; gap: 12px 24px; align-items: center; }
.envoi-tel { color: var(--chaux-pure); font-family: var(--f-grave); font-size: 1.35rem; white-space: nowrap; }
.envoi-tel:hover { color: var(--chaux-pure); }
.envoi-article, .journal + .envoi { padding-top: 0; }
.recit { padding-bottom: var(--pas); }

/* ---------- pied (soubassement) ---------- */
.soubassement { background: var(--charbon); color: #E9E4DA; padding-top: clamp(56px, 8vw, 120px); }
.soubassement a { color: var(--chaux); text-decoration: none; }
.soubassement a:hover { color: #F2C9BD; text-decoration: underline; }
.soubassement a.bouton-chaux, .soubassement a.bouton-chaux:hover { color: var(--sang); text-decoration: none; }
.soubassement-nom {
  font-family: var(--f-grave); font-weight: 500; color: var(--chaux); margin: 0 0 clamp(36px, 5vw, 72px);
  font-size: clamp(2.6rem, 7.6vw, 7.4rem); line-height: .95; letter-spacing: -.01em;
  padding-bottom: clamp(20px, 3vw, 40px); border-bottom: 3px double #6E675C;
}
.soubassement-grille { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 36px clamp(24px, 3vw, 48px); }
.soubassement-titre { font-family: var(--f-grave); font-size: 1.2rem; color: #F2C9BD; margin: 0 0 10px; }
.soubassement ul { list-style: none; margin: 0; padding: 0; }
.soubassement li a { display: inline-block; padding: 5px 0; font-size: .98rem; }
.soubassement-contact p { margin: 0 0 12px; }
.soubassement-tel { font-family: var(--f-grave); font-size: 1.7rem; display: inline-block; min-height: 44px; }
.soubassement-bas { margin-top: clamp(48px, 6vw, 80px); padding: 22px 0 32px; border-top: 1px solid #4A4640; font-size: .9rem; color: #CFC8BB; display: grid; grid-template-columns: minmax(0, 8fr) minmax(0, 4fr); gap: 16px 48px; }
.soubassement-bas p { margin: 0; }
.soubassement-bas p:last-child { text-align: right; }

/* ---------- 404 ---------- */
.egare { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: clamp(24px, 4vw, 64px); align-items: end; }
.egare-pierre {
  background: #D9CFBF; color: #3A3229; text-align: center; padding: clamp(24px, 4vw, 48px) 12px;
  clip-path: polygon(0 0, 100% 0, 100% calc(100% - 18px), calc(100% - 18px) 100%, 18px 100%, 0 calc(100% - 18px));
}
.egare-pierre span { font-family: var(--f-grave); font-weight: 700; font-size: clamp(4rem, 12vw, 10rem); line-height: 1; letter-spacing: .08em; text-shadow: 0 1px 0 rgba(255,255,255,.55), 0 -1px 0 rgba(0,0,0,.28); }
.egare-liens { list-style: none; padding: 0 !important; margin: 1em 0 0; display: flex; flex-wrap: wrap; gap: 8px; }
.egare-liens a { display: inline-flex; align-items: center; min-height: 44px; padding: 0 14px; border: 1px solid var(--pierre-sombre); color: var(--charbon); text-decoration: none; }
.egare-liens a:hover { border-color: var(--sang); color: var(--sang); }
.egare-texte > p:first-child { font-size: 1.25rem; }

/* ---------- révélations discrètes ---------- */
@media (prefers-reduced-motion: no-preference) {
  .avec-js .monte { opacity: 0; transform: translateY(22px); transition: opacity .8s var(--courbe), transform .8s var(--courbe); }
  .avec-js .monte.vu { opacity: 1; transform: none; }
  .catalogue-liste li.monte:nth-child(3n+2) { transition-delay: .06s; }
  .catalogue-liste li.monte:nth-child(3n) { transition-delay: .12s; }
}

/* ---------- tablettes et mobiles ---------- */
@media (max-width: 1000px) {
  .seuil-grille { grid-template-columns: minmax(0, 1fr); row-gap: 28px; }
  .seuil-media, .seuil-devis { grid-column: 1; }
  .seuil-accueil .media-accueil { aspect-ratio: 16 / 10; }
  .prose-gravee, .prose-gravee > .questions, .catalogue-grille, .villages-grille, .gravure-grille, .egare { grid-template-columns: minmax(0, 1fr); }
  .prose-gravee > *, .prose-gravee > h2, .prose-gravee > .table-pierre, .questions > * { grid-column: 1; grid-row: auto; }
  .prose-gravee > h2 + * { margin-top: 18px; padding-top: 0; }
  .prose-gravee > h2:first-child + * { margin-top: 18px; }
  .table-pierre { position: static; }
  .catalogue-intro, .villages-intro { margin-bottom: 28px; }
  .gravure-pierre { margin-top: 36px; }
  .villages-liste { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .soubassement-grille { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .envoi-in { grid-template-columns: minmax(0, 1fr); }
  .envoi h2, .envoi p { grid-column: 1; grid-row: auto; }
  .envoi h2 { margin-bottom: 18px; }
  .rubriques-mur li:nth-child(n) { grid-column: span 6; margin-top: 0; }
  .rubriques-mur li:nth-child(even) { margin-top: 48px; }
}
@media (max-width: 640px) {
  :root { --t-corps: 1.0625rem; }
  .seuil-accueil h1 { font-size: clamp(2rem, 9.4vw, 2.6rem); }
  .tympan-titre, .seuil-page .tympan-titre { font-size: clamp(1.9rem, 8.6vw, 2.5rem); }
  .devis-corps { padding: 16px 14px 18px; }
  .devis-ligne { flex-direction: column; align-items: stretch; }
  .devis-grille { grid-template-columns: minmax(0, 1fr); }
  .puce span { padding: 0 11px; font-size: .95rem; }
  .catalogue-liste a { grid-template-columns: minmax(0, 1fr) 24px; gap: 4px 12px; }
  .catalogue-nom { grid-column: 1; }
  .catalogue-detail { grid-column: 1; grid-row: 2; }
  .catalogue-fleche { grid-column: 2; grid-row: 1 / span 2; }
  .villages-liste { grid-template-columns: minmax(0, 1fr); }
  .registre-ligne { grid-template-columns: minmax(0, 1fr) 34%; row-gap: 8px; }
  .registre-date { grid-column: 1 / -1; flex-direction: row; gap: 14px; }
  .registre-texte { grid-column: 1; }
  .registre-image { grid-column: 2; grid-row: 2; }
  .registre-texte h3 { font-size: 1.25rem; }
  .registre-texte p { display: none; }
  .rubriques-mur li:nth-child(n) { grid-column: 1 / -1; margin-top: 0; }
  .rubriques-mur li:nth-child(even) { grid-column: 3 / -1; }
  .rubriques-mur li:nth-child(3) { grid-column: 1 / span 10; }
  .soubassement-grille { grid-template-columns: minmax(0, 1fr); }
  .soubassement-bas { grid-template-columns: minmax(0, 1fr); }
  .soubassement-bas p:last-child { text-align: left; }
  .gravure-form { flex-wrap: wrap; }
  .gravure-form .champ-annee { flex: 1 1 6rem; }
  .questions summary { font-size: 1.15rem; }
  .cadre-article .tympan-image img, .cadre-tete .tympan-image img { aspect-ratio: 3 / 2; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { transition-duration: .01ms !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; }
  .media-anime img { animation: none !important; }
}
@media print {
  .fronton-actions, .fronton-nav, .devis-linteau, .envoi, .soubassement-grille, .relais-ia { display: none !important; }
}

/* correctifs formulaire */
.devis-etape > legend { float: left; width: 100%; }
.devis-etape > legend + * { clear: both; }
.champ-radios .radio { display: inline-flex; margin: 0; font-weight: 400; font-size: 1rem; }
.champ-radios > legend { float: left; width: 100%; }
.ariane ol { display: block; line-height: 1.5; }
.ariane li { display: inline; }
.ariane a, .ariane span { padding: 12px 0; display: inline; }
@media (max-width: 640px) { .ariane li:last-child { display: none; } .ariane li:nth-last-child(2)::after { content: ""; } }
@media (max-width: 640px) { .prose-gravee > p:first-child, .t-accueil .prose-gravee > p:first-of-type { font-size: 1.15rem; } }

/* =========================================================
   Passe « haut de gamme » : photo pleine hauteur, garanties numérotées,
   planches légendées, rappels de devis
   ========================================================= */
.seuil-accueil { padding: 0 0 clamp(56px, 7vw, 104px); }
.seuil-plein {
  display: grid; grid-template-columns: minmax(0, 1fr) minmax(360px, 30rem); column-gap: clamp(24px, 3vw, 48px);
  padding-right: max(var(--gouttiere), calc((100vw - var(--largeur)) / 2 + var(--gouttiere)));
  align-items: start;
}
.seuil-photo { position: relative; overflow: hidden; height: clamp(560px, calc(100svh - 84px), 860px); background: var(--charbon); }
.seuil-accueil .seuil-photo .media-accueil { position: absolute; inset: 0; aspect-ratio: auto; height: 100%; }
.seuil-accueil .seuil-photo .media-accueil img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 45%; }
.seuil-photo::after { content: ""; position: absolute; inset: 0; pointer-events: none;
  background: linear-gradient(180deg, rgba(20, 18, 16, 0) 38%, rgba(20, 18, 16, .66) 100%); }
.seuil-titre {
  position: absolute; z-index: 2; left: 0; right: 0; bottom: 0; color: var(--chaux);
  padding: 0 clamp(24px, 3vw, 48px) clamp(28px, 4vw, 56px) max(var(--gouttiere), calc((100vw - var(--largeur)) / 2 + var(--gouttiere)));
}
.seuil-titre .seuil-sur { color: #E9DCCB; font-size: 1.25rem; margin-bottom: 10px; }
.seuil-accueil .seuil-titre h1 { font-size: clamp(2.5rem, 4.4vw, 4.6rem); line-height: .98; letter-spacing: -.005em; max-width: 15ch; color: var(--chaux-pure); }
.seuil-titre .seuil-chapo { color: #F1EBE1; margin-top: 18px; max-width: 44ch; font-size: 1.15rem; }
.seuil-accueil .seuil-devis { padding-top: clamp(24px, 3vw, 40px); }
.devis-bandeau span { display: block; font-family: var(--f-texte); font-size: .9rem; font-weight: 500; letter-spacing: .01em; color: #F3D9D0; margin-top: 2px; }

.garanties { list-style: none; margin: clamp(32px, 4vw, 56px) 0 0; padding: 0; display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); border-top: 3px double var(--pierre-sombre); }
.garanties li { padding: 20px 20px 4px 0; display: flex; flex-direction: column; gap: 6px; }
.garanties li + li { padding-left: 20px; border-left: 1px solid var(--pierre); }
.garanties-n { font-family: var(--f-grave); font-size: 2.4rem; line-height: 1; color: var(--sang); font-variant-numeric: oldstyle-nums; }
.garanties-t { font-family: var(--f-grave); font-size: 1.3rem; line-height: 1.15; }
.garanties-d { font-size: .98rem; color: var(--charbon-doux); line-height: 1.5; }
.garanties-tel { justify-content: flex-end; }
.garanties-tel a { font-family: var(--f-grave); font-size: clamp(1.6rem, 2.2vw, 2.1rem); color: var(--sang); text-decoration: none; white-space: nowrap; min-height: 44px; display: inline-flex; align-items: center; }
.garanties-tel a:hover { text-decoration: underline; }

/* vitrine : grandes planches inégales */
.vitrine { padding-block: var(--pas) 0; }
.vitrine-tete { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); column-gap: 48px; align-items: end; margin-bottom: clamp(32px, 4vw, 56px); }
.vitrine-tete p { margin: 0; font-size: 1.15rem; }
.vitrine-grille { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: clamp(20px, 2.4vw, 36px); row-gap: clamp(28px, 3vw, 48px); }
.vitrine-piece { margin: 0; }
.vitrine-piece:nth-child(1) { grid-column: 1 / span 7; grid-row: 1 / span 2; }
.vitrine-piece:nth-child(2) { grid-column: 8 / -1; }
.vitrine-piece:nth-child(3) { grid-column: 8 / -1; }
.vitrine-piece a { display: block; color: var(--charbon); text-decoration: none; }
.vitrine-piece picture { overflow: hidden; background: var(--chaux-pierre); }
.vitrine-piece img { width: 100%; aspect-ratio: 3 / 2; object-fit: cover; transition: transform 1.4s var(--courbe); }
.vitrine-piece:nth-child(1) img { aspect-ratio: 4 / 5; }
.vitrine-piece a:hover img { transform: scale(1.035); }
.vitrine-piece figcaption { display: grid; grid-template-columns: auto 1fr; column-gap: 14px; padding-top: 12px; border-top: 1px solid var(--pierre); margin-top: 12px; }
.vitrine-n { font-family: var(--f-grave); color: var(--sang); grid-row: span 2; font-size: 1.05rem; padding-top: 3px; }
.vitrine-nom { font-family: var(--f-grave); font-size: 1.5rem; line-height: 1.15; }
.vitrine-piece a:hover .vitrine-nom { color: var(--sang); }
.vitrine-legende { font-size: .95rem; color: var(--charbon-doux); }

/* légendes de planche */
.legende { font-size: .92rem; color: var(--charbon-doux); margin: 10px 0 0; padding-top: 10px; border-top: 1px solid var(--pierre); }
.legende span { font-family: var(--f-grave); color: var(--sang); margin-right: 8px; }

/* pages à formulaire : photo plus présente */
.seuil-page .tympan-image img { aspect-ratio: 4 / 3; }
/* articles : photo en pleine largeur d'écran */
.cadre-article .tympan-image { width: 100vw; margin-left: calc(50% - 50vw); }
.cadre-article .tympan-image img { aspect-ratio: 21 / 9; max-height: 78svh; }
.cadre-article .legende { margin-top: 12px; }

/* colonne gauche : sommaire + rappel de devis */
.prose-gravee > .colonne-pierre { grid-column: 1; grid-row: span 12; align-self: stretch; }
.colonne-pierre .table-pierre { position: static; }
.rappel { position: sticky; top: 24px; background: var(--charbon); color: var(--chaux); padding: 22px 22px 18px;
  clip-path: polygon(0 0, 100% 0, 100% calc(100% - 14px), calc(100% - 14px) 100%, 14px 100%, 0 calc(100% - 14px)); margin-top: 8px; }
.rappel-titre { font-family: var(--f-grave); font-size: 1.35rem; margin: 0 0 6px; }
.rappel p { font-size: .98rem; }
.rappel .bouton { width: 100%; }
.rappel-tel { margin: 10px 0 0; text-align: center; }
.rappel-tel a { color: var(--chaux); font-family: var(--f-grave); font-size: 1.3rem; text-decoration: none; display: inline-block; min-height: 44px; line-height: 44px; }
.rappel-tel a:hover { text-decoration: underline; }

@media (max-width: 1000px) {
  .seuil-plein { grid-template-columns: minmax(0, 1fr); padding-right: 0; row-gap: 0; }
  .seuil-photo { height: clamp(460px, 74svh, 640px); }
  .seuil-titre { padding-left: var(--gouttiere); padding-right: var(--gouttiere); }
  .seuil-accueil .seuil-devis { padding: 24px var(--gouttiere) 0; }
  .garanties { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .garanties li, .garanties li + li { padding: 18px 14px 14px 0; border-left: 0; border-bottom: 1px solid var(--pierre); }
  .garanties-tel { grid-column: 1 / -1; }
  .vitrine-tete { grid-template-columns: minmax(0, 1fr); row-gap: 16px; }
  .vitrine-piece:nth-child(n) { grid-column: 1 / -1; grid-row: auto; }
  .vitrine-piece:nth-child(1) img { aspect-ratio: 4 / 4.4; }
  .prose-gravee > .colonne-pierre { grid-row: auto; }
  .rappel { position: static; }
}
@media (max-width: 640px) {
  .seuil-accueil .seuil-titre h1 { font-size: clamp(2.05rem, 9.6vw, 2.7rem); }
  .seuil-titre .seuil-chapo { font-size: 1rem; }
  .garanties-n { font-size: 1.9rem; }
  .garanties-t { font-size: 1.15rem; }
  .cadre-article .tympan-image img { aspect-ratio: 4 / 3; }
}
.seuil-plein > .seuil-photo { grid-column: 1; grid-row: 1; }
.seuil-plein > .seuil-devis { grid-column: 2; grid-row: 1; }
@media (max-width: 1000px) { .seuil-plein > .seuil-devis { grid-column: 1; grid-row: 2; } }
.seuil-photo::after { background: linear-gradient(180deg, rgba(20, 18, 16, 0) 22%, rgba(20, 18, 16, .5) 55%, rgba(20, 18, 16, .82) 100%), linear-gradient(90deg, rgba(20, 18, 16, .35) 0%, rgba(20, 18, 16, 0) 60%); }
.seuil-accueil .seuil-titre h1 { font-size: clamp(2.4rem, 3.7vw, 4.1rem); max-width: 19ch; }
.seuil-titre .seuil-sur { text-shadow: 0 1px 2px rgba(0, 0, 0, .4); }
.seuil-accueil { padding-bottom: 0; }
.vitrine { padding-top: clamp(64px, 8vw, 128px); }
.catalogue-photo { margin: clamp(28px, 3vw, 44px) 0 0; position: sticky; top: 24px; }
.catalogue-photo img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; }
.bandeau-photo { margin: 0 0 clamp(24px, 3vw, 40px); }
.bandeau-photo img { width: 100%; height: clamp(380px, 72svh, 760px); object-fit: cover; }
.bandeau-photo .legende { border-top: 0; }
.recit { padding-top: clamp(32px, 4vw, 56px); }
@media (max-width: 1000px) { .catalogue-photo { position: static; } .catalogue-photo img { aspect-ratio: 3 / 2; } }
/* sommaire en index pleine largeur + rappel de devis à côté */
.prose-gravee > .colonne-pierre { grid-column: 1 / -1; grid-row: auto; display: grid; grid-template-columns: minmax(0, 8fr) minmax(0, 4fr); column-gap: clamp(28px, 4vw, 72px); align-items: start; margin-bottom: clamp(40px, 5vw, 72px); padding-bottom: clamp(28px, 3vw, 40px); border-bottom: 3px double var(--pierre); }
.colonne-pierre .table-pierre { margin: 0; }
.colonne-pierre .table-pierre ol { columns: 2; column-gap: 36px; }
.colonne-pierre .table-pierre li { break-inside: avoid; }
.colonne-pierre .rappel { position: static; margin: 0; }
@media (max-width: 1000px) {
  .prose-gravee > .colonne-pierre { grid-template-columns: minmax(0, 1fr); row-gap: 24px; }
  .colonne-pierre .table-pierre ol { columns: 1; }
}
@media (max-width: 1000px) { .seuil-accueil .seuil-photo .media-accueil img { object-position: 32% 55%; } }
