/*
 * Atelier Elzevir — direction artistique Reliure & Dorure 2026
 * CSS natif, sans framework ni police distante.
 */
:root {
  color-scheme: light;
  --paper: #f1ebdf;
  --paper-2: #f8f4eb;
  --paper-3: #e8dfcf;
  --ink: #171310;
  --ink-soft: #4d453e;
  --night: #0e0c0b;
  --night-2: #17120f;
  --wine: #651e2a;
  --wine-deep: #3c0f17;
  --wine-light: #873044;
  --gold: #c8a45d;
  --gold-bright: #e2c986;
  --gold-muted: #9d7b3f;
  --line: rgba(34, 25, 20, .16);
  --line-light: rgba(255, 244, 220, .16);
  --white: #fffdfa;
  --shadow: 0 24px 80px rgba(24, 15, 11, .15);
  --shadow-dark: 0 28px 90px rgba(0, 0, 0, .35);
  --serif: Georgia, "Times New Roman", Times, serif;
  --sans: Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
  --ease: cubic-bezier(.2, .75, .25, 1);
  --header-h: 78px;
  --scroll-progress: 0;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; background: var(--night); }
body {
  margin: 0;
  background:
    radial-gradient(circle at 15% 20%, rgba(137, 92, 52, .08), transparent 28rem),
    var(--paper);
  color: var(--ink);
  font-family: var(--sans);
  font-size: 16px;
  line-height: 1.65;
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
}
body::before {
  content: "";
  position: fixed;
  inset: 0;
  z-index: 50;
  pointer-events: none;
  opacity: .055;
  background-image: url("../img/paper-texture.webp");
  background-size: 360px 360px;
  mix-blend-mode: multiply;
}
img { display: block; max-width: 100%; height: auto; }
a { color: inherit; text-decoration: none; }
button, input, select, textarea { font: inherit; }
button { color: inherit; }
p, h1, h2, h3, h4, ul, ol, dl, figure, blockquote { margin-top: 0; }
::selection { color: var(--white); background: var(--wine); }

.skip-link {
  position: fixed;
  z-index: 999;
  left: 1rem;
  top: 1rem;
  transform: translateY(-180%);
  padding: .75rem 1rem;
  background: var(--white);
  color: var(--ink);
  border-radius: 4px;
  box-shadow: var(--shadow);
}
.skip-link:focus { transform: none; }
.shell { width: min(1380px, calc(100% - 7rem)); margin-inline: auto; position: relative; }

.top-progress {
  position: fixed;
  z-index: 170;
  inset: 0 0 auto 0;
  height: 2px;
  background: rgba(255,255,255,.08);
  pointer-events: none;
}
.top-progress span {
  display: block;
  width: calc(var(--scroll-progress) * 100%);
  height: 100%;
  background: linear-gradient(90deg, var(--wine-light), var(--gold-bright));
  box-shadow: 0 0 18px rgba(226, 201, 134, .55);
}
.spine-rail {
  position: fixed;
  z-index: 90;
  left: 22px;
  top: 23vh;
  width: 1px;
  height: 54vh;
  background: linear-gradient(to bottom, transparent, rgba(201,164,93,.55) 12%, rgba(201,164,93,.55) 88%, transparent);
  pointer-events: none;
}
.spine-rail::before,
.spine-rail::after {
  content: "";
  position: absolute;
  left: -3px;
  width: 7px;
  height: 7px;
  border: 1px solid rgba(201,164,93,.7);
  border-radius: 50%;
}
.spine-rail::before { top: 7%; }
.spine-rail::after { bottom: 7%; }
.spine-stitch {
  position: absolute;
  left: -2px;
  top: 14%;
  bottom: 14%;
  width: 5px;
  background: repeating-linear-gradient(to bottom, transparent 0 13px, rgba(201,164,93,.75) 13px 17px, transparent 17px 28px);
}
.spine-folio {
  position: absolute;
  left: -7px;
  top: calc(var(--scroll-progress) * 78% + 10%);
  transform: translate(-50%, -50%);
  min-width: 32px;
  padding: 5px 4px;
  color: var(--gold-bright);
  background: var(--night);
  border: 1px solid rgba(201,164,93,.45);
  font: 600 9px/1 var(--sans);
  letter-spacing: .15em;
  text-align: center;
  transition: top .18s linear;
}

.site-header {
  position: fixed;
  z-index: 160;
  inset: 2px 0 auto;
  height: var(--header-h);
  color: var(--paper-2);
  transition: background .45s var(--ease), box-shadow .45s var(--ease), color .35s var(--ease), transform .45s var(--ease);
}
.site-header::after {
  content: "";
  position: absolute;
  inset: auto 0 0;
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(201,164,93,.42), transparent);
  opacity: .55;
}
.site-header.is-scrolled {
  background: rgba(14,12,11,.91);
  box-shadow: 0 14px 48px rgba(0,0,0,.18);
  backdrop-filter: blur(18px) saturate(1.15);
}
.header-shell { height: 100%; display: grid; grid-template-columns: 240px 1fr auto; align-items: center; gap: 2rem; }
.brand { color: var(--gold-bright); width: 214px; transition: opacity .25s ease; }
.brand:hover { opacity: .78; }
.brand img { width: 100%; }
.main-nav { display: flex; align-items: center; justify-content: center; gap: clamp(1rem, 2vw, 2.2rem); }
.main-nav a {
  position: relative;
  padding: 1rem 0;
  color: rgba(255,250,239,.78);
  font-size: .78rem;
  font-weight: 600;
  letter-spacing: .07em;
}
.main-nav a::after {
  content: "";
  position: absolute;
  left: 0;
  right: 100%;
  bottom: .72rem;
  height: 1px;
  background: var(--gold-bright);
  transition: right .35s var(--ease);
}
.main-nav a:hover,
.main-nav a[aria-current="page"] { color: var(--white); }
.main-nav a:hover::after,
.main-nav a[aria-current="page"]::after { right: 0; }
.header-cta {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .65rem;
  min-height: 43px;
  padding: .7rem 1.15rem;
  border: 1px solid rgba(226,201,134,.55);
  color: var(--white);
  font-size: .75rem;
  font-weight: 700;
  letter-spacing: .04em;
  transition: background .3s ease, color .3s ease, transform .3s var(--ease);
}
.header-cta:hover { color: var(--night); background: var(--gold-bright); transform: translateY(-2px); }
.menu-button { display: none; }

.button {
  --button-bg: transparent;
  --button-color: var(--ink);
  --button-border: transparent;
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .7rem;
  min-height: 50px;
  padding: .85rem 1.35rem;
  border: 1px solid var(--button-border);
  border-radius: 1px;
  color: var(--button-color);
  background: var(--button-bg);
  font-size: .79rem;
  font-weight: 750;
  letter-spacing: .055em;
  cursor: pointer;
  overflow: hidden;
  isolation: isolate;
  transition: transform .35s var(--ease), box-shadow .35s var(--ease), background .3s ease, color .3s ease, border-color .3s ease;
}
.button::before {
  content: "";
  position: absolute;
  z-index: -1;
  inset: 0;
  transform: translateX(-102%);
  background: rgba(255,255,255,.13);
  transition: transform .48s var(--ease);
}
.button:hover::before { transform: none; }
.button:hover { transform: translateY(-3px); }
.button--wine { --button-bg: var(--wine); --button-color: var(--white); box-shadow: 0 14px 36px rgba(101,30,42,.22); }
.button--paper { --button-bg: var(--paper-2); --button-color: var(--ink); --button-border: rgba(255,255,255,.4); }
.button--gold { --button-bg: var(--gold-bright); --button-color: var(--night); box-shadow: 0 14px 38px rgba(201,164,93,.18); }
.button--outline-gold { --button-color: var(--gold-bright); --button-border: rgba(226,201,134,.55); }
.button--outline-gold:hover { --button-bg: var(--gold-bright); --button-color: var(--night); }
.button--ghost { --button-border: var(--line); --button-color: var(--ink); }
.button--ghost-light { --button-border: rgba(255,255,255,.22); --button-color: var(--white); }
.text-link {
  display: inline-flex;
  align-items: center;
  gap: .65rem;
  padding-bottom: .25rem;
  border-bottom: 1px solid rgba(101,30,42,.35);
  color: var(--wine);
  font-size: .8rem;
  font-weight: 750;
  letter-spacing: .055em;
}
.text-link span { transition: transform .3s var(--ease); }
.text-link:hover span { transform: translate(4px,-3px); }
.text-link--light { color: var(--gold-bright); border-color: rgba(226,201,134,.35); }
.text-button { border: 0; background: none; color: rgba(255,255,255,.7); text-decoration: underline; cursor: pointer; }

.eyebrow {
  display: flex;
  align-items: center;
  gap: .7rem;
  margin-bottom: 1rem;
  color: var(--wine);
  font-size: .69rem;
  font-weight: 800;
  letter-spacing: .2em;
  text-transform: uppercase;
}
.eyebrow::before { content: ""; width: 28px; height: 1px; background: currentColor; }
.eyebrow--gold { color: var(--gold-bright); }

