/* 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 stays 2 columns on phones. */
:root{
  --pub-c-heading:#0064A2; --pub-c-ink:#111111; --pub-c-muted:#4a4a4a; --pub-c-band:#000000; --pub-c-on-band:#ffffff;
  --pub-c-bg:#ffffff; --pub-c-card:#ffffff; --pub-c-border:#9a9a9a; --pub-c-border-soft:#d9d9d9;
  --pub-c-accent:#FF8A1F; --pub-c-accent-hover:#e8770f; --pub-c-header-bg:#e8e3da; --pub-c-focus:#111;
  --pub-c-error:#b42318; --pub-c-success:#1f7a3a; --pub-c-flag:#c2410c;
  --pub-c-band-light:#f4f2ee; --pub-c-footer-bg:#000000; --pub-c-footer-rule:#444444;
  --pub-f-head:"Barlow Semi Condensed","Arial Narrow",Arial,sans-serif;
  --pub-f-body:"Helvetica Neue",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-measure:72ch; --pub-maxw:1592px; --pub-c-h2:#000000; --u:1px; --pub-gutter:16px; --pub-section-pad:40px;
}
@media (min-width:768px){:root{--pub-gutter:32px;--pub-section-pad:64px}}
*,*::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:1.0625rem;line-height:1.6}
img{max-width:100%;height:auto;display:block}
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)}
h1{font-size:clamp(2rem,1.3rem + 2.6vw,3.25rem);line-height:1.1}
h2{font-size:1.5rem;line-height:1.2}
h3{font-size:1.25rem;line-height:1.25}
p{margin:0 0 var(--pub-s-4)}
a{color:var(--pub-c-heading)}
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:clamp(1.5rem,1.2rem + 1vw,2rem)}
.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-heading)}
.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:repeat(2,1fr);gap:var(--pub-s-3)}}

/* Text and buttons */
.eyebrow{font-family:var(--pub-f-head);font-weight:700;font-size:.95rem;text-transform:uppercase;letter-spacing:.02em;color:var(--pub-c-heading);margin:0 0 var(--pub-s-2)}
.band .eyebrow{color:#fff}
.lead{font-size:1.25rem;line-height:1.5;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:#000;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:#000}
.band .btn,.band--light .btn{color:#000}
.btn--outline{background:transparent;color:var(--pub-c-ink);border-color:var(--pub-c-ink)}
.btn--outline:hover{background:var(--pub-c-footer-bg);color:#fff;border-color:#000}
.band .btn--outline{color:#fff;border-color:#fff}
.band .btn--outline:hover{background:var(--pub-c-card);color:#000}
.btn--block{display:flex;width:100%}
.text-link{color:var(--pub-c-heading);font-weight:600;text-decoration:underline;text-underline-offset:3px}

/* Cards */
.card{background:var(--pub-c-card);border:1px solid var(--pub-c-border-soft);border-radius:var(--pub-radius);padding:var(--pub-s-5)}
.band .card{border:0;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}
.card--logo img{max-height:48px;width:auto;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);padding:var(--pub-s-5);display:flex;flex-direction:column;gap:var(--pub-s-4)}
.testimonial-card blockquote{margin:0;font-size:1.0625rem}
.testimonial-card figcaption{font-size:.8125rem;text-transform:uppercase;letter-spacing:.04em;font-weight:600;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:60ch}
.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);border-radius:var(--pub-radius);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-size:1.0625rem;font-family:var(--pub-f-body);font-weight:700;color:var(--pub-c-ink)}
.sidebar-box__body{padding:var(--pub-s-4)}
.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}
.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:480px;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);border-radius:var(--pub-radius);padding:var(--pub-s-6)}
.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-heading);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);border-radius:var(--pub-radius);padding:var(--pub-s-6);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:#fff;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}

