/* Public site: a clear, working blueprint. Keep this layer out of the portal. */
.public-page {
    --public-ink: #14233d;
    --public-line: #c8d4e5;
    --public-paper: #fff;
    --public-blue: #2457d6;
}

.public-page main :is(article, section, div)[id] {
    scroll-margin-top: 8rem;
}

.public-page .section-heading.public-intro {
    position: relative;
    max-width: none;
    margin-bottom: 2.5rem;
    padding-bottom: 2rem;
    border-bottom: 1px solid var(--public-line);
    text-align: left;
}

.public-page .section-heading.public-intro::after {
    content: '';
    position: absolute;
    bottom: -2px;
    left: 0;
    width: 64px;
    height: 3px;
    background: var(--public-blue);
}

.public-page .section-heading.public-intro h1 {
    max-width: 19ch;
    margin: 0.85rem 0 1rem;
    font-size: clamp(2.45rem, 4.7vw, 4rem);
    line-height: 1.06;
    letter-spacing: -0.035em;
    text-wrap: balance;
}

.public-page .section-heading.public-intro p {
    max-width: 66ch;
    margin: 0;
    font-size: 1.125rem;
    line-height: 1.65;
    text-wrap: pretty;
}

.public-page :is(.hero-lede, .about-hero-copy > p) {
    line-height: 1.65;
}

.public-page :is(.service-card, .industry-card, .security-focus-card,
    .support-path-card, .about-principle-card, .security-response-card) {
    border: 1px solid var(--public-line);
    border-radius: 12px;
    background: var(--public-paper);
    box-shadow: 0 3px 0 #e7edf6;
}

.public-page :is(.service-card, .industry-card, .security-focus-card,
    .support-path-card, .about-principle-card) :is(h2, h3) {
    letter-spacing: -0.018em;
    line-height: 1.2;
    text-wrap: balance;
}

.public-page :is(.service-card, .industry-card, .security-focus-card,
    .support-path-card, .about-principle-card) p {
    line-height: 1.65;
}

.public-page .service-card-featured.blueprint-feature {
    border-top: 4px solid var(--public-blue);
    background-color: #f8faff;
    box-shadow: 6px 6px 0 #dce6f7;
}

.public-page .cybersecurity-page .security-plan-panel {
    margin-bottom: 1.25rem;
}

.public-page :is(.industry-card, .support-path-card) {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
}

.public-page :is(.industry-card .public-text-link, .support-path-card .btn) {
    margin-top: auto;
}

.public-page .public-section-nav {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem 1.5rem;
    margin: -0.5rem 0 2.5rem;
    padding-bottom: 1rem;
    border-bottom: 1px solid var(--public-line);
}

.public-page .public-section-nav a {
    display: inline-flex;
    align-items: center;
    min-height: 44px;
    color: #24497c;
    font-weight: 600;
    text-decoration-color: #a7b9d4;
    text-underline-offset: 0.3em;
}

.public-page .public-section-nav a:hover {
    color: var(--public-blue);
    text-decoration-thickness: 2px;
}

.public-page .contact-field-error {
    margin: 0;
    color: #a3192b !important;
    font-size: 0.9rem;
    font-weight: 600;
    line-height: 1.5;
}

.public-page .contact-form-grid [aria-invalid="true"] {
    border-color: #b42339 !important;
    border-width: 2px !important;
}

.public-page .contact-more-details {
    padding: 0.25rem 1.1rem;
    border: 1px solid var(--public-line);
    border-radius: 10px;
    background: #f8faff;
}

.public-page :is(.contact-more-details, .contact-safety-note) > summary {
    min-height: 48px;
    padding-block: 0.75rem;
    color: #243d61;
    font-weight: 600;
    line-height: 1.5;
    cursor: pointer;
}

.public-page .contact-more-details summary span {
    margin-left: 0.5rem;
    color: #526078;
    font-size: 0.85rem;
    font-weight: 400;
}

.public-page .contact-details-grid {
    padding-block: 0.75rem 1rem;
    border-top: 1px solid var(--public-line);
}

.public-page .contact-safety-note > summary {
    padding-block: 0;
    min-height: 44px;
}

.public-page .contact-safety-note[open] > summary {
    margin-bottom: 0.8rem;
}

.public-page .public-text-link {
    display: inline-flex;
    align-items: center;
    gap: 0.6rem;
    min-height: 44px;
    padding-block: 0.4rem;
    color: #184cac;
    font-weight: 600;
    line-height: 1.45;
    text-decoration: underline;
    text-decoration-color: #a7b9d4;
    text-underline-offset: 0.25em;
}

.public-page .public-text-link i {
    flex-shrink: 0;
}

.public-page .public-closing-note {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem 2rem;
    margin-top: 3rem;
    padding-block: 1.5rem;
    border-block: 1px solid var(--public-line);
}

.public-page .public-closing-note p {
    margin: 0;
    font-size: 1.2rem;
    font-weight: 600;
}

.public-page .public-guide-section {
    display: grid;
    grid-template-columns: minmax(0, 0.8fr) minmax(0, 1.2fr);
    gap: clamp(2rem, 5vw, 5rem);
    padding-block: 2.5rem;
    border-bottom: 1px solid var(--public-line);
}

.public-page .public-guide-section:first-of-type {
    padding-top: 0.5rem;
}

