/* Certifiedge contact + registration experience. Scoped intentionally. */
.ce-service-desk,
.ce-registration-page,
.ce-registration-router {
  --ce-form-ink: #0b1426;
  --ce-form-muted: #526077;
  --ce-form-line: #d9e1ec;
  --ce-form-surface: #ffffff;
  --ce-form-soft: #f5f8fc;
  --ce-form-dark: #091426;
  --ce-form-dark-2: #10243d;
  --ce-form-accent: var(--ce-blue, #2563eb);
  --ce-form-radius: 22px;
  font-family: var(--ce-font, Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif);
}

.ce-service-desk *, .ce-registration-page *, .ce-registration-router * { box-sizing: border-box; }
.ce-service-desk a, .ce-registration-page a, .ce-registration-router a { text-underline-offset: .18em; }

/* Contrast is explicit: dark surfaces = bright type. */
.ce-service-desk__hero,
.ce-registration-page__hero,
.ce-registration-router__hero {
  position: relative;
  overflow: hidden;
  background:
    radial-gradient(circle at 82% 12%, rgba(59,130,246,.22), transparent 34%),
    linear-gradient(135deg, var(--ce-form-dark) 0%, var(--ce-form-dark-2) 100%);
  color: #f8fbff !important;
  padding: clamp(3.25rem, 7vw, 6.5rem) 0 clamp(2.5rem, 5vw, 4.5rem);
}
.ce-service-desk__hero :is(h1,h2,h3,p,strong,span,li),
.ce-registration-page__hero :is(h1,h2,h3,p,strong,span,li),
.ce-registration-router__hero :is(h1,h2,h3,p,strong,span,li) { color: inherit !important; }
.ce-service-desk__hero-grid,
.ce-registration-page__hero-grid,
.ce-registration-router__hero-grid {
  display:grid; grid-template-columns:minmax(0,1.15fr) minmax(300px,.85fr); gap:clamp(2rem,5vw,5rem); align-items:center;
}
.ce-service-desk__hero h1,
.ce-registration-page__hero h1,
.ce-registration-router__hero h1 { max-width: 16ch; font-size:clamp(2.35rem,5.4vw,5rem); line-height:.98; letter-spacing:-.045em; margin:.55rem 0 1.15rem; }
.ce-service-desk__hero .ce-eyebrow,
.ce-registration-page__hero .ce-eyebrow,
.ce-registration-router__hero .ce-eyebrow { color:#9fc6ff !important; }
.ce-service-desk__hero-copy,
.ce-registration-page__hero-copy,
.ce-registration-router__hero-copy { max-width:68ch; color:#d7e3f3 !important; font-size:clamp(1rem,1.6vw,1.2rem); line-height:1.7; }

.ce-service-desk__promise,
.ce-registration-page__promise,
.ce-registration-router__promise { display:grid; gap:.75rem; margin:0; padding:0; list-style:none; }
.ce-service-desk__promise li,
.ce-registration-page__promise li,
.ce-registration-router__promise li { display:grid; grid-template-columns:42px 1fr; gap:.9rem; align-items:start; padding:1rem 1.05rem; border:1px solid rgba(255,255,255,.14); border-radius:16px; background:rgba(255,255,255,.055); backdrop-filter:blur(12px); }
.ce-service-desk__promise b,
.ce-registration-page__promise b,
.ce-registration-router__promise b { display:grid; place-items:center; width:42px; height:42px; border-radius:12px; background:#fff; color:var(--ce-form-dark) !important; }
.ce-service-desk__promise small,
.ce-registration-page__promise small,
.ce-registration-router__promise small { display:block; color:#bfd0e6 !important; margin-top:.2rem; line-height:1.45; }

/* Bright surfaces = dark type, guarded from global dark-theme selectors. */
.ce-service-desk__body,
.ce-registration-page__body,
.ce-registration-router__body { background:#eef3f9; padding:clamp(2rem,5vw,5rem) 0; color:var(--ce-form-ink) !important; }
.ce-service-desk__body :is(h1,h2,h3,h4,p,label,legend,strong,span,small,li),
.ce-registration-page__body :is(h1,h2,h3,h4,p,label,legend,strong,span,small,li),
.ce-registration-router__body :is(h1,h2,h3,h4,p,label,legend,strong,span,small,li) { color:inherit; }
.ce-service-desk__layout { display:grid; grid-template-columns:minmax(0,1.25fr) minmax(280px,.75fr); gap:clamp(1.4rem,3vw,2.6rem); align-items:start; }
.ce-service-desk__panel,
.ce-registration-page .ce-role-register,
.ce-registration-page__panel,
.ce-registration-router__panel { background:var(--ce-form-surface) !important; color:var(--ce-form-ink) !important; border:1px solid var(--ce-form-line); border-radius:var(--ce-form-radius); box-shadow:0 18px 55px rgba(25,45,76,.08); }
.ce-service-desk__panel { padding:clamp(1.25rem,3vw,2.25rem); }

.ce-service-progress,
.ce-registration-page .ce-register-progress { margin:0 0 2rem; }
.ce-service-progress ol,
.ce-registration-page .ce-register-progress ol { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:.55rem; list-style:none; padding:0; margin:0; }
.ce-registration-page .ce-register-progress ol { grid-template-columns:repeat(4,minmax(0,1fr)); }
.ce-service-progress li,
.ce-registration-page .ce-register-progress li { position:relative; min-width:0; display:flex; gap:.55rem; align-items:center; padding:.72rem .8rem; border-radius:13px; background:var(--ce-form-soft); color:#64748b !important; font-size:.86rem; font-weight:750; }
.ce-service-progress li span,
.ce-registration-page .ce-register-progress li span { display:grid; place-items:center; flex:0 0 28px; width:28px; height:28px; border-radius:999px; border:1px solid #c8d4e3; color:#42526a !important; background:#fff; }
.ce-service-progress li[aria-current="step"],
.ce-registration-page .ce-register-progress li[aria-current="step"] { background:#eaf2ff; color:#102c55 !important; }
.ce-service-progress li[aria-current="step"] span,
.ce-registration-page .ce-register-progress li[aria-current="step"] span,
.ce-registration-page .ce-register-progress li.is-complete span { background:var(--ce-form-accent); border-color:var(--ce-form-accent); color:#fff !important; }

.ce-service-step[hidden], .ce-registration-page .ce-register-step[hidden] { display:none !important; }
.ce-service-step > h2, .ce-registration-page .ce-register-step > h3 { margin-top:0; letter-spacing:-.025em; }
.ce-service-step__intro { color:var(--ce-form-muted) !important; max-width:70ch; line-height:1.65; }
.ce-service-type-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.8rem; margin:1.25rem 0 1.5rem; }
.ce-service-type { position:relative; display:block; cursor:pointer; }
.ce-service-type input { position:absolute; opacity:0; pointer-events:none; }
.ce-service-type__card { display:block; height:100%; padding:1rem 1.05rem; border:1px solid var(--ce-form-line); border-radius:16px; background:#fff; transition:border-color .18s ease, box-shadow .18s ease, transform .18s ease; }
.ce-service-type__card strong { display:block; margin-bottom:.28rem; color:var(--ce-form-ink) !important; }
.ce-service-type__card small { display:block; color:var(--ce-form-muted) !important; line-height:1.45; }
.ce-service-type input:checked + .ce-service-type__card { border-color:var(--ce-form-accent); box-shadow:0 0 0 3px rgba(37,99,235,.12); transform:translateY(-1px); }
.ce-service-type input:focus-visible + .ce-service-type__card { outline:3px solid #0b63ce; outline-offset:3px; }

.ce-service-grid,
.ce-registration-page .ce-register-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1rem 1.15rem; }
.ce-service-field,
.ce-registration-page .ce-auth-field { display:grid; gap:.42rem; min-width:0; }
.ce-service-field--wide,
.ce-registration-page .ce-register-wide,
.ce-registration-page .ce-pathway-choice { grid-column:1/-1; }
.ce-service-field label,
.ce-registration-page .ce-auth-field label { font-weight:760; color:var(--ce-form-ink) !important; }
.ce-service-field :is(input,select,textarea),
.ce-registration-page .ce-auth-field :is(input,select,textarea) { width:100%; min-height:50px; border:1px solid #becbda; border-radius:12px; background:#fff !important; color:#0b1426 !important; padding:.78rem .88rem; font:inherit; box-shadow:none; }
.ce-service-field textarea,
.ce-registration-page .ce-auth-field textarea { min-height:140px; resize:vertical; line-height:1.55; }
.ce-service-field :is(input,select,textarea):focus,
.ce-registration-page .ce-auth-field :is(input,select,textarea):focus { outline:3px solid rgba(37,99,235,.2); outline-offset:1px; border-color:#2563eb; }
.ce-service-field small,
.ce-registration-page .ce-auth-field small { color:var(--ce-form-muted) !important; line-height:1.5; }

.ce-service-actions,
.ce-registration-page .ce-register-step-actions { display:flex; flex-wrap:wrap; justify-content:space-between; align-items:center; gap:.75rem; margin-top:1.5rem; }
.ce-service-actions .ce-button,
.ce-registration-page .ce-register-step-actions .ce-button { min-height:48px; min-width:132px; justify-content:center; }
.ce-service-review,
.ce-registration-page .ce-register-review { display:grid; gap:.65rem; margin:1.15rem 0; }
.ce-service-review > div,
.ce-registration-page .ce-register-review > div { display:grid; grid-template-columns:minmax(120px,.35fr) 1fr; gap:1rem; padding:.75rem .9rem; border-radius:12px; background:var(--ce-form-soft); }
.ce-service-review strong,
.ce-registration-page .ce-register-review strong { color:var(--ce-form-ink) !important; }
.ce-service-review span,
.ce-registration-page .ce-register-review span { color:var(--ce-form-muted) !important; overflow-wrap:anywhere; }

.ce-service-desk__aside { display:grid; gap:1rem; position:sticky; top:1.5rem; }
.ce-service-desk__aside-card { padding:1.2rem; border-radius:18px; background:#fff; border:1px solid var(--ce-form-line); color:var(--ce-form-ink) !important; }
.ce-service-desk__aside-card h3 { margin:.1rem 0 .75rem; }
.ce-service-desk__timeline { list-style:none; padding:0; margin:0; display:grid; gap:.85rem; counter-reset:desk; }
.ce-service-desk__timeline li { counter-increment:desk; display:grid; grid-template-columns:32px 1fr; gap:.7rem; color:var(--ce-form-muted) !important; line-height:1.5; }
.ce-service-desk__timeline li::before { content:counter(desk); width:32px; height:32px; display:grid; place-items:center; border-radius:10px; background:#e8f1ff; color:#123e79; font-weight:800; }
.ce-service-ticket { padding:clamp(1.4rem,3vw,2rem); background:#e9f7ef !important; border:1px solid #b7dfc8; border-radius:20px; color:#123825 !important; }
.ce-service-ticket :is(h2,h3,p,strong,span) { color:inherit !important; }
.ce-service-ticket__ref { display:inline-flex; padding:.45rem .7rem; border-radius:999px; background:#fff; border:1px solid #b7dfc8; font-weight:850; letter-spacing:.02em; }
.ce-service-notice { padding:.9rem 1rem; border-radius:14px; background:#fff7df; border:1px solid #f0d68a; color:#4c3700 !important; margin-bottom:1rem; }
.ce-service-notice--error { background:#fff0f0; border-color:#efb8b8; color:#681c1c !important; }

.ce-service-offices { margin-top:2rem; }
.ce-service-offices > summary { cursor:pointer; font-weight:800; color:var(--ce-form-ink) !important; padding:.3rem 0 .9rem; }
.ce-service-office-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:.75rem; }
.ce-service-office { display:block; padding:1rem; background:#fff; border:1px solid var(--ce-form-line); border-radius:15px; color:var(--ce-form-ink) !important; text-decoration:none; }
.ce-service-office strong { display:block; color:inherit !important; margin-bottom:.25rem; }
.ce-service-office span { color:var(--ce-form-muted) !important; font-size:.9rem; overflow-wrap:anywhere; }

/* Registration route selector. */
.ce-registration-router__grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1.1rem; }
.ce-registration-router__card { position:relative; display:flex; flex-direction:column; min-height:270px; padding:clamp(1.35rem,3vw,2rem); border:1px solid var(--ce-form-line); border-radius:22px; background:#fff !important; color:var(--ce-form-ink) !important; text-decoration:none; box-shadow:0 14px 45px rgba(25,45,76,.07); transition:transform .18s ease, box-shadow .18s ease, border-color .18s ease; }
.ce-registration-router__card:hover { transform:translateY(-3px); border-color:#aabbd0; box-shadow:0 20px 55px rgba(25,45,76,.12); }
.ce-registration-router__card:focus-visible { outline:3px solid #0b63ce; outline-offset:4px; }
.ce-registration-router__card .ce-registration-router__index { display:grid; place-items:center; width:42px; height:42px; border-radius:13px; background:#eaf2ff; color:#123e79 !important; font-weight:850; margin-bottom:auto; }
.ce-registration-router__card h2 { margin:2rem 0 .55rem; color:var(--ce-form-ink) !important; }
.ce-registration-router__card p { color:var(--ce-form-muted) !important; line-height:1.6; }
.ce-registration-router__card .ce-button { align-self:flex-start; margin-top:.6rem; }
.ce-registration-router__org { margin-top:1.25rem; padding:1.05rem 1.15rem; display:flex; justify-content:space-between; gap:1rem; align-items:center; background:#0d1b2e; color:#f8fbff !important; border-radius:18px; }
.ce-registration-router__org :is(strong,span) { color:inherit !important; }
.ce-registration-router__org span { color:#cbd9ea !important; }

.ce-registration-page__body .ce-container { max-width:1120px; }
.ce-registration-page .ce-role-register { max-width:940px; margin:0 auto; padding:clamp(1.2rem,3vw,2.35rem); }
.ce-registration-page .ce-auth-back { display:inline-flex; margin-bottom:1rem; color:#24568f !important; font-weight:700; }
.ce-registration-page .ce-register-preferences { border:1px solid var(--ce-form-line); border-radius:15px; padding:1rem; margin-top:1.1rem; }
.ce-registration-page .ce-register-preferences legend { padding:0 .35rem; font-weight:800; }
.ce-registration-page .ce-auth-check { display:flex; gap:.65rem; align-items:flex-start; margin:.7rem 0; line-height:1.5; color:var(--ce-form-ink) !important; }
.ce-registration-page .ce-auth-check input[type="checkbox"] { width:20px; height:20px; min-width:20px; margin-top:.12rem; }
.ce-registration-page .ce-auth-message { border-radius:14px; padding:.9rem 1rem; margin:1rem 0; }
.ce-registration-page .ce-auth-message--notice { background:#eef7ff !important; border:1px solid #bddcf5; color:#173b5c !important; }
.ce-registration-page .ce-auth-message--error { background:#fff0f0 !important; border:1px solid #efb8b8; color:#681c1c !important; }
.ce-registration-page__school-link { max-width:940px; margin:1.1rem auto 0; display:flex; justify-content:space-between; gap:1rem; align-items:center; padding:1rem 1.1rem; border:1px solid #ccd7e5; background:#fff; border-radius:16px; color:var(--ce-form-ink) !important; }
.ce-registration-page__school-link p { margin:.2rem 0 0; color:var(--ce-form-muted) !important; }

@media (max-width: 900px) {
  .ce-service-desk__hero-grid,.ce-registration-page__hero-grid,.ce-registration-router__hero-grid,.ce-service-desk__layout { grid-template-columns:1fr; }
  .ce-service-desk__aside { position:static; grid-template-columns:repeat(2,minmax(0,1fr)); }
  .ce-service-office-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width: 700px) {
  .ce-service-progress ol,.ce-registration-page .ce-register-progress ol { display:flex; overflow-x:auto; padding-bottom:.3rem; scroll-snap-type:x proximity; }
  .ce-service-progress li,.ce-registration-page .ce-register-progress li { min-width:132px; scroll-snap-align:start; }
  .ce-service-type-grid,.ce-service-grid,.ce-registration-page .ce-register-grid,.ce-registration-router__grid,.ce-service-desk__aside,.ce-service-office-grid { grid-template-columns:1fr; }
  .ce-service-field--wide,.ce-registration-page .ce-register-wide { grid-column:auto; }
  .ce-registration-router__org,.ce-registration-page__school-link { align-items:flex-start; flex-direction:column; }
}
@media (max-width: 430px) {
  .ce-service-desk__hero,.ce-registration-page__hero,.ce-registration-router__hero { padding-top:2.6rem; }
  .ce-service-desk__hero h1,.ce-registration-page__hero h1,.ce-registration-router__hero h1 { font-size:clamp(2rem,11vw,3rem); }
  .ce-service-desk__panel,.ce-registration-page .ce-role-register { padding:1rem; border-radius:17px; }
  .ce-service-actions,.ce-registration-page .ce-register-step-actions { flex-direction:column-reverse; align-items:stretch; }
  .ce-service-actions .ce-button,.ce-registration-page .ce-register-step-actions .ce-button { width:100%; }
  .ce-service-review > div,.ce-registration-page .ce-register-review > div { grid-template-columns:1fr; gap:.25rem; }
}
@media (prefers-reduced-motion: reduce) {
  .ce-service-type__card,.ce-registration-router__card { transition:none !important; }
}

/* Email activation fallback lives inside the same scoped registration system. */
.ce-registration-confirmation__panel { max-width:760px; margin:0 auto; padding:clamp(1.2rem,3vw,2.35rem); }
.ce-registration-confirmation__panel .ce-os-confirm-card { margin:0; padding:0; border:0; box-shadow:none; background:transparent !important; color:var(--ce-form-ink) !important; }
.ce-registration-confirmation__panel .ce-os-confirm-card :is(h2,p,label,strong,span,small),
.ce-registration-confirmation__panel .ce-confirm-resend :is(label,p,strong,span,small) { color:var(--ce-form-ink) !important; }
.ce-registration-confirmation__panel .ce-auth-field { display:grid; gap:.42rem; margin:.9rem 0; }
.ce-registration-confirmation__panel :is(input[type=email],input[type=text]) { width:100%; min-height:50px; border:1px solid #becbda; border-radius:12px; padding:.78rem .88rem; background:#fff !important; color:#0b1426 !important; font:inherit; }
.ce-registration-confirmation__panel :is(input[type=email],input[type=text]):focus { outline:3px solid rgba(37,99,235,.2); outline-offset:1px; border-color:#2563eb; }
.ce-registration-confirmation__panel .ce-confirm-resend { margin-top:1.25rem; padding-top:1.25rem; border-top:1px solid var(--ce-form-line); display:grid; gap:.75rem; }
