/* The approved visual identity, shared by all secondary pages of version B. */
@font-face {
  font-family: "Lexend";
  font-style: normal;
  font-weight: 400 800;
  font-display: swap;
  src: url("assets/fonts/lexend/lexend-latin-ext-wght.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: "Lexend";
  font-style: normal;
  font-weight: 400 800;
  font-display: swap;
  src: url("assets/fonts/lexend/lexend-latin-wght.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;
}
:root {
  --ink: #172e49;
  --muted: #526172;
  --paper: #fafcff;
  --surface: #fff;
  --line: #dbe6ef;
  --primary: #155caa;
  --primary-dark: #0f4887;
  --accent: #6bb5f7;
  --soft-blue: #edf4fb;
  --shadow: 0 14px 36px rgb(25 69 112 / 6%), 0 2px 5px rgb(25 69 112 / 3%);
}
html { font-size: 18px; scroll-padding-top: 126px; }
body.site-theme-page {
  display: flex;
  flex-direction: column;
  min-height: 100vh;
  font-family: "Lexend", "Segoe UI", Arial, sans-serif;
  font-size: 18px;
  line-height: 1.65;
  -webkit-font-smoothing: antialiased;
  background:
    radial-gradient(ellipse 68% 16% at 108% 4%, rgb(201 225 252 / 70%) 0, rgb(201 225 252 / 28%) 42%, transparent 80%),
    radial-gradient(ellipse 62% 18% at -12% 23%, rgb(210 232 253 / 75%) 0, rgb(210 232 253 / 30%) 42%, transparent 80%),
    radial-gradient(ellipse 68% 17% at 108% 44%, rgb(201 225 252 / 65%) 0, rgb(201 225 252 / 26%) 42%, transparent 80%),
    radial-gradient(ellipse 62% 18% at -12% 66%, rgb(210 232 253 / 70%) 0, rgb(210 232 253 / 28%) 42%, transparent 80%),
    radial-gradient(ellipse 68% 18% at 108% 96%, rgb(201 225 252 / 60%) 0, rgb(201 225 252 / 24%) 42%, transparent 80%),
    #fafcff;
}
body.site-theme-page > main { flex: 1; min-width: 0; }
[hidden] { display: none !important; }
img { max-width: 100%; height: auto; }
button, input, textarea, select { font: inherit; }
input, textarea, select { min-width: 0; }
a { text-underline-offset: 5px; }
body.site-theme-page :focus-visible { outline: 3px solid #ad6400; outline-offset: 4px; }
.site-theme-page .theme-site-header :focus-visible { outline: 3px solid #ad6400; outline-offset: 4px; }
.site-theme-page :is(h1, h2, h3, h4, .admin-card-label, .admin-card-count strong, .admin-course-identity strong, .formations-level-nav strong, .quick-access strong, .phone-number) {
  font-family: "Lexend", "Segoe UI", Arial, sans-serif;
  font-weight: 700;
  text-wrap: balance;
}
.site-theme-page h1 { font-size: clamp(2.1rem, 3.8vw, 3.6rem); line-height: 1.16; letter-spacing: -1.2px; }
.site-theme-page h2 { font-size: clamp(1.75rem, 2.8vw, 2.65rem); line-height: 1.2; letter-spacing: -.8px; }
.site-theme-page h3 { line-height: 1.3; }
.site-theme-page strong { font-weight: 700; }
.eyebrow {
  position: relative;
  margin-bottom: 18px;
  padding-bottom: 8px;
  font-size: .8rem;
  line-height: 1.5;
  font-weight: 700;
  letter-spacing: 1.7px;
}
.eyebrow::before {
  content: "";
  position: absolute;
  bottom: 0;
  left: 0;
  width: 22px;
  height: 3px;
  border-radius: 3px;
  background: linear-gradient(110deg, #6bb5f7, #155caa);
  box-shadow: 0 1px 1px rgb(21 92 170 / 18%);
}

/* Same logo scale and navigation behavior as the landing page. */
.theme-site-header {
  display: block;
  flex: none;
  min-height: 0;
  padding: 0;
  background: #f7f9fc;
  border-bottom: 1px solid var(--line);
  z-index: 30;
}
.theme-header-inner, .theme-footer-inner {
  display: flex;
  width: min(1200px, calc(100% - 96px));
  margin-inline: auto;
  align-items: center;
  justify-content: space-between;
  gap: 26px;
}
.theme-header-inner { min-height: 110px; }
.theme-header-inner > .brand { flex: 0 1 300px; min-width: 0; }
.theme-header-inner .brand-logo { width: 300px; height: auto; }
.theme-site-header .main-nav { margin-left: auto; gap: 18px; flex-wrap: nowrap; width: auto; }
.theme-site-header .main-nav a {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  padding: 8px 4px;
  font-size: .94rem;
  font-weight: 600;
  line-height: 1.4;
  color: var(--ink);
  white-space: nowrap;
  text-align: left;
}
.theme-site-header .main-nav a:hover, .theme-site-header .main-nav a[aria-current="page"] {
  color: var(--primary);
  background: transparent;
}
.theme-site-header .main-nav .student-login-link {
  margin-left: 0;
  border: 0;
  border-radius: 8px;
  color: var(--muted);
  background: transparent;
}
.theme-menu-toggle, .theme-site-header .admin-public-link, .theme-site-header .admin-main-nav button {
  flex-shrink: 0;
  min-height: 46px;
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 10px 14px;
  background: linear-gradient(170deg, #fff, #f4f8fc);
  color: var(--ink);
  font-size: .9rem;
  font-weight: 600;
  line-height: 1.4;
  box-shadow: 0 2px 4px rgb(24 69 111 / 4%);
}
.theme-menu-toggle::before { content: "☰"; margin-right: 8px; }
.theme-site-header .admin-main-nav form { margin: 0; }
.theme-site-header .main-nav .theme-contact-link {
  min-height: 48px;
  padding: 12px 18px;
  border: 1px solid #1761aa;
  color: #fff;
  background: linear-gradient(170deg, #2876bc, #155caa 74%);
  box-shadow: inset 0 1px 0 rgb(255 255 255 / 23%), 0 2px 0 #104d8d, 0 6px 12px rgb(21 92 170 / 13%);
}
.nav-label-mobile { display: none; }
.nav-label-desktop { display: inline; }
.theme-site-footer { padding-block: 34px; background: transparent; }
.theme-footer-inner { flex-wrap: wrap; }
.theme-footer-inner > .brand { flex: 0 1 260px; min-width: 0; }
.theme-footer-inner .brand-logo { width: 260px; height: auto; }
.theme-footer-inner p, .theme-footer-inner > a:last-child { color: var(--muted); font-size: .88rem; }
.theme-footer-inner > a:last-child { color: var(--primary-dark); font-weight: 600; }

/* Raised white surfaces keep every form and list readable over the halos. */
.button { min-height: 54px; border-width: 1px; border-radius: 8px; font-weight: 600; line-height: 1.4; }
.button-primary, .account-actions .account-action-primary {
  border-color: #1761aa;
  background: linear-gradient(170deg, #2876bc, #155caa 74%);
  color: #fff;
  box-shadow: inset 0 1px 0 rgb(255 255 255 / 23%), 0 2px 0 #104d8d, 0 6px 12px rgb(21 92 170 / 13%);
}
.button-primary:hover { background: linear-gradient(170deg, #226caf, #104f96 74%); }
.button-secondary { border-color: #b3c7db; background: linear-gradient(170deg, #fff, #f4f8fc); color: var(--primary-dark); }
.site-theme-page :is(.login-card, .login-benefits > div, .formations-level-nav > a, .formation-level, .support-block, .admin-panel, .admin-home-card, .admin-editor-section, .admin-table-wrap, .contact-form, .contact-panel, .account-actions > a, .account-logout, .account-course-list > article, .service-grid > article, .level-list > article) {
  min-width: 0;
  border: 1px solid var(--line);
  border-radius: 18px;
  background: linear-gradient(155deg, #fff 30%, #f8fbfe);
  box-shadow: var(--shadow), inset 0 1px 0 #fff;
}
.site-theme-page .account-actions > .account-action-primary {
  color: #fff;
  background: linear-gradient(170deg, #2876bc, #155caa 74%);
}
.site-theme-page :is(.login-card input, .form-row input, .form-row textarea, .admin-field input, .admin-field select, .admin-field textarea, .admin-search-field input) {
  min-height: 50px;
  border: 1px solid #98acbf;
  border-radius: 6px;
  background: #fff;
  box-shadow: inset 0 2px 3px rgb(23 61 96 / 3%);
}
.login-card label, .form-row label, .admin-field label, .admin-search-field label { font-weight: 600; }
.site-theme-page :is(.formations-level-link, .formations-level-promise, .level-name, .back-link, .course-duration, .admin-back-link, .admin-text-link, .admin-status, .admin-tabs button, .account-logout, .login-benefits strong) { font-weight: 600; }
.admin-tabs { border-radius: 12px; }
.admin-tabs button[aria-selected="true"] { background: var(--primary); }
.admin-section-number, .support-step, .formations-course-list > li > span {
  border: 1px solid #e3edf8;
  border-radius: 12px;
  background: radial-gradient(ellipse at 28% 14%, #fff 0 26%, transparent 72%), linear-gradient(145deg, #fff 6%, #f0f6ff 60%, #dbe9f9);
  box-shadow: inset 1px 2px 3px #fff, 0 2px 0 #d4e2f2, 0 5px 10px rgb(30 79 126 / 8%);
  color: var(--primary);
  font-weight: 700;
}
.theme-page-illustration { display: block; width: 94px; height: 94px; object-fit: contain; margin-bottom: 20px; }
.theme-service-illustration { display: block; width: 82px; height: 82px; object-fit: contain; margin-bottom: 20px; }

/* Page layouts keep the approved margins while retaining all existing controls. */
.formations-page main { overflow: visible; }
.formations-hero, .formations-level-nav, .formations-level-section, .formations-final, .formations-contact-section,
.login-page, .confirmation-page, .account-page, .account-section, .course-page, .admin-shell {
  width: min(1200px, calc(100% - 96px));
  max-width: 1200px;
  margin-inline: auto;
  padding-inline: 0;
}
.formations-hero, .formations-level-nav, .formations-level-section, .formations-level-alternate, .formations-contact-section {
  border-top: 0;
  background: transparent;
}
.formations-hero { position: relative; padding-top: 64px; }
.formations-hero h1 { max-width: 960px; }
.formations-hero > p:not(.eyebrow) { max-width: 850px; }
.formations-level-nav { gap: 22px; padding-top: 12px; padding-bottom: 48px; }
.formations-level-nav a { min-height: 250px; padding: 28px; }
.formations-level-nav strong { font-size: 1.3rem; line-height: 1.35; }
.formations-level-section { padding-block: 64px; }
.formations-level-content, .formations-level-footer { grid-template-columns: minmax(0, .8fr) minmax(0, 1.3fr); gap: 60px; }
.formations-level-promise { font-size: 1.1rem; }
.formations-course-list { padding: 24px; border: 1px solid var(--line); border-radius: 18px; background: #fff; box-shadow: var(--shadow); }
.formations-course-list li:first-child { border-top: 0; }
.formations-course-list li:last-child { border-bottom: 0; }
.formations-course-list li { gap: 12px; }
.formations-course-list strong { font-size: .96rem; font-weight: 500; }
.formations-course-list time { font-size: .9rem; font-weight: 600; }
.formations-reassurance { border-left: 3px solid var(--accent); border-radius: 0 12px 12px 0; }
.formations-final { border-radius: 24px; padding: 36px; background: #173d60; }
.formations-final .eyebrow::before { background: linear-gradient(110deg, #d2eaff, #8dbfed); }
.formations-final .button-primary { border-color: #b3c7db; background: #fff; color: var(--primary-dark); }
.formations-contact-section { padding-block: 64px; }
.contact-photo { width: 100%; max-width: 360px; height: auto; border: 0; border-radius: 0; object-fit: contain; background: transparent; box-shadow: none; justify-self: center; }
.login-page { min-height: calc(100vh - 250px); padding-block: 64px; gap: 64px; }
.login-intro h1 { font-size: clamp(2rem, 3.5vw, 3.25rem); }
.login-intro > p { font-size: 1.05rem; }
.login-benefits { grid-template-columns: 1fr; gap: 14px; margin-top: 28px; }
.login-benefits > div { padding: 16px 20px; }
.login-benefits strong { font-size: 1rem; }
.login-benefits span { font-size: .94rem; }
.login-card { padding: 32px; }
.login-card-heading h2 { font-size: 1.45rem; }
.confirmation-page { min-height: calc(100vh - 250px); padding-block: 80px; }
.confirmation-page h1 { max-width: 900px; }
.account-page, .account-section, .course-page { padding-block: 56px; }
.account-page-simple { grid-template-columns: minmax(0, 1fr) minmax(0, 420px); }
.account-page-simple h1, .course-page h1 { font-size: clamp(2rem, 3.4vw, 3.2rem); }
.course-access-list article { background: #f7faff; border-radius: 12px; }
.support-block h2 { font-size: 1.6rem; }
.support-step { border-radius: 12px; }
.admin-shell { padding-block: 48px 72px; }
.admin-page-heading h1 { font-size: clamp(1.9rem, 3.2vw, 2.8rem); line-height: 1.2; }
.admin-page-heading { border-bottom: 0; padding-bottom: 20px; }
.admin-page-heading-actions, .admin-level-list-heading { flex-wrap: wrap; }
.admin-card-label { font-size: 1.6rem; }
.admin-login-main { width: min(520px, calc(100% - 96px)); margin-inline: auto; padding: 56px 0 64px; }
.admin-login-panel { width: 100%; }
.admin-login-heading h1 { font-size: 2.5rem; }
.admin-editor-section { padding: 28px; }
.admin-table-wrap { position: relative; max-width: 100%; }
.admin-level-lists { grid-template-columns: minmax(0, 1fr); }
.admin-level-list { min-width: 0; }
.admin-table th { background: #edf4fb; color: var(--ink); font-weight: 600; letter-spacing: .4px; }
.admin-editor-form, .admin-list-section, .admin-level-lists, .admin-field { min-width: 0; }
.admin-support-item { border-radius: 12px; }
.admin-support-heading { flex-wrap: wrap; }
.admin-support-heading > div { min-width: 0; flex: 1 1 140px; }
.admin-support-item { min-width: 0; }
.admin-support-item small { overflow-wrap: anywhere; }
.admin-course-choice { border-radius: 10px; }
.theme-demo-page :is(.hero-section, .quick-access, .section, .student-preview, .contact-section) { background: transparent; }
.theme-demo-page .hero-media img, .theme-demo-page .hero-photo { object-fit: contain; }
.theme-demo-page .student-preview > img { width: 94px; height: 94px; object-fit: contain; }

@media (max-width: 1200px) {
  html { scroll-padding-top: 110px; }
  .theme-header-inner { min-height: 94px; }
  .theme-header-inner > .brand { flex-basis: 260px; }
  .theme-header-inner .brand-logo { width: 260px; }
  .theme-site-header .main-nav { gap: 14px; }
  .theme-site-header .main-nav a { font-size: .87rem; }
}
@media (max-width: 1100px) {
  .theme-menu-toggle { margin-left: auto; }
  .theme-menu-ready .main-nav { position: absolute; top: 100%; left: 0; right: 0; margin: 0; padding: 16px 24px; display: flex; align-items: stretch; flex-direction: column; gap: 4px; border-bottom: 1px solid var(--line); background: #fff; box-shadow: 0 8px 16px rgb(23 61 96 / 8%); }
  .theme-site-header .main-nav a { display: flex; padding: 12px; white-space: normal; font-size: 1rem; }
  .theme-site-header .admin-main-nav form { margin: 6px 0 0; }
  .theme-site-header .admin-main-nav button { width: 100%; text-align: left; }
  .theme-site-header:not(.theme-menu-ready) .theme-header-inner { flex-wrap: wrap; }
  .theme-site-header:not(.theme-menu-ready) .main-nav { flex-wrap: wrap; }
  .login-page { gap: 36px; }
  .formations-level-content, .formations-level-footer { gap: 36px; }
}
@media (max-width: 980px) {
  .login-page, .account-page-simple, .formations-level-content, .formations-level-footer { grid-template-columns: 1fr; }
  .formations-level-nav { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .formations-level-nav a { padding: 22px; }
  .admin-home-grid { grid-template-columns: 1fr; }
}
@media (max-width: 800px) {
  .theme-header-inner, .theme-footer-inner, .formations-hero, .formations-level-nav, .formations-level-section, .formations-final, .formations-contact-section, .login-page, .confirmation-page, .account-page, .account-section, .course-page, .admin-shell { width: calc(100% - 48px); }
  .formations-level-nav { grid-template-columns: 1fr; }
  .formations-level-nav a { min-height: 210px; }
  .formations-level-section, .formations-contact-section { padding-block: 48px; }
  .formations-course-list { padding: 20px; }
  .theme-footer-inner { gap: 18px 24px; }
  .theme-footer-inner > p { display: none; }
  .login-page { padding-block: 48px; }
}
@media (max-width: 560px) {
  html { scroll-padding-top: 102px; }
  .theme-header-inner, .theme-footer-inner, .formations-hero, .formations-level-nav, .formations-level-section, .formations-final, .formations-contact-section, .login-page, .confirmation-page, .account-page, .account-section, .course-page, .admin-shell { width: calc(100% - 40px); }
  .theme-header-inner { min-height: 86px; gap: 10px; }
  .theme-header-inner > .brand { flex-basis: 225px; }
  .theme-header-inner .brand-logo { width: 225px; }
  .theme-menu-toggle { padding-inline: 10px; font-size: .85rem; }
  .theme-site-header .admin-public-link { max-width: 110px; width: auto; padding: 8px 10px; font-size: .8rem; }
  .theme-footer-inner > .brand { flex-basis: 225px; }
  .theme-footer-inner .brand-logo { width: 225px; }
  .site-theme-page h1 { font-size: 2.15rem; letter-spacing: -.8px; }
  .site-theme-page h2 { font-size: 1.85rem; }
  .eyebrow { font-size: .74rem; letter-spacing: 1.2px; }
  .theme-page-illustration { width: 78px; height: 78px; }
  .formations-hero { padding-top: 34px; }
  .formations-hero-lead { font-size: 1.08rem; }
  .formations-course-list { padding: 12px 16px; }
  .formations-course-list li { grid-template-columns: 42px minmax(0, 1fr); gap: 8px 12px; padding-block: 16px; }
  .formations-course-list time { grid-column: 2; text-align: left; }
  .formations-final { padding: 26px 22px; border-radius: 18px; }
  .login-card, .admin-editor-section, .support-block { padding: 24px 20px; border-radius: 14px; }
  .login-card-heading h2 { font-size: 1.3rem; }
  .login-card-heading img { width: 48px; height: 48px; }
  .login-card-heading { gap: 12px; }
  .login-card-heading p, .login-help { font-size: .92rem; }
  .admin-login-main { width: calc(100% - 40px); padding-block: 40px; }
  .admin-login-heading h1 { font-size: 2.15rem; }
  .admin-shell { padding-block: 36px 48px; }
  .admin-field input, .admin-field select, .admin-field textarea { width: 100%; }
  .admin-tabs button { padding-inline: 10px; font-size: .9rem; }
  .admin-section-title { align-items: flex-start; }
  .admin-section-title h2, .support-block h2 { font-size: 1.4rem; }
  .admin-table-wrap { border-radius: 14px; }
  .admin-table { min-width: 700px; }
  .course-access-list article .button, .pdf-actions .button { width: 100%; }
  .support-block video { min-height: 0; }
}
@media print {
  body.site-theme-page { display: block; background: #fff; color: #172e49; }
  .theme-site-header, .theme-site-footer, .theme-menu-toggle { display: none; }
  .site-theme-page :is(.login-card, .formation-level, .support-block, .admin-panel, .admin-editor-section, .formations-course-list) { box-shadow: none; }
  .eyebrow::before { background: currentColor; box-shadow: none; }
}