.hero {
  position: relative;
  min-height: max(780px, 100svh);
  display: grid;
  align-items: center;
  color: var(--white);
  background: var(--night);
  overflow: clip;
}
.gold-dust { position: absolute; z-index: 4; inset: 0; width: 100%; height: 100%; pointer-events: none; opacity: .75; }
.hero-image { position: absolute; z-index: 1; inset: 0; overflow: hidden; }
.hero-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: 62% 52%;
  transform: scale(1.055) translate3d(calc(var(--hero-x, 0) * -10px), calc(var(--hero-y, 0) * -7px), 0);
  filter: saturate(.88) contrast(1.08);
  transition: transform .22s ease-out;
}
.hero-shade {
  position: absolute;
  z-index: 2;
  inset: 0;
  background:
    linear-gradient(90deg, rgba(8,7,6,.98) 0%, rgba(8,7,6,.88) 31%, rgba(8,7,6,.42) 58%, rgba(8,7,6,.12) 78%, rgba(8,7,6,.3) 100%),
    linear-gradient(0deg, rgba(8,7,6,.65), transparent 34%, rgba(8,7,6,.35));
}
.hero::after {
  content: "";
  position: absolute;
  z-index: 3;
  inset: 0;
  background: radial-gradient(circle at 73% 37%, rgba(213,173,89,.16), transparent 23rem);
  pointer-events: none;
}
.hero-shell { z-index: 6; padding-top: calc(var(--header-h) + 4rem); padding-bottom: 7rem; }
.hero-copy { width: min(650px, 52vw); }
.hero-eyebrow { display: flex; align-items: center; gap: .8rem; margin: 0 0 1.5rem; color: var(--gold-bright); font-size: .7rem; font-weight: 800; letter-spacing: .22em; text-transform: uppercase; }
.hero-eyebrow i { width: 80px; height: 1px; background: linear-gradient(90deg, var(--gold), transparent); }
.hero-title {
  margin: 0;
  color: var(--white);
  font-family: var(--serif);
  font-size: clamp(4rem, 7.2vw, 8.6rem);
  font-weight: 400;
  line-height: .86;
  letter-spacing: -.055em;
  text-wrap: balance;
}
.hero-title span { display: block; overflow: hidden; animation: title-rise 1.15s var(--ease) both; }
.hero-title span:nth-child(2) { animation-delay: .12s; }
.hero-title em { color: var(--gold-bright); font-style: italic; font-weight: 400; }
@keyframes title-rise { from { opacity: 0; transform: translateY(110%); } to { opacity: 1; transform: none; } }
.hero-lead { max-width: 560px; margin: 2rem 0 1.15rem; color: rgba(255,250,240,.78); font-family: var(--serif); font-size: clamp(1.05rem, 1.4vw, 1.28rem); line-height: 1.65; }
.hero-location { display: flex; gap: .65rem; align-items: center; color: var(--gold-bright); font-size: .78rem; font-weight: 700; letter-spacing: .07em; }
.hero-actions { display: flex; flex-wrap: wrap; gap: .8rem; margin-top: 2.15rem; }
.hero-prices { display: flex; flex-wrap: wrap; gap: 1.4rem; margin-top: 2.4rem; padding-top: 1.35rem; border-top: 1px solid rgba(255,255,255,.14); }
.hero-prices span { display: grid; gap: .1rem; color: rgba(255,255,255,.6); font-size: .7rem; letter-spacing: .06em; }
.hero-prices strong { color: var(--white); font-family: var(--serif); font-size: 1.35rem; font-weight: 400; letter-spacing: -.02em; }
.hero-seal {
  position: absolute;
  z-index: 7;
  right: 5vw;
  bottom: 8vh;
  width: 126px;
  height: 126px;
  display: grid;
  place-content: center;
  gap: .3rem;
  border: 1px solid rgba(226,201,134,.48);
  border-radius: 50%;
  color: var(--gold-bright);
  text-align: center;
  text-transform: uppercase;
  font-size: .58rem;
  font-weight: 800;
  letter-spacing: .22em;
  transform: rotate(8deg);
  animation: seal-float 5s ease-in-out infinite;
}
.hero-seal::before { content: ""; position: absolute; inset: 7px; border: 1px dotted rgba(226,201,134,.36); border-radius: inherit; }
.hero-seal b { font-size: 1.2rem; }
@keyframes seal-float { 50% { transform: rotate(5deg) translateY(-7px); } }
.scroll-cue {
  position: absolute;
  z-index: 8;
  left: 50%;
  bottom: 2.2rem;
  display: grid;
  justify-items: center;
  gap: .55rem;
  color: rgba(255,255,255,.65);
  font-size: .6rem;
  font-weight: 700;
  letter-spacing: .14em;
  text-transform: uppercase;
  transform: translateX(-50%);
}
.scroll-cue i { width: 1px; height: 37px; background: linear-gradient(to bottom, var(--gold-bright), transparent); animation: scroll-line 1.8s ease-in-out infinite; transform-origin: top; }
@keyframes scroll-line { 0%,100% { transform: scaleY(.35); opacity: .35; } 50% { transform: scaleY(1); opacity: 1; } }

.chapter { position: relative; padding: clamp(5.5rem, 9vw, 9rem) 0; }
.chapter--paper { background: var(--paper-2); }
.chapter--paper::before {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background:
    linear-gradient(90deg, transparent 0 7%, rgba(101,30,42,.035) 7% calc(7% + 1px), transparent calc(7% + 1px)),
    url("../img/paper-texture.webp");
  background-size: auto, 480px 480px;
  opacity: .32;
}
.chapter--ink { color: var(--white); background: var(--night); }
.chapter--pricing { color: var(--white); background: linear-gradient(135deg, #2a0b11, var(--wine-deep) 48%, #16090b); overflow: hidden; }
.chapter--pricing::before { content: ""; position: absolute; width: 55vw; height: 55vw; right: -18vw; top: -30vw; border: 1px solid rgba(226,201,134,.12); border-radius: 50%; box-shadow: 0 0 0 70px rgba(226,201,134,.025), 0 0 0 150px rgba(226,201,134,.02); }
.section-heading { position: relative; margin-bottom: 3.2rem; }
.section-heading--split { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(320px, .75fr); gap: 8vw; align-items: end; }
.section-heading--center { max-width: 920px; margin-inline: auto; text-align: center; }
.section-heading--center .eyebrow { justify-content: center; }
.section-heading h2,
.editorial-aside h2,
.rich-copy h2,
.split-feature h2,
.seo-copy h2,
.diagnosis-grid h2,
.warning-grid h2,
.atelier-story h2,
.local-grid h2,
.photo-warning h2,
.appointment-grid h2,
.article-body h2,
.contact-band h2,
.legal-content h2 {
  margin-bottom: 0;
  font-family: var(--serif);
  font-size: clamp(2.7rem, 5vw, 5.3rem);
  font-weight: 400;
  line-height: .98;
  letter-spacing: -.045em;
  text-wrap: balance;
}
.section-heading--light h2 { color: var(--white); }
.section-heading--light > p:last-child { max-width: 680px; margin: 1.3rem auto 0; color: rgba(255,255,255,.66); }
.section-intro { padding-bottom: .45rem; }
.section-intro p { color: var(--ink-soft); font-family: var(--serif); font-size: 1.18rem; line-height: 1.65; }

.craft-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1rem; perspective: 1200px; }
.craft-card {
  position: relative;
  min-width: 0;
  background: rgba(255,255,255,.52);
  border: 1px solid rgba(46,31,24,.1);
  box-shadow: 0 10px 34px rgba(35,23,16,.07);
  transform: rotateX(calc(var(--tilt-y, 0) * -3deg)) rotateY(calc(var(--tilt-x, 0) * 4deg)) translateY(var(--lift, 0));
  transform-style: preserve-3d;
  transition: transform .25s ease-out, box-shadow .35s ease;
  overflow: hidden;
}
.craft-card:hover { --lift: -8px; box-shadow: 0 24px 55px rgba(35,23,16,.13); }
.craft-card figure { aspect-ratio: 4/4.7; margin: 0; overflow: hidden; background: #ddd3c5; }
.craft-card figure img { width: 100%; height: 100%; object-fit: cover; filter: sepia(.08) saturate(.86); transition: transform .65s var(--ease), filter .45s ease; }
.craft-card:hover figure img { transform: scale(1.045); filter: none; }
.craft-card > div { position: relative; padding: 1.45rem 1.25rem 1.55rem; transform: translateZ(18px); }
.craft-card > div > span { position: absolute; right: 1rem; top: 1rem; color: var(--gold-muted); font: 600 .65rem/1 var(--sans); letter-spacing: .15em; }
.craft-card h3 { margin: 0 2rem .55rem 0; font-family: var(--serif); font-size: 1.35rem; font-weight: 400; }
.craft-card p { margin: 0; color: var(--ink-soft); font-size: .82rem; line-height: 1.65; }
.history-line { display: grid; grid-template-columns: auto 1fr auto; gap: 1.3rem; align-items: center; margin-top: 3rem; padding-top: 1.7rem; border-top: 1px solid var(--line); }
.history-icon { width: 42px; height: 42px; display: grid; place-content: center; color: var(--gold-muted); border: 1px solid rgba(157,123,63,.35); border-radius: 50%; }
.history-line strong { font-family: var(--serif); font-size: 1.05rem; font-weight: 400; }
.history-line p { margin: .25rem 0 0; color: var(--ink-soft); font-size: .8rem; }
.history-line > a { color: var(--wine); font-size: .72rem; font-weight: 800; letter-spacing: .06em; }

.dorure-feature { min-height: 890px; display: grid; align-items: stretch; padding: 0; overflow: hidden; }
.dorure-feature::after { content: ""; position: absolute; inset: 0; background: radial-gradient(circle at 28% 45%, rgba(201,164,93,.12), transparent 30rem); pointer-events: none; }
.dorure-image { position: absolute; inset: 0 47% 0 0; overflow: hidden; }
.dorure-image::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, transparent 50%, var(--night) 98%), linear-gradient(0deg, rgba(14,12,11,.45), transparent 40%); }
.dorure-image img { width: 100%; height: 100%; object-fit: cover; object-position: 48% 50%; transform: scale(1.1) translateY(calc(var(--parallax, 0) * -18px)); filter: saturate(.82) contrast(1.1); }
.dorure-shell { display: grid; grid-template-columns: 46% 54%; min-height: 890px; align-items: center; }
.dorure-copy { grid-column: 2; padding: 7rem 0 7rem 5vw; position: relative; z-index: 3; }
.dorure-copy h2 { margin: 0; color: var(--white); font-family: var(--serif); font-size: clamp(4rem, 7vw, 8rem); font-weight: 400; line-height: .88; letter-spacing: -.055em; }
.lead-dark { max-width: 670px; margin: 1.6rem 0 2.6rem; color: rgba(255,255,255,.68); font-family: var(--serif); font-size: 1.15rem; line-height: 1.7; }
.gold-features { display: grid; grid-template-columns: repeat(4, 1fr); margin: 0 0 2.5rem; border-top: 1px solid var(--line-light); border-bottom: 1px solid var(--line-light); }
.gold-features article { padding: 1.7rem 1rem 1.7rem 0; border-right: 1px solid var(--line-light); }
.gold-features article + article { padding-left: 1rem; }
.gold-features article:last-child { border-right: 0; }
.gold-features i { display: block; min-height: 34px; color: var(--gold-bright); font: normal 1.6rem/1 var(--serif); }
.gold-features h3 { margin: .65rem 0 .45rem; color: var(--gold-bright); font: 400 1rem/1.2 var(--serif); }
.gold-features p { margin: 0; color: rgba(255,255,255,.54); font-size: .72rem; line-height: 1.55; }

