/* ZinsFelix: clear hierarchy, useful disclosures and a comfortable reading scale. */
:root {
  --navy:#172C49; --blue:#2859CC; --muted:#495A70; --line:#CAD5E4;
  --light:#F3F6FA; --white:#FFFFFF; --wrap:1240px;
}
body { font-size:17px; line-height:1.72; }
.wrap { width:min(calc(100% - 64px),var(--wrap)); }
h1,h2,h3 { letter-spacing:-.035em; }
h1 { font-size:clamp(48px,5.2vw,76px); line-height:1.08; font-weight:620; }
h2 { font-size:clamp(34px,3.4vw,48px); line-height:1.16; font-weight:600; }
h3 { font-size:24px; line-height:1.25; font-weight:650; }
p { margin-bottom:20px; }
strong { font-weight:650; }
button,a,input,summary { touch-action:manipulation; }
button:focus-visible,a:focus-visible,input:focus-visible,summary:focus-visible {
  outline:3px solid #1D54C5; outline-offset:4px;
}
.button { font-size:15px; min-height:50px; padding:14px 20px; gap:18px; border-radius:6px; font-weight:650; box-shadow:none; line-height:1.45; }
.button:hover { background:#1D47AF; transform:none; }
.button:active { background:#173E9D; transform:translateY(1px); }
.button-outline { border-color:#9EB2CE; background:white; color:var(--navy); }
.button-outline:hover { background:#EDF3FE; color:var(--navy); }
.button-light { background:white; color:var(--navy); }
.button-light:hover { color:var(--navy); background:#EDF3FF; }
.button:disabled { opacity:.65; background:#61718A; border-color:#61718A; color:white; }
.secondary-link { font-size:15px; min-height:44px; gap:12px; }
.secondary-link:hover { color:var(--blue); text-decoration:underline; }
.text-button { font-size:14px; min-height:44px; padding:10px 0; line-height:1.5; }
.eyebrow { font-size:13px; font-weight:700; line-height:1.5; letter-spacing:.12em; margin-bottom:22px; }
.tiny-line { width:24px; margin-right:10px; }
.preview-strip { color:#425168; background:#EDF2F8; font-size:13px; line-height:1.5; }
.preview-strip .wrap { min-height:42px; align-items:center; padding-block:8px; }
.preview-strip a { font-size:13px; text-decoration:underline; }

/* A more substantial wordmark, with the precise framing symbol retained. */
.header-row { min-height:106px; gap:30px; }
.brand { font-size:38px; font-weight:720; letter-spacing:-.055em; gap:13px; line-height:1.1; }
.brand-mark { width:48px; height:48px; }
.brand:hover { color:var(--navy); }
.header-row nav { gap:28px; font-size:15px; font-weight:550; }
.header-row nav a { padding:12px 0; }
.header-row nav a:hover { text-decoration:underline; color:var(--blue); }
.header-row .button-small { font-size:14px; padding:12px 18px; gap:13px; min-height:48px; white-space:nowrap; }
.header-cta-short { display:none; }
.hero { background:linear-gradient(110deg,#F3F6FB 0%,#FAFCFF 60%,#FFFFFF 100%); padding:72px 0; }
.hero-grid { grid-template-columns:minmax(0,1.04fr) minmax(0,.96fr); gap:64px; align-items:center; }
.hero-copy { min-width:0; }
.hero-lead { font-size:18px; color:var(--muted); line-height:1.75; max-width:550px; margin-top:26px; }
.hero-actions { gap:20px; margin-top:30px; }
.hero-actions .button { font-size:15px; }
.hero-reassurance { font-size:14px; color:#40566A; margin-top:20px; line-height:1.65; }
.dot { color:#607289; margin:0 6px; }
.hero-disclosure { margin-top:30px; padding-top:24px; border-top:1px solid #C6D3E5; display:flex; gap:14px; align-items:flex-start; max-width:560px; }
.disclosure-icon { width:38px; height:38px; flex:none; display:grid; place-items:center; color:var(--blue); background:#E3ECFC; border-radius:6px; }
.hero-disclosure p { font-size:14px; color:var(--muted); line-height:1.72; }
.hero-disclosure strong { display:block; color:var(--navy); font-size:15px; margin-bottom:5px; }
.hero-visual { padding-bottom:32px; }
.hero-photo { height:496px; border-radius:8px 44px 8px 8px; object-position:58% center; }
.visual-label { bottom:0; left:-24px; right:24px; padding:22px 24px; border-radius:6px; gap:16px; box-shadow:0 12px 30px #172C491A; }
.visual-label strong { font-size:16px; line-height:1.45; }
.visual-label small { font-size:14px; color:#D2DDF0; line-height:1.5; margin-top:4px; }
.label-icon { width:42px; height:42px; font-size:28px; border-color:#8496B3; }
.visual-caption { top:14px; bottom:auto; right:14px; font-size:13px; color:#FFFFFF; background:#122641D9; padding:4px 8px; border-radius:3px; }

.facts-strip { padding:38px 0 28px; border-color:var(--line); }
.facts-grid { gap:32px; }
.fact+.fact { padding-left:36px; border-color:var(--line); }
.fact-label { font-size:13px; color:#4B5E77; line-height:1.6; letter-spacing:.045em; margin-bottom:12px; }
.fact>strong { font-size:38px; line-height:1.2; letter-spacing:-.03em; }
.fact strong small { font-size:18px; }
.fact p { font-size:14px; color:var(--muted); line-height:1.65; margin-top:10px; }
.source-line { font-size:14px; color:var(--muted); margin-top:26px; line-height:1.75; }
.section { padding:92px 0; }
.section-heading { grid-template-columns:1.15fr 1fr; gap:72px; align-items:end; margin-bottom:40px; }
.section-heading>p { font-size:16px; line-height:1.8; max-width:480px; color:var(--muted); }
.section-heading .eyebrow { margin-bottom:18px; }

/* Data rows stay legible, with every material field retained on mobile. */
.offer-toolbar { margin-bottom:24px; gap:18px; }
.filters { gap:4px; background:#EDF2F8; border:1px solid #C7D3E4; padding:5px; border-radius:7px; }
.filters button { color:#40536F; font-size:14px; font-weight:600; padding:10px 15px; min-height:44px; line-height:1.45; }
.filters button.active { color:var(--navy); background:white; box-shadow:0 1px 4px #172C491C; }
.filters button:hover { background:#E1EAFE; color:var(--navy); }
.filters button.active:hover { background:white; }
.filters span { color:#4B6385; font-size:13px; margin-left:6px; }
.snapshot-tag { font-size:14px; color:#435571; }
.comparison { border-color:#C4D1E4; border-radius:8px; }
.table-head,.bank-row { grid-template-columns:minmax(215px,2fr) minmax(105px,.85fr) minmax(160px,1.5fr) minmax(105px,.85fr) minmax(170px,1.35fr); gap:20px; padding:22px 24px; }
.table-head { font-size:13px; color:#40536E; letter-spacing:.035em; font-weight:700; padding-block:16px; background:#EEF3F9; }
.bank-row { min-height:115px; }
.bank-row+.bank-row { border-color:#D1DBEA; }
.bank-row:nth-of-type(even) { background:#F8FAFD; }
.bank-row:hover { background:#F0F5FE; }
.bank-name { min-width:0; gap:14px; }
.bank-name img { width:48px; height:48px; flex:none; border:1px solid #CBD7E8; border-radius:6px; padding:5px; }
.bank-name h3 { font-size:16px; line-height:1.4; font-weight:650; letter-spacing:-.012em; overflow-wrap:anywhere; }
.bank-name span,.bank-term span,.bank-rating span { font-size:14px; color:#465971; line-height:1.55; margin-top:5px; }
.bank-rate>strong { font-size:30px; letter-spacing:-.025em; line-height:1.25; }
.bank-rate strong small { font-size:18px; }
.bank-rate span { font-size:14px; color:#465971; line-height:1.5; margin-top:3px; }
.bank-term strong,.bank-rating strong { font-size:15px; color:var(--navy); line-height:1.5; }
.table-cta { font-size:14px; min-height:44px; padding:10px 12px; border:1px solid #9FB5D7; border-radius:5px; color:#1C4EBD; background:white; font-weight:600; line-height:1.5; white-space:normal; justify-self:end; text-align:center; }
.table-cta:hover { color:#FFFFFF; background:var(--blue); border-color:var(--blue); }
.table-cta span { margin-left:7px; }
.table-footnote { font-size:14px; line-height:1.8; color:var(--muted); margin-top:22px; max-width:1120px; }

/* Preference → contact → review: the same flow with clearer, larger controls. */
.request-section { border-color:var(--line); background:#F1F5FB; }
.request-layout { grid-template-columns:minmax(0,.8fr) minmax(0,1.15fr); gap:80px; }
.request-copy>p:not(.eyebrow) { font-size:16px; line-height:1.8; max-width:440px; margin-top:24px; }
.request-steps { margin:30px 0; }
.request-steps>div { gap:16px; padding:20px 0; border-color:#CCD7E6; align-items:flex-start; }
.request-steps>div>span { font-size:13px; min-width:34px; height:34px; color:#2855B5; border-color:#AABDE0; border-radius:6px; background:#FFFFFF; }
.request-steps strong { font-size:16px; line-height:1.5; }
.request-steps small { font-size:15px; color:var(--muted); line-height:1.7; margin-top:5px; }
.request-note { display:flex; align-items:flex-start; gap:14px; padding:22px; border:1px solid #BFD0E5; border-radius:7px; background:#FFFFFF; max-width:470px; }
.request-note-symbol { color:var(--blue); flex:none; margin-top:1px; }
.request-note strong { display:block; color:var(--navy); font-size:15px; margin-bottom:8px; line-height:1.5; }
.request-note p { color:var(--muted); font-size:14px; line-height:1.75; margin-bottom:12px; }
.request-note a { font-size:14px; font-weight:600; text-decoration:underline; }
.request-form { border:1px solid #B8C9E0; border-top:3px solid var(--blue); border-radius:9px; background:white; padding:34px; box-shadow:0 16px 40px #172C4909; }
.form-heading { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:start; font-size:14px; gap:14px; line-height:1.5; }
.form-product { background:#E8EFFC; border-radius:4px; padding:7px 10px; font-size:14px; font-weight:650; min-width:0; overflow-wrap:anywhere; justify-self:start; }
.step-counter { font-size:14px; color:#435571; white-space:nowrap; }
.step-progress { height:4px; background:#DCE6F4; margin:24px 0 30px; }
.form-step legend { font-size:26px; line-height:1.3; font-weight:600; margin-bottom:24px; }
.form-step:focus { outline:none; }
.form-step:focus-visible { outline:2px solid #6484C3; outline-offset:8px; border-radius:2px; }
.field-title { font-size:15px; font-weight:650; margin-bottom:13px; color:var(--navy); }
.term-options { gap:10px; }
.term-option>span { min-height:118px; padding:15px 7px; border-color:#BCCDE2; border-radius:6px; }
.term-option strong { font-size:29px; font-weight:650; }
.term-option small { font-size:14px; line-height:1.5; margin-top:2px; }
.term-option em { font-size:13px; color:#465C76; margin-top:6px; line-height:1.45; }
.option:hover>span { border-color:#547DCE; background:#F3F7FF; }
.option input:checked+span { border-color:#2859CC; background:#EAF1FF; box-shadow:inset 0 0 0 1px #2859CC; }
.option input:focus-visible+span { outline:3px solid #1D54C5; outline-offset:3px; }
.amount-title { margin-top:26px; }
.amount-options { gap:10px; }
.amount-option>span { min-height:57px; padding:14px 9px; font-size:14px; font-weight:550; line-height:1.5; align-items:center; border-color:#BCCDE2; }
.amount-warning { font-size:14px; line-height:1.8; padding:14px; color:#61440D; background:#FFF5DF; border-left:3px solid #AA761C; margin-top:17px; }
.step-note { color:#465A74; font-size:14px; margin-top:22px; line-height:1.8; }
.form-nav { margin-top:28px; gap:18px; }
.form-nav [data-next] { font-size:15px; min-height:50px; }
.form-nav [data-back] { font-size:14px; min-height:44px; }
.form-contact { color:#435672; font-size:14px; line-height:1.6; border-top:1px solid #CBD7E6; padding-top:18px; margin-top:25px; }
.form-contact a { color:var(--blue); text-decoration:underline; font-weight:650; }
.step-intro { font-size:16px; line-height:1.8; color:var(--muted); margin-bottom:24px; }
.field-pair { gap:16px; }
.field { margin-bottom:20px; }
.field label { font-size:15px; font-weight:650; margin-bottom:8px; }
.field input { font-size:17px; border:1px solid #A8BCD8; border-radius:5px; min-height:52px; padding:13px 14px; line-height:1.5; }
.field input:hover { border-color:#6687B6; }
.field input:focus-visible { border-color:#2859CC; }
.field small { font-size:14px; color:#455B76; line-height:1.7; margin-top:8px; }
.form-error { font-size:15px; line-height:1.7; color:#8B2727; padding:15px; border-left:3px solid #A63131; }
.review>div { font-size:15px; grid-template-columns:125px minmax(0,1fr); gap:18px; padding:14px 0; border-color:#CED9E8; line-height:1.7; }
.review dt { color:#465B74; }
.edit-data { font-size:14px; margin:4px 0 18px; }
.consent-check { font-size:14px; line-height:1.8; gap:12px; color:#40546D; }
.consent-check input { width:21px; height:21px; margin-top:3px; }
.submit-button { font-size:15px; margin-top:26px; min-height:52px; }
.submit-note { font-size:14px; line-height:1.75; color:#465A74; margin-top:15px; }

/* Longer explanations deserve reading width, not narrow mini-cards. */
.knowledge-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:48px 56px; }
.knowledge-grid article { border-top:2px solid #47658E; padding-top:24px; }
.article-number { color:#2859CC; font-size:13px; letter-spacing:.065em; margin-bottom:22px; line-height:1.6; }
.knowledge-grid h3 { font-size:27px; line-height:1.3; max-width:440px; margin-bottom:18px; }
.knowledge-grid p { font-size:16px; color:var(--muted); line-height:1.85; max-width:550px; }
.knowledge-grid a { font-size:14px; font-weight:650; text-decoration:underline; line-height:1.7; }
.tax-note { padding:32px; gap:26px; border-color:#C0D0E5; border-radius:7px; margin-top:48px; }
.tax-symbol { font-size:44px; color:#2859CC; }
.tax-note h3 { font-size:25px; margin-bottom:14px; }
.tax-note p { color:var(--muted); font-size:16px; line-height:1.85; }
.tax-note a { font-size:14px; font-weight:650; text-decoration:underline; line-height:1.7; }
.calculator-layout { gap:76px; grid-template-columns:minmax(0,1fr) minmax(0,1fr); }
.calculator-section p:not(.eyebrow) { font-size:17px; line-height:1.8; color:#D5DEEC; max-width:510px; }
.calculator-section .eyebrow { font-size:13px; color:#B6CCFD; }
.calculator-section .calculator-note { font-size:14px!important; line-height:1.85; color:#D1DCEE; }
.rate-presets { gap:12px; margin-top:27px; }
.rate-presets button { font-size:15px; min-height:46px; border-color:#A6B6CE; padding:10px 18px; border-radius:5px; }
.rate-presets button:hover { background:#FFFFFF16; }
.rate-presets button.active:hover { background:white; }
.calculator { padding:34px; border-radius:8px; }
.calculator-inputs { gap:0 18px; }
.calculator output { border-color:#C2D0E4; padding-top:25px; margin-top:13px; }
.calculator output>span { font-size:15px; color:#465B74; }
.calculator output>strong { font-size:52px; line-height:1.3; font-weight:600; letter-spacing:-.035em; margin-block:4px; }
.calculator output>small { font-size:14px; color:#455A74; line-height:1.7; display:block; }
.product-grid { grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; }
.product { padding:30px; border:1px solid #BCCCE1; border-radius:8px; }
.product.featured { background:#F1F5FD; border-color:#90ABD5; }
.product-tag { font-size:13px; color:#415978; font-weight:600; letter-spacing:.02em; line-height:1.6; }
.product-symbol { width:48px; height:48px; border-radius:6px; font-size:24px; background:#E4EDFC; margin:26px 0; }
.product h3 { font-size:27px; line-height:1.3; margin-bottom:17px; }
.product p { font-size:16px; color:var(--muted); line-height:1.8; }
.product ul { font-size:15px; color:var(--muted); margin:4px 0 26px; line-height:1.75; }
.product li { padding-block:8px; gap:10px; }
.product button { font-size:14px; gap:12px; min-height:50px; }
.faq-layout { gap:72px; grid-template-columns:minmax(0,.78fr) minmax(0,1.22fr); }
.faq-layout>div>p:not(.eyebrow) { font-size:17px; line-height:1.8; max-width:420px; margin-top:24px; }
.faq-layout .secondary-link { font-size:15px; }
.faq { border-color:#B6C8DF; }
.faq details { border-color:#B6C8DF; }
.faq summary { font-size:16px; line-height:1.65; font-weight:600; padding:24px 36px 24px 0; }
.faq summary:after { width:28px; height:28px; display:grid; place-items:center; font-size:25px; top:23px; right:0; background:#E1E9F6; border-radius:4px; }
.faq details p { font-size:16px; line-height:1.85; padding:0 35px 25px 0; color:var(--muted); }
.closing { padding:60px 0; }
.closing h2 { font-size:40px; line-height:1.2; }
.closing .eyebrow { font-size:13px; color:#DFE9FF; }
.closing .button { font-size:15px; }

/* Full identity and legal disclosures remain present, readable and unchanged. */
.site-footer { background:#102139; color:#D5E0EF; padding:64px 0 30px; }
.footer-main { gap:64px; padding-bottom:38px; }
.footer-brand { color:white; font-size:38px; }
.footer-brand:hover { color:white; }
.footer-brand .brand-dot { color:#A9C3FF; }
.footer-brand .brand-mark { --blue:#A9C3FF; }
.footer-motto { font-size:16px; color:#D6E2F5; margin-top:22px; margin-bottom:25px; }
.footer-main p:not(.footer-motto) { font-size:15px; color:#C3D0E3; line-height:1.9; }
.site-footer a { color:#DCE7F7; }
.footer-main nav { font-size:15px; gap:13px; padding-top:14px; }
.footer-main nav a { padding-block:4px; }
.footer-main nav a:hover { text-decoration:underline; color:white; }
.footer-main nav button { font-size:15px; color:#DCE7F7; min-height:44px; padding-top:4px; }
.footer-legal { font-size:14px; color:#BDCCE0; line-height:1.9; border-color:#526781; padding-top:28px; }
.footer-legal p { margin-bottom:20px; }
.footer-bottom { font-size:14px; color:#C4D2E5; border-color:#526781; margin-top:28px; padding-top:24px; line-height:1.65; }
.footer-bottom a { text-decoration:underline; }
.cookie-dialog { max-width:570px; padding:30px; border-color:#AFC3DF; border-radius:8px; }
.dialog-top { gap:20px; margin-bottom:22px; }
.dialog-top h2 { font-size:27px; letter-spacing:-.025em; }
.cookie-dialog p { font-size:16px; line-height:1.8; }
.close { width:44px; height:44px; flex:none; border-radius:5px; border:1px solid #BACAE0; font-size:27px; }
.cookie-dialog .button { min-height:46px; font-size:15px; }
.legal-page { padding:76px 0 92px; }
.legal-page>.wrap { max-width:840px; }
.legal-page h1 { font-size:48px; margin-bottom:42px; }
.legal-page h2 { font-size:29px; line-height:1.25; margin:38px 0 17px; }
.legal-page h3 { font-size:23px; line-height:1.35; margin:28px 0 14px; }
.legal-page p,.legal-page address { font-size:17px; line-height:1.9; color:var(--muted); }
.noscript { font-size:15px; line-height:1.8; }
.preview-result { font-size:15px; line-height:1.8; padding:20px; border-color:#9EB7D9; }

@media(max-width:1100px) {
  .wrap { width:calc(100% - 48px); }
  .header-row { gap:24px; }
  .header-row nav { gap:18px; font-size:14px; }
  .brand { font-size:36px; gap:10px; }
  .hero-grid { gap:40px; }
  .hero-photo { height:470px; }
  .hero h1 { font-size:62px; }
  .hero-actions { gap:14px; }
  .section-heading { gap:42px; }
  .request-layout { gap:44px; grid-template-columns:minmax(0,.8fr) minmax(0,1.15fr); }
  .request-form { padding:28px; }
  .table-head,.bank-row { grid-template-columns:minmax(180px,1.7fr) minmax(88px,.8fr) minmax(130px,1.4fr) minmax(92px,.8fr) minmax(153px,1.25fr); gap:14px; padding-inline:18px; }
  .bank-name { gap:10px; }
  .bank-name img { width:43px; height:43px; }
  .bank-name h3 { font-size:15px; }
  .bank-rate>strong { font-size:28px; }
  .calculator-layout { gap:48px; }
  .product { padding:24px; }
  .product h3 { font-size:25px; }
  .faq-layout { gap:48px; }
}
@media(max-width:1000px) {
  .header-row nav { display:none; }
  .header-row .button-small { margin-left:auto; }
  .hero-grid { gap:32px; }
  .hero h1 { font-size:56px; }
  .hero-lead { font-size:17px; }
  .hero-photo { height:440px; }
  .visual-label { left:-16px; right:16px; padding:20px; }
  .visual-label strong { font-size:15px; }
  .facts-grid { gap:22px; }
  .fact+.fact { padding-left:25px; }
  .fact-label { font-size:13px; }
  .fact>strong { font-size:33px; }
  .fact p { font-size:14px; }
  .comparison { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; border:0; overflow:visible; background:transparent; }
  .table-head { display:none; }
  .bank-row { grid-template-columns:minmax(0,1fr) minmax(90px,.55fr); gap:20px 16px; border:1px solid #C1D0E5; border-radius:7px; padding:22px; background:white; }
  .bank-row:nth-of-type(even) { background:#F8FAFD; }
  .bank-name { grid-column:1; grid-row:1; }
  .bank-rate { grid-column:2; grid-row:1; text-align:right; }
  .bank-term { grid-column:1; grid-row:2; }
  .bank-rating { display:block; grid-column:2; grid-row:2; text-align:right; }
  .table-cta { grid-column:1/-1; grid-row:3; width:100%; justify-self:stretch; min-height:46px; padding:11px 13px; }
  .bank-name h3 { font-size:15px; }
  .request-layout { grid-template-columns:1fr; gap:40px; }
  .request-copy>p:not(.eyebrow) { max-width:650px; }
  .request-steps { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; margin:30px 0; }
  .request-steps>div { flex-direction:column; padding-top:0; border-bottom:0; gap:14px; }
  .request-note { max-width:none; }
  .request-form { max-width:720px; width:100%; margin-inline:auto; padding:34px; }
  .product-grid { gap:18px; }
  .product { padding:22px; }
  .product h3 { font-size:24px; }
  .product p { font-size:15px; }
  .product ul { font-size:14px; }
  .product button { padding-inline:12px; font-size:14px; gap:8px; }
}
@media(max-width:800px) {
  .header-row { min-height:92px; }
  .hero { padding:52px 0; }
  .hero-grid { grid-template-columns:1fr; gap:38px; }
  .hero-copy { max-width:700px; }
  .hero h1 { font-size:64px; }
  .hero-lead { max-width:620px; font-size:18px; }
  .hero-visual { max-width:700px; }
  .hero-photo { height:400px; object-position:center 40%; }
  .visual-label { left:20px; right:20px; padding:22px; }
  .hero-disclosure { max-width:680px; }
  .section { padding:68px 0; }
  .section-heading { grid-template-columns:1fr; gap:22px; }
  .section-heading>p { max-width:680px; font-size:16px; }
  .fact+.fact { padding-left:20px; }
  .fact>strong { font-size:30px; }
  .fact strong small { font-size:16px; }
  .knowledge-grid { gap:36px 32px; }
  .knowledge-grid h3 { font-size:25px; }
  .calculator-layout { grid-template-columns:1fr; gap:38px; }
  .calculator-section p:not(.eyebrow) { max-width:680px; }
  .calculator { width:100%; max-width:720px; }
  .product-grid { grid-template-columns:1fr; gap:20px; }
  .product { display:flex; padding:28px; }
  .product h3 { font-size:28px; }
  .product p { font-size:16px; }
  .product ul { font-size:15px; }
  .product button { margin-top:auto; width:100%; font-size:15px; }
  .faq-layout { grid-template-columns:1fr; gap:36px; }
  .closing>.wrap { align-items:start; flex-direction:column; gap:28px; }
  .closing h2 { font-size:38px; }
}
@media(max-width:620px) {
  .wrap { width:calc(100% - 40px); }
  .brand { font-size:32px; gap:9px; }
  .brand-mark { width:42px; height:42px; }
  .header-row { min-height:86px; gap:16px; }
  .header-row .button-small { font-size:14px; min-height:44px; padding:10px 13px; gap:10px; }
  .header-cta-full { display:none; }
  .header-cta-short { display:inline; }
  .preview-strip .wrap { flex-wrap:wrap; gap:5px 18px; }
  .preview-strip,.preview-strip a { font-size:13px; }
  .hero { padding:40px 0 44px; }
  .hero h1 { font-size:clamp(44px,10vw,60px); }
  .eyebrow { font-size:13px; letter-spacing:.085em; margin-bottom:20px; }
  .hero-lead { font-size:17px; line-height:1.75; margin-top:24px; }
  .hero-actions { flex-direction:column; align-items:start; gap:14px; margin-top:27px; }
  .hero-actions .button { width:100%; min-height:52px; font-size:15px; padding:14px 18px; }
  .hero-actions .secondary-link { font-size:15px; }
  .hero-reassurance { font-size:14px; margin-top:16px; line-height:1.75; }
  .hero-disclosure { margin-top:24px; padding-top:21px; gap:12px; }
  .hero-disclosure strong { font-size:15px; }
  .hero-disclosure p { font-size:14px; line-height:1.8; }
  .disclosure-icon { width:34px; height:34px; }
  .hero-grid { gap:30px; }
  .hero-photo { height:310px; border-radius:6px 32px 6px 6px; }
  .visual-label { left:12px; right:12px; padding:18px; gap:13px; }
  .visual-label strong { font-size:15px; }
  .visual-label small { font-size:14px; }
  .label-icon { width:36px; height:36px; font-size:25px; }
  .visual-caption { right:10px; font-size:13px; }
  .facts-strip { padding:30px 0 24px; }
  .facts-grid { grid-template-columns:1fr; gap:22px; }
  .fact { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:7px 18px; align-items:center; }
  .fact+.fact { padding-left:0; border-left:0; border-top:1px solid #C7D4E5; padding-top:22px; }
  .fact-label { grid-column:1; grid-row:1/3; font-size:13px; line-height:1.6; margin:0; max-width:180px; letter-spacing:.015em; }
  .fact>strong { grid-column:2; font-size:31px; }
  .fact strong small { font-size:15px; }
  .fact p { grid-column:2; margin:0; font-size:14px; line-height:1.6; }
  .source-line { font-size:14px; line-height:1.8; margin-top:23px; }
  .section { padding:54px 0; }
  h2 { font-size:34px; line-height:1.18; }
  .section-heading { gap:21px; margin-bottom:30px; }
  .section-heading>p { font-size:16px; line-height:1.8; }
  .filters { width:100%; padding:4px; gap:3px; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); }
  .filters button { min-height:48px; padding:9px 6px; font-size:14px; line-height:1.4; white-space:normal; }
  .filters span { font-size:13px; margin-left:4px; }
  .snapshot-tag { font-size:14px; }
  .comparison { display:grid; grid-template-columns:1fr; gap:15px; }
  .bank-row { gap:20px 14px; padding:23px 20px; grid-template-columns:minmax(0,1fr) minmax(88px,.54fr); }
  .bank-name img { width:44px; height:44px; }
  .bank-name h3 { font-size:16px; }
  .bank-name span { font-size:14px; }
  .bank-rate>strong { font-size:29px; }
  .bank-rate strong small { font-size:17px; }
  .bank-rate span { font-size:14px; }
  .bank-term strong,.bank-rating strong { font-size:15px; }
  .bank-term span,.bank-rating span { font-size:14px; }
  .table-cta { font-size:14px; min-height:47px; padding:11px 13px; }
  .table-footnote { font-size:14px; line-height:1.85; }
  .request-layout { gap:32px; }
  .request-copy>p:not(.eyebrow) { font-size:16px; line-height:1.8; }
  .request-steps { grid-template-columns:1fr; gap:0; margin:25px 0; }
  .request-steps>div { flex-direction:row; padding:18px 0; gap:15px; border-bottom:1px solid #CEDAE9; }
  .request-steps strong { font-size:16px; }
  .request-steps small { font-size:15px; line-height:1.8; }
  .request-steps>div>span { width:34px; height:34px; font-size:13px; }
  .request-note { padding:21px; }
  .request-note p,.request-note a { font-size:14px; }
  .request-form { padding:27px 23px; border-radius:8px; }
  .form-heading { font-size:14px; align-items:start; gap:12px; }
  .form-product { font-size:14px; padding:6px 8px; }
  .step-counter { font-size:14px; text-align:right; }
  .form-step legend { font-size:25px; line-height:1.3; margin-bottom:24px; }
  .field-title { font-size:15px; }
  .term-options { grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
  .term-option>span { min-height:113px; padding:14px 8px; }
  .term-option strong { font-size:28px; }
  .term-option small { font-size:14px; }
  .term-option em { font-size:13px; }
  .amount-options { gap:10px; }
  .amount-option>span { font-size:14px; min-height:66px; padding:12px 8px; text-align:center; line-height:1.55; }
  .amount-warning,.step-note { font-size:14px; }
  .field-pair { grid-template-columns:1fr; gap:0; }
  .field label { font-size:15px; }
  .field input { font-size:17px; min-height:52px; padding:13px; }
  .field small { font-size:14px; }
  .step-intro { font-size:16px; }
  .review>div { grid-template-columns:105px minmax(0,1fr); gap:14px; font-size:15px; }
  .form-nav .button { min-height:52px; font-size:15px; padding:14px 12px; gap:12px; }
  .consent-check { font-size:14px; line-height:1.85; gap:11px; }
  .submit-button { font-size:15px; }
  .submit-note,.form-contact { font-size:14px; }
  .knowledge-grid { grid-template-columns:1fr; gap:32px; }
  .knowledge-grid h3 { font-size:27px; margin-bottom:18px; max-width:none; }
  .knowledge-grid p { font-size:16px; line-height:1.85; }
  .article-number { font-size:13px; margin-bottom:20px; }
  .knowledge-grid a { font-size:14px; }
  .tax-note { padding:24px 21px; gap:17px; margin-top:34px; }
  .tax-symbol { font-size:38px; }
  .tax-note h3 { font-size:24px; }
  .tax-note p { font-size:16px; line-height:1.85; }
  .tax-note a { font-size:14px; }
  .calculator-section p:not(.eyebrow) { font-size:17px; margin-top:22px; }
  .calculator-section .calculator-note { font-size:14px!important; }
  .calculator { padding:27px 23px; }
  .calculator-inputs { grid-template-columns:1fr; gap:0; }
  .calculator output>strong { font-size:45px; }
  .calculator output>small { font-size:14px; }
  .rate-presets { gap:10px; }
  .rate-presets button { flex:1; font-size:15px; min-height:47px; padding:11px 8px; }
  .product { display:flex; padding:27px 23px; }
  .product-tag { font-size:13px; }
  .product h3 { font-size:28px; }
  .product p { font-size:16px; }
  .product ul { font-size:15px; }
  .product button { font-size:15px; min-height:50px; }
  .faq-layout>div>p:not(.eyebrow) { font-size:17px; }
  .faq summary { font-size:16px; padding:23px 37px 23px 0; }
  .faq details p { font-size:16px; line-height:1.85; padding-right:15px; }
  .faq summary:after { top:22px; }
  .closing { padding:46px 0; }
  .closing h2 { font-size:34px; }
  .closing .eyebrow { font-size:13px; }
  .closing .button { width:100%; min-height:52px; font-size:15px; }
  .footer-main { grid-template-columns:1fr; gap:26px; }
  .footer-main nav { flex-direction:row; flex-wrap:wrap; gap:12px 24px; padding:0; font-size:15px; }
  .footer-main nav button { font-size:15px; }
  .footer-main p:not(.footer-motto) { font-size:15px; }
  .footer-legal { font-size:14px; line-height:1.95; }
  .footer-bottom { font-size:14px; flex-direction:column; gap:14px; }
  .site-footer { padding:47px 0 25px; }
  .footer-brand { font-size:34px; }
  .legal-page { padding:52px 0 64px; }
  .legal-page h1 { font-size:39px; margin-bottom:33px; }
  .legal-page h2 { font-size:27px; }
  .legal-page h3 { font-size:23px; }
  .legal-page p,.legal-page address { font-size:16px; line-height:1.9; }
  .cookie-dialog { padding:26px 23px; }
  .dialog-top h2 { font-size:25px; }
  .cookie-dialog p { font-size:16px; }
}
@media(max-width:380px) {
  .wrap { width:calc(100% - 32px); }
  .header-row { gap:10px; }
  .brand { font-size:32px; gap:7px; }
  .brand-mark { width:37px; height:37px; }
  .header-row .button-small { gap:7px; padding:10px; font-size:14px; }
  .hero h1 { font-size:43px; }
  .hero-reassurance .dot { margin:0 3px; }
  .fact { gap:8px 14px; }
  .fact>strong { font-size:28px; }
  .fact strong small { font-size:14px; }
  .bank-row { padding:21px 17px; gap:18px 10px; grid-template-columns:minmax(0,1fr) 90px; }
  .bank-name { gap:10px; align-items:start; }
  .bank-name img { width:38px; height:38px; }
  .bank-name h3 { font-size:15px; }
  .bank-name span { font-size:14px; }
  .request-form,.calculator { padding:25px 19px; }
  .form-product { font-size:13px; }
  .step-counter { font-size:13px; }
  .review>div { grid-template-columns:90px minmax(0,1fr); gap:12px; }
  .visual-label { padding:16px; gap:10px; }
  .visual-label strong { font-size:15px; }
  .label-icon { width:32px; height:32px; }
  .tax-note { padding:23px 18px; gap:13px; }
}
@media(prefers-reduced-motion:reduce) {
  html { scroll-behavior:auto; }
  *,*::before,*::after { transition:none!important; animation:none!important; }
}

/* Long German legal terms remain readable on narrow screens. */
.legal-page{overflow-wrap:anywhere;hyphens:auto}.legal-page h1,.legal-page h2,.legal-page h3{overflow-wrap:anywhere;hyphens:auto}.legal-page .wrap{min-width:0}

/* Detail pass: long entered values, validation and compact-screen controls. */
.header-row .brand { min-width:0; }
.header-row .button-small { flex-shrink:0; }
.hero-copy,.hero-visual,.request-copy,.request-form,.field,.field-pair>div,
.section-heading>div,.section-heading>p,.calculator,.product,.faq-layout>div {
  min-width:0;
}
.form-product,.review dt,.review dd,.consent-check>span,.form-contact,
.preview-result,.bank-term,.bank-rating,.table-footnote {
  overflow-wrap:anywhere;
}
.review dd { color:var(--navy); font-weight:600; }
.review>div:hover { background:#F6F9FD; }
.consent-check { cursor:pointer; }
.consent-check input { border-radius:3px; }
.consent-check a { color:#214FAD; font-weight:550; }
.field input[aria-invalid="true"] {
  border-color:#A63131;
  box-shadow:inset 0 0 0 1px #A63131;
  background:#FFF8F6;
}
.option input[aria-invalid="true"]+span {
  border-color:#A63131;
  background:#FFF8F6;
}
.field input[aria-invalid="true"]:focus-visible { outline-color:#8B2727; }
.form-error { border-radius:0 5px 5px 0; }
.edit-data { display:inline-flex; align-items:center; }
.text-button:hover { color:#173E9D; text-decoration-thickness:2px; }
.form-nav .button { min-width:0; white-space:normal; text-align:center; }
.form-nav [data-back] { flex:none; padding-inline:2px; }
.preview-result:focus-visible { outline-offset:3px; }
.filters button:focus-visible { position:relative; z-index:1; }
.filters button[aria-pressed="true"] { color:#172C49; }
.secondary-link,.knowledge-grid a,.tax-note a {
  display:inline-flex;
  align-items:center;
  min-height:44px;
}
.footer-main nav a { display:inline-flex; align-items:center; min-height:44px; }
.footer-main nav { gap:4px 24px; }
.footer-main p a,.footer-bottom a { display:inline-flex; align-items:center; min-height:44px; }

@media(max-width:620px) {
  .form-nav { gap:12px; }
  .form-nav .button { flex:1; line-height:1.5; }
  .fact>strong,.fact p { min-width:0; }
  .facts-strip .source-line { text-wrap:pretty; }
  .filters button { overflow-wrap:anywhere; }
  .consent-check { align-items:start; }
  .review>div { padding-block:15px; }
  .preview-result { padding:17px; }
}
@media(max-width:380px) {
  .header-row .brand { font-size:30px; }
  .header-row .brand-mark { width:35px; height:35px; }
  .header-row .button-small { padding-inline:9px; font-size:13px; }
  .request-form,.calculator { padding-inline:18px; }
  .form-heading { gap:8px; }
  .form-product { font-size:12px; line-height:1.6; }
  .step-counter { font-size:12px; }
  .review>div { grid-template-columns:1fr; gap:3px; }
  .review dt { font-size:13px; }
  .review dd { font-size:15px; }
  .form-nav .button { font-size:14px; padding-inline:10px; gap:8px; }
  .form-nav [data-back] { font-size:13px; }
  .term-option em { font-size:12px; }
  .filters button { font-size:13px; }
  .filters span { display:block; margin:2px 0 0; font-size:12px; }
  .bank-name h3 { hyphens:auto; }
}
@media(prefers-reduced-motion:reduce) {
  .button:active { transform:none; }
}
