/* DPL public site (T-1460) - design system, ported from the approved mockup. Light by default; dark via :root[data-theme="dark"] (see end of file).
   CLASS CATALOGUE (builders use these; do not redefine):
   Layout:   .container .section .band .band--light .stack .grid-2 .grid-3 .grid-4 .grid-logos
   Text:     .eyebrow .lead .btn .btn--outline .btn--block .text-link
   Cards:    .card .card--logo .logo-tile .testimonial-card
   Home:     .hero .split (.split--reverse)
   Service:  .service-layout .sidebar-box .resource-links .map-figure .benefits
   FAQ/Legal:.faq-list .legal-doc
   Forms:    .auth-wrap .auth-card .form-field .label .hint .field-error .alert .alert--error .alert--info .alert--warn
             .success-card .steps .phone-aside .contact-layout .contact-box .form-note .page-hero
   Errors:   .error-page
   Chrome:   .site-header .site-footer .skip-link .nav-* (owned by foundation)
   Grids: 4 -> 2 at <=1024px, -> 1 at <=640px; .grid-logos is 1 column on phones (T-1666: two-up left 12 characters a line). */
/* T-1663 -- the logged-out fonts the site had before the T-1460 redesign:
   Fraunces for h1-h3 and the numerals/badges, Public Sans for body text, labels, buttons and h4, Caveat for script accents (.pub-script). All three are self-hosted (SIL OFL, static/fonts/OFL-*.txt);
   latin and latin-ext subsets with the same unicode-range blocks Google served. Fraunces and Caveat files are the ones public.css has used since c9c773892 (shared by the legacy-skin pages).
   Public Sans: variable fonts PublicSans[wght].ttf (sha256 d75a7dc1...a830a8) and PublicSans-Italic[wght].ttf (sha256 6ce292b0...81056f) from ofl/publicsans in github.com/google/fonts at
   3218ae2acc5bce7ccd97c477965b5b4094241fb0 (licence copy static/fonts/OFL-PublicSans.txt, sha256 157a9e77...bac), cut to the two subsets and re-encoded to WOFF2 with fonttools 4.67 + brotli
   (pyftsubset --layout-features=* ; outlines, the wght 100-900 axis and OpenType features unchanged). One file covers every weight the pages use (400-800).
   The T-1509 web font for the old headings was removed in the same change (nothing used it any more). */
