:root {
    --iiispl-navy: #09162a;
    --iiispl-white: #fff;
}

/* Accessibility-only additions; purchased template geometry stays untouched. */
.skip-link {
    position: fixed;
    z-index: 100000;
    top: 10px;
    left: 10px;
    padding: 10px 16px;
    color: var(--iiispl-white);
    background: var(--iiispl-navy);
    transform: translateY(-150%);
}

.skip-link:focus {
    color: var(--iiispl-white);
    transform: translateY(0);
}

.header-style-1 .pbmit-header-box-title a {
    color: inherit;
}

.footer .pbmit-contact-widget-phone a {
    color: inherit;
}
/* CMS-managed public page components. Content is plain text and images are server-validated. */
.cms-hero {
    position: relative;
    display: flex;
    min-height: var(--cms-hero-height, 420px);
    align-items: center;
    padding: 70px 0;
    color: var(--cms-hero-text, #fff);
    background-position: var(--cms-hero-position, center);
    background-size: cover;
}

.cms-hero::before {
    position: absolute;
    inset: 0;
    background: var(--cms-hero-overlay, rgba(7,31,51,.78));
    content: "";
}

.cms-hero-container {
    position: relative;
    z-index: 1;
    display: flex;
    width: 100%;
    flex-direction: column;
    align-items: var(--cms-hero-items, flex-start);
    text-align: var(--cms-hero-align, left);
}

.cms-hero-container > * {
    max-width: var(--cms-hero-content, 850px);
    width: 100%;
}

.cms-hero h1 {
    max-width: 850px;
    margin: 14px 0 16px;
    color: var(--cms-hero-text, #fff);
    font-size: clamp(36px, 6vw, var(--cms-hero-title, 72px));
    line-height: 1.05;
}

.cms-breadcrumb,
.cms-breadcrumb a,
.cms-hero-intro {
    color: var(--cms-hero-text, #fff);
}

.cms-breadcrumb span {
    margin: 0 8px;
    opacity: .65;
}

.cms-hero-intro {
    max-width: 780px;
    margin: 0;
    font-size: 19px;
}

.cms-section {
    padding: var(--cms-section-padding, 85px) 0;
    background: var(--cms-section-bg, #fff);
}

.cms-section-grid {
    display: grid;
    grid-template-columns: minmax(0, var(--cms-image-width, 50%)) minmax(0, var(--cms-copy-width, 50%));
    align-items: center;
    gap: clamp(32px, 6vw, 80px);
}

.cms-section-reverse .cms-section-image {
    order: 2;
}

.cms-section-reverse {
    grid-template-columns: minmax(0, var(--cms-copy-width, 50%)) minmax(0, var(--cms-image-width, 50%));
}

.cms-section-full-width .cms-section-grid,
.cms-section-no-image {
    grid-template-columns: 1fr;
}

.cms-section-full-width .cms-section-image img {
    max-height: 620px;
}

.cms-section-image img {
    display: block;
    width: 100%;
    max-height: 520px;
    border-radius: var(--cms-image-radius, 0);
    object-fit: var(--cms-image-fit, cover);
}

.cms-eyebrow {
    margin-bottom: 8px;
    color: var(--pbmit-global-color, #ffb400);
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.cms-section-copy h2 {
    margin-bottom: 22px;
    color: var(--cms-heading-color, #09162a);
    font-size: clamp(24px, 4vw, var(--cms-heading-size, 48px));
    text-align: var(--cms-align, left);
}

.cms-body-text {
    margin-bottom: 28px;
    color: var(--cms-text-color, #5c6570);
    font-size: var(--cms-body-size, 17px);
    line-height: 1.8;
    text-align: var(--cms-align, left);
}

.cms-body-text p { margin: 0 0 1em; }
.cms-body-text h3,
.cms-body-text h4 { margin: 1.15em 0 .55em; color: var(--cms-heading-color, #09162a); }
.cms-body-text ul,
.cms-body-text ol { margin-bottom: 1em; padding-left: 1.5em; }
.cms-body-text blockquote { margin: 1.2em 0; padding: .8em 1em; border-left: 4px solid var(--pbmit-global-color, #ffb400); background: rgba(127,127,127,.08); }
.cms-body-text a { color: var(--pbmit-global-color, #ffb400); text-decoration: underline; }
.cms-section-copy > .pbmit-btn { display: inline-flex; }
.cms-section-copy { text-align: var(--cms-align, left); }

@media (max-width: 767px) {
    .cms-hero,
    .cms-section {
        padding: 60px 0;
    }

    .cms-section-grid {
        grid-template-columns: 1fr;
    }

    .cms-section-reverse .cms-section-image {
        order: 0;
    }
}

/* Public certificate verification. */
.certificate-verification-section {
    position: relative;
    overflow: hidden;
    padding: 90px 0 105px;
    background:
        radial-gradient(circle at 92% 8%, rgba(21, 133, 162, .12), transparent 25%),
        linear-gradient(180deg, #f7fafb 0%, #fff 100%);
}

.certificate-verification-section::before {
    position: absolute;
    top: 28px;
    right: 5%;
    width: 190px;
    height: 190px;
    border: 1px solid rgba(16, 113, 141, .1);
    border-radius: 50%;
    content: "";
}

.certificate-verification-shell {
    position: relative;
    z-index: 1;
    max-width: 1050px;
    margin: 0 auto;
}

.certificate-verification-intro {
    display: flex;
    max-width: 820px;
    align-items: flex-start;
    gap: 22px;
    margin-bottom: 36px;
}

.certificate-verification-mark {
    display: grid;
    width: 64px;
    height: 64px;
    flex: 0 0 64px;
    place-items: center;
    border-radius: 18px;
    color: #fff;
    background: linear-gradient(145deg, #ff5a17, #ef4210);
    box-shadow: 0 12px 28px rgba(243, 73, 16, .24);
}

.certificate-verification-mark svg {
    display: block;
    width: 34px;
    height: 34px;
    max-width: 34px;
    max-height: 34px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.6;
}

.certificate-verification-kicker,
.certificate-result-eyebrow {
    color: #e84b16;
    font-size: 12px;
    font-weight: 800;
    letter-spacing: .13em;
    text-transform: uppercase;
}

.certificate-verification-intro h2 {
    margin: 6px 0 11px;
    color: #07182d;
    font-size: clamp(35px, 4.3vw, 54px);
    line-height: 1.08;
    letter-spacing: -.035em;
}

.certificate-verification-intro h2 strong {
    color: #ef4d16;
    font-weight: inherit;
}

.certificate-verification-intro p {
    max-width: 700px;
    margin: 0;
    color: #64727d;
    font-size: 16px;
    line-height: 1.7;
}

.certificate-lookup-card {
    padding: 34px;
    border: 1px solid #dfe8ec;
    border-radius: 18px;
    background: #fff;
    box-shadow: 0 22px 60px rgba(8, 36, 54, .1);
}

.certificate-lookup-form label {
    display: block;
    margin-bottom: 9px;
    color: #243746;
    font-size: 14px;
    font-weight: 700;
}

.certificate-lookup-controls {
    position: relative;
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 12px;
}

.certificate-lookup-input-icon {
    position: absolute;
    top: 50%;
    left: 17px;
    color: #728590;
    transform: translateY(-50%);
}

.certificate-lookup-input-icon svg {
    display: block;
    width: 22px;
    height: 22px;
    max-width: 22px;
    max-height: 22px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
}

.certificate-lookup-controls input {
    width: 100%;
    min-height: 58px;
    padding: 13px 18px 13px 51px;
    border: 1px solid #ccd9df;
    border-radius: 7px;
    outline: 0;
    color: #152a38;
    background: #fbfcfd;
    font-size: 16px;
}

.certificate-lookup-controls input:focus {
    border-color: #1686a6;
    background: #fff;
    box-shadow: 0 0 0 4px rgba(18, 133, 165, .1);
}

.certificate-lookup-controls button {
    min-width: 220px;
    padding: 13px 24px;
    border: 0;
    border-radius: 7px;
    color: #fff;
    background: linear-gradient(135deg, #10283a, #07182d);
    font-size: 13px;
    font-weight: 800;
    letter-spacing: .04em;
    text-transform: uppercase;
    cursor: pointer;
}

.certificate-lookup-controls button span {
    margin-left: 8px;
    font-size: 18px;
}

.certificate-lookup-controls button:hover {
    background: linear-gradient(135deg, #ef5219, #dc3d0b);
}

.certificate-lookup-form > small {
    display: block;
    margin-top: 9px;
    color: #82909a;
    font-size: 11px;
}

.certificate-lookup-assurance {
    display: flex;
    flex-wrap: wrap;
    gap: 22px;
    margin-top: 25px;
    padding-top: 21px;
    border-top: 1px solid #e8edef;
    color: #5f727d;
    font-size: 12px;
    font-weight: 600;
}

.certificate-lookup-assurance span::first-letter {
    color: #14936a;
}

.certificate-lookup-response {
    margin-top: 30px;
    padding-top: 30px;
    border-top: 1px solid #e6ecef;
}

.certificate-result-card {
    overflow: hidden;
    border: 1px solid #cbe4dc;
    border-radius: 13px;
    background: #fff;
}

.certificate-result-card > header {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    align-items: center;
    gap: 17px;
    padding: 23px 25px;
    background: linear-gradient(110deg, #effaf6, #f8fcfb);
}

.certificate-result-seal {
    display: grid;
    width: 52px;
    height: 52px;
    place-items: center;
    border-radius: 50%;
    color: #fff;
    background: #15956d;
}

.certificate-result-seal svg {
    display: block;
    width: 30px;
    height: 30px;
    max-width: 30px;
    max-height: 30px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
}

.certificate-result-card.is-expired {
    border-color: #efd8bd;
}

.certificate-result-card.is-expired > header {
    background: linear-gradient(110deg, #fff7ed, #fffdf9);
}

.certificate-result-card.is-expired .certificate-result-seal {
    background: #d78339;
}

.certificate-result-card header h3 {
    margin: 2px 0;
    color: #142a37;
    font-size: 22px;
}

.certificate-result-card header p {
    margin: 0;
    color: #607580;
    font-family: Consolas, monospace;
    font-size: 13px;
}

.certificate-result-eyebrow {
    color: #168468;
    font-size: 9px;
}

.certificate-validity-badge {
    padding: 7px 12px;
    border-radius: 999px;
    color: #167b5c;
    background: #dff5ec;
    font-size: 11px;
    font-weight: 800;
    text-transform: uppercase;
}

.certificate-result-card.is-expired .certificate-validity-badge {
    color: #9a5b21;
    background: #ffead4;
}

.certificate-result-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    margin: 0;
    padding: 8px 25px;
}

.certificate-result-grid > div {
    padding: 18px 4px;
    border-bottom: 1px solid #e8edef;
}

.certificate-result-grid > div:nth-last-child(-n+2) {
    border-bottom: 0;
}

.certificate-result-grid dt {
    margin-bottom: 4px;
    color: #80909a;
    font-size: 10px;
    font-weight: 800;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.certificate-result-grid dd {
    margin: 0;
    color: #243946;
    font-size: 15px;
    font-weight: 650;
}

.certificate-result-card > footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    padding: 15px 25px;
    color: #62757f;
    background: #f6f9fa;
    font-size: 11px;
}

.certificate-result-card > footer strong {
    color: #9a5b21;
}

.certificate-result-message {
    display: flex;
    align-items: flex-start;
    gap: 14px;
    padding: 20px;
    border: 1px solid #f0c9c9;
    border-radius: 9px;
    color: #7b3d43;
    background: #fff5f5;
}

.certificate-result-message > span {
    display: grid;
    width: 33px;
    height: 33px;
    flex: 0 0 33px;
    place-items: center;
    border-radius: 50%;
    color: #fff;
    background: #cf5861;
    font-size: 18px;
    font-weight: 700;
}

.certificate-result-message strong {
    display: block;
    margin-bottom: 3px;
    color: #8e353d;
    font-size: 14px;
}

.certificate-result-message p {
    margin: 0;
    font-size: 12px;
    line-height: 1.5;
}

.certificate-result-message.is-unavailable {
    border-color: #ecd39d;
    color: #735c25;
    background: #fff9e9;
}

.certificate-result-message.is-unavailable > span {
    background: #d39a31;
}

.certificate-result-message.is-unavailable strong {
    color: #795a18;
}

@media (max-width: 760px) {
    .certificate-verification-section {
        padding: 60px 0 72px;
    }

    .certificate-verification-intro {
        flex-direction: column;
    }

    .certificate-verification-mark {
        width: 54px;
        height: 54px;
        flex-basis: 54px;
    }

    .certificate-lookup-card {
        padding: 22px 18px;
        border-radius: 12px;
    }

    .certificate-lookup-controls {
        grid-template-columns: 1fr;
    }

    .certificate-lookup-controls button {
        min-width: 0;
        min-height: 52px;
    }

    .certificate-lookup-input-icon {
        top: 29px;
    }

    .certificate-result-card > header {
        grid-template-columns: auto 1fr;
        padding: 19px;
    }

    .certificate-validity-badge {
        grid-column: 2;
        justify-self: start;
    }

    .certificate-result-grid {
        grid-template-columns: 1fr;
        padding: 6px 19px;
    }

    .certificate-result-grid > div:nth-last-child(2) {
        border-bottom: 1px solid #e8edef;
    }

    .certificate-result-card > footer {
        align-items: flex-start;
        flex-direction: column;
        padding: 15px 19px;
    }
}

/* Company certificate gallery */
.company-certificate-gallery {
    background: linear-gradient(180deg, #f7fafb 0, #fff 230px);
}

.company-certificate-intro {
    max-width: 780px;
    margin-right: auto;
    margin-bottom: 44px;
    margin-left: auto;
}

.company-certificate-intro p {
    max-width: 680px;
    margin: 17px auto 0;
    color: #65747d;
    font-size: 16px;
    line-height: 1.75;
}

.company-certificate-grid {
    display: grid;
    gap: 30px;
}

.company-certificate-columns-3 {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.company-certificate-columns-4 {
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.company-certificate-card {
    min-width: 0;
    overflow: hidden;
    border: 1px solid #dde5e8;
    border-radius: 8px;
    background: #fff;
    box-shadow: 0 12px 34px rgba(9, 22, 42, .08);
    transition: border-color .2s ease, box-shadow .2s ease, transform .2s ease;
}

.company-certificate-card:hover,
.company-certificate-card:focus-within {
    border-color: #a9cfc3;
    box-shadow: 0 18px 42px rgba(9, 22, 42, .14);
    transform: translateY(-4px);
}

.company-certificate-image-link {
    position: relative;
    display: block;
    padding: 16px;
    background: #f2f5f6;
}

.company-certificate-image-frame {
    display: flex;
    aspect-ratio: 3 / 4;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    border: 1px solid #e1e6e8;
    background: #fff;
}

.company-certificate-image-frame img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: contain;
}

.company-certificate-zoom {
    position: absolute;
    right: 27px;
    bottom: 27px;
    display: grid;
    width: 44px;
    height: 44px;
    place-items: center;
    border-radius: 50%;
    color: #fff;
    background: #0a766f;
    box-shadow: 0 8px 18px rgba(9, 22, 42, .24);
    font-size: 17px;
    transition: background-color .2s ease, transform .2s ease;
}

.company-certificate-image-link:hover .company-certificate-zoom,
.company-certificate-image-link:focus .company-certificate-zoom {
    background: #09162a;
    transform: scale(1.08);
}

.company-certificate-caption {
    padding: 21px 22px 23px;
    text-align: center;
}

.company-certificate-caption h3 {
    margin: 0;
    color: #09162a;
    font-size: 18px;
    line-height: 1.4;
}

.company-certificate-caption p {
    margin: 7px 0 0;
    color: #73818a;
    font-size: 13px;
    line-height: 1.55;
}

.company-certificate-empty {
    display: flex;
    min-height: 210px;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    gap: 15px;
    border: 1px dashed #bfd1d5;
    border-radius: 8px;
    color: #61717a;
    background: #f9fbfb;
    text-align: center;
}

.company-certificate-empty span {
    color: #0a766f;
    font-size: 34px;
}

.company-certificate-empty p {
    margin: 0;
}

@media (max-width: 991px) {
    .company-certificate-columns-3,
    .company-certificate-columns-4 {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 575px) {
    .company-certificate-intro {
        margin-bottom: 30px;
    }

    .company-certificate-columns-3,
    .company-certificate-columns-4 {
        grid-template-columns: 1fr;
    }

    .company-certificate-grid {
        gap: 22px;
    }
}

@media (prefers-reduced-motion: reduce) {
    .company-certificate-card,
    .company-certificate-zoom {
        transition: none;
    }
}

/* Training registration */
.registration-section { position: relative; padding: 84px 0 96px; overflow: hidden; background: linear-gradient(180deg, #f6f9fb 0, #fff 42%); }
.registration-section::before { position: absolute; top: -180px; right: -180px; width: 440px; height: 440px; border-radius: 50%; background: radial-gradient(circle, rgba(239,77,22,.1), transparent 68%); content: ""; }
.registration-intro { position: relative; display: flex; align-items: flex-end; justify-content: space-between; gap: 36px; max-width: 1160px; margin: 0 auto 38px; }
.registration-intro > div:first-child { max-width: 760px; }
.registration-kicker { margin: 0 0 7px; color: #e94d16; font-size: 12px; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; }
.registration-intro h2 { margin: 0 0 13px; color: #07182d; font-size: clamp(34px, 4.2vw, 53px); line-height: 1.08; letter-spacing: -.035em; }
.registration-intro h2 strong { color: #ef4d16; font-weight: inherit; }
.registration-intro > div > p:last-child { max-width: 700px; margin: 0; color: #687681; font-size: 16px; line-height: 1.7; }
.registration-date-card { min-width: 205px; padding: 17px 20px; border: 1px solid #dce6ea; border-radius: 12px; background: rgba(255,255,255,.92); box-shadow: 0 12px 35px rgba(8,36,54,.07); }
.registration-date-card span, .registration-date-card strong { display: block; }
.registration-date-card span { margin-bottom: 3px; color: #82909a; font-size: 10px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.registration-date-card strong { color: #203846; font-size: 17px; }
.registration-layout { position: relative; display: grid; grid-template-columns: 300px minmax(0, 1fr); align-items: start; gap: 25px; max-width: 1160px; margin: 0 auto; }
.registration-guide { position: sticky; top: 20px; padding: 30px 27px; border-radius: 16px; color: #d5e1e6; background: linear-gradient(150deg, #12374a, #071d2d); box-shadow: 0 22px 55px rgba(4,26,40,.18); }
.registration-guide-mark { display: grid; width: 52px; height: 52px; margin-bottom: 24px; place-items: center; border-radius: 14px; color: #69d4dd; background: rgba(73,197,210,.13); }
.registration-guide-mark svg { width: 29px; height: 29px; fill: none; stroke: currentColor; stroke-width: 1.7; }
.registration-guide .registration-kicker { color: #55c9d4; }
.registration-guide h3 { margin: 4px 0 17px; color: #fff; font-size: 23px; }
.registration-guide ul { margin: 0; padding: 0; list-style: none; }
.registration-guide li { position: relative; margin: 12px 0; padding-left: 23px; color: #c8d8de; font-size: 13px; line-height: 1.5; }
.registration-guide li::before { position: absolute; left: 0; color: #59ced7; content: "✓"; }
.registration-file-guide { margin-top: 25px; padding: 18px; border: 1px solid rgba(255,255,255,.1); border-radius: 10px; background: rgba(255,255,255,.04); }
.registration-file-guide strong, .registration-file-guide span, .registration-file-guide small { display: block; }
.registration-file-guide strong { color: #fff; font-size: 13px; }
.registration-file-guide span { margin: 5px 0; color: #76d5dc; font-size: 11px; font-weight: 700; }
.registration-file-guide small, .registration-privacy-note p { color: #aebfc6; font-size: 10px; line-height: 1.55; }
.registration-privacy-note { margin-top: 21px; padding-top: 21px; border-top: 1px solid rgba(255,255,255,.1); }
.registration-privacy-note strong { color: #fff; font-size: 12px; }
.registration-privacy-note p { margin: 5px 0 0; }
.registration-form-card { overflow: hidden; border: 1px solid #dfe7eb; border-radius: 16px; background: #fff; box-shadow: 0 22px 65px rgba(8,36,54,.09); }
.registration-form { position: relative; }
.registration-form fieldset { margin: 0; padding: 27px 31px 31px; border: 0; border-bottom: 1px solid #e8edef; }
.registration-form legend { width: 100%; margin: 0 0 22px; padding: 0; color: #173242; font-size: 17px; font-weight: 800; }
.registration-form legend span { display: inline-grid; width: 34px; height: 34px; margin-right: 10px; place-items: center; border-radius: 9px; color: #fff; background: linear-gradient(135deg, #1689aa, #0b6f8f); font-size: 10px; }
.registration-form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 19px; }
.registration-field-wide { grid-column: span 2; }
.registration-field label { display: block; margin-bottom: 7px; color: #344b58; font-size: 12px; font-weight: 750; }
.registration-field input, .registration-field select, .registration-field textarea { width: 100%; min-height: 48px; margin: 0; padding: 12px 14px; border: 1px solid #d8e1e5; border-radius: 8px; outline: 0; color: #243a47; background: #fbfcfd; font-family: inherit; font-size: 13px; transition: .18s; }
.registration-field textarea { min-height: 105px; resize: vertical; }
.registration-field input:focus, .registration-field select:focus, .registration-field textarea:focus { border-color: #1887a7; background: #fff; box-shadow: 0 0 0 4px rgba(18,133,165,.1); }
.registration-field input[readonly] { color: #60727d; background: #eef3f5; }
.registration-field.is-disabled { opacity: .65; }
.registration-field .field-validation-error, .registration-upload-field .field-validation-error, .registration-declaration-error { display: block; margin-top: 5px; color: #c34650; font-size: 10px; font-weight: 650; }
.registration-validation-summary { margin: 25px 31px 0; padding: 14px 17px; border: 1px solid #efc2c5; border-radius: 8px; color: #9c3840; background: #fff5f5; font-size: 12px; }
.registration-validation-summary ul { margin: 6px 0 0; padding-left: 18px; }
.registration-check { display: flex !important; align-items: flex-start; gap: 10px; color: #526872; font-size: 12px; line-height: 1.55; cursor: pointer; user-select: none; }
.registration-check input[type="checkbox"], .registration-check input[type="checkbox"]:hover, .registration-check input[type="checkbox"]:active, .registration-check input[type="checkbox"]:focus { flex: 0 0 19px; width: 19px !important; min-height: 0 !important; height: 19px; margin: 1px 0 0; padding: 0; opacity: 1 !important; visibility: visible !important; -webkit-appearance: checkbox !important; appearance: auto !important; accent-color: #1284a5; box-shadow: none !important; cursor: pointer; }
.registration-check > span { flex: 1 1 auto; }
.registration-check-compact { margin: -4px 0 -7px; }
.registration-upload-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.registration-upload-field { padding: 19px; border: 1px dashed #bfcdd4; border-radius: 10px; background: #f8fafb; }
.registration-upload-field.has-file { border-color: #3ea788; background: #f1faf7; }
.registration-upload-field label strong, .registration-upload-field label span { display: block; }
.registration-upload-field label strong { color: #304753; font-size: 12px; }
.registration-upload-field label span { margin: 3px 0 11px; color: #82909a; font-size: 10px; }
.registration-upload-field input[type=file] { width: 100%; color: #617580; font-size: 11px; }
.registration-upload-field input[type=file]::file-selector-button { margin-right: 10px; padding: 8px 11px; border: 0; border-radius: 6px; color: #fff; background: #137f9e; font-weight: 700; cursor: pointer; }
.registration-file-name { margin-top: 10px; overflow: hidden; color: #788993; font-size: 10px; text-overflow: ellipsis; white-space: nowrap; }
.registration-declaration { margin-top: 23px; padding: 16px; border-radius: 9px; background: #f4f7f8; }
.registration-submit-row { display: flex; align-items: center; justify-content: space-between; gap: 22px; padding: 24px 31px; background: #f7f9fa; }
.registration-submit-row strong, .registration-submit-row > div span { display: block; }
.registration-submit-row strong { color: #2e4552; font-size: 13px; }
.registration-submit-row > div span { margin-top: 3px; color: #82909a; font-size: 10px; }
.registration-primary-button, .registration-secondary-button { display: inline-flex; align-items: center; justify-content: center; min-height: 48px; padding: 0 22px; border: 0; border-radius: 7px; color: #fff; background: linear-gradient(135deg, #ef5219, #dc3d0b); font-size: 11px; font-weight: 800; letter-spacing: .04em; text-decoration: none; text-transform: uppercase; box-shadow: 0 9px 24px rgba(226,68,16,.2); cursor: pointer; }
.registration-primary-button span { margin-left: 8px; font-size: 17px; }
.registration-primary-button:hover { color: #fff; background: #e84a16; }
.registration-secondary-button { color: #183746; background: #e8f0f3; box-shadow: none; }
.registration-honeypot { position: absolute !important; left: -10000px !important; width: 1px !important; height: 1px !important; overflow: hidden !important; }
.registration-success { position: relative; max-width: 820px; margin: 0 auto; padding: 52px; border: 1px solid #cce7de; border-radius: 18px; text-align: center; background: linear-gradient(145deg, #fff, #f5fcf9); box-shadow: 0 25px 70px rgba(7,50,40,.11); }
.registration-success-icon { display: grid; width: 72px; height: 72px; margin: 0 auto 24px; place-items: center; border-radius: 50%; color: #fff; background: #16956d; }
.registration-success-icon svg { width: 38px; height: 38px; fill: none; stroke: currentColor; stroke-width: 2; }
.registration-success h2 { margin: 5px 0 12px; color: #102c38; font-size: clamp(29px, 4vw, 42px); }
.registration-success > p:not(.registration-kicker) { max-width: 640px; margin: 0 auto; color: #647780; line-height: 1.7; }
.registration-reference { display: inline-flex; margin: 28px auto 17px; padding: 14px 21px; border: 1px solid #cfe3dc; border-radius: 9px; flex-direction: column; background: #fff; }
.registration-reference span { color: #82918a; font-size: 9px; font-weight: 800; text-transform: uppercase; }
.registration-reference strong { color: #137a5c; font-family: Consolas, monospace; font-size: 20px; }
.registration-success-note { font-size: 11px; }
.registration-success-actions { display: flex; justify-content: center; gap: 10px; margin-top: 26px; }
.home-registration-cta { padding: 62px 0; color: #fff; background: linear-gradient(120deg, #0a2234, #123e54); }
.home-registration-cta-inner { display: flex; align-items: center; justify-content: space-between; gap: 40px; }
.home-registration-cta span { color: #57d0da; font-size: 11px; font-weight: 800; letter-spacing: .13em; }
.home-registration-cta h2 { margin: 6px 0 8px; color: #fff; font-size: clamp(27px, 3vw, 40px); }
.home-registration-cta p { max-width: 720px; margin: 0; color: #c9d8de; }
.home-registration-cta .pbmit-btn { flex: 0 0 auto; }
.career-application-section::before { background: radial-gradient(circle, rgba(18,133,165,.12), transparent 68%); }
.career-guide-mark svg { stroke-linecap: round; stroke-linejoin: round; }
.career-cv-upload { padding: 24px; border-width: 2px; background: linear-gradient(135deg, #f8fbfc, #f2f7f9); }
.career-cv-upload.has-file { border-color: #219272; background: #f0faf6; }
.career-cv-upload input[type=file]::file-selector-button { padding: 10px 15px; }
.demo-class-section::before { background: radial-gradient(circle, rgba(19,132,165,.13), transparent 68%); }
.demo-class-intro h2 strong { color: #1284a5; }
.demo-class-guide { background: linear-gradient(150deg, #0b4056, #071d2d); }
.demo-guide-mark svg { stroke-linecap: round; stroke-linejoin: round; }
.demo-expectation-card span { color: #7ad7dd; }
.public-security-notice { display: flex; max-width: 1140px; margin: 22px auto 0; padding: 16px 19px; align-items: flex-start; gap: 13px; border: 1px solid #f0c36b; border-radius: 10px; color: #6c4a0b; background: #fff9e9; box-shadow: 0 10px 28px rgba(96,67,12,.08); }
.public-security-notice-icon { display: grid; width: 28px; height: 28px; flex: 0 0 28px; place-items: center; border-radius: 50%; color: #fff; background: #d58b00; font-size: 15px; font-weight: 900; }
.public-security-notice strong, .public-security-notice span { display: block; }
.public-security-notice strong { margin-bottom: 2px; color: #583b07; font-size: 13px; }
.public-security-notice div > span { color: #795b23; font-size: 12px; line-height: 1.55; }
@media (max-width: 950px) { .registration-layout { grid-template-columns: 1fr; } .registration-guide { position: static; } .registration-guide ul { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 680px) { .registration-section { padding: 58px 0 70px; } .registration-intro, .registration-submit-row, .home-registration-cta-inner { align-items: stretch; flex-direction: column; } .registration-date-card { min-width: 0; } .registration-guide { padding: 25px 21px; } .registration-guide ul, .registration-form-grid, .registration-upload-grid { grid-template-columns: 1fr; } .registration-field-wide { grid-column: auto; } .registration-form fieldset { padding: 24px 18px; } .registration-validation-summary { margin: 18px 18px 0; } .registration-submit-row { padding: 20px 18px; } .registration-primary-button { width: 100%; } .registration-success { padding: 35px 20px; } .registration-success-actions { align-items: stretch; flex-direction: column; } .public-security-notice { margin: 14px 15px 0; } }
.newsletter-signup-form { position: relative; }
.newsletter-honeypot { position: absolute !important; left: -10000px !important; width: 1px !important; height: 1px !important; overflow: hidden !important; }
.newsletter-feedback { margin: 9px 0 0; padding: 7px 10px; border-radius: 4px; font-size: 13px; line-height: 1.4; }
.newsletter-feedback.is-success { color: #eafff5; background: rgba(0, 75, 54, .42); }
.newsletter-feedback.is-error { color: #fff1f1; background: rgba(133, 15, 15, .45); }
.newsletter-consent { display: block; margin-top: 7px; color: rgba(255, 255, 255, .82); font-size: 11px; line-height: 1.4; }
.public-error-page { display: grid; min-height: 610px; padding: 85px 20px; place-items: center; background: radial-gradient(circle at 50% 10%, rgba(18,132,165,.1), transparent 42%), #f4f7f8; }
.public-error-card { width: min(760px, 100%); padding: 58px; border: 1px solid #dce6e9; border-radius: 20px; text-align: center; background: #fff; box-shadow: 0 25px 70px rgba(16,48,62,.11); }
.public-error-code { display: inline-grid; min-width: 76px; height: 42px; padding: 0 14px; place-items: center; border-radius: 999px; color: #fff; background: linear-gradient(135deg, #0c7897, #12384c); font-size: 16px; font-weight: 900; letter-spacing: .08em; }
.public-error-eyebrow { margin: 22px 0 5px !important; color: #1484a4 !important; font-size: 10px !important; font-weight: 850; letter-spacing: .13em; text-transform: uppercase; }
.public-error-card h1 { margin: 0 0 13px; color: #102c3b; font-size: clamp(30px, 5vw, 46px); }
.public-error-card > p:not(.public-error-eyebrow) { max-width: 590px; margin: 0 auto; color: #6d7f87; font-size: 14px; line-height: 1.75; }
.public-error-reference { display: inline-flex; margin-top: 25px; padding: 12px 17px; flex-direction: column; border: 1px solid #d7e5e9; border-radius: 8px; background: #f6fafb; }
.public-error-reference span { color: #809098; font-size: 9px; font-weight: 800; text-transform: uppercase; }
.public-error-reference strong { color: #116f8b; font-family: Consolas, monospace; font-size: 14px; }
.public-error-actions { display: flex; margin-top: 28px; align-items: center; justify-content: center; gap: 20px; }
.public-error-actions .pbmit-btn { color: #fff; }
.public-error-contact { color: #126f8a; font-size: 13px; font-weight: 750; text-decoration: none; }
@media (max-width: 620px) { .public-error-page { min-height: 520px; padding: 45px 15px; } .public-error-card { padding: 38px 20px; } .public-error-actions { align-items: stretch; flex-direction: column; } }
