html, body { overflow-x: hidden; }
.sov-page {
    --paper: #f4f0e7;
    --paper-raised: #f8f4ec;
    --ink: #0c2835;
    --body: #263f48;
    --muted: #5c6d70;
    --gold: #946f43;
    --rule: rgba(12, 40, 53, .19);
    --rule-strong: rgba(12, 40, 53, .55);
    width: min(calc(100% - 32px), 1380px);
    margin: 0 auto;
    border-inline: 1px solid rgba(12, 40, 53, .08);
    background: var(--paper);
    color: var(--body);
    font: 450 15px/1.55 Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    text-rendering: optimizeLegibility;
}
.sov-page::before { content: ""; position: fixed; inset: 0; z-index: -1; background: var(--paper); }
.sov-page *, .sov-page *::before, .sov-page *::after { box-sizing: border-box; }
.sov-page h1, .sov-page h2, .sov-page h3, .sov-page p, .sov-page dl, .sov-page dd, .sov-page figure { margin: 0; }
.sov-page h1, .sov-page h2, .sov-page h3 { color: var(--ink); font-family: "Newsreader", Georgia, serif; font-weight: 500; }
.sov-page a { color: inherit; }
.sov-page :focus-visible { outline: 2px solid var(--gold); outline-offset: 4px; }