.process-section { overflow: hidden; }
.process-section::after { content: "ELZEVIR"; position: absolute; right: -2vw; bottom: -3rem; color: rgba(101,30,42,.035); font: 400 14vw/1 var(--serif); letter-spacing: .03em; }
.process-track { position: relative; z-index: 2; display: grid; grid-template-columns: repeat(6, 1fr); gap: 0; margin: 4.2rem 0 0; padding: 0; list-style: none; }
.process-track::before { content: ""; position: absolute; top: 56px; left: 8.3%; right: 8.3%; height: 1px; background: linear-gradient(90deg, transparent, rgba(101,30,42,.48) 8%, rgba(101,30,42,.48) 92%, transparent); }
.process-track li { position: relative; z-index: 1; padding: 0 1.15rem; text-align: center; }
.process-track li > span { display: block; margin-bottom: .75rem; color: var(--gold-muted); font-size: .61rem; font-weight: 800; letter-spacing: .16em; }
.process-track li > i { width: 64px; height: 64px; display: grid; place-content: center; margin: 0 auto 1rem; color: var(--wine); background: var(--paper-2); border: 1px solid rgba(101,30,42,.28); border-radius: 50%; box-shadow: 0 0 0 8px var(--paper-2); font: normal 1.45rem/1 var(--serif); transition: color .3s ease, background .3s ease, transform .35s var(--ease); }
.process-track li:hover > i { color: var(--paper-2); background: var(--wine); transform: translateY(-6px); }
.process-track h3 { margin: 0 0 .45rem; font-family: var(--serif); font-size: 1.2rem; font-weight: 400; }
.process-track p { margin: 0; color: var(--ink-soft); font-size: .75rem; line-height: 1.55; }

.estimate-showcase { display: grid; grid-template-columns: 260px minmax(0,1fr) 270px; gap: 1rem; align-items: stretch; margin-top: 3rem; }
.price-rules, .mini-estimator, .mini-result { border: 1px solid rgba(255,255,255,.12); background: rgba(10,6,7,.23); backdrop-filter: blur(8px); }
.price-rules { padding: 1.5rem; }
.price-rules > p, .mini-head { color: var(--gold-bright); font-size: .65rem; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; }
.price-rules dl { margin: 1.4rem 0; }
.price-rules dl div { display: flex; justify-content: space-between; gap: 1rem; padding: .72rem 0; border-bottom: 1px solid rgba(255,255,255,.1); }
.price-rules dt { color: rgba(255,255,255,.66); font-size: .72rem; }
.price-rules dd { margin: 0; color: var(--white); font-family: var(--serif); }
.price-rules .cap { display: grid; gap: .15rem; padding: 1.1rem; color: var(--night); background: var(--gold-bright); }
.price-rules .cap span { font-size: .61rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.price-rules .cap strong { font: 400 2.1rem/1 var(--serif); }
.price-rules > a { display: inline-block; margin-top: 1rem; color: rgba(255,255,255,.62); font-size: .69rem; text-decoration: underline; }
.mini-estimator { padding: 1.5rem; }
.mini-head { display: flex; justify-content: space-between; margin-bottom: 1.2rem; }
.mini-head strong { color: rgba(255,255,255,.45); }
.mini-fields { display: grid; grid-template-columns: repeat(2, 1fr); gap: .8rem; }
.mini-fields label { display: grid; gap: .45rem; }
.mini-fields label > span { color: rgba(255,255,255,.62); font-size: .69rem; }
.mini-fields select { width: 100%; min-height: 48px; padding: .6rem .8rem; color: var(--white); background: rgba(0,0,0,.22); border: 1px solid rgba(255,255,255,.15); border-radius: 0; outline: none; }
.mini-fields select:focus { border-color: var(--gold-bright); }
.mini-fields option { color: var(--ink); background: var(--paper-2); }
.mini-actions { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-top: 1.15rem; }
.mini-actions > span { max-width: 270px; color: rgba(255,255,255,.45); font-size: .66rem; line-height: 1.45; }
.mini-result { display: flex; flex-direction: column; justify-content: center; align-items: center; padding: 2rem 1.5rem; text-align: center; }
.mini-result > span { color: var(--gold-bright); font-size: .66rem; font-weight: 800; letter-spacing: .16em; text-transform: uppercase; }
.mini-result > div { display: flex; align-items: flex-start; margin: 1rem 0; color: var(--white); font-family: var(--serif); }
.mini-result > div strong { font-size: 5.2rem; font-weight: 400; line-height: .8; letter-spacing: -.06em; }
.mini-result > div b { margin-left: .25rem; color: var(--gold-bright); font-size: 1.7rem; font-weight: 400; }
.mini-result p { color: rgba(255,255,255,.73); font-size: .77rem; }
.mini-result small { color: rgba(255,255,255,.4); font-size: .63rem; line-height: 1.5; }

.article-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1rem; }
.article-card { min-width: 0; background: rgba(255,255,255,.55); border: 1px solid var(--line); box-shadow: 0 8px 30px rgba(32,20,14,.06); transition: transform .35s var(--ease), box-shadow .35s ease; }
.article-card:hover { transform: translateY(-7px); box-shadow: 0 24px 60px rgba(32,20,14,.13); }
.article-card img { width: 100%; aspect-ratio: 16/10; object-fit: cover; filter: saturate(.82); transition: filter .4s ease, transform .5s var(--ease); }
.article-card a { display: block; overflow: hidden; }
.article-card:hover img { filter: none; transform: scale(1.03); }
.article-card div { padding: 1.25rem 1.25rem 1.45rem; }
.article-card span { color: var(--wine); font-size: .61rem; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; }
.article-card h3 { margin: .55rem 0 .6rem; font: 400 1.36rem/1.15 var(--serif); }
.article-card p { margin: 0 0 1rem; color: var(--ink-soft); font-size: .77rem; }
.article-card b { color: var(--wine); font-size: .68rem; letter-spacing: .04em; }

.atelier-home { overflow: hidden; }
.atelier-home::before { content: ""; position: absolute; inset: 0; background: radial-gradient(circle at 72% 30%, rgba(201,164,93,.09), transparent 26rem); }
.atelier-grid { display: grid; grid-template-columns: 1.3fr .9fr .65fr; gap: 3.5rem; align-items: center; }
.atelier-collage { margin: 0; border: 1px solid rgba(226,201,134,.18); box-shadow: var(--shadow-dark); overflow: hidden; }
.atelier-collage img { width: 100%; transition: transform .8s var(--ease); }
.atelier-collage:hover img { transform: scale(1.025); }
.atelier-copy h2 { margin: 0 0 1.6rem; color: var(--white); font: 400 clamp(3.2rem,5vw,5.6rem)/.95 var(--serif); letter-spacing: -.045em; }
.atelier-points { display: grid; gap: 1.1rem; padding: 0; margin: 0 0 2rem; list-style: none; }
.atelier-points li { display: grid; grid-template-columns: 38px 1fr; gap: .9rem; }
.atelier-points i { width: 34px; height: 34px; display: grid; place-content: center; color: var(--gold-bright); border: 1px solid rgba(226,201,134,.3); border-radius: 50%; font-style: normal; }
.atelier-points strong { color: var(--gold-bright); font-family: var(--serif); font-weight: 400; }
.atelier-points p { margin: .2rem 0 0; color: rgba(255,255,255,.52); font-size: .73rem; }
.atelier-map { color: var(--gold-bright); opacity: .78; }

.project-scroller { display: grid; grid-auto-flow: column; grid-auto-columns: minmax(220px, 1fr); gap: .8rem; overflow-x: auto; padding: .4rem 0 1.2rem; scroll-snap-type: x mandatory; scrollbar-color: var(--wine) transparent; }
.project-scroller article { min-width: 0; scroll-snap-align: start; }
.project-scroller img { width: 100%; aspect-ratio: 1/1.05; object-fit: cover; filter: sepia(.08) saturate(.78); border: 1px solid var(--line); transition: filter .35s ease, transform .5s var(--ease); }
.project-scroller article:hover img { filter: none; transform: translateY(-5px); }
.project-scroller span { display: block; margin-top: .9rem; color: var(--wine); font-size: .61rem; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; }
.project-scroller h3 { margin: .2rem 0 0; font: 400 1rem/1.25 var(--serif); }
.projects-action { margin-top: 2.3rem; text-align: center; }