/* 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:700 1rem var(--pub-f-body);color:var(--pub-c-ink);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-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);padding:var(--pub-s-2) 0;box-shadow:0 8px 24px rgba(0,0,0,.15);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:700 1.0625rem var(--pub-f-body);color:var(--pub-c-ink);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%}
.mobile-nav .btn--outline{border-color:var(--pub-c-ink)}
body.nav-locked{overflow:hidden}

/* Chrome: footer */
.site-footer{background:var(--pub-c-footer-bg);color:#fff;padding:var(--pub-s-7) 0 var(--pub-s-5)}
.site-footer a{color:#fff}
.site-footer__name{font:700 1.25rem var(--pub-f-head);margin:0}
.site-footer__legal{margin-top:var(--pub-s-4);font-size:.9375rem}
.site-footer__legal p{margin:0}

/* ---- 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);height:auto}
.card--format{display:flex;flex-direction:column}
.card--format .text-link{margin-top:auto;padding-top:var(--pub-s-3);font-size:.9375rem;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);border-left:1px solid var(--pub-c-border)}
.issuer-grid li{border-right:1px solid var(--pub-c-border);border-bottom:1px solid var(--pub-c-border);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);text-align:center;font-style:italic}
.testimonials .testimonial-card blockquote::before{content:"\201C"}
.testimonials .testimonial-card blockquote::after{content:"\201D"}
.testimonials .testimonial-card figcaption{font-style:normal}
.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-size:1.0625rem;font-family:var(--pub-f-body);color:var(--pub-c-ink);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-side .sidebar-box>h2{font-size:1.25rem;padding:var(--pub-s-4)}
.service-cta{margin:var(--pub-s-5) 0 0}
.logo-tiles{display:flex;flex-direction:column;align-items:flex-start;gap:var(--pub-s-4)}
.logo-tiles .logo-tile{width:230px;max-width:100%;height:92px;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)}
.resource-links{padding:var(--pub-s-4) var(--pub-s-4) var(--pub-s-5)}
.resource-links li+li{margin-top:var(--pub-s-5)}
.resource-links a{font-weight:700;text-decoration:underline;text-underline-offset:3px;color:var(--pub-c-ink);}
.image-slot{display:block;aspect-ratio:16/9;margin:var(--pub-s-5) var(--pub-s-4)}
.sidebar-box__link{margin:0;padding:var(--pub-s-4) var(--pub-s-4) var(--pub-s-5)}
.sidebar-box>.image-slot+h2{border-top:1px solid var(--pub-c-border)}
.service-body,.service-side{min-width:0}
.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-4) 0 0;font-size:.9375rem;text-align:center}
.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%}
.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)}
.nav-actions .btn.active{background:var(--pub-c-ink);color:#fff;border-color:var(--pub-c-ink)}


/* ===== Public-site additions (foundation lane) ===== */
.site-logo .site-logo__img--dark{display:none}
.nav-actions .btn.active{color:#fff}
.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)}
.theme-toggle button[aria-pressed="true"]{background:#0064A2;color:#fff}
@media print{.theme-toggle{display:none}}
:root[data-theme="light"]{color-scheme:light}

/* ===== 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-ink);
  --pub-c-heading:#6ab7e6; --pub-c-ink:#ece7e0; --pub-c-muted:#b0a89f;
  --pub-c-band:#000000; --pub-c-on-band:#ffffff;
  --pub-c-bg:#1c1a18; --pub-c-card:#26231f; --pub-c-border:#5a5249; --pub-c-border-soft:#413b34;
  --pub-c-header-bg:#2f2b27; --pub-c-focus:#ece7e0; --pub-c-band-light:#26231f;
  --pub-c-error:#ff8a80; --pub-c-success:#5ccf85; --pub-c-flag:#ffb27a;
  --pub-c-footer-bg:#000000; --pub-c-footer-rule:#444444;
}
:root[data-theme="dark"] .site-logo .site-logo__img--light{display:none}
:root[data-theme="dark"] .site-logo .site-logo__img--dark{display:block}
:root[data-theme="dark"] .steps li::before{background:#0064A2;color:#fff}
: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"] .btn--outline:hover{background:var(--pub-c-ink);color:var(--pub-c-bg);border-color:var(--pub-c-ink)}
:root[data-theme="dark"] .nav-actions .btn.active{background:var(--pub-c-ink);color:var(--pub-c-bg);border-color:var(--pub-c-ink)}
:root[data-theme="dark"] .band .btn--outline{color:#fff;border-color:#fff}
:root[data-theme="dark"] .band .btn--outline:hover{background:#fff;color:#000}
:root[data-theme="dark"] .band--light .btn--outline{color:var(--pub-c-ink);border-color:var(--pub-c-ink)}
:root[data-theme="dark"] .map-figure img,
:root[data-theme="dark"] .photo{background:#fff}


/* ===== T-1460 updates 1-12 (L1): the PDF is the spec. --u = 1 PDF unit (artboard 1780 wide); desktop only ===== */
@media (min-width:1080px){
  :root{--u:calc(min(100vw,1780px) / 1780);--pub-gutter:max(32px,calc(82 * var(--u)))}
  body{font-size:max(16px,calc(21 * var(--u)));line-height:1.24}
  h1{font-size:max(34px,calc(56 * var(--u)));line-height:1.04}
  h2,.band h2{font-size:max(22px,calc(32 * var(--u)));line-height:1.15}
}
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:#000}
.band .card a,.card a:not(.btn),.service-body a{color:#000;text-decoration:underline}
.br-wide{display:none}
@media (min-width:1080px){.br-wide{display:inline}}
.btn{text-transform:none;letter-spacing:0}
@media (min-width:1080px){
  .btn{min-width:calc(252 * var(--u));min-height:max(44px,calc(54 * var(--u)));font:500 max(14px,calc(18 * var(--u)))/1 var(--pub-f-body);border-radius:4px}
}
.btn--white{background:#fff;color:#111;border:2px solid #111}
.btn--white:hover{background:#f2f2f2;border-color:#111;color:#111}
.band .btn--white{color:#111}
.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:#fff;color:#111;border-color:#111}
:root[data-theme="dark"] .btn--white,:root[data-theme="dark"] .nav-actions .btn--white.active{background:#fff;color:#111;border-color:#fff}
:root[data-theme="dark"] .btn--white:hover{background:#e6e6e6;color:#111}
.benefits li{padding:0 0 0 max(20px,calc(33 * var(--u)));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-ink)}
@media (min-width:1080px){.benefits{max-width:none}.benefits li{margin-top:calc(15 * var(--u))}.benefits li:first-child{margin-top:0}}
.bullets-inline{list-style:none;margin:0 0 var(--pub-s-4);padding:0}
.bullets-inline li::before{content:"\2022\00a0"}
.bullets-inline li+li{margin-top:var(--pub-s-2)}
@media (min-width:1080px){.bullets-inline li+li{margin-top:calc(9 * var(--u))}}
@media (max-width:640px){.site-footer{padding-bottom:72px}}

/* Header and footer */
.site-header__bar{max-width:calc(var(--pub-maxw) + 2*var(--pub-gutter))}
.site-footer__links{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:var(--pub-s-5);border-top:1px solid var(--pub-c-footer-rule);border-bottom:1px solid var(--pub-c-footer-rule);margin-top:var(--pub-s-4);padding:var(--pub-s-4) 0}
.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) var(--pub-s-5)}}

/* Home */
.hero .lead{color:#000}
@media (min-width:1080px){
  .hero{padding:calc(100 * var(--u)) 0 calc(93 * var(--u))}
  .hero .lead{font-size:max(18px,calc(30 * var(--u)));line-height:1.3;max-width:calc(1100 * var(--u));margin:calc(40 * var(--u)) auto 0}
  .hero .btn{margin-top:calc(39 * var(--u))}
  .band.family{padding:calc(62 * var(--u)) 0 calc(84 * var(--u))}
  .band.family h2{margin-bottom:calc(36 * var(--u))}
  .grid-logos,.grid-4{gap:calc(41 * var(--u))}
  .grid-3{gap:calc(33 * var(--u))}
  .card--logo{padding:calc(35 * var(--u)) calc(28 * var(--u))}
  .card--logo img{max-height:calc(48 * var(--u));margin-bottom:calc(27 * var(--u))}
  .grid-logos .card--logo p{font-size:max(14px,calc(19 * var(--u)));line-height:1.37}
  .split{grid-template-columns:1fr 1fr;column-gap:calc(45 * var(--u));align-items:start}
  .split h2{margin-bottom:calc(22 * var(--u))}
  .split p{margin-bottom:calc(26 * var(--u))}
  .section.bridge{padding:calc(107 * var(--u)) 0 calc(102 * var(--u))}
  .band.programs{padding:calc(75 * var(--u)) 0 calc(81 * var(--u))}
  .band.programs h2{margin-bottom:calc(43 * var(--u))}
  .band .card{padding:calc(25 * var(--u))}
  .band .card h3{font-size:max(17px,calc(24 * var(--u)))}
  .section.why{padding:calc(95 * var(--u)) 0 calc(96 * var(--u))}
  .formats{padding-top:calc(150 * var(--u))}
  .card--format{padding:calc(29 * var(--u)) calc(26 * var(--u))}
  .card--format h3{font-size:max(17px,calc(24 * var(--u)))}
  .card--format .text-link{font:700 max(13px,calc(18 * var(--u))) var(--pub-f-body);padding-top:calc(46 * var(--u))}
  .issuer-grid li{min-height:calc(252 * var(--u))}
  .issuer-grid .issuer--wide{min-height:calc(273 * var(--u))}
  .testimonials .testimonial-card{border-radius:calc(6 * var(--u));padding:calc(47 * var(--u)) calc(50 * var(--u));gap:0}
  .testimonial-card blockquote{font-size:max(15px,calc(23 * var(--u)));line-height:1.26}
  .testimonial-card figcaption{font:500 max(11px,calc(15 * var(--u))) var(--pub-f-body);letter-spacing:0;margin-top:calc(65 * var(--u))}
  .cta-band{padding:calc(73 * var(--u)) 0 calc(121 * var(--u))}
  .cta-band h2{font-size:max(28px,calc(52 * var(--u)));line-height:1.15;max-width:none}
  .cta-actions{margin-top:calc(54 * var(--u))}
}
.card--format{border:0;background:transparent}
.card--format .text-link{color:var(--pub-c-ink)}
.card--format h3{color:var(--pub-c-ink)}
.testimonials .testimonial-card{border:1px solid var(--pub-c-border)}
.testimonial-card figcaption{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}
@media (min-width:1080px){
  .issuer-grid img[class^="iss-"]{max-height:none}
  .iss-aia{height:calc(137 * var(--u))!important}.iss-usgbc{height:calc(99 * var(--u))!important}.iss-idcec{height:calc(110 * var(--u))!important}.iss-ada{height:calc(114 * var(--u))!important}.iss-well{height:calc(132 * var(--u))!important}
  .iss-aibd{height:calc(110 * var(--u))!important}.iss-rcep{height:calc(96 * var(--u))!important}.iss-aspe{height:calc(80 * var(--u))!important}.iss-laces{height:calc(126 * var(--u))!important}.iss-can{height:calc(119 * var(--u))!important}
}

/* Service pages */
@media (min-width:1080px){
  .service-layout{grid-template-columns:797fr 712fr;column-gap:calc(78 * var(--u))}
  .section.service-top{padding-top:calc(100 * var(--u))}
  .eyebrow{font-size:max(13px,calc(20 * var(--u)))}
  .service-layout{margin-top:calc(50 * var(--u))}
  .service-body{max-width:none;font-size:max(16px,calc(22 * var(--u)));line-height:1.27}
  .service-body p{margin-bottom:calc(14 * var(--u))}
  .service-body h2{font:700 max(16px,calc(22 * var(--u)))/1.27 var(--pub-f-body);margin:calc(42 * var(--u)) 0 calc(14 * var(--u))}
  .sidebar-box>h2,.service-side .sidebar-box>h2{font:700 max(17px,calc(26 * var(--u)))/1.2 var(--pub-f-body);padding:calc(24 * var(--u)) calc(33 * var(--u)) calc(16 * var(--u))}
  .logo-tiles .logo-tile{width:calc(292 * var(--u));height:calc(116 * var(--u));border-radius:calc(10 * var(--u))}
  .logo-tiles{gap:calc(27 * var(--u));padding:0 calc(33 * var(--u)) calc(33 * var(--u))}
  .resource-links{font-size:max(15px,calc(21 * var(--u)));padding:0 calc(38 * var(--u)) calc(38 * var(--u))}
  .resource-links li+li{margin-top:calc(30 * var(--u))}
  .service-cta{margin-top:calc(66 * var(--u))}
}
.service-body h2{color:var(--pub-c-ink)}
.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-s-4) var(--pub-s-4)}

/* 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{font-family:var(--pub-f-body);font-weight:700;letter-spacing:0;color:var(--pub-c-ink)}
.about-box a{color:var(--pub-c-ink);font-weight:700;text-decoration:underline}
@media (min-width:1080px){
  .about-section .container{padding-left:calc(158 * var(--u));padding-right:calc(114 * var(--u))}
  .about-layout{grid-template-columns:702fr 712fr;column-gap:calc(94 * var(--u));margin-top:calc(78 * var(--u))}
  .about-subhead{font-size:max(17px,calc(23 * var(--u)))}
  .about-layout p{margin-bottom:calc(29 * var(--u));line-height:1.38}
  .about-box{padding:calc(42 * var(--u)) calc(65 * var(--u))}
  .about-box>h2{padding:0 0 calc(24 * var(--u))!important}
  .about-box .sidebar-box__body{padding:0}
  .about-box p{margin-bottom:calc(58 * var(--u))}
}

/* ===== T-1460 fix pass: PDF measurements (1 PDF unit = --u) ===== */
@media (min-width:1080px){
  .band .card--logo{padding:calc(35 * var(--u)) calc(28 * var(--u)) calc(36 * var(--u))}
  .testimonial-card figcaption{margin-top:calc(36 * var(--u))}
  .testimonials .testimonial-card{padding-bottom:calc(63 * var(--u))}
  .issuer-grid li:nth-child(n+7){min-height:calc(266 * var(--u))}
  .band.programs .card p{margin-bottom:0}
  .section.why p{margin-bottom:calc(40 * var(--u))}
  .section.why p:has(>strong){margin-bottom:calc(18 * var(--u))}
  .section.why h2{margin-top:calc(21 * var(--u))}
  .section.service-top .container{padding-left:calc(98 * var(--u))}
  .service-body h2{margin-top:calc(61 * var(--u))}
  .service-body .benefits{margin-bottom:calc(56 * var(--u))}
  .resource-hub-page .service-body h2{margin:calc(27 * var(--u)) 0 0}
  .resource-hub-page .service-body p{margin-bottom:0}
  .sidebar-box:has(.resource-links)>h2,.service-side .sidebar-box:has(.resource-links)>h2{padding:calc(43 * var(--u)) calc(47 * var(--u)) calc(41 * var(--u))}
  .resource-links{padding:0 calc(47 * var(--u)) calc(52 * var(--u))}
  .eyebrow--ink,.about-layout .eyebrow--ink{font-size:max(14px,calc(21 * var(--u)));margin-bottom:0}
  .about-layout .about-subhead{margin-top:0}
  .about-layout .btn{margin-top:calc(35 * var(--u))}
  .about-box{border-radius:0;padding-bottom:calc(69 * var(--u))}
  .about-box p:last-child{margin-bottom:0}
}
.faq-a{hyphens:auto}
.site-header{border-bottom:1px solid #a8a39e}
.site-footer__brand a,.site-footer__legal a{text-decoration:none}
.site-footer__name{font-family:var(--pub-f-body)}
body{display:flex;flex-direction:column;min-height:100vh}
body>main{flex:1 0 auto}
