:root {
  --paper:#f2f1ec;
  --card:#fff;
  --ink:#101214;
  --muted:#596166;
  --navy:#0d252e;
  --green:#95bc59;
  --orange:#d7815b;
  --rule:#d7d8d5;
}
* { box-sizing:border-box; }
html { scroll-behavior:smooth; scroll-padding-top:86px; }
body { margin:0; color:var(--ink); background:var(--paper); font-family:Roboto,Arial,Helvetica,sans-serif; -webkit-font-smoothing:antialiased; }
img { display:block; max-width:100%; }
a { color:inherit; text-decoration:none; }
button,input { font:inherit; }
[hidden] { display:none !important; }
.topline { min-height:32px; display:flex; align-items:center; background:var(--navy); color:#fff; font-size:.75rem; letter-spacing:.04em; }
.topline__inner,.header__inner,.nav__inner,.section,.library-section__inner,.footer__inner,.footer__bottom { width:min(1160px,calc(100% - 40px)); margin-inline:auto; }
.topline__inner { display:flex; justify-content:space-between; gap:20px; }
.topline strong { color:#f1cf58; }
.site-header { background:#fff; border-bottom:1px solid var(--rule); }
.header__inner { min-height:104px; display:grid; grid-template-columns:1fr auto 1fr; align-items:center; }
.brand { grid-column:2; display:block; width:clamp(360px,40vw,520px); }
.brand img { width:100%; height:auto; }
.nav { background:#fff; border-bottom:1px solid var(--rule); }
.nav__inner { min-height:43px; display:flex; align-items:center; justify-content:center; gap:34px; }
.nav a { font-size:.82rem; font-weight:700; }
.nav a:hover,.nav a:focus-visible,.nav a[aria-current="page"] { color:#087f68; }
.partner-hero { position:relative; width:min(1280px,100%); min-height:490px; margin:0 auto 78px; overflow:hidden; background:var(--navy); }
.partner-hero::after { content:""; position:absolute; inset:0; background:linear-gradient(90deg,rgb(13 37 46 / 90%) 0%,rgb(13 37 46 / 67%) 37%,rgb(13 37 46 / 5%) 74%); }
.partner-hero > img { width:100%; height:490px; object-fit:cover; object-position:center; }
.partner-hero__copy { position:absolute; z-index:1; left:max(40px,calc((100% - 1120px)/2)); top:50%; transform:translateY(-50%); width:min(540px,calc(100% - 80px)); color:#fff; }
.eyebrow { margin:0 0 11px; color:#b32618; font-size:.76rem; font-weight:900; letter-spacing:.08em; text-transform:uppercase; }
.partner-hero .eyebrow { color:#f1cf58; }
.partner-hero h1 { max-width:520px; margin:0; font-size:clamp(3.2rem,6vw,5.4rem); line-height:.93; letter-spacing:-.045em; }
.partner-hero__copy > p:last-child { max-width:500px; margin:24px 0 0; color:#edf1ef; font-size:1.12rem; line-height:1.5; }
.section { margin-bottom:94px; }
.section-heading { display:grid; grid-template-columns:minmax(0,1fr) minmax(300px,460px); column-gap:60px; align-items:end; margin-bottom:30px; padding-top:20px; border-top:5px solid var(--navy); }
.section-heading .eyebrow { grid-column:1; }
.section-heading h2 { grid-column:1; margin:0; font-size:clamp(2.25rem,4vw,3.4rem); line-height:1; letter-spacing:-.035em; }
.section-heading > p:last-child { grid-column:2; grid-row:1 / span 2; margin:0; color:#4a5357; font-size:1rem; line-height:1.5; }
.logo-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:14px; }
.logo-card { min-height:132px; display:grid; place-items:center; padding:24px; background:#fff; border:1px solid var(--rule); }
.logo-card img { width:auto; height:auto; max-width:72%; max-height:58px; object-fit:contain; }
.logo-card--filled img { max-width:76%; max-height:72px; }
.logo-card span { display:grid; place-items:center; width:min(180px,70%); min-height:50px; border:1px dashed #b6bbb8; color:#858c89; font-size:.8rem; font-weight:700; letter-spacing:.05em; text-transform:uppercase; }
.library-section { margin:0 0 94px; padding:70px 0; background:var(--navy); color:#fff; }
.library-section__inner { display:grid; grid-template-columns:minmax(0,1fr) minmax(360px,460px); gap:clamp(50px,8vw,110px); align-items:center; }
.library-intro .eyebrow { color:#f1cf58; }
.library-intro h2 { margin:0; max-width:550px; font-size:clamp(2.5rem,4.8vw,4.4rem); line-height:.97; letter-spacing:-.04em; }
.library-intro > p:not(.eyebrow) { max-width:620px; margin:24px 0; color:#dce4e3; font-size:1.05rem; line-height:1.55; }
.library-intro ul { margin:0; padding:0; list-style:none; color:#fff; }
.library-intro li { position:relative; margin:12px 0; padding-left:24px; line-height:1.4; }
.library-intro li::before { content:""; position:absolute; left:0; top:.48em; width:10px; height:10px; background:var(--green); border-radius:50%; }
.login-card { padding:34px; background:#fff; color:var(--ink); box-shadow:0 22px 60px rgb(0 0 0 / 25%); }
.login-card h3 { margin:0 0 26px; font-size:1.75rem; letter-spacing:-.02em; }
.field { margin:0 0 18px; }
.field label { display:block; margin-bottom:8px; font-size:.9rem; font-weight:800; }
.field input { width:100%; min-height:49px; border:1px solid #a9afac; border-radius:0; padding:0 14px; background:#fff; color:var(--ink); }
.field input:focus { outline:3px solid rgb(149 188 89 / 42%); border-color:#4e7126; }
.login-card button { width:100%; min-height:50px; margin-top:4px; border:0; background:var(--green); color:#0a221f; font-weight:900; cursor:pointer; }
.login-card button:hover { background:#a8cd6d; }
.form-error { margin:0 0 14px; color:#a31f14; font-size:.88rem; font-weight:700; }
.login-help { margin:14px 0 0; color:#6b7370; font-size:.78rem; line-height:1.4; }
.library-section--open { margin-bottom:0; }
.media-library { scroll-margin-top:80px; padding-top:6px; }
.library-heading { display:flex; align-items:flex-end; justify-content:space-between; gap:30px; margin-bottom:48px; padding-top:25px; border-top:5px solid var(--navy); }
.library-heading h2 { margin:0; font-size:clamp(2.5rem,4.5vw,4rem); line-height:1; letter-spacing:-.04em; }
.library-heading > div > p:last-child { margin:14px 0 0; color:#525b5f; }
.logout { min-height:42px; padding:0 20px; border:1px solid #929895; background:transparent; color:var(--ink); font-weight:700; cursor:pointer; }
.asset-group { margin-top:48px; }
.asset-group__heading { display:flex; align-items:baseline; justify-content:space-between; gap:20px; margin-bottom:15px; }
.asset-group__heading h3 { margin:0; font-size:1.55rem; }
.asset-group__heading span { color:#626a6e; font-size:.78rem; font-weight:800; letter-spacing:.07em; text-transform:uppercase; }
.asset-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; }
.asset-card { background:#fff; border:1px solid var(--rule); }
.asset-preview { min-height:210px; display:grid; place-items:center; padding:35px; background:#f6f7f4; color:#7a8380; font-size:.78rem; font-weight:700; letter-spacing:.06em; text-transform:uppercase; }
.asset-preview--logo img { width:min(360px,80%); max-height:76px; object-fit:contain; }
.asset-preview--media { padding:26px; }
.asset-preview--media img { width:100%; height:100%; max-height:170px; object-fit:contain; }
.asset-preview--banner { padding:18px; }
.asset-preview--banner img { max-height:210px; }
.asset-preview--wide::before { content:""; width:80%; aspect-ratio:4/1; border:2px dashed #b3b9b5; }
.asset-preview--wide span { margin-top:12px; }
.asset-preview--mobile::before { content:""; width:84px; aspect-ratio:9/16; border:2px dashed #b3b9b5; }
.asset-preview--mobile span { margin-top:12px; }
.asset-card__body { min-height:104px; display:flex; align-items:center; justify-content:space-between; gap:24px; padding:20px 22px; }
.asset-card h4 { margin:0 0 5px; font-size:1rem; }
.asset-card p { margin:0; color:#737b78; font-size:.8rem; }
.download { flex:none; display:inline-flex; align-items:center; min-height:38px; padding:0 14px; background:var(--navy); color:#fff; font-size:.82rem; font-weight:800; }
.download:hover,.download:focus-visible { background:#17414f; }
.download--disabled { background:#e1e3e0; color:#7a817e; }
.partner-library-empty { grid-column:1/-1; margin:0; padding:24px; border:1px dashed var(--rule); background:#fff; color:#687174; font-size:.9rem; }
footer { background:#000; color:#fff; padding:64px 0 24px; }
.footer__inner { display:grid; grid-template-columns:1.15fr .9fr 1fr .9fr; align-items:start; gap:clamp(28px,5vw,70px); }
.footer__brand { display:inline-block; width:min(280px,100%); }
.footer__brand img { width:100%; height:auto; }
.footer__eyebrow { color:var(--orange); font-size:.72rem; font-weight:800; letter-spacing:.09em; text-transform:uppercase; margin:0 0 14px; }
.footer__contact { color:#d1d1d1; font-style:normal; font-size:.95rem; line-height:1.65; }
.footer__contact p,.footer__license p,.footer__rules p { margin:0; }
.footer__contact a,.footer__rules a { display:inline-block; color:#fff; margin-top:14px; text-decoration:underline; text-decoration-color:var(--orange); text-underline-offset:5px; }
.footer__license,.footer__rules { color:#d1d1d1; font-size:.95rem; line-height:1.55; }
.footer__bottom { border-top:1px solid #292929; margin-top:50px; padding-top:20px; }
.footer__bottom p { margin:0; color:#777; font-size:.75rem; }
@media (max-width:820px) {
  .topline__inner,.header__inner,.nav__inner,.section,.library-section__inner,.footer__inner,.footer__bottom { width:min(100% - 28px,680px); }
  .topline__inner span:last-child { display:none; }
  .header__inner { min-height:88px; display:flex; justify-content:center; }
  .brand { width:min(396px,calc(100vw - 76px)); }
  .nav__inner { min-height:31px; gap:24px; }
  .nav a { font-size:.78rem; }
  .partner-hero { min-height:0; margin-bottom:58px; overflow:visible; background:#fff; }
  .partner-hero::after { display:none; }
  .partner-hero > img { height:auto; aspect-ratio:1.55/1; object-fit:cover; }
  .partner-hero__copy { position:static; transform:none; width:min(100% - 28px,680px); margin-inline:auto; padding:28px 0 0; color:var(--ink); }
  .partner-hero .eyebrow { color:#b32618; }
  .partner-hero h1 { font-size:clamp(2.8rem,13vw,4.2rem); }
  .partner-hero__copy > p:last-child { margin-top:18px; color:#465055; font-size:1rem; }
  .section { margin-bottom:68px; }
  .section-heading { display:block; padding-top:18px; }
  .section-heading h2 { margin-bottom:18px; }
  .section-heading > p:last-child { line-height:1.45; }
  .logo-grid { grid-template-columns:repeat(2,1fr); gap:10px; }
  .logo-card { min-height:110px; padding:16px; }
  .library-section { margin-bottom:68px; padding:54px 0; }
  .library-section__inner { grid-template-columns:1fr; gap:38px; }
  .library-intro h2 { font-size:clamp(2.5rem,12vw,3.8rem); }
  .login-card { padding:28px 24px; }
  .library-heading { align-items:flex-start; }
  .asset-grid { grid-template-columns:1fr; }
  .asset-preview { min-height:180px; }
  footer { padding-top:46px; }
  .footer__inner { grid-template-columns:1fr; gap:32px; }
  .footer__brand { width:min(250px,75vw); }
  .footer__contact,.footer__license,.footer__rules { border-top:1px solid #292929; padding-top:24px; }
  .footer__bottom { margin-top:34px; }
}
@media (max-width:440px) {
  .nav__inner { gap:18px; }
  .nav a { font-size:.72rem; white-space:nowrap; }
  .logo-grid { grid-template-columns:1fr 1fr; }
  .logo-card { min-height:96px; }
  .library-heading { display:block; }
  .logout { margin-top:22px; }
  .asset-card__body { align-items:flex-start; flex-direction:column; gap:15px; }
}
@media (prefers-reduced-motion:reduce) {
  html { scroll-behavior:auto; }
  *,*::before,*::after { transition:none !important; }
}
