/* Shared comparison identity and chart layout, independent of template colour themes. */
.comparison-heading {display:grid;grid-template-columns:minmax(0,1.7fr) minmax(230px,1fr);gap:2rem;align-items:start;margin:1rem 0 2rem;}
/* Leave room for long translated headings beside the series key. */
@media screen{.comparison-heading h1.title {font-size:clamp(1.75rem,3.1vw,3.5rem);}}
@media screen and (max-width:1000px){.comparison-heading{grid-template-columns:1fr;gap:1rem;}}
.comparison-series {min-width:0;}
.comparison-series-trigger {display:block;width:100%;padding:.8rem 1rem;border:1px solid rgba(var(--text-rgb),.18);border-radius:8px;background:rgba(var(--text-rgb),.035);color:inherit;text-align:left;font:inherit;cursor:pointer;}
.comparison-series-trigger:hover {background:rgba(var(--text-rgb),.09);}
.comparison-series-trigger:focus-visible {outline:2px solid currentColor;outline-offset:3px;}
.comparison-series-heading {display:flex;justify-content:space-between;font-size:.85rem;font-weight:600;margin-bottom:.6rem;}
.comparison-series-item {display:flex;gap:.6rem;align-items:baseline;margin:.55rem 0;}
.comparison-series-item > i {width:.6rem;height:.6rem;flex:none;border-radius:50%;}
.comparison-series-item > span {min-width:0;}
.comparison-series-name {display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;overflow-wrap:anywhere;font-size:.85rem;line-height:1.4;}
.comparison-series-item small {display:block;opacity:.75;font-size:.75rem;}
.comparison-series-more {font-size:.8rem;font-weight:600;}
.comparison-series-details section {border-left:3px solid var(--series-color);padding:.4rem .8rem;margin:0 0 1rem;overflow-wrap:anywhere;}
.comparison-series-details h3 {font-size:1.1rem;}.comparison-series-details p {font-size:.9rem;margin:.25rem 0;}
.comparison-series-print {display:none;}
.comparison-result {padding:1rem;border:0;border-radius:3px;margin-bottom:.4rem;background:rgba(var(--text-rgb),.025);break-inside:avoid;}
.comparison-topic {display:grid;grid-template-columns:minmax(0,1fr) minmax(0,2fr);gap:.8rem 1.2rem;align-items:center;}
.comparison-topic-with-distribution {grid-template-columns:repeat(3,minmax(0,1fr));}
.comparison-chart-caption {font-size:.8rem;opacity:.75;text-align:center;margin:.5rem 0 0;}
.comparison-topic-type {display:block;font-size:.75rem;opacity:.65;margin-bottom:.35rem;}
.comparison-series-meta {margin:.2rem 0;font-size:.85rem;}
.comparison-topic-description {align-self:start;}
.comparison-topic-description h2,.comparison-topic-description h3 {font-size:1.2rem;font-weight:600;line-height:1.35;margin:.5rem 0 1rem;overflow-wrap:anywhere;}
.comparison-topic-description p {font-size:.95rem;line-height:1.5;}
.comparison-topic-excerpt {overflow-wrap:anywhere;}
.comparison-more-details {display:inline-block;font-size:.85rem;text-decoration:underline;text-underline-offset:.2em;margin:.1rem 0 .5rem;}
.comparison-topic-icon {display:inline-block;font-size:1.25rem;margin-right:.4rem;opacity:.85;}
.comparison-topic-chart,.comparison-score-chart {min-width:0;}
.comparison-chart-difference {font-weight:400;font-size:10px;}
.comparison-missing {font-size:.8rem;opacity:.8;}
.comparison-distribution {grid-column:1/-1;border-top:1px solid rgba(var(--text-rgb),.15);padding-top:.7rem;}
.comparison-distribution summary {cursor:pointer;font-weight:600;font-size:.95rem;padding:.65rem .8rem;border-radius:3px;background:rgba(var(--text-rgb),.06);}
.comparison-distribution summary:hover {background:rgba(var(--text-rgb),.1);}
.comparison-distribution summary:focus-visible,.comparison-more-details:focus-visible {outline:2px solid currentColor;outline-offset:3px;}
.comparison-distribution summary i {margin:0 .4rem;opacity:.7;}
.comparison-distribution[open] summary {margin-bottom:1rem;}
.comparison-distribution-expanded h2 {font-size:1.15rem;margin:1rem 0;}
.comparison-list-tools {display:flex;gap:1rem;align-items:end;margin:1rem 0;}
.comparison-list-tools label:first-child {flex:1;}
.comparison-list-tools label {font-size:.85rem;}
.comparison-list-tools input,.comparison-list-tools select {width:100%;}
.comparison-empty {padding:1rem;border:1px dashed currentColor;}
.comparison-summary {border-left:3px solid var(--series-color);}
.comparison-basis-badge {display:inline-block;padding:.25rem .6rem;margin:0 0 .5rem;border-radius:3px;background:rgba(var(--text-rgb),.08);font-size:.75rem;font-weight:600;}
.comparison-summary .report-comparison-summary {grid-template-columns:minmax(0,1.4fr) repeat(var(--summary-charts,3),minmax(0,1fr));gap:.8rem;align-items:stretch;}
.comparison-summary .report-comparison-identity {align-self:center;}
.comparison-summary .report-comparison-chart {display:grid;grid-template-rows:1.6rem minmax(190px,auto) minmax(2.4em,auto);align-items:center;}
.comparison-summary-visual {grid-row:2;min-width:0;width:100%;}
.comparison-summary-caption {grid-row:3;align-self:start;}
.comparison-summary .report-comparison-identity h2 {font-size:1.15rem;line-height:1.35;}
.comparison-summary .report-comparison-identity p {font-size:.8rem;}
.comparison-summary-difference {grid-row:1;font-weight:600;font-size:.85rem;}
.comparison-pyramid {width:100%;max-width:170px;margin:0 auto;padding:3px;}
.comparison-pyramid .pyramid-container > svg {overflow:visible;}
.comparison-pyramid .pyramid-shape:nth-child(n+7):not(.active) {fill-opacity:.05;}
.comparison-summary .report-comparison-chart p {margin-bottom:0;}
.report-top-menu {flex-wrap:wrap;gap:2px;}
@media screen and (max-width:750px){.comparison-topic,.comparison-topic-with-distribution{grid-template-columns:minmax(0,1fr);}.comparison-summary .report-comparison-summary{grid-template-columns:repeat(var(--summary-charts,3),minmax(0,1fr));}.comparison-summary .report-comparison-identity{grid-column:1/-1;}}
@media screen and (max-width:750px){.comparison-heading{grid-template-columns:1fr;gap:1rem;}.comparison-result{padding:.8rem;}.comparison-list-tools{flex-wrap:wrap;}.comparison-summary .report-comparison-summary{grid-template-columns:1fr;}}
/* Lay out print-route charts at the A4 content width before Highcharts measures them.
   120pt is the existing horizontal page margin; 30px is the print slide padding. */
