:root {
    --cmp-ink: #102b3f;
    --cmp-navy: #082d4b;
    --cmp-blue: #155b82;
    --cmp-orange: #c75f00;
    --cmp-red: #a9362d;
    --cmp-green: #246347;
    --cmp-text: #243b4c;
    --cmp-muted: #5b7182;
    --cmp-line: #cbd6de;
    --cmp-soft: #f2f6f8;
    --cmp-white: #ffffff;
}

.comparison-page {
    background: #fff;
    color: var(--cmp-text);
    font-family: "Source Sans 3", Arial, sans-serif;
    letter-spacing: 0;
}

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

.comparison-page main { min-height: 65vh; }

.comparison-intro {
    padding: 42px 0 34px;
    border-bottom: 1px solid var(--cmp-line);
    background: var(--cmp-soft);
}

.comparison-intro-inner { max-width: var(--max-width); }
.comparison-kicker {
    margin: 0 0 7px;
    color: var(--cmp-orange);
    font-size: 12px;
    font-weight: 700;
    line-height: 1.3;
    text-transform: uppercase;
    letter-spacing: 0;
}
.comparison-intro h1 {
    margin: 0;
    color: var(--cmp-navy);
    font-size: 48px;
    line-height: 1.05;
    letter-spacing: 0;
}
.comparison-intro-copy {
    margin: 16px 0 0;
    color: var(--cmp-ink);
    font-size: 21px;
    font-weight: 600;
    line-height: 1.35;
}
.comparison-intro-support {
    max-width: 820px;
    margin: 10px 0 0;
    color: var(--cmp-muted);
    font-size: 17px;
    line-height: 1.55;
}

.comparison-main {
    padding-top: 30px;
    padding-bottom: 64px;
}
.comparison-message { margin: 0 0 20px; padding: 12px 14px; border: 1px solid; font-weight: 600; }
.comparison-message.error { border-color: #df9d98; background: #fff4f3; color: #7c211a; }

.diagnostic-layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 310px;
    gap: 36px;
    align-items: start;
}

.section-heading { margin-bottom: 24px; }
.section-heading h2,
.diagnostic-expectation h2,
.result-section-heading h2,
.result-cta h2,
.report-header h2 {
    margin: 0;
    color: var(--cmp-navy);
    font-size: 25px;
    line-height: 1.2;
    letter-spacing: 0;
}
.section-heading > p:last-child,
.result-section-heading > p:last-child { margin: 7px 0 0; color: var(--cmp-muted); line-height: 1.5; }

