:root {
  --ink: #101114;
  --blue: #3f7de0;
  --blue-dark: #2f69c5;
  --blue-soft: #eef4ff;
  --paper: #ffffff;
  --wash: #f5f6f7;
  --muted: #656970;
  --line: #dedfe3;
  --field: #f8f9fb;
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; background: var(--paper); }
body { margin: 0; overflow-x: hidden; background: var(--paper); color: var(--ink); font-family: Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif; -webkit-font-smoothing: antialiased; }
a { color: inherit; text-decoration: none; }
button, input, select, textarea { font: inherit; }
img { max-width: 100%; }
svg { display: block; }
[hidden] { display: none !important; }
section[id] { scroll-margin-top: 74px; }
::selection { color: #fff; background: var(--blue); }

.eyebrow { margin: 0; color: var(--blue); font-size: .7rem; font-weight: 780; letter-spacing: .11em; text-transform: uppercase; }
.announcement { display: flex; min-height: 38px; align-items: center; justify-content: center; gap: 10px; padding: 8px 18px; color: #fff; background: var(--ink); font-size: .68rem; letter-spacing: .035em; text-transform: uppercase; }
.announcement strong { font-weight: 620; }
.announcement svg { width: 14px; height: 14px; }

.site-header { position: sticky; z-index: 50; top: 0; display: grid; min-height: 74px; grid-template-columns: 1fr auto 1fr; align-items: center; padding: 0 max(24px, calc((100vw - 1100px) / 2)); border-bottom: 1px solid var(--line); background: rgb(255 255 255 / 96%); backdrop-filter: blur(14px); }
.brand { width: fit-content; }
.brand-lockup { display: inline-flex; align-items: center; gap: 9px; font-size: .95rem; font-weight: 840; letter-spacing: -.05em; }
.brand-mark { display: inline-flex; width: 32px; height: 32px; align-items: center; justify-content: center; flex: 0 0 32px; }
.brand-lockup .brand-mark img { display: block; width: 100%; max-width: 100%; height: 100%; object-fit: contain; }
.brand-wordmark { white-space: nowrap; }
.brand-lockup-inverse { color: #fff; }
.brand-lockup-inverse .brand-mark-bundled img { filter: invert(1); }
.brand-lockup-inverse .brand-mark-custom { padding: 3px; border-radius: 5px; background: #fff; }
.site-header nav { display: flex; gap: 2rem; color: #4f5258; font-size: .74rem; font-weight: 620; }
.site-header nav a { transition: color 160ms ease; }
.site-header nav a:hover { color: var(--blue); }

.header-cta,
.button,
.submit-button { display: inline-flex; align-items: center; justify-content: center; gap: .7rem; border: 0; border-radius: 4px; color: #fff; background: var(--blue); font-size: .74rem; font-weight: 740; line-height: 1; text-align: center; cursor: pointer; appearance: none; -webkit-appearance: none; transition: background 160ms ease, transform 160ms ease; }
.header-cta > span,
.button > span,
.submit-button > span { display: inline-flex; align-items: center; justify-content: center; line-height: 1; }
.header-cta { min-height: 43px; justify-self: end; padding: 0 17px; }
.button { min-width: 270px; min-height: 58px; padding: 0 24px; text-transform: uppercase; }
.header-cta:hover,
.button:hover,
.submit-button:hover { background: var(--blue-dark); }
.header-cta svg,
.button svg,
.submit-button svg,
.site-footer svg { width: 15px; height: 15px; flex: 0 0 auto; transition: transform 160ms ease; }
.header-cta:hover svg,
.button:hover svg,
.submit-button:hover svg { transform: translateX(3px); }

.hero { display: flex; min-height: calc(100svh - 112px); align-items: center; justify-content: center; padding: 70px 24px; }
.hero-message { width: 100%; max-width: 980px; text-align: center; }
.hero h1 { max-width: 15ch; margin: 22px auto 24px; font-size: clamp(3.7rem, 6.1vw, 6.45rem); font-weight: 830; line-height: .94; letter-spacing: -.055em; text-transform: uppercase; }
.hero h1 span { color: var(--blue); }
.hero-intro { max-width: 690px; margin: 0 auto; color: #565a62; font-size: clamp(1.04rem, 1.5vw, 1.24rem); line-height: 1.55; }
.hero-actions { display: flex; justify-content: center; margin-top: 32px; }
.hero-note { margin: 14px 0 0; color: #898c93; font-size: .67rem; }

.reviews-section { padding: 116px max(24px, calc((100vw - 1100px) / 2)) 126px; border-top: 1px solid var(--line); background: var(--wash); }
.reviews-heading { display: grid; grid-template-columns: 170px minmax(0, 1fr) 320px; gap: 40px; align-items: end; margin-bottom: 56px; }
.reviews-heading .eyebrow { padding-bottom: 8px; }
.reviews-heading h2 { margin: 0; font-size: clamp(3.15rem, 5vw, 5.25rem); font-weight: 810; line-height: .92; letter-spacing: -.055em; text-transform: uppercase; }
.reviews-heading > p:last-child { margin: 0 0 6px; color: var(--muted); font-size: .87rem; line-height: 1.7; }
.reviews-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border-top: 1px solid #d2d5da; border-left: 1px solid #d2d5da; }
.review-card { display: flex; min-width: 0; min-height: 390px; flex-direction: column; padding: 28px; border-right: 1px solid #d2d5da; border-bottom: 1px solid #d2d5da; background: #fff; }
.review-stars { color: var(--blue); font-size: .83rem; letter-spacing: .15em; }
.review-card blockquote { margin: 30px 0 34px; }
.review-card blockquote p { margin: 0; color: #34383f; font-size: .94rem; font-weight: 570; line-height: 1.62; letter-spacing: -.016em; }
.review-card footer { display: block; min-height: 0; margin-top: auto; padding: 22px 0 0; border: 0; border-top: 1px solid var(--line); color: var(--ink); background: transparent; }
.review-card footer strong,
.review-card footer span { display: block; }
.review-card footer strong { font-size: .76rem; font-weight: 760; letter-spacing: .01em; }
.review-card footer span { margin-top: 6px; color: #747982; font-size: .65rem; line-height: 1.45; }

.diagnosis-section { padding: 122px 24px 112px; color: #fff; background: var(--ink); }
.diagnosis-inner { max-width: 1100px; margin: 0 auto; }
.diagnosis-section h2 { max-width: 970px; margin: 25px 0 66px; font-size: clamp(3.6rem, 6vw, 6.5rem); font-weight: 810; line-height: .92; letter-spacing: -.058em; text-transform: uppercase; }
.diagnosis-section h2 span { color: var(--blue); }
.leak-chain { display: grid; grid-template-columns: repeat(3, 1fr); border-top: 1px solid #383a3f; border-bottom: 1px solid #383a3f; }
.leak-chain article { min-height: 218px; padding: 26px 30px 28px 0; border-right: 1px solid #383a3f; }
.leak-chain article:not(:first-child) { padding-left: 30px; }
.leak-chain article:last-child { border-right: 0; }
.leak-chain article > span { color: var(--blue); font-size: .65rem; font-weight: 760; }
.leak-chain strong { display: block; max-width: 11ch; margin-top: 76px; font-size: 1.6rem; line-height: 1.08; letter-spacing: -.035em; }
.leak-chain p { margin: 10px 0 0; color: #8e9198; font-size: .69rem; text-transform: uppercase; }
.diagnosis-close { display: flex; align-items: center; justify-content: space-between; gap: 36px; padding-top: 36px; }
.diagnosis-close > p { max-width: 600px; margin: 0; color: #b5b7bc; font-size: .92rem; line-height: 1.65; }
.diagnosis-close .button { min-width: 235px; }

.approach-section { padding: 122px max(24px, calc((100vw - 1100px) / 2)); background: var(--wash); }
.approach-heading { display: grid; grid-template-columns: 155px 1fr; gap: 50px; }
.approach-heading .eyebrow { padding-top: 9px; }
.approach-heading h2 { max-width: 970px; margin: 0; font-size: clamp(3.4rem, 5.6vw, 6rem); font-weight: 800; line-height: .93; letter-spacing: -.058em; text-transform: uppercase; }
.approach-heading h2 span { display: block; color: var(--blue); }
.approach-copy { display: grid; grid-template-columns: 1fr 1fr; gap: 60px; max-width: 770px; margin: 62px 0 0 auto; }
.approach-copy p { margin: 0; color: var(--muted); font-size: .91rem; line-height: 1.7; }
.approach-copy strong { font-size: 1rem; line-height: 1.58; }
.build-index { display: grid; grid-template-columns: repeat(3, 1fr); margin-top: 76px; border-top: 1px solid #d2d4d8; border-bottom: 1px solid #d2d4d8; }
.build-index article { min-height: 250px; padding: 25px 28px 27px 0; border-right: 1px solid #d2d4d8; }
.build-index article:not(:first-child) { padding-left: 28px; }
.build-index article:last-child { border-right: 0; }
.build-index article > span { color: var(--blue); font-size: .64rem; font-weight: 760; }
.build-index h3 { margin: 76px 0 16px; font-size: 1.55rem; font-weight: 740; letter-spacing: -.035em; }
.build-index p { max-width: 245px; margin: 0; color: var(--muted); font-size: .73rem; line-height: 1.65; }

.process-section { max-width: 1100px; margin: 0 auto; padding: 126px 0; }
.process-heading { display: grid; grid-template-columns: 1.6fr .7fr; gap: 76px; align-items: end; }
.process-heading .eyebrow { grid-column: 1 / -1; }
.process-heading h2 { margin: 0; font-size: clamp(3.25rem, 5vw, 5.3rem); font-weight: 800; line-height: .94; letter-spacing: -.055em; text-transform: uppercase; }
.process-heading h2 span { color: var(--blue); }
.process-heading > p { margin: 0 0 5px; color: var(--muted); font-size: .87rem; line-height: 1.7; }
.process-track { margin: 72px 0 0; padding: 0; border-top: 1px solid var(--line); list-style: none; }
.process-track li { display: grid; min-height: 118px; grid-template-columns: 90px 245px 1fr; gap: 24px; align-items: center; border-bottom: 1px solid var(--line); }
.process-track li > span { color: var(--blue); font-size: .65rem; font-weight: 760; }
.process-track li > div { display: contents; }
.process-track h3 { margin: 0; font-size: 1.45rem; font-weight: 730; letter-spacing: -.035em; }
.process-track p { max-width: 530px; margin: 0; color: var(--muted); font-size: .82rem; line-height: 1.6; }
.effort-bar { display: grid; min-height: 108px; grid-template-columns: 220px 1fr; align-items: center; margin-top: 34px; padding: 0 36px; background: var(--blue-soft); }
.effort-bar span { color: var(--blue); font-size: .66rem; font-weight: 760; letter-spacing: .08em; text-transform: uppercase; }
.effort-bar strong { font-size: clamp(1.25rem, 2vw, 1.8rem); font-weight: 700; letter-spacing: -.035em; }

.cta-band { display: grid; min-height: 400px; grid-template-columns: minmax(0, 1fr) auto; gap: 72px; align-items: end; padding: 80px max(24px, calc((100vw - 1100px) / 2)); color: #fff; background: var(--blue); }
.cta-band .eyebrow { color: #cfe0ff; }
.cta-band h2 { max-width: 870px; margin: 22px 0 0; font-size: clamp(3rem, 5vw, 5.3rem); font-weight: 800; line-height: .94; letter-spacing: -.055em; text-transform: uppercase; }
.button-dark { min-width: 220px; color: #fff; background: var(--ink); }
.button-dark:hover { background: #27292d; }

.faq-section { display: grid; max-width: 1100px; grid-template-columns: 320px 1fr; gap: 100px; margin: 0 auto; padding: 122px 0; }
.faq-heading h2 { margin: 22px 0 20px; font-size: clamp(2.8rem, 4vw, 4.2rem); font-weight: 790; line-height: .96; letter-spacing: -.05em; text-transform: uppercase; }
.faq-heading > p:last-child { max-width: 260px; margin: 0; color: var(--muted); font-size: .82rem; line-height: 1.65; }
.faq-list { border-top: 1px solid var(--line); }
.faq-list details { border-bottom: 1px solid var(--line); }
.faq-list summary { display: flex; min-height: 82px; align-items: center; justify-content: space-between; gap: 20px; cursor: pointer; font-size: .94rem; font-weight: 650; list-style: none; }
.faq-list summary::-webkit-details-marker { display: none; }
.faq-list summary > span:last-child { display: grid; width: 27px; height: 27px; flex: 0 0 auto; place-items: center; border: 1px solid #c2c4c9; border-radius: 50%; color: #74777e; font-size: 1.1rem; font-weight: 360; transition: transform 160ms ease; }
.faq-list details[open] summary > span:last-child { transform: rotate(45deg); }
.faq-list details > p { max-width: 650px; margin: -2px 50px 28px 0; color: var(--muted); font-size: .84rem; line-height: 1.67; }

.form-modal-backdrop,
.form-modal-close { display: none; }
.form-modal-open { overflow: hidden; }
.form-modal.modal-ready { position: fixed; z-index: 1000; inset: 0; display: grid; align-items: start; overflow-y: auto; overscroll-behavior: contain; padding: 24px; background: rgb(5 6 8 / 78%); backdrop-filter: blur(10px); }
.form-modal.modal-ready .form-modal-backdrop { position: fixed; display: block; inset: 0; cursor: pointer; }
.form-modal.modal-ready .start-shell { position: relative; z-index: 1; width: 100%; margin: auto; padding: 58px; border: 1px solid #33363c; border-radius: 12px; background: var(--ink); box-shadow: 0 28px 90px rgb(0 0 0 / 38%); }
.form-modal.modal-ready .form-modal-close { position: absolute; z-index: 2; top: 14px; right: 14px; display: grid; width: 34px; height: 34px; place-items: center; border: 1px solid #484b52; border-radius: 50%; color: #fff; background: #25272c; cursor: pointer; appearance: none; -webkit-appearance: none; }
.form-modal-close span,
.form-modal-close span::before { display: block; width: 13px; height: 1px; background: currentColor; content: ''; }
.form-modal-close span { transform: rotate(45deg); }
.form-modal-close span::before { transform: rotate(90deg); }

.start-section { padding: 122px 24px; color: #fff; background: var(--ink); }
.start-shell { display: grid; max-width: 1160px; grid-template-columns: 340px minmax(0, 1fr); gap: 76px; align-items: start; margin: 0 auto; }
.start-heading { position: sticky; top: 112px; }
.start-heading h2 { margin: 22px 0 24px; font-size: clamp(3.2rem, 4.4vw, 4.9rem); font-weight: 800; line-height: .94; letter-spacing: -.055em; text-transform: uppercase; }
.start-heading > p { margin: 0; color: #a9acb2; font-size: .86rem; line-height: 1.68; }
.start-heading ul { margin: 38px 0 0; padding: 0; border-top: 1px solid #383a3f; list-style: none; }
.start-heading li { position: relative; padding: 15px 0 15px 18px; border-bottom: 1px solid #383a3f; color: #c2c4c9; font-size: .72rem; }
.start-heading li::before { position: absolute; top: 21px; left: 0; width: 6px; height: 6px; border-radius: 50%; background: var(--blue); content: ''; }
.project-form { overflow: hidden; min-height: 620px; border-radius: 8px; color: var(--ink); background: #fff; }
.form-top { display: flex; min-height: 76px; align-items: center; justify-content: space-between; gap: 24px; padding: 0 40px; border-bottom: 1px solid var(--line); }
.form-top > div:first-child { display: flex; gap: 12px; align-items: center; }
.form-top span,
.form-top strong { font-size: .67rem; letter-spacing: .075em; text-transform: uppercase; }
.form-top > div:first-child > span { color: #85888f; }
.form-top strong { font-weight: 760; }
.form-progress { display: grid; width: 150px; grid-template-columns: repeat(3, 1fr); gap: 5px; }
.form-progress span { height: 3px; background: #dfe1e5; }
.form-progress span.active { background: var(--blue); }
.form-step { min-height: 490px; margin: 0; padding: 40px 40px 30px; border: 0; }
.form-step legend { padding: 0; font-size: clamp(1.85rem, 2.8vw, 2.55rem); font-weight: 740; line-height: 1.05; letter-spacing: -.045em; }
.form-step > p { max-width: 560px; margin: 13px 0 30px; color: var(--muted); font-size: .78rem; line-height: 1.6; }
.choice-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.choice { position: relative; cursor: pointer; }
.choice input { position: absolute; width: 1px; height: 1px; opacity: 0; }
.choice span { display: flex; min-height: 58px; align-items: center; justify-content: space-between; gap: 16px; padding: 0 16px; border: 1px solid #d9dbe0; border-radius: 5px; color: #50545b; background: #fff; font-size: .76rem; transition: color 150ms ease, border-color 150ms ease, background 150ms ease; }
.choice svg { width: 16px; height: 16px; opacity: 0; }
.choice:hover span { border-color: #aeb3bc; }
.choice input:focus-visible + span { outline: 3px solid rgb(63 125 224 / 30%); outline-offset: 2px; }
.choice input:checked + span { border-color: var(--blue); color: #fff; background: var(--blue); }
.choice input:checked + span svg { opacity: 1; }
.field-stack { display: grid; gap: 20px; }
.field-stack label { display: grid; gap: 8px; color: #4f535a; font-size: .67rem; font-weight: 700; letter-spacing: .035em; }
.field-stack label > span { display: flex; align-items: center; justify-content: space-between; }
.field-stack em { color: #9699a0; font-size: .61rem; font-style: normal; font-weight: 560; text-transform: uppercase; }
.field-stack input,
.field-stack select,
.field-stack textarea { width: 100%; border: 1px solid #d9dbe0; border-radius: 5px; outline: none; color: var(--ink); background: var(--field); transition: border-color 150ms ease, background 150ms ease; }
.field-stack input,
.field-stack select { min-height: 56px; padding: 0 15px; }
.field-stack textarea { min-height: 108px; padding: 15px; resize: vertical; }
.field-stack input::placeholder,
.field-stack textarea::placeholder { color: #9699a0; }
.field-stack input:focus,
.field-stack select:focus,
.field-stack textarea:focus { border-color: var(--blue); background: #fff; }
.phone-field { display: grid; grid-template-columns: 142px 1fr; gap: 10px; }
.step-actions { display: flex; align-items: center; justify-content: space-between; gap: 18px; margin-top: 30px; padding-top: 24px; border-top: 1px solid var(--line); }
.step-actions-end { justify-content: flex-end; }
.submit-button { min-height: 54px; padding: 0 22px; }
.submit-button:disabled { cursor: not-allowed; opacity: .36; }
.back-button { border: 0; padding: 10px 0; color: #73777e; background: transparent; font-size: .72rem; font-weight: 680; cursor: pointer; }
.back-button:hover { color: var(--ink); }
.back-button:disabled { cursor: not-allowed; opacity: .45; }
.form-error { margin: 18px 0 0; padding: 12px 14px; border-left: 3px solid #c83434; color: #862626; background: #fff1f1; font-size: .7rem; line-height: 1.45; }
.lynuv-honey { position: absolute !important; left: -10000px !important; width: 1px !important; height: 1px !important; overflow: hidden !important; }
.form-note { margin: 0; padding: 0 40px 24px; color: #95989e; font-size: .63rem; text-align: center; }
.form-success { min-height: 620px; padding: 100px 38px; border-radius: 8px; color: var(--ink); background: #fff; text-align: center; }
.form-overline { margin: 0; color: var(--blue); font-size: .68rem; font-weight: 760; letter-spacing: .09em; text-transform: uppercase; }
.success-icon { display: grid; width: 46px; height: 46px; place-items: center; margin: 0 auto 22px; border-radius: 50%; color: #fff; background: var(--blue); }
.success-icon svg { width: 20px; height: 20px; }
.form-success h3 { margin: 18px 0 14px; font-size: clamp(2.3rem, 4vw, 3.8rem); font-weight: 780; letter-spacing: -.045em; text-transform: uppercase; }
.form-success > p:not(.form-overline) { max-width: 520px; margin: 0 auto; color: var(--muted); font-size: .84rem; line-height: 1.6; }
.form-success button { margin-top: 26px; border: 0; border-bottom: 1px solid var(--blue); padding: 0 0 4px; color: var(--blue); background: transparent; cursor: pointer; }

.site-footer { display: grid; min-height: 154px; grid-template-columns: 1fr 1fr 1fr; align-items: center; padding: 0 max(24px, calc((100vw - 1100px) / 2)); border-top: 1px solid #2b2d31; color: #fff; background: var(--ink); }
.site-footer > p { margin: 0; color: #85888f; font-size: .68rem; text-align: center; }
.site-footer > a:last-child { display: inline-flex; justify-self: end; align-items: center; gap: 8px; font-size: .69rem; font-weight: 650; }
.site-footer > .footer-top-link { display: inline-flex; justify-self: end; align-items: center; gap: 8px; font-size: .69rem; font-weight: 650; }
.site-footer.has-social-links { padding-top: 28px; row-gap: 20px; }
.social-links { grid-column: 1 / -1; display: flex; flex-wrap: wrap; justify-content: center; gap: 10px; padding: 0 0 24px; }
.social-links a { display: inline-flex; min-height: 44px; align-items: center; justify-content: center; padding: 0 16px; border: 1px solid #41444b; border-radius: 6px; color: #e7e9ed; font-size: 12px; }
.social-links a:hover { border-color: var(--blue); background: #1c2638; }
.social-links a:focus-visible { outline: 3px solid #9abbf4; outline-offset: 3px; }

.wp-content-shell { width: min(100% - 36px, 900px); min-height: 65vh; margin: 0 auto; padding: 90px 0; }
.wp-content-shell h1 { margin: 0 0 32px; font-size: clamp(2.7rem, 6vw, 5.2rem); line-height: .96; letter-spacing: -.05em; text-transform: uppercase; }
.entry-card { padding: 30px 0; border-top: 1px solid var(--line); }
.entry-card:last-child { border-bottom: 1px solid var(--line); }
.entry-card h2 { margin: 0 0 12px; font-size: 1.6rem; letter-spacing: -.035em; }
.entry-card p, .entry-content { color: var(--muted); line-height: 1.75; }
.pagination { margin-top: 36px; }
.comments-area { margin-top: 54px; padding-top: 30px; border-top: 1px solid var(--line); }

.admin-bar .site-header { top: 32px; }

a:focus-visible,
button:focus-visible,
summary:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible { outline: 3px solid rgb(63 125 224 / 36%); outline-offset: 3px; }

@media (max-width: 1160px) {
  .process-section,
  .faq-section { margin-right: 28px; margin-left: 28px; }
}

@media (max-width: 800px) {
  .site-header { grid-template-columns: 1fr auto; padding: 0 18px; }
  .site-header nav { display: none; }
  .diagnosis-close { align-items: flex-start; flex-direction: column; }
  .approach-heading { grid-template-columns: 1fr; gap: 25px; }
  .approach-heading .eyebrow { padding-top: 0; }
  .process-heading { grid-template-columns: 1fr; gap: 25px; }
  .process-heading .eyebrow { grid-column: auto; }
  .process-heading > p { max-width: 560px; }
  .cta-band { grid-template-columns: 1fr; gap: 46px; align-items: start; }
  .faq-section { grid-template-columns: 1fr; gap: 54px; }
  .faq-heading > p:last-child { max-width: 480px; }
  .start-shell { grid-template-columns: 1fr; gap: 54px; }
  .start-heading { position: static; max-width: 620px; }
  .form-modal.modal-ready { padding: 14px; }
  .form-modal.modal-ready .start-shell { gap: 0; padding: 54px 14px 14px; }
  .form-modal.modal-ready .start-heading { display: none; }
  .reviews-heading { grid-template-columns: 1fr; gap: 18px; }
  .reviews-heading .eyebrow { padding-bottom: 0; }
  .reviews-heading > p:last-child { max-width: 520px; margin: 0; }
  .reviews-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 560px) {
  .admin-bar .site-header { top: 46px; }
  .announcement { justify-content: space-between; font-size: .58rem; }
  .site-header { min-height: 65px; padding: 0 13px; }
  .brand-lockup img { width: 28px; height: 26px; }
  .header-cta { min-height: 39px; padding: 0 12px; font-size: .66rem; }
  .hero { min-height: calc(100svh - 103px); padding: 64px 18px; }
  .hero h1 { margin-top: 20px; font-size: clamp(2.75rem, 13.5vw, 3.65rem); }
  .hero-intro { font-size: .98rem; }
  .hero .button { width: 100%; min-width: 0; }

  .reviews-section { padding: 82px 18px; }
  .reviews-heading { grid-template-columns: 1fr; gap: 18px; margin-bottom: 38px; }
  .reviews-heading .eyebrow { padding-bottom: 0; }
  .reviews-heading h2 { font-size: 2.85rem; }
  .reviews-heading > p:last-child { max-width: 520px; margin: 0; }
  .reviews-grid { grid-template-columns: 1fr; }
  .review-card { min-height: 0; padding: 26px 22px; }
  .review-card blockquote { margin: 24px 0 28px; }

  .diagnosis-section { padding: 84px 18px 78px; }
  .diagnosis-section h2 { margin: 20px 0 48px; font-size: clamp(2.8rem, 12.8vw, 3.45rem); }
  .leak-chain { grid-template-columns: 1fr; }
  .leak-chain article,
  .leak-chain article:not(:first-child) { min-height: 0; padding: 23px 0; border-right: 0; border-bottom: 1px solid #383a3f; }
  .leak-chain article:last-child { border-bottom: 0; }
  .leak-chain strong { margin-top: 42px; font-size: 1.45rem; }
  .diagnosis-close { gap: 28px; padding-top: 30px; }
  .diagnosis-close .button { width: 100%; min-width: 0; }

  .approach-section { padding: 84px 18px; }
  .approach-heading { gap: 21px; }
  .approach-heading h2 { font-size: 2.85rem; }
  .approach-copy { grid-template-columns: 1fr; gap: 24px; margin-top: 38px; }
  .build-index { grid-template-columns: 1fr; margin-top: 50px; }
  .build-index article,
  .build-index article:not(:first-child) { min-height: 0; padding: 23px 0 26px; border-right: 0; border-bottom: 1px solid #d2d4d8; }
  .build-index article:last-child { border-bottom: 0; }
  .build-index h3 { margin-top: 44px; }

  .process-section { margin: 0 18px; padding: 84px 0; }
  .process-heading { gap: 21px; }
  .process-heading h2 { font-size: 2.85rem; }
  .process-track { margin-top: 48px; }
  .process-track li { min-height: 0; grid-template-columns: 34px 1fr; gap: 8px; align-items: start; padding: 25px 0; }
  .process-track li > div { display: block; }
  .process-track h3 { margin-bottom: 12px; font-size: 1.3rem; }
  .effort-bar { min-height: 0; grid-template-columns: 1fr; gap: 18px; margin-top: 28px; padding: 26px 22px; }

  .cta-band { min-height: 0; padding: 78px 18px; }
  .cta-band h2 { font-size: 2.8rem; }
  .cta-band .button { width: 100%; min-width: 0; }

  .faq-section { gap: 44px; margin: 0 18px; padding: 84px 0; }
  .faq-heading h2 { font-size: 2.8rem; }
  .faq-list summary { min-height: 76px; font-size: .88rem; }

  .start-section { padding: 84px 12px 12px; }
  .start-shell { gap: 44px; }
  .start-heading { padding: 0 6px; }
  .start-heading h2 { font-size: 3rem; }
  .project-form { min-height: 600px; border-radius: 6px; }
  .form-top { min-height: 68px; padding: 0 18px; }
  .form-progress { width: 92px; }
  .form-step { min-height: 500px; padding: 30px 18px 24px; }
  .form-step legend { font-size: 1.9rem; }
  .choice-grid { grid-template-columns: 1fr; gap: 8px; }
  .choice span { min-height: 54px; }
  .phone-field { grid-template-columns: 115px 1fr; gap: 8px; }
  .step-actions .submit-button { width: auto; flex: 0 1 220px; }
  .form-note { padding: 0 18px 22px; line-height: 1.45; }
  .form-success { min-height: 520px; padding: 66px 20px; }
  .form-modal.modal-ready { padding: 8px; }
  .form-modal.modal-ready .start-shell { padding: 50px 0 0; border-radius: 9px; }
  .form-modal.modal-ready .project-form,
  .form-modal.modal-ready .form-success { border-radius: 0 0 8px 8px; }

  .site-footer { min-height: 146px; grid-template-columns: 1fr auto; padding: 0 18px; }
  .site-footer > p { display: none; }
}

/* Focused conversion dialog. One surface, predictable spacing, no oversized side panel. */
.form-modal.modal-ready { padding: 24px; background: rgb(16 17 20 / 60%); backdrop-filter: blur(5px); }
.form-modal.modal-ready .start-shell { display: block; max-width: 620px; padding: 34px; border: 1px solid #e3e6eb; border-radius: 16px; color: var(--ink); background: #fff; }
.form-modal.modal-ready .start-heading { position: static; display: block; padding: 0 34px 0 0; }
.form-modal.modal-ready .start-heading .eyebrow { color: var(--blue-dark); font-size: 11px; }
.form-modal.modal-ready .start-heading h2 { margin: 10px 0; font-size: 30px; line-height: 1.1; letter-spacing: -.045em; text-transform: none; }
.form-modal.modal-ready .start-heading > p:not(.eyebrow) { color: var(--muted); font-size: 13px; line-height: 1.5; }
.form-modal.modal-ready .start-heading .exit-heading { margin-top: 10px; color: var(--blue-dark); font-weight: 650; }
.form-modal.modal-ready .form-modal-close { position: sticky; float: right; top: 0; right: auto; width: 44px; height: 44px; margin: -20px -20px -24px 0; border: 0; border-radius: 50%; color: #555c66; background: #f1f3f6; }
.form-modal.modal-ready .form-modal-close:hover { color: var(--ink); background: #e6eaf0; }
.form-modal.modal-ready .project-form { min-height: 0; overflow: visible; border-radius: 0; }
.form-modal.modal-ready .form-top { min-height: 0; gap: 14px; margin: 24px 0; padding: 0 0 16px; }
.form-modal.modal-ready .form-top > div:first-child { gap: 10px; flex-wrap: wrap; }
.form-modal.modal-ready .form-top span, .form-modal.modal-ready .form-top strong { font-size: 10px; letter-spacing: .04em; }
.form-modal.modal-ready .form-top > div:first-child > span { color: #676d76; }
.form-modal.modal-ready .form-progress { width: 90px; flex-shrink: 0; }
.form-modal.modal-ready .form-step { min-width: 0; min-height: 0; padding: 0; }
.form-modal.modal-ready .form-step legend { max-width: 100%; margin: 0; font-size: 23px; line-height: 1.2; letter-spacing: -.035em; }
.form-modal.modal-ready .form-step > p { margin: 8px 0 20px; font-size: 13px; }
.form-modal.modal-ready .choice-grid { grid-template-columns: 1fr 1fr; gap: 8px; }
.form-modal.modal-ready .choice span { min-height: 50px; gap: 8px; padding: 10px 12px; border-radius: 8px; font-size: 13px; line-height: 1.3; }
.form-modal.modal-ready .choice svg { flex-shrink: 0; }
.form-modal.modal-ready .choice input:checked + span { color: #245cae; background: var(--blue-soft); }
.form-modal.modal-ready .field-stack { gap: 16px; }
.form-modal.modal-ready .field-stack label { gap: 7px; font-size: 13px; font-weight: 600; letter-spacing: 0; }
.form-modal.modal-ready .field-stack em { color: #737982; font-size: 11px; text-transform: none; }
.form-modal.modal-ready .field-stack input, .form-modal.modal-ready .field-stack select, .form-modal.modal-ready .field-stack textarea { min-width: 0; border-radius: 8px; font-size: 16px; font-weight: 400; background: #fff; }
.form-modal.modal-ready .field-stack input, .form-modal.modal-ready .field-stack select { min-height: 48px; padding: 0 12px; }
.form-modal.modal-ready .field-stack textarea { min-height: 80px; padding: 12px; }
.form-modal.modal-ready input::placeholder, .form-modal.modal-ready textarea::placeholder { color: #767d87; }
.form-modal.modal-ready .phone-group { display: grid; gap: 7px; min-width: 0; }
.form-modal.modal-ready .phone-field { grid-template-columns: minmax(0, .95fr) minmax(0, 1.05fr); gap: 8px; }
.form-modal.modal-ready .phone-field select { text-overflow: ellipsis; }
.form-modal.modal-ready .step-actions { gap: 16px; margin-top: 24px; padding-top: 0; border: 0; }
.form-modal.modal-ready .submit-button { min-height: 50px; flex: 1; border-radius: 8px; font-size: 14px; line-height: 1.25; background: var(--blue-dark); }
.form-modal.modal-ready .submit-button:disabled { opacity: .65; cursor: wait; }
.form-modal.modal-ready .back-button { min-width: 60px; min-height: 48px; font-size: 13px; }
.form-modal.modal-ready .form-note { padding: 16px 0 0; color: #737982; font-size: 11px; line-height: 1.5; }
.form-modal .field-error { display: block; color: #b42318; font-size: 12px; font-weight: 450; line-height: 1.5; letter-spacing: 0; }
.form-modal .choice-grid + .field-error { margin-top: 8px; }
.form-modal [aria-invalid="true"] { border-color: #b42318; }
.form-modal .field-stack label > .field-error { display: block; }
.form-modal .form-error { font-size: 13px; }
.form-modal [data-turnstile]:not(:empty) { margin-top: 18px; }
.form-modal :is(button,input,select,textarea,a):focus-visible { outline: 3px solid #9abbf4; outline-offset: 3px; }
.form-modal :is(legend,.form-modal-dialog,.form-success):focus { outline: none; }
.form-modal.modal-ready .form-success { min-height: 0; padding: 38px 0 20px; }
.form-modal.modal-ready .form-success h3 { font-size: 30px; text-transform: none; }
.form-modal.modal-ready .form-success > p:not(.form-overline) { font-size: 14px; }
@media (max-width: 600px) {
  .form-modal.modal-ready { padding: 10px; }
  .form-modal.modal-ready .start-shell { padding: 24px 20px; border-radius: 12px; }
  .form-modal.modal-ready .start-heading { padding-right: 32px; }
  .form-modal.modal-ready .start-heading h2 { font-size: 25px; }
  .form-modal.modal-ready .form-modal-close { top: 0; right: auto; margin: -16px -12px -28px 0; }
  .form-modal.modal-ready .form-step legend { font-size: 21px; }
  .form-modal.modal-ready .form-top { margin-top: 20px; }
  .form-modal.modal-ready .form-top > div:first-child > span { display: none; }
  .form-modal.modal-ready .submit-button { width: auto; flex: 1; }
}
@media (max-width: 370px) {
  .form-modal.modal-ready .start-shell { padding: 22px 14px; }
  .form-modal.modal-ready .form-modal-close { margin-right: -6px; }
  .form-modal.modal-ready .choice-grid { grid-template-columns: 1fr; }
  .form-modal.modal-ready .phone-field { grid-template-columns: 1fr; }
}

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