html.print .cd-hero-slider>li:has(.comparison-page) {max-width:calc(210mm - 120pt);}
html.print .cd-hero-slider>li:has(.comparison-page),
html.print .cd-hero-slider>li:has(.comparison-page)>.page:last-child {break-after:auto;page-break-after:auto;}
html.print .comparison-page {width:100%;max-width:calc(210mm - 120pt - 30px);margin-inline:auto;}
html.print .comparison-heading {grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:1rem;}
html.print .comparison-topic {display:grid;grid-template-columns:minmax(0,1fr) minmax(0,2fr);}
html.print .comparison-topic-with-distribution {grid-template-columns:repeat(3,minmax(0,1fr));}
html.print .comparison-summary .report-comparison-summary {grid-template-columns:repeat(var(--summary-charts,3),minmax(0,1fr));}
html.print .comparison-summary .report-comparison-identity {grid-column:1/-1;}
html.print .comparison-series-trigger,html.print .comparison-list-tools {display:none;}
html.print .comparison-series-print {display:block;}
html.print .comparison-result[hidden] {display:grid!important;}
html.print .comparison-distribution::details-content {content-visibility:visible;display:block;}
html.print .comparison-distribution>* {display:block!important;}

/* Retain the same columns in the final paged document, including native browser print. */
@media print {
    /* Bootstrap otherwise forces a 992px sheet and silently shrinks A4 output. */
    body:has(.comparison-page),body:has(.comparison-page) .container {min-width:0!important;}
    .comparison-heading {grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:1rem;break-after:avoid;}
    .comparison-series-trigger,.comparison-list-tools {display:none;}
    .comparison-series-print {display:block;}
    .comparison-topic,.comparison-result[hidden] {display:grid!important;grid-template-columns:minmax(0,1fr) minmax(0,2fr);}
    .comparison-topic-with-distribution {grid-template-columns:repeat(3,minmax(0,1fr))!important;}
    .comparison-summary .report-comparison-summary {grid-template-columns:repeat(var(--summary-charts,3),minmax(0,1fr));}
    .comparison-summary .report-comparison-identity {grid-column:1/-1;}
    .comparison-result {break-inside:avoid;page-break-inside:avoid;}
    .comparison-topic-chart,.report-comparison-chart {break-inside:avoid;}
    .comparison-distribution {grid-column:1/-1;}
    .comparison-distribution::details-content {content-visibility:visible;display:block;}
    .comparison-distribution>* {display:block!important;}
}

/* HTML chart tooltips must wrap independently of the chart's SVG text defaults. */
.comparison-tooltip {width:300px;max-width:calc(100vw - 48px);white-space:normal!important;overflow-wrap:anywhere;line-height:1.4;text-align:center;}
.comparison-tooltip h3 {font-size:1.15rem;font-weight:600;line-height:1.3;margin:0 0 .65rem;white-space:normal;}
.comparison-tooltip-description {font-size:.85rem;opacity:.8;margin:0 0 .6rem;}
.comparison-tooltip-explanation {font-size:.8rem;opacity:.8;margin:.5rem 0 .7rem;}
.comparison-tooltip-series {display:flex;flex-direction:column;gap:.35rem;margin:.5rem 0 0;padding:.65rem .75rem;background:rgba(var(--text-rgb),.05);border:1px solid rgba(var(--text-rgb),.14);border-radius:5px;white-space:normal;}
.comparison-tooltip-name {font-size:.85rem;line-height:1.35;}
.comparison-tooltip-dot {display:inline-block;width:.6rem;height:.6rem;border-radius:50%;margin-right:.4rem;}
.comparison-tooltip-value {align-self:center;display:block;padding:.15rem .45rem;background:rgba(var(--text-rgb),.08);border-radius:3px;font-size:1rem;font-weight:600;font-variant-numeric:tabular-nums;}
.comparison-tooltip-difference {font-size:.85rem;font-weight:600;margin:.65rem 0 .15rem;}

.comparison-heading-icon {font-size:.65em;opacity:.8;vertical-align:middle;margin-right:.15em;}
.comparison-subtitle {font-size:1.05rem;line-height:1.6;opacity:.85;margin-top:1rem;}
.comparison-detail-context {font-size:1rem;line-height:1.6;margin:0 0 2.5rem;}
.comparison-detail-section {margin:2.5rem 0;padding:1.25rem 0;}
.comparison-detail .comparison-result {padding:1.5rem;}
.comparison-detail .comparison-heading {margin-bottom:2.5rem;}
