:root {
    --bdo-red: #e81a3b;
    --bdo-red-dark: #c91030;
    --bdo-blue: #0062a9;
    --bdo-blue-soft: #d9eef7;
    --bdo-slate: #526577;
    --ink: #252b31;
    --muted: #59636d;
    --line: #d7dde2;
    --surface: #f3f5f6;
    --white: #fff;
    --yellow-soft: #fff5b8;
    --shadow: 0 18px 48px rgb(31 43 52 / 12%);
    --radius: 4px;
    --shell: 1240px;
}

*, *::before, *::after { box-sizing: border-box; }

[hidden] { display: none !important; }

html { scroll-behavior: smooth; }

body {
    margin: 0;
    color: var(--ink);
    background: var(--white);
    font-family: Arial, Helvetica, sans-serif;
    font-size: 16px;
    line-height: 1.55;
}

body::before {
    content: "";
    display: block;
    height: 5px;
    background: var(--bdo-red);
}

a { color: var(--bdo-blue); text-underline-offset: 3px; }
a:hover { color: var(--bdo-red); }
img { max-width: 100%; }
button, input, select, textarea { font: inherit; }

:focus-visible {
    outline: 3px solid #ffcc33;
    outline-offset: 3px;
}

.skip-link {
    position: fixed;
    z-index: 1000;
    top: 10px;
    left: 10px;
    padding: 10px 14px;
    color: var(--white);
    background: var(--ink);
    transform: translateY(-150%);
}

.skip-link:focus { transform: translateY(0); }
.page-shell { width: min(calc(100% - 40px), var(--shell)); margin-inline: auto; }