.public-page .public-guide-intro h2 {
    max-width: 20ch;
    margin-block: 0.75rem 1rem;
    font-size: clamp(1.7rem, 2.8vw, 2.4rem);
    letter-spacing: -0.025em;
    line-height: 1.15;
}

.public-page .public-guide-intro p {
    max-width: 43ch;
    line-height: 1.65;
}

.public-page .public-guide-number {
    display: inline-block;
    color: #315889;
    font-family: ui-monospace, SFMono-Regular, Consolas, monospace;
    font-size: 0.9rem;
    font-weight: 700;
}

.public-page .public-detail-list {
    margin: 0;
    padding: 0;
    list-style: none;
}

.public-page .public-detail-list li {
    padding: 1.1rem 1.25rem;
    border-bottom: 1px solid #dce4ef;
    background: #fff;
}

.public-page .public-detail-list li:first-child {
    border-top: 3px solid var(--public-blue);
}

.public-page .public-detail-list strong {
    display: block;
    margin-bottom: 0.3rem;
    color: var(--public-ink);
    font-size: 1.08rem;
}

.public-page .public-detail-list p {
    margin: 0;
    line-height: 1.6;
}

.public-page .public-guide-options {
    display: grid;
    gap: 1.5rem;
}

.public-page .public-guide-options article {
    padding: 1.5rem;
    border: 1px solid var(--public-line);
    border-left: 3px solid var(--public-blue);
    border-radius: 0 10px 10px 0;
    background: #fff;
}

.public-page .public-guide-options h3 {
    margin-bottom: 1rem;
    font-size: 1.25rem;
}

.public-page .public-check-list,
.public-page .public-provider-questions {
    margin: 0;
    padding-left: 1.25rem;
    color: var(--text-main);
}

.public-page :is(.public-check-list, .public-provider-questions) li {
    padding-left: 0.3rem;
    line-height: 1.65;
}

.public-page :is(.public-check-list, .public-provider-questions) li + li {
    margin-top: 0.7rem;
}

.public-page :is(.public-check-list, .public-provider-questions) li::marker {
    color: var(--public-blue);
}

.public-page .public-provider-questions li {
    padding-block: 0.55rem;
    border-bottom: 1px solid #dce4ef;
    font-size: 1.05rem;
}

.public-page .public-note-panel {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 0.85fr);
    align-items: center;
    gap: 2rem;
    margin-top: 2.5rem;
    padding: clamp(1.25rem, 3vw, 2rem);
    border: 1px solid #b9cbe5;
    border-left: 4px solid var(--public-blue);
    border-radius: 0 12px 12px 0;
    background: #edf3fd;
}

.public-page .public-note-panel h2 {
    max-width: 30ch;
    font-size: clamp(1.35rem, 2.2vw, 1.75rem);
    line-height: 1.25;
}

.public-page .public-note-panel .section-eyebrow {
    color: var(--public-blue);
}

.public-page .public-note-panel p:last-child {
    margin-bottom: 0;
}

.public-page .status-disclosure {
    border: 1px solid var(--public-line);
    background: #fff;
    box-shadow: none;
}

.public-page .status-disclosure h2 {
    font-size: 1.15rem;
}

.public-page .status-disclosure p {
    max-width: 80ch;
    margin-bottom: 0;
}

.public-page .faq-answer-list article {
    padding-block: 1.25rem;
}

.public-page .faq-answer-list p {
    max-width: 70ch;
    line-height: 1.65;
}

.public-page .legal-card {
    max-width: 900px;
    margin-inline: auto;
    border: 1px solid var(--public-line);
    border-top: 4px solid var(--public-blue);
    border-radius: 0 0 12px 12px !important;
    background: #fff;
    box-shadow: 6px 6px 0 #e0e8f4;
}

.public-page .legal-card :is(p, li) {
    max-width: 72ch;
    line-height: 1.75;
}

.public-page .legal-card section + section {
    padding-top: 1.75rem;
    border-top: 1px solid #dce4ef;
}

.public-page .legal-card h2 {
    font-size: clamp(1.3rem, 2.2vw, 1.6rem);
    letter-spacing: -0.015em;
}

@media (max-width: 767px) {
    .public-page .section-heading.public-intro {
        padding-bottom: 1.5rem;
        margin-bottom: 1.75rem;
    }

    .public-page .section-heading.public-intro h1 {
        font-size: clamp(2.2rem, 8.7vw, 3rem);
    }

    .public-page .section-heading.public-intro p {
        font-size: 1.05rem;
    }

    .public-page .public-section-nav {
        gap: 0.25rem 1.1rem;
        margin-bottom: 1.75rem;
    }

    .public-page .public-guide-section,
    .public-page .public-note-panel {
        grid-template-columns: minmax(0, 1fr);
        gap: 1.4rem;
    }

    .public-page .public-guide-section {
        padding-block: 2rem;
    }

    .public-page .public-guide-intro h2 {
        max-width: 24ch;
    }

    .public-page .public-closing-note {
        display: block;
        margin-top: 2rem;
    }

    .public-page .legal-card {
        box-shadow: 3px 3px 0 #e0e8f4;
    }
}

@media print {
    .public-page .public-section-nav,
    .public-page .public-closing-note {
        display: none;
    }

    .public-page .public-guide-section {
        display: block;
        break-inside: avoid;
    }
}