.sov-masthead { padding: 0 42px; border-top: 3px solid var(--gold); border-bottom: 1px solid var(--rule-strong); }
.sov-edition { display: flex; justify-content: space-between; gap: 20px; padding: 15px 0 12px; border-bottom: 1px solid var(--rule); color: var(--muted); font-size: .66rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.sov-edition span:first-child { color: var(--gold); }
.sov-identity { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 48px; align-items: center; padding: 21px 0 19px; }
.sov-kicker { color: var(--gold); font-size: .68rem; font-weight: 800; letter-spacing: .13em; text-transform: uppercase; }
.sov-identity h1 { margin-top: 7px; font-size: clamp(3.65rem, 5.6vw, 5.35rem); line-height: .8; letter-spacing: -.06em; }
.sov-company { max-width: 620px; margin-top: 11px !important; color: var(--ink); font: 500 clamp(.96rem, 1.2vw, 1.12rem)/1.3 "Newsreader", Georgia, serif; }
.sov-quote { display: grid; grid-template-columns: repeat(2, minmax(120px, 1fr)); min-width: 330px; border-top: 1px solid var(--rule-strong); }
.sov-quote > div { padding: 11px 16px 9px 0; border-bottom: 1px solid var(--rule); }
.sov-quote > div:nth-child(even) { padding-left: 18px; border-left: 1px solid var(--rule); }
.sov-quote dt, .sov-market-facts dt, .sov-metric-grid dt { color: var(--muted); font-size: .64rem; font-weight: 750; letter-spacing: .08em; text-transform: uppercase; }
.sov-quote dd { margin-top: 4px; color: var(--ink); font: 500 1.3rem/1 "Newsreader", Georgia, serif; font-variant-numeric: tabular-nums; }
.sov-quote .sov-asof dd { font: 600 .72rem/1.3 Inter, sans-serif; }
.sov-page .is-up { color: #315f51; }
.sov-page .is-down { color: #8b443e; }
.sov-page .is-flat { color: var(--muted); }
/* Stock navigation — the Research treatment (premium_article.css .spa-page .ss-subnav): text + underline,
   no pills. Bleeds to the masthead edges as it does in Research. Colours are Research's literal values (the
   Overview palette tokens differ slightly) so the navbar renders identically. The include is shared, untouched. */
.sov-masthead .ss-subnav { gap: 0; margin: 0 -42px; padding: 0 32px; overflow-x: auto; border-top: 1px solid var(--rule); border-bottom: 0; }
.sov-masthead .ss-subnav a { flex: 0 0 auto; padding: 10px 16px 9px; border: 0; border-bottom: 2px solid transparent; border-radius: 0; background: transparent; color: #53676c; font-size: .72rem; font-weight: 700; letter-spacing: .02em; }
.sov-masthead .ss-subnav a:hover { color: #0c2835; }
.sov-masthead .ss-subnav a.is-active { border-bottom-color: #9b7447; color: #0c2835; }

.sov-publication { padding: 0 42px 62px; }
.sov-section { display: grid; grid-template-columns: 130px minmax(0, 1fr); gap: 32px; padding: 54px 0 60px; }
.sov-section.sov-valuation { padding-top: 36px; padding-bottom: 44px; }
.sov-section-label { padding-top: 4px; color: var(--gold); }
.sov-section-label span { font: 500 1rem/1 "Newsreader", Georgia, serif; }
.sov-section-label p { max-width: 10ch; margin-top: 9px !important; font-size: .61rem; font-weight: 800; letter-spacing: .15em; line-height: 1.35; text-transform: uppercase; }
.sov-section-head { display: flex; align-items: baseline; justify-content: space-between; gap: 24px; margin-bottom: 22px; padding-bottom: 11px; border-bottom: 2px solid var(--ink); }
.sov-section-head h2 { font-size: clamp(1.75rem, 2.5vw, 2.55rem); line-height: 1.05; letter-spacing: -.03em; }
.sov-section-head p { flex: 0 0 auto; color: var(--muted); font-size: .69rem; }
.sov-key-metrics .sov-section-head,
.sov-series .sov-section-head { padding-bottom: 0; border-bottom: 0; }

.sov-valuation .sov-section-body { display: grid; grid-template-columns: minmax(220px, .3fr) minmax(0, .7fr); grid-template-areas: "head chart" "facts chart"; gap: 14px 30px; align-items: start; }
.sov-valuation .sov-section-head { grid-area: head; display: block; margin: 0; padding-bottom: 11px; }
.sov-valuation .sov-section-head h2 { font-size: clamp(1.65rem, 2.05vw, 2.15rem); }
.sov-valuation .sov-section-head p { margin-top: 9px; }
.sov-market-grid, .sov-market-grid.is-chart-only { display: contents; }
.sov-market-facts { grid-area: facts; border-bottom: 1px solid var(--rule); }
.sov-market-facts > div { display: flex; align-items: baseline; justify-content: space-between; gap: 14px; padding: 11px 0; border-bottom: 1px solid var(--rule); }
.sov-market-facts > div:last-child { border-bottom: 0; }
.sov-market-facts dt small { display: block; margin-top: 4px; color: var(--gold); font-size: .54rem; font-weight: 650; letter-spacing: .04em; text-transform: none; }
.sov-market-facts dd { color: var(--ink); font: 500 1.35rem/1 "Newsreader", Georgia, serif; font-variant-numeric: tabular-nums; }
.sov-chart { grid-area: chart; min-width: 0; border-top: 1px solid var(--rule); }
.sov-chart figcaption { padding: 13px 0; color: var(--muted); font-size: .66rem; font-weight: 750; letter-spacing: .08em; text-transform: uppercase; }
.sov-chart-frame { position: relative; min-height: 170px; overflow: hidden; border-bottom: 1px solid var(--rule); background: var(--paper-raised); }
.sov-chart-status { position: absolute; inset: 0; display: grid; place-items: center; color: var(--muted); font-size: .72rem; }
.sov-chart-status.is-error { position: relative; min-height: 170px; }

.sov-metric-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(118px, 1fr)); border-block: 1px solid var(--rule-strong); }
.sov-metric-grid > div { position: relative; min-width: 0; padding: 17px 16px 18px; }
.sov-metric-grid > div + div::before { content: ""; position: absolute; inset: 14px auto 14px 0; width: 1px; background: var(--rule); }
.sov-metric-grid > div:first-child { padding-left: 0; }
.sov-metric-grid > div:last-child { padding-right: 0; }
.sov-metric-grid dd { margin-top: 17px; color: var(--ink); font: 500 clamp(1.32rem, 1.75vw, 1.75rem)/1 "Newsreader", Georgia, serif; font-variant-numeric: tabular-nums; white-space: nowrap; }

.sov-table-block + .sov-table-block { margin-top: 34px; }
.sov-table-block h3 { margin-bottom: 11px; color: var(--gold); font: 800 .66rem/1 Inter, sans-serif; letter-spacing: .14em; text-transform: uppercase; }
.sov-table-scroll { max-width: 100%; overflow-x: auto; border-top: 1px solid var(--rule-strong); }
.sov-page table { width: 100%; min-width: 720px; border-collapse: collapse; font-variant-numeric: tabular-nums; }
.sov-page th, .sov-page td { padding: 10px 12px; border-bottom: 1px solid var(--rule); text-align: right; white-space: nowrap; }
.sov-page thead th { color: var(--gold); font-size: .64rem; font-weight: 800; letter-spacing: .07em; text-transform: uppercase; }
.sov-page tbody th { color: var(--ink); font-size: .77rem; text-align: left; }
.sov-page tbody th small, .sov-peer-table tbody th small { display: block; margin-top: 2px; color: var(--muted); font-size: .58rem; font-weight: 500; }
.sov-page tbody td { color: var(--body); font-size: .76rem; font-weight: 550; }
.sov-page th:first-child, .sov-page td:first-child { position: sticky; left: 0; z-index: 1; background: var(--paper); text-align: left; }
.sov-page thead th:first-child { background: var(--paper); }
.sov-peer-table tr.is-primary th, .sov-peer-table tr.is-primary td { color: var(--ink); font-weight: 800; }
.sov-peer-table tr.is-primary th { border-left: 2px solid var(--gold); }

.sov-deeper { display: grid; grid-template-columns: 260px minmax(0, 1fr); gap: 32px; padding: 65px 0 20px; }
.sov-deeper header > p { color: var(--gold); font-size: .64rem; font-weight: 800; letter-spacing: .15em; text-transform: uppercase; }
.sov-deeper h2 { max-width: 8ch; margin-top: 12px; font-size: 2.4rem; line-height: 1; letter-spacing: -.035em; }
.sov-deeper-links { border-top: 1px solid var(--rule-strong); }
.sov-deeper-links a { display: grid; grid-template-columns: minmax(0, .7fr) minmax(0, 1fr) auto; gap: 26px; align-items: baseline; padding: 22px 0; border-bottom: 1px solid var(--rule); text-decoration: none; }
.sov-deeper-links span { color: var(--ink); font: 500 1.2rem/1.15 "Newsreader", Georgia, serif; }
.sov-deeper-links small { color: var(--muted); font-size: .74rem; line-height: 1.5; }
.sov-deeper-links b { color: var(--gold); font-size: .68rem; white-space: nowrap; }

@media (max-width: 820px) {
    .sov-identity { grid-template-columns: 1fr; gap: 28px; }
    .sov-quote { min-width: 0; }
    .sov-section { grid-template-columns: 92px minmax(0, 1fr); gap: 22px; }
    .sov-valuation .sov-section-body { display: block; }
    .sov-valuation .sov-section-head { margin-bottom: 14px; }
    .sov-market-grid { display: grid; grid-template-columns: 1fr; gap: 14px; }
    .sov-market-grid.is-chart-only { display: grid; grid-template-columns: 1fr; }
    .sov-market-facts { grid-area: auto; display: grid; grid-template-columns: repeat(auto-fit, minmax(105px, 1fr)); border-top: 1px solid var(--rule); }
    .sov-chart { grid-area: auto; }
    .sov-market-facts > div { display: block; padding: 10px 14px; border-right: 1px solid var(--rule); border-bottom: 0; }
    .sov-market-facts > div:first-child { padding-left: 0; }
    .sov-market-facts > div:last-child { border-right: 0; }
    .sov-market-facts dd { margin-top: 8px; }
    .sov-metric-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .sov-metric-grid > div { border-bottom: 1px solid var(--rule); }
    .sov-metric-grid > div:last-child,
    .sov-metric-grid > div:nth-last-child(2):nth-child(odd) { border-bottom: 0; }
    .sov-metric-grid > div:nth-child(odd) { padding-left: 0; }
    .sov-metric-grid > div:nth-child(even) { padding-right: 0; }
    .sov-metric-grid > div:nth-child(odd)::before { display: none; }
    .sov-deeper { grid-template-columns: 1fr; }
    .sov-deeper h2 { max-width: none; }
}
@media (max-width: 520px) {
    .sov-page { width: 100%; border-inline: 0; font-size: 14px; }
    .sov-masthead, .sov-publication { padding-inline: 18px; }
    .sov-masthead .ss-subnav { margin: 0 -18px; padding: 0 14px; }
    .sov-masthead .ss-subnav a { padding-right: 12px; padding-left: 12px; }
    .sov-edition span:last-child { display: none; }
    .sov-identity { gap: 20px; padding: 24px 0 20px; }
    .sov-identity h1 { font-size: 3.9rem; }
    .sov-quote { grid-template-columns: 1fr 1fr; }
    .sov-quote > div { padding: 13px 10px 12px 0; }
    .sov-quote > div:nth-child(even) { padding-left: 10px; }
    .sov-section { grid-template-columns: 1fr; gap: 18px; padding: 43px 0 48px; }
    .sov-section.sov-valuation { gap: 12px; padding: 28px 0 34px; }
    .sov-section-label { display: flex; gap: 9px; align-items: baseline; }
    .sov-section-label p { max-width: none; margin-top: 0 !important; }
    .sov-section-head { display: block; margin-bottom: 21px; }
    .sov-section-head h2 { font-size: 1.75rem; }
    .sov-section-head p { margin-top: 8px; }
    .sov-market-facts > div { padding: 9px 12px; }
    .sov-market-facts > div:first-child { padding-left: 0; }
    .sov-market-facts dd { font-size: 1.24rem; }
    .sov-metric-grid > div { min-height: 86px; padding: 14px 12px; }
    .sov-metric-grid dd { margin-top: 13px; font-size: 1.34rem; }
    .sov-table-scroll { margin-right: -18px; padding-right: 18px; }
    .sov-page table { min-width: 660px; }
    .sov-deeper { padding-top: 48px; }
    .sov-deeper h2 { font-size: 2rem; }
    .sov-deeper-links a { grid-template-columns: 1fr auto; gap: 8px 18px; }
    .sov-deeper-links small { grid-column: 1 / -1; grid-row: 2; }
    .sov-deeper-links b { grid-column: 2; grid-row: 1; font-size: 0; }
    .sov-deeper-links b::after { content: "→"; font-size: .9rem; }
}
@media (prefers-reduced-motion: reduce) {
    .sov-page *, .sov-page *::before, .sov-page *::after { scroll-behavior: auto !important; transition: none !important; animation: none !important; }
}
