/* ICoBC Credentialing — platform look.
 * Tokens and typography follow https://www.icobc.net (assets/css/style.css).
 * Colours of buttons, links and backgrounds come from the theme defaults in
 * resources/platforms/icobc/profile.php, so an issuer's own colours still win.
 * This file adds the font, the shapes and the platform chrome. */

@font-face {
  font-family: "Open Sans"; font-style: normal; font-display: swap;
  font-weight: 300 800; font-stretch: 75% 100%;
  src: url("fonts/open-sans-latin-wdth-normal.woff2") format("woff2-variations");
  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: "Open Sans"; font-style: normal; font-display: swap;
  font-weight: 300 800; font-stretch: 75% 100%;
  src: url("fonts/open-sans-latin-ext-wdth-normal.woff2") format("woff2-variations");
  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-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: "Open Sans"; font-style: italic; font-display: swap;
  font-weight: 300 800; font-stretch: 75% 100%;
  src: url("fonts/open-sans-latin-wdth-italic.woff2") format("woff2-variations");
  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: "Open Sans"; font-style: italic; font-display: swap;
  font-weight: 300 800; font-stretch: 75% 100%;
  src: url("fonts/open-sans-latin-ext-wdth-italic.woff2") format("woff2-variations");
  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-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

:root {
  --icobc-navy: #02375B;
  --icobc-navy-deep: #012740;
  --icobc-ink: #15293A;
  --icobc-muted: #4F6576;
  --icobc-line: #D8E2E9;
  --icobc-mist: #F1F5F8;
  --icobc-orange: #F78222;
  --icobc-cyan: #5DCAE7;
  --icobc-lime: #B1CF37;
  --icobc-lime-text: #5E7413;
  --icobc-radius: 6px;

  --bs-font-sans-serif: "Open Sans", system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
  --bs-body-font-family: var(--bs-font-sans-serif);
  --bs-border-radius: var(--icobc-radius);
  --bs-border-radius-sm: 4px;
  --bs-border-radius-lg: 8px;
}

body {
  font-family: var(--bs-font-sans-serif);
  font-stretch: 100%;
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

/* Pages without an issuer theme (superadmin) get the ICoBC defaults directly. */
html:not([data-bs-theme]) body {
  --bs-body-color: var(--icobc-ink);
  --bs-body-bg: #FFFFFF;
  --bs-primary: var(--icobc-navy);
  --bs-primary-rgb: 2, 55, 91;
  --bs-link-color: var(--icobc-navy);
  --bs-link-color-rgb: 2, 55, 91;
  --bs-link-hover-color: #1A7894;
  color: var(--icobc-ink);
}
html:not([data-bs-theme]) .btn-primary {
  --bs-btn-bg: var(--icobc-navy); --bs-btn-border-color: var(--icobc-navy);
  --bs-btn-hover-bg: var(--icobc-navy-deep); --bs-btn-hover-border-color: var(--icobc-navy-deep);
  --bs-btn-active-bg: var(--icobc-navy-deep); --bs-btn-active-border-color: var(--icobc-navy-deep);
}

/* ---------- Typography: light, slightly condensed headings ---------- */
h1, h2, h3, h4, .h1, .h2, .h3, .h4 { line-height: 1.15; }
html[data-bs-theme="light"] h1, html[data-bs-theme="light"] h2,
html[data-bs-theme="light"] h3, html[data-bs-theme="light"] h4,
html:not([data-bs-theme]) h1, html:not([data-bs-theme]) h2,
html:not([data-bs-theme]) h3, html:not([data-bs-theme]) h4 {
  color: var(--primary-color, var(--icobc-navy));
}
h1, .h1, .display-1, .display-2, .display-3, .display-4 {
  font-weight: 300; font-stretch: 80%; letter-spacing: -0.025em; line-height: 1.05;
}
h2, .h2 { font-weight: 400; font-stretch: 85%; letter-spacing: -0.015em; }
h3, .h3 { font-weight: 700; font-stretch: 92%; letter-spacing: -0.005em; }
h4, .h4, h5, .h5 { font-weight: 700; }
.lead { font-weight: 400; line-height: 1.55; }
a { text-decoration-thickness: 1px; text-underline-offset: 0.18em; }
:focus-visible { outline: 3px solid var(--icobc-cyan); outline-offset: 3px; }

/* ---------- Buttons ---------- */
.btn {
  border-radius: var(--icobc-radius);
  border-width: 1.5px;
  font-weight: 600;
  font-stretch: 92%;
}
.btn:not(.btn-sm):not(.btn-lg) { padding: 0.5rem 1.1rem; }
.btn-lg { padding: 0.8rem 1.5rem; font-size: 1.05rem; }

/* ---------- Chrome: header, cards, tables, forms ---------- */
html[data-bs-theme="light"] .navbar,
html:not([data-bs-theme]) .navbar {
  background: rgba(255, 255, 255, 0.94) !important;
  border-bottom: 1px solid var(--icobc-line);
  box-shadow: none !important;
}
.navbar .nav-link { font-weight: 600; font-stretch: 92%; }
html[data-bs-theme="light"] header.border-bottom,
html[data-bs-theme="light"] footer.border-top,
html[data-bs-theme="light"] .footer.border-top { border-color: var(--icobc-line) !important; }

html[data-bs-theme="light"] .card,
html:not([data-bs-theme]) .card { border-color: var(--icobc-line); border-radius: 8px; }
html[data-bs-theme="light"] .card-header,
html:not([data-bs-theme]) .card-header { background: var(--icobc-mist); border-bottom-color: var(--icobc-line); font-weight: 600; }
html[data-bs-theme="light"] .form-control:focus,
html[data-bs-theme="light"] .form-select:focus {
  border-color: var(--icobc-cyan); box-shadow: 0 0 0 0.2rem rgba(93, 202, 231, 0.3);
}
html[data-bs-theme="light"] .text-muted { color: var(--icobc-muted) !important; }
.badge { font-weight: 700; font-stretch: 92%; letter-spacing: 0.02em; }
.platform-powered-by { opacity: 0.85; white-space: nowrap; }

/* ---------- Building blocks for platform pages (landing page) ---------- */
.icobc-eyebrow {
  display: block; margin-bottom: 0.9rem;
  font-size: 0.8rem; font-weight: 700; letter-spacing: 0.14em; text-transform: uppercase;
  color: var(--icobc-lime-text);
}
.icobc-hero {
  position: relative; overflow: hidden;
  margin-top: -1.5rem;
  padding: clamp(56px, 8vw, 110px) 0 clamp(56px, 8vw, 100px);
  background: linear-gradient(135deg, var(--icobc-navy-deep) 0%, var(--icobc-navy) 55%, #14507A 100%);
  color: #DCE8F0;
}
.icobc-hero h1, .icobc-hero h2, .icobc-hero h3 { color: #FFFFFF !important; }
.icobc-hero .icobc-eyebrow { color: var(--icobc-lime); }
.icobc-hero .lead { color: #DCE8F0; max-width: 60ch; }
.icobc-hero a:not(.btn) { color: #FFFFFF !important; }
.icobc-hero .btn-light { background: #FFFFFF; border-color: #FFFFFF; color: var(--icobc-navy); }
.icobc-hero .btn-light:hover { background: var(--icobc-mist); border-color: var(--icobc-mist); color: var(--icobc-navy); }
.icobc-hero .btn-outline-light { border-color: rgba(255, 255, 255, 0.75); color: #FFFFFF; }
.icobc-hero .btn-outline-light:hover { background: #FFFFFF; color: var(--icobc-navy); }

.icobc-facts { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 1.5rem; margin: 2.5rem 0 0; padding: 0; list-style: none; }
.icobc-facts li { border-top: 3px solid var(--icobc-cyan); padding-top: 0.9rem; font-size: 0.95rem; }
.icobc-facts li:nth-child(2) { border-top-color: var(--icobc-orange); }
.icobc-facts li:nth-child(3) { border-top-color: var(--icobc-lime); }
.icobc-facts li:nth-child(4) { border-top-color: #FFFFFF; }
.icobc-facts strong { display: block; margin-bottom: 0.25rem; font-size: 1.2rem; font-weight: 700; font-stretch: 92%; line-height: 1.2; color: #FFFFFF; }

.icobc-section { padding: clamp(48px, 7vw, 88px) 0; }
.icobc-section--mist { background: var(--icobc-mist); }
.icobc-card {
  height: 100%; padding: 1.75rem; background: #FFFFFF;
  border: 1px solid var(--icobc-line); border-radius: 8px;
}
.icobc-card h3 { font-size: 1.2rem; }
.icobc-card p:last-child { margin-bottom: 0; }
.icobc-text-link { font-weight: 600; text-decoration: none; border-bottom: 1.5px solid var(--icobc-orange); padding-bottom: 2px; }
