/* Connected Story figures: native content first; charts enhance the same data. */
.olga-data-visual {
	--dv-colour: var(--dv-atlantic);
	container-type: inline-size;
	color: var(--dv-ink);
	background: var(--dv-paper);
	border-block: 1px solid var(--dv-rule);
	padding-block: clamp(1.4rem, 3cqi, 2.5rem);
	margin-block: 2.5rem;
	font: 400 1rem/1.5 var(--wp--preset--font-family--ui, Yantramanav, Arial, sans-serif);
}
.olga-data-visual *, .olga-data-visual *::before, .olga-data-visual *::after { box-sizing: border-box; }
.olga-data-visual [hidden] { display: none !important; }
.olga-data-visual :is(h3,h4,p,figure,ul,ol,dl,dd) { margin: 0; }
.olga-data-visual h3 { font: 400 clamp(1.4rem, 1.1rem + 1cqi, 1.9rem)/1.3 var(--wp--preset--font-family--display, Prata, Georgia, serif); text-wrap: balance; }
.olga-data-visual h4 { font: 400 1.125rem/1.35 var(--wp--preset--font-family--body, Alice, Georgia, serif); text-wrap: balance; }
.olga-data-visual p { text-wrap: pretty; }
.olga-data-visual .olga-dv-head > p:not(.olga-dv-eyebrow) { max-inline-size: 65ch; margin-block-start: .65rem; color: var(--dv-muted); font: 400 1rem/1.55 var(--wp--preset--font-family--body, Alice, Georgia, serif); }
.olga-data-visual .olga-dv-eyebrow { font-size: .75rem; letter-spacing: .11em; text-transform: uppercase; color: var(--dv-muted); margin-block-end: .5rem; }
.olga-data-visual :is(button,select,input) { font: inherit; }
.olga-data-visual button { color: inherit; cursor: pointer; border: 1px solid var(--dv-rule); background: transparent; padding: .55rem .9rem; min-block-size: 44px; border-radius: 0; line-height: 1.3; text-align: start; }
.olga-data-visual button:disabled { cursor: default; opacity: 1; }
.olga-data-visual button:not(:disabled):hover { border-color: var(--dv-ink); }
.olga-data-visual button[aria-pressed="true"] { background: var(--dv-ink); color: var(--dv-paper); border-color: var(--dv-ink); }
.olga-data-visual :is(button,input,select,summary,a):focus-visible { outline: 2px solid var(--dv-atlantic); outline-offset: 4px; }
.olga-data-visual .olga-dv-views { display: flex; flex-wrap: wrap; gap: .5rem; margin-block: 1.25rem 1.5rem; }
.olga-data-visual .olga-dv-view { margin-block-start: 1.4rem; min-inline-size: 0; }
.olga-data-visual[data-enhanced] .olga-dv-view-title { display: none; }
.olga-data-visual .olga-dv-flow { display: grid; grid-template-columns: repeat(var(--dv-lanes, 3), minmax(0, 1fr)); gap: 2.75rem; position: relative; isolation: isolate; margin-block: 1rem 1.5rem; }
.olga-data-visual .olga-dv-connectors { position: absolute; inset: 0; inline-size: 100%; block-size: 100%; overflow: visible; pointer-events: none; z-index: -1; }
.olga-data-visual .olga-dv-connectors > path { fill: none; stroke-width: 1.5; transition: opacity .15s; }
.olga-data-visual .olga-dv-connectors path[data-dimmed] { opacity: .12; }
.olga-data-visual .olga-dv-lane { display: flex; flex-direction: column; min-inline-size: 0; }
.olga-data-visual .olga-dv-lane-label { color: var(--dv-muted); font-size: .75rem; letter-spacing: .07em; text-transform: uppercase; min-block-size: 2rem; background: var(--dv-paper); inline-size: fit-content; position: relative; z-index: 1; }
.olga-data-visual .olga-dv-lane ul { padding: 0; list-style: none; display: flex; flex-direction: column; justify-content: center; gap: 1.25rem; flex: 1; }
.olga-data-visual .olga-dv-node { inline-size: 100%; min-block-size: 96px; border: 0; border-block-start: 3px solid var(--dv-colour); background: color-mix(in srgb, var(--dv-colour) 10%, var(--dv-paper)); padding: .85rem .8rem; }
.olga-data-visual .olga-dv-node strong { display: block; font-family: var(--wp--preset--font-family--ui, Yantramanav, Arial, sans-serif); font-weight: 500; font-size: 1.05rem; }
.olga-data-visual .olga-dv-node span { display: block; margin-block-start: .5rem; color: var(--dv-muted); font-size: .875rem; }
.olga-data-visual .olga-dv-node[aria-pressed="true"] { background: color-mix(in srgb, var(--dv-colour) 20%, var(--dv-paper)); color: var(--dv-ink); outline: 1px solid var(--dv-colour); outline-offset: 3px; }
.olga-data-visual .olga-dv-node[data-dimmed] { opacity: .45; }
.olga-data-visual .olga-dv-node:not(:disabled):hover { border-color: var(--dv-colour); }
.olga-data-visual .olga-dv-insight { display: block; border-inline-start: 3px solid var(--dv-jade); padding: .8rem 1rem; margin-block: 1rem; min-block-size: 3rem; background: color-mix(in srgb, var(--dv-jade) 5%, var(--dv-paper)); font-size: .9375rem; text-wrap: pretty; }
.olga-data-visual .olga-dv-chart { inline-size: 100%; block-size: 300px; margin-block: 1rem; }
.olga-data-visual[data-kind="capacity"] .olga-dv-chart { block-size: 340px; }
.olga-data-visual[data-kind="waterfall"] .olga-dv-chart { block-size: 410px; }
.olga-data-visual[data-kind="timeline"] .olga-dv-chart { block-size: 200px; }
.olga-data-visual .olga-dv-range { display: grid; grid-template-columns: minmax(130px, 1fr) minmax(120px, 2fr) 3ch; align-items: center; gap: .75rem; margin-block: 1rem; font-size: .9375rem; }
.olga-data-visual .olga-dv-range input { inline-size: 100%; min-block-size: 36px; accent-color: var(--dv-atlantic); margin: 0; }
.olga-data-visual .olga-dv-range output { text-align: end; font-variant-numeric: tabular-nums; }
.olga-data-visual .olga-dv-reset { margin-block: .75rem; font-size: .875rem; }
.olga-data-visual .olga-dv-fallback-bars { display: grid; gap: 1rem; }
.olga-data-visual .olga-dv-fallback-bars dt { font-size: .9375rem; }
.olga-data-visual .olga-dv-fallback-bars dd { display: grid; grid-template-columns: 1fr auto; align-items: center; gap: .75rem; }
.olga-data-visual .olga-dv-fallback-bars dd span { block-size: .6rem; inline-size: var(--dv-value); background: var(--dv-colour); }
.olga-data-visual .olga-dv-fallback-bars strong { font-size: .9375rem; font-weight: 400; font-variant-numeric: tabular-nums; }
.olga-data-visual :is(.olga-dv-values,.olga-dv-relations,.olga-dv-decision-tree) { border-block-start: 1px solid var(--dv-rule); padding-block-start: .75rem; margin-block-start: 1.3rem; }
.olga-data-visual summary { cursor: pointer; min-block-size: 36px; font-size: .875rem; }
.olga-data-visual :is(table,ul,dl) { font-size: .9375rem; }
.olga-data-visual table { border-collapse: collapse; inline-size: 100%; margin-block: .75rem; }
.olga-data-visual caption { text-align: start; color: var(--dv-muted); font-size: .875rem; margin-block-end: .6rem; }
.olga-data-visual :is(th,td) { padding: .5rem .4rem; text-align: start; border-block-end: 1px solid var(--dv-rule); vertical-align: top; overflow-wrap: anywhere; }
.olga-data-visual th { font-weight: 500; }
.olga-data-visual .olga-dv-values td { text-align: end; white-space: nowrap; font-variant-numeric: tabular-nums; }
.olga-data-visual .olga-dv-relations ul { padding-inline-start: 1.2rem; margin-block: .7rem; }
.olga-data-visual figcaption { display: block; font: 400 .8125rem/1.5 var(--wp--preset--font-family--ui, Yantramanav, Arial, sans-serif); color: var(--dv-muted); margin-block-start: 1.3rem; text-wrap: pretty; }
.olga-data-visual figcaption a { color: inherit; text-decoration: underline; margin-inline-start: .25rem; }
.olga-data-visual .olga-dv-example { color: var(--dv-ink); }
.olga-data-visual .olga-dv-aircraft-pair { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 2rem; }
.olga-data-visual .olga-dv-aircraft { text-align: center; }
.olga-data-visual .olga-dv-aircraft h4 { font-size: 1.2rem; }
.olga-data-visual .olga-dv-aircraft p { color: var(--dv-muted); font-size: .875rem; margin-block: .4rem .8rem; }
.olga-data-visual .olga-dv-aircraft p strong { font-size: 1.3rem; font-weight: 500; color: var(--dv-ink); }
.olga-data-visual .olga-dv-fuselage { max-inline-size: 195px; margin-inline: auto; padding: 20px 14px 12px; border: 1px solid var(--dv-rule); border-radius: 50% 50% 12% 12% / 40px 40px 20px 20px; background: color-mix(in srgb, var(--dv-rule) 13%, var(--dv-paper)); }
.olga-data-visual .olga-dv-seat-row { display: grid; grid-template-columns: 16px repeat(3, 1fr) 8px repeat(3, 1fr); gap: 3px; margin-block: 3px; align-items: center; }
.olga-data-visual .olga-dv-seat-row[data-cabin="first"] { grid-template-columns: 16px repeat(2, 1fr) 8px repeat(2, 1fr); margin-block-end: 5px; }
.olga-data-visual .olga-dv-row-number { color: var(--dv-muted); font-size: 10px; line-height: 1; }
.olga-data-visual .olga-dv-seat { background: var(--dv-colour); block-size: 10px; min-inline-size: 0; border-radius: 2px 2px 0 0; }
.olga-data-visual .olga-dv-seat-row[data-cabin="economy"] .olga-dv-seat:nth-of-type(4) { grid-column: 6; }
.olga-data-visual .olga-dv-seat-row[data-cabin="first"] .olga-dv-seat:nth-of-type(3) { grid-column: 5; }
.olga-data-visual .olga-dv-seat--absent { visibility: hidden; }
.olga-data-visual .olga-dv-key { display: flex; flex-wrap: wrap; gap: .5rem 1.5rem; padding: 0; list-style: none; margin-block-start: 1rem; }
.olga-data-visual .olga-dv-key li::before { content: ''; display: inline-block; inline-size: .65rem; block-size: .65rem; background: var(--dv-colour); margin-inline-end: .4rem; }
.olga-data-visual .olga-dv-waffles { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 2rem; margin-block: 1.3rem; }
.olga-data-visual .olga-dv-waffles p { font-size: .875rem; color: var(--dv-muted); margin-block: .4rem .8rem; }
.olga-data-visual .olga-dv-waffle { display: grid; grid-template-columns: repeat(10,1fr); gap: 4px; max-inline-size: 320px; }
.olga-data-visual .olga-dv-waffle i { aspect-ratio: 1; background: var(--dv-colour); }
.olga-data-visual .olga-dv-waffle .olga-dv-empty { background: var(--dv-rule); }
.olga-data-visual .olga-dv-document { margin-block: 1.3rem; border: 1px solid var(--dv-rule); padding: 1.3rem; }
.olga-data-visual .olga-dv-document dl { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 1.4rem; }
.olga-data-visual .olga-dv-document dl > div { border-block-start: 3px solid var(--dv-colour); padding-block-start: .8rem; }
.olga-data-visual .olga-dv-document dt button { padding: .3rem 0; border: 0; text-transform: uppercase; letter-spacing: .06em; font-size: .75rem; inline-size: 100%; }
.olga-data-visual .olga-dv-document button[aria-pressed="true"] { background: color-mix(in srgb,var(--dv-colour) 13%,var(--dv-paper)); color: var(--dv-ink); }
.olga-data-visual .olga-dv-document dd strong { display: block; font-size: 1.2rem; font-weight: 500; overflow-wrap: anywhere; margin-block: .4rem .7rem; }
.olga-data-visual .olga-dv-document dd span { display: block; font-size: .875rem; color: var(--dv-muted); }
.olga-data-visual .olga-dv-decision { padding: 1.4rem 0; border-block-end: 1px solid var(--dv-rule); }
.olga-data-visual .olga-dv-decision h4 { font: 400 1.35rem/1.4 var(--wp--preset--font-family--body, Alice, Georgia, serif); max-inline-size: 45ch; }
.olga-data-visual .olga-dv-decision p { margin-block: .8rem; max-inline-size: 62ch; }
.olga-data-visual .olga-dv-choices { display: flex; flex-wrap: wrap; gap: .6rem; margin-block: 1.25rem .75rem; }
.olga-data-visual .olga-dv-choices button { border-block-start: 3px solid var(--dv-colour); background: color-mix(in srgb,var(--dv-colour) 9%,var(--dv-paper)); }
.olga-data-visual .olga-dv-decision-tree dt { font-weight: 500; margin-block-start: 1rem; }
.olga-data-visual .olga-dv-decision-tree dd { color: var(--dv-muted); }
.olga-data-visual .olga-dv-matrix { overflow-x: auto; }
.olga-data-visual .olga-dv-matrix thead th { border-block-start: 3px solid var(--dv-jade); background: color-mix(in srgb,var(--dv-jade) 7%,var(--dv-paper)); }
@container (width < 620px) {
	.olga-data-visual .olga-dv-flow { grid-template-columns: 1fr; gap: 2rem; }
	.olga-data-visual .olga-dv-lane-label { min-block-size: auto; margin-block-end: .6rem; }
	.olga-data-visual .olga-dv-lane ul { display: grid; grid-template-columns: repeat(auto-fit,minmax(min(100%,180px),1fr)); gap: .75rem; }
	.olga-data-visual .olga-dv-lane[data-branches="2"] ul { grid-template-columns: repeat(2,minmax(0,1fr)); }
	.olga-data-visual .olga-dv-lane[data-branches="3"] ul { grid-template-columns: repeat(3,minmax(0,1fr)); }
	.olga-data-visual[data-enhanced] .olga-dv-lane:not([data-branches="1"]) .olga-dv-node span { display: none; }
	.olga-data-visual .olga-dv-lane:not([data-branches="1"]) .olga-dv-node { padding-inline: .45rem; }
	.olga-data-visual .olga-dv-lane:not([data-branches="1"]) .olga-dv-node strong { font-size: .875rem; overflow-wrap: anywhere; }
	.olga-data-visual .olga-dv-node { min-block-size: 88px; }
	.olga-data-visual .olga-dv-document dl { grid-template-columns: 1fr; gap: 1rem; }
	.olga-data-visual .olga-dv-document dd span { max-inline-size: 50ch; }
	.olga-data-visual .olga-dv-range { grid-template-columns: 1fr 3ch; }
	.olga-data-visual .olga-dv-range input { grid-column: 1; grid-row: 2; }
	.olga-data-visual .olga-dv-range output { grid-column: 2; grid-row: 2; }
	.olga-data-visual .olga-dv-aircraft-pair { gap: .9rem; }
	.olga-data-visual .olga-dv-fuselage { padding-inline: 6px; }
	.olga-data-visual .olga-dv-seat-row { gap: 2px; grid-template-columns: 12px repeat(3,1fr) 5px repeat(3,1fr); }
	.olga-data-visual .olga-dv-seat-row[data-cabin="first"] { grid-template-columns: 12px repeat(2,1fr) 5px repeat(2,1fr); }
	.olga-data-visual .olga-dv-aircraft h4 { font-size: 1rem; }
	.olga-data-visual .olga-dv-waffles { gap: 1rem; }
	.olga-data-visual .olga-dv-waffle { gap: 2px; }
}
@media (prefers-reduced-motion: reduce) { .olga-data-visual * { transition: none !important; } }
@media print {
	.olga-data-visual { break-inside: avoid; container-type: normal; }
	.olga-data-visual :is(.olga-dv-views,.olga-dv-range,.olga-dv-scenario-controls,.olga-dv-reset,.olga-dv-choices) { display: none !important; }
	.olga-data-visual details::details-content { display: block; }
	.olga-data-visual .olga-dv-chart { overflow: visible; }
}
