:root {
  --navy: #112a63;
  --blue: #125de0;
  --blue-bright: #1a70f2;
  --orange: #e45f2d;
  --sky: #eef7ff;
  --sky-deep: #dceeff;
  --line: #c9dcf6;
  --text: #172d63;
  --muted: #475c83;
  --yellow: #fff07a;
  --green: #16c94d;
  --white: #ffffff;
  --shadow: 0 10px 28px rgba(70, 116, 183, .14);
  --serif: "Yu Mincho", "Hiragino Mincho ProN", "Noto Serif JP", serif;
  --sans: "Yu Gothic", "Hiragino Kaku Gothic ProN", Meiryo, sans-serif;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; color: var(--text); background: #f6fbff; font-family: var(--sans); font-size: 17px; line-height: 1.75; }
img { display: block; max-width: 100%; }
a { color: inherit; text-decoration: none; }
button, input, textarea { font: inherit; }
.mobile-only-break, .mobile-title-break { display: none; }
.keep-phrase { white-space: nowrap; }
.hero-underbar > div:first-child { min-width: 0; }
.hero-title-line { display: inline-block; white-space: nowrap; }

.site-header { position: sticky; top: 0; z-index: 20; display: flex; align-items: center; justify-content: space-between; min-height: 78px; padding: 12px clamp(18px, 5vw, 78px); background: rgba(255,255,255,.96); border-bottom: 1px solid #e2edfb; box-shadow: 0 4px 18px rgba(50, 100, 160, .06); }
.brand { display: inline-flex; align-items: center; gap: 12px; min-width: 260px; }
.brand-logo { width: 54px; height: 54px; object-fit: contain; }
.brand strong { display: block; color: var(--navy); font-family: var(--serif); font-size: 20px; line-height: 1.2; letter-spacing: .06em; }
.brand small { display: block; margin-top: 2px; color: #6b83aa; font-size: 9px; letter-spacing: .12em; }
.desktop-nav { display: flex; align-items: center; gap: clamp(8px, 1.45vw, 24px); color: var(--navy); font-size: 13px; font-weight: 700; }
.desktop-nav a:not(.nav-cta) { padding: 8px 0; }
.nav-cta { padding: 12px 20px; color: #fff; background: var(--blue); border-radius: 999px; box-shadow: 0 6px 14px rgba(18, 93, 224, .2); }
.menu-button, .mobile-nav { display: none; }

.hero { background: linear-gradient(145deg, #fff, #edf7ff 76%, #e1f1ff); }
.hero-image { display: block; width: 80%; max-width: 1440px; height: auto; margin: 0 auto; object-fit: contain; object-position: center; }
.hero-underbar { display: flex; align-items: center; justify-content: space-between; gap: 30px; max-width: 1280px; margin: 0 auto; padding: 34px clamp(20px, 5vw, 84px) 22px; }
.eyebrow { color: var(--blue); font-size: 12px; font-weight: 800; letter-spacing: .14em; }
.hero-underbar h1 { margin: 7px 0 0; color: var(--navy); font-family: var(--serif); font-size: clamp(30px, 4vw, 54px); line-height: 1.2; letter-spacing: .04em; text-wrap: balance; }
.hero-underbar p { max-width: 660px; margin: 8px 0 0; color: var(--muted); font-size: 18px; }
.button { display: inline-flex; align-items: center; justify-content: space-between; gap: 24px; min-width: 220px; padding: 17px 22px; border-radius: 10px; font-size: 16px; font-weight: 800; box-shadow: var(--shadow); transition: transform .18s ease, filter .18s ease; }
.button:hover { transform: translateY(-2px); filter: brightness(1.04); }
.button-primary { color: #fff; background: var(--blue); }
.hero-actions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; width: min(520px, 44vw); flex: 0 0 auto; }
.image-button { display: block; min-width: 0; transition: transform .18s ease, filter .18s ease; }
.image-button:hover { transform: translateY(-2px); filter: brightness(1.035); }
.image-button:focus-visible { outline: 3px solid #f4c400; outline-offset: 4px; border-radius: 18px; }
.image-button img { display: block; width: 100%; height: auto; object-fit: contain; }
.trust-row { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; max-width: 1080px; margin: 0 auto; padding: 22px clamp(20px, 5vw, 84px) 42px; }
.trust-row > span { display: flex; align-items: center; gap: 14px; min-height: 112px; padding: 18px 20px; background: rgba(255,255,255,.94); border: 1px solid #cfe2fa; border-radius: 20px; box-shadow: var(--shadow); text-align: left; }
.trust-row > span > img { width: 72px; height: 72px; object-fit: contain; flex: 0 0 auto; }
.trust-copy { display: grid; gap: 5px; min-width: 0; }
.trust-row b { color: var(--blue); font-family: var(--serif); font-size: 24px; line-height: 1.2; }
.trust-row small { color: var(--muted); font-size: 13px; line-height: 1.55; }

.section { position: relative; overflow: hidden; padding: 100px clamp(20px, 7vw, 120px); }
.section::before, .section::after { position: absolute; z-index: 0; content: ""; border: 1px solid rgba(145, 191, 243, .22); border-radius: 50%; pointer-events: none; }
.section::before { width: 460px; height: 460px; top: -190px; right: -210px; }
.section::after { width: 280px; height: 280px; bottom: -160px; left: -130px; }
.section > * { position: relative; z-index: 1; max-width: 1180px; margin-right: auto; margin-left: auto; }
.section-heading { display: flex; align-items: center; justify-content: center; gap: 18px; margin-bottom: 50px; text-align: center; }
.section-heading h2 { margin: 0; color: var(--navy); font-family: var(--serif); font-size: clamp(34px, 4.5vw, 62px); line-height: 1.28; letter-spacing: .06em; text-wrap: balance; }
.flow-title-main, .flow-title-tail { display: inline-block; white-space: nowrap; }
.section-heading em { color: var(--blue); font-style: normal; }
.heading-with-rule::before, .heading-with-rule::after { display: block; width: clamp(34px, 12vw, 150px); height: 2px; content: ""; background: var(--blue); }
.section-reasons, .section-first, .section-cases { background: #fff; }
.section-services, .section-flow, .section-faq { background: var(--sky); }
.section-fees { background: #fff; }
.public-data-section { background: #f8fbff; }
.scope-section { background: #fff; }

.visual-section { padding-top: 72px; padding-bottom: 72px; }
.visual-lead { margin: 0 auto 28px; color: var(--muted); font-size: 18px; line-height: 1.8; text-align: center; }
.visual-figure { margin: 0 auto; }
.visual-figure picture, .scope-picture { display: block; }
.visual-figure img { display: block; width: 100%; height: auto; border-radius: 24px; box-shadow: var(--shadow); }
.public-data-heading { margin-bottom: 24px; }
.public-data-reading { display: grid; grid-template-columns: minmax(0, .92fr) minmax(0, 1.08fr); gap: 28px 42px; max-width: 1180px; margin-top: 30px; padding: 30px 34px 24px; background: #fff; border: 1px solid #cfe2fa; border-left: 5px solid var(--blue); border-radius: 6px 22px 22px 6px; box-shadow: var(--shadow); }
.public-data-reading-copy { align-self: start; }
.public-data-reading-kicker { color: var(--blue); font-size: 11px; font-weight: 800; letter-spacing: .14em; }
.public-data-reading h3 { margin: 9px 0 12px; color: var(--navy); font-family: var(--serif); font-size: clamp(25px, 2.7vw, 36px); line-height: 1.4; text-wrap: balance; }
.public-data-reading-copy p { margin: 0; color: var(--muted); font-size: 17px; line-height: 1.9; }
.public-data-reading-points { display: grid; gap: 0; }
.public-data-reading-points > div { display: grid; grid-template-columns: 36px minmax(0, 1fr); gap: 2px 12px; padding: 12px 0; border-bottom: 1px solid #e1ecf9; }
.public-data-reading-points > div:first-child { padding-top: 0; }
.public-data-reading-points > div:last-child { border-bottom: 0; }
.public-data-reading-points span { grid-row: 1 / span 2; display: grid; width: 32px; height: 32px; place-items: center; color: #fff; background: var(--blue); border-radius: 50%; font-size: 11px; font-weight: 800; }
.public-data-reading-points strong { color: var(--navy); font-size: 17px; line-height: 1.5; }
.public-data-reading-points small { color: var(--muted); font-size: 15px; line-height: 1.65; }
.public-data-reading-note { grid-column: 1 / -1; margin: 0; padding-top: 14px; color: #6b83aa; border-top: 1px dashed #cfe2fa; font-size: 13px; line-height: 1.75; }
.public-data-reading-note a { color: var(--blue); text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 3px; }
.public-data-reading-note a:hover { color: var(--orange); }
.scope-intro { display: grid; grid-template-columns: 92px minmax(0, 1fr); align-items: center; gap: 24px; max-width: 860px; margin: 0 auto 34px; }
.scope-intro-icon { display: grid; width: 92px; height: 92px; place-items: center; background: #e8f3ff; border: 1px solid #cfe3fa; border-radius: 24px; }
.scope-intro-icon img { width: 74px; height: 74px; object-fit: contain; }
.scope-kicker { color: var(--blue); font-size: 12px; font-weight: 800; letter-spacing: .14em; }
.scope-intro h2 { margin: 8px 0 0; color: var(--navy); font-family: var(--serif); font-size: clamp(34px, 4.5vw, 58px); line-height: 1.25; letter-spacing: .05em; }
.scope-intro h2 em { color: var(--blue); font-style: normal; }
.scope-intro p { max-width: 700px; margin: 12px 0 0; color: var(--muted); font-size: 18px; line-height: 1.8; }
.scope-board { max-width: 1120px; margin: 0 auto; padding: 18px; background: #f4f9ff; border: 1px solid #d0e3f8; border-radius: 28px; box-shadow: 0 14px 34px rgba(70, 116, 183, .12); }
.scope-board .scope-figure { margin: 0; padding: 12px 12px 0; background: #fff; border-radius: 20px; }
.scope-board .scope-desktop-image { border-radius: 12px; box-shadow: none; }
.scope-board figcaption { margin: 0; padding: 17px 24px 19px; border-top: 1px solid #dbe9f8; border-radius: 0 0 20px 20px; background: #f7fbff; color: var(--navy); font-family: var(--sans); font-size: 18px; font-weight: 700; line-height: 1.75; text-align: center; }
.scope-differentiator { max-width: 1120px; margin: 28px auto 0; padding: 28px 34px 30px; background: linear-gradient(135deg, #f3f8ff, #fff); border: 1px solid #cfe2fa; border-left: 6px solid var(--blue); border-radius: 8px 22px 22px 8px; box-shadow: 0 12px 28px rgba(70, 116, 183, .1); }
.scope-differentiator-visual { margin: 0 auto 24px; }
.scope-differentiator-visual picture { display: block; }
.scope-differentiator-visual img { display: block; width: 100%; height: auto; border-radius: 16px; }
.scope-differentiator-points { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; padding: 18px; background: rgba(255,255,255,.82); border: 1px solid #cfe2fa; border-radius: 18px; }
.scope-differentiator-point { min-width: 0; padding: 18px 16px; background: #f7fbff; border: 1px solid #dbe9f8; border-radius: 14px; }
.scope-differentiator-point span { display: block; margin-bottom: 8px; color: var(--blue); font-size: 15px; font-weight: 800; }
.scope-differentiator-point strong { display: block; color: var(--navy); font-size: 17px; line-height: 1.7; }

.secondary-warning { background: #fffaf5; border-top: 1px solid #f2dfd0; border-bottom: 1px solid #f2dfd0; }
.secondary-warning::before { border-color: rgba(224, 119, 68, .2); }
.secondary-warning::after { border-color: rgba(224, 119, 68, .14); }
.warning-intro { display: grid; grid-template-columns: 72px minmax(0, 1fr); align-items: start; gap: 24px; max-width: 1100px; margin: 0 auto 30px; }
.warning-mark { display: grid; width: 72px; height: 72px; place-items: center; color: #fff; background: #e76d3a; border-radius: 20px 20px 20px 6px; box-shadow: 0 8px 18px rgba(214, 98, 51, .2); font-size: 42px; font-weight: 900; line-height: 1; }
.warning-kicker { color: #c95c2c; font-size: 12px; font-weight: 800; letter-spacing: .14em; }
.warning-intro h2 { margin: 8px 0 0; color: var(--navy); font-family: var(--serif); font-size: clamp(34px, 4vw, 54px); line-height: 1.28; letter-spacing: .04em; text-wrap: balance; }
.warning-intro h2 em { display: block; color: #d65f2f; font-style: normal; white-space: nowrap; }
.warning-intro h2 .warning-phrase { white-space: nowrap; }
.warning-mobile-break { display: none; }
.warning-image { max-width: 980px; margin: 22px 0 0; }
.warning-image img { display: block; width: 100%; height: auto; border-radius: 20px; box-shadow: 0 12px 28px rgba(185, 111, 70, .12); }
.news-quote { max-width: 1000px; margin: 0 auto; padding: 28px 34px 24px; background: #fff; border: 1px solid #f0d3be; border-left: 6px solid #e76d3a; border-radius: 6px 18px 18px 6px; box-shadow: 0 10px 24px rgba(185, 111, 70, .1); }
.news-quote-head { display: flex; align-items: center; justify-content: space-between; gap: 16px; color: #bd6a40; font-size: 12px; font-weight: 800; letter-spacing: .08em; }
.news-quote blockquote { margin: 20px 0 10px; color: var(--navy); font-family: var(--serif); font-size: clamp(24px, 3vw, 38px); line-height: 1.55; letter-spacing: .03em; }
.news-quote > p { margin: 0; color: var(--muted); font-size: 17px; }
.news-quote-footer { display: flex; align-items: center; justify-content: space-between; gap: 20px; margin-top: 20px; padding-top: 16px; color: #6b7591; border-top: 1px solid #f1e3d9; font-size: 12px; line-height: 1.6; }
.news-quote-footer a { flex: 0 0 auto; color: #c95c2c; font-weight: 800; }
.warning-actions { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; max-width: 1000px; margin: 24px auto 0; }
.warning-action { display: flex; align-items: flex-start; gap: 14px; padding: 22px; background: rgba(255,255,255,.82); border: 1px solid #f0dfd2; border-radius: 14px; }
.warning-action img { width: 56px; height: 56px; object-fit: contain; flex: 0 0 auto; }
.warning-action h3 { margin: 2px 0 0; color: #c95c2c; font-family: var(--serif); font-size: 22px; line-height: 1.35; }
.warning-action p { margin: 8px 0 0; color: var(--muted); font-size: 15px; line-height: 1.8; }

.visually-hidden { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }

.reason-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 22px; }
.feature-card, .service-card, .first-card, .flow-card { padding: 28px 22px 30px; background: rgba(255,255,255,.96); border: 1px solid #d6e5f9; border-radius: 22px; box-shadow: var(--shadow); text-align: center; }
.feature-icon, .service-icon { width: 126px; height: 126px; object-fit: contain; margin: 0 auto 18px; }
.feature-card h3, .service-card h3, .first-card h3, .flow-card h3 { margin: 0; color: var(--blue); font-family: var(--serif); font-size: clamp(22px, 2vw, 30px); line-height: 1.4; }
.feature-card p, .service-card p, .first-card p, .flow-card p { margin: 12px 0 0; color: var(--muted); font-size: 17px; line-height: 1.9; }

.service-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.service-card { padding: 34px 30px 38px; }
.service-icon { width: 148px; height: 148px; margin-bottom: 20px; }
.boundary-card { display: flex; align-items: center; gap: 30px; margin-top: 28px; padding: 24px 32px; background: #fff; border: 2px solid #bed8f6; border-radius: 22px; box-shadow: var(--shadow); }
.boundary-card img { width: 86px; height: 86px; object-fit: contain; flex: 0 0 auto; }
.boundary-card p { margin: 0; color: var(--muted); font-size: 18px; line-height: 1.8; }
.boundary-card strong { color: var(--blue); font-size: 20px; }

.flow-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px; }
.flow-card { position: relative; padding: 26px 18px 28px; }
.flow-number { display: grid; width: 48px; height: 48px; place-items: center; margin: 0 auto 14px; color: #fff; background: var(--blue); border-radius: 50%; font-size: 24px; font-weight: 800; }
.flow-card h3 { font-size: 24px; min-height: 68px; }
.flow-card img { width: 112px; height: 112px; object-fit: contain; margin: 16px auto 14px; }

.first-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.first-card { padding: 30px 30px 34px; }
.first-card img { width: 126px; height: 126px; object-fit: contain; margin: 0 auto 18px; }
.first-card h3 { font-size: 30px; }

.case-lead { max-width: 780px; margin: -8px auto 34px; color: var(--muted); text-align: center; font-size: 17px; line-height: 1.9; }
.case-scroll-hint { display: flex; align-items: center; justify-content: space-between; gap: 14px; max-width: 1180px; margin: 0 auto 10px; color: var(--muted); font-family: var(--sans); font-size: 12px; letter-spacing: .08em; }
.case-scroll-hint b { color: var(--blue); font-size: 14px; letter-spacing: 0; white-space: nowrap; }
.case-photo-grid { display: flex; flex-wrap: nowrap; gap: 18px; max-width: 1180px; padding: 4px 4px 18px; overflow-x: auto; overscroll-behavior-x: contain; scroll-snap-type: x proximity; scrollbar-color: #a9c9f0 transparent; scrollbar-width: thin; }
.case-photo-grid::-webkit-scrollbar { height: 8px; }
.case-photo-grid::-webkit-scrollbar-thumb { background: #a9c9f0; border-radius: 999px; }
.case-photo-grid::-webkit-scrollbar-track { background: transparent; }
.case-card { flex: 0 0 clamp(280px, 27vw, 340px); scroll-snap-align: start; overflow: hidden; background: #fff; border: 1px solid #cfe2fa; border-radius: 18px; box-shadow: 0 8px 22px rgba(24, 63, 121, .1); }
.case-photo { aspect-ratio: 16 / 10; overflow: hidden; background: #edf6ff; }
.case-photo img { display: block; width: 100%; height: 100%; object-fit: cover; }
.case-card-body { padding: 18px 18px 20px; }
.case-label { display: block; color: var(--orange); font-family: var(--sans); font-size: 12px; font-weight: 800; letter-spacing: .1em; line-height: 1.4; }
.case-card h3 { margin: 10px 0 11px; color: var(--navy); font-family: var(--serif); font-size: 20px; line-height: 1.5; text-wrap: balance; }
.case-card p { margin: 0; color: var(--muted); font-size: 15px; line-height: 1.8; }
.case-flow { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; margin-top: 18px; }
.case-flow span { padding: 5px 9px; color: var(--blue); background: #eff7ff; border: 1px solid #cfe2fa; border-radius: 999px; font-size: 13px; font-weight: 700; }
.case-flow b { color: var(--orange); font-size: 14px; }
.case-note { display: grid; grid-template-columns: auto 1fr; gap: 18px; align-items: baseline; max-width: 1180px; margin: 26px auto 0; padding: 20px 24px; background: #f4f9ff; border-left: 4px solid var(--orange); border-radius: 4px 14px 14px 4px; }
.case-note strong { color: var(--navy); font-family: var(--serif); font-size: 18px; }
.case-note span { color: var(--muted); font-size: 16px; line-height: 1.85; }

.fee-lead { max-width: 820px; margin: -8px auto 36px; color: var(--muted); font-size: 18px; line-height: 1.9; text-align: center; }
.fee-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; max-width: 1180px; }
.fee-card { display: flex; min-height: 270px; flex-direction: column; padding: 28px 26px 30px; background: #f8fbff; border: 1px solid #cfe2fa; border-radius: 20px; box-shadow: var(--shadow); }
.fee-card-emphasis { color: #fff; background: var(--navy); border-color: var(--navy); box-shadow: 0 14px 30px rgba(17, 42, 99, .2); }
.fee-card-label { color: var(--blue); font-family: var(--sans); font-size: 12px; font-weight: 800; letter-spacing: .12em; }
.fee-card-emphasis .fee-card-label { color: #a9cdfd; }
.fee-card h3 { margin: 13px 0 8px; color: var(--navy); font-family: var(--serif); font-size: 28px; line-height: 1.35; }
.fee-card-emphasis h3 { color: #fff; }
.fee-card-price { display: block; color: var(--blue); font-family: var(--serif); font-size: clamp(30px, 3.5vw, 48px); line-height: 1.25; letter-spacing: .02em; }
.fee-card-emphasis .fee-card-price { display: flex; flex-direction: column; align-items: flex-start; gap: 2px; color: #fff; line-height: 1; }
.fee-card-emphasis .fee-price-context { color: #fff; font-size: clamp(21px, 2.3vw, 31px); line-height: 1.25; white-space: nowrap; }
.fee-card-emphasis .fee-price-main { color: #fff07a; font-size: clamp(48px, 5vw, 70px); line-height: 1; white-space: nowrap; }
.fee-card p { margin: auto 0 0; color: var(--muted); font-size: 16px; line-height: 1.8; }
.fee-card-emphasis p { color: #e2edfb; }
.fee-assurance { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr); gap: 30px; max-width: 1180px; margin-top: 26px; padding: 28px 32px; background: #f4f9ff; border-left: 5px solid var(--blue); border-radius: 6px 20px 20px 6px; }
.fee-assurance-kicker { color: var(--blue); font-size: 12px; font-weight: 800; letter-spacing: .14em; }
.fee-assurance h3 { margin: 9px 0 10px; color: var(--navy); font-family: var(--serif); font-size: clamp(24px, 2.8vw, 34px); line-height: 1.4; text-wrap: balance; }
.fee-assurance p { margin: 0; color: var(--muted); font-size: 17px; line-height: 1.85; }
.fee-assurance-ask { align-self: center; padding-left: 26px; border-left: 1px solid #cfe2fa; }
.fee-assurance-ask strong { display: block; color: var(--blue); font-family: var(--serif); font-size: 22px; line-height: 1.5; }

.diagnostic-widget { position: fixed; right: 22px; bottom: 22px; z-index: 30; display: grid; justify-items: end; gap: 10px; }
.diagnostic-launcher { display: grid; grid-template-columns: 38px auto; grid-template-rows: auto auto; align-items: center; column-gap: 8px; padding: 10px 15px 10px 11px; color: #fff; background: var(--blue); border: 0; border-radius: 999px; box-shadow: 0 10px 26px rgba(18, 93, 224, .28); cursor: pointer; text-align: left; }
.diagnostic-launcher img { grid-row: 1 / -1; width: 38px; height: 38px; padding: 4px; background: #fff; border-radius: 50%; object-fit: contain; }
.diagnostic-launcher span { font-size: 14px; font-weight: 800; line-height: 1.25; }
.diagnostic-launcher small { color: #dceaff; font-size: 10px; line-height: 1.3; }
.diagnostic-launcher:focus-visible, .diagnostic-close:focus-visible, .diagnostic-answers button:focus-visible, .diagnostic-restart:focus-visible { outline: 3px solid #f4c400; outline-offset: 3px; }
.diagnostic-panel { width: min(400px, calc(100vw - 32px)); max-height: min(78vh, 640px); overflow-y: auto; padding: 22px 22px 20px; background: #fff; border: 1px solid #cfe2fa; border-radius: 20px; box-shadow: 0 18px 48px rgba(24, 63, 121, .24); }
.diagnostic-panel-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 14px; }
.diagnostic-kicker, .diagnostic-step-label { color: var(--blue); font-size: 10px; font-weight: 800; letter-spacing: .12em; }
.diagnostic-panel h2 { margin: 4px 0 0; color: var(--navy); font-family: var(--serif); font-size: 24px; line-height: 1.35; }
.diagnostic-close { display: grid; width: 32px; height: 32px; place-items: center; padding: 0; color: var(--blue); background: #eff7ff; border: 0; border-radius: 50%; font-size: 25px; line-height: 1; cursor: pointer; }
.diagnostic-intro { margin: 12px 0 16px; color: var(--muted); font-size: 15px; line-height: 1.8; }
.diagnostic-progress { height: 4px; margin-bottom: 18px; overflow: hidden; background: #eaf2fc; border-radius: 999px; }
.diagnostic-progress span { display: block; width: 20%; height: 100%; background: var(--blue); border-radius: inherit; transition: width .2s ease; }
.diagnostic-step h3, .diagnostic-result h3 { margin: 7px 0 16px; color: var(--navy); font-family: var(--serif); font-size: 20px; line-height: 1.55; }
.diagnostic-answers { display: grid; gap: 8px; }
.diagnostic-answers button { min-height: 48px; padding: 10px 14px; color: var(--navy); background: #f6faff; border: 1px solid #cfe2fa; border-radius: 10px; cursor: pointer; font-size: 15px; font-weight: 700; line-height: 1.5; text-align: left; }
.diagnostic-answers button:hover { color: #fff; background: var(--blue); border-color: var(--blue); }
.diagnostic-result p { margin: -5px 0 16px; color: var(--muted); font-size: 15px; line-height: 1.8; }
.diagnostic-result-list { display: grid; gap: 8px; margin: 0 0 16px; padding: 0; list-style: none; }
.diagnostic-result-list li { position: relative; padding: 11px 13px 11px 32px; color: var(--navy); background: #f4f9ff; border: 1px solid #dbeafb; border-radius: 10px; font-size: 14px; line-height: 1.7; }
.diagnostic-result-list li::before { position: absolute; top: 10px; left: 11px; color: var(--blue); content: "✓"; font-weight: 900; }
.diagnostic-result-note { margin: 0 0 16px !important; color: #6b83aa !important; font-size: 12px !important; line-height: 1.7 !important; }
.diagnostic-contact { display: block; padding: 13px 14px; color: #fff; background: var(--blue); border-radius: 10px; font-size: 15px; font-weight: 800; text-align: center; }
.diagnostic-restart { display: block; margin: 12px auto 0; padding: 0; color: var(--blue); background: transparent; border: 0; cursor: pointer; font-size: 13px; }
.mobile-sticky-cta { display: none; }

.faq-list { display: grid; gap: 12px; }
.faq-list details { padding: 0 24px; background: #fff; border: 1px solid #d7e6f8; border-radius: 16px; box-shadow: 0 5px 16px rgba(70, 116, 183, .08); }
.faq-list summary { display: flex; align-items: center; justify-content: space-between; min-height: 74px; cursor: pointer; list-style: none; color: var(--navy); font-size: 20px; font-weight: 700; }
.faq-list summary::-webkit-details-marker { display: none; }
.faq-list summary > span:last-child { flex: 0 0 auto; color: var(--blue); font-size: 30px; }
.faq-question { min-width: 0; flex: 1 1 auto; text-wrap: balance; }
.faq-list details[open] summary > .faq-chevron { transform: rotate(180deg); }
.faq-list details p { max-width: 900px; margin: 0 0 20px; padding: 14px 0 2px; color: var(--muted); border-top: 1px solid #e3eefb; font-size: 17px; line-height: 1.85; }
.office-summary { margin-top: 54px; padding: 28px 34px 32px; background: #fff; border: 1px solid #cfe1f8; border-radius: 20px; box-shadow: var(--shadow); }
.summary-title { display: flex; align-items: center; gap: 14px; padding-bottom: 14px; border-bottom: 2px solid var(--blue); }
.summary-title span { color: var(--blue); font-size: 34px; }
.summary-title h3 { margin: 0; color: var(--navy); font-family: var(--serif); font-size: 28px; }
.office-summary dl { margin: 0; }
.office-summary dl > div { display: grid; grid-template-columns: 160px 1fr; gap: 18px; padding: 14px 0; border-bottom: 1px dashed #bed4f1; }
.office-summary dt { color: var(--blue); font-size: 18px; font-weight: 800; }
.office-summary dd { margin: 0; color: var(--navy); font-size: 18px; }
.office-summary .phone { color: var(--blue); font-size: 26px; font-weight: 800; letter-spacing: .04em; }
.office-summary .phone-number { white-space: nowrap; }
.office-summary .phone small { color: var(--muted); font-size: 14px; font-weight: 400; }

.contact-section { position: relative; display: block; max-width: 1400px; min-height: 560px; margin: 0 auto; padding: 78px clamp(24px, 6vw, 100px) 72px; overflow: hidden; background: linear-gradient(135deg, #e9f4ff, #dbeeff); border-radius: 30px 30px 0 0; isolation: isolate; scroll-margin-top: 96px; }
.contact-section::after { position: absolute; right: -170px; bottom: -350px; z-index: 0; width: 680px; height: 680px; content: ""; border: 1px solid rgba(125, 177, 235, .28); border-radius: 50%; pointer-events: none; }
.contact-copy { position: relative; z-index: 2; max-width: min(760px, 72%); margin: 0; }
.contact-copy h2 { margin: 10px 0 0; color: var(--navy); font-family: var(--serif); font-size: clamp(32px, 4vw, 54px); line-height: 1.3; letter-spacing: .025em; text-wrap: balance; }
.contact-copy h2 em { display: inline-block; white-space: nowrap; background: linear-gradient(transparent 75%, var(--yellow) 0); font-style: normal; }
.contact-copy p { max-width: 700px; margin: 18px 0 0; color: var(--muted); font-size: 19px; line-height: 1.85; }
.contact-actions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; margin-top: 30px; max-width: 760px; }
.contact-trust { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 24px; }
.contact-trust span { display: inline-flex; align-items: center; gap: 8px; padding: 10px 18px; color: var(--blue); background: #fff; border-radius: 999px; font-size: 15px; font-weight: 800; box-shadow: 0 5px 14px rgba(70, 116, 183, .12); }
.contact-trust img { width: 24px; height: 24px; object-fit: contain; }
.privacy-note { display: flex; align-items: center; gap: 8px; max-width: 680px; margin-top: 18px; color: var(--navy); font-size: 15px; }
.privacy-note img { width: 22px; height: 22px; object-fit: contain; flex: 0 0 auto; }
.contact-person { position: absolute; right: clamp(-80px, -2vw, -10px); bottom: -70px; z-index: 1; width: min(38vw, 500px); pointer-events: none; opacity: .98; mix-blend-mode: multiply; }
.contact-person img { display: block; width: 100%; height: auto; }
.site-footer { display: grid; grid-template-columns: 1fr 1fr; gap: 8px 24px; padding: 32px clamp(20px, 6vw, 100px); color: #d9e8fb; background: var(--navy); }
.site-footer strong { display: block; font-family: var(--serif); font-size: 18px; }
.site-footer div small { display: block; margin-top: 3px; font-size: 9px; letter-spacing: .12em; }
.site-footer p { margin: 0; text-align: right; font-size: 14px; }
.footer-links { display: flex; grid-column: 1 / -1; gap: 18px; margin-top: 8px; }
.footer-links a { color: #d9e8fb; font-size: 13px; text-decoration: underline; text-underline-offset: 3px; }
.site-footer > small { grid-column: 1 / -1; margin-top: 16px; color: #a9c2e2; font-size: 12px; }

.contact-page { min-height: 100vh; background: linear-gradient(180deg, #f4f9ff 0%, #e8f3ff 100%); }
.contact-page .site-header { position: sticky; }
.contact-page-back { color: var(--blue); font-size: 14px; font-weight: 800; }
.contact-page-main { max-width: 900px; margin: 0 auto; padding: 64px 20px 100px; }
.contact-form-card { padding: clamp(28px, 5vw, 58px); background: rgba(255,255,255,.96); border: 1px solid #cfe2fa; border-radius: 28px; box-shadow: var(--shadow); }
.contact-form-card h1 { margin: 12px 0 10px; color: var(--navy); font-family: var(--serif); font-size: clamp(32px, 5vw, 54px); line-height: 1.35; }
.contact-form-lead { max-width: 680px; margin: 0 0 28px; color: var(--muted); font-size: 18px; line-height: 1.9; }
.contact-form { display: grid; gap: 22px; margin-top: 28px; }
.contact-form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; }
.contact-form label { display: grid; gap: 8px; color: var(--navy); font-size: 16px; font-weight: 800; }
#amount-custom-field[hidden] { display: none !important; }
.contact-form label > span { display: flex; align-items: center; gap: 8px; }
.contact-form label b { padding: 2px 7px; color: #fff; background: var(--orange); border-radius: 999px; font-size: 11px; }
.contact-form label small { color: var(--muted); font-size: 12px; font-weight: 400; }
.contact-form input[type="text"], .contact-form input[type="email"], .contact-form input[type="tel"], .contact-form select, .contact-form textarea { width: 100%; padding: 13px 14px; color: var(--navy); background: #fbfdff; border: 1px solid #c8dcf6; border-radius: 10px; outline: none; }
.contact-form textarea { min-height: 170px; resize: vertical; line-height: 1.8; }
.contact-form input:focus, .contact-form select:focus, .contact-form textarea:focus { border-color: var(--blue); box-shadow: 0 0 0 3px rgba(18,93,224,.12); }
.contact-consent { display: flex !important; grid-template-columns: auto 1fr; align-items: start; gap: 10px !important; color: var(--muted) !important; font-size: 14px !important; font-weight: 400 !important; }
.contact-consent input { width: 18px; height: 18px; margin-top: 3px; accent-color: var(--blue); }
.contact-form-submit { display: inline-flex; align-items: center; justify-content: center; min-height: 54px; padding: 14px 24px; color: #fff; background: var(--blue); border: 0; border-radius: 12px; box-shadow: 0 10px 20px rgba(18,93,224,.18); font-size: 16px; font-weight: 800; cursor: pointer; }
.contact-form-submit:hover { filter: brightness(1.06); transform: translateY(-1px); }
.contact-form-note { margin: 26px 0 0; color: #7186a8; font-size: 13px; line-height: 1.8; }
.complete-screen { display: none; padding: 46px 24px 34px; text-align: center; color: var(--navy); border: 1px solid #bfe7d5; background: #f1fff8; border-radius: 18px; }
.complete-screen.show { display: block; }
.complete-screen[hidden] { display: none !important; }
.complete-icon { display: grid; width: 62px; height: 62px; margin: 0 auto 18px; place-items: center; color: #fff; background: #1fa66a; border-radius: 50%; font-family: var(--sans); font-size: 34px; font-weight: 800; }
.complete-screen h2 { margin: 0 0 12px; color: #08734c; font-size: clamp(24px, 4vw, 34px); }
.complete-screen p { margin: 0 auto 12px; max-width: 620px; font-size: 17px; line-height: 1.9; }
.contact-setup-notice, .contact-channel-ready, .contact-status { margin: 20px 0; padding: 18px 20px; border-radius: 14px; }
.contact-setup-notice, .contact-status-warning { color: #6d5211; background: #fff9df; border: 1px solid #f4df88; }
.contact-channel-ready, .contact-status-success { color: #164f3a; background: #ecfff5; border: 1px solid #a8e2c3; }
.contact-status-error { color: #8c3327; background: #fff2ef; border: 1px solid #f1b5aa; }
.contact-setup-notice strong, .contact-channel-ready h2, .contact-status strong { display: block; margin: 0 0 6px; color: inherit; font-size: 18px; }
.contact-setup-notice p, .contact-channel-ready p, .contact-status p { margin: 0; line-height: 1.75; }
.contact-status ul { margin: 8px 0 0; padding-left: 20px; }
.contact-status .contact-form-submit, .contact-channel-ready .contact-form-submit { margin-top: 12px; }
.legal-page-card h2 { margin: 32px 0 8px; color: var(--navy); font-family: var(--serif); font-size: 26px; }
.legal-page-card p { color: var(--muted); font-size: 16px; line-height: 1.9; }
.legal-placeholder-list { margin: 28px 0 0; border-top: 1px solid #d8e7f8; }
.legal-placeholder-list > div { display: grid; grid-template-columns: 160px 1fr; gap: 18px; padding: 15px 0; border-bottom: 1px solid #d8e7f8; }
.legal-placeholder-list dt { color: var(--navy); font-weight: 800; }
.legal-placeholder-list dd { margin: 0; color: var(--muted); }

@media (max-width: 1050px) {
  .desktop-nav { gap: 8px; font-size: 12px; }
  .desktop-nav .nav-cta { padding: 11px 14px; }
  .reason-grid { grid-template-columns: repeat(2, 1fr); }
  .flow-grid { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 760px) {
  .contact-page-main { padding: 30px 14px 80px; }
  .contact-form-card { padding: 28px 18px 34px; border-radius: 20px; }
  .contact-form-card h1 { font-size: 31px; }
  .contact-form-lead { font-size: 16px; }
  .contact-form-grid { grid-template-columns: 1fr; gap: 16px; }
  .contact-form { gap: 18px; }
  .contact-form-submit { width: 100%; font-size: 15px; }
  .legal-page-card h2 { font-size: 23px; }
  .legal-placeholder-list > div { grid-template-columns: 1fr; gap: 4px; }
  .contact-page .brand-logo { width: 42px; height: 42px; }
  .contact-page .brand strong { font-size: 16px; }
  .contact-page .brand small { font-size: 7px; }
  .site-header { min-height: 68px; padding: 9px 16px; }
  .brand { min-width: 0; gap: 8px; }
  .brand-logo { width: 46px; height: 46px; }
  .brand strong { font-size: 16px; }
  .brand small { font-size: 7px; }
  .desktop-nav { display: none; }
  .menu-button { display: grid; width: 44px; height: 44px; place-items: center; padding: 0; color: var(--blue); background: transparent; border: 0; border-radius: 10px; }
  .menu-button:focus-visible { outline: 3px solid #f4c400; outline-offset: 2px; }
  .menu-icon { display: grid; width: 26px; gap: 5px; }
  .menu-icon i { display: block; width: 100%; height: 2px; background: currentColor; border-radius: 2px; transition: transform .18s ease, opacity .18s ease; }
  .menu-button.is-open .menu-icon i:nth-child(1) { transform: translateY(7px) rotate(45deg); }
  .menu-button.is-open .menu-icon i:nth-child(2) { opacity: 0; }
  .menu-button.is-open .menu-icon i:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }
  .mobile-nav { position: absolute; top: 68px; right: 14px; left: 14px; display: grid; visibility: hidden; opacity: 0; transform: translateY(-8px); background: #fff; border: 1px solid #cfe2fa; border-radius: 14px; box-shadow: var(--shadow); transition: opacity .18s ease, transform .18s ease, visibility .18s ease; }
  .mobile-nav.is-open { visibility: visible; opacity: 1; transform: none; }
  .mobile-nav a { padding: 14px 16px; color: var(--navy); border-bottom: 1px solid #e2eefb; font-size: 15px; font-weight: 700; }
  .mobile-nav a:last-child { color: #fff; background: var(--blue); border-radius: 0 0 14px 14px; }
  .hero-image { width: 100%; max-width: none; min-height: 0; object-fit: contain; object-position: center; }
  .hero-underbar { display: block; padding: 26px 18px 18px; }
  .hero-underbar h1 { font-size: clamp(30px, 9vw, 35px); }
  .hero-title-line { display: block; white-space: nowrap; }
  .hero-underbar p { font-size: 16px; line-height: 1.8; }
  .hero-actions { grid-template-columns: 1fr; width: 100%; gap: 8px; margin-top: 18px; }
  .trust-row { grid-template-columns: 1fr; gap: 10px; padding: 14px 16px 24px; }
  .trust-row > span { min-height: 84px; padding: 12px 16px; border-radius: 16px; }
  .trust-row > span > img { width: 58px; height: 58px; }
  .trust-row b { font-size: 20px; }
  .trust-row small { font-size: 13px; line-height: 1.5; }
  .section { padding: 70px 16px; }
  .visual-section { padding-top: 58px; padding-bottom: 58px; }
  .visual-lead { margin-bottom: 22px; font-size: 16px; line-height: 1.8; }
  .visual-figure img { border-radius: 18px; }
  .public-data-figure { overflow: visible; }
  .public-data-figure img { width: 100%; max-width: 100%; }
  .scope-intro { grid-template-columns: 1fr; gap: 12px; margin-bottom: 26px; text-align: center; }
  .scope-intro-icon { width: 64px; height: 64px; border-radius: 18px; }
  .scope-intro-icon img { width: 52px; height: 52px; }
  .scope-kicker { font-size: 10px; letter-spacing: .1em; }
  .scope-intro h2 { margin-top: 5px; font-size: 31px; letter-spacing: .02em; }
  .scope-intro p { max-width: 320px; margin: 10px auto 0; font-size: 16px; line-height: 1.8; }
  .scope-board { display: block; padding: 8px; border-radius: 18px; }
  .scope-board .scope-figure { padding: 0 0 4px; border-radius: 12px; overflow: hidden; }
  .scope-board .scope-desktop-image { border-radius: 8px; }
  .scope-board figcaption { padding: 14px 15px 16px; border-radius: 0 0 12px 12px; font-size: 16px; line-height: 1.8; text-align: left; }
  .scope-differentiator { margin-top: 24px; padding: 18px 14px 20px; border-left-width: 4px; border-radius: 6px 16px 16px 6px; }
  .scope-differentiator-visual { margin-bottom: 16px; }
  .scope-differentiator-visual img { border-radius: 12px; }
  .scope-differentiator-points { grid-template-columns: 1fr; gap: 10px; padding: 12px; border-radius: 14px; }
  .scope-differentiator-point { padding: 15px 14px; }
  .scope-differentiator-point span { margin-bottom: 5px; font-size: 14px; }
  .scope-differentiator-point strong { font-size: 16px; line-height: 1.65; }
  .section-heading { gap: 8px; margin-bottom: 30px; }
  .section-heading h2 { max-width: 340px; margin-right: auto; margin-left: auto; font-size: 32px; letter-spacing: .02em; }
  .section-reasons #reasons-title { max-width: 100%; font-size: 28px; }
  .section-reasons #reasons-title br { display: block; }
  .section-heading.public-data-heading h2 br { display: block; }
  .section-flow .heading-with-rule::before, .section-flow .heading-with-rule::after { display: none; }
  .section-flow .section-heading h2 { max-width: 100%; }
  .section-heading h2 br { display: none; }
  .heading-with-rule::before, .heading-with-rule::after { width: 24px; }
  .reason-grid, .service-grid, .first-grid, .flow-grid { grid-template-columns: 1fr; gap: 16px; }
  .feature-card, .service-card, .first-card, .flow-card { padding: 24px 22px 26px; border-radius: 18px; }
  .feature-icon, .service-icon, .first-card img { width: 112px; height: 112px; }
  .feature-card h3, .service-card h3, .first-card h3 { font-size: 25px; }
  .feature-card p, .service-card p, .first-card p, .flow-card p { font-size: 16px; line-height: 1.85; }
  .boundary-card { display: block; padding: 22px; text-align: center; }
  .boundary-card img { width: 82px; height: 82px; margin: 0 auto 12px; }
  .boundary-card strong { font-size: 17px; }
  .boundary-card p { font-size: 16px; line-height: 1.8; }
  .flow-card h3 { min-height: 0; font-size: 25px; }
  .flow-card img { width: 112px; height: 112px; }
  .case-lead { margin: -6px auto 20px; font-size: 15px; line-height: 1.85; text-align: left; }
  .public-data-heading { margin-bottom: 22px; }
  .public-data-reading { grid-template-columns: 1fr; gap: 20px; margin-top: 20px; padding: 22px 18px 18px; border-left-width: 4px; border-radius: 5px 16px 16px 5px; }
  .public-data-reading h3 { margin-top: 8px; font-size: 26px; line-height: 1.45; }
  .public-data-reading-copy p { font-size: 15px; line-height: 1.85; }
  .public-data-reading-points > div:first-child { padding-top: 0; }
  .public-data-reading-points strong { font-size: 15px; }
  .public-data-reading-points small { font-size: 13px; line-height: 1.7; }
  .public-data-reading-note { grid-column: auto; font-size: 12px; line-height: 1.75; }
  .case-scroll-hint { align-items: flex-start; margin-bottom: 8px; font-size: 11px; letter-spacing: .05em; }
  .case-scroll-hint b { font-size: 12px; }
  .case-photo-grid { gap: 12px; padding: 4px 4px 14px; }
  .case-card { flex-basis: 82vw; max-width: 320px; }
  .case-card-body { padding: 17px 16px 18px; }
  .case-card h3 { margin-top: 9px; font-size: 20px; line-height: 1.5; }
  .case-card p { font-size: 15px; line-height: 1.85; }
  .case-note { grid-template-columns: 1fr; gap: 7px; margin-top: 18px; padding: 17px 18px; }
  .case-note strong { font-size: 17px; }
  .case-note span { font-size: 15px; line-height: 1.8; }
  .fee-lead { margin: -6px auto 24px; font-size: 16px; line-height: 1.85; text-align: left; }
  .fee-grid { grid-template-columns: 1fr; gap: 14px; }
  .fee-card { min-height: 0; padding: 22px 20px 23px; border-radius: 17px; }
  .fee-card h3 { margin-top: 9px; font-size: 25px; }
  .fee-card-price { font-size: 38px; }
  .fee-card-emphasis .fee-price-context { font-size: 24px; }
  .fee-card-emphasis .fee-price-main { font-size: 52px; }
  .fee-card p { margin-top: 13px; font-size: 15px; line-height: 1.8; }
  .fee-assurance { grid-template-columns: 1fr; gap: 20px; margin-top: 20px; padding: 23px 18px 20px; border-left-width: 4px; border-radius: 5px 16px 16px 5px; }
  .fee-assurance h3 { margin-top: 8px; font-size: 26px; line-height: 1.45; }
  .fee-assurance p { font-size: 15px; line-height: 1.8; }
  .fee-assurance-ask { padding-top: 18px; padding-left: 0; border-top: 1px solid #cfe2fa; border-left: 0; }
  .fee-assurance-ask strong { font-size: 20px; }
  .faq-list details { padding: 0 16px; }
  .faq-list summary { min-height: 72px; font-size: 16px; line-height: 1.55; letter-spacing: -.01em; }
  .faq-list summary > span:last-child { font-size: 25px; }
  .faq-question { line-height: 1.5; }
  .faq-list details p { font-size: 15px; line-height: 1.8; }
  .office-summary { margin-top: 34px; padding: 20px 18px; }
  .summary-title h3 { font-size: 23px; }
  .office-summary dl > div { grid-template-columns: 88px 1fr; gap: 10px; padding: 11px 0; }
  .office-summary dt, .office-summary dd { font-size: 15px; }
  .office-summary .phone { font-size: 19px; }
  .office-summary .phone small { font-size: 12px; }
  .contact-section { min-height: 0; margin: 0; padding: 58px 18px 38px; border-radius: 24px 24px 0 0; }
  .contact-copy { max-width: none; }
  .contact-copy h2 { max-width: 354px; font-size: 30px; letter-spacing: 0; }
  .contact-copy p { font-size: 16px; line-height: 1.8; }
  .contact-actions { grid-template-columns: 1fr; gap: 10px; }
  .contact-actions { grid-template-columns: 1fr; gap: 8px; max-width: none; }
  .contact-trust { position: relative; z-index: 2; gap: 8px; }
  .contact-trust span { padding: 8px 12px; font-size: 14px; }
  .contact-trust img { width: 22px; height: 22px; }
  .privacy-note { position: relative; z-index: 2; max-width: 310px; font-size: 14px; line-height: 1.7; }
  .privacy-note img { width: 20px; height: 20px; }
  .contact-person { display: none; }
  .secondary-warning { padding-top: 58px; padding-bottom: 64px; }
  .warning-intro { grid-template-columns: 1fr; gap: 14px; margin-bottom: 24px; text-align: center; }
  .warning-mark { width: 62px; height: 62px; margin: 0 auto; font-size: 36px; }
  .warning-kicker { font-size: 10px; letter-spacing: .1em; }
  .warning-intro h2 { margin-top: 6px; font-size: 30px; letter-spacing: .01em; }
  .warning-intro h2 em { white-space: normal; }
  .warning-intro h2 .warning-phrase { white-space: nowrap; }
  .warning-mobile-break { display: inline; }
  .warning-image { margin: 16px auto 0; }
  .warning-image img { border-radius: 16px; box-shadow: 0 8px 20px rgba(185, 111, 70, .1); }
  .news-quote { padding: 22px 18px 20px; border-left-width: 4px; border-radius: 4px 16px 16px 4px; }
  .news-quote-head { font-size: 10px; }
  .news-quote blockquote { margin: 16px 0 10px; font-size: 24px; line-height: 1.55; }
  .news-quote > p { font-size: 15px; line-height: 1.8; }
  .news-quote-footer { display: grid; gap: 10px; margin-top: 16px; padding-top: 14px; font-size: 12px; line-height: 1.7; }
  .warning-actions { grid-template-columns: 1fr; gap: 12px; margin-top: 16px; }
  .warning-action { gap: 12px; padding: 18px; }
  .warning-action img { width: 52px; height: 52px; }
  .warning-action h3 { font-size: 20px; }
  .warning-action p { margin-top: 6px; font-size: 15px; line-height: 1.8; }
  .section-flow .section-heading h2 { font-size: 30px; }
  .flow-title-main, .flow-title-tail { display: block; white-space: nowrap; }
  .flow-title-tail { margin-top: .08em; }
  .contact-copy h2 { font-size: 28px; letter-spacing: 0; }
  .contact-copy h2 em { white-space: nowrap; }
  .site-footer { display: block; padding: 26px 18px; }
  .site-footer p { margin-top: 12px; text-align: left; }
  .footer-links { display: grid; gap: 8px; margin-top: 18px; }
  .site-footer > small { display: block; margin-top: 18px; }
  .mobile-only-break, .mobile-title-break { display: block; }
  body { padding-bottom: 78px; }
  .diagnostic-widget { right: 12px; bottom: 82px; }
  .diagnostic-launcher { grid-template-columns: 1fr; grid-template-rows: 1fr; width: 58px; height: 58px; padding: 9px; border: 3px solid #fff; border-radius: 50%; }
  .diagnostic-launcher img { grid-row: auto; width: 34px; height: 34px; justify-self: center; padding: 3px; }
  .diagnostic-launcher span, .diagnostic-launcher small { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; }
  .diagnostic-panel { width: min(360px, calc(100vw - 24px)); max-height: min(76vh, 620px); padding: 20px 18px 18px; border-radius: 18px; }
  .diagnostic-panel h2 { font-size: 23px; }
  .diagnostic-intro { font-size: 15px; line-height: 1.8; }
  .diagnostic-step h3, .diagnostic-result h3 { font-size: 21px; line-height: 1.55; }
  .diagnostic-answers button { min-height: 50px; font-size: 15px; }
  .diagnostic-result p { font-size: 15px; }
  .diagnostic-result-list li { font-size: 14px; line-height: 1.7; }
  .diagnostic-result-note { font-size: 12px !important; }
  .diagnostic-contact { font-size: 15px; }
  .mobile-sticky-cta { position: fixed; right: 0; bottom: 0; left: 0; z-index: 25; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 6px; padding: 6px 8px calc(6px + env(safe-area-inset-bottom)); background: rgba(246, 251, 255, .96); border-top: 1px solid #cfe2fa; box-shadow: 0 -8px 20px rgba(50, 100, 160, .12); }
  .mobile-sticky-cta a { min-width: 0; }
  .mobile-sticky-cta img { width: 100%; height: 54px; object-fit: contain; }
}

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