/* Certification Management extends the existing solution-page design. */
.certification-page .site-header { background: linear-gradient(var(--canvas), rgba(244,244,241,0)); }
.cert-hero { grid-template-columns:1.08fr 1fr; gap:5vw; }
.cert-hero h1 { font-size:clamp(58px,6.6vw,102px); }
.cert-hero .ai-hero-intro { max-width:480px; }
.cert-stage { margin:0; padding:32px; border-radius:32px; background:#e9e6de; }
.cert-paper { padding:28px; border:1px solid #dedbd2; border-radius:5px; background:#fffdf8; box-shadow:0 18px 35px #36311b0d; transform:rotate(-2deg); }
.cert-paper-top { display:flex; align-items:center; justify-content:space-between; gap:12px; }
.cert-paper-top img { width:72px; }
.cert-seal { display:grid; place-items:center; width:50px; height:50px; margin:24px 0 18px; border:1px solid #c78945; outline:1px solid #c78945; outline-offset:4px; border-radius:50%; color:#a16127; font-size:25px; }
.cert-paper h2 { margin:14px 0 20px; font-family:Georgia,serif; font-size:clamp(28px,2.7vw,40px); line-height:1.06; font-weight:400; letter-spacing:-.04em; }
.cert-paper-name { font-size:13px; font-weight:600; }
.cert-paper-name span { color:#746e64; font-weight:400; }
.cert-dates { display:grid; grid-template-columns:1fr 1fr; gap:14px; padding-top:18px; margin:20px 0; border-top:1px solid #e4ded3; }
.cert-dates dt { margin-bottom:6px; font-size:10px; color:#746e64; }
.cert-dates dd { margin:0; font-size:12px; font-weight:600; }
.cert-paper-foot { display:flex; align-items:center; justify-content:space-between; gap:10px; font-size:10px; color:#756850; }
.cert-status { display:inline-flex; align-items:center; gap:7px; padding:7px 10px; border-radius:99px; font-size:10px; font-weight:600; line-height:1.3; white-space:nowrap; }
.cert-status::before { width:5px; height:5px; border-radius:50%; background:currentColor; content:""; }
.cert-status-valid { color:#38614b; background:#e9f0e9; }
.cert-status-due { color:#8a501d; background:#faead3; }
.cert-status-expired { color:#9b4e40; background:#f6e5df; }
.cert-overview { display:flex; align-items:center; gap:14px; margin-top:24px; padding:18px; border-radius:14px; background:#202a2c; color:#fff; }
.cert-overview-icon { font-size:30px; color:#ffad65; }
.cert-overview strong { font-size:14px; }
.cert-overview p { margin:5px 0 0; font-size:11px; line-height:1.5; color:#d0d4d1; }
.cert-stage figcaption,.cert-ocr-stage figcaption { margin-top:18px; color:#6b665c; font-size:10px; line-height:1.6; }
.cert-stage figcaption { text-align:center; }
.cert-statement,.cert-section { width:min(1180px,calc(100% - 80px)); margin:auto; }
.cert-statement { padding:85px 0 95px; border-top:1px solid var(--line); }
.cert-statement p { margin:0; font-size:clamp(32px,4vw,58px); font-weight:600; letter-spacing:-.065em; line-height:1.1; }
.cert-statement em { color:var(--orange); font-family:Georgia,serif; font-weight:400; }
.cert-section { padding:55px 0 110px; }
.certification-page .ops-section-head h2 { margin-top:0; }




.cert-upload-steps p { margin:0; color:var(--muted); font-size:15px; line-height:1.7; }








.cert-card-heading { display:flex; justify-content:space-between; align-items:center; gap:10px; }







.cert-ocr { padding-top:0; }
.cert-ocr-stage { display:grid; grid-template-columns:1fr 100px 1.2fr; align-items:center; margin:0; padding:50px; border-radius:28px; background:#e9e6de; }








.cert-ocr-connector { display:grid; justify-items:center; gap:12px; }
.cert-ocr-connector span { display:grid; place-items:center; width:44px; height:44px; border-radius:50%; background:var(--orange); font-size:25px; }
.cert-ocr-connector strong { font-size:10px; letter-spacing:.1em; }
.cert-extracted { padding:28px; border-radius:18px; background:#fff; box-shadow:0 15px 40px #312c2109; }
.cert-review-label { color:#746953; font-size:10px; }




.cert-review-note { display:flex; gap:9px; margin:0; color:#4e6657; font-size:11px; line-height:1.5; }
.cert-ocr-stage figcaption { grid-column:1/-1; text-align:center; margin:25px 0 0; }
.cert-upload-steps { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:36px; margin-top:44px; }
.cert-upload-steps h3 { font-size:23px; letter-spacing:-.045em; line-height:1.15; margin:0 0 12px; }
.certification-page .product-faq { padding-top:100px; padding-bottom:100px; }
.certification-page a:focus-visible,.certification-page summary:focus-visible { outline:2px solid #ab4d05; outline-offset:5px; }
@media (min-width:821px) and (max-width:1100px) { .cert-hero { gap:30px; }.cert-hero h1 { font-size:62px; }.cert-stage { padding:22px; }.cert-paper { padding:22px; }.cert-ocr-stage { padding:30px; grid-template-columns:1fr 70px 1.2fr; } }
@media (max-width:820px) {
 .cert-hero { grid-template-columns:1fr; gap:40px; }.cert-hero h1 { font-size:clamp(51px,10.8vw,85px); }.cert-stage { width:100%; max-width:550px; justify-self:center; }.cert-paper h2 { font-size:38px; }
 .cert-statement,.cert-section { width:min(100% - 40px,640px); }.cert-statement { padding:65px 0; }.cert-section { padding:30px 0 75px; }
 
 .cert-ocr { padding-top:0; }.cert-ocr-stage { padding:30px; grid-template-columns:1fr; gap:25px; }.cert-ocr-connector { display:flex; justify-content:center; }.cert-ocr-connector span { transform:rotate(90deg); }.cert-ocr-stage figcaption { margin:0; }.cert-upload-steps { grid-template-columns:1fr; gap:30px; }.cert-upload-steps article { border-top:1px solid var(--line); padding-top:22px; }
 .certification-page .product-faq { padding:75px 0; }
}
@media (max-width:420px) { .cert-stage { padding:23px 18px; }.cert-paper { padding:22px; }.cert-paper h2 { font-size:32px; }.cert-ocr-stage { padding:25px 18px; }.cert-extracted { padding:22px; }.cert-card-heading { flex-wrap:wrap; }.cert-hero .ai-text-link { font-size:12px; } }
@media (prefers-reduced-motion:reduce) { .certification-page .reveal { opacity:1; transform:none; } }

/* A visual journey from a current credential to its next renewal. */
.cert-lifecycle { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; }
.cert-journey-card { position:relative; min-width:0; padding:28px 26px 32px; border:1px solid #00000008; border-radius:26px; background:#e5ecdf; }
.cert-journey-due { background:#f4e4d2; }
.cert-journey-expired { background:#26332e; color:#fffaf0; }
.cert-journey-status { display:inline-flex; align-items:center; gap:9px; font-size:15px; font-weight:600; letter-spacing:-.02em; }
.cert-journey-status>span { display:grid; place-items:center; width:29px; height:29px; border:1px solid currentColor; border-radius:50%; font-size:19px; line-height:1; }
.cert-journey-valid .cert-journey-status { color:#355b43; }
.cert-journey-due .cert-journey-status { color:#8a4a1a; }
.cert-journey-expired .cert-journey-status { color:#ffb77c; }
.cert-journey-art { margin:15px -8px 12px; }
.cert-journey-art svg { display:block; width:100%; height:auto; overflow:visible; }
.cert-journey-copy h3 { margin:0 0 20px; font-size:clamp(30px,3.1vw,43px); line-height:.98; letter-spacing:-.06em; font-weight:650; }
.cert-journey-copy p { margin:0; color:#505b4c; font-size:15px; line-height:1.7; }
.cert-journey-due .cert-journey-copy p { color:#6e5744; }
.cert-journey-expired .cert-journey-copy p { color:#d0d8ce; }
.cert-art-paper,.cert-art-stamp,.cert-art-calendar,.cert-art-clock,.cert-art-old,.cert-art-new,.cert-art-renew { transform-box:fill-box; transform-origin:center; transition:transform .55s var(--ease); }
@media (hover:hover) and (prefers-reduced-motion:no-preference) {
 .cert-journey-valid:hover .cert-art-paper { transform:translateY(-5px) rotate(-3deg); }
 .cert-journey-valid:hover .cert-art-stamp { transform:rotate(9deg) scale(1.06); }
 .cert-journey-due:hover .cert-art-calendar { transform:rotate(-4deg); }
 .cert-journey-due:hover .cert-art-clock { transform:rotate(12deg) translateY(-4px); }
 .cert-journey-expired:hover .cert-art-old { transform:translateX(-6px) rotate(-4deg); }
 .cert-journey-expired:hover .cert-art-new { transform:translateY(-7px) rotate(4deg); }
 .cert-journey-expired:hover .cert-art-renew { transform:translateY(-5px); }
}
@media (prefers-reduced-motion:no-preference) {
 .cert-journey-card.is-visible .cert-journey-art { animation:certJourneyArrive .85s var(--ease) both; }
 .cert-journey-due.is-visible .cert-journey-art { animation-delay:.12s; }
 .cert-journey-expired.is-visible .cert-journey-art { animation-delay:.24s; }
}
@keyframes certJourneyArrive { from { opacity:0; transform:translateY(15px) rotate(-3deg); } to { opacity:1; transform:translateY(0) rotate(0); } }
@media (max-width:820px) {
 .cert-lifecycle { grid-template-columns:1fr; gap:18px; }
 .cert-journey-card { display:grid; grid-template-columns:1fr 1.2fr; column-gap:22px; align-items:center; padding:26px; }
 .cert-journey-status { grid-column:1/-1; margin-bottom:8px; }
 .cert-journey-art { margin:8px -8px 0; }
 .cert-journey-copy { padding-top:14px; }
 .cert-journey-copy h3 { font-size:35px; }
}
@media (max-width:520px) {
 .cert-journey-card { display:block; padding:26px; }
 .cert-journey-art { max-width:290px; margin:8px auto 14px; }
 .cert-journey-copy { padding-top:0; }
 .cert-journey-copy h3 { font-size:38px; }
}

/* Photographic certificate supplied to the OCR illustration. */
.cert-upload-photo { display:block; width:100%; height:auto; aspect-ratio:1; object-fit:contain; border-radius:16px; box-shadow:0 16px 32px #312c2114; }
@media (max-width:820px) { .cert-upload-photo { max-width:460px; justify-self:center; } }

/* Full-width career progression story. */
.cert-promotion { position:relative; background:#292924; color:#fffdf5; }
.cert-promotion-photo { display:block; width:100%; height:clamp(500px,35vw,820px); object-fit:cover; object-position:65% center; }
.cert-promotion-content { position:absolute; inset:0 0 auto; height:clamp(500px,35vw,820px); display:flex; align-items:center; padding:50px max(40px,calc((100% - 1380px)/2)); background:linear-gradient(90deg,rgba(20,22,19,.67) 0%,rgba(20,22,19,.32) 36%,transparent 64%); }
.cert-promotion-copy { width:43%; max-width:560px; }
.cert-promotion-copy h2 { margin:0 0 28px; font-size:clamp(44px,4.4vw,72px); font-weight:600; line-height:1.01; letter-spacing:-.065em; }

.cert-promotion-copy>p { max-width:410px; margin:0; color:#f2ede5; font-size:18px; line-height:1.65; }





@media (max-width:820px) {
 .cert-promotion-photo { height:auto; aspect-ratio:1.65; object-position:78% center; }
 .cert-promotion-content { position:static; height:auto; padding:45px 20px 50px; background:none; }
 .cert-promotion-copy { width:100%; max-width:640px; margin:auto; }
 .cert-promotion-copy h2 { font-size:clamp(42px,7.8vw,62px); }
 .cert-promotion-copy>p { max-width:560px; font-size:17px; }
 
 
 
 
}

/* Centered certificate issuance journey. */
.cert-issuance { padding-top:0; }
.cert-issuance-copy { max-width:900px; margin:0 auto 46px; text-align:center; }
.cert-issuance-copy h2 { margin:0 0 24px; font-size:clamp(40px,4.4vw,64px); font-weight:600; line-height:1.02; letter-spacing:-.065em; }
.cert-issuance-copy>p { max-width:680px; margin:0 auto; color:var(--muted); font-size:17px; line-height:1.7; }
.cert-issuance-steps { position:relative; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:35px; list-style:none; margin:0; padding:48px 36px 44px; border-radius:28px; background:#eae6dc; }
.cert-issuance-steps::before { position:absolute; top:110px; left:18%; right:18%; border-top:2px dashed #c8b69d; content:""; }
.cert-issuance-steps li { position:relative; z-index:1; min-width:0; text-align:center; }
.cert-issuance-steps li>span { display:grid; place-items:center; width:126px; height:126px; margin:0 auto 32px; border:8px solid #eae6dc; border-radius:50%; background:#fffaf1; color:#4f6450; box-shadow:0 8px 20px #453c2710; }
.cert-issuance-steps li:nth-child(2)>span { background:#fd7e15; color:#fff; }
.cert-issuance-steps li:last-child>span { background:#26332e; color:#fff5e6; }
.cert-issuance-steps svg { width:60px; height:60px; }
.cert-issuance-steps h3 { max-width:260px; margin:0 auto 12px; font-size:25px; line-height:1.12; letter-spacing:-.045em; font-weight:600; }
.cert-issuance-steps p { max-width:260px; margin:0 auto; color:#656258; font-size:15px; line-height:1.6; }
@media (max-width:820px) {
 .cert-issuance { padding-top:0; }
 .cert-issuance-copy { margin-bottom:32px; }
 .cert-issuance-copy h2 { font-size:clamp(38px,7vw,52px); }
 .cert-issuance-steps { gap:20px; padding:35px 22px; }
 .cert-issuance-steps::before { top:87px; }
 .cert-issuance-steps li>span { width:106px; height:106px; margin-bottom:22px; }
 .cert-issuance-steps svg { width:50px; height:50px; }
 .cert-issuance-steps h3 { font-size:21px; }
}
@media (max-width:580px) {
 .cert-issuance-steps { grid-template-columns:1fr; gap:0; padding:30px 24px; }
 .cert-issuance-steps::before { display:none; }
 .cert-issuance-steps li+li { margin-top:28px; padding-top:38px; border-top:1px solid #cfc7b8; }
 .cert-issuance-steps li+li::before { position:absolute; top:-15px; left:calc(50% - 15px); display:grid; place-items:center; width:30px; height:30px; border-radius:50%; background:#eae6dc; color:#8c6442; font-size:23px; content:"↓"; }
 .cert-issuance-steps h3 { max-width:290px; font-size:24px; }
}

.certification-page #ocr-title { font-size:clamp(40px,4.4vw,64px); font-weight:600; letter-spacing:-.065em; line-height:1.02; }
@media (max-width:820px) { .certification-page #ocr-title { font-size:clamp(38px,7vw,52px); } }

/* Transition between generating and uploading certificates. */
.cert-issuance { padding-bottom:0; }
.cert-also-divider { display:flex; align-items:center; gap:24px; width:min(1180px,calc(100% - 80px)); margin:48px auto; color:var(--ink); font-size:22px; font-weight:500; }
.cert-also-divider::before,.cert-also-divider::after { flex:1; height:1px; background:rgba(0,0,0,.2); content:""; }
@media (max-width:820px) { .cert-also-divider { width:min(100% - 40px,640px); margin:36px auto; gap:20px; font-size:20px; } }

#certification-lifecycle { padding-top:0; margin-top:0; }

/* OCR output presented as a CSV-style data table. */
.cert-extracted { min-width:0; padding:0; border:1px solid #d4d5cc; border-radius:12px; overflow:hidden; }
.cert-table-scroll { overflow-x:auto; }
.cert-table-scroll:focus-visible { outline:2px solid #ab4d05; outline-offset:-3px; }
.cert-data-table { width:100%; table-layout:fixed; border-collapse:collapse; text-align:left; font-size:14px; line-height:1.5; }
.cert-data-table th,.cert-data-table td { padding:18px 14px; border-right:1px solid #d9dcd3; border-bottom:1px solid #d9dcd3; vertical-align:top; }
.cert-data-table th { background:#edf0e7; color:#354438; font-size:13px; font-weight:600; }
.cert-data-table td { background:#fff; color:#343730; }
.cert-data-table th:first-child { width:36%; }
.cert-data-table th:last-child,.cert-data-table td:last-child { border-right:0; }
.cert-data-table time { white-space:nowrap; }
.cert-extracted .cert-review-note { padding:18px; background:#fafbf7; font-size:12px; }
@media (min-width:821px) { .cert-ocr-stage { grid-template-columns:minmax(0,1fr) 80px minmax(0,1.2fr); } }

/* Photographic certificate hero. */
.cert-stage.cert-stage-photo { padding:0; overflow:hidden; background:#e9e6de; }
.cert-stage-photo>img { display:block; width:100%; height:auto; aspect-ratio:1; object-fit:cover; }