.utility-bar { color: var(--white); background: #293640; font-size: .8rem; }
.utility-bar__inner { min-height: 31px; display: flex; align-items: center; justify-content: space-between; }
.utility-bar a { color: var(--white); text-decoration: none; }

.main-nav { min-height: 84px; display: flex; align-items: center; justify-content: space-between; gap: 28px; }
.brand { display: inline-flex; align-items: center; gap: 24px; color: var(--ink); text-decoration: none; }
.brand img { width: 116px; height: auto; }
.brand__product { padding-left: 24px; border-left: 1px solid var(--line); font-size: .9rem; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; }
.main-nav nav { display: flex; align-items: center; gap: 30px; }
.main-nav nav a { color: var(--ink); font-size: .9rem; font-weight: 700; text-decoration: none; }
.main-nav nav a:last-child { padding-bottom: 5px; border-bottom: 3px solid var(--bdo-red); }

.hero {
    position: relative;
    overflow: hidden;
    color: var(--white);
    background: linear-gradient(115deg, #20313e 0%, #415665 66%, #546b79 100%);
}

.hero::after {
    content: "";
    position: absolute;
    top: -160px;
    right: -90px;
    width: 360px;
    height: 760px;
    background: var(--bdo-red);
    transform: rotate(24deg);
    opacity: .94;
}

.hero__grid { position: relative; z-index: 1; min-height: 560px; display: grid; grid-template-columns: 1.35fr .65fr; align-items: center; gap: 72px; padding-block: 76px; }
.hero__content { max-width: 720px; }
.hero h1, .calculator-hero h1 { margin: 0 0 22px; font-size: clamp(2.5rem, 5.5vw, 4.8rem); line-height: .98; letter-spacing: -.045em; }
.hero__lead { max-width: 680px; margin: 0; color: #eaf0f4; font-size: clamp(1.08rem, 2vw, 1.3rem); }
.eyebrow { margin: 0 0 14px; color: var(--bdo-red); font-size: .76rem; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; }
.eyebrow--light { color: var(--white); }
.button-row { display: flex; flex-wrap: wrap; gap: 13px; margin-top: 32px; }

.button {
    min-height: 48px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 12px 22px;
    border: 2px solid transparent;
    border-radius: 1px;
    cursor: pointer;
    font-weight: 800;
    line-height: 1.2;
    text-decoration: none;
    transition: background .15s ease, color .15s ease, border-color .15s ease;
}

.button--primary { color: var(--white); background: var(--bdo-red); }
.button--primary:hover { color: var(--white); background: var(--bdo-red-dark); }
.button--secondary { color: var(--ink); border-color: var(--ink); background: transparent; }
.hero .button--secondary { color: var(--white); border-color: var(--white); }
.button--secondary:hover { color: var(--white); background: var(--ink); }
.button--light { color: var(--ink); background: var(--white); }
.button--light:hover { color: var(--white); border-color: var(--white); background: transparent; }
.button--full { width: 100%; }

.hero__panel { padding: 30px; border-top: 5px solid var(--bdo-red); color: var(--ink); background: rgb(255 255 255 / 96%); box-shadow: var(--shadow); }
.hero__panel-kicker { display: block; margin-bottom: 10px; color: var(--bdo-red); font-size: .75rem; font-weight: 800; text-transform: uppercase; }
.hero__panel > strong { display: block; font-size: 1.55rem; line-height: 1.15; }
.hero__panel p { color: var(--muted); }
.check-list { margin: 22px 0 0; padding: 0; list-style: none; }
.check-list li { position: relative; margin: 12px 0; padding-left: 27px; font-size: .92rem; font-weight: 700; }
.check-list li::before { content: ""; position: absolute; top: .42em; left: 0; width: 13px; height: 7px; border-bottom: 3px solid var(--bdo-red); border-left: 3px solid var(--bdo-red); transform: rotate(-45deg); }
.check-list__item--disabled { color: #7b858d; }
.check-list__item--disabled span { text-decoration: line-through; text-decoration-thickness: 2px; }
.check-list__item--disabled small { display: block; margin-top: 1px; font-size: .68rem; font-weight: 800; letter-spacing: .08em; text-decoration: none; text-transform: uppercase; }
.check-list li.check-list__item--disabled::before { top: .72em; height: 2px; border: 0; background: #9ca6ad; transform: none; }

.section { padding-block: 84px; }
.section-title { max-width: 770px; margin: 0 0 42px; font-size: clamp(2rem, 4vw, 3.25rem); line-height: 1.06; letter-spacing: -.035em; }
.feature-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.feature-card { min-height: 240px; padding: 30px; border-top: 4px solid var(--bdo-red); background: var(--surface); }
.feature-card__number { display: block; margin-bottom: 36px; color: #98a4ad; font-size: .75rem; font-weight: 800; letter-spacing: .12em; }
.feature-card h3 { margin: 0 0 10px; font-size: 1.35rem; }
.feature-card p { margin: 0; color: var(--muted); }

.section--lead { color: var(--white); background: #354653; }
.lead-layout { display: grid; grid-template-columns: .8fr 1.2fr; align-items: start; gap: 78px; }
.lead-layout__intro { position: sticky; top: 30px; padding-top: 22px; }
.lead-layout__intro h2 { margin: 0 0 18px; font-size: clamp(2.2rem, 4vw, 3.5rem); line-height: 1.02; }
.lead-layout__intro > p { color: #e1e7eb; }
.lead-layout__note { padding: 18px; border-left: 4px solid var(--bdo-red); background: rgb(0 0 0 / 13%); font-size: .92rem; }
.lead-card { padding: 36px; color: var(--ink); background: var(--white); box-shadow: var(--shadow); }
.form-grid { display: grid; gap: 20px; }
.form-grid--two { grid-template-columns: repeat(2, 1fr); }
.field--wide { grid-column: 1 / -1; }
label:not(.check-field) { display: block; margin-bottom: 6px; font-size: .87rem; font-weight: 800; }
input:not([type="checkbox"]), select, textarea {
    width: 100%;
    min-height: 47px;
    padding: 11px 12px;
    border: 1px solid #87949e;
    border-radius: 1px;
    color: var(--ink);
    background: var(--white);
}
input[inputmode="decimal"] { text-align: right; font-variant-numeric: tabular-nums; }
textarea { resize: vertical; }
input.input-validation-error, [aria-invalid="true"] { border: 2px solid #b00020 !important; }
.field-validation-error { display: block; margin-top: 5px; color: #a9001e; font-size: .82rem; font-weight: 700; }
.field-validation-valid, .validation-summary-valid { display: none; }
.validation-summary { margin-bottom: 20px; padding: 14px 18px; color: #7e0016; border-left: 4px solid var(--bdo-red); background: #fff0f3; }
.validation-summary ul { margin: 5px 0; padding-left: 20px; }
.check-field { display: flex; align-items: flex-start; gap: 10px; margin-top: 20px; font-size: .88rem; }
.check-field input { flex: 0 0 auto; width: 19px; height: 19px; margin-top: 2px; accent-color: var(--bdo-red); }
.lead-card .button { margin-top: 24px; }
.form-footnote { margin: 14px 0 0; color: var(--muted); font-size: .77rem; text-align: center; }
.form-footnote--warning { padding: 10px; color: #6e3d00; border-left: 3px solid #d78b00; background: #fff8e8; text-align: left; }
.honeypot { position: absolute !important; left: -10000px !important; width: 1px; height: 1px; overflow: hidden; }

.calculator-hero { color: var(--white); background: linear-gradient(110deg, #2d404e, #536a79); }
.calculator-hero__content { padding-block: 52px 58px; }
.calculator-hero h1 { max-width: 840px; margin-bottom: 15px; font-size: clamp(2.4rem, 5vw, 4.1rem); }
.calculator-hero p:last-child { max-width: 760px; margin: 0; color: #e3e9ed; font-size: 1.08rem; }
.calculator-shell { padding-block: 34px 72px; background: var(--surface); }
.disclaimer { display: flex; gap: 12px; padding: 17px 20px; border-left: 5px solid var(--bdo-red); color: #5b1a24; background: #fff0f3; font-size: .9rem; }
.disclaimer strong { flex: 0 0 auto; }
.calculator-layout { display: grid; grid-template-columns: minmax(300px, 360px) minmax(0, 1fr); align-items: start; gap: 26px; margin-top: 26px; }
.input-panel, .results-panel { background: var(--white); box-shadow: 0 7px 26px rgb(35 48 57 / 8%); }
.input-panel { position: sticky; top: 20px; padding: 28px; border-top: 5px solid var(--bdo-red); }
.panel-heading h2, .results-heading h2 { margin: 0; font-size: 1.7rem; line-height: 1.12; }
.panel-heading p:last-child { margin: 8px 0 22px; color: var(--muted); font-size: .88rem; }
.calc-field { margin-bottom: 15px; padding: 12px; background: var(--bdo-blue-soft); }
.calc-field--mode { background: #edf2f5; }
.calc-field--optional { background: #e7f2f7; }
.calc-field label { margin-bottom: 4px; font-size: .8rem; }
.calc-field input { min-height: 42px; padding: 8px 10px; font-weight: 700; }
.calc-field input:disabled { color: #5f6971; border-color: #b7c0c6; background: #eef1f3; cursor: not-allowed; }
.calc-field small { display: block; margin-top: 4px; color: var(--muted); font-size: .72rem; }
.calculated-rates { display: grid; gap: 7px; margin-block: 20px; font-size: .82rem; }
.calculated-rates span { display: flex; justify-content: space-between; gap: 15px; padding-bottom: 7px; border-bottom: 1px solid var(--line); }
.calculator-status { min-height: 24px; margin: 12px 0; color: var(--muted); font-size: .78rem; }
.calculator-errors { margin-block: 14px; padding: 13px; color: #7e0016; border-left: 4px solid var(--bdo-red); background: #fff0f3; font-size: .82rem; }
.calculator-errors ul { margin: 6px 0 0; padding-left: 18px; }
.button-stack { display: grid; gap: 9px; }

.results-panel { min-width: 0; padding: 30px; }
.results-heading { display: flex; align-items: end; justify-content: space-between; gap: 20px; margin-bottom: 25px; }
.ruleset { color: var(--muted); font-size: .75rem; }
.summary-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 11px; }
.summary-card { min-height: 116px; display: flex; flex-direction: column; justify-content: space-between; padding: 17px; border-top: 3px solid var(--bdo-slate); background: var(--surface); }
.summary-card span { color: var(--muted); font-size: .77rem; font-weight: 700; }
.summary-card strong { font-size: clamp(1.15rem, 2vw, 1.45rem); line-height: 1.05; text-align: right; font-variant-numeric: tabular-nums; }
.summary-card--accent { color: var(--white); border-color: var(--bdo-red); background: #354653; }
.summary-card--accent span { color: #e3e9ed; }
.detail-section, .assumption-box { margin-top: 34px; }
.detail-section h3, .assumption-box h3 { margin: 0 0 13px; font-size: 1.05rem; }
.table-scroll { overflow-x: auto; border: 1px solid var(--line); }
table { width: 100%; border-collapse: collapse; font-variant-numeric: tabular-nums; }
th, td { padding: 9px 10px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); text-align: right; white-space: nowrap; }
th:last-child, td:last-child { border-right: 0; }
thead th { color: var(--white); background: #425561; font-size: .74rem; }
thead th:first-child, tbody th { position: sticky; left: 0; z-index: 1; text-align: left; }
tbody th { min-width: 215px; background: var(--white); font-size: .78rem; }
tbody td { font-size: .76rem; }
.rate-row th, .rate-row td { color: #c41431; font-weight: 800; background: #fff8f9; }
.rate-row--last th, .rate-row--last td { border-bottom: 3px solid #9da8b0; }
.tax-highlight th, .tax-highlight td { background: var(--yellow-soft); }
.result-row th, .result-row td { font-weight: 800; background: #e6eaed; }
.effective-row th, .effective-row td { font-weight: 800; background: #e5edf8; }
.b2b-row th, .b2b-row td { font-weight: 800; background: #fff7d8; }
.tax-highlight th { background: var(--yellow-soft); }
.result-row th { background: #e6eaed; }
.effective-row th { background: #e5edf8; }
.b2b-row th { background: #fff7d8; }
.assumption-box { padding: 20px 22px; border-left: 4px solid var(--bdo-slate); background: var(--surface); }
.assumption-box ul { margin: 0; padding-left: 20px; color: var(--muted); font-size: .82rem; }
.print-header, .print-premises { display: none; }

.final-cta { color: var(--white); background: var(--bdo-red); }
.final-cta__inner { display: flex; align-items: center; justify-content: space-between; gap: 35px; }
.final-cta h2 { max-width: 730px; margin: 0; font-size: clamp(2rem, 4vw, 3.3rem); line-height: 1.02; }
.simple-hero, .legal-page { min-height: 60vh; padding-block: 80px; background: var(--surface); }
.simple-card, .legal-page__content { max-width: 850px; padding: 44px; border-top: 5px solid var(--bdo-red); background: var(--white); box-shadow: var(--shadow); }
.simple-card h1, .legal-page h1 { margin: 0; font-size: clamp(2.4rem, 5vw, 4rem); line-height: 1; }
.simple-card > p:last-of-type { max-width: 680px; color: var(--muted); font-size: 1.1rem; }
.legal-page__content { box-shadow: none; }
.legal-page h2 { margin-top: 32px; }

.account-shell {
    min-height: 68vh;
    display: grid;
    place-items: center;
    padding: 72px 20px;
    background:
        linear-gradient(110deg, rgb(38 55 70 / 94%), rgb(63 83 97 / 91%)),
        repeating-linear-gradient(135deg, transparent 0 20px, rgb(255 255 255 / 4%) 20px 21px);
}

.account-card {
    width: min(100%, 540px);
    padding: 42px;
    border-top: 6px solid var(--bdo-red);
    background: var(--white);
    box-shadow: 0 24px 65px rgb(8 20 29 / 28%);
}

.account-card h1 { margin: 0 0 14px; font-size: clamp(2rem, 5vw, 3.1rem); line-height: 1.02; }
.account-card > p { color: var(--muted); }
.account-card form { margin-top: 26px; }
.field-stack { display: grid; gap: 18px; margin-bottom: 20px; }
.account-link { display: inline-block; margin-top: 22px; font-weight: 700; }
.status-panel { margin-bottom: 24px; padding: 15px 18px; border-left: 4px solid var(--bdo-blue); background: #eef7fb; }
.status-panel--success { border-color: #25805c; background: #edf8f2; }

.simple-hero--compact { min-height: 0; padding-block: 55px; color: var(--white); background: linear-gradient(110deg, #263746, #526577); }
.simple-hero--compact h1 { margin: 0; font-size: clamp(2.3rem, 5vw, 4.5rem); line-height: 1; }
.simple-hero--compact p:last-child { max-width: 700px; margin-bottom: 0; color: #e4e9ed; }
.commercial-shell { background: var(--surface); }
.commercial-filters { display: grid; grid-template-columns: minmax(280px, 1fr) auto auto; align-items: end; gap: 18px; padding: 22px; background: var(--white); box-shadow: var(--shadow); }
.commercial-filters .check-field { min-height: 46px; align-items: center; margin: 0; }
.commercial-summary { display: flex; justify-content: space-between; gap: 20px; margin: 28px 0 16px; color: var(--muted); }
.contacts-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 22px; }
.contact-card { padding: 24px; border-top: 4px solid var(--bdo-slate); background: var(--white); box-shadow: 0 10px 28px rgb(31 43 52 / 8%); }
.contact-card--attention { border-color: #d78b00; }
.contact-card__heading { display: flex; justify-content: space-between; gap: 20px; }
.contact-card__heading h2 { margin: 10px 0 2px; font-size: 1.35rem; }
.contact-card__heading p, .contact-card__heading time { color: var(--muted); font-size: .82rem; }
.contact-card__heading time { flex: 0 0 auto; }
.status-chip { display: inline-block; margin: 0 6px 5px 0; padding: 4px 8px; color: #29414f; background: #e7eef2; font-size: .68rem; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; }
.status-chip--warning { color: #714000; background: #fff1cf; }
.contact-card__details { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; margin: 20px 0; }
.contact-card__details div { min-width: 0; padding: 10px 12px; background: var(--surface); }
.contact-card__details dt { color: var(--muted); font-size: .68rem; font-weight: 800; text-transform: uppercase; }
.contact-card__details dd { overflow-wrap: anywhere; margin: 2px 0 0; font-size: .88rem; font-weight: 700; }
.contact-card__actions { display: flex; flex-wrap: wrap; gap: 10px; }
.contact-card__actions form { display: contents; }
.contact-card details { margin-top: 18px; border-top: 1px solid var(--line); }
.contact-card summary { padding-top: 14px; color: var(--bdo-blue); font-weight: 700; cursor: pointer; }
.contact-card__forms { display: grid; gap: 16px; margin-top: 16px; }
.contact-card__forms form { display: grid; grid-template-columns: 1fr auto; align-items: end; gap: 8px; }
.contact-card__forms label { grid-column: 1 / -1; }
.pagination { display: flex; justify-content: flex-end; gap: 10px; margin-top: 28px; }
.empty-state { padding: 44px; text-align: center; background: var(--white); }

.site-footer { color: #dfe5e9; background: #222f38; }
.site-footer__grid { display: grid; grid-template-columns: 1fr auto; gap: 60px; padding-block: 46px; }
.site-footer__logo { width: 100px; height: auto; }
.site-footer p { max-width: 520px; margin: 16px 0 0; font-size: .85rem; }
.site-footer nav { display: grid; align-content: start; gap: 10px; }
.site-footer a { color: var(--white); font-size: .85rem; text-decoration: none; }
.site-footer__bottom { display: flex; justify-content: space-between; gap: 20px; padding-block: 17px; border-top: 1px solid #50606c; font-size: .72rem; }

@media (max-width: 980px) {
    .hero__grid { grid-template-columns: 1fr; gap: 38px; }
    .hero__panel { max-width: 620px; }
    .feature-grid { grid-template-columns: 1fr; }
    .feature-card { min-height: auto; }
    .lead-layout { grid-template-columns: 1fr; gap: 36px; }
    .lead-layout__intro { position: static; }
    .calculator-layout { grid-template-columns: 1fr; }
    .input-panel { position: static; }
    .summary-grid { grid-template-columns: repeat(2, 1fr); }
    .contacts-grid { grid-template-columns: 1fr; }
    .commercial-filters { grid-template-columns: 1fr; align-items: stretch; }
}

@media (max-width: 680px) {
    .page-shell { width: min(calc(100% - 28px), var(--shell)); }
    .utility-bar { display: none; }
    .main-nav { min-height: 72px; }
    .main-nav nav a:first-child, .brand__product { display: none; }
    .main-nav nav { gap: 0; }
    .brand img { width: 90px; }
    .hero__grid { min-height: auto; padding-block: 58px; }
    .hero::after { right: -260px; }
    .section { padding-block: 58px; }
    .form-grid--two { grid-template-columns: 1fr; }
    .field--wide { grid-column: auto; }
    .lead-card, .results-panel, .input-panel, .simple-card, .legal-page__content { padding: 24px 19px; }
    .summary-grid { grid-template-columns: 1fr; }
    .disclaimer { flex-direction: column; }
    .final-cta__inner, .site-footer__bottom { align-items: flex-start; flex-direction: column; }
    .site-footer__grid { grid-template-columns: 1fr; gap: 28px; }
    .account-card { padding: 30px 22px; }
    .contact-card__heading, .commercial-summary { flex-direction: column; }
    .contact-card__details { grid-template-columns: 1fr; }
    .contact-card__forms form { grid-template-columns: 1fr; }
}

@page { size: A4 landscape; margin: 10mm; }

@media print {
    :root { --ink: #111; --line: #999; }
    body { color: #111; background: #fff; font-family: Arial, sans-serif; font-size: 8.5pt; }
    body::before, .print-hidden, .disclaimer, .input-panel, .final-cta, .site-footer { display: none !important; }
    .page-shell { width: 100%; max-width: none; }
    .calculator-shell { padding: 0; background: #fff; }
    .calculator-layout { display: block; margin: 0; }
    .results-panel { padding: 0; box-shadow: none; }
    .print-header { display: flex; align-items: center; justify-content: space-between; gap: 30px; margin-bottom: 6mm; padding-bottom: 4mm; border-bottom: 2px solid var(--bdo-red); }
    .print-header img { width: 30mm; height: auto; }
    .print-header div { display: grid; gap: 1mm; text-align: right; }
    .print-header strong { font-size: 13pt; }
    .print-header span { font-size: 7.5pt; }
    .results-heading { margin-bottom: 4mm; }
    .results-heading h2 { font-size: 14pt; }
    .eyebrow { margin-bottom: 1mm; }
    .summary-grid { grid-template-columns: repeat(4, 1fr); gap: 2mm; }
    .summary-card { min-height: 18mm; padding: 3mm; border: 1px solid #777; border-top: 3px solid var(--bdo-red); break-inside: avoid; }
    .summary-card--accent { color: #111; background: #eee; }
    .summary-card--accent span { color: #333; }
    .summary-card strong { font-size: 11pt; }
    .print-premises { display: block; margin-top: 4mm; break-inside: avoid; }
    .print-premises h2 { margin: 0 0 2mm; font-size: 10pt; }
    .print-premises dl { display: grid; grid-template-columns: repeat(7, 1fr); gap: 2mm; margin: 0; }
    .print-premises dl div { padding: 2mm; border: 1px solid #aaa; }
    .print-premises dt { font-size: 6.5pt; font-weight: 700; }
    .print-premises dd { margin: 1mm 0 0; font-weight: 700; text-align: right; }
    .detail-section, .assumption-box { margin-top: 4mm; break-inside: avoid; }
    .detail-section h3, .assumption-box h3 { margin-bottom: 2mm; font-size: 9pt; }
    .table-scroll { overflow: visible; border: 0; }
    table { break-inside: avoid; }
    thead { display: table-header-group; }
    th, td { position: static !important; padding: 1.2mm 1.4mm; border: 1px solid #777; font-size: 6.5pt !important; }
    thead th { color: #fff !important; background: #333 !important; print-color-adjust: exact; }
    tbody th { min-width: 0; }
    .rate-row th, .rate-row td { color: #b00020 !important; background: #fff8f9 !important; }
    .tax-highlight th, .tax-highlight td, .result-row th, .result-row td, .effective-row th, .effective-row td, .b2b-row th, .b2b-row td { print-color-adjust: exact; }
    .assumption-box { padding: 3mm; border: 1px solid #777; border-left: 3px solid #555; background: #f4f4f4; print-color-adjust: exact; }
    .assumption-box ul { columns: 2; font-size: 6.5pt; }
}