@font-face{font-family:"Fraunces";font-style:normal;font-weight:400 700;font-display:swap;src:url("../fonts/fraunces-latin-ext.woff2") format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:"Fraunces";font-style:normal;font-weight:400 700;font-display:swap;src:url("../fonts/fraunces-latin.woff2") format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Caveat";font-style:normal;font-weight:600;font-display:swap;src:url("../fonts/caveat-latin-ext-1.woff2") format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:"Caveat";font-style:normal;font-weight:600;font-display:swap;src:url("../fonts/caveat-latin-2.woff2") format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Public Sans";font-style:normal;font-weight:100 900;font-display:swap;src:url("../fonts/publicsans-latin-ext.woff2") format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:"Public Sans";font-style:normal;font-weight:100 900;font-display:swap;src:url("../fonts/publicsans-latin.woff2") format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Public Sans";font-style:italic;font-weight:100 900;font-display:swap;src:url("../fonts/publicsans-italic-latin-ext.woff2") format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:"Public Sans";font-style:italic;font-weight:100 900;font-display:swap;src:url("../fonts/publicsans-italic-latin.woff2") format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
/* T-1604 (SEO review 2026-10-16b, N4): metric-matched fallbacks, so the text laid out before the web fonts arrive takes the
   same room as after. Each face scales a local system font to the web font's average letter width (size-adjust) and gives it
   the web font's ascent, descent and line gap. Measured in headless Chrome 2026-10-17 (canvas font metrics and the width of a
   paragraph of site copy, Public Sans against Arial, Fraunces against Georgia, regular and bold apart). Used only while a web
   font is still loading (or where it cannot load); once it has loaded nothing about the page changes. Each face carries its
   web font's own unicode ranges, so a character the web font lacks (the nav's down arrow) falls through to the next
   system font exactly as before. */
@font-face{font-family:"Public Sans Fallback";font-weight:100 599;src:local("Arial"),local("ArialMT");size-adjust:104.99%;ascent-override:90.49%;descent-override:21.91%;line-gap-override:0%;unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF,U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Public Sans Fallback";font-weight:600 900;src:local("Arial Bold"),local("Arial-BoldMT");size-adjust:99.19%;ascent-override:95.77%;descent-override:23.19%;line-gap-override:0%;unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF,U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Fraunces Fallback";font-weight:100 599;src:local("Georgia");size-adjust:85.37%;ascent-override:114.79%;descent-override:30.46%;line-gap-override:0%;unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF,U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Fraunces Fallback";font-weight:600 900;src:local("Georgia Bold"),local("Georgia-Bold");size-adjust:79.51%;ascent-override:123.26%;descent-override:32.70%;line-gap-override:0%;unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF,U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
/* T-1664 -- the logged-out colours the site had before the T-1460 redesign:
   the main.css "Field Report" palette and the public.css skin at fb56197dc^ (--c-blue #285968, --c-orange #e87100, --c-on-orange #2b1600, --c-orange-text #8a4200, --c-blue-accent #1a6288,
   --c-card #f4f1ea, --c-surface-2 #e8e3da, --c-chrome #285968, --c-on-chrome-accent #ffbe8a, --c-focus #b85a00); the dark values are the old :root[data-theme="dark"] block.
   tests/test_public_colors_restored.py pins them. */
:root{
  --pub-c-heading:#285968; --pub-c-ink:#222222; --pub-c-muted:#555555; --pub-c-band:#285968; --pub-c-on-band:#ffffff;
  --pub-c-bg:#ffffff; --pub-c-card:#f4f1ea; --pub-c-border:#a9a29a; --pub-c-border-soft:#dedad4;
  --pub-c-accent:#e87100; --pub-c-accent-hover:#ff8a1f; --pub-c-header-bg:#e8e3da; --pub-c-focus:#b85a00;
  --pub-c-error:#ae3036; --pub-c-success:#004e1e; --pub-c-flag:#8a4200;
  --pub-c-band-light:#f4f1ea; --pub-c-footer-bg:#285968; --pub-c-footer-rule:rgba(255,255,255,.22);
  --pub-c-on-accent:#2b1600; --pub-c-on-heading:#ffffff; --pub-c-link:#1a6288; --pub-c-link-hover:#1c414c;
  --pub-c-eyebrow:#8a4200; --pub-c-on-band-accent:#ffbe8a; --pub-c-footer-text:rgba(255,255,255,.82);
  --pub-c-nav:#555555; --pub-c-nav-active:#285968; --pub-c-tint:#e6eef1;
  --pub-f-head:"Fraunces","Fraunces Fallback",Georgia,serif;
  --pub-f-body:"Public Sans","Public Sans Fallback",-apple-system,"Segoe UI",Helvetica,Arial,sans-serif;
  --pub-s-1:4px;--pub-s-2:8px;--pub-s-3:12px;--pub-s-4:16px;--pub-s-5:24px;--pub-s-6:32px;--pub-s-7:48px;--pub-s-8:64px;--pub-s-9:96px;
  --pub-radius:4px; --pub-radius-box:8px; --pub-rule:3px solid var(--pub-c-accent); --pub-measure:72ch; --pub-maxw:1600px; --pub-c-h2:#285968; --pub-gutter:16px; --pub-section-pad:48px; --pub-box-pad:16px; --pub-shadow-float:0 8px 24px rgba(0,0,0,.15);
  /* T-1680: type + control tokens. --fs-*, --radius, --btn-*, --link-* carry main.css's values (the public pages do not load main.css) */
  --fs-xs:.8rem;--fs-sm:.875rem;--fs-base:1rem;--fs-md:1.125rem;--fs-lg:1.5rem;--fs-xl:2rem;--fs-3xl:3rem;--radius:5px;
  --btn-tracking:.06em;
  --link-thickness:1px;--link-offset:.18em;
  --pub-fs-label:.8125rem;                                   /* 13px eyebrows, captions */
  --pub-fs-sm:.9375rem;                                      /* 15px meta, footer, text-links */
  --pub-fs-body:clamp(1.0625rem,.95rem + .2vw,1.125rem);     /* 17 -> 18px */
  --pub-fs-lead:clamp(1.125rem,.9rem + .6vw,1.375rem);       /* 18 -> 22px */
  --pub-fs-h4:1.0625rem;
  --pub-fs-h3:clamp(1.125rem,1.05rem + .35vw,1.3125rem);     /* 18 -> 21px */
  --pub-fs-h2:clamp(1.5rem,1.2rem + 1.1vw,2rem);             /* 24 -> 32px */
  --pub-fs-h1:clamp(2rem,1.25rem + 2.2vw,3rem);              /* 32 -> 48px */
  --pub-fs-display:clamp(1.75rem,1.25rem + 1.9vw,2.5rem);    /* 28 -> 40px closing band */
  --pub-lh-body:1.6;--pub-lh-lead:1.5;--pub-lh-h1:1.1;--pub-lh-h2:1.2;--pub-lh-h3:1.25;
  --pub-ls-head:-.02em;--pub-ls-label:.16em;--pub-measure-text:70ch;
}
/* One content width (--pub-maxw, 1600px) centred on every page; the side space steps up with the window. */
@media (min-width:640px){:root{--pub-gutter:24px;--pub-box-pad:24px}}
@media (min-width:768px){:root{--pub-section-pad:64px}}
@media (min-width:1024px){:root{--pub-gutter:32px}}
@media (min-width:1280px){:root{--pub-gutter:48px;--pub-section-pad:80px;--pub-box-pad:32px}}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{margin:0;background:var(--pub-c-bg);color:var(--pub-c-ink);font-family:var(--pub-f-body);font-size:var(--pub-fs-body);line-height:var(--pub-lh-body)}
img{max-width:100%;height:auto;display:block}
/* T-1504: a <picture> (WebP source + PNG/JPEG fallback img) must add no box of its own: with display:contents the img stays the
   direct child of its link / tile / frame, so every `.x > img`, flex-item and max-width:% rule lays out exactly as before. */
picture{display:contents}
h1,h2,h3,h4{font-family:var(--pub-f-head);font-weight:700;margin:0 0 var(--pub-s-3);color:var(--pub-c-heading)}
h4{font-family:var(--pub-f-body)}
h1{font-size:var(--pub-fs-h1);line-height:var(--pub-lh-h1);letter-spacing:var(--pub-ls-head)}
h2{font-size:var(--pub-fs-h2);line-height:var(--pub-lh-h2);letter-spacing:var(--pub-ls-head)}
h3{font-size:var(--pub-fs-h3);line-height:var(--pub-lh-h3)}
h4{font-size:var(--pub-fs-h4);line-height:1.35}
p{margin:0 0 var(--pub-s-4)}
/* T-1666: no single-word last lines. Short blocks (headings, buttons, captions) balance their lines; running text avoids an orphan. */
h1,h2,h3,h4,.eyebrow,.page-hero p,.page-hero-sub,figcaption,.btn,.sidebar-box>h2,.faq-q button>span{text-wrap:balance}
p,li,blockquote,label,.hint,.form-note{text-wrap:pretty}
a{color:var(--pub-c-link);text-decoration-thickness:var(--link-thickness);text-underline-offset:var(--link-offset)}
a:hover{color:var(--pub-c-link-hover);text-decoration-thickness:2px}
main:focus{outline:none}
:focus-visible{outline:3px solid var(--pub-c-focus);outline-offset:2px}
.band :focus-visible,.site-footer :focus-visible{outline-color:#fff}
.visually-hidden{position:absolute!important;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.skip-link{position:absolute;left:var(--pub-s-4);top:-100px;background:var(--pub-c-footer-bg);color:#fff;padding:var(--pub-s-2) var(--pub-s-4);z-index:300;border-radius:var(--pub-radius)}
.skip-link:focus{top:var(--pub-s-2)}
[hidden]{display:none!important}

/* Layout */
.container{max-width:calc(var(--pub-maxw) + 2*var(--pub-gutter));margin:0 auto;padding-left:var(--pub-gutter);padding-right:var(--pub-gutter)}
.section{padding-top:var(--pub-section-pad);padding-bottom:var(--pub-section-pad)}
.band{background:var(--pub-c-band);color:var(--pub-c-on-band);padding-top:var(--pub-section-pad);padding-bottom:var(--pub-section-pad)}
.band h1,.band h2,.band h3{color:var(--pub-c-on-band)}
.band h2{font-size:var(--pub-fs-h2)}
.band a:not(.btn){color:#fff}
.band--light{background:var(--pub-c-band-light);color:var(--pub-c-ink)}
.band--light h1,.band--light h2,.band--light h3{color:var(--pub-c-heading)}
.band--light a:not(.btn){color:var(--pub-c-link)}
.section.why,.section.testimonials{background:var(--pub-c-band-light)}
.section.why+.section.formats,.section.formats+.section{border-top:1px solid var(--pub-c-border-soft)}
.stack>*+*{margin-top:var(--pub-s-4)}
.grid-2,.grid-3,.grid-4,.grid-logos{display:grid;gap:var(--pub-s-5)}
.grid-2{grid-template-columns:repeat(2,1fr)}
.grid-3{grid-template-columns:repeat(3,1fr)}
.grid-4{grid-template-columns:repeat(4,1fr)}
.grid-logos{grid-template-columns:repeat(4,1fr);align-items:stretch}
@media (max-width:1024px){.grid-4,.grid-logos{grid-template-columns:repeat(2,1fr)}.grid-3{grid-template-columns:repeat(2,1fr)}}
@media (max-width:640px){.grid-2,.grid-3,.grid-4{grid-template-columns:1fr}.grid-logos{grid-template-columns:1fr;gap:var(--pub-s-5)}}

/* Text and buttons */
.eyebrow{font:700 var(--pub-fs-label)/1.3 var(--pub-f-body);text-transform:uppercase;letter-spacing:var(--pub-ls-label);color:var(--pub-c-eyebrow);margin:0 0 var(--pub-s-3)}
.band .eyebrow{color:var(--pub-c-on-band-accent)}
.lead{font-size:var(--pub-fs-lead);line-height:var(--pub-lh-lead);max-width:var(--pub-measure)}
.btn{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:0 var(--pub-s-5);background:var(--pub-c-accent);color:var(--pub-c-on-accent);border:2px solid var(--pub-c-accent);border-radius:var(--pub-radius);font:600 .95rem/1 var(--pub-f-body);text-transform:uppercase;letter-spacing:.03em;text-decoration:none;cursor:pointer;transition:background .12s}
.btn:hover{background:var(--pub-c-accent-hover);border-color:var(--pub-c-accent-hover);color:var(--pub-c-on-accent)}
.band .btn,.band--light .btn{color:var(--pub-c-on-accent)}
.btn--outline{background:transparent;color:var(--pub-c-heading);border-color:var(--pub-c-border)}
.btn--outline:hover{background:var(--pub-c-tint);color:var(--pub-c-heading);border-color:var(--pub-c-heading)}
.band .btn--outline{color:#fff;border-color:#fff}
.band .btn--outline:hover{background:var(--pub-c-card);color:var(--pub-c-eyebrow)}
.btn--block{display:flex;width:100%}
.text-link{color:var(--pub-c-link);font:700 var(--pub-fs-sm)/1.2 var(--pub-f-body);text-transform:uppercase;letter-spacing:var(--btn-tracking);text-decoration:underline;text-decoration-thickness:var(--link-thickness);text-underline-offset:.3em}

/* Cards */
.card{background:var(--pub-c-card);border:1px solid var(--pub-c-border-soft);border-top:var(--pub-rule);border-radius:var(--pub-radius-box);padding:var(--pub-box-pad)}
.band .card{border:0;border-top:var(--pub-rule);box-shadow:none;color:var(--pub-c-ink)}
.band .card h3{color:var(--pub-c-heading)}
.band .card a{color:var(--pub-c-heading)}
.card--logo{text-align:center}
:root{--pub-c-site-rba:#375866; --pub-c-site-greence:#004f22; --pub-c-site-cea:#ad1c1c; --pub-c-site-infospec:#eb7219}
:root[data-theme="dark"]{--pub-c-site-rba:#3E8AA1; --pub-c-site-greence:#18DA6C; --pub-c-site-cea:#CF1717; --pub-c-site-infospec:#FE9853}
/* T-1683: each parent-site card takes its own site colour for the top accent (same values as the --c-site-* tokens in main.css, light and dark; that stylesheet is not loaded on this page) */
.card--site-rba,.band .card--site-rba{border-top-color:var(--pub-c-site-rba)}
.card--site-greence,.band .card--site-greence{border-top-color:var(--pub-c-site-greence)}
.card--site-cea,.band .card--site-cea{border-top-color:var(--pub-c-site-cea)}
.card--site-infospec,.band .card--site-infospec{border-top-color:var(--pub-c-site-infospec)}
.card--logo img{height:48px;width:auto;max-width:100%;object-fit:contain;margin:0 auto var(--pub-s-4)}
.logo-tile{display:flex;align-items:center;justify-content:center;background:#fff;color:#111;border:1px solid var(--pub-c-border-soft);border-radius:var(--pub-radius);padding:var(--pub-s-5);height:100%}
.band .logo-tile{border:0}
.logo-tile img{max-height:72px;width:auto;max-width:100%}
.testimonial-card{margin:0;background:var(--pub-c-card);color:var(--pub-c-ink);border-radius:var(--pub-radius-box);padding:var(--pub-box-pad);display:flex;flex-direction:column;gap:var(--pub-s-4)}
.testimonial-card blockquote{margin:0;font-size:var(--pub-fs-body);line-height:var(--pub-lh-body)}
.testimonial-card figcaption{font:700 var(--pub-fs-label)/1.4 var(--pub-f-body);text-transform:uppercase;letter-spacing:.08em;color:var(--pub-c-muted);margin-top:auto}

/* Home */
.hero{text-align:center;padding:var(--pub-s-8) 0}
.hero .container>*{margin-left:auto;margin-right:auto}
.hero .lead{max-width:36.3266em}   /* T-1604 N4: the 60ch it had, measured in Public Sans (60 x 0.60544em), so the width does not change when the font arrives */
.hero .btn{margin-top:var(--pub-s-3)}
.split{display:grid;grid-template-columns:1fr 1fr;gap:var(--pub-s-7);align-items:center}
.split--reverse>:first-child{order:2}
@media (max-width:800px){.split{grid-template-columns:1fr;gap:var(--pub-s-5)}.split--reverse>:first-child{order:0}}

/* Service pages */
.service-layout{display:grid;grid-template-columns:7fr 5fr;gap:var(--pub-s-8);align-items:start}
@media (max-width:900px){.service-layout{grid-template-columns:1fr;gap:var(--pub-s-6)}}
.sidebar-box{border:1px solid var(--pub-c-border-soft);border-top:var(--pub-rule);border-radius:var(--pub-radius-box);background:var(--pub-c-card)}
.sidebar-box+.sidebar-box{margin-top:var(--pub-s-5)}
.sidebar-box>h2,.sidebar-box>h3,.sidebar-box__heading{margin:0;padding:var(--pub-s-3) var(--pub-s-4);border-bottom:1px solid var(--pub-c-border);font:700 var(--pub-fs-h3)/1.25 var(--pub-f-head);color:var(--pub-c-heading)}
.sidebar-box>h2,.service-side .sidebar-box>h2{padding:var(--pub-box-pad) var(--pub-box-pad) var(--pub-s-4)}
.sidebar-box>h2:last-child{padding-bottom:var(--pub-box-pad)}
.sidebar-box__body{padding:var(--pub-box-pad)}
.resource-links{list-style:none;margin:0;padding:var(--pub-s-4)}
.resource-links li+li{margin-top:var(--pub-s-3)}
.map-figure{margin:0}
.map-figure img{width:100%;border:1px solid var(--pub-c-border-soft)}
.map-figure figcaption{margin-top:var(--pub-s-2);font-size:.9375rem}
.benefits{list-style:none;margin:0 0 var(--pub-s-4);padding:0;max-width:var(--pub-measure)}
.benefits li{padding:var(--pub-s-2) 0 var(--pub-s-2) var(--pub-s-5);position:relative}
.benefits li::before{content:"";position:absolute;left:0;top:1.1em;width:8px;height:8px;background:var(--pub-c-heading);border-radius:1px}
.benefits strong{font-weight:700}

/* FAQ / Legal */
.faq-list{max-width:var(--pub-measure)}
.faq-list h2{margin-top:var(--pub-s-6)}
.faq-list h2:first-child{margin-top:0}
.legal-doc{max-width:var(--pub-measure);counter-reset:legal;line-height:1.5}
.legal-doc h2{counter-increment:legal;margin-top:var(--pub-s-6)}
.legal-doc h2::before{content:counter(legal) ". "}

/* Forms and auth */
.auth-wrap{max-width:calc(480px + 2*var(--pub-gutter));margin:0 auto;padding:var(--pub-s-7) var(--pub-gutter)}
.auth-card,.contact-box{background:var(--pub-c-card);border:1px solid var(--pub-c-border-soft);border-top:var(--pub-rule);border-radius:var(--pub-radius-box);padding:var(--pub-box-pad)}
.auth-card h1{font-size:2rem}
.form-field{margin-bottom:var(--pub-s-5)}
.label,.form-field label{display:block;font:600 1rem/1.3 var(--pub-f-body);margin-bottom:var(--pub-s-1);color:var(--pub-c-ink)}
.label .req,.form-field .req{color:var(--pub-c-error)}
.form-field input[type=text],.form-field input[type=email],.form-field input[type=password],.form-field input[type=tel],.form-field input[type=url],.form-field input[type=search],.form-field select{display:block;width:100%;height:48px;padding:0 var(--pub-s-3);border:1px solid var(--pub-c-border);border-radius:var(--pub-radius);font:400 1rem var(--pub-f-body);color:var(--pub-c-ink);background:var(--pub-c-card)}
.form-field textarea{display:block;width:100%;min-height:140px;padding:var(--pub-s-3);border:1px solid var(--pub-c-border);border-radius:var(--pub-radius);font:400 1rem/1.5 var(--pub-f-body);color:var(--pub-c-ink);background:var(--pub-c-card);resize:vertical}
.form-field [aria-invalid="true"]{border-color:var(--pub-c-error)}
.hint{font-size:.875rem;color:var(--pub-c-muted);margin:var(--pub-s-1) 0 0}
.field-error{font-size:.9375rem;color:var(--pub-c-error);margin:var(--pub-s-1) 0 0}
.field-error:empty{display:none}
.alert{border:1px solid var(--pub-c-border);border-left-width:4px;border-radius:var(--pub-radius);padding:var(--pub-s-3) var(--pub-s-4);margin-bottom:var(--pub-s-5);background:var(--pub-c-card)}
.alert:empty{display:none}
.alert--error{border-color:var(--pub-c-error);color:var(--pub-c-error)}
.alert--info{border-color:var(--pub-c-link);color:var(--pub-c-ink)}
.alert--warn{border-color:var(--pub-c-flag);color:var(--pub-c-ink)}
.success-card{background:var(--pub-c-card);border:1px solid var(--pub-c-border-soft);border-top:var(--pub-rule);border-radius:var(--pub-radius-box);padding:var(--pub-box-pad);text-align:center}
.success-card__icon{display:inline-flex;width:56px;height:56px;border-radius:50%;background:var(--pub-c-success);color:#fff;align-items:center;justify-content:center;font-size:1.75rem;margin-bottom:var(--pub-s-3)}
.steps{list-style:none;counter-reset:step;margin:0 0 var(--pub-s-5);padding:0}
.steps li{counter-increment:step;position:relative;padding-left:56px;margin-bottom:var(--pub-s-5);min-height:40px}
.steps li::before{content:counter(step);position:absolute;left:0;top:0;width:40px;height:40px;border-radius:50%;background:var(--pub-c-heading);color:var(--pub-c-on-heading);font:700 1.125rem/40px var(--pub-f-head);text-align:center}
.steps h3{margin:0 0 var(--pub-s-1);font-size:1.125rem}
.steps p{margin:0}
.phone-aside{border-top:1px solid var(--pub-c-border-soft);padding-top:var(--pub-s-4)}
.phone-aside p{margin:0 0 var(--pub-s-1)}
.contact-layout{display:grid;grid-template-columns:1fr 1fr;gap:var(--pub-s-8);align-items:start}
@media (max-width:900px){.contact-layout{grid-template-columns:1fr;gap:var(--pub-s-6)}}
.form-note{font-size:.875rem;color:var(--pub-c-muted);text-align:center;margin:var(--pub-s-3) 0 0}
.page-hero{background:var(--pub-c-band-light);border-bottom:1px solid var(--pub-c-border-soft);padding:var(--pub-s-7) 0}
.page-hero p:last-child{margin-bottom:0;max-width:var(--pub-measure)}

/* Errors */
.error-page{text-align:center;padding:var(--pub-s-9) var(--pub-gutter)}
.error-page__code{font:700 clamp(5rem,15vw,9rem)/1 var(--pub-f-head);color:var(--pub-c-heading);margin:0 0 var(--pub-s-4)}

/* Mock review flags - ONLY for File/Link/Logo/Image/Copy pending */

/* Chrome: header */
.site-header{position:sticky;top:0;z-index:200;background:var(--pub-c-header-bg);border-bottom:2px solid var(--pub-c-ink)}
.site-header__bar{display:flex;align-items:center;justify-content:space-between;gap:var(--pub-s-5);height:64px;max-width:calc(var(--pub-maxw) + 2*var(--pub-gutter));margin:0 auto;padding:0 var(--pub-gutter)}
.site-logo{display:block;flex:none}
.site-logo img{height:44px;width:auto}
.nav-primary{display:none}
.nav-actions{display:none}
#menuBtn{display:inline-flex;flex-direction:column;justify-content:center;align-items:center;gap:5px;width:48px;height:48px;background:none;border:0;cursor:pointer;margin-right:-8px}
#menuBtn span{display:block;width:24px;height:2px;background:var(--pub-c-ink)}
@media (min-width:1080px){
  .site-header__bar{height:80px}
  .site-logo img{height:60px}
  .nav-primary{display:flex;align-items:center;gap:var(--pub-s-2);flex:1;margin-left:var(--pub-s-5)}
  .nav-actions{display:flex;align-items:center;gap:var(--pub-s-4)}
  #menuBtn,#mobileNav{display:none!important}
}
.nav-link,.nav-trigger{display:inline-flex;align-items:center;gap:6px;padding:0 var(--pub-s-3);min-height:48px;background:none;border:0;font:600 1rem/1.2 var(--pub-f-body);color:var(--pub-c-nav);text-decoration:none;cursor:pointer}
.nav-link:hover,.nav-trigger:hover{text-decoration:underline;text-underline-offset:5px}
.nav-link.active{text-decoration:underline;text-decoration-thickness:3px;text-underline-offset:8px}
.nav-link:hover,.nav-trigger:hover,.nav-link.active,.nav-trigger[aria-expanded="true"]{color:var(--pub-c-nav-active)}
.nav-chevron{font-size:.7rem}
.nav-trigger[aria-expanded="true"] .nav-chevron{transform:rotate(180deg)}
.nav-dropdown{position:relative}
.nav-dropdown__panel{position:absolute;top:calc(100% + 8px);left:0;min-width:300px;background:var(--pub-c-card);border:1px solid var(--pub-c-border);border-radius:var(--pub-radius-box);padding:var(--pub-s-2) 0;box-shadow:var(--pub-shadow-float);z-index:210}
.nav-dropdown__panel a{display:block;padding:var(--pub-s-2) var(--pub-s-4);color:var(--pub-c-ink);text-decoration:none;font-weight:500}
.nav-dropdown__panel a:hover,.nav-dropdown__panel a.active{background:var(--pub-c-band-light);text-decoration:underline}
.nav-actions .btn{min-height:44px;padding:0 var(--pub-s-4)}
.nav-actions .nav-link{padding:0 var(--pub-s-2)}
.mobile-nav{position:fixed;top:66px;left:0;right:0;bottom:0;background:var(--pub-c-card);overflow-y:auto;padding:var(--pub-s-4) var(--pub-gutter) var(--pub-s-7);z-index:190}
.mobile-nav[aria-hidden="true"]{display:none}
.mobile-nav a:not(.btn),.mobile-nav button.acc-btn{display:flex;align-items:center;justify-content:space-between;width:100%;min-height:48px;padding:0 var(--pub-s-2);background:none;border:0;border-bottom:1px solid var(--pub-c-border-soft);font:600 var(--pub-fs-body) var(--pub-f-body);color:var(--pub-c-heading);text-decoration:none;text-align:left;cursor:pointer}
.mobile-nav .acc-panel a{font-weight:500;padding-left:var(--pub-s-5)}
.mobile-nav .btn{margin-top:var(--pub-s-4);width:100%}
body.nav-locked{overflow:hidden}

/* Chrome: footer */
.site-footer{background:var(--pub-c-footer-bg);color:#fff;padding:var(--pub-s-7) 0 72px}
.site-footer a{color:var(--pub-c-footer-text)}
.site-footer a:hover{color:var(--pub-c-on-band-accent)}
.site-footer__legal{font-size:var(--pub-fs-sm)}
.site-footer__legal p{margin:0;text-wrap:balance}
.site-footer p{color:inherit}

/* ---- from mockup pages-b1.css ---- */
/* B1 page styles (T-1460): home, about, faq, contact, terms, support, 404, 403. Loads after site.css. Light mode only. */
.hero .lead{margin-bottom:var(--pub-s-4)}
.cta-actions{display:flex;flex-wrap:wrap;gap:var(--pub-s-5);justify-content:center;margin-top:var(--pub-s-5)}
.cta-band{text-align:center}
.cta-band h2{margin-left:auto;margin-right:auto}
.grid-logos .card--logo{display:flex;flex-direction:column}
.grid-logos .card--logo p{text-align:left;margin-bottom:0}
.grid-logos .card--logo a{display:block}
.photo{width:100%;border-radius:var(--pub-radius-box);height:auto}
.card--format{display:flex;flex-direction:column}
.card--format .text-link{margin-top:auto;padding-top:var(--pub-s-3);color:var(--pub-c-ink)}
.card--format p{margin-bottom:var(--pub-s-3)}
.issuer-grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--pub-c-border-soft);border-left:1px solid var(--pub-c-border-soft);border-radius:var(--pub-radius-box);overflow:hidden}
.issuer-grid li{border-right:1px solid var(--pub-c-border-soft);border-bottom:1px solid var(--pub-c-border-soft);min-height:160px;display:flex}
.issuer-grid .issuer--wide{grid-column:span 2;min-height:200px}
.issuer-grid .logo-tile{border:0;border-radius:0;width:100%}
.issuer-grid img{max-height:110px;max-width:80%;width:auto}
.issuer-grid .issuer--wide img{max-height:130px}
.issuer-text{text-align:center;padding:var(--pub-s-3) var(--pub-s-2)}
.issuer-text strong{display:block;font:700 2rem/1.1 var(--pub-f-head);color:var(--pub-c-ink)}
.issuer-text span{display:block;margin-top:var(--pub-s-1);font-size:.9375rem;color:var(--pub-c-muted)}
@media (max-width:640px){
  .issuer-grid{grid-template-columns:repeat(2,1fr)}
  .issuer-grid li{min-height:130px}
  .issuer-grid .logo-tile{padding:var(--pub-s-3)}
}
.testimonials .testimonial-card{border:1px solid var(--pub-c-border-soft);border-top:var(--pub-rule);background:var(--pub-c-bg);gap:0}
.testimonials .testimonial-card blockquote::before{content:"\201C"}
.testimonials .testimonial-card blockquote::after{content:"\201D"}
.testimonials .testimonial-card figcaption{font-style:normal}
/* A partial last row of cards sits centered. The 3-up grid is drawn on 6 tracks (every card spans 2), so a lone last card
   or a last pair can start mid-grid; the tablet 2-up grid does the same on 4 tracks. Phones are 1-up, nothing to center. */
@media (min-width:1025px){.testimonials .grid-3{grid-template-columns:repeat(6,1fr)}.testimonials .grid-3>.testimonial-card{grid-column:span 2}.testimonials .grid-3>.testimonial-card:last-child:nth-child(3n+1){grid-column:3/span 2}.testimonials .grid-3>.testimonial-card:nth-last-child(2):nth-child(3n+1){grid-column:2/span 2}.testimonials .grid-3>.testimonial-card:last-child:nth-child(3n+2){grid-column:4/span 2}}
@media (min-width:641px) and (max-width:1024px){.testimonials .grid-3{grid-template-columns:repeat(4,1fr)}.testimonials .grid-3>.testimonial-card{grid-column:span 2}.testimonials .grid-3>.testimonial-card:last-child:nth-child(odd){grid-column:2/span 2}}
.eyebrow--ink{color:var(--pub-c-ink)}
.about-layout{margin-top:var(--pub-s-6)}
.page-hero--center{text-align:center}
.page-hero--center p:last-child{margin-left:auto;margin-right:auto}
.legal-doc h2::before{content:none}
.legal-doc,.support-doc{margin:0 auto}
.support-doc{max-width:var(--pub-measure)}
.support-doc h2{margin-top:var(--pub-s-6)}
.support-doc h2:first-child{margin-top:0}
.legal-doc h2:first-child,.legal-doc p:first-child{margin-top:0}
.support-cta{margin-top:var(--pub-s-6)}
.contact-box h2{margin-top:0;font-size:1.25rem}
.success-card .btn{margin-top:var(--pub-s-3)}

/* ---- from mockup pages-b2.css ---- */
/* Builder B2: service pages. Extends site.css; no shared rules changed. */
.service-body{max-width:var(--pub-measure)}
.service-body p{margin:0 0 var(--pub-s-4)}
.service-body h2{font:700 1rem/1.35 var(--pub-f-body);text-transform:uppercase;letter-spacing:.06em;color:var(--pub-c-eyebrow);margin:var(--pub-s-6) 0 var(--pub-s-3)}
.service-body h2+p{margin-top:0}
.service-body .benefits{margin-bottom:var(--pub-s-6)}
.service-cta{margin:var(--pub-s-6) 0 0}
.logo-tiles{display:flex;flex-direction:column;align-items:flex-start;gap:var(--pub-s-4)}
.logo-tiles .logo-tile{width:240px;max-width:100%;height:96px;padding:var(--pub-s-3) var(--pub-s-4)}
.logo-tiles .logo-tile img{max-height:60px;max-width:100%}
.logo-tiles .logo-tile:hover{border-color:var(--pub-c-heading)}
/* T-1710: the home page's family-site logo links take the service pages' logo tile (same white tile, border, radius, padding, image size and hover border as .logo-tiles .logo-tile); style only, the links and the card grid are unchanged */
.grid-logos .card--logo>a{display:flex;align-items:center;justify-content:center;width:100%;height:96px;background:#fff;color:#111;border:1px solid var(--pub-c-border-soft);border-radius:var(--pub-radius);padding:var(--pub-s-3) var(--pub-s-4);margin-bottom:var(--pub-s-4)}
.grid-logos .card--logo>a:hover{border-color:var(--pub-c-heading)}
.band .grid-logos .card--logo>a:focus-visible{outline-color:var(--pub-c-heading)}
.grid-logos .card--logo>a img,:root[data-theme="dark"] .grid-logos .card--logo>a img{height:auto;width:auto;max-height:60px;max-width:100%;margin:0;background:none;padding:0;border-radius:0}
@media (min-width:1080px){.grid-logos .card--logo>a{margin-bottom:var(--pub-s-5)}}
.resource-links{padding:0 var(--pub-box-pad) var(--pub-box-pad)}
.resource-links li+li{margin-top:var(--pub-s-2)}
.resource-links a{font-weight:600;text-decoration:underline;text-decoration-thickness:var(--link-thickness);text-underline-offset:.2em;color:var(--pub-c-link)}
.image-slot{display:block;aspect-ratio:16/9;margin:var(--pub-s-5) var(--pub-box-pad)}
.sidebar-box__link{margin:0;padding:var(--pub-s-4) var(--pub-box-pad) var(--pub-box-pad)}
.sidebar-box>.image-slot+h2{border-top:1px solid var(--pub-c-border)}
.service-body,.service-side{min-width:0}
@media (min-width:641px) and (max-width:900px){.service-body,.service-side{max-width:34rem}}
.service-body p{overflow-wrap:break-word}
main{overflow-x:clip}

/* ---- from mockup pages-b3.css ---- */
/* B3: sign-in, account and access-request pages (T-1460). Loads after css/site.css. */
.auth-wrap{padding-top:var(--pub-s-8);padding-bottom:var(--pub-s-8)}
.auth-card h2.auth-heading{font-size:2rem}
.auth-intro,.auth-note{color:var(--pub-c-muted);font-size:.9375rem;line-height:1.6;margin:0 0 var(--pub-s-4)}
.auth-card .alert{margin-bottom:var(--pub-s-4)}
.alert--success{border-color:var(--pub-c-success);color:var(--pub-c-ink)}
.auth-footer{margin:var(--pub-s-2) 0 0;font-size:.9375rem;text-align:center}
.auth-footer a{display:inline-flex;align-items:center;min-height:44px}
.auth-actions{display:flex;flex-direction:column;gap:var(--pub-s-3);margin-top:var(--pub-s-4)}
.auth-gap{margin-top:var(--pub-s-4)}
.label-note{font-weight:400;font-size:.875rem;color:var(--pub-c-muted)}
.form-field .hint{margin-top:var(--pub-s-1)}
.caps-warn{display:none;font-size:.875rem;font-weight:600;color:var(--pub-c-flag);margin:var(--pub-s-1) 0 0}
.code-input{letter-spacing:.35em;font-size:1.25rem!important;text-align:center}
.auth-card details{margin:0 0 var(--pub-s-4)}
.auth-card summary{cursor:pointer;font-size:.9375rem;color:var(--pub-c-heading);margin-bottom:var(--pub-s-2)}
.auth-card .btn,.contact-box .btn{width:100%;min-height:48px;font-size:1rem;font-weight:600}
.success-card .btn{width:auto}
.success-card__actions{display:flex;flex-wrap:wrap;gap:var(--pub-s-3);justify-content:center;margin-top:var(--pub-s-4)}
.success-card p{margin-bottom:var(--pub-s-3)}
.success-card .hint{margin-top:var(--pub-s-3)}
/* A visible alternate card (invalid/expired/sent link) replaces the form card */
.auth-wrap:has(> .auth-card[data-state]:not([hidden])) > .auth-card:not([data-state]){display:none}
/* Invite role variants replace the default (presenter) heading + intro */
.auth-card:has([data-role-variant]:not([hidden])) [data-role-default]{display:none}
.auth-card:has([data-state="expiring"]:not([hidden])) [data-expiry-note]{display:none}
/* Success blocks replace their form */
.auth-card:has(> [data-state="sent"]:not([hidden])) > form{display:none}
.contact-layout:has(#req-account-success:not([hidden])) form.contact-box{display:none}
form.contact-box h2{font-size:1.5rem}
.contact-layout .steps h3{color:var(--pub-c-heading)}
.auth-card:has(> [data-state="sent"]:not([hidden])) > .auth-heading,.auth-card:has(> [data-state="sent"]:not([hidden])) > .auth-note{display:none}
.nowrap{white-space:nowrap}
form.contact-box>.hint{margin-bottom:var(--pub-s-4)}
.contact-box>.hint{margin-bottom:var(--pub-s-5)}
.form-field input::placeholder,.form-field textarea::placeholder{color:var(--pub-c-muted);opacity:1}
@media (max-width:640px){.auth-card h1{font-size:1.75rem}}
.nav-actions .btn.active{background:var(--pub-c-heading);color:var(--pub-c-on-heading);border-color:var(--pub-c-heading)}


/* ===== Public-site additions (foundation lane) ===== */
.nav-actions .btn.active{color:var(--pub-c-on-heading)}
.issuer-grid .logo-tile .issuer-text strong{color:#111}
.issuer-grid .logo-tile .issuer-text span{color:#4a4a4a}
/* Theme control (copied from main.css so the public chrome does not need it) */
.theme-toggle{position:fixed;right:16px;bottom:16px;z-index:60;display:flex;gap:4px;padding:4px;background:var(--pub-c-card);border:1px solid var(--pub-c-border);border-radius:999px;box-shadow:0 4px 16px rgba(0,0,0,.16)}
.theme-toggle button{display:inline-flex;align-items:center;justify-content:center;width:2rem;height:2rem;padding:0;border:0;cursor:pointer;border-radius:999px;background:transparent;color:var(--pub-c-muted)}
.theme-toggle button svg{display:block;width:18px;height:18px;pointer-events:none}
.theme-toggle button:hover{color:var(--pub-c-ink)}
@media (max-width:1079px),(pointer:coarse){.theme-toggle button{width:44px;height:44px}}
.theme-toggle button[aria-pressed="true"]{background:var(--pub-c-heading);color:var(--pub-c-on-heading)}
@media print{.theme-toggle{display:none}}
:root[data-theme="light"]{color-scheme:light}
/* T-1645: the "Viewing as ..." banner (app/templates/_masq_bar.html).
   Its rules live in main.css, which the portal, /my and prospect layouts load and this layout does not (only a page with
   legacy_skin loads it), so on a public page, the 403 and 404 pages included, the line and its button had no styles at all.
   Same look as main.css .masq-bar / .masq-btn, in both themes; the three tokens carry main.css's --c-orange-deep, --c-card and
   --c-tint-orange (tests/test_t1645_masquerade_banner_public_layout.py holds them equal). */
:root{--pub-c-masq-deep:#b85a00;--pub-c-masq-card:#f4f1ea;--pub-c-masq-tint:#fdf0e3}
:root[data-theme="dark"]{--pub-c-masq-deep:#f2953c;--pub-c-masq-card:#26231f;--pub-c-masq-tint:#38291a}
.masq-bar{position:sticky;top:0;z-index:60;display:flex;align-items:center;gap:1rem;flex-wrap:wrap;justify-content:center;background:var(--pub-c-masq-deep);color:var(--pub-c-masq-card);padding:.5rem 1rem;font-size:.875rem;line-height:1.3;box-shadow:0 1px 6px rgba(0,0,0,.25)}
.masq-bar .masq-txt b{color:var(--pub-c-masq-tint)}
.masq-bar .masq-form{margin:0}
.masq-btn{background:var(--pub-c-masq-card);color:var(--pub-c-masq-deep);border:0;border-radius:4px;padding:.25rem .7rem;font:inherit;font-size:.875rem;font-weight:700;cursor:pointer}
.masq-btn:hover,.masq-btn:focus{background:var(--pub-c-masq-tint)}

/* ===== Dark mode: opt-in only (T-979: light is the default; dark needs an explicit choice) ===== */
:root[data-theme="dark"]{
  color-scheme:dark; --pub-c-h2:var(--pub-c-heading);
  --pub-c-heading:#64aec4; --pub-c-ink:#ece7e0; --pub-c-muted:#a89f95;
  --pub-c-band:#17333b; --pub-c-on-band:#ffffff;
  --pub-c-bg:#1c1a18; --pub-c-card:#26231f; --pub-c-border:#5a5249; --pub-c-border-soft:#35302b;
  --pub-c-accent:#ff7c00; --pub-c-accent-hover:#ff9433;
  --pub-c-header-bg:#2f2b27; --pub-c-focus:#f2953c; --pub-c-band-light:#26231f;
  --pub-c-error:#e3605e; --pub-c-success:#6cae78; --pub-c-flag:#ff7c00;
  --pub-c-footer-bg:#17333b;
  --pub-c-on-heading:#14120f; --pub-c-link:#5fa8cd; --pub-c-link-hover:#8bb3c0; --pub-c-eyebrow:#ff7c00;
  --pub-c-nav:#a89f95; --pub-c-nav-active:#64aec4; --pub-c-tint:#23343a;
}
:root[data-theme="dark"] .form-field input[type=text],
:root[data-theme="dark"] .form-field input[type=email],
:root[data-theme="dark"] .form-field input[type=password],
:root[data-theme="dark"] .form-field input[type=tel],
:root[data-theme="dark"] .form-field input[type=url],
:root[data-theme="dark"] .form-field input[type=search],
:root[data-theme="dark"] .form-field select,
:root[data-theme="dark"] .form-field textarea{background:var(--pub-c-card);color:var(--pub-c-ink)}
:root[data-theme="dark"] .nav-dropdown__panel a:hover,
:root[data-theme="dark"] .nav-dropdown__panel a.active{background:var(--pub-c-band-light)}
:root[data-theme="dark"] .band .btn--outline{color:#fff;border-color:#fff}
:root[data-theme="dark"] .band .btn--outline:hover{background:var(--pub-c-card);color:var(--pub-c-eyebrow)}
:root[data-theme="dark"] .map-figure img,
:root[data-theme="dark"] .photo{background:#fff}
:root[data-theme="dark"] .card--logo img{background:#fff;padding:4px 8px;border-radius:4px}


/* ===== T-1680: type, buttons, links, boxes, backgrounds and the 1600px content width all come from the tokens at the top of this file ===== */
h2{color:var(--pub-c-h2)}
.band h2{color:var(--pub-c-on-band)}
.band--light h2{color:var(--pub-c-h2)}
.band .card h3{color:var(--pub-c-heading)}
.band .card a,.card a:not(.btn),.service-body a{color:var(--pub-c-link);text-decoration:underline}
.service-body a{white-space:nowrap}
.band .card a:hover,.card a:not(.btn):hover,.service-body a:hover,.text-link:hover,.resource-links a:hover,.about-box a:hover,.card--format .text-link:hover{color:var(--pub-c-link-hover)}
.br-wide{display:none}
.btn{text-transform:none;letter-spacing:0}
@media (min-width:1080px){
  .btn{--btn-u:calc(min(100vw,1780px) / 1780);min-width:calc(252 * var(--btn-u));min-height:max(44px,calc(54 * var(--btn-u)));font:500 max(14px,calc(18 * var(--btn-u)))/1 var(--pub-f-body);border-radius:4px}
}
.btn--white{background:var(--pub-c-card);color:var(--pub-c-heading);border:2px solid var(--pub-c-border)}
.btn--white:hover{background:var(--pub-c-tint);border-color:var(--pub-c-heading);color:var(--pub-c-heading)}
.band .btn--white{background:var(--pub-c-card);color:var(--pub-c-eyebrow);border-color:var(--pub-c-card)}
.nav-actions .btn--white{min-width:0;min-height:44px;padding:0 var(--pub-s-4);font-weight:600;font-size:1rem}
.nav-actions .btn--white.active{background:var(--pub-c-tint);color:var(--pub-c-heading);border-color:var(--pub-c-heading)}
.benefits li{padding:0 0 0 var(--pub-s-5);margin-top:var(--pub-s-3)}
.benefits li:first-child{margin-top:0}
.benefits li::before{content:"\2022";top:0;width:auto;height:auto;background:none;border-radius:0;color:var(--pub-c-eyebrow)}
.bullets-inline{list-style:none;margin:0 0 var(--pub-s-4);padding:0}
.bullets-inline li{position:relative;padding-left:1em}
.bullets-inline li::before{content:"\2022";position:absolute;left:0}
.bullets-inline li+li{margin-top:var(--pub-s-2)}

/* Header and footer */
.site-header__bar{max-width:calc(var(--pub-maxw) + 2*var(--pub-gutter))}
.site-footer__row{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--pub-s-3) var(--pub-s-5);border-top:1px solid var(--pub-c-footer-rule);border-bottom:1px solid var(--pub-c-footer-rule);padding:var(--pub-s-4) 0}
.site-footer__links{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:var(--pub-s-3);margin-inline:-6px;font-size:var(--pub-fs-sm)}
.site-footer__links a{text-decoration:none}
.site-footer__links a:hover{text-decoration:underline}
@media (max-width:640px){.site-footer__links{justify-content:flex-start;gap:var(--pub-s-3)}}
@media (max-width:640px){.cta-actions{flex-direction:column;align-items:center}.cta-actions .btn{width:100%;max-width:320px}}

/* Home */
.hero .lead{color:var(--pub-c-muted)}
.grid-logos .card--logo p{font-size:1rem;line-height:1.55}
.testimonial-card figcaption{padding-top:var(--pub-s-5)}
.cta-band h2{font-size:var(--pub-fs-display);line-height:1.15;letter-spacing:var(--pub-ls-head);max-width:none}
@media (min-width:1080px){
  .hero{padding:var(--pub-s-9) 0}
  .hero .lead{margin:var(--pub-s-5) auto 0}
  .hero .btn{margin-top:var(--pub-s-6)}
  .band.family h2,.band.programs h2{margin-bottom:var(--pub-s-6)}
  .grid-logos,.grid-3,.grid-4{gap:var(--pub-s-6)}
  .card--logo img{margin-bottom:var(--pub-s-5)}
  .split{grid-template-columns:1fr 1fr;column-gap:var(--pub-s-8);align-items:start}
  .split h2{margin-bottom:var(--pub-s-4)}
  .split p{margin-bottom:var(--pub-s-5)}
  .issuer-grid li{min-height:192px}
  .issuer-grid .issuer--wide{min-height:224px}
  .cta-actions{margin-top:var(--pub-s-6)}
}
.card--format{border:0;background:transparent;margin-inline:calc(-1 * var(--pub-box-pad))}
.card--format .text-link{color:var(--pub-c-link)}
.card.card--format .text-link{align-self:flex-start}
.card--format h3{color:var(--pub-c-ink)}
.cta-band .btn{border:3px solid #fff}
.issuer-grid a.logo-tile:hover{outline:2px solid var(--pub-c-heading);outline-offset:-2px}
.issuer-grid img[class^="iss-"]{width:auto;max-width:80%;max-height:90px;height:auto}

/* Service pages */
.service-layout{margin-top:var(--pub-s-6)}
.resource-links{font-size:var(--pub-fs-body)}
.sidebar-box>h2,.service-side .sidebar-box>h2{border-bottom:0}
.sidebar-box__body:has(.map-figure){padding:0}
.map-figure img{border:0;border-top:1px solid var(--pub-c-border);border-radius:0}
.logo-tiles{padding:0 var(--pub-box-pad) var(--pub-box-pad)}

/* About */
.about-subhead{font:700 1.0625rem/1.35 var(--pub-f-body);color:var(--pub-c-ink);margin:var(--pub-s-4) 0}
.eyebrow--ink{color:var(--pub-c-ink)}
.about-box a{color:var(--pub-c-link);font-weight:600;text-decoration:underline}
@media (min-width:1080px){
  .about-layout{grid-template-columns:1fr 1fr;column-gap:var(--pub-s-8);margin-top:var(--pub-s-6)}
  .about-layout p{margin-bottom:var(--pub-s-5);line-height:var(--pub-lh-body)}
  .about-layout .about-subhead{margin-bottom:var(--pub-s-5);line-height:var(--pub-lh-body)}
  .about-box{padding:var(--pub-box-pad)}
  .about-box>h2{padding:0 0 var(--pub-s-4)!important}
  .about-box .sidebar-box__body{padding:0}
  .about-box p{margin-bottom:var(--pub-s-5)}
}

/* Spacing inside sections (desktop) */
@media (min-width:1080px){
  .band.programs .card p{margin-bottom:0}
  .section.why p{margin-bottom:var(--pub-s-5)}
  .section.why p:has(>strong){margin-bottom:var(--pub-s-3)}
  .section.why h2{margin-top:0}
  .resource-hub-page .service-body h2{margin:var(--pub-s-5) 0 0}
  .resource-hub-page .service-body p{margin-bottom:0}
  .eyebrow--ink,.about-layout .eyebrow--ink{margin-bottom:0}
  .about-layout .about-subhead{margin-top:0}
  .about-layout .btn{margin-top:var(--pub-s-5)}
  .about-box p:last-child{margin-bottom:0}
}
.faq-a{hyphens:auto}
.site-header{border-bottom:1px solid var(--pub-c-border)}
.site-footer__legal a{text-decoration:none}
body{display:flex;flex-direction:column;min-height:100vh}
body>main{flex:1 0 auto}

/* ===== T-1666 -- logged-out design review: single-page fixes. Fonts (T-1663) and colours (T-1664) are untouched. ===== */
/* Home: Programs cards start their text at the same height; format cards on touch screens use the full card width */
@media (min-width:1025px){.band.programs .card h3{min-height:2.5em}}
@media (hover:none){.card--format{padding-left:0;padding-right:0;margin-inline:0}}
/* Building Product Meetings: the "In Development" line is not shown (the markup stays: the page title and structured data read it) */
.service-top .service-status{display:none}
/* Service pages: body text, list items and download links at 16 px (phones stay at or below their current size); GET IN TOUCH at 11 px */
.svc-sm{font-size:1rem}
.svc-cta-sm .btn{font-size:.6875rem}
@media (max-width:900px){.svc-cta-sm .btn{font-size:.8125rem}}
/* /ce and the other legacy-skin pages (body.pub-body; this file is not loaded by /portal or /my): the hero keeps its side space,
   the prose block lines up with the other sections instead of sitting centred, and its text keeps a readable line */
.pub-body .page-hero{padding-left:2rem;padding-right:2rem}
@media (max-width:600px){.pub-body .page-hero{padding-left:1.25rem;padding-right:1.25rem}}
.pub-body .pub-section-inner.pub-section-inner--prose{max-width:var(--measure-page)}
.pub-body .pub-section-inner--prose>p{max-width:66ch}

/* T-1680: running text keeps a readable line at any width */
.service-body p,.service-body li,.split p,.about-layout p,.section.why p,.faq-a{max-width:var(--pub-measure-text)}

/* T-1802 (Atlas proposal 2, "Homepage edits"): the approver's sizes at 1440 px desktop. Widths are max-widths and every text size is
   capped with min()/rem so a phone never gets a bigger size than it had; nothing here is a fixed width. Home page only. */
.hero--home h1{font-size:min(var(--pub-fs-h1),2.25rem);max-width:min(100%,71.625rem)}
.hero--home .lead{font-size:min(var(--pub-fs-lead),1.125rem);max-width:min(100%,54.5625rem)}
.hero--home .btn,.bridge .btn{font-size:.8125rem}
@media (min-width:1080px){.hero--home{padding:var(--pub-s-7) 0;min-height:449px;display:grid;align-content:center}.hero--home>.container{width:100%}}
.bridge .btn{min-height:36px}
.cta-band .btn{font-size:.875rem}
body:has(.hero--home) .nav-actions .btn{font-size:.75rem}
.family .card--logo p,.programs .card p,.why .split>div>p:first-of-type,.why .bullets-inline li,.bridge .split p,.card--format p,.testimonials .testimonial-card blockquote{font-size:min(var(--pub-fs-body),1rem)}
.family .card--logo p{font-size:min(1rem,.9375rem)}
.bridge h2{font-size:min(var(--pub-fs-h2),1.75rem)}
.card--format h3{font-size:1.375rem}
.card--format .text-link{font-size:.875rem}
.testimonials figure:nth-of-type(1){font-size:.875rem}
.cta-band h2{font-size:min(var(--pub-fs-display),2.25rem)}
/* T-1798/T-1799 Resource Hub: Upcoming Summit and Upcoming Webinar boxes */
.hub-event p{margin:0}
.hub-event p+p{margin-top:var(--pub-s-2)}
.hub-event__image{display:block;aspect-ratio:16/9;margin-bottom:var(--pub-s-3);overflow:hidden;border-radius:var(--pub-radius-box)}
.hub-event__image img{display:block;width:100%;height:100%;object-fit:cover}
