:root {
  --ink: #071d3b;
  --muted: #526782;
  --green-950: #021b3d;
  --green-900: #06356f;
  --green-800: #084987;
  --green-700: #0a5ca9;
  --mint: #ffb000;
  --mint-soft: #fff2cf;
  --cream: #f3f6fa;
  --white: #fff;
  --line: #d5dfeb;
  --error: #b42318;
  --warning: #805300;
  --orange: #f59e00;
  --shadow: 0 24px 60px rgba(2, 27, 61, .16);
  --radius: 18px;
  --content: 1180px;
}

* { box-sizing: border-box; }
[hidden] { display: none !important; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  color: var(--ink);
  background: var(--cream);
  font-family: "Segoe UI", Arial, Helvetica, sans-serif;
  line-height: 1.55;
  -webkit-font-smoothing: antialiased;
}
button, input, select, textarea { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
a { color: inherit; }
svg { width: 1.2em; height: 1.2em; fill: none; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.8; }
.icon-sprite { position: absolute; width: 0; height: 0; overflow: hidden; }
.skip-link { position: fixed; left: 1rem; top: -5rem; z-index: 100; background: var(--white); padding: .75rem 1rem; border-radius: 8px; }
.skip-link:focus { top: 1rem; }

.site-header {
  width: min(var(--content), calc(100% - 40px));
  min-height: 82px;
  margin: 0 auto;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 2rem;
}
.brand { display: inline-flex; align-items: center; gap: .72rem; text-decoration: none; font-family: "Arial Narrow", "Segoe UI", sans-serif; font-size: 1.5rem; font-weight: 950; letter-spacing: -.045em; }
.brand-word { color: var(--green-900); text-transform: uppercase; text-shadow: 0 1px 0 rgba(255,255,255,.7); }
.brand > span:last-child > span { color: var(--mint); text-shadow: 0 1px 1px rgba(2,27,61,.18); }
.brand-mark { width: 44px; height: 44px; display: grid; place-items: center; color: var(--mint); background: linear-gradient(145deg, var(--green-800), var(--green-950)); border: 2px solid rgba(255,176,0,.68); border-radius: 9px; box-shadow: 0 7px 16px rgba(2,27,61,.2); font-size: .75rem; }
.brand-mark svg { width: 23px; height: 23px; }
.site-header nav, .site-footer nav { display: flex; align-items: center; gap: 1.8rem; }
.site-header nav a, .site-footer nav a { font-size: .88rem; font-weight: 700; text-decoration: none; }
.site-header nav a:hover { color: var(--green-700); }
.site-header .nav-cta { color: var(--green-950); background: var(--mint); border: 1px solid #d58f00; border-radius: 7px; padding: .68rem 1.05rem; box-shadow: 0 4px 0 #b87900; }

.hero {
  width: min(1320px, calc(100% - 28px));
  min-height: 650px;
  margin: 0 auto;
  padding: clamp(3.5rem, 8vw, 7.5rem) clamp(1.5rem, 6vw, 7rem);
  display: grid;
  grid-template-columns: minmax(0, 1.32fr) minmax(320px, .68fr);
  align-items: center;
  gap: 2.5rem;
  background: radial-gradient(circle at 70% 42%, #0b62ac 0, #074783 34%, #042e64 68%, #021b3d 100%);
  color: var(--white);
  border: 1px solid #145fa4;
  border-radius: 22px;
  box-shadow: 0 26px 70px rgba(2,27,61,.28), inset 0 1px 0 rgba(255,255,255,.09);
  overflow: hidden;
  position: relative;
}
.hero::before { content: ""; position: absolute; inset: 0; opacity: .15; background-image: radial-gradient(rgba(255,255,255,.45) .7px, transparent .8px), linear-gradient(115deg, transparent 0 49.5%, rgba(255,255,255,.2) 50%, transparent 50.5%); background-size: 7px 7px, 120px 120px; mask-image: linear-gradient(90deg, #000, transparent 88%); }
.hero-content { position: relative; z-index: 1; min-width: 0; max-width: 100%; }
.eyebrow { margin: 0 0 1rem; color: var(--green-700); text-transform: uppercase; font-size: .73rem; font-weight: 850; letter-spacing: .16em; }
.hero .eyebrow, .process .eyebrow { color: var(--mint); text-shadow: 0 2px 8px rgba(0,0,0,.2); }
h1, h2, h3 { overflow-wrap: normal; word-break: normal; hyphens: none; }
p { overflow-wrap: break-word; }
h1 { margin: 0; max-width: 100%; font-family: "Arial Narrow", "Segoe UI", Arial, sans-serif; font-size: clamp(2.5rem, 4vw, 4.75rem); font-stretch: condensed; font-weight: 950; line-height: .94; letter-spacing: -.05em; text-wrap: balance; text-transform: uppercase; text-shadow: 0 5px 12px rgba(0,0,0,.26); }
h1 em { color: var(--mint); font-style: normal; font-weight: 950; }
.hero-lead { max-width: 710px; margin: 1.8rem 0 0; color: #d9e8f7; font-size: clamp(1rem, 1.5vw, 1.18rem); }
.hero-lead p { margin: 0; }
.hero-lead p + p { margin-top: .7rem; }
.hero-actions { display: flex; gap: .8rem; flex-wrap: wrap; margin-top: 2rem; }
.button { min-height: 50px; display: inline-flex; align-items: center; justify-content: center; gap: .6rem; padding: .82rem 1.25rem; border: 1px solid transparent; border-radius: 7px; font-weight: 900; font-size: .92rem; letter-spacing: .01em; text-decoration: none; cursor: pointer; transition: transform .2s, background .2s, border-color .2s, box-shadow .2s; }
.button:hover { transform: translateY(-2px); }
.button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible, summary:focus-visible, .choice:focus-within, .radio-row label:focus-within, .photo-slot label:focus-within { outline: 3px solid rgba(230,118,51,.38); outline-offset: 3px; }
.button-primary { background: linear-gradient(180deg, #ffbd25, var(--mint)); color: var(--green-950); border-color: #d99400; box-shadow: 0 5px 0 #b87900, 0 10px 24px rgba(0,0,0,.18); }
.button-primary:hover { background: #ffc43d; box-shadow: 0 3px 0 #b87900, 0 8px 18px rgba(0,0,0,.2); }
.button-ghost { color: inherit; border-color: rgba(255,255,255,.36); background: transparent; }
.button-ghost:hover { border-color: var(--white); }
.button svg { width: 18px; height: 18px; }
.trust-line { display: flex; flex-wrap: wrap; gap: .55rem 1.4rem; margin: 2rem 0 0; color: #c4d9ed; font-size: .8rem; }
.trust-line span { display: flex; align-items: center; gap: .45rem; }
.trust-line span::before { content: ""; width: 5px; height: 5px; border-radius: 50%; background: var(--mint); }

.hero-visual { min-width: 0; min-height: 430px; position: relative; display: grid; place-items: center; }
.hero-visual::before { content: ""; position: absolute; width: 420px; height: 420px; border: 1px solid rgba(255,176,0,.36); border-radius: 50%; }
.hero-visual::after { content: ""; position: absolute; width: 300px; height: 300px; background: radial-gradient(circle, rgba(255,176,0,.22), transparent 67%); border-radius: 50%; }
.hero-photo-visual { min-height: 0; }
.hero-photo-visual::before, .hero-photo-visual::after { display: none; }
.hero-photo-frame { width: min(100%, 520px); margin: 0; position: relative; z-index: 2; overflow: hidden; background: #0871ed; border: 2px solid rgba(255,176,0,.72); border-radius: 22px; box-shadow: 0 26px 55px rgba(0,0,0,.34); }
.hero-photo-frame img { display: block; width: 100%; height: auto; }
.hero-brand-visual { background: #f2f7fb; border-color: rgba(255,255,255,.58); }
.hero-brand-visual img { width: 100%; max-width: 100%; height: auto; transform: none; }
.key-illustration { position: relative; z-index: 2; transform: rotate(-38deg); filter: drop-shadow(0 28px 24px rgba(0,0,0,.32)); }
.key-head { width: 190px; height: 230px; padding-top: 48px; background: linear-gradient(145deg, #23302e, #060a09); border: 8px solid #4a5754; border-radius: 48% 48% 42% 42%; display: flex; align-items: center; flex-direction: column; gap: 15px; }
.key-head::before { content: ""; width: 86px; height: 36px; border: 5px solid #68726f; border-radius: 99px; background: #0b1211; }
.key-head span { width: 45px; height: 28px; background: #303b39; border: 2px solid #596461; border-radius: 50%; box-shadow: inset 0 3px 4px rgba(0,0,0,.3); }
.key-head span:nth-child(2) { width: 38px; }
.key-head span:nth-child(3) { width: 30px; height: 20px; }
.key-blade { width: 52px; height: 160px; margin: -2px auto 0; border-radius: 0 0 12px 12px; background: linear-gradient(90deg, #8c9896 0 17%, #dae0df 17% 66%, #889491 66%); clip-path: polygon(0 0,100% 0,100% 74%,72% 74%,72% 86%,100% 86%,100% 100%,0 100%); }
.diagnostic-card { position: absolute; z-index: 3; bottom: 22px; left: -20px; width: 220px; padding: 1rem 1.1rem; background: rgba(255,255,255,.97); color: var(--ink); border: 2px solid var(--mint); border-radius: 10px; box-shadow: var(--shadow); }
.diagnostic-card p { margin: 0 0 .2rem; color: var(--green-700); font-size: .7rem; font-weight: 800; text-transform: uppercase; letter-spacing: .1em; }
.diagnostic-card strong { font-size: .9rem; line-height: 1.3; display: block; }
.pulse { position: absolute; right: 16px; top: 16px; width: 8px; height: 8px; background: var(--orange); border-radius: 50%; box-shadow: 0 0 0 6px rgba(230,118,51,.15); }
.orbit { position: absolute; z-index: 3; width: 13px; height: 13px; background: var(--mint); border-radius: 50%; }
.orbit-one { top: 18%; right: 5%; }.orbit-two { bottom: 27%; right: 18%; width: 7px; height: 7px; background: var(--orange); }

.section { width: min(var(--content), calc(100% - 40px)); margin: 0 auto; padding: clamp(5rem, 9vw, 8.5rem) 0; }
.section-heading { margin-bottom: 3.2rem; display: grid; grid-template-columns: 1.2fr .8fr; gap: 4rem; align-items: end; }
.section-heading h2, .pricing-note h2, .form-intro h2 { margin: 0; color: var(--green-950); font-family: "Arial Narrow", "Segoe UI", Arial, sans-serif; font-size: clamp(2.35rem, 4vw, 4.2rem); font-weight: 950; line-height: .98; letter-spacing: -.055em; text-transform: uppercase; }
.section-heading > p { margin: 0; color: var(--muted); font-size: .98rem; }
.service-grid { display: grid; grid-template-columns: repeat(6, 1fr); gap: 1rem; }
.service-card { grid-column: span 3; min-height: 280px; position: relative; padding: 1.7rem; border: 1px solid var(--line); border-top: 4px solid var(--green-700); border-radius: var(--radius); background: rgba(255,255,255,.72); box-shadow: 0 10px 26px rgba(2,27,61,.07); transition: transform .25s, box-shadow .25s, background .25s; }
.service-card:hover { transform: translateY(-5px); background: var(--white); box-shadow: 0 18px 45px rgba(2,27,61,.14); }
.service-card.featured { background: linear-gradient(145deg, #fff7df, var(--mint-soft)); border-color: #e6ad28; }
.service-card > svg { width: 42px; height: 42px; color: var(--green-700); margin-top: 2.5rem; }
.card-number { position: absolute; top: 1.4rem; right: 1.4rem; color: #7890ad; font-family: "Arial Narrow", sans-serif; font-size: .84rem; font-weight: 900; }
.service-card h3 { margin: 1.2rem 0 .5rem; color: var(--green-950); font-size: 1.12rem; font-weight: 900; text-transform: uppercase; }
.service-card p { margin: 0; color: var(--muted); font-size: .9rem; }

.process { padding: clamp(5rem, 9vw, 8rem) max(20px, calc((100vw - var(--content)) / 2)); background: radial-gradient(circle at 20% 0, #084c91, var(--green-950) 58%); color: var(--white); border-top: 5px solid var(--mint); }
.process .section-heading h2 { color: var(--white); }
.section-heading.light > p { color: #bfd2e6; }
.process-list { margin: 0; padding: 0; display: grid; grid-template-columns: repeat(5, 1fr); list-style: none; border-top: 1px solid rgba(255,255,255,.18); }
.process-list li { min-height: 225px; padding: 1.5rem 1.2rem 1.5rem 0; position: relative; display: flex; flex-direction: column; justify-content: space-between; border-right: 1px solid rgba(255,255,255,.12); }
.process-list li + li { padding-left: 1.2rem; }
.process-list li > span { color: var(--mint); font-family: Georgia, serif; font-size: 1.4rem; }
.process-list h3 { margin: 0 0 .5rem; font-size: 1rem; }
.process-list p { margin: 0; color: #b9cee3; font-size: .84rem; }
.no-payment { margin-top: 2rem; padding: 1rem 1.2rem; display: inline-flex; align-items: center; gap: .75rem; color: var(--green-950); background: linear-gradient(180deg, #ffc43d, var(--mint)); border: 1px solid #d18a00; border-radius: 8px; box-shadow: 0 5px 0 #9c6700; font-size: .9rem; }
.no-payment svg { width: 20px; height: 20px; }

.pricing-note { width: min(var(--content), calc(100% - 40px)); margin: 0 auto; padding: clamp(4rem, 7vw, 6rem) 0; display: grid; grid-template-columns: 1fr 1fr; gap: 5rem; align-items: center; border-bottom: 1px solid #d8ded8; }
.pricing-note > p { margin: 0; padding-left: 2rem; border-left: 5px solid var(--mint); color: var(--muted); font-size: 1rem; }

.form-section { width: min(var(--content), calc(100% - 32px)); margin: 0 auto; padding: clamp(5rem, 9vw, 8rem) 0; }
.form-intro { max-width: 690px; margin: 0 auto 3rem; text-align: center; }
.form-intro p:last-child { color: var(--muted); }
.form-shell { display: grid; grid-template-columns: 285px minmax(0, 1fr); background: var(--white); border: 1px solid #c8d7e6; border-top: 5px solid var(--mint); border-radius: 18px; box-shadow: var(--shadow); overflow: hidden; }
.form-progress { padding: 2.2rem 1.7rem; background: linear-gradient(180deg, var(--green-800), var(--green-950)); color: var(--white); }
.form-progress > p { margin: 0 0 1.6rem; color: #c2d6eb; font-size: .7rem; font-weight: 800; text-transform: uppercase; letter-spacing: .12em; }
.form-progress ol { margin: 0; padding: 0; list-style: none; }
.form-progress li { min-height: 63px; display: flex; gap: .85rem; position: relative; color: #9cb6d0; font-size: .84rem; font-weight: 750; }
.form-progress li:not(:last-child)::after { content: ""; position: absolute; top: 30px; bottom: 0; left: 14px; width: 1px; background: rgba(255,255,255,.15); }
.form-progress li > span { z-index: 1; flex: 0 0 29px; height: 29px; display: grid; place-items: center; border: 1px solid rgba(255,255,255,.22); border-radius: 50%; font-size: .72rem; }
.form-progress li small { display: block; margin-bottom: .05rem; color: #7999ba; font-size: .61rem; text-transform: uppercase; letter-spacing: .1em; }
.form-progress li.is-active { color: var(--white); }.form-progress li.is-active > span { color: var(--green-950); background: var(--mint); border-color: var(--mint); }.form-progress li.is-active small { color: var(--mint); }
.form-progress li.is-complete > span { background: transparent; color: var(--mint); border-color: var(--mint); font-size: 0; }.form-progress li.is-complete > span::before { content: "✓"; font-size: .8rem; }
.privacy-mini { display: flex; align-items: flex-start; gap: .7rem; margin-top: 2.5rem; padding-top: 1.4rem; border-top: 1px solid rgba(255,255,255,.14); }
.privacy-mini svg { flex: 0 0 18px; color: var(--mint); }.privacy-mini p { margin: 0; color: #abc2d9; font-size: .72rem; }.privacy-mini strong { color: #eef6ff; }

.repair-form { min-width: 0; padding: clamp(1.5rem, 4vw, 3.2rem); }
.form-step { min-width: 0; margin: 0; padding: 0; border: 0; }
.js .form-step:not(.is-active) { display: none; }
.form-step > legend { width: 100%; margin-bottom: 2.2rem; padding: 0; display: flex; align-items: center; gap: .9rem; color: var(--green-950); font-family: "Arial Narrow", "Segoe UI", sans-serif; font-size: 1.45rem; font-weight: 950; text-transform: uppercase; }
.form-step > legend > span { width: 44px; height: 44px; display: grid; place-items: center; color: var(--green-950); background: var(--mint); border: 1px solid #d58f00; border-radius: 8px; font-family: "Arial Narrow", sans-serif; font-size: .9rem; font-weight: 950; box-shadow: 0 4px 0 #c07f00; }
.form-step > legend small { display: block; margin-bottom: .05rem; color: var(--muted); font-size: .68rem; font-weight: 650; text-transform: uppercase; letter-spacing: .08em; }
.field-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.2rem; }.field-grid.three { grid-template-columns: repeat(3, minmax(0,1fr)); }.field-grid > .field:first-child:last-child { grid-column: 1/-1; }
.field { min-width: 0; margin-bottom: 1.25rem; }
.field label, .field > .label, .radio-field > legend { display: block; margin-bottom: .48rem; color: #2d3c39; font-size: .82rem; font-weight: 780; }
.field label span[aria-hidden], .radio-field legend span { color: var(--orange); }
.field input:not([type=checkbox]):not([type=radio]):not([type=file]), .field select, .field textarea {
  width: 100%; min-height: 50px; padding: .75rem .9rem; color: var(--ink); background: #fbfcfa; border: 1px solid #cfd9d4; border-radius: 9px; transition: border .2s, box-shadow .2s;
}
.field textarea { min-height: 130px; resize: vertical; }
.field input:hover, .field select:hover, .field textarea:hover { border-color: #9cafaa; }
.field [aria-invalid=true] { border-color: var(--error) !important; box-shadow: 0 0 0 3px rgba(180,35,24,.08); }
.field-error { min-height: 0; margin: .35rem 0 0; color: var(--error); font-size: .76rem; font-weight: 650; }
.field-error:empty { display: none; }
.field-hint { margin: .38rem 0 0; color: var(--muted); font-size: .7rem; line-height: 1.35; }
.field-help { margin: -.45rem 0 1.5rem; color: var(--muted); font-size: .78rem; }
.address-details { border-top: 1px solid var(--line); }
.address-details summary { padding: 1rem 0; cursor: pointer; color: var(--green-700); font-weight: 800; font-size: .86rem; }
.address-details summary span { float: right; color: var(--muted); font-size: .7rem; font-weight: 600; }
.address-details[open] summary { margin-bottom: .8rem; }
.address-grid .field:first-child { grid-column: 1/-1; }
.info-box, .photo-guidance { display: flex; align-items: flex-start; gap: .8rem; padding: 1rem 1.1rem; background: var(--mint-soft); border-radius: 11px; color: #40524d; font-size: .83rem; }
.info-box svg, .photo-guidance svg { flex: 0 0 20px; color: var(--green-700); }.info-box p, .photo-guidance p { margin: 0; }
.conditional { margin-top: .5rem; }

.choice-grid { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: .7rem; }
.choice { min-height: 62px; display: flex; align-items: center; gap: .7rem; padding: .75rem; background: #fbfcfa; border: 1px solid var(--line); border-radius: 10px; cursor: pointer; font-size: .8rem; line-height: 1.3; }
.choice:has(input:checked) { background: var(--mint-soft); border-color: #8cb77e; }
.choice input { position: absolute; opacity: 0; pointer-events: none; }
.choice-check { flex: 0 0 22px; width: 22px; height: 22px; display: grid; place-items: center; color: transparent; border: 1px solid #aab8b3; border-radius: 6px; background: var(--white); }
.choice input:checked + .choice-check { color: var(--white); background: var(--green-700); border-color: var(--green-700); }.choice-check svg { width: 15px; height: 15px; stroke-width: 2.4; }
.textarea-meta { display: flex; justify-content: space-between; color: #7a8985; font-size: .7rem; }
.radio-field { border: 0; padding: 0; }
.radio-row { display: flex; flex-wrap: wrap; gap: .55rem; }
.radio-row label { margin: 0; cursor: pointer; }
.radio-row input { position: absolute; opacity: 0; }
.radio-row label span { min-width: 90px; min-height: 42px; padding: .65rem .9rem; display: grid; place-items: center; color: #52605d; background: #fbfcfa; border: 1px solid var(--line); border-radius: 9px; font-size: .78rem; }
.radio-row input:checked + span { color: var(--green-900); background: var(--mint-soft); border-color: #8cb77e; font-weight: 800; }
.question-panel { margin: 1.3rem 0; padding: 1.3rem 1.3rem .2rem; background: #f6f8f5; border-left: 3px solid var(--mint); border-radius: 0 12px 12px 0; }
.question-panel h3 { margin: 0 0 1rem; font-family: Georgia, serif; font-size: 1.18rem; font-weight: 500; }

.photo-guidance { margin-bottom: 1.3rem; }.photo-guidance strong { display: block; margin-bottom: .2rem; color: var(--ink); }.photo-guidance p { font-size: .76rem; }
.photo-grid { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: .8rem; }
.photo-slot { min-width: 0; }
.photo-slot > input { position: absolute; width: 1px; height: 1px; opacity: 0; }
.photo-slot > label { min-height: 150px; padding: 1rem; display: flex; align-items: center; justify-content: center; flex-direction: column; text-align: center; border: 1.5px dashed #b9c7c2; border-radius: 12px; background: #fbfcfa; cursor: pointer; transition: border .2s, background .2s; }
.photo-slot > label:hover { border-color: var(--green-700); background: var(--mint-soft); }
.photo-icon { width: 36px; height: 36px; display: grid; place-items: center; color: var(--green-700); background: var(--mint-soft); border-radius: 50%; }.photo-icon svg { width: 18px; height: 18px; }
.photo-slot label strong { margin-top: .55rem; font-size: .8rem; }.photo-slot label small { color: var(--muted); font-size: .67rem; }.photo-action { margin-top: .55rem; color: var(--green-700); font-size: .7rem; font-weight: 800; text-decoration: underline; }
.photo-slot.has-photo > label { display: none; }
.photo-preview { min-height: 150px; padding: .6rem; display: grid; grid-template-columns: 92px minmax(0,1fr); gap: .8rem; border: 1px solid var(--line); border-radius: 12px; background: #fbfcfa; align-items: center; }
.photo-preview[hidden] { display: none; }.photo-preview img { width: 92px; height: 116px; object-fit: cover; border-radius: 8px; background: #e7ebe8; }.photo-preview > div { min-width: 0; }.photo-preview strong, .photo-preview small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }.photo-preview strong { font-size: .75rem; }.photo-preview small { margin: .2rem 0 .7rem; color: var(--muted); font-size: .66rem; }.photo-preview button { padding: 0; margin: .2rem .55rem .2rem 0; color: var(--green-700); background: 0; border: 0; font-size: .68rem; font-weight: 800; text-decoration: underline; cursor: pointer; }
.board-photos { margin-top: 1.6rem; padding-top: 1.3rem; border-top: 1px solid var(--line); }.board-photos h3 { margin: 0; font-size: .95rem; }.board-photos h3 span { display: inline-block; margin-left: .4rem; color: var(--muted); font-size: .67rem; font-weight: 600; }.board-photos > p { margin: .35rem 0 1rem; color: var(--muted); font-size: .77rem; }

.review-content { display: grid; gap: .8rem; }.review-card { position: relative; padding: 1rem 4rem 1rem 1rem; background: #f7f9f6; border: 1px solid var(--line); border-radius: 11px; }.review-card h3 { margin: 0 0 .4rem; font-size: .82rem; }.review-card p { margin: .16rem 0; color: var(--muted); font-size: .76rem; }.review-card button { position: absolute; right: 1rem; top: 1rem; padding: 0; color: var(--green-700); background: 0; border: 0; font-size: .7rem; font-weight: 800; text-decoration: underline; cursor: pointer; }
.photo-warning { margin-top: 1rem; padding: .85rem 1rem; color: var(--warning); background: #fff7e8; border: 1px solid #f2d29e; border-radius: 10px; font-size: .78rem; }.photo-warning p { margin: .2rem 0 0; }
.consents { margin-top: 1.3rem; }.consent { display: grid; grid-template-columns: 20px 1fr; gap: .75rem; align-items: start; margin: .8rem 0; color: #465450; font-size: .78rem; cursor: pointer; }.consent input { width: 18px; height: 18px; margin-top: .1rem; accent-color: var(--green-700); }.consent a { color: var(--green-700); }
.final-note { padding: 1rem 1.1rem; background: var(--mint-soft); border-radius: 10px; font-size: .8rem; }.final-note p { margin: .2rem 0 0; color: var(--muted); }

.form-actions { margin-top: 2rem; padding-top: 1.5rem; display: flex; justify-content: flex-end; gap: .7rem; border-top: 1px solid var(--line); }.form-actions .button-ghost { margin-right: auto; color: var(--green-900); border-color: #b5c1bd; }.mobile-progress { display: none; align-self: center; color: var(--muted); font-size: .72rem; }.submit[disabled], .next[disabled] { opacity: .65; cursor: wait; transform: none; }.spinner { display: none; width: 17px; height: 17px; border: 2px solid rgba(11,42,38,.25); border-top-color: var(--green-950); border-radius: 50%; animation: spin .8s linear infinite; }.submit.is-loading .spinner { display: block; }
.submit-status { margin-top: .8rem; color: var(--error); font-size: .8rem; font-weight: 700; }
.error-summary { margin-bottom: 1.5rem; padding: 1rem; color: #7a271a; background: #fff1ee; border: 1px solid #f3b7ae; border-radius: 10px; font-size: .8rem; }.error-summary ul { margin: .45rem 0 0; padding-left: 1.2rem; }.error-summary a { color: inherit; }
.honeypot { position: absolute !important; left: -10000px !important; width: 1px !important; height: 1px !important; overflow: hidden !important; }

.success-banner { width: min(var(--content), calc(100% - 32px)); margin: 1rem auto 2rem; padding: 1.5rem; display: flex; align-items: flex-start; gap: 1rem; background: var(--mint-soft); border: 1px solid #b5d5a9; border-radius: 16px; }.success-icon { flex: 0 0 42px; width: 42px; height: 42px; display: grid; place-items: center; color: var(--white); background: var(--green-700); border-radius: 50%; }.success-banner .eyebrow { margin-bottom: .2rem; }.success-banner h2 { margin: 0; font-family: inherit; font-size: 1.35rem; font-weight: 850; letter-spacing: -.02em; }.success-banner p:last-child { margin: .35rem 0 0; color: var(--muted); font-size: .85rem; }
.no-script-submit { margin-top: 1.25rem; padding: 1rem; color: var(--muted); background: #fff7e8; border-radius: 10px; }.no-script-submit p { margin-top: 0; font-size: .82rem; }
.site-footer { padding: 3.5rem max(20px, calc((100vw - var(--content)) / 2)); display: grid; grid-template-columns: 1fr 1.5fr 1fr; gap: 2rem; align-items: center; color: #b8c7c3; background: var(--green-950); }.footer-brand { color: var(--white); }.site-footer .brand-mark { background: var(--mint); color: var(--green-950); }.site-footer p { margin: 0; font-size: .8rem; }.site-footer nav { justify-content: flex-end; }.site-footer small { grid-column: 1/-1; padding-top: 1.5rem; border-top: 1px solid rgba(255,255,255,.12); text-align: center; color: #7e9690; }
.site-footer small a { color: #b8c7c3; text-decoration: underline; text-underline-offset: .18em; }

.simple-page { width: min(800px, calc(100% - 40px)); min-height: 65vh; margin: 0 auto; padding: 6rem 0; }.simple-page h1 { margin-bottom: 1.5rem; font-size: clamp(2.8rem, 7vw, 5rem); }.simple-page .lead { color: var(--muted); font-size: 1.12rem; }.legal h2 { margin-top: 2.2rem; font-family: Georgia, serif; font-size: 1.6rem; }.legal p { color: #52605d; }.legal-note { padding: 1rem; background: #fff7e8; border-radius: 9px; }.legal .button { margin-top: 1rem; }
.legal-actions { display: flex; flex-wrap: wrap; gap: .75rem; margin-top: 1rem; }

/* Charte AUTO-CLEF : bleu technique, jaune signalétique et surfaces froides. */
.field label, .field > .label, .radio-field > legend { color: #183454; }
.field input:not([type=checkbox]):not([type=radio]):not([type=file]),
.field select,
.field textarea { background: #f7faff; border-color: #c8d6e5; }
.field input:hover, .field select:hover, .field textarea:hover { border-color: #789bc1; }
.info-box, .photo-guidance { color: #385573; background: #eef5fc; border-left: 4px solid var(--green-700); }
.choice, .radio-row label span, .photo-slot > label { background: #f7faff; border-color: #cdd9e6; }
.choice:has(input:checked), .radio-row input:checked + span { color: var(--green-950); background: var(--mint-soft); border-color: #dfa000; }
.question-panel { background: #f1f6fc; border-left-color: var(--mint); }
.review-card { background: #f3f7fc; border-color: #d3deea; }
.success-banner { background: #eef6ff; border-color: #7ea9d2; border-top: 5px solid var(--mint); }
.success-icon { color: var(--green-950); background: var(--mint); }
.site-footer { color: #bed0e2; background: radial-gradient(circle at 20% 0, #084681, var(--green-950) 60%); border-top: 5px solid var(--mint); }
.footer-brand .brand-word { color: var(--white); text-shadow: 0 2px 6px rgba(0,0,0,.25); }
.footer-brand .brand-word span { color: var(--mint); }
.site-footer .brand-mark { color: var(--green-950); background: var(--mint); border-color: #ffd66d; }
.legal h2 { color: var(--green-900); font-family: "Arial Narrow", "Segoe UI", sans-serif; font-weight: 900; text-transform: uppercase; }
.legal p { color: var(--muted); }

@keyframes spin { to { transform: rotate(360deg); } }
@media (max-width: 980px) {
  .hero { grid-template-columns: 1fr; min-height: auto; }.hero-visual { min-height: 340px; }.hero-photo-visual { min-height: 0; }.key-illustration { transform: rotate(-38deg) scale(.78); }.diagnostic-card { left: 8%; bottom: 20px; }
  .service-card { grid-column: span 3; }
  .process-list { grid-template-columns: repeat(3, 1fr); }.process-list li { border-bottom: 1px solid rgba(255,255,255,.12); }
  .form-shell { grid-template-columns: 235px minmax(0,1fr); }.repair-form { padding: 2rem; }
  .site-footer { grid-template-columns: 1fr 1fr; }.site-footer nav { justify-content: flex-start; }
}

@media (max-width: 760px) {
  html { scroll-padding-top: 15px; }.site-header { min-height: 70px; width: calc(100% - 28px); }.site-header nav a:not(.nav-cta) { display: none; }.site-header .nav-cta { padding: .55rem .8rem; font-size: .74rem; }
  .hero { width: calc(100% - 16px); padding: 3.7rem 1.25rem 2.5rem; grid-template-columns: minmax(0,1fr); gap: 1.5rem; border-radius: 22px; }.hero h1 { font-size: clamp(2.35rem, 11vw, 3.8rem); line-height: .96; letter-spacing: -.045em; text-wrap: pretty; }.hero-lead { font-size: .98rem; }.hero-actions { flex-direction: column; }.hero-actions .button { width: 100%; }.trust-line { display: grid; }.hero-visual { min-height: 300px; }.hero-photo-visual { min-height: 0; }.hero-photo-frame { border-radius: 14px; }.hero-visual::before { width: 300px; height: 300px; }.key-illustration { transform: rotate(-38deg) scale(.68); }.diagnostic-card { left: 0; bottom: 5px; width: 190px; }
  .section { width: calc(100% - 32px); padding: 5rem 0; }.section-heading, .pricing-note { grid-template-columns: 1fr; gap: 1.2rem; }.section-heading { margin-bottom: 2rem; }.section-heading h2, .pricing-note h2, .form-intro h2 { font-size: 2.65rem; }.service-grid { grid-template-columns: 1fr; }.service-card { grid-column: auto; min-height: 230px; }
  .process { padding: 5rem 1rem; }.process-list { grid-template-columns: 1fr; }.process-list li, .process-list li + li { min-height: 0; padding: 1.25rem 0; flex-direction: row; justify-content: flex-start; gap: 1.2rem; border-right: 0; }.process-list li > span { flex: 0 0 35px; }.no-payment { align-items: flex-start; }
  .pricing-note { width: calc(100% - 32px); padding: 4rem 0; }.pricing-note > p { padding: 1rem 0 0; border-left: 0; border-top: 3px solid var(--orange); }
  .form-section { width: calc(100% - 16px); padding: 4.5rem 0; }.form-intro { padding: 0 1rem; }.form-shell { display: block; border-radius: 18px; }.form-progress { padding: 1rem; }.form-progress > p, .form-progress li div, .privacy-mini { display: none; }.form-progress ol { display: flex; gap: .35rem; }.form-progress li { min-height: auto; flex: 1; display: block; }.form-progress li:not(:last-child)::after { top: 13px; bottom: auto; left: calc(50% + 13px); right: calc(-50% + 13px); width: auto; height: 1px; }.form-progress li > span { width: 27px; height: 27px; margin: 0 auto; }
  .repair-form { padding: 1.3rem 1rem 1.5rem; }.form-step > legend { font-size: 1.2rem; }.field-grid, .field-grid.three, .choice-grid, .photo-grid { grid-template-columns: 1fr; }.address-grid .field:first-child { grid-column: auto; }.radio-row label { flex: 1; }.radio-row label span { min-width: 75px; padding: .6rem .5rem; }.photo-grid.compact { grid-template-columns: 1fr; }
  .form-actions { align-items: center; }.form-actions .button { min-height: 46px; padding: .7rem .85rem; font-size: .78rem; }.mobile-progress { display: block; }.form-actions .previous:not([hidden]) ~ .mobile-progress { margin-left: 0; }.site-footer { grid-template-columns: 1fr; padding: 3rem 1.5rem; }.site-footer nav { flex-wrap: wrap; gap: 1rem; }.site-footer small { text-align: left; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
}