.transaction-profile form { border-top: 3px solid var(--cmp-navy); }
.form-section {
    min-width: 0;
    margin: 0;
    padding: 24px 0 27px;
    border: 0;
    border-bottom: 1px solid var(--cmp-line);
}
.form-section legend {
    padding: 0;
    color: var(--cmp-ink);
    font-size: 18px;
    font-weight: 700;
    line-height: 1.25;
}
.form-section-tip { margin: 6px 0 18px; color: var(--cmp-muted); font-size: 14px; line-height: 1.45; }
.field-grid { display: grid; gap: 19px 22px; }
.field-grid.two-column { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.field-grid.three-column { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.field-grid.three-column .range-field { grid-column: span 1; }

.screening-field { min-width: 0; }
.screening-field label,
.field-label {
    display: flex;
    justify-content: space-between;
    gap: 10px;
    margin-bottom: 6px;
    color: var(--cmp-ink);
    font-size: 14px;
    font-weight: 700;
    line-height: 1.3;
}
.screening-field input[type="text"],
.screening-field input[type="number"],
.screening-field select,
.enquiry-field input,
.enquiry-field textarea {
    width: 100%;
    min-height: 43px;
    padding: 9px 11px;
    border: 1px solid #9cafbd;
    border-radius: 3px;
    background: #fff;
    color: var(--cmp-ink);
    font: inherit;
    letter-spacing: 0;
}
.screening-field input:focus,
.screening-field select:focus { outline: 3px solid rgba(21, 91, 130, .18); border-color: var(--cmp-blue); }
.screening-field select:disabled { background: #edf1f3; color: #73828d; }
.screening-field small { display: block; margin-top: 5px; color: var(--cmp-muted); font-size: 12px; line-height: 1.4; }
.field-error { color: var(--cmp-red) !important; font-weight: 700; }

.money-input,
.number-suffix {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    align-items: stretch;
}
.money-input > span,
.number-suffix > span {
    display: flex;
    align-items: center;
    padding: 0 10px;
    border: 1px solid #9cafbd;
    border-right: 0;
    border-radius: 3px 0 0 3px;
    background: var(--cmp-soft);
    color: var(--cmp-ink);
    font-size: 12px;
    font-weight: 700;
}
.money-input input { border-radius: 0 3px 3px 0 !important; }
.number-suffix { grid-template-columns: minmax(0, 1fr) auto; }
.number-suffix > span { border-right: 1px solid #9cafbd; border-left: 0; border-radius: 0 3px 3px 0; }
.number-suffix input { border-radius: 3px 0 0 3px !important; }

.range-field input[type="range"] { width: 100%; accent-color: var(--cmp-orange); }
.range-field output { color: var(--cmp-blue); font-size: 13px; font-weight: 700; text-align: right; }
.analysis-availability {
    min-height: 94px;
    padding: 12px 14px;
    border-left: 3px solid var(--cmp-green);
    background: #eef6f1;
}
.analysis-availability span,
.analysis-availability small { display: block; }
.analysis-availability span { color: var(--cmp-muted); font-size: 12px; font-weight: 700; text-transform: uppercase; }
.analysis-availability strong { display: block; margin: 3px 0; color: var(--cmp-green); }
.analysis-availability small { color: var(--cmp-muted); line-height: 1.35; }

.binary-choice { display: flex; flex-wrap: wrap; gap: 10px; margin-bottom: 18px; }
.binary-choice label { cursor: pointer; }
.binary-choice input { position: absolute; opacity: 0; }
.binary-choice span {
    display: inline-flex;
    min-height: 40px;
    align-items: center;
    padding: 8px 13px;
    border: 1px solid #9cafbd;
    border-radius: 3px;
    color: var(--cmp-text);
    font-weight: 600;
}
.binary-choice input:checked + span { border-color: var(--cmp-blue); background: #eaf3f8; color: var(--cmp-navy); box-shadow: inset 3px 0 var(--cmp-blue); }
.binary-choice input:focus-visible + span { outline: 3px solid rgba(21, 91, 130, .2); }
[data-proposed-fields][hidden] { display: none; }

.diagnostic-submit,
.comparison-primary-action {
    min-height: 46px;
    margin-top: 22px;
    padding: 11px 18px;
    border: 1px solid var(--cmp-navy);
    border-radius: 3px;
    background: var(--cmp-navy);
    color: #fff;
    font: inherit;
    font-weight: 700;
    cursor: pointer;
}
.diagnostic-submit:hover,
.comparison-primary-action:hover { background: var(--cmp-blue); border-color: var(--cmp-blue); }
.diagnostic-submit:focus-visible,
.comparison-primary-action:focus-visible { outline: 3px solid rgba(199, 95, 0, .28); outline-offset: 2px; }
.diagnostic-submit:disabled { cursor: not-allowed; opacity: .55; }
.screening-disclaimer { max-width: 700px; margin: 9px 0 0; color: var(--cmp-muted); font-size: 12px; line-height: 1.45; }

.diagnostic-expectation {
    position: sticky;
    top: 24px;
    padding: 22px 0 0;
    border-top: 3px solid var(--cmp-orange);
}
.diagnostic-expectation ol { margin: 22px 0; padding: 0; list-style: none; counter-reset: stages; }
.diagnostic-expectation li { position: relative; padding: 0 0 20px 38px; counter-increment: stages; }
.diagnostic-expectation li::before { content: counter(stages); position: absolute; left: 0; top: 0; width: 25px; height: 25px; display: grid; place-items: center; border: 1px solid #8ea2b0; border-radius: 50%; color: var(--cmp-navy); font-size: 12px; font-weight: 700; }
.diagnostic-expectation li strong,
.diagnostic-expectation li span { display: block; }
.diagnostic-expectation li span { margin-top: 3px; color: var(--cmp-muted); font-size: 14px; line-height: 1.4; }
.no-ranking-note { padding: 15px; border: 1px solid #dec4a5; background: #fff8ef; }
.no-ranking-note strong { color: #8b4300; }
.no-ranking-note p { margin: 4px 0 0; color: var(--cmp-text); font-size: 14px; line-height: 1.45; }

.diagnostic-result,
.preliminary-report { margin-top: 48px; padding-top: 32px; border-top: 4px solid var(--cmp-navy); }
.result-header,
.report-header { display: flex; justify-content: space-between; gap: 24px; align-items: flex-start; margin-bottom: 25px; }
.result-header > div > p:last-child,
.report-header > div > p:last-child { margin: 6px 0 0; color: var(--cmp-muted); }
.decision-status { flex: 0 0 auto; padding: 7px 10px; border: 1px solid #d9a09a; background: #fff2f1; color: #8f2e27; font-size: 13px; font-weight: 700; }

.finding-list { border-top: 1px solid var(--cmp-line); }
.finding-list article { display: grid; grid-template-columns: 34px minmax(0, 1fr); gap: 12px; padding: 18px 0; border-bottom: 1px solid var(--cmp-line); }
.finding-list article > span { width: 28px; height: 28px; display: grid; place-items: center; background: var(--cmp-navy); color: #fff; font-size: 12px; font-weight: 700; }
.finding-list h3 { margin: 0; color: var(--cmp-ink); font-size: 17px; }
.finding-list p { margin: 4px 0 0; color: var(--cmp-muted); line-height: 1.5; }

.result-section,
.report-section { margin-top: 34px; }
.result-section-heading { margin-bottom: 14px; }
.exposure-table-wrap { overflow-x: auto; border: 1px solid var(--cmp-line); }
.exposure-table { width: 100%; border-collapse: collapse; min-width: 700px; }
.exposure-table th,
.exposure-table td { padding: 12px 13px; border-bottom: 1px solid var(--cmp-line); text-align: left; vertical-align: top; line-height: 1.4; }
.exposure-table thead th { background: var(--cmp-soft); color: var(--cmp-muted); font-size: 12px; text-transform: uppercase; }
.exposure-table tbody th { width: 24%; color: var(--cmp-ink); }
.exposure-table tbody td:nth-child(2) { width: 25%; color: var(--cmp-red); font-weight: 700; }
.exposure-table tbody tr:last-child > * { border-bottom: 0; }

.result-columns,
.report-columns { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 32px; margin-top: 32px; }
.result-columns section,
.report-columns .report-section { margin: 0; padding-top: 17px; border-top: 2px solid var(--cmp-line); }
.result-columns h3,
.report-section h3 { margin: 0 0 10px; color: var(--cmp-ink); font-size: 18px; }
.result-columns ul,
.report-section ul,
.report-section ol { margin: 0; padding-left: 20px; }
.result-columns li,
.report-section li { margin: 8px 0; line-height: 1.45; }

.result-cta { display: flex; justify-content: space-between; gap: 30px; align-items: center; margin-top: 38px; padding: 25px 0; border-top: 3px solid var(--cmp-orange); border-bottom: 1px solid var(--cmp-line); }
.result-cta p:not(.comparison-kicker) { max-width: 760px; margin: 7px 0 0; color: var(--cmp-muted); line-height: 1.5; }
.result-cta .comparison-primary-action { flex: 0 0 auto; margin: 0; }

.illustration-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.illustration-grid article { padding: 16px; border: 1px solid var(--cmp-line); border-top: 3px solid var(--cmp-blue); }
.illustration-grid span,
.illustration-grid strong { display: block; }
.illustration-grid span { color: var(--cmp-muted); font-size: 12px; font-weight: 700; text-transform: uppercase; }
.illustration-grid strong { margin: 5px 0; color: var(--cmp-navy); font-size: 21px; overflow-wrap: anywhere; }
.illustration-grid p { margin: 0; color: var(--cmp-muted); }
.corpfin-integration-note { margin-top: 30px; padding: 18px; border-left: 4px solid var(--cmp-green); background: #eef6f1; }
.corpfin-integration-note strong { color: var(--cmp-green); }
.corpfin-integration-note p { margin: 4px 0 0; }

@media (max-width: 900px) {
    .diagnostic-layout { grid-template-columns: 1fr; }
    .diagnostic-expectation { position: static; order: -1; }
    .field-grid.three-column { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .result-cta { align-items: flex-start; flex-direction: column; }
}

@media (max-width: 640px) {
    .comparison-intro { padding: 28px 0 25px; }
    .comparison-intro h1 { font-size: 34px; }
    .comparison-intro-copy { font-size: 18px; }
    .comparison-main { padding-top: 22px; }
    .field-grid.two-column,
    .field-grid.three-column,
    .result-columns,
    .report-columns,
    .illustration-grid { grid-template-columns: 1fr; }
    .result-header,
    .report-header { flex-direction: column; }
    .decision-status { white-space: normal; }
    .binary-choice { flex-direction: column; align-items: stretch; }
    .binary-choice span { width: 100%; }
    .diagnostic-result,
    .preliminary-report { margin-top: 35px; }
}

@media (prefers-reduced-motion: reduce) {
    .comparison-page *, .comparison-page *::before, .comparison-page *::after { scroll-behavior: auto !important; transition: none !important; }
}

.enquiry-field small { display: block; margin-top: 5px; color: var(--cmp-muted); font-size: 12px; line-height: 1.4; }
.enquiry-consent { display: flex; gap: 10px; align-items: flex-start; color: var(--cmp-text); font-size: 14px; line-height: 1.4; cursor: pointer; }
.enquiry-consent input { width: 18px !important; min-height: 18px !important; flex: 0 0 18px; margin-top: 2px; }

.standard-comparison-gap { margin-top: 28px; padding: 17px 18px; border-left: 4px solid var(--cmp-orange); background: #fff8ef; }
.standard-comparison-gap h3 { margin: 0; color: var(--cmp-ink); font-size: 18px; }
.standard-comparison-gap p { margin: 5px 0 0; line-height: 1.5; }
