:root{--postal-red:#a61e24;--postal-dark:#78171b;--gold:#efbd42;--ink:#202d3c;--muted:#596574;--border:#dbe1e8;--paper:#fff;--page:#f3f5f8;--radius:10px;font-family:"Segoe UI",Arial,sans-serif;color:var(--ink);background:var(--page);color-scheme:light}
*{box-sizing:border-box}body{margin:0;min-height:100vh;min-height:100dvh;display:flex;flex-direction:column;-webkit-text-size-adjust:100%}a{-webkit-tap-highlight-color:transparent}a:focus-visible{outline:3px solid #0758b1;outline-offset:4px}header{background:var(--paper);border-top:5px solid var(--postal-red);border-bottom:1px solid var(--border)}.brand-row{width:min(1180px,calc(100% - 64px));margin:auto;display:flex;align-items:center;gap:28px;padding:22px 0}.brand-logo{width:150px;height:82px;object-fit:contain;flex-shrink:0}.brand-copy{border-left:1px solid var(--border);padding-left:28px}.brand-eyebrow{font-size:10px;font-weight:700;letter-spacing:1.8px;color:var(--postal-red);margin:0 0 7px}.brand-copy h1{font-size:clamp(24px,3vw,33px);line-height:1.15;margin:0;font-weight:750;letter-spacing:-.7px}.brand-description{margin:8px 0 0;color:var(--muted);font-size:13px;line-height:1.5}.brand-label{margin-left:auto;font-size:12px;color:var(--postal-dark);background:#fff7e4;border:1px solid #ead7a1;padding:9px 12px;border-radius:5px;white-space:nowrap}
main{flex:1;width:min(1180px,calc(100% - 64px));margin:0 auto;padding:32px 0 24px}.section-intro{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:22px}.section-kicker{font-size:10px;letter-spacing:1.8px;font-weight:750;color:var(--postal-red);margin:0 0 6px}.section-intro h2{font-size:23px;letter-spacing:-.45px;margin:0}.section-intro>p{margin:0 0 3px;font-size:13px;color:var(--muted)}.button-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;width:100%;margin:0;position:relative}.btn-3d{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:76px;padding:17px 18px;text-decoration:none;background:var(--paper);color:var(--ink);border:1px solid var(--border);border-left:3px solid var(--postal-red);border-radius:var(--radius);font-size:14px;font-weight:650;line-height:1.45;box-shadow:0 2px 4px #23314304;transition:border-color .15s,background .15s,box-shadow .15s;min-width:0}.btn-3d span{overflow-wrap:anywhere}.btn-3d::after{content:'↗';color:var(--postal-red);font-size:19px;line-height:1;flex-shrink:0}.btn-3d[onclick]::after{content:'›';font-size:26px}.btn-3d:hover{background:#fffafa;border-color:#c17b7e;border-left-color:var(--postal-red);box-shadow:0 4px 12px #5912170a;color:var(--postal-dark)}.btn-3d:active{background:#fbecee}.subpage-back-btn{grid-column:1/-1;justify-self:start;background:var(--postal-red);color:#fff;padding:11px 18px;min-height:44px;text-decoration:none;font-size:14px;font-weight:650;border-radius:6px;margin:0 0 4px}.subpage-back-btn:hover{background:var(--postal-dark)}
.dop-downloads{width:min(1180px,calc(100% - 64px));margin:8px auto 32px;border:1px solid var(--border);border-top:3px solid var(--gold);background:var(--paper);padding:22px 26px;border-radius:var(--radius);display:grid;grid-template-columns:minmax(0,1fr) minmax(320px,1fr);column-gap:30px;align-items:center}.dop-downloads h2{margin:0 0 7px;font-size:20px;letter-spacing:-.35px}.dop-downloads>p{grid-column:1;margin:0;color:var(--muted);font-size:13px;line-height:1.6}.dop-download-row{grid-column:2;grid-row:1/3;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.dop-download-button{min-width:0;display:flex;flex-direction:column;justify-content:center;align-items:center;text-decoration:none;background:var(--postal-red);color:#fff;border:1px solid var(--postal-red);border-radius:7px;min-height:72px;padding:12px 10px;text-align:center;font-size:14px;font-weight:650;line-height:1.45;gap:5px;overflow-wrap:anywhere}.dop-download-button small{font-weight:400;font-size:11px;color:#fff1df}.dop-download-button:hover{background:var(--postal-dark);border-color:var(--postal-dark)}footer{background:#243342;color:#edf1f5;border-top:3px solid var(--postal-red);padding:19px 16px;text-align:center;font-size:12px;line-height:1.6;margin-top:auto;letter-spacing:.2px}
@media(min-width:1500px){main{padding-top:40px}.btn-3d{min-height:82px}}
@media(max-width:1000px){.brand-label{display:none}.button-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.dop-downloads{grid-template-columns:1fr}.dop-download-row{grid-column:1;grid-row:auto;margin-top:18px}}
@media(max-width:700px){.brand-row,main,.dop-downloads{width:calc(100% - 32px)}.brand-row{gap:16px;padding:18px 0}.brand-logo{width:104px;height:65px}.brand-copy{padding-left:16px}.brand-eyebrow{font-size:8px;letter-spacing:1px}.brand-copy h1{font-size:25px}.brand-description{font-size:11px;margin-top:6px}.section-intro{align-items:flex-start;flex-direction:column;gap:8px;margin-bottom:18px}.section-intro h2{font-size:21px}main{padding-top:24px}.button-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.btn-3d{min-height:78px;padding:13px 11px;font-size:13px;gap:6px}.btn-3d::after{font-size:16px}.dop-downloads{padding:20px 16px;margin-bottom:24px}.dop-download-row{gap:9px}.dop-download-button{font-size:12px;min-height:80px;padding:12px 7px}.dop-download-button small{font-size:10px}}
@media(max-width:360px){.brand-logo{width:82px}.brand-copy h1{font-size:22px}.brand-row{gap:10px}.brand-copy{padding-left:10px}.brand-description{font-size:10px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}
@media print{body{background:#fff}.btn-3d{box-shadow:none;break-inside:avoid}.dop-downloads{display:none}.brand-row,main{width:100%}footer{background:#fff;color:#333}}
/* Compact portal header and service cards. */
.site-header{border-top:3px solid var(--postal-red);border-bottom:1px solid #ded7cf;background:#fff;box-shadow:0 2px 8px #24334208}
.compact-header{width:min(1180px,calc(100% - 64px));margin:auto;display:flex;align-items:center;gap:22px;min-height:78px;padding:9px 0}
.compact-logo{display:block;flex-shrink:0;width:104px;height:56px;object-fit:contain}
.compact-header h1{margin:0;padding:5px 0 5px 22px;border-left:1px solid #ddd3cb;font-size:26px;line-height:1.2;font-weight:750;letter-spacing:-.4px;color:var(--postal-red)}
main{padding-top:24px;padding-bottom:20px}
.button-grid{gap:12px}
.btn-3d{min-height:56px;padding:11px 14px;border-radius:8px;background:linear-gradient(110deg,#fff 60%,#fff6ee);border-color:#dddad6;border-left:3px solid var(--postal-red);box-shadow:0 2px 5px #24334208;font-size:15px;color:#3f51b5}
.btn-3d::after{display:flex;align-items:center;justify-content:center;width:25px;height:25px;border-radius:50%;background:#f7e8e6;font-size:16px}
.btn-3d[onclick]::after{font-size:21px}
.btn-3d:hover{background:#fff1e8;border-color:#b97572;border-left-color:var(--postal-dark);box-shadow:0 3px 8px #78171b12}
@media(max-width:700px){.compact-header{width:calc(100% - 32px);gap:14px;min-height:68px;padding:8px 0}.compact-logo{width:84px;height:46px}.compact-header h1{font-size:23px;padding-left:14px}main{padding-top:18px}.button-grid{gap:9px}.btn-3d{min-height:58px;padding:9px 10px;font-size:12px;gap:5px}.btn-3d::after{width:21px;height:21px;font-size:14px}}

/* Visitor counters above the footer */
.visitor-counter{width:calc(100% - 32px);margin:0 auto 26px;text-align:center;font-size:14px;line-height:1.5}.visitor-online{color:#007d52;font-weight:700;margin:0 0 18px}.visitor-total-label{color:#163b73;margin:0 0 14px}.visitor-digits{display:flex;justify-content:center;gap:3px;flex-wrap:wrap;color:#163b73}.visitor-digits span{display:inline-flex;align-items:center;justify-content:center;min-width:23px;height:27px;padding:0 4px;border:1px solid #a9d300;border-radius:4px;background:#008f9c;color:#fff;font:700 17px/1 ui-monospace,Consolas,monospace}.dop-downloads{margin-bottom:24px}@media(max-width:380px){.visitor-digits{gap:2px}.visitor-digits span{min-width:21px;padding:0 3px}}

/* Keep the heading centred independently of the logo's width. */
.site-header .compact-header {
  display: grid;
  grid-template-columns: 124px minmax(0, 1fr) 124px;
  gap: 22px;
  align-items: center;
}
.site-header .compact-logo {
  width: 124px;
  height: 66px;
  box-sizing: border-box;
  border-right: 1px solid #ddd3cb;
  padding-right: 14px;
}
.portal-heading { min-width: 0; text-align: center; }
.site-header .portal-heading h1 {
  margin: 0;
  padding: 0;
  border: 0;
  color: var(--postal-red, #b51f26);
  font-size: 26px;
  line-height: 1.25;
  font-weight: 650;
  letter-spacing: 0;
}
.portal-heading p {
  margin: 3px 0 0;
  color: var(--postal-red, #b51f26);
  font-size: 18px;
  line-height: 1.25;
  font-weight: 700;
}
@media (max-width: 700px) {
  .site-header .compact-header {
    grid-template-columns: 100px minmax(0, 1fr);
    gap: 14px;
  }
  .site-header .compact-logo { width: 100px; height: 72px; padding-right: 8px; }
  .site-header .portal-heading h1 { font-size: 22px; }
  .portal-heading p { font-size: 16px; }
}
@media (max-width: 480px) {
  .site-header .compact-header {
    grid-template-columns: 90px minmax(0, 1fr);
    gap: 8px;
  }
  .site-header .compact-logo { width: 90px; height: 68px; padding-right: 6px; }
  .site-header .portal-heading h1 { font-size: 16px; }
  .portal-heading p { font-size: 14px; }
}

/* Admin-controlled public maintenance page and announcement. */
.dop-notice[hidden]{display:none!important}
.dop-notice{display:flex;align-items:center;width:100%;padding:4px 16px;border-bottom:1px solid #00000015;font-size:15px;font-weight:600;line-height:1.4}
.dop-notice-viewport{flex:1;min-width:0;overflow:hidden;line-height:1.4}
.dop-notice-text{display:inline-block;vertical-align:top;white-space:normal;overflow-wrap:anywhere}
.dop-notice-animated .dop-notice-text{white-space:nowrap;will-change:transform}
.dop-notice-static .dop-notice-text{white-space:normal;overflow-wrap:anywhere;will-change:auto}
body.dop-maintenance-page{display:grid;place-items:center;min-height:100vh;min-height:100dvh;margin:0;padding:24px;background:var(--page,#f3f5f8)}
main.dop-maintenance-panel{flex:none;width:100%;max-width:680px;margin:auto;padding:40px 30px;text-align:center;background:#fff;border:1px solid #dbe1e8;border-top:4px solid var(--postal-red,#a61e24);border-radius:14px;box-shadow:0 12px 36px #2433420b}
.dop-maintenance-logo{display:block;width:150px;height:85px;object-fit:contain;margin:0 auto 20px}
.dop-maintenance-brand{color:var(--postal-red,#a61e24);font-size:15px;font-weight:650;margin:0 0 20px}
.dop-maintenance-panel h1{font-size:clamp(24px,5vw,34px);line-height:1.2;margin:0 0 20px}
.dop-maintenance-message{font-size:18px;line-height:1.7;white-space:pre-wrap;overflow-wrap:anywhere;margin:0 0 24px}
.dop-maintenance-hint{font-size:13px;line-height:1.6;color:#66717d;margin:0 0 20px}
.dop-retry-link{display:inline-block;padding:10px 20px;border-radius:6px;background:var(--postal-red,#a61e24);color:#fff;text-decoration:none;font-weight:600}
@media(max-width:480px){body.dop-maintenance-page{padding:16px}main.dop-maintenance-panel{padding:28px 20px}.dop-maintenance-message{font-size:16px}.dop-notice{padding:4px 12px;font-size:14px}}
@media(prefers-reduced-motion:reduce){.dop-notice-text{white-space:normal;overflow-wrap:anywhere;will-change:auto}}

/* Responsive portal layout: keep these rules after the legacy styles.
   Widths use CSS pixels, so browser zoom also selects the appropriate layout. */
:root {
  --portal-width: 2160px;
  --portal-gutter: clamp(16px, 3vw, 96px);
  --portal-gap: clamp(12px, 1vw, 24px);
}
.site-header .compact-header,
main.portal-main,
.dop-downloads,
.visitor-counter {
  width: calc(100% - var(--portal-gutter) - var(--portal-gutter));
  max-width: var(--portal-width);
  margin-left: auto;
  margin-right: auto;
}
body > header, body > section, body > footer { flex-shrink: 0; }
.site-header .compact-header {
  grid-template-columns: clamp(100px, 8vw, 180px) minmax(0, 1fr) clamp(100px, 8vw, 180px);
  gap: clamp(14px, 1.5vw, 32px);
  padding: clamp(10px, 1vw, 22px) 0;
}
.site-header .compact-logo { width: 100%; height: clamp(66px, 5vw, 96px); }
.site-header .portal-heading h1 { font-size: clamp(22px, 1.65vw, 38px); overflow-wrap: anywhere; }
.portal-heading p { font-size: clamp(16px, 1.1vw, 26px); overflow-wrap: anywhere; }
main.portal-main {
  flex: 0 0 auto;
  min-width: 0;
  padding: clamp(20px, 2vw, 44px) 0 var(--portal-gap);
}
.portal-main .button-grid {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: var(--portal-gap);
}
.portal-main .btn-3d {
  min-height: clamp(64px, 4.5vw, 104px);
  padding: clamp(12px, 1vw, 24px);
  gap: clamp(8px, .8vw, 18px);
  font-size: clamp(15px, .95vw, 22px);
}
.portal-main .btn-3d span { min-width: 0; overflow-wrap: anywhere; }
.portal-main .btn-3d::after { width: 1.65em; height: 1.65em; font-size: 1.1em; }
.portal-main .btn-3d[onclick]::after { font-size: 1.3em; }
.subpage-back-btn { max-width: 100%; overflow-wrap: anywhere; }
.dop-downloads {
  margin-top: var(--portal-gap);
  margin-bottom: clamp(20px, 2vw, 36px);
  padding: clamp(20px, 1.5vw, 34px);
  column-gap: var(--portal-gap);
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
}
.dop-downloads h2 { font-size: clamp(20px, 1.2vw, 28px); overflow-wrap: anywhere; }
.dop-downloads > p { font-size: clamp(13px, .85vw, 19px); }
.dop-download-row { min-width: 0; gap: var(--portal-gap); }
.dop-download-button { font-size: clamp(14px, .9vw, 20px); min-height: 76px; }
.dop-download-button small { font-size: .8em; }
.visitor-counter { font-size: clamp(14px, .9vw, 20px); }
.visitor-digits span { min-width: 1.35em; height: 1.6em; font-size: clamp(17px, 1vw, 23px); }
footer { font-size: clamp(12px, .8vw, 18px); overflow-wrap: anywhere; }
@media (min-width: 1800px) {
  .portal-main .button-grid { grid-template-columns: repeat(5, minmax(0, 1fr)); }
}
@media (min-width: 2400px) {
  .portal-main .button-grid { grid-template-columns: repeat(6, minmax(0, 1fr)); }
}
@media (max-width: 1100px) {
  .portal-main .button-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 1000px) {
  .dop-downloads { grid-template-columns: minmax(0, 1fr); }
  .dop-download-row { grid-column: 1; grid-row: auto; margin-top: 18px; }
}
@media (max-width: 700px) {
  :root { --portal-gutter: 16px; --portal-gap: 10px; }
  .site-header .compact-header { grid-template-columns: 90px minmax(0, 1fr); gap: 12px; }
  .site-header .compact-logo { height: 68px; padding-right: 8px; }
  .site-header .portal-heading h1 { font-size: clamp(18px, 3.5vw, 24px); }
  .portal-heading p { font-size: 16px; }
  .portal-main .button-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .portal-main .btn-3d { font-size: 14px; padding: 12px 10px; gap: 6px; }
}
@media (max-width: 400px) {
  .site-header .compact-header { grid-template-columns: 72px minmax(0, 1fr); gap: 10px; }
  .site-header .compact-logo { height: 60px; }
  .site-header .portal-heading h1 { font-size: 17px; }
  .portal-heading p { font-size: 14px; }
  .portal-main .button-grid, .dop-download-row { grid-template-columns: minmax(0, 1fr); }
}
@media print {
  .site-header .compact-header, main.portal-main { width: 100%; max-width: none; }
  .portal-main .button-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

/* DOP Weblink dimensional design. Scoped to the public portal. */
body.portal-page {
  --portal-width:1600px; --postal-red:#aa1830; --postal-dark:#761126;
  --portal-gap:20px; --ink:#263346;
  background:radial-gradient(ellipse at 0 0,#f9e9d8 0,transparent 42%),
    radial-gradient(ellipse at 100% 20%,#e8edf5 0,transparent 48%),#f5f5f2;
  color:var(--ink);
}
.portal-skip-link { position:fixed;left:16px;top:-100px;z-index:10000;padding:12px 18px;background:#fff;color:#761126;border-radius:8px; }
.portal-skip-link:focus { top:12px; }
.portal-page .site-header { background:linear-gradient(100deg,#fffdf8,#fff 55%,#faf3e9);border-top:4px solid #a61e30;border-bottom:1px solid #dfd6c9;box-shadow:0 5px 22px #29364b0b; }
.portal-page .site-header .compact-header { padding:14px 0; }
.portal-page .site-header .compact-logo { border-color:#e5d7c6; }
.portal-page .site-header .portal-heading h1 { color:#8e1730;font-weight:750;letter-spacing:-.4px;font-size:clamp(22px,1.8vw,32px); }
.portal-page .portal-heading p { color:#536075;font-size:clamp(14px,1vw,19px);letter-spacing:1.5px;margin-top:6px; }
.portal-page .dop-notice { padding:8px 18px;font-size:14px;box-shadow:0 3px 9px #57172b12; }
.portal-page main.portal-main { padding-top:30px;padding-bottom:18px; }
.portal-page .portal-main .button-grid { gap:20px 18px; }
.portal-page .portal-main .btn-3d {
  position:relative; isolation:isolate;
  min-height:74px;padding:16px 18px;border:1px solid #fff;border-left:4px solid #b22037;border-radius:13px;
  background:linear-gradient(155deg,#ffffff 8%,#fffdf9 48%,#eeeae3 100%);
  color:#27364c;font-size:clamp(14px,.95vw,17px);font-weight:700;line-height:1.4;
  box-shadow:inset 0 2px 0 #fff,inset 0 -2px 2px #baa99930,
    0 6px 0 #c7beb5,0 7px 0 #b5a99b,0 11px 16px #34415a17;
  transform:translateY(0);transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease,background .18s ease;
}
.portal-page .portal-main .btn-3d::after {
  width:30px;height:30px;border-radius:9px;color:#9a1c32;font-size:18px;
  background:linear-gradient(145deg,#fff,#f0dfdc);border:1px solid #e7d5cf;
  box-shadow:inset 0 1px 0 #fff,0 2px 2px #67303b12;
}
.portal-page .portal-main .btn-3d[onclick] { border-left-color:#af8736;background:linear-gradient(150deg,#fffdf8,#fcf4e4); }
.portal-page .portal-main .btn-3d[onclick]::after { color:#775718;background:linear-gradient(145deg,#fffdf6,#f3e5c3);border-color:#e6d7b5;font-size:23px; }
@media(hover:hover) {
  .portal-page .portal-main .btn-3d:hover { transform:translateY(-3px);background:linear-gradient(145deg,#fff,#fff0e6);border-color:#ebc6bb;border-left-color:#a21930;color:#861a2c;box-shadow:inset 0 2px 0 #fff,0 9px 0 #c7b5a7,0 10px 0 #b5a190,0 17px 23px #34415a20; }
}
.portal-page .portal-main .btn-3d:active { transform:translateY(5px);box-shadow:inset 0 2px 3px #69584a13,0 1px 0 #b9aa9b,0 3px 6px #34415a18; }
.portal-page .portal-main .btn-3d:focus-visible { outline:3px solid #1763a3;outline-offset:7px; }
.portal-page .subpage-back-btn { background:linear-gradient(150deg,#ba2940,#8b162b);box-shadow:0 4px 0 #651025,0 7px 12px #6b263b20;border:1px solid #ca5868;border-radius:9px;padding:11px 22px; }
.portal-page .dop-downloads { background:linear-gradient(115deg,#fffdf7,#fff);border:1px solid #e2d8c9;border-top:3px solid #d9b456;border-radius:16px;padding:24px 28px;margin-top:20px;box-shadow:0 5px 0 #e3ded6,0 12px 26px #34415a09; }
.portal-page .dop-downloads h2 { font-size:22px;color:#29354a; }
.portal-page .dop-downloads>p { color:#657082; }
.portal-page .dop-download-button { border-radius:11px;background:linear-gradient(155deg,#c53046,#a31830 60%,#881329);border:1px solid #c85363;box-shadow:inset 0 1px 0 #ffffff40,0 5px 0 #671124,0 9px 13px #67112420;min-height:74px;transition:transform .18s,box-shadow .18s; }
.portal-page .dop-download-button:hover { background:linear-gradient(155deg,#ca3a4f,#95162b);transform:translateY(-2px); }
.portal-page .dop-download-button:active { transform:translateY(4px);box-shadow:0 1px 0 #671124; }






.portal-page>footer { background:#253245;border-top:3px solid #c5a05a;color:#e6e9ef;padding:17px;font-size:12px; }
@media(min-width:1800px) { .portal-page .portal-main .button-grid { grid-template-columns:repeat(5,minmax(0,1fr)); } }
@media(max-width:700px) {
  .portal-page { --portal-gutter:16px; }
  .portal-page .site-header .compact-header { padding:10px 0; }
  .portal-page .site-header .portal-heading h1 { font-size:19px;letter-spacing:-.3px; }
  .portal-page .portal-heading p { font-size:13px;letter-spacing:.7px; }
  .portal-page .portal-main .button-grid { gap:17px 12px; }
  .portal-page .portal-main .btn-3d { padding:13px 11px;min-height:76px;font-size:13px;gap:7px;border-radius:10px; }
  .portal-page .portal-main .btn-3d::after { width:23px;height:26px;border-radius:7px;font-size:15px; }
  .portal-page .dop-downloads { padding:20px 16px; }
  .portal-page .dop-download-row { grid-template-columns:repeat(2,minmax(0,1fr));gap:12px; }
  .portal-page .dop-download-button { font-size:12px;min-height:82px;padding:10px 7px; }
  .portal-page .dop-download-button small { font-size:10px; }
  
}
@media(max-width:400px) {
  .portal-page .portal-main .button-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .portal-page .portal-main .btn-3d { font-size:12px;padding:12px 9px; }
  .portal-page .portal-main .btn-3d::after { width:20px;height:24px; }
  .portal-page .site-header .portal-heading h1 { font-size:17px; }
  
}
@media(prefers-reduced-motion:reduce) { .portal-page .btn-3d,.portal-page .dop-download-button { transition:none!important;transform:none!important; } }
@media print { body.portal-page { background:#fff; }.portal-page .portal-main .btn-3d { box-shadow:none;border:1px solid #ccc;background:#fff;transform:none; }.portal-page>footer { background:#fff;color:#222; } }

/* Restore the supplied portal's service dimensions while retaining the raised finish. */
body.portal-page { --portal-width:2160px; --portal-gap:clamp(12px,1vw,24px); }
.portal-page .portal-main .button-grid { gap:var(--portal-gap); }
.portal-page .portal-main .btn-3d {
  min-height:clamp(64px,4.5vw,104px);
  padding:clamp(12px,1vw,24px);
  gap:clamp(8px,.8vw,18px);
  font-size:clamp(15px,.95vw,22px);
  line-height:1.45;
  border-left-width:3px;
}
.portal-page .portal-main .btn-3d::after { width:1.65em;height:1.65em;font-size:1.1em; }
.portal-page .portal-main .btn-3d[onclick]::after { font-size:1.3em; }
.portal-page .dop-download-button { min-height:56px;padding:8px 10px;gap:3px; }
.portal-page>footer { padding:11px 16px; }
@media(hover:hover) {
  .portal-page .portal-main .btn-3d:hover {
    background:linear-gradient(145deg,#c63249,#98162c);
    color:#fff;border-color:#d66272;border-left-color:#ffd775;
  }
  .portal-page .portal-main .btn-3d:hover::after {
    background:#ffffff20;color:#fff;border-color:#ffffff60;
  }
}
@media(min-width:2400px) { .portal-page .portal-main .button-grid { grid-template-columns:repeat(6,minmax(0,1fr)); } }
@media(max-width:700px) {
  body.portal-page { --portal-gap:10px; }
  .portal-page .portal-main .btn-3d { font-size:14px;padding:12px 10px;gap:6px; }
  .portal-page .dop-download-button { min-height:62px;padding:8px 7px; }
}
@media(max-width:400px) {
  .portal-page .portal-main .button-grid { grid-template-columns:minmax(0,1fr); }
}

/* Compact service buttons, stronger colour and a shorter header. */
.portal-page .site-header .compact-header { min-height:0;padding:7px 0; }
.portal-page .site-header .compact-logo { height:54px; }
.portal-page .site-header .portal-heading h1 { font-size:clamp(19px,1.5vw,28px);line-height:1.15; }
.portal-page .portal-heading p { font-size:clamp(21px,1.6vw,29px);line-height:1.15;letter-spacing:.4px;margin-top:3px;font-weight:750;color:#94172c; }
.portal-page .portal-main .btn-3d {
  min-height:50px;padding:8px 12px;
  background:linear-gradient(145deg,#fce4d5 0%,#f7d2be 100%);
  border-color:#eac3ac;border-left-color:#a61e30;color:#482b2d;
  box-shadow:inset 0 1px 0 #ffffffb0,inset 0 -1px 1px #ba846330,0 4px 0 #c2a18f,0 5px 0 #ac8978,0 8px 12px #34415a15;
}
.portal-page .portal-main .btn-3d[onclick] { background:linear-gradient(145deg,#f9eac2,#eed89e);border-color:#d9c28b;border-left-color:#a47b24;color:#594218; }
@media(hover:hover) {
  .portal-page .portal-main .btn-3d:hover { background:linear-gradient(145deg,#c63249,#98162c);color:#fff;border-color:#d66272;border-left-color:#ffd775; }
}
@media(max-width:700px) {
  .portal-page .site-header .compact-header { padding:6px 0;grid-template-columns:72px minmax(0,1fr);gap:10px; }
  .portal-page .site-header .compact-logo { height:48px; }
  .portal-page .site-header .portal-heading h1 { font-size:17px; }
  .portal-page .portal-heading p { font-size:21px; }
  .portal-page .portal-main .button-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .portal-page .portal-main .btn-3d { min-height:52px;padding:8px 9px;font-size:13px;gap:5px; }
  .portal-page .portal-main .btn-3d::after { width:21px;height:24px; }
}
@media(max-width:360px) {
  .portal-page .site-header .compact-header { grid-template-columns:60px minmax(0,1fr);gap:8px; }
  .portal-page .site-header .portal-heading h1 { font-size:15px; }
  .portal-page .portal-heading p { font-size:20px; }
  .portal-page .portal-main .btn-3d { font-size:12px;padding:8px; }
}
@media print { .portal-page .portal-main .btn-3d { background:#fff;box-shadow:none; } }

/* Light service buttons with dark-blue text in every interaction state. */
.portal-page .portal-main .btn-3d,
.portal-page .portal-main .btn-3d[onclick] {
     background: linear-gradient(145deg, #fffcfc, #fdfeff);
    color: #1f329d;
    border-color: #c54922;
    box-shadow: inset 0 1px 0 #fff, inset 0 -1px 1px #b8c9df30, 0 4px 0 #6e9edf, 0 5px 0 #acbbce, 0 8px 12px #34415a12;
}
.portal-page .portal-main .btn-3d::after,
.portal-page .portal-main .btn-3d[onclick]::after {
  background:linear-gradient(145deg,#fff,#e4edf8);
  color:#0e28b7; border-color:#cfdded;
}
@media(hover:hover) {
  .portal-page .portal-main .btn-3d:hover,
  .portal-page .portal-main .btn-3d[onclick]:hover {
    background:linear-gradient(145deg,#e5effc,#cbdff6);
    color:#123463;border-color:#a8c3e3;
  }
  .portal-page .portal-main .btn-3d:hover::after {
    background:#f3f7fd;color:#123463;border-color:#aac3df;
  }
}
.portal-page .portal-main .btn-3d:active {
  background:linear-gradient(145deg,#dce9f9,#c8dcf3);color:#123463;
  box-shadow:inset 0 2px 3px #334d7113,0 1px 0 #acbbce,0 3px 6px #34415a18;
}
@media print { .portal-page .portal-main .btn-3d { background:#fff;box-shadow:none; } }

/* Restore the postal-red hover treatment. */
@media(hover:hover) {
  .portal-page .portal-main .btn-3d:hover,
  .portal-page .portal-main .btn-3d[onclick]:hover {
    background:linear-gradient(145deg,#c63249,#98162c);
    color:#fff;border-color:#d66272;border-left-color:#ffd775;
  }
  .portal-page .portal-main .btn-3d:hover::after,
  .portal-page .portal-main .btn-3d[onclick]:hover::after {
    background:#ffffff20;color:#fff;border-color:#ffffff60;
  }
}

/* Header hierarchy: circle name larger than the portal subtitle. */
.portal-page .site-header .portal-heading h1 {
  font-size:clamp(23px,1.8vw,32px);
  line-height:1.2;
}
.portal-page .portal-heading p {
  font-size:clamp(19px,1.3vw,24px);
  line-height:1.2;
}
@media(max-width:700px) {
  .portal-page .site-header .portal-heading h1 { font-size:20px; }
  .portal-page .portal-heading p { font-size:18px; }
}
@media(max-width:360px) {
  .portal-page .site-header .portal-heading h1 { font-size:18px; }
  .portal-page .portal-heading p { font-size:16px; }
}