.contact-band { position: relative; padding: 5rem 0; color: var(--white); background: linear-gradient(120deg, var(--wine-deep), var(--wine) 56%, #44111a); overflow: hidden; }
.contact-band::after { content: ""; position: absolute; width: 38vw; height: 38vw; right: -8vw; top: -19vw; border: 1px solid rgba(226,201,134,.13); border-radius: 50%; box-shadow: 0 0 0 50px rgba(226,201,134,.025), 0 0 0 110px rgba(226,201,134,.018); }
.contact-band-grid { z-index: 2; display: grid; grid-template-columns: 1.25fr .9fr auto; gap: 4rem; align-items: center; }
.contact-band h2 { color: var(--white); }
.contact-band p:not(.eyebrow) { max-width: 620px; margin: 1rem 0 0; color: rgba(255,255,255,.62); }
.contact-band-details { display: grid; gap: 1rem; }
.contact-band-details a { display: grid; gap: .12rem; padding-bottom: .75rem; border-bottom: 1px solid rgba(255,255,255,.14); }
.contact-band-details span { color: var(--gold-bright); font-size: .62rem; font-weight: 800; letter-spacing: .15em; text-transform: uppercase; }
.contact-band-details strong { font-size: .82rem; font-weight: 600; }

.site-footer { position: relative; color: rgba(255,255,255,.62); background: #0b0908; }
.footer-main { display: grid; grid-template-columns: 1.35fr .75fr .95fr 1.1fr; gap: 4rem; padding: 5rem 0 4rem; }
.footer-intro img { width: 220px; color: var(--gold-bright); }
.footer-intro p { max-width: 340px; margin: 1.2rem 0 0; font-size: .8rem; }
.footer-local { color: var(--gold-muted); }
.footer-column { display: flex; flex-direction: column; align-items: flex-start; gap: .55rem; }
.footer-column h2 { margin: 0 0 .8rem; color: var(--gold-bright); font: 400 1rem/1.2 var(--serif); }
.footer-column a, .footer-column span { font-size: .72rem; }
.footer-column a:hover { color: var(--white); }
.footer-button { margin-top: .7rem; padding: .65rem .9rem; border: 1px solid rgba(226,201,134,.35); color: var(--gold-bright); }
.footer-bottom { display: flex; justify-content: space-between; gap: 2rem; padding: 1.3rem 0 1.5rem; border-top: 1px solid rgba(255,255,255,.08); font-size: .64rem; }
.footer-bottom div { display: flex; gap: 1.5rem; }

/* Inner pages */
.inner-hero { position: relative; min-height: 680px; display: grid; align-items: end; padding: calc(var(--header-h) + 5rem) 0 5.5rem; color: var(--white); background: var(--night); overflow: hidden; }
.inner-hero-media { position: absolute; inset: 0; }
.inner-hero-media img { width: 100%; height: 100%; object-fit: cover; object-position: center; filter: saturate(.75) contrast(1.1); }
.inner-hero-shade { position: absolute; inset: 0; background: linear-gradient(90deg, rgba(8,7,6,.97) 0 35%, rgba(8,7,6,.48) 65%, rgba(8,7,6,.25)), linear-gradient(0deg, rgba(8,7,6,.75), transparent 60%); }
.inner-hero--gold .inner-hero-shade { background: linear-gradient(90deg, rgba(8,7,6,.97) 0 38%, rgba(8,7,6,.42) 68%, rgba(8,7,6,.18)), radial-gradient(circle at 70% 45%, rgba(201,164,93,.18), transparent 30rem); }
.inner-hero-shell { z-index: 2; }
.breadcrumbs { display: flex; gap: .7rem; align-items: center; margin-bottom: 2.4rem; color: rgba(255,255,255,.48); font-size: .68rem; }
.breadcrumbs a:hover { color: var(--gold-bright); }
.breadcrumbs span::before { content: "/"; margin-right: .7rem; color: rgba(255,255,255,.25); }
.inner-hero h1 { max-width: 900px; margin: 0; font: 400 clamp(4rem,7vw,8rem)/.88 var(--serif); letter-spacing: -.055em; }
.inner-hero-shell > p:last-child { max-width: 720px; margin: 1.7rem 0 0; color: rgba(255,255,255,.7); font-family: var(--serif); font-size: 1.12rem; }

.editorial-grid { display: grid; grid-template-columns: minmax(260px,.7fr) minmax(0,1.4fr); gap: 9vw; align-items: start; }
.editorial-aside { position: sticky; top: calc(var(--header-h) + 2rem); }
.editorial-aside h2 { font-size: clamp(2.4rem,4vw,4rem); }
.anchor-nav { display: grid; margin-top: 2rem; border-top: 1px solid var(--line); }
.anchor-nav a { padding: .75rem 0; border-bottom: 1px solid var(--line); color: var(--ink-soft); font-size: .74rem; }
.anchor-nav a:hover { padding-left: .45rem; color: var(--wine); }
.rich-copy { max-width: 830px; }
.rich-copy .lead, .diagnosis-grid .lead, .atelier-story .lead { color: var(--ink); font: 400 1.35rem/1.7 var(--serif); }
.rich-copy > h2 { margin: 4rem 0 1rem; font-size: clamp(2rem,3.2vw,3.3rem); }
.rich-copy > p { color: var(--ink-soft); font-size: 1rem; }
.rich-copy blockquote { margin: 3rem 0; padding: 1.8rem 2rem; color: var(--wine); background: rgba(101,30,42,.055); border-left: 2px solid var(--wine); font: italic 400 1.45rem/1.5 var(--serif); }
.anatomy-visual { display: grid; grid-template-columns: 1.1fr .9fr; gap: 2rem; align-items: center; margin: 3rem 0 4rem; padding: 2.5rem; background: #e8dfd0; border: 1px solid var(--line); }
.anatomy-book { position: relative; width: 270px; height: 190px; margin: auto; transform: perspective(800px) rotateX(58deg) rotateZ(-23deg); transform-style: preserve-3d; }
.anatomy-book span { position: absolute; display: block; }
.a-cover { inset: 0; background: linear-gradient(135deg,#6d2430,#411019); border: 1px solid #8c4a55; box-shadow: 14px 18px 40px rgba(37,16,14,.24); }
.a-pages { inset: 9px -8px -14px 10px; background: repeating-linear-gradient(to bottom,#f6f0e3 0 2px,#d9cdb9 2px 3px); transform: translateZ(-13px); }
.a-spine { left: -13px; top: 0; bottom: -13px; width: 23px; background: #351017; transform: rotateY(90deg); transform-origin: right; }
.a-thread { left: -5px; top: 15px; bottom: -4px; width: 4px; background: repeating-linear-gradient(to bottom,var(--gold-bright) 0 4px,transparent 4px 14px); }
.anatomy-visual ol { display: grid; gap: .75rem; margin: 0; padding: 0; list-style: none; }
.anatomy-visual li { display: flex; align-items: center; gap: .8rem; color: var(--ink-soft); font-size: .78rem; }
.anatomy-visual b { width: 25px; height: 25px; display: grid; place-content: center; color: var(--wine); border: 1px solid rgba(101,30,42,.28); border-radius: 50%; font-size: .65rem; }

.split-feature { display: grid; grid-template-columns: .8fr 1.2fr; gap: 8vw; align-items: center; }
.split-feature > div:first-child p:not(.eyebrow) { color: rgba(255,255,255,.62); }
.dark-list { display: grid; grid-template-columns: repeat(2,1fr); border-top: 1px solid var(--line-light); border-left: 1px solid var(--line-light); }
.dark-list article { position: relative; min-height: 215px; padding: 2rem; border-right: 1px solid var(--line-light); border-bottom: 1px solid var(--line-light); }
.dark-list span { color: var(--gold-muted); font-size: .65rem; letter-spacing: .15em; }
.dark-list h3 { margin: 2rem 0 .5rem; color: var(--gold-bright); font: 400 1.45rem/1.2 var(--serif); }
.dark-list p { margin: 0; color: rgba(255,255,255,.52); font-size: .77rem; }
.seo-copy, .warning-grid, .photo-warning { display: grid; grid-template-columns: .85fr 1.15fr; gap: 9vw; align-items: start; }
.seo-copy h2, .warning-grid h2, .photo-warning h2 { font-size: clamp(2.7rem,4.8vw,5rem); }
.seo-copy > div:last-child p, .warning-grid > div:last-child p { color: var(--ink-soft); }

.quote-panel { margin: 3rem 0; padding: 2rem; color: var(--white); background: var(--wine); }
.quote-panel span { display: block; color: var(--gold-bright); font: italic 400 3rem/1 var(--serif); }
.quote-panel p { margin: 1rem 0 0; color: rgba(255,255,255,.72); }
.gold-catalog { display: grid; grid-template-columns: .72fr 1.28fr; gap: 7vw; align-items: center; }
.gold-catalog > div:first-child p:not(.eyebrow) { color: rgba(255,255,255,.6); }
.gold-catalog h2 { margin: 0 0 1rem; color: var(--white); font: 400 clamp(3rem,5vw,5.3rem)/.95 var(--serif); }
.gold-samples { display: grid; grid-template-columns: repeat(3,1fr); gap: .8rem; }
.gold-samples article { min-height: 280px; display: flex; flex-direction: column; justify-content: center; align-items: center; padding: 1.4rem; text-align: center; border: 1px solid rgba(226,201,134,.24); background: linear-gradient(145deg,rgba(101,30,42,.58),rgba(20,12,11,.42)); }
.gold-samples i { color: var(--gold-bright); font: normal 400 1.4rem/1.5 var(--serif); letter-spacing: .12em; }
.gold-samples span { margin-top: 2rem; color: rgba(255,255,255,.55); font-size: .68rem; }
.gold-samples strong { margin-top: .4rem; color: var(--white); font-family: var(--serif); font-weight: 400; }

.diagnosis-grid { display: grid; grid-template-columns: .75fr 1.25fr; gap: 8vw; align-items: start; }
.diagnosis-list { display: grid; grid-template-columns: repeat(2,1fr); border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.diagnosis-list article { padding: 2rem; min-height: 210px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.diagnosis-list span { color: var(--gold-muted); font-size: .64rem; letter-spacing: .15em; }
.diagnosis-list h3 { margin: 2rem 0 .5rem; font: 400 1.35rem/1.2 var(--serif); }
.diagnosis-list p { margin: 0; color: var(--ink-soft); font-size: .77rem; }
.restoration-cases { display: grid; grid-template-columns: .55fr 1.45fr; gap: 6vw; }
.restoration-title h2 { margin: 0; color: var(--white); font: 400 clamp(3.1rem,5vw,5.4rem)/.95 var(--serif); }
.case-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: .8rem; }
.case-grid article { min-height: 230px; display: flex; flex-direction: column; padding: 1.5rem; border: 1px solid var(--line-light); background: rgba(255,255,255,.025); }
.case-grid h3 { color: var(--gold-bright); font: 400 1.25rem/1.2 var(--serif); }
.case-grid p { color: rgba(255,255,255,.52); font-size: .74rem; }
.case-grid strong { margin-top: auto; color: var(--white); font-family: var(--serif); font-weight: 400; }

/* Pricing page */
.pricing-hero { min-height: 720px; display: grid; align-items: center; padding: calc(var(--header-h) + 4rem) 0 5rem; color: var(--white); background: radial-gradient(circle at 73% 45%, rgba(201,164,93,.14), transparent 22rem), linear-gradient(135deg,#0c0908,#1b0b0d 55%,#321019); overflow: hidden; }
.pricing-hero::before { content: ""; position: absolute; inset: 0; background: repeating-linear-gradient(90deg, transparent 0 90px, rgba(226,201,134,.025) 90px 91px); }
.pricing-hero-grid { display: grid; grid-template-columns: 1.1fr .9fr; gap: 5rem; align-items: center; }
.pricing-hero h1 { margin: 0; font: 400 clamp(4rem,7vw,7.5rem)/.9 var(--serif); letter-spacing: -.055em; }
.pricing-hero p:not(.eyebrow) { max-width: 620px; margin: 1.4rem 0 2rem; color: rgba(255,255,255,.66); font-family: var(--serif); font-size: 1.12rem; }
.price-orbit { position: relative; width: min(450px, 36vw); aspect-ratio: 1; margin-inline: auto; border: 1px solid rgba(226,201,134,.23); border-radius: 50%; }
.price-orbit::before, .price-orbit::after { content: ""; position: absolute; inset: 12%; border: 1px dashed rgba(226,201,134,.18); border-radius: 50%; animation: orbit-spin 28s linear infinite; }
.price-orbit::after { inset: 26%; border-style: solid; animation-direction: reverse; animation-duration: 18s; }
@keyframes orbit-spin { to { transform: rotate(360deg); } }
.price-orbit > span { position: absolute; z-index: 2; display: grid; text-align: center; }
.orbit-min { left: -2%; top: 42%; }
.orbit-max { right: -7%; top: 27%; }
.price-orbit small { color: var(--gold-bright); font-size: .62rem; font-weight: 800; letter-spacing: .15em; text-transform: uppercase; }
.price-orbit strong { color: var(--white); font: 400 4.8rem/1 var(--serif); letter-spacing: -.06em; }
.price-orbit i { position: absolute; left: 50%; top: 50%; width: 14px; height: 14px; transform: translate(-50%,-50%); background: var(--gold-bright); border-radius: 50%; box-shadow: 0 0 0 14px rgba(226,201,134,.09), 0 0 45px rgba(226,201,134,.5); }
.tariff-ledger { display: grid; grid-template-columns: repeat(2,1fr); gap: 1rem; }
.tariff-ledger article { background: rgba(255,255,255,.48); border: 1px solid var(--line); }
.tariff-ledger article:first-child { grid-column: 1/-1; }
.tariff-ledger header, .tariff-ledger article > div { display: grid; grid-template-columns: 1fr auto; gap: 1rem; align-items: center; }
.tariff-ledger header { padding: 1rem 1.2rem; color: var(--white); background: var(--wine); }
.tariff-ledger header span { font-family: var(--serif); font-size: 1.15rem; }
.tariff-ledger header strong { color: var(--gold-bright); font-size: .65rem; letter-spacing: .12em; text-transform: uppercase; }
.tariff-ledger article > div { padding: .75rem 1.2rem; border-top: 1px solid var(--line); }
.tariff-ledger article > div p { margin: 0; color: var(--ink-soft); font-size: .76rem; }
.tariff-ledger article > div b { color: var(--wine); font-family: var(--serif); font-weight: 400; white-space: nowrap; }

.chapter--estimator { color: var(--white); background: #110d0c; overflow: hidden; }
.chapter--estimator::before { content: ""; position: absolute; inset: 0; background: radial-gradient(circle at 80% 25%, rgba(101,30,42,.28), transparent 26rem), radial-gradient(circle at 12% 80%, rgba(201,164,93,.08), transparent 22rem); }
.estimator-wrap { position: relative; z-index: 2; max-width: 1120px; margin: 4rem auto 0; }
.estimator-progress { display: grid; grid-template-columns: repeat(5,1fr); margin: 0 0 1rem; padding: 0; list-style: none; border: 1px solid rgba(255,255,255,.1); background: rgba(255,255,255,.025); }
.estimator-progress li { position: relative; display: flex; align-items: center; gap: .55rem; padding: .75rem .85rem; color: rgba(255,255,255,.4); font-size: .67rem; font-weight: 700; }
.estimator-progress li + li { border-left: 1px solid rgba(255,255,255,.08); }
.estimator-progress span { width: 24px; height: 24px; display: grid; place-content: center; border: 1px solid rgba(255,255,255,.2); border-radius: 50%; font-size: .58rem; }
.estimator-progress li.is-active { color: var(--gold-bright); background: rgba(201,164,93,.06); }
.estimator-progress li.is-active span { color: var(--night); background: var(--gold-bright); border-color: var(--gold-bright); }
.estimator-progress li.is-done { color: rgba(255,255,255,.65); }
.estimator-progress li.is-done span { color: var(--white); background: var(--wine); border-color: var(--wine-light); }
.estimator { min-height: 630px; border: 1px solid rgba(255,255,255,.12); background: rgba(255,255,255,.035); backdrop-filter: blur(10px); box-shadow: var(--shadow-dark); }
.estimator-panel { display: none; padding: clamp(1.5rem,4vw,3.2rem); }
.estimator-panel.is-active { display: block; animation: panel-in .5s var(--ease) both; }
@keyframes panel-in { from { opacity: 0; transform: translateY(18px); } to { opacity: 1; transform: none; } }
.estimator-panel > header { display: flex; justify-content: space-between; gap: 2rem; align-items: flex-start; margin-bottom: 2.2rem; }
.estimator-panel > header > div > span { color: var(--gold-bright); font-size: .63rem; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; }
.estimator-panel h3 { max-width: 750px; margin: .45rem 0 .4rem; color: var(--white); font: 400 clamp(2rem,3.2vw,3.4rem)/1 var(--serif); }
.estimator-panel header p { margin: 0; color: rgba(255,255,255,.5); font-size: .77rem; }
.live-price { display: grid; min-width: 115px; padding: .8rem 1rem; border: 1px solid rgba(226,201,134,.22); text-align: right; }
.live-price small { color: rgba(255,255,255,.4); font-size: .55rem; letter-spacing: .12em; text-transform: uppercase; }
.live-price b { color: var(--gold-bright); font: 400 2rem/1 var(--serif); }
.choice-grid { display: grid; grid-template-columns: repeat(4,1fr); gap: .8rem; }
.choice { position: relative; cursor: pointer; }
.choice input, .condition-choice input, .dual-choice input, .finish-grid input, .issues input { position: absolute; opacity: 0; pointer-events: none; }
.choice > span { min-height: 145px; display: flex; flex-direction: column; justify-content: center; align-items: center; gap: .45rem; padding: 1rem; border: 1px solid rgba(255,255,255,.14); background: rgba(255,255,255,.025); text-align: center; transition: border-color .25s ease, background .25s ease, transform .3s var(--ease); }
.choice i { color: var(--gold-bright); font: normal 1.55rem/1 var(--serif); }
.choice b { font: 400 1rem/1.2 var(--serif); }
.choice small { color: rgba(255,255,255,.45); font-size: .65rem; }
.choice:hover > span { transform: translateY(-4px); border-color: rgba(226,201,134,.4); }
.choice input:checked + span { border-color: var(--gold-bright); background: rgba(201,164,93,.1); box-shadow: inset 0 0 0 1px rgba(226,201,134,.2); }
.condition-grid { display: grid; grid-template-columns: repeat(2,1fr); gap: .8rem; }
.condition-choice { position: relative; cursor: pointer; }
.condition-choice > span { min-height: 160px; display: grid; align-content: center; gap: .45rem; padding: 1.3rem; border: 1px solid rgba(255,255,255,.14); transition: border-color .25s ease, background .25s ease; }
.condition-choice i { color: var(--gold-bright); font-style: normal; letter-spacing: .18em; }
.condition-choice b { font: 400 1.2rem/1.2 var(--serif); }
.condition-choice p { margin: 0; color: rgba(255,255,255,.48); font-size: .72rem; }
.condition-choice small { color: var(--gold-bright); font-size: .68rem; }
.condition-choice input:checked + span { border-color: var(--gold-bright); background: rgba(201,164,93,.1); }
.dual-choice, .finish-grid { display: grid; grid-template-columns: repeat(2,1fr); gap: 1rem; }
.dual-choice fieldset, .finish-grid fieldset, .issues { margin: 0; padding: 1.2rem; border: 1px solid rgba(255,255,255,.13); }
.dual-choice legend, .finish-grid legend, .issues legend { padding: 0 .5rem; color: var(--gold-bright); font: 400 1.05rem/1 var(--serif); }
.dual-choice label, .finish-grid label { position: relative; display: block; cursor: pointer; }
.dual-choice label span, .finish-grid label span { display: flex; justify-content: space-between; gap: 1rem; padding: .8rem .75rem; border-bottom: 1px solid rgba(255,255,255,.08); color: rgba(255,255,255,.68); font-size: .74rem; }
.dual-choice label:last-child span, .finish-grid label:last-child span { border-bottom: 0; }
.dual-choice label b, .finish-grid label b { color: var(--gold-bright); font-family: var(--serif); font-weight: 400; white-space: nowrap; }
.dual-choice input:checked + span, .finish-grid input:checked + span { color: var(--white); background: rgba(101,30,42,.45); }
.numeric-grid { display: grid; grid-template-columns: repeat(2,1fr); gap: 1rem; margin-top: 1rem; }
.numeric-grid label, .notes-field { display: grid; gap: .45rem; color: rgba(255,255,255,.68); font-size: .72rem; }
.numeric-grid input, .notes-field textarea { width: 100%; padding: .75rem .85rem; color: var(--white); background: rgba(0,0,0,.22); border: 1px solid rgba(255,255,255,.14); outline: 0; }
.numeric-grid input:focus, .notes-field textarea:focus { border-color: var(--gold-bright); }
.numeric-grid small { color: rgba(255,255,255,.36); }
.issues { display: grid; grid-template-columns: repeat(2,1fr); gap: .35rem .8rem; margin-top: 1rem; }
.issues legend { grid-column: 1/-1; }
.issues label { position: relative; cursor: pointer; }
.issues label span { display: flex; justify-content: space-between; gap: .8rem; padding: .7rem .75rem; border: 1px solid rgba(255,255,255,.1); color: rgba(255,255,255,.62); font-size: .7rem; }
.issues label b { color: var(--gold-bright); font-family: var(--serif); font-weight: 400; }
.issues input:checked + span { color: var(--white); border-color: var(--gold-bright); background: rgba(201,164,93,.08); }
.notes-field { margin-top: 1rem; }
.form-error { min-height: 1.2rem; margin: .8rem 0 0; color: #f2a7ac; font-size: .72rem; }
.estimator-actions { display: flex; justify-content: space-between; align-items: center; gap: 1rem; margin-top: 1.5rem; }
.result-grid { display: grid; grid-template-columns: .7fr 1.3fr; gap: 1rem; }
.result-main { display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 2rem; border: 1px solid rgba(226,201,134,.26); background: linear-gradient(145deg,rgba(101,30,42,.5),rgba(17,13,12,.5)); text-align: center; }
.result-main > span { color: var(--gold-bright); font-size: .65rem; font-weight: 800; letter-spacing: .15em; text-transform: uppercase; }
.result-price { display: flex; align-items: flex-start; margin: 1.4rem 0 .7rem; color: var(--white); font-family: var(--serif); }
.result-price strong { font-size: 6.2rem; font-weight: 400; line-height: .76; letter-spacing: -.07em; }
.result-price b { margin-left: .25rem; color: var(--gold-bright); font-size: 2rem; font-weight: 400; }
.result-main em { padding: .4rem .65rem; color: var(--night); background: var(--gold-bright); font-size: .62rem; font-style: normal; font-weight: 800; letter-spacing: .08em; }
.result-main > p { color: rgba(255,255,255,.62); font-size: .72rem; }
.result-main dl { width: 100%; margin: 1rem 0 0; }
.result-main dl div { display: flex; justify-content: space-between; gap: 1rem; padding: .65rem 0; border-top: 1px solid rgba(255,255,255,.11); font-size: .68rem; text-align: left; }
.result-main dt { color: rgba(255,255,255,.42); }
.result-main dd { margin: 0; color: rgba(255,255,255,.8); }
.result-detail { padding: 1.5rem; border: 1px solid rgba(255,255,255,.12); }
.result-detail h4 { margin: 0 0 1rem; color: var(--gold-bright); font: 400 1.4rem/1.2 var(--serif); }
.result-detail ul { margin: 0; padding: 0; list-style: none; }
.result-detail li { display: flex; justify-content: space-between; gap: 1rem; padding: .55rem 0; border-bottom: 1px solid rgba(255,255,255,.08); color: rgba(255,255,255,.58); font-size: .7rem; }
.result-detail li strong { color: var(--white); font-family: var(--serif); font-weight: 400; }
.result-note { margin: 1rem 0; padding: .9rem; color: rgba(255,255,255,.63); background: rgba(201,164,93,.08); border-left: 2px solid var(--gold-bright); font-size: .69rem; }
.result-buttons { display: flex; flex-wrap: wrap; gap: .55rem; }
.example-grid { display: grid; grid-template-columns: repeat(5,1fr); gap: .8rem; }
.example-grid article { min-height: 220px; display: flex; flex-direction: column; padding: 1.35rem; background: rgba(255,255,255,.52); border: 1px solid var(--line); }
.example-grid strong { color: var(--wine); font: 400 2.6rem/1 var(--serif); }
.example-grid h3 { margin: 1.7rem 0 .5rem; font: 400 1.05rem/1.2 var(--serif); }
.example-grid p { margin: 0; color: var(--ink-soft); font-size: .72rem; }
.faq-grid { display: grid; grid-template-columns: .65fr 1.35fr; gap: 8vw; }
.faq-list details { border-top: 1px solid var(--line); }
.faq-list details:last-child { border-bottom: 1px solid var(--line); }
.faq-list summary { padding: 1.15rem 2rem 1.15rem 0; cursor: pointer; font-family: var(--serif); font-size: 1.15rem; }
.faq-list details p { color: var(--ink-soft); }

/* Atelier, projects and contact */
.atelier-story { display: grid; grid-template-columns: .85fr 1.15fr; gap: 7vw; align-items: center; }
.atelier-story figure { margin: 0; box-shadow: var(--shadow); }
.tools-grid { display: grid; grid-template-columns: .55fr 1.45fr; gap: 6vw; }
.tools-grid > div:first-child h2 { margin: 0; color: var(--white); font: 400 clamp(3rem,5vw,5.4rem)/.95 var(--serif); }
.tool-cards { display: grid; grid-template-columns: repeat(3,1fr); gap: .8rem; }
.tool-cards article { border: 1px solid var(--line-light); background: rgba(255,255,255,.025); }
.tool-cards img { width: 100%; aspect-ratio: 4/3.3; object-fit: cover; filter: saturate(.72); }
.tool-cards h3 { margin: 1.2rem 1.2rem .45rem; color: var(--gold-bright); font: 400 1.2rem/1.2 var(--serif); }
.tool-cards p { margin: 0 1.2rem 1.35rem; color: rgba(255,255,255,.5); font-size: .72rem; }
.local-grid, .appointment-grid { display: grid; grid-template-columns: 1fr .9fr; gap: 7vw; align-items: center; }
.local-grid > img, .appointment-grid > img { max-width: 520px; margin-inline: auto; color: var(--wine); }
.project-gallery { display: grid; grid-template-columns: repeat(2,1fr); gap: 1rem; }
.project-gallery article { display: grid; grid-template-columns: .8fr 1.2fr; min-height: 390px; background: rgba(255,255,255,.5); border: 1px solid var(--line); }
.project-gallery img { width: 100%; height: 100%; object-fit: cover; }
.project-gallery article > div { align-self: center; padding: 2rem; }
.project-gallery span { color: var(--wine); font-size: .64rem; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; }
.project-gallery h2 { margin: .7rem 0; font: 400 2rem/1.05 var(--serif); }
.project-gallery p { color: var(--ink-soft); font-size: .78rem; }
.photo-warning { color: var(--white); }
.photo-warning h2 { color: var(--white); }
.photo-warning > div:last-child p { color: rgba(255,255,255,.6); }

.contact-hero { min-height: 760px; display: grid; align-items: center; padding: calc(var(--header-h) + 4rem) 0 5rem; color: var(--white); background: radial-gradient(circle at 72% 46%, rgba(201,164,93,.14), transparent 24rem), linear-gradient(135deg,#0d0a09,#241013 65%,#43131c); overflow: hidden; }
.contact-hero-grid { display: grid; grid-template-columns: 1fr .85fr; gap: 6vw; align-items: center; }
.contact-hero h1 { margin: 0; font: 400 clamp(4rem,7vw,7.5rem)/.9 var(--serif); letter-spacing: -.055em; }
.contact-hero p:not(.eyebrow) { max-width: 650px; color: rgba(255,255,255,.65); font-family: var(--serif); font-size: 1.1rem; }
.direct-contact { display: flex; flex-wrap: wrap; gap: 1rem; margin-top: 2rem; }
.direct-contact a { display: grid; gap: .15rem; min-width: 210px; padding: 1rem 1.1rem; border: 1px solid rgba(226,201,134,.22); }
.direct-contact span { color: var(--gold-bright); font-size: .61rem; letter-spacing: .14em; text-transform: uppercase; }
.direct-contact strong { font-size: .77rem; }
.contact-book { position: relative; width: min(470px, 36vw); aspect-ratio: 1.25; margin-inline: auto; transform: perspective(900px) rotateY(-18deg) rotateX(6deg); transform-style: preserve-3d; }
.contact-book-cover { position: absolute; z-index: 2; inset: 0; display: flex; flex-direction: column; justify-content: center; align-items: center; color: var(--gold-bright); background: radial-gradient(circle at 50% 40%,rgba(120,42,52,.85),transparent 55%),linear-gradient(135deg,#50151f,#260b10); border: 2px solid #8f4a54; box-shadow: inset 0 0 0 11px #351017, inset 0 0 0 13px rgba(226,201,134,.5), 28px 36px 70px rgba(0,0,0,.35); }
.contact-book-cover::before { content: ""; position: absolute; inset: 28px; border: 1px solid rgba(226,201,134,.6); }
.contact-book-cover span { font-size: .72rem; letter-spacing: .34em; }
.contact-book-cover strong { margin-top: .5rem; font: 400 3rem/1 var(--serif); letter-spacing: .12em; }
.contact-book-cover i { margin-top: 2rem; font: italic 400 .9rem/1 var(--serif); }
.contact-book-pages { position: absolute; z-index: 1; inset: 10px -19px -22px 18px; background: repeating-linear-gradient(to bottom,#f7efdf 0 2px,#cdbc9d 2px 3px); transform: translateZ(-17px); }
.contact-layout { display: grid; grid-template-columns: .65fr 1.35fr; gap: 8vw; align-items: start; }
.photo-list { display: grid; gap: .6rem; margin: 2rem 0; padding: 0; list-style: none; }
.photo-list li { display: flex; gap: .8rem; align-items: center; padding-bottom: .6rem; border-bottom: 1px solid var(--line); color: var(--ink-soft); font-size: .78rem; }
.photo-list span { color: var(--gold-muted); font-size: .63rem; letter-spacing: .12em; }
.contact-form { padding: 2rem; background: rgba(255,255,255,.58); border: 1px solid var(--line); box-shadow: 0 18px 60px rgba(34,22,14,.08); }
.form-grid { display: grid; grid-template-columns: repeat(2,1fr); gap: 1rem; }
.contact-form label { display: grid; gap: .4rem; color: var(--ink-soft); font-size: .72rem; }
.contact-form input, .contact-form select, .contact-form textarea { width: 100%; padding: .78rem .85rem; color: var(--ink); background: rgba(255,255,255,.7); border: 1px solid var(--line); outline: 0; }
.contact-form input:focus, .contact-form select:focus, .contact-form textarea:focus { border-color: var(--wine); box-shadow: 0 0 0 3px rgba(101,30,42,.08); }
.contact-form > label { margin-top: 1rem; }
.form-status { min-height: 1.2rem; color: var(--wine); font-size: .72rem; }
.contact-form > small { display: block; margin-top: .9rem; color: var(--ink-soft); font-size: .64rem; }
.appointment-grid h2 { color: var(--white); }
.appointment-grid p { color: rgba(255,255,255,.6); }
.appointment-grid img { color: var(--gold-bright); }

/* Article pages and legal */
.article-page { padding-top: 6rem; }
.article-layout { display: grid; grid-template-columns: 230px minmax(0,780px); gap: 8vw; justify-content: center; align-items: start; }
.article-meta { position: sticky; top: calc(var(--header-h) + 2rem); display: grid; gap: .3rem; padding-top: 1.2rem; border-top: 1px solid var(--wine); }
.article-meta span { color: var(--wine); font-size: .66rem; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; }
.article-meta strong { font-family: var(--serif); font-weight: 400; }
.article-meta p { color: var(--ink-soft); font-size: .7rem; }
.article-meta a { margin-top: .8rem; color: var(--wine); font-size: .7rem; font-weight: 800; text-decoration: underline; }
.article-body { font-size: 1rem; }
.article-lead { color: var(--ink); font: 400 1.35rem/1.7 var(--serif); }
.article-body h2 { margin: 3.8rem 0 1rem; font-size: clamp(2.1rem,3.4vw,3.5rem); }
.article-body p { color: var(--ink-soft); }
.article-tip { margin: 2.5rem 0; padding: 1.4rem 1.6rem; background: rgba(201,164,93,.12); border-left: 2px solid var(--gold-muted); }
.article-tip strong { color: var(--wine); }
.article-tip p { margin-bottom: 0; }
.article-cta { margin-top: 4rem; padding: 2rem; color: var(--white); background: var(--wine); }
.article-cta h2 { margin-top: 0; color: var(--white); font-size: 2.5rem; }
.article-cta p { color: rgba(255,255,255,.7); }
.legal-hero { padding: calc(var(--header-h) + 6rem) 0 5rem; color: var(--white); background: linear-gradient(135deg,#0d0a09,#321018); }
.legal-hero h1 { margin: 0; font: 400 clamp(3.5rem,6vw,6rem)/1 var(--serif); }
.legal-hero p:not(.eyebrow) { max-width: 650px; color: rgba(255,255,255,.6); }
.legal-content { max-width: 850px; }
.legal-content h2 { margin: 3.5rem 0 1rem; font-size: 2.5rem; }
.legal-content h2:first-child { margin-top: 0; }
.legal-content p { color: var(--ink-soft); }
.legal-content a { color: var(--wine); text-decoration: underline; }
.error-body { min-height: 100svh; display: grid; place-content: center; color: var(--white); background: radial-gradient(circle,#2f1017,#0c0908 65%); }
.error-page { max-width: 700px; padding: 2rem; text-align: center; }
.error-page h1 { margin: 1rem 0; font: 400 clamp(3rem,7vw,6rem)/.95 var(--serif); }
.error-page > p:not(.eyebrow) { color: rgba(255,255,255,.6); }
.error-page .eyebrow { justify-content: center; }
.error-book { display: flex; align-items: center; justify-content: center; gap: .7rem; color: var(--gold-bright); font: 400 5rem/1 var(--serif); }
.error-book i { width: 60px; height: 80px; border: 1px solid currentColor; border-radius: 0 25px 25px 0; transform: skewY(-7deg); }

/* Reveal and motion */
[data-reveal] { opacity: 0; transform: translateY(28px); transition: opacity .8s var(--ease) var(--delay,0ms), transform .8s var(--ease) var(--delay,0ms); }
[data-reveal="left"] { transform: translateX(-34px); }
[data-reveal="right"] { transform: translateX(34px); }
[data-reveal].is-visible { opacity: 1; transform: none; }

@media (max-width: 1240px) {
  .shell { width: min(1180px, calc(100% - 4.5rem)); }
  .header-shell { grid-template-columns: 185px 1fr auto; gap: 1rem; }
  .brand { width: 180px; }
  .main-nav { gap: 1rem; }
  .main-nav a { font-size: .69rem; }
  .header-cta { padding-inline: .85rem; }
  .hero-copy { width: min(610px, 58vw); }
  .craft-grid { grid-template-columns: repeat(2,1fr); }
  .craft-card figure { aspect-ratio: 16/10; }
  .gold-features { grid-template-columns: repeat(2,1fr); }
  .gold-features article:nth-child(2) { border-right: 0; }
  .gold-features article:nth-child(-n+2) { border-bottom: 1px solid var(--line-light); }
  .estimate-showcase { grid-template-columns: 230px 1fr; }
  .mini-result { grid-column: 1/-1; min-height: 220px; }
  .mini-result > div strong { font-size: 4.3rem; }
  .atelier-grid { grid-template-columns: 1.2fr .8fr; }
  .atelier-map { grid-column: 1/-1; width: 430px; margin-inline: auto; }
  .footer-main { grid-template-columns: 1.2fr repeat(3,1fr); gap: 2rem; }
  .case-grid { grid-template-columns: repeat(2,1fr); }
  .example-grid { grid-template-columns: repeat(3,1fr); }
  .project-gallery { grid-template-columns: 1fr; }
}

@media (max-width: 1020px) {
  :root { --header-h: 70px; }
  .shell { width: min(900px, calc(100% - 3rem)); }
  .spine-rail { display: none; }
  .header-shell { grid-template-columns: 190px 1fr auto; }
  .main-nav {
    position: fixed;
    inset: var(--header-h) 0 auto;
    max-height: calc(100svh - var(--header-h));
    display: grid;
    justify-content: stretch;
    gap: 0;
    padding: 1.5rem;
    color: var(--white);
    background: rgba(14,12,11,.98);
    border-top: 1px solid rgba(255,255,255,.08);
    transform: translateY(-120%);
    visibility: hidden;
    transition: transform .45s var(--ease), visibility .45s;
  }
  body.menu-open { overflow: hidden; }
  body.menu-open .main-nav { transform: none; visibility: visible; }
  .main-nav a { padding: 1rem 0; border-bottom: 1px solid rgba(255,255,255,.08); font: 400 1.4rem/1 var(--serif); }
  .main-nav a::after { display: none; }
  .header-cta { justify-self: end; margin-right: 3.5rem; }
  .menu-button { position: absolute; right: 0; display: grid; place-content: center; gap: 6px; width: 44px; height: 44px; padding: 0; border: 1px solid rgba(226,201,134,.35); background: transparent; cursor: pointer; }
  .menu-button span { width: 18px; height: 1px; background: var(--gold-bright); transition: transform .3s ease; }
  body.menu-open .menu-button span:first-child { transform: translateY(3.5px) rotate(45deg); }
  body.menu-open .menu-button span:last-child { transform: translateY(-3.5px) rotate(-45deg); }
  .hero-copy { width: min(650px, 74vw); }
  .hero-title { font-size: clamp(4rem,10vw,7rem); }
  .hero-image img { object-position: 70% 50%; }
  .hero-shade { background: linear-gradient(90deg,rgba(8,7,6,.98),rgba(8,7,6,.75) 58%,rgba(8,7,6,.25)),linear-gradient(0deg,rgba(8,7,6,.72),transparent 48%); }
  .section-heading--split, .editorial-grid, .split-feature, .seo-copy, .diagnosis-grid, .restoration-cases, .warning-grid, .gold-catalog, .atelier-story, .tools-grid, .local-grid, .photo-warning, .contact-layout, .appointment-grid, .article-layout, .faq-grid { grid-template-columns: 1fr; gap: 3rem; }
  .editorial-aside, .article-meta { position: static; }
  .anchor-nav { grid-template-columns: repeat(3,1fr); }
  .dorure-feature, .dorure-shell { min-height: 1000px; }
  .dorure-image { inset: 0 0 52% 0; }
  .dorure-image::after { background: linear-gradient(0deg,var(--night) 3%,transparent 45%),linear-gradient(90deg,rgba(14,12,11,.2),rgba(14,12,11,.05)); }
  .dorure-shell { grid-template-columns: 1fr; align-items: end; }
  .dorure-copy { grid-column: 1; padding: 35rem 0 5rem; }
  .process-track { grid-template-columns: repeat(3,1fr); gap: 2rem 0; }
  .process-track::before { display: none; }
  .article-grid { grid-template-columns: repeat(2,1fr); }
  .atelier-grid { grid-template-columns: 1fr; }
  .atelier-map { grid-column: auto; }
  .contact-band-grid { grid-template-columns: 1fr 1fr; gap: 2rem; }
  .contact-band-grid > .button { justify-self: start; }
  .footer-main { grid-template-columns: repeat(2,1fr); }
  .pricing-hero-grid, .contact-hero-grid { grid-template-columns: 1fr; }
  .price-orbit { width: 420px; }
  .contact-book { width: min(450px,70vw); }
  .tariff-ledger { grid-template-columns: 1fr; }
  .choice-grid { grid-template-columns: repeat(3,1fr); }
  .result-grid { grid-template-columns: 1fr; }
  .project-gallery article { min-height: 330px; }
}

@media (max-width: 720px) {
  .shell { width: min(100% - 2rem, 620px); }
  .site-header { background: rgba(14,12,11,.9); backdrop-filter: blur(14px); }
  .header-shell { grid-template-columns: 150px 1fr; }
  .brand { width: 148px; }
  .header-cta { display: none; }
  .hero { min-height: 860px; align-items: end; }
  .hero-shell { padding-top: 9rem; padding-bottom: 9rem; }
  .hero-copy { width: 100%; }
  .hero-title { font-size: clamp(3.5rem,16vw,5.7rem); }
  .hero-lead { font-size: 1rem; }
  .hero-image img { object-position: 69% 50%; opacity: .7; }
  .hero-shade { background: linear-gradient(0deg,rgba(8,7,6,.98) 0 43%,rgba(8,7,6,.48) 76%,rgba(8,7,6,.25)); }
  .hero-seal { width: 95px; height: 95px; right: 1.3rem; top: 7.5rem; bottom: auto; font-size: .47rem; }
  .hero-prices { gap: 1rem; }
  .hero-prices span { flex: 1 1 28%; }
  .hero-actions .button { flex: 1 1 100%; }
  .scroll-cue { display: none; }
  .chapter { padding: 5.2rem 0; }
  .section-heading h2, .editorial-aside h2, .rich-copy h2, .split-feature h2, .seo-copy h2, .diagnosis-grid h2, .warning-grid h2, .atelier-story h2, .local-grid h2, .photo-warning h2, .appointment-grid h2, .article-body h2, .contact-band h2, .legal-content h2 { font-size: clamp(2.3rem,12vw,3.7rem); }
  .section-heading--split { gap: 1.5rem; }
  .craft-grid { grid-template-columns: 1fr; }
  .craft-card figure { aspect-ratio: 16/11; }
  .history-line { grid-template-columns: auto 1fr; }
  .history-line > a { grid-column: 2; }
  .dorure-feature, .dorure-shell { min-height: 1040px; }
  .dorure-image { bottom: 57%; }
  .dorure-copy { padding: 29rem 0 4rem; }
  .dorure-copy h2 { font-size: 4.5rem; }
  .gold-features { grid-template-columns: 1fr 1fr; }
  .process-track { grid-template-columns: repeat(2,1fr); }
  .estimate-showcase { grid-template-columns: 1fr; }
  .mini-result { grid-column: auto; }
  .mini-fields { grid-template-columns: 1fr; }
  .mini-actions { align-items: stretch; flex-direction: column; }
  .mini-actions .button { width: 100%; }
  .article-grid { grid-template-columns: 1fr; }
  .contact-band-grid { grid-template-columns: 1fr; }
  .footer-main { grid-template-columns: 1fr; }
  .footer-bottom { flex-direction: column; }
  .footer-bottom div { flex-wrap: wrap; }
  .inner-hero { min-height: 690px; padding-bottom: 4rem; }
  .inner-hero-media img { object-position: 64% 50%; opacity: .65; }
  .inner-hero-shade { background: linear-gradient(0deg,rgba(8,7,6,.98) 0 55%,rgba(8,7,6,.45)); }
  .inner-hero h1 { font-size: clamp(3.5rem,15vw,5.3rem); }
  .anchor-nav { grid-template-columns: 1fr 1fr; }
  .anatomy-visual { grid-template-columns: 1fr; padding: 1.4rem; overflow: hidden; }
  .anatomy-book { transform: perspective(800px) scale(.8) rotateX(58deg) rotateZ(-23deg); }
  .dark-list, .diagnosis-list { grid-template-columns: 1fr; }
  .gold-samples { grid-template-columns: 1fr; }
  .gold-samples article { min-height: 210px; }
  .case-grid { grid-template-columns: 1fr; }
  .pricing-hero, .contact-hero { min-height: 780px; padding-top: 8rem; }
  .pricing-hero h1, .contact-hero h1 { font-size: clamp(3.6rem,15vw,5.5rem); }
  .price-orbit { width: min(88vw,380px); }
  .price-orbit strong { font-size: 3.8rem; }
  .estimator-progress { grid-template-columns: repeat(5,1fr); }
  .estimator-progress li { justify-content: center; padding: .65rem .25rem; font-size: 0; }
  .estimator-progress li span { font-size: .58rem; }
  .estimator { min-height: 0; }
  .estimator-panel > header { flex-direction: column; }
  .live-price { align-self: stretch; display: flex; justify-content: space-between; align-items: center; text-align: left; }
  .choice-grid, .condition-grid, .dual-choice, .finish-grid, .numeric-grid, .issues { grid-template-columns: 1fr; }
  .choice > span { min-height: 110px; }
  .example-grid { grid-template-columns: 1fr 1fr; }
  .tool-cards { grid-template-columns: 1fr; }
  .project-gallery article { grid-template-columns: 1fr; }
  .project-gallery img { height: 300px; }
  .form-grid { grid-template-columns: 1fr; }
  .contact-form { padding: 1.2rem; }
  .article-layout { gap: 2rem; }
  .article-meta { display: none; }
}

@media (max-width: 460px) {
  .hero-title { font-size: 3.45rem; }
  .hero-prices span { flex: 1 1 45%; }
  .gold-features { grid-template-columns: 1fr; }
  .gold-features article { border-right: 0; border-bottom: 1px solid var(--line-light); padding-left: 0 !important; }
  .process-track { grid-template-columns: 1fr; }
  .process-track li { display: grid; grid-template-columns: 58px 1fr; text-align: left; }
  .process-track li > span { grid-column: 2; margin-bottom: .25rem; }
  .process-track li > i { grid-row: 1/4; grid-column: 1; width: 48px; height: 48px; margin: 0; box-shadow: none; }
  .process-track h3, .process-track p { grid-column: 2; }
  .example-grid { grid-template-columns: 1fr; }
  .result-buttons { display: grid; }
  .result-price strong { font-size: 5.1rem; }
  .contact-book { width: 82vw; }
  .contact-book-cover strong { font-size: 2.2rem; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
  [data-reveal] { opacity: 1 !important; transform: none !important; }
  .gold-dust { display: none; }
}

@media print {
  .site-header, .site-footer, .top-progress, .spine-rail, .estimator-progress, .chapter:not(.chapter--estimator), .pricing-hero, .estimator-panel:not(.is-active), .estimator-actions, .result-buttons { display: none !important; }
  body { background: #fff; color: #111; }
  body::before { display: none; }
  .chapter--estimator { padding: 0; color: #111; background: #fff; }
  .estimator { min-height: 0; border: 0; box-shadow: none; }
  .estimator-panel { padding: 0; }
  .result-main, .result-detail { color: #111; background: #fff; border-color: #bbb; }
  .result-main *, .result-detail * { color: #111 !important; }
}
