/*
 * PTIn Institutional Site
 * Public design system: framework-independent, responsive and accessible.
 * The public shell may override the --site-* custom properties from the Studio.
 */

@layer site-reset, site-foundation, site-components, site-utilities, site-overrides;

@layer site-foundation {
    :root {
        color-scheme: light;
        --site-header-height: 5.25rem;
        --site-header-offset: var(--site-header-height);
        --site-container: 82rem;
        --site-container-narrow: 52rem;
        --site-gutter: clamp(1rem, 3.2vw, 2.5rem);
        --site-section-space: clamp(4.5rem, 8vw, 8rem);
        --site-section-space-compact: clamp(3rem, 5vw, 5rem);
        --site-safe-top: 0px;

        --site-font-display: "Manrope", "Aptos Display", "Segoe UI Variable Display", "Segoe UI", sans-serif;
        --site-font-body: "Inter", "Aptos", "Segoe UI Variable Text", "Segoe UI", sans-serif;
        --site-font-mono: "JetBrains Mono", "Cascadia Code", Consolas, monospace;

        --site-ink: var(--site-config-text, #102c3c);
        --site-ink-strong: #061e2c;
        --site-ink-muted: #54707f;
        --site-canvas: var(--site-config-surface, #f7fbfc);
        --site-surface: #ffffff;
        --site-surface-2: #edf6f7;
        --site-surface-3: #e1eff1;
        --site-line: #d4e3e7;
        --site-line-strong: #adc6cd;
        --site-primary: var(--site-config-primary, var(--ptin-portal-primary, #0757a6));
        --site-primary-strong: #043f7b;
        --site-secondary: var(--site-config-secondary, var(--ptin-portal-navy, #082744));
        --site-accent: var(--site-config-accent, var(--ptin-portal-accent, #f4c300));
        --site-accent-ink: #281f00;
        --site-cyan: #12adc1;
        --site-teal: #008d8f;
        --site-success: #087b58;
        --site-danger: #b4232c;
        --site-warning: #9a6200;
        --site-on-dark: #f4fbfc;

        --site-rgb-primary: 7 87 166;
        --site-rgb-secondary: 8 39 68;
        --site-rgb-accent: 244 195 0;
        --site-rgb-cyan: 18 173 193;
        --site-rgb-ink: 16 44 60;

        --site-radius-xs: .45rem;
        --site-radius-sm: .75rem;
        --site-radius-md: 1.15rem;
        --site-radius-lg: 1.75rem;
        --site-radius-xl: 2.5rem;
        --site-radius-pill: 999px;
        --site-shadow-xs: 0 1px 2px rgb(7 31 45 / .05), 0 3px 10px rgb(7 31 45 / .04);
        --site-shadow-sm: 0 12px 32px rgb(7 31 45 / .09);
        --site-shadow-md: 0 22px 60px rgb(7 31 45 / .13);
        --site-shadow-lg: 0 34px 90px rgb(2 18 29 / .2);
        --site-focus-ring: 0 0 0 .22rem rgb(var(--site-rgb-accent) / .75), 0 0 0 .38rem rgb(var(--site-rgb-secondary) / .92);
        --site-ease-out: cubic-bezier(.2, .8, .2, 1);
        --site-ease-spring: cubic-bezier(.2, .9, .25, 1.15);
        --site-duration-fast: 160ms;
        --site-duration: 280ms;
        --site-duration-slow: 700ms;
    }

    html {
        scroll-behavior: smooth;
        scroll-padding-top: calc(var(--site-header-height) + 1.25rem);
        text-size-adjust: 100%;
    }

    body.site-public,
    body.site-modern {
        min-width: min(20rem, 100%);
        margin: 0;
        overflow-x: clip;
        background: var(--site-canvas);
        color: var(--site-ink);
        font-family: var(--site-font-body);
        font-size: 1rem;
        line-height: 1.65;
        text-rendering: optimizeLegibility;
        -webkit-font-smoothing: antialiased;
    }

    :where(.site-public, .site-modern) :where(h1, h2, h3, h4, h5, h6) {
        margin-block: 0;
        color: var(--site-ink-strong);
        font-family: var(--site-font-display);
        font-weight: 760;
        line-height: 1.08;
        letter-spacing: -.035em;
        text-wrap: balance;
    }

    :where(.site-public, .site-modern) :where(p, ul, ol, figure, blockquote) {
        margin-block: 0;
    }

    :where(.site-public, .site-modern) img,
    :where(.site-public, .site-modern) video,
    :where(.site-public, .site-modern) svg {
        display: block;
        max-width: 100%;
    }

    :where(.site-public, .site-modern) img {
        height: auto;
    }

    :where(.site-public, .site-modern) a {
        color: inherit;
        text-decoration-thickness: .08em;
        text-underline-offset: .2em;
    }

    :where(.site-public, .site-modern) :where(button, input, select, textarea) {
        color: inherit;
        font: inherit;
    }

    :where(.site-public, .site-modern) :where(a, button, input, select, textarea, summary, [tabindex]):focus-visible {
        outline: 0;
        box-shadow: var(--site-focus-ring);
    }

    :where(.site-public, .site-modern) ::selection {
        background: rgb(var(--site-rgb-accent) / .78);
        color: var(--site-secondary);
    }

    .site-container {
        width: min(100% - (var(--site-gutter) * 2), var(--site-container));
        margin-inline: auto;
    }

    .site-container--narrow {
        width: min(100% - (var(--site-gutter) * 2), var(--site-container-narrow));
        margin-inline: auto;
    }

    .site-skip-link {
        position: fixed;
        z-index: 10000;
        inset-block-start: .75rem;
        inset-inline-start: .75rem;
        translate: 0 calc(-100% - 2rem);
        padding: .75rem 1rem;
        border-radius: var(--site-radius-sm);
        background: var(--site-accent);
        color: var(--site-accent-ink);
        font-weight: 800;
        text-decoration: none;
        transition: translate var(--site-duration-fast) var(--site-ease-out);
    }

    .site-skip-link:focus-visible {
        translate: 0;
    }

    .site-eyebrow,
    .site-kicker {
        display: inline-flex;
        align-items: center;
        gap: .55rem;
        color: var(--site-primary);
        font-size: .76rem;
        font-weight: 820;
        letter-spacing: .14em;
        line-height: 1.35;
        text-transform: uppercase;
    }

    .site-eyebrow::before,
    .site-kicker::before {
        width: 1.7rem;
        height: .16rem;
        border-radius: var(--site-radius-pill);
        background: linear-gradient(90deg, var(--site-accent), var(--site-cyan));
        content: "";
    }

    .site-section {
        position: relative;
        isolation: isolate;
        padding-block: var(--site-section-space);
    }

    .site-section--compact {
        padding-block: var(--site-section-space-compact);
    }

    .site-section--surface {
        background: var(--site-surface);
    }

    .site-section--soft {
        overflow: clip;
        background:
            radial-gradient(circle at 8% 12%, rgb(var(--site-rgb-cyan) / .12), transparent 27rem),
            linear-gradient(150deg, var(--site-surface-2), var(--site-canvas));
    }

    .site-section--dark {
        overflow: clip;
        background:
            radial-gradient(circle at 90% 0%, rgb(var(--site-rgb-cyan) / .22), transparent 30rem),
            linear-gradient(135deg, var(--site-secondary), #041925);
        color: rgb(244 251 252 / .78);
    }

    .site-section--dark :where(h2, h3, h4) {
        color: var(--site-on-dark);
    }

    .site-section__heading {
        display: grid;
        grid-template-columns: minmax(0, 1.25fr) minmax(16rem, .75fr);
        gap: clamp(1.5rem, 5vw, 5rem);
        align-items: end;
        margin-block-end: clamp(2rem, 4.5vw, 4rem);
    }

    .site-section__heading > div {
        display: grid;
        gap: .9rem;
    }

    .site-section__heading h2 {
        max-width: 18ch;
        font-size: clamp(2rem, 4.5vw, 4.35rem);
    }

    .site-section__heading > p {
        max-width: 42rem;
        color: var(--site-ink-muted);
        font-size: clamp(1rem, 1.4vw, 1.16rem);
    }

    .site-section--dark .site-section__heading > p {
        color: rgb(244 251 252 / .7);
    }
}

/* PTIn visual system refresh: technology, territory and frontier culture. */
@layer site-overrides {
    :root {
        --site-canvas: #f5f8f5;
        --site-surface: #ffffff;
        --site-surface-2: #eaf3f0;
        --site-ink: #18313a;
        --site-ink-strong: #09252e;
        --site-ink-muted: #5a7176;
        --site-primary: #087f82;
        --site-primary-strong: #056064;
        --site-secondary: #082d43;
        --site-accent: #e8b92e;
        --site-line: #d5e4e0;
        --site-radius-md: 1rem;
        --site-radius-lg: 1.4rem;
        --site-shadow-sm: 0 1rem 2.6rem rgb(8 45 67 / .08);
        --site-shadow-md: 0 1.8rem 4.5rem rgb(8 45 67 / .14);
    }

    .site-body {
        background-color: var(--site-canvas);
        background-image: linear-gradient(90deg, rgb(8 127 130 / .035) 1px, transparent 1px), linear-gradient(0deg, rgb(8 127 130 / .035) 1px, transparent 1px);
        background-size: 3.5rem 3.5rem;
    }

    .site-body :where(h1, h2, h3, h4, h5, h6) {
        letter-spacing: 0;
    }

    .site-page-intro {
        position: relative;
        overflow: clip;
        padding-block: clamp(5.5rem, 10vw, 9rem) clamp(3.5rem, 7vw, 6rem);
        background: linear-gradient(125deg, var(--site-secondary) 0%, #0c5061 54%, var(--site-primary) 100%);
        color: rgb(255 255 255 / .78);
    }

    .site-page-intro::after {
        position: absolute;
        inset: auto -3rem -5rem auto;
        width: 20rem;
        height: 20rem;
        border: 1px solid rgb(232 185 46 / .38);
        border-radius: 50%;
        box-shadow: 0 0 0 2rem rgb(232 185 46 / .06), 0 0 0 4rem rgb(232 185 46 / .04);
        content: "";
    }

    .site-page-intro .site-container {
        position: relative;
        z-index: 1;
    }

    .site-page-intro > .site-container {
        display: grid;
        gap: 1rem;
    }

    .site-page-intro > .site-container > span,
    .site-page-intro__content > span {
        color: var(--site-accent);
        font-size: .72rem;
        font-weight: 800;
        letter-spacing: .14em;
        text-transform: uppercase;
    }

    .site-page-intro :where(h1, h2),
    .site-page-intro__content h1 {
        max-width: 16ch;
        color: #fff;
        font-size: clamp(2.8rem, 7vw, 6.5rem);
        line-height: .98;
    }

    .site-page-intro p,
    .site-page-intro__content p {
        max-width: 48rem;
        color: rgb(255 255 255 / .78);
        font-size: clamp(1.05rem, 1.6vw, 1.25rem);
    }

    .site-page-intro--feature {
        background: linear-gradient(125deg, var(--site-secondary) 0%, #0c5061 54%, var(--site-primary) 100%);
    }

    .site-page-intro__panel {
        border-color: rgb(255 255 255 / .18);
        background: rgb(4 31 46 / .28);
        box-shadow: none;
    }

    .site-stat-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .site-stat-card {
        min-height: 7rem;
        align-content: center;
        border-color: rgb(255 255 255 / .18);
        background: rgb(255 255 255 / .09);
    }

    .site-stat-card strong { color: var(--site-accent); }
    .site-stat-card span { color: rgb(255 255 255 / .72); }

    .site-section__heading { margin-block-end: clamp(2rem, 4vw, 3rem); }
    .site-section__heading h2 { max-width: 20ch; font-size: clamp(2rem, 4vw, 4rem); }

    .site-card-grid {
        display: grid;
        grid-template-columns: repeat(3, minmax(0, 1fr));
        gap: clamp(1rem, 2vw, 1.5rem);
    }

    .site-feature-card,
    .site-news-card,
    .site-partner-card,
    .site-standout-card {
        border: 1px solid var(--site-line);
        border-radius: var(--site-radius-lg);
        background: var(--site-surface);
        box-shadow: 0 .5rem 1.4rem rgb(8 45 67 / .045);
    }

    .site-feature-card,
    .site-news-card {
        overflow: hidden;
        transition: translate var(--site-duration) var(--site-ease-out), box-shadow var(--site-duration) var(--site-ease-out), border-color var(--site-duration) var(--site-ease-out);
    }

    .site-feature-card:hover,
    .site-news-card:hover,
    .site-feature-card:focus-within,
    .site-news-card:focus-within {
        translate: 0 -.35rem;
        border-color: rgb(8 127 130 / .45);
        box-shadow: var(--site-shadow-md);
    }

    .site-feature-card__media,
    .site-news-card > a:first-child {
        position: relative;
        display: block;
        overflow: hidden;
        aspect-ratio: 16 / 10;
        background: var(--site-surface-2);
    }

    .site-card__badge {
        position: absolute;
        top: 1rem;
        left: 1rem;
        z-index: 1;
        padding: .4rem .85rem;
        border-radius: var(--site-radius-pill);
        background: color-mix(in srgb, var(--site-secondary) 82%, transparent);
        color: #fff;
        font-size: .68rem;
        font-weight: 800;
        letter-spacing: .08em;
        text-transform: uppercase;
        -webkit-backdrop-filter: blur(6px);
        backdrop-filter: blur(6px);
    }

    .site-feature-card__media img,
    .site-news-card > a:first-child img {
        width: 100%;
        height: 100%;
        object-fit: cover;
        transition: scale var(--site-duration-slow) var(--site-ease-out);
    }

    .site-feature-card:hover img,
    .site-news-card:hover img { scale: 1.045; }

    .site-card__icon {
        display: inline-grid;
        place-items: center;
        width: 3.75rem;
        height: 3.75rem;
        margin: clamp(1.2rem, 2.2vw, 1.7rem) 0 -.25rem clamp(1.2rem, 2.2vw, 1.7rem);
        border-radius: 50%;
        background: var(--site-card-icon-color, var(--site-primary));
        color: #fff;
        font-size: 1.4rem;
        box-shadow: 0 .6rem 1.4rem rgb(8 45 67 / .18);
    }

    .site-card__body,
    .site-news-card > div { padding: clamp(1.2rem, 2.2vw, 1.7rem); }
    .site-card__body {
        display: grid;
        gap: .75rem;
    }
    .site-card__body h3,
    .site-news-card h3,
    .site-news-card h2 { font-size: clamp(1.2rem, 1.8vw, 1.55rem); line-height: 1.14; }
    .site-card__body h3 a,
    .site-news-card h2 a,
    .site-news-card h3 a { text-decoration: none; }
    .site-card__body p,
    .site-news-card p { color: var(--site-ink-muted); }
    .site-news-card > div { display: grid; gap: .75rem; }
    .site-news-card small { color: var(--site-primary); font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }

    /* Carrossel de novidades (notícias, eventos, editais) */
    .site-news-carousel {
        position: relative;
    }

    .site-news-carousel__viewport {
        display: grid;
        grid-auto-flow: column;
        grid-auto-columns: minmax(17rem, 23rem);
        gap: clamp(1rem, 2.5vw, 1.75rem);
        overflow-x: auto;
        overscroll-behavior-inline: contain;
        scroll-snap-type: inline mandatory;
        scroll-behavior: smooth;
        scrollbar-width: none;
        padding: .5rem .25rem 1.5rem;
        margin: -.5rem -.25rem -1.5rem;
    }

    .site-news-carousel__viewport::-webkit-scrollbar {
        display: none;
    }

    .site-news-carousel__slide {
        scroll-snap-align: start;
        scroll-snap-stop: always;
        min-width: 0;
    }

    .site-news-carousel .site-media-carousel__controls {
        position: absolute !important;
        inset: 0 -.75rem 1.5rem !important;
        z-index: 2;
        display: flex !important;
        align-items: center !important;
        justify-content: space-between !important;
        margin: 0 !important;
        pointer-events: none;
    }

    .site-news-carousel .site-media-carousel__control {
        width: 2.25rem !important;
        min-width: 2.25rem;
        pointer-events: auto;
        opacity: .9;
    }

    .site-news-carousel .site-media-carousel__control:hover {
        opacity: 1;
    }

    .site-card__link {
        display: inline-flex;
        align-items: center;
        gap: .45rem;
        width: fit-content;
    }
    .site-card__link span {
        display: inline-block;
        transition: transform var(--site-duration-fast) var(--site-ease-out);
    }
    .site-card__link:hover span {
        transform: translateX(3px);
    }

    .site-text-link,
    .site-section-link,
    .site-link-arrow {
        color: var(--site-primary);
        font-weight: 800;
        text-decoration: none;
    }

    .site-button {
        border-radius: .55rem;
        letter-spacing: .02em;
        text-decoration: none;
    }

    .site-button--primary,
    .btn-primary {
        /* !important porque seções com "accent" próprio sequestram --site-primary
           só para si (.site-section[style*="--section-accent"]), e outra regra de
           botão (mais nova, camada site-components) também disputa este mesmo
           background — sem isso o botão primário herda a cor local da seção em
           vez do azul padrão do site. */
        background: linear-gradient(135deg, #087fbd, #075f94) !important;
        border-color: #087fbd !important;
        color: #fff !important;
        box-shadow: 0 10px 22px rgb(8 127 130 / .18);
    }
    .site-button--primary:hover,
    .btn-primary:hover,
    .btn-primary:focus,
    .btn-primary:active {
        background: linear-gradient(135deg, #075f94, #087fbd) !important;
        border-color: #075f94 !important;
        color: #fff;
    }
    .btn-outline-primary {
        border-color: rgba(8, 127, 130, .4);
        color: var(--site-primary);
        background: transparent;
    }
    .btn-outline-primary:hover,
    .btn-outline-primary:focus,
    .btn-outline-primary:active {
        background: rgba(8, 127, 130, .08);
        border-color: var(--site-primary);
        color: var(--site-primary-strong);
    }

    .site-partners-grid {
        display: grid;
        grid-template-columns: repeat(3, minmax(0, 1fr));
        gap: 1rem;
    }

    .site-partner-card {
        position: relative;
        display: grid;
        grid-template-columns: 4.5rem minmax(0, 1fr);
        gap: 1rem;
        align-items: center;
        min-height: 7.5rem;
        padding: 1rem 1.1rem;
        border: 1px solid var(--site-line);
        border-radius: 1.25rem;
        background: linear-gradient(135deg, var(--site-surface), var(--site-surface-2));
        box-shadow: 0 .55rem 1.4rem rgb(8 45 67 / .04);
        text-decoration: none;
        overflow: hidden;
        transition: translate var(--site-duration) var(--site-ease-out), box-shadow var(--site-duration) var(--site-ease-out), border-color var(--site-duration) var(--site-ease-out);
    }

    .site-partner-card::before {
        position: absolute;
        right: -2.5rem;
        bottom: -2.5rem;
        width: 8rem;
        height: 8rem;
        border-radius: 50%;
        background: rgb(8 127 130 / .09);
        content: "";
    }

    .site-partner-card:hover,
    .site-partner-card:focus-visible,
    .site-partner-card:focus-within {
        translate: 0 -.25rem;
        border-color: rgb(8 127 130 / .4);
        box-shadow: var(--site-shadow-sm);
    }

    .site-partner-card__logo {
        position: relative;
        z-index: 1;
        display: grid;
        place-items: center;
        width: 4.5rem;
        height: 4.5rem;
        border: 1px solid rgb(8 127 130 / .12);
        border-radius: .95rem;
        background: linear-gradient(135deg, rgb(255 255 255 / .96), var(--site-surface-2));
        box-shadow: inset 0 0 0 1px rgb(255 255 255 / .8);
    }

    .site-partner-card__logo img {
        position: relative;
        z-index: 1;
        max-width: 3.15rem;
        max-height: 3.15rem;
        width: 100%;
        height: 100%;
        object-fit: contain;
        padding: .5rem;
    }

    .site-partner-card__body {
        position: relative;
        z-index: 1;
        display: grid;
        gap: .35rem;
        min-width: 0;
    }

    .site-partner-card__body strong {
        color: var(--site-ink-strong);
        font-size: clamp(1.05rem, 1.4vw, 1.3rem);
        line-height: 1.2;
    }

    .site-partner-card__body span {
        color: var(--site-ink-muted);
        font-size: .82rem;
        line-height: 1.5;
    }

    .site-partners-grid--mosaic {
        display: grid;
        grid-template-columns: repeat(3, minmax(0, 1fr));
        gap: 1rem;
    }

    .site-partners-grid--mosaic .site-partner-card {
        min-height: 8.25rem;
    }

    .site-content-detail__hero,
    .site-partner-detail__hero {
        min-height: 28rem;
        display: grid;
        align-content: end;
        position: relative;
        overflow: hidden;
        padding-block: 5rem;
        background: linear-gradient(135deg, var(--site-secondary), var(--site-primary));
        color: #fff;
    }

    .site-content-detail__hero > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: .42; }
    .site-content-detail__veil { position: absolute; inset: 0; background: linear-gradient(0deg, rgb(4 25 37 / .9), transparent 80%); }
    .site-content-detail__hero .site-container { position: relative; z-index: 1; }
    .site-content-detail__hero h1,
    .site-partner-detail__hero h1 { max-width: 18ch; color: #fff; font-size: clamp(2.4rem, 6vw, 5.5rem); }
    .site-content-detail__hero p,
    .site-partner-detail__hero p { max-width: 48rem; color: rgb(255 255 255 / .8); font-size: 1.12rem; }

    .site-footer { background: var(--site-secondary); }
    .site-footer__grid { gap: clamp(2rem, 5vw, 5rem); }
    .site-footer__grid h2 { color: var(--site-accent); letter-spacing: 0; }

    :where(html[data-site-theme="dark"], html[data-ptin-theme="dark"]) .site-button--primary,
    :where(html[data-site-theme="dark"], html[data-ptin-theme="dark"]) .btn-primary,
    :where(html[data-site-theme="dark"], html[data-ptin-theme="dark"]) .site-button--secondary,
    :where(html[data-site-theme="dark"], html[data-ptin-theme="dark"]) .btn-secondary {
        background: linear-gradient(135deg, #2ec3d1, #0e7080);
        border-color: #2ec3d1;
        color: #041b24;
        box-shadow: 0 12px 24px rgb(46 195 209 / .25);
    }

    :where(html[data-site-theme="dark"], html[data-ptin-theme="dark"]) .site-button--primary:hover,
    :where(html[data-site-theme="dark"], html[data-ptin-theme="dark"]) .btn-primary:hover,
    :where(html[data-site-theme="dark"], html[data-ptin-theme="dark"]) .site-button--secondary:hover,
    :where(html[data-site-theme="dark"], html[data-ptin-theme="dark"]) .btn-secondary:hover {
        background: linear-gradient(135deg, #66e4eb, #1b90a0);
        border-color: #66e4eb;
        color: #041b24;
    }

    .site-feature-card__media img,
    .site-news-card > a:first-child img,
    .site-mosaic__item img,
    .site-partner-card__logo img {
        min-height: clamp(10rem, 18vw, 14rem);
        object-position: center;
        background: linear-gradient(135deg, rgb(8 127 130 / .08), rgb(8 127 130 / .15));
    }

    @media (max-width: 58rem) {
        .site-card-grid,
        .site-partners-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
        .site-page-intro__layout { grid-template-columns: 1fr; }
    }

    @media (max-width: 40rem) {
        .site-card-grid,
        .site-partners-grid,
        .site-stat-grid { grid-template-columns: 1fr; }
        .site-page-intro { padding-block-start: 5rem; }
        .site-page-intro :where(h1, h2),
        .site-page-intro__content h1 { font-size: clamp(2.6rem, 14vw, 4.5rem); }
        .site-content-detail__hero,
        .site-partner-detail__hero { min-height: 24rem; padding-block: 3.5rem; }
    }
}

/* Public navigation shell moved to site-shell.css. */

/* Spotlight Bento moved to site-environments.css. */

/* Runtime accessibility preferences set by the public-shell controller. */
@layer site-overrides {
    html {
        font-size: calc(100% * var(--site-font-scale, 1));
    }

    html.site-a11y-contrast,
    html[data-site-contrast="high"] {
        color-scheme: dark;
        --site-ink: #ffffff;
        --site-ink-strong: #ffffff;
        --site-ink-muted: #f2f2f2;
        --site-canvas: #000000;
        --site-surface: #000000;
        --site-surface-2: #111111;
        --site-surface-3: #1b1b1b;
        --site-line: #ffffff;
        --site-line-strong: #ffffff;
        --site-primary: #ffe500;
        --site-primary-strong: #fff27a;
        --site-secondary: #000000;
        --site-accent: #ffe500;
        --site-accent-ink: #000000;
        --site-cyan: #ffffff;
        --site-rgb-primary: 255 229 0;
        --site-rgb-secondary: 0 0 0;
        --site-rgb-accent: 255 229 0;
        --site-rgb-cyan: 255 255 255;
        --site-rgb-ink: 255 255 255;
        --site-focus-ring: 0 0 0 .18rem #000, 0 0 0 .42rem #ffe500;
    }

    :is(html.site-a11y-contrast, html[data-site-contrast="high"])
    :is(.site-accessibility-bar, [data-site-accessibility], .site-header, .site-nav__mega, .site-nav__submenu, .site-mobile-menu) {
        border-color: #ffffff;
        background: #000000;
        color: #ffffff;
        box-shadow: none;
        -webkit-backdrop-filter: none;
        backdrop-filter: none;
    }

    :is(html.site-a11y-contrast, html[data-site-contrast="high"])
    :is(a, button):focus-visible {
        outline: .18rem solid #ffe500;
        outline-offset: .16rem;
        box-shadow: none;
    }

    :is(html.site-a11y-contrast, html[data-site-contrast="high"])
    :is(.site-accessibility-bar, [data-site-accessibility])
    [data-accessibility-action][aria-pressed="true"] {
        border-color: #ffe500;
        background: #ffe500;
        color: #000000;
    }

    :is(html.site-a11y-reduce-motion, html[data-site-motion="reduced"], html[data-site-motion="reduce"]) {
        scroll-behavior: auto;
    }

    :is(html.site-a11y-reduce-motion, html[data-site-motion="reduced"], html[data-site-motion="reduce"]) *,
    :is(html.site-a11y-reduce-motion, html[data-site-motion="reduced"], html[data-site-motion="reduce"]) *::before,
    :is(html.site-a11y-reduce-motion, html[data-site-motion="reduced"], html[data-site-motion="reduce"]) *::after {
        scroll-behavior: auto !important;
        animation-duration: .001ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: .001ms !important;
        transition-delay: 0ms !important;
    }
}

@layer site-overrides {
    .site-page-intro--feature {
        position: relative;
        padding-block: clamp(3.5rem, 7vw, 6.5rem);
        background:
            radial-gradient(circle at top right, rgb(var(--site-rgb-cyan) / .20), transparent 26rem),
            linear-gradient(135deg, color-mix(in srgb, var(--site-surface) 80%, var(--site-canvas) 20%), var(--site-canvas));
    }

    .site-page-intro__layout {
        display: grid;
        grid-template-columns: minmax(0, 1.3fr) minmax(18rem, .7fr);
        gap: clamp(1.5rem, 3vw, 2.4rem);
        align-items: center;
    }

    .site-page-intro__content {
        display: grid;
        gap: 1rem;
    }

    .site-page-intro__content span {
        color: var(--site-primary);
        font-size: .74rem;
        font-weight: 800;
        letter-spacing: .16em;
        text-transform: uppercase;
    }

    .site-page-intro__content h1 {
        max-width: 12ch;
        font-size: clamp(2.4rem, 5vw, 5rem);
        line-height: .96;
    }

    .site-page-intro__content p {
        max-width: 38rem;
        color: var(--site-ink-muted);
        font-size: clamp(1rem, 1.5vw, 1.15rem);
    }

    .site-page-intro__panel {
        padding: clamp(1rem, 2vw, 1.5rem);
        border: 1px solid rgba(14, 53, 76, .12);
        border-radius: clamp(1rem, 2vw, 1.5rem);
        background: rgba(255, 255, 255, .64);
        box-shadow: var(--site-shadow-xs);
        backdrop-filter: blur(12px);
    }

    .site-stat-grid {
        display: grid;
        gap: .85rem;
    }

    .site-stat-card {
        display: grid;
        gap: .25rem;
        padding: 1rem 1.1rem;
        border: 1px solid var(--site-line);
        border-radius: 1rem;
        background: linear-gradient(180deg, rgba(255,255,255,.85), rgba(236,246,247,.8));
    }

    .site-stat-card strong {
        color: var(--site-primary);
        font-size: clamp(1rem, 2vw, 1.35rem);
        font-weight: 800;
    }

    .site-stat-card span {
        color: var(--site-ink-muted);
        font-size: .8rem;
    }

    .site-feature-card--company,
    .site-feature-card--highlight {
        overflow: hidden;
    }

    .site-card__body {
        display: grid;
        gap: .9rem;
    }

    .site-card__body p {
        color: var(--site-ink-muted);
    }

    .site-company-meta {
        margin: 0;
        padding: 0;
        list-style: none;
        display: grid;
        gap: .35rem;
        color: var(--site-ink-muted);
        font-size: .78rem;
    }

    .site-link-arrow {
        display: inline-flex;
        width: fit-content;
        align-items: center;
        gap: .5rem;
        color: var(--site-primary);
        font-size: .8rem;
        font-weight: 800;
        letter-spacing: .04em;
        text-transform: uppercase;
    }

    .site-link-arrow::after {
        content: "→";
        transition: translate var(--site-duration-fast) var(--site-ease-out);
    }

    .site-link-arrow:hover::after,
    .site-link-arrow:focus-visible::after {
        translate: .2rem 0;
    }

    .site-standout-grid {
        display: grid;
        grid-template-columns: repeat(3, minmax(0, 1fr));
        gap: clamp(1rem, 2vw, 1.5rem);
    }

    .site-standout-card {
        display: grid;
        gap: .8rem;
        padding: clamp(1.2rem, 2vw, 1.6rem);
        border: 1px solid var(--site-line);
        border-radius: 1.1rem;
        background: linear-gradient(180deg, var(--site-surface), var(--site-surface-2));
        box-shadow: var(--site-shadow-xs);
    }

    .site-standout-card h3 {
        font-size: clamp(1.2rem, 1.5vw, 1.5rem);
    }

    .site-standout-card p {
        color: var(--site-ink-muted);
    }

    @media (max-width: 62rem) {
        .site-page-intro__layout,
        .site-standout-grid {
            grid-template-columns: 1fr;
        }
    }
}

/* Restored institutional experience: suspended navigation, language flags,
   full media galleries and the editable team module. */
@layer site-overrides {
    /* Floating shell and language controls live in site-shell.css. */

    .site-body .site-section--dark :where(h2, h3, h4),
    .site-body .site-section--dark .site-section__heading :where(h2, h3, h4),
    .site-body .site-section--brand :where(h2, h3, h4),
    .site-body .site-hero h1 {
        color: var(--site-on-dark);
    }

    .site-body .site-section--dark .site-section__heading > p {
        color: rgb(244 251 252 / .74);
    }

    .site-team-grid {
        display: grid;
        grid-template-columns: minmax(0, 1fr);
        gap: clamp(1rem, 2vw, 1.5rem);
    }

    .site-team-card {
        display: grid;
        grid-template-columns: clamp(9rem, 17vw, 13.5rem) minmax(0, 1fr);
        min-height: clamp(12rem, 19vw, 15.5rem);
        padding: clamp(1rem, 2.2vw, 1.65rem);
        align-items: center;
        gap: clamp(1.25rem, 3.4vw, 3.25rem);
        overflow: hidden;
        border: 1px solid var(--site-line);
        border-radius: var(--site-radius-lg);
        background: var(--site-surface);
        box-shadow: var(--site-shadow-sm);
        transition: translate var(--site-duration) var(--site-ease-out), border-color var(--site-duration), box-shadow var(--site-duration);
    }

    .site-team-card:hover { translate: 0 -.18rem; border-color: color-mix(in srgb, var(--site-primary) 32%, var(--site-line)); box-shadow: var(--site-shadow-md); }

    .site-team-card__photo {
        display: grid;
        width: 100%;
        aspect-ratio: 1;
        place-items: center;
        overflow: hidden;
        border: .35rem solid color-mix(in srgb, var(--site-primary) 12%, var(--site-surface));
        border-radius: 50%;
        background: linear-gradient(145deg, var(--site-secondary), var(--site-primary));
        color: #fff;
        box-shadow: 0 1rem 2.4rem rgb(4 35 50 / .14);
    }

    .site-team-card__photo img { width: 100%; height: 100%; object-fit: cover; }
    .site-team-card__photo > span { font-family: var(--site-font-display); font-size: clamp(2.2rem, 5vw, 3.75rem); font-weight: 800; }
    .site-team-card__body { display: grid; min-width: 0; padding-block: .35rem; gap: .55rem; }
    .site-team-card__body h3 { color: var(--site-ink-strong); font-size: clamp(1.3rem, 2.2vw, 1.75rem); }
    .site-team-card__body > strong { color: var(--site-primary); font-size: .9rem; letter-spacing: .01em; }
    .site-team-card__body > p { max-width: 78ch; color: var(--site-ink-muted); font-size: clamp(.9rem, 1.2vw, 1rem); line-height: 1.65; }
    .site-team-card__links { display: flex; flex-wrap: wrap; gap: .55rem; margin-block-start: .35rem; }
    .site-team-card__links a { display: inline-flex; min-height: 2.5rem; padding: .55rem .85rem; align-items: center; border: 1px solid color-mix(in srgb, var(--site-primary) 28%, var(--site-line)); border-radius: 999px; color: var(--site-primary); font-size: .8rem; font-weight: 800; text-decoration: none; }
    .site-team-card__links a:hover { background: color-mix(in srgb, var(--site-primary) 9%, var(--site-surface)); }

    @media (max-width: 43.74rem) {
        .site-team-card {
            grid-template-columns: 1fr;
            padding: 1.15rem;
            justify-items: center;
            text-align: center;
        }

        .site-team-card__photo { width: min(9rem, 46vw); }
        .site-team-card__body { justify-items: center; }
        .site-team-card__links { justify-content: center; }
    }

    .site-environment-gallery .site-gallery-trigger {
        width: 100%;
        padding: 0;
        border: 0;
        color: inherit;
        cursor: zoom-in;
    }

    .site-lightbox {
        width: min(calc(100vw - 2rem), 90rem);
        max-width: none;
        height: min(calc(100svh - 2rem), 62rem);
        max-height: none;
        margin: auto;
        padding: clamp(.65rem, 1.6vw, 1.25rem);
        border: 1px solid rgb(255 255 255 / .14);
        border-radius: clamp(.9rem, 1.7vw, 1.4rem);
        overflow: hidden;
        background: rgb(2 16 26 / .98);
        color: #fff;
        box-shadow: 0 3rem 9rem rgb(0 0 0 / .66);
    }

    .site-lightbox::backdrop {
        background: rgb(0 8 14 / .86);
        -webkit-backdrop-filter: blur(.75rem) saturate(.75);
        backdrop-filter: blur(.75rem) saturate(.75);
    }

    .site-lightbox[open] {
        display: grid;
        grid-template-columns: 3.25rem minmax(0, 1fr) 3.25rem;
        align-items: center;
        gap: clamp(.35rem, 1vw, .9rem);
    }

    .site-lightbox figure {
        display: grid;
        height: 100%;
        min-height: 0;
        margin: 0;
        align-content: center;
        justify-items: center;
        gap: .8rem;
    }

    .site-lightbox figure img {
        display: block;
        max-width: 100%;
        max-height: calc(100svh - 7.5rem);
        border-radius: .45rem;
        object-fit: contain;
        opacity: 1;
        transition: opacity 160ms ease;
    }

    .site-lightbox[data-gallery-loading="true"] figure img { opacity: .28; }
    .site-lightbox figcaption { max-width: min(100%, 60rem); padding-inline: .75rem; color: rgb(255 255 255 / .74); font-size: .84rem; line-height: 1.4; text-align: center; }

    .site-lightbox__close,
    .site-lightbox__nav {
        z-index: 2;
        display: grid;
        width: 2.75rem;
        min-width: 2.75rem;
        aspect-ratio: 1;
        padding: 0;
        border: 1px solid rgb(255 255 255 / .18);
        border-radius: 50%;
        place-items: center;
        background: rgb(6 31 45 / .78);
        color: #fff;
        cursor: pointer;
        line-height: 1;
        transition: border-color 160ms ease, background 160ms ease, scale 160ms ease;
    }

    .site-lightbox__close { position: absolute; inset-block-start: .85rem; inset-inline-end: .85rem; font-size: 1.45rem; }
    .site-lightbox__nav { font-size: 1.65rem; }
    .site-lightbox__close:hover,
    .site-lightbox__nav:hover { border-color: rgb(255 255 255 / .42); background: rgb(12 58 78 / .92); scale: 1.04; }
    .site-lightbox__close:focus-visible,
    .site-lightbox__nav:focus-visible { outline: .2rem solid var(--site-accent); outline-offset: .18rem; }
    .site-lightbox__nav[hidden] { display: none; }

    @media (max-width: 61.99rem) {
        .site-body--floating-header .site-header__main { width: min(100% - 1.6rem, var(--site-container)); }
        .site-body--floating-header .site-mobile-menu {
            inset-block-start: calc(var(--site-header-bottom) + .45rem);
            inset-inline: var(--site-floating-gap);
            border: 1px solid var(--site-line);
            border-radius: var(--site-radius-lg);
            box-shadow: var(--site-shadow-lg);
        }
    }

    @media (max-width: 43.74rem) {
        .site-body--floating-header .site-header { border-radius: 1rem; }
        .site-body--floating-header .site-header__main {
            width: calc(100% - 1rem);
            min-height: 4.4rem;
            grid-template-columns: minmax(0, 1fr) auto;
            gap: .55rem;
        }
        .site-body--floating-header .site-header__main .site-brand img {
            max-width: min(8.75rem, 44vw);
            height: 2.65rem;
        }
        .site-body--floating-header .site-header__actions {
            flex-shrink: 0;
            gap: .35rem;
        }
        .site-body--floating-header .site-icon-button,
        .site-body--floating-header .site-menu-button {
            width: 2.5rem;
            min-width: 2.5rem;
        }
        .site-body--home-overlay .site-first-block.site-hero { min-height: max(38rem, 100vh); min-height: max(38rem, 100svh); }
        .site-body--home-overlay .site-first-block.site-hero .site-hero__content {
            padding-block-start: calc(4rem + var(--site-header-height) + var(--site-floating-gap));
        }
        .site-lightbox {
            width: calc(100vw - .75rem);
            height: calc(100svh - .75rem);
            padding: .55rem;
            border-radius: .85rem;
        }
        .site-lightbox[open] { grid-template-columns: 1fr; }
        .site-lightbox figure { padding-block: 2.8rem 3.25rem; }
        .site-lightbox figure img { max-height: calc(100svh - 9.25rem); border-radius: .3rem; }
        .site-lightbox__nav { position: absolute; inset-block-start: 50%; translate: 0 -50%; background: rgb(2 20 31 / .84); }
        .site-lightbox__nav--previous { inset-inline-start: .65rem; }
        .site-lightbox__nav--next { inset-inline-end: .65rem; }
    }
}

/* Markup emitted by the isolated SQLite section renderer. */
@layer site-overrides {
    .site-hero.site-section { padding-block: 0; }
    .site-section[style*="--section-background"] { background: var(--section-background); }
    .site-section[style*="--section-foreground"] { color: var(--section-foreground); }
    .site-section--spacing-compact { padding-block: var(--site-section-space-compact); }
    .site-section--spacing-generous { padding-block: clamp(6rem, 12vw, 11rem); }
    .site-section--brand {
        position: relative;
        overflow: clip;
        background: radial-gradient(circle at 85% 20%, rgb(var(--site-rgb-cyan) / .3), transparent 26rem), linear-gradient(135deg, var(--site-primary), var(--site-secondary));
        color: rgb(255 255 255 / .8);
    }
    .site-section--brand :where(h2, h3, .site-eyebrow) { color: #fff; }
    .site-section--brand .site-section__heading > p { color: rgb(255 255 255 / .78); }

    /* Marca d'água institucional: o "P" do símbolo do PTIn como elemento gráfico
       de identidade, do jeito que parques tecnológicos de referência usam o
       próprio símbolo como traço decorativo nas seções de destaque. Fica dentro
       do próprio card (.site-cta), que é a superfície colorida visível. */
    .site-cta::after {
        content: "";
        position: absolute;
        z-index: 0;
        right: clamp(-2rem, -4vw, 0rem);
        bottom: clamp(-3rem, -6vw, -1rem);
        width: clamp(14rem, 20vw, 20rem);
        aspect-ratio: 593 / 830;
        background: url(/site-ptin/uploads/site-media/2026/09/dfd9bdd3bff22b12c5740eb01b00b33701935b84.png) no-repeat center / contain;
        filter: brightness(0) invert(1);
        opacity: .16;
        pointer-events: none;
    }
    .site-cta > * {
        position: relative;
        z-index: 1;
    }

    .site-prose-wrap { display: grid; place-items: center; }
    .site-prose-wrap .site-prose { width: min(100%, 52rem); }
    .site-prose .site-section__heading { display: block; margin-block-end: 2rem; }
    .site-prose .site-section__heading > div { margin-block-end: 1rem; }
    .site-prose .site-section__heading h2 { max-width: 20ch; }

    .site-button-row { display: flex; flex-wrap: wrap; gap: .75rem; margin-block-start: .5rem; }
    .site-split__content .site-section__heading { display: grid; grid-template-columns: minmax(0, 1fr); gap: .8rem; margin-block-end: 1rem; }
    .site-split__content .site-section__heading > p { max-width: 42rem; }

    .site-section-link {
        display: inline-flex; margin-block-start: 1.5rem; color: var(--site-primary); font-weight: 800; text-decoration: none;
    }
    .site-partners-grid--mosaic { grid-template-columns: repeat(12,minmax(0,1fr)); grid-auto-rows: minmax(5rem,auto); }
    .site-partners-grid--mosaic .site-partner-card { grid-column: span 3; }
    .site-partners-grid--mosaic .site-partner-card:nth-child(5n + 1),
    .site-partners-grid--mosaic .site-partner-card:nth-child(5n + 4) { grid-column: span 4; min-height: 16rem; }
    .site-partners-grid--mosaic .site-partner-card:nth-child(7n + 2) { translate: 0 1.25rem; }
    .site-cta { position: relative; padding: clamp(2rem, 5vw, 4.5rem); overflow: hidden; border-radius: var(--site-radius-xl); background: rgb(255 255 255 / .08); box-shadow: var(--site-shadow-md); }
    .site-cta .site-section__heading { margin-block-end: 1.5rem; }
    .site-cta .site-section__heading h2 { max-width: 17ch; }

    .site-faq { width: min(100%, 58rem); }
    .site-faq .site-section__heading { display: block; }
    .site-faq details { border-block-end: 1px solid var(--site-line); }
    .site-faq summary { display: flex; padding-block: 1.25rem; align-items: center; justify-content: space-between; gap: 1rem; color: var(--site-ink-strong); cursor: pointer; font-family: var(--site-font-display); font-size: 1.1rem; font-weight: 750; }
    .site-faq details > p { padding: 0 2rem 1.25rem 0; color: var(--site-ink-muted); }

    .site-contact { display: grid; grid-template-columns: minmax(0,.8fr) minmax(18rem,1.2fr); gap: clamp(2rem, 5vw, 5rem); align-items: center; }
    .site-contact > div { display: grid; gap: 1rem; }
    .site-contact .site-section__heading { display: block; margin: 0; }
    .site-contact address { color: var(--site-ink-muted); font-style: normal; }
    .site-contact iframe { width: 100%; min-height: 28rem; border: 0; border-radius: var(--site-radius-xl); box-shadow: var(--site-shadow-md); }

    .site-location-panel {
        display: grid;
        grid-template-columns: minmax(0,.82fr) minmax(18rem,1.18fr);
        align-items: center;
        gap: clamp(2rem,5vw,5rem);
    }
    .site-location-panel__content { min-width: 0; }
    .site-location-panel__intro { align-self: start; }
    .site-location-panel__intro h2 { max-width: 17ch; margin: .75rem 0 .55rem; color: var(--site-ink-strong); font-size: clamp(2.1rem,4vw,3.55rem); line-height: 1.04; letter-spacing: -.045em; text-wrap: balance; }
    .site-location-panel__intro p { max-width: 37rem; margin: 0; color: var(--site-ink-muted); font-size: clamp(.92rem,1.2vw,1.05rem); line-height: 1.7; }
    .site-location-panel__details { display: grid; min-width: 0; gap: .55rem; margin: 1.4rem 0 0; }
    .site-location-panel__details > div { position: relative; display: grid; min-height: 4.65rem; align-content: center; gap: .18rem; padding: .68rem .9rem .68rem 4.15rem; background: rgb(255 255 255 / .82); border: 1px solid var(--site-line); border-radius: .75rem; box-shadow: 0 .2rem .75rem rgb(7 48 68 / .035); }
    .site-location-panel__details dt { color: var(--site-primary); font-size: .65rem; font-weight: 800; letter-spacing: .045em; line-height: 1.25; text-transform: uppercase; }
    .site-location-panel__icon { position: absolute; left: .85rem; top: 50%; display: grid; width: 2.45rem; height: 2.45rem; place-items: center; overflow: hidden; translate: 0 -50%; color: #fff; background: var(--site-primary); border-radius: .65rem; box-shadow: 0 .3rem .8rem rgb(var(--site-rgb-primary) / .16); }
    .site-location-panel__icon i { --fa-display: block; display: block; width: auto; height: auto; padding: 0; color: inherit; background: none; font-size: .9rem; line-height: 1; }
    .site-location-panel__details dd { min-width: 0; margin: 0; color: var(--site-ink-strong); font-size: clamp(.84rem,1vw,.94rem); font-weight: 650; line-height: 1.45; overflow-wrap: anywhere; }
    .site-location-panel__details address { color: inherit; font: inherit; }
    .site-location-panel__details a { color: var(--site-ink-strong); text-decoration: none; transition: color .18s ease; }
    .site-location-panel__details a:hover { color: var(--site-primary); }
    .site-location-panel__details dd > a > i { margin-left: .25rem; font-size: .7em; }
    .site-location-panel__map { overflow: hidden; min-height: 28rem; background: var(--site-surface); border: 1px solid var(--site-line); border-radius: var(--site-radius-xl); box-shadow: var(--site-shadow-md); }
    .site-location-panel__map iframe { display: block; width: 100%; height: clamp(28rem,40vw,32rem); border: 0; }

    @media (min-width: 48.01rem) {
        .site-location-panel__details address { font-size: .86rem; letter-spacing: -.012em; white-space: nowrap; }
    }

    .site-content-detail__hero { position: relative; isolation: isolate; display: grid; min-height: clamp(24rem,55vh,40rem); min-height: clamp(24rem,55svh,40rem); overflow: clip; align-items: end; background: linear-gradient(135deg,var(--site-secondary),var(--site-primary)); color: #fff; }
    .site-content-detail__hero > img { position: absolute; z-index: -2; inset: 0; width: 100%; height: 100%; object-fit: cover; }
    .site-content-detail__hero::after { position: absolute; z-index: -1; inset: 0; background: linear-gradient(0deg,rgb(3 22 35 / .94),rgb(3 22 35 / .2)); content: ""; }
    .site-content-detail__hero .site-container { display: grid; padding-block: clamp(4rem,9vw,7rem); gap: 1rem; }
    .site-content-detail__hero span { color: #8ae6ef; font-size: .78rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
    .site-content-detail__hero h1 { max-width: 18ch; color: #fff; font-size: clamp(2.7rem,7vw,6rem); }
    .site-content-detail__hero p { max-width: 45rem; color: rgb(255 255 255 / .82); font-size: 1.15rem; }

    @media (max-width: 48rem) {
        .site-contact { grid-template-columns: minmax(0, 1fr); }
        .site-contact iframe { min-height: 21rem; }
        .site-location-panel { grid-template-columns: minmax(0,1fr); gap: 1.4rem; }
        .site-location-panel__intro h2 { font-size: clamp(2rem,10vw,2.8rem); }
        .site-location-panel__map { min-height: 20rem; border-radius: .75rem; }
        .site-location-panel__map iframe { height: 20rem; }
        .site-section__heading { grid-template-columns: minmax(0, 1fr); align-items: start; }
        .site-partners-grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
        .site-partners-grid--mosaic .site-partner-card { grid-column: span 6; translate: none; }
    }
}

/*
 * Concrete public-shell adapters.
 * These selectors mirror resources/site/layout.php while retaining the generic
 * component API above for sections created by the Studio.
 */
@layer site-overrides {
    body.site-body {
        min-width: min(20rem, 100%);
        margin: 0;
        overflow-x: clip;
        background: var(--site-canvas);
        color: var(--site-ink);
        font-family: var(--site-font-body);
        font-size: 1rem;
        line-height: 1.65;
        text-rendering: optimizeLegibility;
        -webkit-font-smoothing: antialiased;
    }

    .site-body *,
    .site-body *::before,
    .site-body *::after {
        box-sizing: border-box;
    }

    .site-body :where(h1, h2, h3, h4, h5, h6) {
        margin-block: 0;
        color: var(--site-ink-strong);
        font-family: var(--site-font-display);
        font-weight: 760;
        line-height: 1.08;
        letter-spacing: -.035em;
        text-wrap: balance;
    }

    .site-body :where(p, ul, ol, figure, blockquote) {
        margin-block: 0;
    }

    .site-body :where(img, video, svg) {
        display: block;
        max-width: 100%;
    }

    .site-body img {
        height: auto;
    }

    .site-body :where(button, input, select, textarea) {
        color: inherit;
        font: inherit;
    }

    .site-body :where(a, button, input, select, textarea, summary, [tabindex]):focus-visible {
        outline: 0;
        box-shadow: var(--site-focus-ring);
    }

    .site-visually-hidden {
        position: absolute !important;
        width: 1px !important;
        height: 1px !important;
        padding: 0 !important;
        overflow: hidden !important;
        clip: rect(0, 0, 0, 0) !important;
        border: 0 !important;
        margin: -1px !important;
        white-space: nowrap !important;
    }

    .site-header__utility {
        min-height: 2rem;
        background: var(--site-secondary);
        color: rgb(255 255 255 / .76);
        font-size: .73rem;
        font-weight: 650;
        letter-spacing: .025em;
    }

    .site-header__utility .site-container {
        display: flex;
        min-height: 2rem;
        align-items: center;
        justify-content: space-between;
        gap: 1rem;
    }

    .site-header__utility a {
        color: inherit;
    }

    .site-header__main {
        display: grid;
        grid-template-columns: auto minmax(0, 1fr) auto;
        min-height: 5.25rem;
        align-items: center;
        gap: clamp(1.25rem, 3vw, 3rem);
    }

    .site-header__main .site-brand__mark {
        display: inline-grid;
        place-items: center start;
        line-height: 0;
    }

    .site-header__main .site-brand img {
        grid-area: 1 / 1;
        width: auto;
        max-width: min(13rem, 38vw);
        height: clamp(2.75rem, 4vw, 3.75rem);
        object-fit: contain;
    }

    .site-header__main .site-brand__logo--dark {
        display: none;
    }

    :where(html[data-site-theme="dark"], html[data-site-theme-resolved="dark"])
        .site-header__main .site-brand__logo--light {
        display: none;
    }

    :where(html[data-site-theme="dark"], html[data-site-theme-resolved="dark"])
        .site-header__main .site-brand__logo--dark {
        display: block;
    }



    .site-nav--desktop {
        display: flex;
        min-width: 0;
        align-items: center;
        justify-content: center;
        gap: clamp(.1rem, .65vw, .55rem);
    }

    .site-nav__group {
        position: relative;
    }

    .site-nav--desktop > .site-nav__link,
    .site-nav__group > button {
        position: relative;
        display: inline-flex;
        min-height: 2.75rem;
        padding: .65rem .78rem;
        border: 0;
        border-radius: var(--site-radius-sm);
        align-items: center;
        gap: .38rem;
        background: transparent;
        color: var(--site-ink);
        cursor: pointer;
        font-size: .91rem;
        font-weight: 720;
        line-height: 1.2;
        text-decoration: none;
        transition: color var(--site-duration-fast), background-color var(--site-duration-fast);
    }

    .site-nav__group > button svg {
        width: 1rem;
        height: 1rem;
        fill: none;
        stroke: currentColor;
        stroke-linecap: round;
        stroke-linejoin: round;
        stroke-width: 1.8;
        transition: rotate var(--site-duration-fast) var(--site-ease-out);
    }

    .site-nav--desktop > .site-nav__link:hover,
    .site-nav--desktop > .site-nav__link.is-active,
    .site-nav__group > button:hover,
    .site-nav__group > button[aria-expanded="true"] {
        background: var(--site-surface-2);
        color: var(--site-primary);
    }

    .site-nav__group > button[aria-expanded="true"] svg {
        rotate: 180deg;
    }

    .site-nav__submenu {
        position: absolute;
        z-index: 1100;
        inset-block-start: calc(100% + .7rem);
        inset-inline-start: 50%;
        display: grid;
        width: min(24rem, calc(100vw - 2rem));
        padding: .7rem;
        border: 1px solid var(--site-line);
        border-radius: var(--site-radius-md);
        translate: -50% 0;
        background: color-mix(in srgb, var(--site-surface) 97%, transparent);
        box-shadow: var(--site-shadow-md);
        -webkit-backdrop-filter: blur(20px);
        backdrop-filter: blur(20px);
    }

    .site-nav__submenu > .site-nav__link,
    .site-service-link {
        display: flex;
        min-height: 3.3rem;
        padding: .75rem;
        border-radius: var(--site-radius-sm);
        align-items: center;
        justify-content: space-between;
        gap: .8rem;
        color: var(--site-ink);
        font-weight: 680;
        text-decoration: none;
        transition: background-color var(--site-duration-fast), translate var(--site-duration-fast);
    }

    .site-nav__submenu > .site-nav__link:hover,
    .site-service-link:hover {
        translate: .15rem 0;
        background: var(--site-surface-2);
        color: var(--site-primary);
    }

    .site-service-link span {
        display: grid;
        min-width: 0;
        line-height: 1.28;
    }

    .site-service-link small {
        color: var(--site-primary);
        font-size: .68rem;
        font-weight: 800;
        letter-spacing: .08em;
        text-transform: uppercase;
    }

    .site-service-link strong {
        color: var(--site-ink-strong);
        font-family: var(--site-font-display);
        font-size: 1.03rem;
    }

    .site-service-link em {
        color: var(--site-ink-muted);
        font-size: .76rem;
        font-style: normal;
        font-weight: 500;
    }

    .site-service-link b {
        color: var(--site-primary);
        font-size: 1.2rem;
    }

    .site-menu-button {
        display: none;
        width: 2.75rem;
        min-width: 2.75rem;
        aspect-ratio: 1;
        padding: .65rem;
        border: 1px solid var(--site-line);
        border-radius: 50%;
        align-content: center;
        justify-items: center;
        gap: .24rem;
        background: var(--site-surface);
        color: var(--site-ink);
        cursor: pointer;
        box-shadow: var(--site-shadow-xs);
    }

    .site-menu-button > span {
        display: block;
        width: 1.05rem;
        height: 2px;
        border-radius: var(--site-radius-pill);
        background: currentColor;
        transition: rotate var(--site-duration-fast), translate var(--site-duration-fast), opacity var(--site-duration-fast);
    }

    .site-menu-button[aria-expanded="true"] > span:nth-child(1) {
        translate: 0 .38rem;
        rotate: 45deg;
    }

    .site-menu-button[aria-expanded="true"] > span:nth-child(2) {
        opacity: 0;
    }

    .site-menu-button[aria-expanded="true"] > span:nth-child(3) {
        translate: 0 -.38rem;
        rotate: -45deg;
    }

    .site-mobile-menu {
        display: none;
    }

    .site-page-intro {
        position: relative;
        isolation: isolate;
        overflow: clip;
        padding-block:
            calc(clamp(4.5rem, 9vw, 7.5rem) + var(--site-safe-top))
            clamp(3.5rem, 7vw, 6rem);
        background:
            radial-gradient(circle at 84% 5%, rgb(var(--site-rgb-cyan) / .25), transparent 27rem),
            linear-gradient(135deg, var(--site-secondary), #064c70);
        color: rgb(255 255 255 / .76);
    }

    .site-page-intro::after {
        position: absolute;
        z-index: -1;
        inset: 0;
        opacity: .12;
        background-image:
            linear-gradient(rgb(255 255 255 / .5) 1px, transparent 1px),
            linear-gradient(90deg, rgb(255 255 255 / .5) 1px, transparent 1px);
        background-size: 4rem 4rem;
        content: "";
        mask-image: linear-gradient(90deg, transparent, #000);
    }

    .site-page-intro .site-container {
        display: grid;
        gap: 1rem;
    }

    .site-page-intro span {
        color: #8be8f0;
        font-size: .74rem;
        font-weight: 820;
        letter-spacing: .13em;
        text-transform: uppercase;
    }

    .site-page-intro h1 {
        max-width: 19ch;
        color: #fff;
        font-size: clamp(2.7rem, 6vw, 5.75rem);
        line-height: .98;
        letter-spacing: -.055em;
    }

    .site-page-intro p {
        max-width: 45rem;
        font-size: clamp(1rem, 1.65vw, 1.25rem);
    }

    .site-news-card:not(.site-card) {
        position: relative;
        display: flex;
        min-width: 0;
        min-height: 100%;
        overflow: clip;
        border: 1px solid var(--site-line);
        border-radius: var(--site-radius, var(--site-radius-lg));
        flex-direction: column;
        background: var(--site-surface);
        box-shadow: var(--site-shadow-xs);
        transition: border-color var(--site-duration), box-shadow var(--site-duration), transform var(--site-duration) var(--site-ease-out);
    }

    .site-news-card:not(.site-card):hover,
    .site-news-card:not(.site-card):focus-within {
        border-color: color-mix(in srgb, var(--site-primary) 38%, var(--site-line));
        box-shadow: var(--site-shadow-md);
        transform: translateY(-.35rem);
    }

    .site-news-card:not(.site-card) > a:first-child {
        display: block;
        overflow: hidden;
        aspect-ratio: 16 / 10;
        background: var(--site-surface-3);
    }

    .site-news-card:not(.site-card) > a:first-child img {
        width: 100%;
        height: 100%;
        object-fit: cover;
        transition: scale var(--site-duration-slow) var(--site-ease-out);
    }

    .site-news-card:not(.site-card):hover > a:first-child img {
        scale: 1.045;
    }

    .site-news-card:not(.site-card) > div {
        display: flex;
        padding: clamp(1.1rem, 2vw, 1.55rem);
        flex: 1;
        flex-direction: column;
        gap: .7rem;
    }

    .site-news-card:not(.site-card) small {
        color: var(--site-primary);
        font-size: .73rem;
        font-weight: 780;
        letter-spacing: .07em;
        text-transform: uppercase;
    }

    .site-news-card:not(.site-card) h2 {
        font-size: clamp(1.25rem, 2vw, 1.65rem);
    }

    .site-news-card:not(.site-card) h2 a {
        color: inherit;
        text-decoration: none;
    }

    .site-news-card:not(.site-card) p {
        color: var(--site-ink-muted);
    }

    .site-text-link {
        display: inline-flex;
        width: fit-content;
        margin-block-start: auto;
        align-items: center;
        gap: .45rem;
        color: var(--site-primary);
        font-weight: 780;
        text-decoration: none;
    }

    .site-text-link span {
        transition: translate var(--site-duration-fast);
    }

    .site-text-link:hover span {
        translate: .2rem 0;
    }

    .site-prose {
        max-width: var(--site-container-narrow);
        color: var(--site-ink);
        font-size: clamp(1rem, 1.3vw, 1.1rem);
    }

    .site-prose > * + * {
        margin-block-start: 1.25em;
    }

    .site-prose :where(h2, h3, h4) {
        margin-block-start: 1.6em;
    }

    .site-prose h2 {
        font-size: clamp(1.8rem, 3.3vw, 3rem);
    }

    .site-prose :where(ul, ol) {
        padding-inline-start: 1.35rem;
    }

    .site-prose blockquote {
        padding: 1.25rem 1.5rem;
        border-inline-start: .3rem solid var(--site-cyan);
        border-radius: 0 var(--site-radius-md) var(--site-radius-md) 0;
        background: var(--site-surface-2);
        font-family: var(--site-font-display);
        font-size: 1.18em;
        font-weight: 650;
    }

    .site-partner-detail__hero {
        padding-block:
            calc(clamp(5rem, 9vw, 8rem) + var(--site-safe-top))
            clamp(4rem, 8vw, 7rem);
        background:
            radial-gradient(circle at 80% 10%, rgb(var(--site-rgb-cyan) / .24), transparent 27rem),
            linear-gradient(135deg, var(--site-secondary), #064c70);
        color: rgb(255 255 255 / .75);
    }

    .site-partner-detail__hero > .site-container {
        display: grid;
        grid-template-columns: minmax(12rem, .42fr) minmax(0, 1fr);
        align-items: center;
        gap: clamp(2rem, 6vw, 6rem);
    }

    .site-partner-detail__logo {
        display: grid;
        min-height: 14rem;
        padding: 2rem;
        border-radius: var(--site-radius, var(--site-radius-xl));
        place-items: center;
        background: #fff;
        box-shadow: var(--site-shadow-lg);
    }

    .site-partner-detail__logo img {
        max-width: 15rem;
        max-height: 9rem;
        object-fit: contain;
    }

    .site-partner-detail__hero > .site-container > div:last-child {
        display: grid;
        gap: 1rem;
    }

    .site-partner-detail__hero span {
        color: #8be8f0;
        font-size: .74rem;
        font-weight: 820;
        letter-spacing: .13em;
        text-transform: uppercase;
    }

    .site-partner-detail__hero h1 {
        max-width: 15ch;
        color: #fff;
        font-size: clamp(2.75rem, 6vw, 5.8rem);
    }

    .site-partner-detail__hero p {
        max-width: 42rem;
        font-size: clamp(1rem, 1.6vw, 1.25rem);
    }

    .site-footer > .site-footer__grid > section {
        display: grid;
        min-width: 0;
        align-content: start;
        gap: .65rem;
    }

    .site-footer > .site-footer__grid > section:first-child {
        gap: 1.25rem;
    }

    .site-footer > .site-footer__grid > section:first-child img {
        width: min(15rem, 80%);
        max-height: 5rem;
        object-fit: contain;
        object-position: left center;
    }

    .site-footer > .site-footer__grid > section h2 {
        margin-block-end: .35rem;
        color: #fff;
        font-size: .85rem;
        letter-spacing: .09em;
        text-transform: uppercase;
    }

    .site-footer > .site-footer__grid > section nav {
        display: grid;
        gap: .65rem;
    }

    .site-footer > .site-footer__grid > section a {
        width: fit-content;
        color: rgb(241 250 252 / .72);
        text-decoration: none;
        transition: color var(--site-duration-fast), translate var(--site-duration-fast);
    }

    .site-footer > .site-footer__grid > section a:hover {
        translate: .18rem 0;
        color: #fff;
    }

    .site-footer__social {
        display: flex;
        flex-wrap: wrap;
        gap: .6rem;
    }

    .site-footer > .site-footer__grid > section .site-footer__social a {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        width: 2.4rem;
        height: 2.4rem;
        border-radius: 50%;
        background: rgb(255 255 255 / .08);
        color: rgb(255 255 255 / .82);
        transition: background var(--site-duration-fast), color var(--site-duration-fast), translate var(--site-duration-fast);
    }

    .site-footer > .site-footer__grid > section .site-footer__social a:hover {
        translate: 0 -.15rem;
        background: var(--site-primary);
        color: #fff;
    }

    .site-footer__social svg {
        width: 1.1rem;
        height: 1.1rem;
    }

    .site-footer address {
        margin: 0;
        font-style: normal;
    }

    .site-footer > .site-footer__bottom {
        display: block;
        padding-block: 0;
        border-block-start: 0;
    }

    .site-footer > .site-footer__bottom .site-container {
        display: flex;
        margin-block-start: clamp(3rem, 7vw, 6rem);
        padding-block-start: 1.35rem;
        border-block-start: 1px solid rgb(255 255 255 / .13);
        justify-content: space-between;
        gap: 1rem;
    }

    @media (max-width: 70rem) {
        .site-header__main {
            gap: 1rem;
        }

        .site-nav--desktop > .site-nav__link,
        .site-nav__group > button {
            padding-inline: .55rem;
            font-size: .86rem;
        }
    }

    @media (max-width: 61.99rem) {
        .site-header__main {
            grid-template-columns: minmax(0, 1fr) auto;
            min-height: 4.5rem;
        }

        .site-nav--desktop {
            display: none;
        }

        .site-menu-button {
            display: grid;
        }

        .site-mobile-menu {
            position: fixed;
            z-index: 1200;
            inset: var(--site-header-height) 0 0;
            display: grid;
            padding: 1rem var(--site-gutter) max(1.5rem, env(safe-area-inset-bottom));
            overflow-y: auto;
            overscroll-behavior: contain;
            opacity: 0;
            visibility: hidden;
            translate: 0 -.75rem;
            background: color-mix(in srgb, var(--site-surface) 98%, transparent);
            -webkit-backdrop-filter: blur(20px);
            backdrop-filter: blur(20px);
            transition: opacity var(--site-duration-fast), visibility var(--site-duration-fast), translate var(--site-duration) var(--site-ease-out);
        }

        .site-mobile-menu.is-open,
        .site-mobile-menu[data-open="true"] {
            opacity: 1;
            visibility: visible;
            translate: 0;
        }

        .site-mobile-menu > div {
            display: grid;
            align-content: start;
            gap: .35rem;
        }

        .site-mobile-menu > div > .site-nav__link,
        .site-mobile-menu .site-nav__group > button {
            display: flex;
            width: 100%;
            min-height: 3.3rem;
            padding: .8rem 1rem;
            border: 0;
            border-radius: var(--site-radius-sm);
            align-items: center;
            justify-content: space-between;
            background: transparent;
            color: var(--site-ink);
            font-size: 1rem;
            font-weight: 720;
            text-decoration: none;
        }

        .site-mobile-menu .site-nav__submenu {
            position: static;
            width: auto;
            margin: .2rem 0 .55rem 1rem;
            padding: .35rem;
            translate: 0;
            background: var(--site-surface-2);
            box-shadow: none;
        }

        .site-mobile-menu .site-service-link {
            margin-block-start: .7rem;
            border: 1px solid var(--site-line);
            background: var(--site-surface-2);
        }

        .site-partner-detail__hero > .site-container {
            grid-template-columns: 1fr;
        }

        .site-partner-detail__logo {
            width: min(100%, 25rem);
            min-height: 11rem;
        }
    }

    @media (max-width: 43.74rem) {
        .site-header__utility {
            display: none;
        }

        .site-page-intro,
        .site-partner-detail__hero {
            padding-block:
                calc(clamp(3.7rem, 14vw, 5.5rem) + var(--site-safe-top))
                clamp(3.25rem, 12vw, 4.5rem);
        }

        .site-page-intro h1,
        .site-partner-detail__hero h1 {
            font-size: clamp(2.55rem, 13vw, 4.25rem);
        }

        .site-partner-detail__logo {
            min-height: 9rem;
            padding: 1.5rem;
        }

        .site-footer > .site-footer__bottom .site-container {
            align-items: flex-start;
            flex-direction: column;
        }
    }
}

@layer site-components {
    /* Public institutional pages intentionally have no login control. */
    body:not(.studio-shell):not(.ptin-portal--admin):not(.site-body--conecta-hub) :is(
        .site-login-link,
        .site-header [href*="/login"],
        .ptin-header-login,
        .ptin-mobile-account[href*="login"],
        .ptin-mobile-login-button[href*="login"]
    ) {
        display: none !important;
    }

    /* Header-safe first content block. Sticky headers stay in flow; overlay mode opts in. */
    .site-main > :first-child,
    main#conteudo-principal > :first-child,
    .site-first-block {
        scroll-margin-block-start: calc(var(--site-header-height) + 1.25rem);
    }

    body:has(.site-header--overlay) {
        --site-safe-top: var(--site-header-height);
    }

    body.has-overlay-header,
    body[data-site-header-mode="overlay"] {
        --site-safe-top: var(--site-header-height);
    }

    .site-header--overlay {
        position: fixed;
        inset-inline: 0;
        background: linear-gradient(180deg, rgb(3 21 34 / .74), transparent);
        border-color: transparent;
        box-shadow: none;
        color: #fff;
    }

    .site-header--overlay:not(.is-scrolled) :is(.site-brand, .site-nav__link, .site-nav__trigger) {
        color: #fff;
    }

    /* Hero blocks: text always starts below an overlay/fixed header. */
    .site-hero {
        position: relative;
        isolation: isolate;
        display: grid;
        /* Navegadores sem suporte a svh (notebooks/celulares mais antigos) descartam
           a declaração inteira do clamp() se uma unidade for desconhecida — por isso
           a versão em vh vem primeiro, como piso garantido, e a svh é só um refinamento. */
        min-height: clamp(34rem, 75vh, 52rem);
        min-height: clamp(34rem, 75svh, 52rem);
        overflow: clip;
        align-items: end;
        background: var(--site-secondary);
        color: var(--site-on-dark);
    }

    .site-hero--compact {
        min-height: clamp(25rem, 52vh, 38rem);
        min-height: clamp(25rem, 52svh, 38rem);
    }

    .site-hero--text {
        min-height: auto;
        align-items: center;
        background:
            radial-gradient(circle at 82% 15%, rgb(var(--site-rgb-cyan) / .2), transparent 26rem),
            linear-gradient(135deg, var(--site-secondary), #073b5d);
    }

    .site-hero__media,
    .site-hero__media :where(picture, img, video),
    .site-hero > :where(picture, img, video):first-child {
        position: absolute;
        z-index: -2;
        inset: 0;
        width: 100%;
        height: 100%;
    }

    .site-hero__media img,
    .site-hero__media video,
    .site-hero > :where(img, video):first-child {
        object-fit: cover;
        object-position: var(--site-hero-object-position, 50% 50%);
        filter: saturate(1.04) contrast(1.035);
    }

    .site-hero::before {
        position: absolute;
        z-index: -1;
        inset: 0;
        background:
            linear-gradient(90deg, rgb(3 22 35 / .88) 0%, rgb(3 22 35 / .66) 42%, rgb(3 22 35 / .18) 75%, rgb(3 22 35 / .05) 100%),
            linear-gradient(0deg, rgb(3 22 35 / .5), transparent 50%);
        content: "";
    }

    .site-hero::after {
        position: absolute;
        z-index: -1;
        inset: auto -10% -38% 38%;
        height: 70%;
        border-radius: 50%;
        background: rgb(var(--site-rgb-cyan) / .1);
        content: "";
        filter: blur(5rem);
        pointer-events: none;
    }

    .site-hero__content {
        display: grid;
        width: min(100% - (var(--site-gutter) * 2), var(--site-container));
        min-height: inherit;
        margin-inline: auto;
        padding-block:
            calc(clamp(5rem, 10vh, 8rem) + var(--site-safe-top))
            clamp(4.5rem, 10vh, 8rem);
        align-content: center;
    }

    .site-hero__copy {
        display: grid;
        max-width: 49rem;
        gap: clamp(1rem, 2vw, 1.55rem);
    }

    .site-hero__copy .site-eyebrow,
    .site-hero__copy .site-kicker {
        color: #8ae6ef;
    }

    .site-hero h1 {
        max-width: 14ch;
        color: #fff;
        font-size: clamp(2.75rem, 7.2vw, 6.75rem);
        line-height: .96;
        letter-spacing: -.06em;
    }

    .site-hero--compact h1,
    .site-hero--text h1 {
        font-size: clamp(2.6rem, 5.5vw, 5rem);
    }

    .site-hero__lead {
        max-width: 42rem;
        color: rgb(255 255 255 / .78);
        font-size: clamp(1.05rem, 1.8vw, 1.35rem);
        line-height: 1.6;
        text-wrap: pretty;
    }

    .site-hero__actions,
    .site-actions {
        display: flex;
        flex-wrap: wrap;
        gap: .75rem;
        align-items: center;
    }

    .site-hero__scroll-cue {
        position: absolute;
        inset-inline-end: var(--site-gutter);
        inset-block-end: 2rem;
        display: inline-flex;
        align-items: center;
        gap: .65rem;
        color: rgb(255 255 255 / .74);
        font-size: .75rem;
        font-weight: 750;
        letter-spacing: .08em;
        text-decoration: none;
        text-transform: uppercase;
    }

    .site-hero__scroll-cue::after {
        width: .55rem;
        height: .55rem;
        border-inline-end: 2px solid currentColor;
        border-block-end: 2px solid currentColor;
        rotate: 45deg;
        content: "";
    }

    .site-button {
        --button-bg: var(--site-primary);
        --button-color: #fff;
        --button-border: var(--button-bg);
        display: inline-flex;
        min-height: 3rem;
        padding: .72rem 1.15rem;
        border: 1px solid var(--button-border);
        border-radius: var(--site-radius-pill);
        align-items: center;
        justify-content: center;
        gap: .6rem;
        background: var(--button-bg);
        color: var(--button-color);
        cursor: pointer;
        font-size: .93rem;
        font-weight: 780;
        line-height: 1.15;
        text-align: center;
        text-decoration: none;
        box-shadow: 0 .55rem 1.4rem color-mix(in srgb, var(--button-bg) 24%, transparent);
        transition:
            background-color var(--site-duration-fast),
            border-color var(--site-duration-fast),
            color var(--site-duration-fast),
            box-shadow var(--site-duration-fast),
            transform var(--site-duration-fast) var(--site-ease-spring);
    }

    .site-button:hover {
        color: var(--button-color);
        box-shadow: 0 .8rem 1.7rem color-mix(in srgb, var(--button-bg) 32%, transparent);
        transform: translateY(-.15rem);
    }

    .site-button:active {
        transform: translateY(0);
    }

    .site-button--accent {
        --button-bg: var(--site-accent);
        --button-color: var(--site-accent-ink);
    }

    .site-button--secondary {
        --button-bg: var(--site-secondary);
    }

    .site-button--light {
        --button-bg: #fff;
        --button-color: var(--site-secondary);
    }

    .site-button--outline {
        --button-bg: transparent;
        --button-color: var(--site-primary);
        --button-border: currentColor;
        box-shadow: none;
    }

    .site-section--dark .site-button--outline,
    .site-hero .site-button--outline {
        --button-color: #fff;
        background: rgb(255 255 255 / .06);
    }

    .site-button svg,
    .site-button i,
    .site-card__link svg,
    .site-card__link i {
        flex: 0 0 auto;
        transition: translate var(--site-duration-fast) var(--site-ease-out);
    }

    .site-button:hover :is(svg, i),
    .site-card__link:hover :is(svg, i) {
        translate: .18rem 0;
    }

    /* Content cards */
    .site-card-grid {
        display: grid;
        grid-template-columns: repeat(3, minmax(0, 1fr));
        gap: clamp(1rem, 2.5vw, 1.75rem);
    }

    .site-card-grid--4 {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }

    .site-card-grid--2 {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .site-card {
        position: relative;
        display: flex;
        min-width: 0;
        min-height: 100%;
        overflow: clip;
        border: 1px solid var(--site-line);
        border-radius: var(--site-radius-lg);
        flex-direction: column;
        background: var(--site-surface);
        box-shadow: var(--site-shadow-xs);
        transition:
            border-color var(--site-duration),
            box-shadow var(--site-duration),
            transform var(--site-duration) var(--site-ease-out);
    }

    .site-card:hover,
    .site-card:focus-within {
        border-color: color-mix(in srgb, var(--site-primary) 38%, var(--site-line));
        box-shadow: var(--site-shadow-md);
        transform: translateY(-.35rem);
    }

    .site-card__media {
        position: relative;
        overflow: hidden;
        aspect-ratio: 16 / 10;
        background: var(--site-surface-3);
    }

    .site-card__media::after {
        position: absolute;
        inset: auto 0 0;
        height: 45%;
        background: linear-gradient(0deg, rgb(4 25 38 / .32), transparent);
        content: "";
        pointer-events: none;
    }

    .site-card__media img {
        width: 100%;
        height: 100%;
        object-fit: cover;
        transition: scale var(--site-duration-slow) var(--site-ease-out);
    }

    .site-card:hover .site-card__media img {
        scale: 1.045;
    }

    .site-card__body {
        display: flex;
        padding: clamp(1.1rem, 2vw, 1.55rem);
        flex: 1;
        flex-direction: column;
        gap: .75rem;
    }

    .site-card__meta {
        display: flex;
        flex-wrap: wrap;
        align-items: center;
        gap: .5rem .8rem;
        color: var(--site-ink-muted);
        font-size: .78rem;
        font-weight: 680;
    }

    .site-card__tag {
        display: inline-flex;
        min-height: 1.65rem;
        padding: .2rem .62rem;
        border-radius: var(--site-radius-pill);
        align-items: center;
        background: rgb(var(--site-rgb-primary) / .1);
        color: var(--site-primary);
        font-size: .69rem;
        font-weight: 820;
        letter-spacing: .06em;
        text-transform: uppercase;
    }

    .site-card h3 {
        font-size: clamp(1.25rem, 2vw, 1.65rem);
        line-height: 1.16;
    }

    .site-card h3 a {
        text-decoration: none;
    }

    .site-card h3 a::after,
    .site-card[data-card-href]::after {
        position: absolute;
        z-index: 1;
        inset: 0;
        content: "";
    }

    .site-card__body > p {
        display: -webkit-box;
        overflow: hidden;
        color: var(--site-ink-muted);
        -webkit-box-orient: vertical;
        -webkit-line-clamp: 3;
    }

    .site-card__link {
        position: relative;
        z-index: 2;
        display: inline-flex;
        margin-block-start: auto;
        padding-block-start: .3rem;
        align-items: center;
        gap: .5rem;
        color: var(--site-primary);
        font-weight: 790;
        text-decoration: none;
    }

    .site-news-card--featured {
        grid-column: span 2;
        display: grid;
        grid-template-columns: minmax(0, 1.2fr) minmax(16rem, .8fr);
    }

    .site-news-card--featured .site-card__media {
        min-height: 100%;
        aspect-ratio: auto;
    }

    .site-event-card {
        display: grid;
        grid-template-columns: auto minmax(0, 1fr);
    }

    .site-event-card__date {
        display: grid;
        min-width: 6.2rem;
        padding: 1.25rem .85rem;
        align-content: start;
        justify-items: center;
        background: linear-gradient(145deg, var(--site-secondary), var(--site-primary));
        color: #fff;
    }

    .site-event-card__date strong {
        font-family: var(--site-font-display);
        font-size: 2.25rem;
        line-height: 1;
    }

    .site-event-card__date span {
        font-size: .73rem;
        font-weight: 820;
        letter-spacing: .1em;
        text-transform: uppercase;
    }

    /* Partners */
    .site-partners-grid {
        display: grid;
        grid-template-columns: repeat(4, minmax(0, 1fr));
        gap: 1rem;
    }

    .site-partner-card {
        position: relative;
        display: grid;
        min-height: 13rem;
        padding: 1.25rem;
        overflow: clip;
        border: 1px solid var(--site-line);
        border-radius: var(--site-radius-lg);
        align-content: space-between;
        gap: 1rem;
        background: var(--site-surface);
        color: var(--site-ink);
        cursor: pointer;
        text-decoration: none;
        box-shadow: var(--site-shadow-xs);
        transition:
            border-color var(--site-duration),
            box-shadow var(--site-duration),
            transform var(--site-duration) var(--site-ease-out);
    }

    .site-partner-card::before {
        position: absolute;
        inset: auto -25% -50% auto;
        width: 11rem;
        aspect-ratio: 1;
        border-radius: 50%;
        background: rgb(var(--site-rgb-cyan) / .11);
        content: "";
        transition: scale var(--site-duration-slow) var(--site-ease-out);
    }

    .site-partner-card:hover,
    .site-partner-card:focus-visible,
    .site-partner-card:focus-within {
        border-color: var(--site-cyan);
        box-shadow: var(--site-shadow-md);
        transform: translateY(-.35rem);
    }

    .site-partner-card:hover::before {
        scale: 1.4;
    }

    .site-partner-card__logo {
        display: grid;
        min-height: 6.5rem;
        padding: .8rem;
        border-radius: var(--site-radius-md);
        place-items: center;
        background: #fff;
    }

    .site-partner-card__logo img {
        width: min(100%, 10rem);
        max-height: 5rem;
        object-fit: contain;
        filter: saturate(.8);
        transition: filter var(--site-duration), scale var(--site-duration) var(--site-ease-out);
    }

    .site-partner-card:hover .site-partner-card__logo img {
        filter: saturate(1);
        scale: 1.035;
    }

    .site-partner-card__body {
        position: relative;
        z-index: 1;
        display: grid;
        gap: .35rem;
    }

    .site-partner-card__body strong {
        color: var(--site-ink-strong);
        font-family: var(--site-font-display);
        font-size: 1.08rem;
    }

    .site-partner-card__body span {
        color: var(--site-ink-muted);
        font-size: .85rem;
    }

    /* Irregular editorial mosaic inspired by the supplied reference. */
    .site-mosaic {
        display: grid;
        grid-template-columns: repeat(12, minmax(0, 1fr));
        grid-template-rows: repeat(8, clamp(2.8rem, 5vw, 4.7rem));
        gap: clamp(.35rem, .8vw, .7rem);
        min-height: clamp(30rem, 48vw, 47rem);
    }

    .site-mosaic__item {
        position: relative;
        isolation: isolate;
        min-width: 0;
        min-height: 0;
        overflow: hidden;
        border-radius: clamp(.7rem, 1.35vw, 1.35rem);
        background: var(--site-surface-3);
        color: #fff;
        box-shadow: var(--site-shadow-xs);
        text-decoration: none;
        transition:
            box-shadow var(--site-duration),
            transform var(--site-duration) var(--site-ease-out);
    }

    .site-mosaic__item:nth-child(1) { grid-column: 1 / span 3; grid-row: 2 / span 2; }
    .site-mosaic__item:nth-child(2) { grid-column: 4 / span 3; grid-row: 1 / span 2; }
    .site-mosaic__item:nth-child(3) { grid-column: 7 / span 2; grid-row: 1 / span 1; }
    .site-mosaic__item:nth-child(4) { grid-column: 9 / span 3; grid-row: 2 / span 2; }
    .site-mosaic__item:nth-child(5) { grid-column: 7 / span 2; grid-row: 2 / span 2; }
    .site-mosaic__item:nth-child(6) { grid-column: 1 / span 2; grid-row: 4 / span 1; }
    .site-mosaic__item:nth-child(7) { grid-column: 3 / span 3; grid-row: 4 / span 2; }
    .site-mosaic__item:nth-child(8) { grid-column: 6 / span 3; grid-row: 4 / span 3; }
    .site-mosaic__item:nth-child(9) { grid-column: 9 / span 3; grid-row: 4 / span 2; }
    .site-mosaic__item:nth-child(10) { grid-column: 12 / span 1; grid-row: 4 / span 2; }
    .site-mosaic__item:nth-child(11) { grid-column: 1 / span 3; grid-row: 5 / span 2; }
    .site-mosaic__item:nth-child(12) { grid-column: 4 / span 2; grid-row: 6 / span 2; }
    .site-mosaic__item:nth-child(13) { grid-column: 9 / span 2; grid-row: 6 / span 2; }
    .site-mosaic__item:nth-child(14) { grid-column: 11 / span 2; grid-row: 6 / span 2; }
    .site-mosaic__item:nth-child(15) { grid-column: 6 / span 2; grid-row: 7 / span 2; }
    .site-mosaic__item:nth-child(n + 16) { grid-column: span 3; grid-row: span 2; }

    .site-mosaic__item::after {
        position: absolute;
        z-index: -1;
        inset: 0;
        background: linear-gradient(0deg, rgb(3 21 33 / .88), rgb(3 21 33 / .05) 68%);
        content: "";
        transition: background-color var(--site-duration);
    }

    .site-mosaic__item > :where(img, picture, video),
    .site-mosaic__item picture > img {
        position: absolute;
        z-index: -2;
        inset: 0;
        width: 100%;
        height: 100%;
        object-fit: cover;
        transition: filter var(--site-duration), scale var(--site-duration-slow) var(--site-ease-out);
    }

    .site-mosaic__item:hover,
    .site-mosaic__item:focus-visible {
        z-index: 2;
        box-shadow: var(--site-shadow-lg);
        transform: translateY(-.3rem) scale(1.012);
    }

    .site-mosaic__item:hover > :where(img, picture, video),
    .site-mosaic__item:hover picture > img {
        filter: saturate(1.08) contrast(1.02);
        scale: 1.065;
    }

    .site-mosaic__caption {
        position: absolute;
        inset: auto .9rem .85rem;
        display: grid;
        gap: .2rem;
        text-shadow: 0 2px 12px rgb(0 0 0 / .42);
    }

    .site-mosaic__caption strong {
        color: #fff;
        font-family: var(--site-font-display);
        font-size: clamp(.9rem, 1.4vw, 1.2rem);
        line-height: 1.08;
    }

    .site-mosaic__caption span {
        overflow: hidden;
        color: rgb(255 255 255 / .78);
        font-size: .72rem;
        text-overflow: ellipsis;
        white-space: nowrap;
    }

    /* Feature splits and rich media */
    .site-feature {
        display: grid;
        grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
        align-items: center;
        gap: clamp(2rem, 6vw, 6rem);
    }

    .site-feature > * {
        min-width: 0;
    }

    .site-feature--reverse .site-feature__media {
        order: 2;
    }

    .site-feature__copy {
        display: grid;
        gap: 1.1rem;
    }

    .site-feature__copy h2 {
        max-width: 15ch;
        font-size: clamp(2rem, 4.2vw, 4rem);
    }

    .site-feature__copy p {
        max-width: 42rem;
        color: var(--site-ink-muted);
        font-size: clamp(1rem, 1.3vw, 1.15rem);
    }

    .site-feature__media {
        position: relative;
        min-height: clamp(21rem, 46vw, 38rem);
        margin: 0;
    }

    .site-feature__media > :where(img, video, picture),
    .site-feature__media picture > img {
        width: 100%;
        height: 100%;
        border-radius: var(--site-radius-xl);
        object-fit: cover;
    }

    .site-feature__media::before {
        position: absolute;
        z-index: -1;
        inset: -1.1rem 1.5rem 1.5rem -1.1rem;
        border: 1px solid rgb(var(--site-rgb-cyan) / .3);
        border-radius: var(--site-radius-xl);
        content: "";
    }

    .site-video-frame {
        position: relative;
        overflow: clip;
        border-radius: var(--site-radius-xl);
        aspect-ratio: 16 / 9;
        background: var(--site-secondary);
        box-shadow: var(--site-shadow-lg);
    }

    .site-video-frame video,
    .site-video-frame iframe,
    .site-video-frame img {
        width: 100%;
        height: 100%;
        border: 0;
        object-fit: cover;
    }

    .site-video-frame__play {
        position: absolute;
        inset: 50% auto auto 50%;
        display: grid;
        width: clamp(3.5rem, 7vw, 5.5rem);
        aspect-ratio: 1;
        border: 1px solid rgb(255 255 255 / .6);
        border-radius: 50%;
        place-items: center;
        translate: -50% -50%;
        background: rgb(255 255 255 / .9);
        color: var(--site-secondary);
        cursor: pointer;
        box-shadow: var(--site-shadow-md);
    }

    .site-block--stats {
        position: relative;
    }

    .site-block--stats::before {
        content: "";
        position: absolute;
        z-index: 0;
        right: clamp(1rem, 6vw, 8rem);
        top: 0;
        width: clamp(14rem, 22vw, 22rem);
        aspect-ratio: 593 / 830;
        background: url(/site-ptin/uploads/site-media/2026/09/dfd9bdd3bff22b12c5740eb01b00b33701935b84.png) no-repeat center / contain;
        opacity: .14;
        pointer-events: none;
    }

    .site-block--stats > .site-container {
        position: relative;
        z-index: 1;
    }

    .site-stats {
        display: grid;
        grid-template-columns: repeat(4, minmax(0, 1fr));
        gap: 1px;
        overflow: hidden;
        border: 1px solid var(--site-line);
        border-radius: var(--site-radius-lg);
        background: var(--site-line);
    }

    .site-stat {
        display: grid;
        min-height: 11rem;
        padding: clamp(1.25rem, 3vw, 2.2rem);
        align-content: center;
        gap: .45rem;
        background: var(--site-surface);
    }

    .site-stat strong {
        color: var(--site-primary);
        font-family: var(--site-font-display);
        font-size: clamp(2.4rem, 5vw, 4.5rem);
        line-height: .95;
        letter-spacing: -.06em;
    }

    .site-stat span {
        color: var(--site-ink-muted);
        font-size: .9rem;
        font-weight: 650;
    }

    .site-logo-cloud {
        display: grid;
        grid-template-columns: repeat(5, minmax(0, 1fr));
        gap: .75rem;
    }

    .site-logo-cloud__item {
        display: grid;
        min-height: 8rem;
        padding: 1.25rem;
        border: 1px solid var(--site-line);
        border-radius: var(--site-radius-md);
        place-items: center;
        background: var(--site-surface);
    }

    .site-logo-cloud__item img {
        max-width: 9.5rem;
        max-height: 4.5rem;
        object-fit: contain;
        filter: grayscale(1) opacity(.7);
        transition: filter var(--site-duration), scale var(--site-duration);
    }

    .site-logo-cloud__item:hover img {
        filter: none;
        scale: 1.04;
    }

    .site-rich-text {
        color: var(--site-ink);
        font-size: clamp(1rem, 1.3vw, 1.1rem);
    }

    .site-rich-text > * + * {
        margin-block-start: 1.25em;
    }

    .site-rich-text :where(h2, h3, h4) {
        margin-block-start: 1.6em;
    }

    .site-rich-text h2 {
        font-size: clamp(1.8rem, 3.3vw, 3rem);
    }

    .site-rich-text :where(ul, ol) {
        padding-inline-start: 1.35rem;
    }

    .site-rich-text :where(blockquote) {
        padding: 1.25rem 1.5rem;
        border-inline-start: .3rem solid var(--site-cyan);
        border-radius: 0 var(--site-radius-md) var(--site-radius-md) 0;
        background: var(--site-surface-2);
        color: var(--site-ink-strong);
        font-family: var(--site-font-display);
        font-size: 1.2em;
        font-weight: 650;
    }

    .site-rich-text :where(table) {
        width: 100%;
        border-collapse: collapse;
    }

    .site-rich-text :where(th, td) {
        padding: .8rem;
        border-block-end: 1px solid var(--site-line);
        text-align: start;
    }

    /* Native details are the no-JS fallback for disclosures. */
    .site-accordion {
        display: grid;
        gap: .75rem;
    }

    .site-accordion details,
    .site-disclosure {
        overflow: clip;
        border: 1px solid var(--site-line);
        border-radius: var(--site-radius-md);
        background: var(--site-surface);
        box-shadow: var(--site-shadow-xs);
    }

    .site-accordion summary,
    .site-disclosure__trigger {
        display: flex;
        width: 100%;
        min-height: 4rem;
        padding: 1rem 1.2rem;
        border: 0;
        align-items: center;
        justify-content: space-between;
        gap: 1rem;
        background: transparent;
        color: var(--site-ink-strong);
        cursor: pointer;
        font-family: var(--site-font-display);
        font-weight: 730;
        list-style: none;
        text-align: start;
    }

    .site-accordion summary::-webkit-details-marker {
        display: none;
    }

    .site-accordion summary::after,
    .site-disclosure__trigger::after {
        width: .62rem;
        height: .62rem;
        flex: 0 0 auto;
        border-inline-end: 2px solid currentColor;
        border-block-end: 2px solid currentColor;
        rotate: 45deg;
        content: "";
        transition: rotate var(--site-duration) var(--site-ease-out);
    }

    .site-accordion details[open] summary::after,
    .site-disclosure__trigger[aria-expanded="true"]::after {
        rotate: 225deg;
    }

    .site-accordion__content,
    .site-disclosure__panel {
        padding: 0 1.2rem 1.2rem;
        color: var(--site-ink-muted);
    }

    .site-breadcrumbs {
        display: flex;
        margin: 0 0 1.35rem;
        padding: 0;
        flex-wrap: wrap;
        align-items: center;
        gap: .4rem .65rem;
        color: rgb(255 255 255 / .72);
        font-size: .81rem;
        font-weight: 650;
        list-style: none;
    }

    .site-breadcrumbs li + li::before {
        margin-inline-end: .65rem;
        content: "/";
        opacity: .65;
    }

    .site-breadcrumbs a {
        color: inherit;
    }

    .site-empty-state {
        display: grid;
        max-width: 42rem;
        min-height: 20rem;
        margin-inline: auto;
        padding: 2rem;
        border: 1px dashed var(--site-line-strong);
        border-radius: var(--site-radius-lg);
        place-content: center;
        justify-items: center;
        gap: .75rem;
        background: var(--site-surface);
        color: var(--site-ink-muted);
        text-align: center;
    }

    .site-empty-state h2,
    .site-empty-state h3 {
        color: var(--site-ink-strong);
    }

    .site-callout {
        position: relative;
        display: grid;
        grid-template-columns: minmax(0, 1fr) auto;
        overflow: clip;
        padding: clamp(1.6rem, 5vw, 4.5rem);
        border-radius: var(--site-radius-xl);
        align-items: center;
        gap: 2rem;
        background:
            radial-gradient(circle at 90% 0%, rgb(var(--site-rgb-cyan) / .3), transparent 22rem),
            linear-gradient(135deg, var(--site-secondary), #063d5c);
        color: rgb(255 255 255 / .76);
        box-shadow: var(--site-shadow-lg);
    }

    .site-callout h2 {
        max-width: 20ch;
        margin-block-end: .75rem;
        color: #fff;
        font-size: clamp(2rem, 4vw, 3.75rem);
    }

    /* Footer */
    .site-footer {
        position: relative;
        overflow: clip;
        padding-block: clamp(4rem, 8vw, 7rem) 1.5rem;
        background:
            radial-gradient(circle at 8% 12%, rgb(var(--site-rgb-cyan) / .2), transparent 28rem),
            linear-gradient(145deg, #061d2b, #03131d);
        color: rgb(241 250 252 / .72);
    }

    .site-footer::before {
        position: absolute;
        z-index: 0;
        inset: 0;
        opacity: .09;
        background-image:
            linear-gradient(rgb(255 255 255 / .45) 1px, transparent 1px),
            linear-gradient(90deg, rgb(255 255 255 / .45) 1px, transparent 1px);
        background-size: 4.5rem 4.5rem;
        content: "";
        mask-image: linear-gradient(90deg, #000, transparent 70%);
        pointer-events: none;
    }

    /* Marca d'água institucional: o "P" do símbolo do PTIn, mesma assinatura
       visual usada no card de CTA e na faixa de indicadores. */
    .site-footer::after {
        position: absolute;
        z-index: 0;
        left: clamp(-4rem, -6vw, -1rem);
        bottom: clamp(-3rem, -5vw, -1rem);
        width: clamp(16rem, 24vw, 26rem);
        aspect-ratio: 593 / 830;
        background: url(/site-ptin/uploads/site-media/2026/09/dfd9bdd3bff22b12c5740eb01b00b33701935b84.png) no-repeat center / contain;
        filter: brightness(0) invert(1);
        opacity: .05;
        content: "";
        pointer-events: none;
    }

    .site-footer__grid {
        position: relative;
        z-index: 1;
        display: grid;
        grid-template-columns: minmax(15rem, 1.5fr) repeat(3, minmax(9rem, 1fr));
        gap: clamp(2rem, 5vw, 5rem);
    }

    .site-footer__brand {
        display: grid;
        gap: 1.25rem;
    }

    .site-footer__brand img {
        width: min(15rem, 80%);
        max-height: 5rem;
        object-fit: contain;
        object-position: left center;
    }

    .site-footer__brand p {
        max-width: 30rem;
    }

    .site-footer__column {
        display: grid;
        align-content: start;
        gap: .65rem;
    }

    .site-footer__column h2,
    .site-footer__column h3 {
        margin-block-end: .35rem;
        color: #fff;
        font-size: .85rem;
        letter-spacing: .09em;
        text-transform: uppercase;
    }

    .site-footer__column a {
        width: fit-content;
        color: rgb(241 250 252 / .72);
        text-decoration: none;
        transition: color var(--site-duration-fast), translate var(--site-duration-fast);
    }

    .site-footer__column a:hover {
        translate: .18rem 0;
        color: #fff;
    }

    .site-footer__social {
        display: flex;
        margin-block-start: .5rem;
        flex-wrap: wrap;
        gap: .55rem;
    }

    .site-footer__social a {
        display: grid;
        width: 2.65rem;
        aspect-ratio: 1;
        border: 1px solid rgb(255 255 255 / .16);
        border-radius: 50%;
        place-items: center;
        background: rgb(255 255 255 / .05);
    }

    .site-footer__bottom {
        position: relative;
        z-index: 1;
        display: flex;
        margin-block-start: clamp(3rem, 7vw, 6rem);
        padding-block-start: 1.35rem;
        border-block-start: 1px solid rgb(255 255 255 / .13);
        justify-content: space-between;
        gap: 1rem;
        color: rgb(241 250 252 / .55);
        font-size: .78rem;
    }

    .site-footer__bottom-links {
        display: flex;
        flex-wrap: wrap;
        gap: .3rem .9rem;
    }

    .site-footer__bottom-links a {
        color: inherit;
        text-decoration: none;
    }

    .site-footer__bottom-links a:hover {
        color: #fff;
        text-decoration: underline;
    }

    /* Progressive reveal: content stays visible when JavaScript is unavailable. */
    .site-js [data-reveal] {
        opacity: 0;
        transform: translate3d(0, 1.5rem, 0);
        transition:
            opacity var(--site-duration-slow) var(--site-ease-out),
            transform var(--site-duration-slow) var(--site-ease-out);
        transition-delay: var(--site-reveal-delay, 0ms);
    }

    .site-js [data-reveal="left"] {
        transform: translate3d(-1.75rem, 0, 0);
    }

    .site-js [data-reveal="right"] {
        transform: translate3d(1.75rem, 0, 0);
    }

    .site-js [data-reveal="scale"] {
        transform: scale(.96);
    }

    .site-js [data-reveal].is-visible {
        opacity: 1;
        transform: none;
    }

    [hidden] {
        display: none !important;
    }
}

@layer site-utilities {
    .site-sr-only {
        position: absolute !important;
        width: 1px !important;
        height: 1px !important;
        padding: 0 !important;
        overflow: hidden !important;
        clip: rect(0, 0, 0, 0) !important;
        border: 0 !important;
        margin: -1px !important;
        white-space: nowrap !important;
    }

    .site-text-gradient {
        display: inline-block;
        background: linear-gradient(100deg, var(--site-primary), var(--site-cyan));
        background-clip: text;
        color: transparent;
        -webkit-background-clip: text;
    }

    .site-flow > * + * {
        margin-block-start: var(--site-flow-space, 1rem);
    }

    .site-cluster {
        display: flex;
        flex-wrap: wrap;
        align-items: center;
        gap: var(--site-cluster-gap, .75rem);
    }

    .site-scroll-lock {
        overflow: hidden !important;
    }
}

@layer site-overrides {
    /* Existing PTIn public markup can adopt the new shell incrementally. */
    body.site-public .container-xxl,
    body.site-modern .container-xxl {
        width: min(100% - (var(--site-gutter) * 2), var(--site-container));
        max-width: none;
        margin-inline: auto;
        padding-inline: 0;
    }

    body.site-public :is(.ptin-page-hero, .ptin-v2-page-hero),
    body.site-modern :is(.ptin-page-hero, .ptin-v2-page-hero) {
        scroll-margin-top: calc(var(--site-header-height) + 1rem);
    }

    body.site-public .ptin-footer,
    body.site-modern .ptin-footer {
        background-color: #061d2b;
    }

    /* Dark theme: explicit Studio preference and legacy PTIn preference. */
    :where(html[data-site-theme="dark"], html[data-ptin-theme="dark"]) {
        color-scheme: dark;
        --site-ink: #dcebef;
        --site-ink-strong: #f4fbfc;
        --site-ink-muted: #a6bec6;
        --site-canvas: #000000;
        --site-surface: #0c2431;
        --site-surface-2: #102c3a;
        --site-surface-3: #163643;
        --site-line: #294653;
        --site-line-strong: #456471;
        --site-primary: #68d9e7;
        --site-primary-strong: #8be8f0;
        --site-secondary: #061d2b;
        --site-rgb-primary: 104 217 231;
        --site-rgb-secondary: 6 29 43;
        --site-rgb-ink: 220 235 239;
        --site-shadow-xs: 0 2px 10px rgb(0 0 0 / .15);
        --site-shadow-sm: 0 14px 38px rgb(0 0 0 / .24);
        --site-shadow-md: 0 24px 66px rgb(0 0 0 / .34);
    }

    :where(html[data-site-theme="dark"], html[data-ptin-theme="dark"]) .site-partner-card__logo {
        background: #fff;
    }

    :where(html[data-site-theme="dark"], html[data-ptin-theme="dark"]) .site-button--outline {
        --button-color: #fff;
    }



    @media (max-width: 70rem) {
        .site-header__inner {
            gap: 1rem;
        }

        .site-nav__link,
        .site-nav__trigger {
            padding-inline: .55rem;
            font-size: .86rem;
        }

        .site-card-grid--4,
        .site-partners-grid {
            grid-template-columns: repeat(2, minmax(0, 1fr));
        }

        .site-logo-cloud {
            grid-template-columns: repeat(3, minmax(0, 1fr));
        }
    }

    @media (max-width: 61.99rem) {
        :root {
            --site-header-height: 4.5rem;
        }

        .site-header__inner {
            grid-template-columns: minmax(0, 1fr) auto;
            min-height: 4.5rem;
        }

        .site-menu-toggle {
            display: inline-grid;
        }

        .site-nav[data-site-menu] {
            position: fixed;
            z-index: 1200;
            inset: var(--site-header-height) 0 0;
            display: grid;
            padding: 1rem var(--site-gutter) max(1.5rem, env(safe-area-inset-bottom));
            overflow-y: auto;
            overscroll-behavior: contain;
            opacity: 0;
            visibility: hidden;
            translate: 0 -.75rem;
            background: color-mix(in srgb, var(--site-surface) 98%, transparent);
            -webkit-backdrop-filter: blur(20px);
            backdrop-filter: blur(20px);
            transition:
                opacity var(--site-duration-fast),
                visibility var(--site-duration-fast),
                translate var(--site-duration) var(--site-ease-out);
        }

        .site-nav[data-site-menu].is-open,
        .site-nav[data-site-menu]:not([hidden])[data-open="true"] {
            opacity: 1;
            visibility: visible;
            translate: 0;
        }

        .site-nav__list {
            display: grid;
            align-content: start;
            justify-content: stretch;
            gap: .3rem;
        }

        .site-nav__link,
        .site-nav__trigger {
            width: 100%;
            min-height: 3.25rem;
            padding: .8rem 1rem;
            justify-content: space-between;
            font-size: 1rem;
        }

        .site-submenu {
            position: static;
            width: auto;
            margin: .25rem 0 .55rem 1rem;
            padding: .35rem;
            border-radius: var(--site-radius-sm);
            opacity: 1;
            visibility: visible;
            translate: 0;
            background: var(--site-surface-2);
            box-shadow: none;
        }

        .site-submenu[hidden] {
            display: none !important;
        }

        .site-section__heading {
            grid-template-columns: minmax(0, 1fr);
            gap: 1.2rem;
        }

        .site-section__heading h2 {
            max-width: 22ch;
        }

        .site-card-grid,
        .site-stats {
            grid-template-columns: repeat(2, minmax(0, 1fr));
        }

        .site-feature {
            grid-template-columns: minmax(0, 1fr);
            gap: 2.5rem;
        }

        .site-feature--reverse .site-feature__media {
            order: initial;
        }

        .site-mosaic {
            grid-template-columns: repeat(8, minmax(0, 1fr));
            grid-template-rows: repeat(10, clamp(3.2rem, 8vw, 5rem));
            min-height: clamp(42rem, 88vw, 54rem);
        }

        .site-mosaic__item:nth-child(1) { grid-column: 1 / span 3; grid-row: 2 / span 2; }
        .site-mosaic__item:nth-child(2) { grid-column: 4 / span 3; grid-row: 1 / span 2; }
        .site-mosaic__item:nth-child(3) { grid-column: 7 / span 2; grid-row: 2 / span 2; }
        .site-mosaic__item:nth-child(4) { grid-column: 1 / span 2; grid-row: 4 / span 2; }
        .site-mosaic__item:nth-child(5) { grid-column: 3 / span 3; grid-row: 4 / span 3; }
        .site-mosaic__item:nth-child(6) { grid-column: 6 / span 3; grid-row: 4 / span 2; }
        .site-mosaic__item:nth-child(7) { grid-column: 1 / span 2; grid-row: 6 / span 2; }
        .site-mosaic__item:nth-child(8) { grid-column: 6 / span 2; grid-row: 6 / span 3; }
        .site-mosaic__item:nth-child(9) { grid-column: 3 / span 3; grid-row: 7 / span 2; }
        .site-mosaic__item:nth-child(10) { grid-column: 1 / span 2; grid-row: 8 / span 2; }
        .site-mosaic__item:nth-child(11) { grid-column: 6 / span 3; grid-row: 9 / span 2; }
        .site-mosaic__item:nth-child(12) { grid-column: 3 / span 3; grid-row: 9 / span 2; }
        .site-mosaic__item:nth-child(n + 13) { display: none; }

        .site-footer__grid {
            grid-template-columns: repeat(2, minmax(0, 1fr));
        }

        .site-footer__brand {
            grid-column: 1 / -1;
        }
    }

    @media (max-width: 43.74rem) {
        :root {
            --site-gutter: clamp(1rem, 5vw, 1.4rem);
            --site-section-space: clamp(3.75rem, 15vw, 5.5rem);
            --site-section-space-compact: 3rem;
        }

        .site-govbar {
            display: none;
        }

        .site-brand__text {
            display: none;
        }

        .site-hero {
            min-height: max(34rem, 82vh);
            min-height: max(34rem, 82svh);
        }

        .site-hero--compact,
        .site-hero--text {
            min-height: max(27rem, 60vh);
            min-height: max(27rem, 60svh);
        }

        .site-hero::before {
            background:
                linear-gradient(0deg, rgb(3 22 35 / .94) 0%, rgb(3 22 35 / .67) 72%, rgb(3 22 35 / .3) 100%);
        }

        .site-hero__content {
            padding-block:
                calc(clamp(4.5rem, 13vh, 7rem) + var(--site-safe-top))
                clamp(3.5rem, 9vh, 5.5rem);
            align-content: end;
        }

        .site-hero h1 {
            max-width: 12ch;
            font-size: clamp(2.65rem, 13vw, 4.7rem);
        }

        .site-hero__lead {
            font-size: 1rem;
            line-height: 1.55;
        }

        .site-hero__actions,
        .site-actions {
            align-items: stretch;
        }

        .site-hero__actions .site-button {
            width: 100%;
        }

        .site-hero__scroll-cue {
            display: none;
        }

        .site-card-grid,
        .site-card-grid--4,
        .site-partners-grid,
        .site-stats,
        .site-logo-cloud {
            grid-template-columns: 1fr;
        }

        .site-news-card--featured {
            grid-column: auto;
            display: flex;
        }

        .site-news-card--featured .site-card__media {
            min-height: 0;
            aspect-ratio: 16 / 10;
        }

        .site-event-card {
            grid-template-columns: 4.75rem minmax(0, 1fr);
        }

        .site-event-card__date {
            min-width: 0;
            padding-inline: .5rem;
        }

        .site-event-card__date strong {
            font-size: 1.8rem;
        }

        .site-mosaic {
            grid-template-columns: repeat(2, minmax(0, 1fr));
            grid-template-rows: none;
            grid-auto-rows: clamp(9rem, 43vw, 13rem);
            min-height: 0;
            gap: .55rem;
        }

        .site-mosaic__item:nth-child(n) {
            display: block;
            grid-column: auto;
            grid-row: auto;
        }

        .site-mosaic__item:nth-child(3n + 1) {
            grid-column: 1 / -1;
        }

        .site-mosaic__item:nth-child(n + 10) {
            display: none;
        }

        .site-feature__media {
            min-height: min(110vw, 30rem);
        }

        .site-feature__media::before {
            inset: -.65rem .8rem .8rem -.65rem;
        }

        .site-callout {
            grid-template-columns: 1fr;
        }

        .site-footer__grid {
            grid-template-columns: 1fr;
        }

        .site-footer__brand {
            grid-column: auto;
        }

        .site-footer__bottom {
            align-items: flex-start;
            flex-direction: column;
        }
    }

    @media (max-width: 25rem) {
        .site-mosaic {
            grid-template-columns: 1fr;
        }

        .site-mosaic__item:nth-child(n) {
            grid-column: auto;
        }

        .site-header__actions {
            gap: .3rem;
        }

        .site-icon-button,
        .site-menu-toggle,
        .site-theme-toggle {
            width: 2.5rem;
            min-width: 2.5rem;
        }
    }

    @media (prefers-reduced-motion: reduce) {
        html {
            scroll-behavior: auto;
        }

        *,
        *::before,
        *::after {
            scroll-behavior: auto !important;
            animation-duration: .001ms !important;
            animation-iteration-count: 1 !important;
            transition-duration: .001ms !important;
            transition-delay: 0ms !important;
        }

        .site-js [data-reveal] {
            opacity: 1;
            transform: none;
        }
    }

    @media (forced-colors: active) {
        .site-card,
        .site-partner-card,
        .site-accordion details,
        .site-disclosure,
        .site-button,
        .site-icon-button,
        .site-menu-toggle,
        .site-theme-toggle {
            border: 2px solid CanvasText;
        }

        .site-hero::before,
        .site-mosaic__item::after {
            background: Canvas;
            opacity: .72;
        }

        .site-text-gradient {
            color: CanvasText;
        }
    }

    @media print {
        :root {
            --site-ink: #000;
            --site-ink-strong: #000;
            --site-ink-muted: #333;
            --site-canvas: #fff;
            --site-surface: #fff;
        }

        .site-govbar,
        .site-header,
        .ptin-site-header,
        .site-footer,
        .site-hero__scroll-cue,
        .site-theme-toggle,
        .site-menu-toggle,
        .site-button {
            display: none !important;
        }

        .site-section,
        .site-hero__content {
            padding-block: 1.5rem;
        }

        .site-hero {
            min-height: 0;
            background: #fff;
            color: #000;
        }

        .site-hero::before,
        .site-hero::after,
        .site-hero__media {
            display: none;
        }

        .site-hero h1,
        .site-section--dark :where(h2, h3, h4) {
            color: #000;
        }

        .site-hero__lead,
        .site-section--dark {
            color: #333;
        }

        .site-card,
        .site-partner-card,
        .site-mosaic__item {
            break-inside: avoid;
            box-shadow: none;
        }

        a[href^="http"]::after {
            content: " (" attr(href) ")";
            font-size: .75em;
        }
    }
}

/* Final precedence layer for the refreshed public cards and page shell. */
@layer site-overrides {
    .site-body .site-card-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(1rem, 2vw, 1.5rem); }
    .site-body .site-feature-card,
    .site-body .site-news-card { overflow: hidden; border: 1px solid var(--site-line); border-radius: var(--site-radius-lg); background: var(--site-surface); box-shadow: 0 .5rem 1.4rem rgb(8 45 67 / .05); }
    .site-body .site-feature-card__media,
    .site-body .site-news-card > a:first-child { aspect-ratio: 16 / 10; overflow: hidden; }
    .site-body .site-feature-card__media img,
    .site-body .site-news-card > a:first-child img { width: 100%; height: 100%; object-fit: cover; }
    .site-body .site-card__body,
    .site-body .site-news-card > div { padding: clamp(1.2rem, 2.2vw, 1.7rem); }
    .site-body .site-news-card > div { display: grid; gap: .75rem; }
    .site-body .site-news-card small { color: var(--site-primary); font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
    .site-body .site-news-card h2 a,
    .site-body .site-news-card h3 a,
    .site-body .site-card__body h3 a { text-decoration: none; }
    .site-body .site-news-card h2 a,
    .site-body .site-news-card h3 a { color: var(--site-ink-strong); }
    .site-body .site-feature-card h3 a {
        color: var(--site-ink-strong);
        text-decoration: none;
    }
    .site-body .site-feature-card > div {
        display: grid;
        gap: .55rem;
        padding: clamp(.85rem, 1.5vw, 1.2rem);
    }
    .site-body .site-feature-card h3 {
        margin: 0;
        font-size: clamp(1rem, 1.35vw, 1.25rem);
        line-height: 1.2;
        overflow-wrap: anywhere;
    }
    .site-body .site-feature-card p {
        display: -webkit-box;
        margin: 0;
        overflow: hidden;
        color: var(--site-ink-muted);
        font-size: clamp(.84rem, 1vw, .98rem);
        line-height: 1.5;
        -webkit-box-orient: vertical;
        -webkit-line-clamp: 3;
    }
    .site-body .site-news-card p,
    .site-body .site-card__body p { color: var(--site-ink-muted); }
    .site-body .site-partners-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; }
    .site-body .site-partners-grid--mosaic { grid-template-columns: repeat(3, minmax(0, 1fr)); grid-auto-rows: auto; }
    .site-body .site-partners-grid--mosaic .site-partner-card,
    .site-body .site-partners-grid--mosaic .site-partner-card:nth-child(5n + 1),
    .site-body .site-partners-grid--mosaic .site-partner-card:nth-child(5n + 4) {
        grid-column: auto;
        min-height: 12rem;
        translate: none;
    }
    .site-body .site-partners-grid .site-partner-card {
        grid-template-columns: 7rem minmax(0, 1fr);
        gap: 1.25rem;
        min-height: 12rem;
    }
    .site-body .site-partners-grid .site-partner-card__logo {
        width: 7rem;
        height: 8rem;
    }
    .site-body .site-partners-grid .site-partner-card__logo img {
        width: 100%;
        height: 100%;
        max-width: 100%;
        max-height: 100%;
        min-height: 0;
        padding: .65rem;
        background: transparent;
        box-sizing: border-box;
        object-fit: contain;
    }
    .site-body .site-partner-card {
        position: relative;
        overflow: hidden;
        border: 1px solid rgb(8 127 130 / .16);
        border-radius: var(--site-radius-lg);
        background: linear-gradient(135deg, var(--site-surface) 0%, #f8fcfb 100%);
        box-shadow: 0 .45rem 1.2rem rgb(8 45 67 / .06);
        transition: translate .2s ease, border-color .2s ease, box-shadow .2s ease;
    }
    .site-body .site-partner-card::before {
        width: 7rem;
        height: 7rem;
        right: -2.2rem;
        bottom: -2.5rem;
        background: rgb(8 127 130 / .08);
    }
    .site-body .site-partner-card:hover,
    .site-body .site-partner-card:focus-visible {
        translate: 0 -.15rem;
        border-color: rgb(8 127 130 / .38);
        box-shadow: 0 .75rem 1.6rem rgb(8 45 67 / .1);
    }
    .site-body .site-partner-card__logo {
        position: relative;
        z-index: 1;
        border: 1px solid rgb(8 127 130 / .14);
        background: linear-gradient(145deg, #f5fbfa, #e8f3f2);
        box-shadow: inset 0 0 0 1px rgb(255 255 255 / .72);
    }
    .site-body .site-partner-card__body {
        position: relative;
        z-index: 1;
    }
    .site-body .site-partner-card__body strong {
        color: var(--site-ink-strong);
        letter-spacing: -.01em;
    }
    .site-body .site-partner-card__body span {
        color: var(--site-ink-muted);
    }
    .site-body .site-partners-bootstrap {
        display: grid;
        grid-template-columns: repeat(3, minmax(0, 1fr));
        gap: 1.25rem;
    }
    .site-body .site-partners-bootstrap > [class*="col-"] { min-width: 0; }
    .site-body .site-partners-bootstrap .site-partner-card {
        display: grid;
        grid-template-columns: 7rem minmax(0, 1fr);
        align-items: center;
        gap: 1.15rem;
        min-height: 12rem;
        padding: 1rem;
        text-decoration: none;
    }
    .site-body .site-partners-bootstrap .site-partner-card__logo {
        display: grid;
        width: 7rem;
        height: 8rem;
        place-items: center;
        border-radius: .85rem;
        background: linear-gradient(145deg, #f5fbfa, #e8f3f2);
    }
    .site-body .site-partners-bootstrap .site-partner-card__logo img {
        width: 100%;
        height: 100%;
        max-width: 100%;
        max-height: 100%;
        min-height: 0;
        padding: .65rem;
        background: transparent;
        box-sizing: border-box;
        object-fit: contain;
    }
    .site-body .site-partners-bootstrap .site-partner-card__body { display: grid; gap: .35rem; padding: 0; }
    .site-body .site-partners-bootstrap .site-partner-card__body strong { color: var(--site-ink-strong); font-size: 1.1rem; }
    .site-body .site-partners-bootstrap .site-partner-card__body span { color: var(--site-ink-muted); font-size: .86rem; }
    .site-body .site-partner-card__body { min-width: 0; }
    .site-body .site-partner-card__body :where(strong, span, a) { overflow-wrap: anywhere; }
    .site-body .site-page-intro { background: linear-gradient(125deg, var(--site-secondary), #0c5061 54%, var(--site-primary)); }
    .site-body .site-page-intro :where(h1, h2),
    .site-body .site-page-intro__content h1 { color: #fff; letter-spacing: 0; }
    .site-body .site-page-intro p,
    .site-body .site-page-intro__content p { color: rgb(255 255 255 / .78); }

    @media (max-width: 58rem) {
        .site-body .site-partners-grid,
        .site-body .site-partners-grid--mosaic { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    }

    @media (max-width: 40rem) {
        .site-body .site-partners-grid,
        .site-body .site-partners-grid--mosaic { grid-template-columns: 1fr; }
    }
    .site-body .site-button--primary { background: var(--site-primary); }
    .site-body .site-button--primary:hover { background: var(--site-primary-strong); }

    @media (max-width: 58rem) {
        .site-body .site-card-grid,
        .site-body .site-partners-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
        .site-body .site-partners-bootstrap { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    }

    @media (max-width: 40rem) {
        .site-body .site-card-grid,
        .site-body .site-partners-grid,
        .site-body .site-stat-grid { grid-template-columns: 1fr; }
        .site-body .site-partners-bootstrap { grid-template-columns: 1fr; }
        .site-body .site-partners-grid .site-partner-card,
        .site-body .site-partners-bootstrap .site-partner-card {
            grid-template-columns: minmax(0, 1fr);
            justify-items: start;
        }
        .site-body .site-partners-grid .site-partner-card__logo,
        .site-body .site-partners-bootstrap .site-partner-card__logo {
            width: min(7rem, 100%);
        }
    }
}


/*
 * Padrão institucional para todas as seções "Imagem + texto".
 * A mídia acompanha a altura da composição no desktop e mantém uma proporção
 * previsível nos formatos empilhados, sem moldura decorativa vazia.
 */
@layer site-components {
    .site-page > .site-block--image_text .site-feature {
        grid-template-columns: minmax(0, .92fr) minmax(24rem, 1.08fr);
        align-items: stretch;
        gap: clamp(2.5rem, 6vw, 6.5rem);
    }

    .site-page > .site-block--image_text .site-feature__media {
        isolation: isolate;
        width: 100%;
        min-height: clamp(22rem, 34vw, 29rem);
        height: 100%;
        overflow: clip;
        border-radius: clamp(.8rem, 1.4vw, 1.2rem);
    }

    .site-page > .site-block--image_text .site-feature__media > img {
        position: absolute;
        inset: 0;
        display: block;
        width: 100%;
        height: 100%;
        border-radius: clamp(.8rem, 1.4vw, 1.2rem);
        box-shadow: 0 1.5rem 3.8rem rgb(6 45 58 / .16);
        object-fit: cover;
        object-position: 50% 50%;
        transform-origin: center;
        transition: transform .45s cubic-bezier(.2, .75, .25, 1), box-shadow .45s ease, filter .45s ease;
        will-change: transform;
    }

    @media (hover: hover) and (pointer: fine) {
        .site-page > .site-block--image_text .site-feature__media:hover > img {
            transform: translateY(-.25rem) scale(1.018);
            box-shadow: 0 2.15rem 5rem rgb(6 45 58 / .24), 0 .55rem 1.25rem rgb(6 45 58 / .12);
            filter: saturate(1.035) contrast(1.015);
        }
    }

    .site-page > .site-block--image_text .site-feature__media::before {
        content: none;
    }
}

@media (max-width: 64rem) {
    .site-page > .site-block--image_text .site-feature {
        grid-template-columns: minmax(0, 1fr);
        gap: 2.5rem;
    }

    .site-page > .site-block--image_text .site-feature__media {
        height: auto;
        min-height: 0;
        aspect-ratio: 16 / 9;
    }

    .site-page > .site-block--image_text .site-feature__media > img {
        object-position: 50% 50%;
    }
}

@media (max-width: 40rem) {
    .site-page > .site-block--image_text .site-feature__media {
        aspect-ratio: 4 / 3;
    }
}

/*
 * Regra definitiva (camada de maior prioridade) para a mídia dos blocos
 * "Imagem + texto": proporção fixa em qualquer tamanho de tela, para que a
 * foto nunca fique fina/comprida nem pareça "encaixada" dentro de uma
 * moldura vazia ao ser trocada. A sombra e o arredondamento ficam na própria
 * imagem — não em um contêiner ou pseudo-elemento por trás dela — para que o
 * hover produza um sombreamento limpo e a troca de imagem no Studio nunca
 * exponha um fundo/moldura por baixo.
 */
@layer site-overrides {
    .site-block--image_text .site-feature__media {
        width: 100%;
        height: auto;
        min-height: 0;
        aspect-ratio: 4 / 3;
        overflow: hidden;
        border-radius: 1.25rem;
    }

    .site-block--image_text .site-feature__media::before {
        content: none;
    }

    .site-block--image_text .site-feature__media > img {
        position: static;
        inset: auto;
        display: block;
        width: 100%;
        height: 100%;
        border-radius: 1.25rem;
        object-fit: cover;
        object-position: var(--site-media-position-x, 50%) var(--site-media-position-y, 50%);
        box-shadow: 0 1.75rem 3.5rem rgb(6 45 58 / .18);
        transition: transform .4s cubic-bezier(.2, .75, .25, 1), box-shadow .4s ease;
    }

    @media (hover: hover) and (pointer: fine) {
        .site-block--image_text .site-feature__media:hover > img {
            transform: translateY(-.3rem) scale(1.015);
            box-shadow: 0 2.25rem 4.5rem rgb(6 45 58 / .26);
        }
    }

    @media (prefers-reduced-motion: reduce) {
        .site-block--image_text .site-feature__media > img {
            transition: none !important;
        }
    }
}

@media (prefers-reduced-motion: reduce) {
    .site-page > .site-block--image_text .site-feature__media > img {
        transition: none !important;
    }
}

/* Renderização progressiva das faixas fora da primeira dobra. */
@supports (content-visibility: auto) {
    .site-page > .site-section:not(.site-hero) {
        content-visibility: auto;
        contain-intrinsic-size: auto 44rem;
    }
}

/* Faixas institucionais alternadas nas páginas construídas por seções. */
.site-page > .site-section:not(.site-hero) {
    color: var(--site-ink);
}

.site-page > .site-section:not(.site-hero):nth-of-type(odd) {
    background-color: var(--site-surface);
    background: color-mix(in srgb, var(--site-surface) 88%, var(--site-canvas) 12%);
}

.site-page > .site-section:not(.site-hero):nth-of-type(even) {
    background-color: var(--site-surface-2);
    background:
        radial-gradient(circle at 8% 10%, rgb(var(--site-rgb-cyan) / .1), transparent 30rem),
        linear-gradient(150deg, var(--site-surface-2), color-mix(in srgb, var(--site-canvas) 82%, var(--site-surface) 18%));
}

.site-page > .site-section:not(.site-hero) .site-section__heading h2 {
    color: var(--site-ink-strong);
}

.site-page > .site-section:not(.site-hero) .site-section__heading > p {
    color: var(--site-ink-muted);
}

.site-page > .site-section--brand:not(.site-hero) .site-cta {
    background:
        radial-gradient(circle at 88% 12%, rgb(var(--site-rgb-cyan) / .28), transparent 24rem),
        linear-gradient(135deg, var(--site-secondary), #063d5c);
    color: rgb(255 255 255 / .82);
}

.site-page > .site-section--brand:not(.site-hero) .site-cta .site-section__heading h2 {
    color: #fff;
}

.site-page > .site-section--brand:not(.site-hero) .site-cta .site-section__heading > p {
    color: rgb(255 255 255 / .76);
}

html.site-a11y-contrast .site-page > .site-section:not(.site-hero),
html[data-site-contrast="high"] .site-page > .site-section:not(.site-hero) {
    background: #000;
}

@media print {
    .site-page > .site-section:not(.site-hero) {
        background: #fff !important;
        color: #000 !important;
    }
}

/* Padronização institucional global — azul do arco PTIn e texto íntegro. */
@layer site-overrides {
    :root {
        --site-primary: var(--site-config-primary, #087fbd);
        --site-primary-strong: #075f94;
        --site-secondary: var(--site-config-secondary, #0b4565);
        --site-cyan: #168fbe;
        --site-teal: #0876a8;
        --site-rgb-primary: 8 127 189;
        --site-rgb-secondary: 11 69 101;
        --site-rgb-cyan: 22 143 190;
        --site-line: #d4e2e8;
        --site-line-strong: #aec5d0;
        --site-canvas: var(--site-config-surface, #f6fafe);
        --site-surface-2: #edf5fa;
        --site-surface-3: #dfedf6;
    }

    html[data-site-theme="dark"] {
        --site-primary: #65c7ef;
        --site-primary-strong: #9eddf6;
        --site-secondary: #061f35;
        --site-rgb-primary: 101 199 239;
        --site-rgb-secondary: 6 31 53;
    }

    body.site-body {
        background-image:
            linear-gradient(90deg, rgb(8 127 189 / .025) 1px, transparent 1px),
            linear-gradient(0deg, rgb(8 127 189 / .025) 1px, transparent 1px);
    }

    :where(.site-body, .site-public, .site-modern) :where(h1, h2, h3, h4, h5, h6, p, li, a, button, strong, span) {
        hyphens: none !important;
        word-break: normal;
    }

    :where(.site-body, .site-public, .site-modern) :where(h1, h2, h3, h4, h5, h6) {
        overflow-wrap: break-word !important;
        text-wrap: balance;
    }

    :where(.site-body, .site-public, .site-modern) :where(p, li, a, button, strong, span) {
        overflow-wrap: break-word;
    }

    .site-page > .site-section:not(.site-hero) > .site-container,
    .site-page > .site-section:not(.site-hero) > :where(.site-split, .site-prose-wrap) {
        width: min(100% - (var(--site-gutter) * 2), var(--site-container));
        margin-inline: auto;
    }

    .site-page > .site-block--rich_text .site-prose-wrap {
        place-items: start stretch;
    }

    .site-page > .site-block--rich_text .site-prose {
        width: min(100%, 68rem);
        max-width: 68rem;
        margin-inline: 0 auto;
    }

    .site-page > .site-section:not(.site-hero) :where(
        .site-section__heading > p,
        .site-feature__copy .site-section__heading > p,
        .site-prose > p,
        .site-prose > ul > li,
        .site-prose > ol > li
    ) {
        text-align: justify;
        text-justify: inter-word;
        text-wrap: pretty;
    }

    .site-page .site-feature-card p {
        display: block;
        max-height: none;
        overflow: visible;
        -webkit-line-clamp: unset;
    }

    .site-body .site-page-intro {
        background: linear-gradient(125deg, #061f35 0%, #0b4565 58%, #087fbd 100%);
    }

    .site-body .site-hero .site-button--primary {
        background: linear-gradient(135deg, #087fbd, #075f94);
        border-color: #087fbd;
        box-shadow: 0 .85rem 2rem rgb(8 127 189 / .26);
    }

    .site-body .site-hero .site-button--primary:hover {
        background: linear-gradient(135deg, #075f94, #064c78);
        border-color: #075f94;
    }

    .site-footer > .site-footer__bottom .site-container {
        display: flex;
        flex-wrap: wrap;
        justify-content: space-between;
        gap: .55rem 1.5rem;
    }

    @media (max-width: 48rem) {
        .site-page > .site-section:not(.site-hero) :where(
            .site-section__heading > p,
            .site-feature__copy .site-section__heading > p,
            .site-prose > p,
            .site-prose > ul > li,
            .site-prose > ol > li
        ) {
            text-align: start;
        }

        .site-footer > .site-footer__bottom .site-container {
            justify-content: center;
            text-align: center;
        }
    }

}

/* Textos editoriais seguem a mesma régua esquerda dos demais blocos da página. */
.site-page > .site-block--rich_text .site-prose-wrap {
    place-items: start;
}

.site-page > .site-block--rich_text .site-prose {
    margin-inline: 0 auto;
}

/* Páginas legais: leitura contínua, hierarquia clara e títulos proporcionais. */
.site-page--legal {
    padding-block-end: clamp(3rem, 7vw, 6rem);
    background:
        radial-gradient(circle at 92% 8%, rgb(8 127 189 / .1), transparent 26rem),
        #f4f8fa;
}

.site-legal-hero {
    position: relative;
    overflow: hidden;
    padding-block: clamp(4.5rem, 9vw, 7.5rem) clamp(3rem, 6vw, 5rem);
    color: rgb(255 255 255 / .8);
    background:
        radial-gradient(circle at 85% 20%, rgb(32 211 194 / .22), transparent 24rem),
        linear-gradient(125deg, #061f35, #0b4565 62%, #087fbd);
}

.site-legal-hero::after {
    position: absolute;
    right: clamp(-6rem, -5vw, -2rem);
    bottom: clamp(-8rem, -7vw, -4rem);
    width: clamp(15rem, 28vw, 25rem);
    aspect-ratio: 1;
    border: 1px solid rgb(255 255 255 / .14);
    border-radius: 50%;
    box-shadow: 0 0 0 2rem rgb(255 255 255 / .035), 0 0 0 4rem rgb(255 255 255 / .025);
    content: '';
}

.site-legal-hero .site-container {
    position: relative;
    z-index: 1;
}

.site-legal-hero span {
    display: block;
    margin-block-end: .75rem;
    color: #58dbcf;
    font-size: .72rem;
    font-weight: 800;
    letter-spacing: .14em;
    text-transform: uppercase;
}

.site-legal-hero h1 {
    max-width: 18ch;
    color: #fff;
    font-size: clamp(2.45rem, 6vw, 5.3rem);
    line-height: 1;
    letter-spacing: -.045em;
}

.site-legal-hero p {
    max-width: 45rem;
    margin-block-start: 1rem;
    color: rgb(255 255 255 / .78);
    font-size: clamp(1rem, 1.5vw, 1.16rem);
    line-height: 1.65;
}

.site-legal-updated {
    display: inline-flex;
    align-items: center;
    gap: .45rem;
    margin-block-start: 1.15rem;
    padding: .55rem .75rem;
    color: rgb(255 255 255 / .84);
    background: rgb(255 255 255 / .1);
    border: 1px solid rgb(255 255 255 / .18);
    border-radius: 999px;
    font-size: .78rem;
    font-weight: 700;
}

.site-page--legal > .site-section:not(.site-hero) {
    padding-block: 0;
    background: transparent !important;
}

.site-page--legal > .site-section:not(.site-hero):first-of-type {
    padding-block-start: clamp(2rem, 5vw, 4rem);
}

.site-page--legal .site-prose-wrap {
    width: min(100% - (var(--site-gutter) * 2), 64rem) !important;
}

.site-page--legal .site-prose {
    width: 100% !important;
    max-width: none !important;
    margin: 0 0 .85rem !important;
    padding: clamp(1.25rem, 3vw, 2rem);
    border: 1px solid #d5e4eb;
    border-radius: 1.1rem;
    background: rgb(255 255 255 / .96);
    box-shadow: 0 .7rem 2.2rem rgb(8 39 68 / .055);
}

.site-page--legal .site-prose .site-section__heading {
    margin: 0 0 .65rem;
}

.site-page--legal .site-prose .site-section__heading > div {
    margin: 0;
}

.site-page--legal .site-prose .site-section__heading h2 {
    max-width: none;
    color: #0a3048;
    font-size: clamp(1.2rem, 2vw, 1.55rem);
    line-height: 1.25;
    letter-spacing: -.015em;
}

.site-page--legal .site-prose > p {
    max-width: 78ch;
    margin: 0;
    color: #455f6d;
    font-size: clamp(.95rem, 1.2vw, 1.04rem);
    line-height: 1.72;
    text-align: start !important;
}

.site-page--legal .site-prose > p + p {
    margin-block-start: .8rem;
}

@media (max-width: 40rem) {
    .site-legal-hero {
        padding-block: 3.75rem 2.75rem;
    }

    .site-page--legal .site-prose {
        padding: 1.15rem;
        border-radius: .9rem;
    }
}

/* Mantém títulos e grades dentro da viewport quando o usuário amplia o texto. */
.site-page > .site-hero,
.site-page > .site-hero .site-hero__content,
.site-page > .site-hero .site-hero__copy {
    min-width: 0;
    grid-template-columns: minmax(0, 1fr);
}

.site-page > .site-hero .site-hero__copy > *,
.site-page > .site-section .site-section__heading,
.site-page > .site-section .site-section__heading > *,
.site-page > .site-block--image_text .site-feature__copy {
    min-width: 0;
}

.site-page :where(.site-hero h1, .site-section__heading h2, .site-section__heading h3) {
    overflow-wrap: anywhere;
    hyphens: none;
}

/* Regra final do portal: palavras não são hifenizadas nem fragmentadas. */
.site-body :where(h1, h2, h3, h4, h5, h6, p, li, a, span, strong, small, blockquote, figcaption, td, th, label, button) {
    word-break: normal !important;
    overflow-wrap: break-word !important;
    hyphens: none !important;
}


/* Visualizador universal de mídia — interface mínima para galerias e carrosséis. */
.site-mosaic button.site-mosaic__item {
    width: 100%;
    padding: 0;
    border: 0;
    appearance: none;
    background: transparent;
    color: inherit;
    font: inherit;
    text-align: inherit;
    cursor: zoom-in;
}

.site-lightbox {
    box-sizing: border-box;
    width: 100vw;
    max-width: none;
    height: 100svh;
    max-height: none;
    margin: 0;
    padding: clamp(.9rem, 2.4vw, 2rem);
    border: 0;
    border-radius: 0;
    overflow: hidden;
    background: transparent;
    color: #fff;
    box-shadow: none;
}

.site-lightbox::backdrop {
    background: rgb(3 11 17 / .88);
    -webkit-backdrop-filter: blur(.45rem) saturate(.86);
    backdrop-filter: blur(.45rem) saturate(.86);
}

.site-lightbox[open] {
    display: grid;
    grid-template-columns: minmax(2.75rem, 4rem) minmax(0, 1fr) minmax(2.75rem, 4rem);
    align-items: center;
    gap: clamp(.25rem, 1vw, .9rem);
    animation: site-lightbox-enter 180ms ease-out both;
}

.site-lightbox figure {
    grid-column: 2;
    grid-row: 1;
    display: grid;
    width: 100%;
    height: 100%;
    min-width: 0;
    min-height: 0;
    margin: 0;
    padding-block: clamp(3rem, 6vh, 4.5rem) clamp(2.7rem, 5vh, 3.75rem);
    grid-template-rows: minmax(0, 1fr) auto;
    align-items: center;
    justify-items: center;
    gap: .8rem;
}

.site-lightbox figure img {
    display: block;
    width: auto;
    max-width: 100%;
    height: auto;
    max-height: 100%;
    border-radius: .45rem;
    object-fit: contain;
    opacity: 1;
    box-shadow: 0 1.5rem 4.5rem rgb(0 0 0 / .38);
    transition: opacity 160ms ease, transform 160ms ease;
}

.site-lightbox[data-gallery-loading="true"] figure img {
    opacity: .22;
    transform: scale(.992);
}

.site-lightbox figcaption {
    max-width: min(100%, 56rem);
    min-height: 1.25rem;
    padding-inline: 1rem;
    color: rgb(255 255 255 / .78);
    font-size: clamp(.76rem, 1vw, .88rem);
    font-weight: 500;
    line-height: 1.45;
    text-align: center;
}

.site-lightbox figcaption:empty { display: none; }

.site-lightbox__counter {
    position: absolute;
    z-index: 3;
    inset-block-start: clamp(.9rem, 2vw, 1.35rem);
    inset-inline-start: 50%;
    display: inline-flex;
    min-height: 1.85rem;
    padding-inline: .7rem;
    align-items: center;
    border: 1px solid rgb(255 255 255 / .12);
    border-radius: 999px;
    background: rgb(8 19 27 / .5);
    color: rgb(255 255 255 / .72);
    font-size: .69rem;
    font-weight: 700;
    letter-spacing: .08em;
    translate: -50% 0;
    -webkit-backdrop-filter: blur(.55rem);
    backdrop-filter: blur(.55rem);
}

.site-lightbox__counter[hidden] { display: none; }

.site-lightbox__close,
.site-lightbox__nav {
    z-index: 3;
    display: grid;
    width: 2.65rem;
    min-width: 2.65rem;
    aspect-ratio: 1;
    padding: 0 0 .08rem;
    border: 1px solid rgb(255 255 255 / .13);
    border-radius: 50%;
    place-items: center;
    background: rgb(8 19 27 / .52);
    color: rgb(255 255 255 / .88);
    cursor: pointer;
    font-family: Arial, sans-serif;
    font-weight: 300;
    line-height: 1;
    -webkit-backdrop-filter: blur(.55rem);
    backdrop-filter: blur(.55rem);
    transition: border-color 150ms ease, background-color 150ms ease, color 150ms ease, transform 150ms ease;
}

.site-lightbox__close {
    position: absolute;
    inset-block-start: clamp(.75rem, 2vw, 1.25rem);
    inset-inline-end: clamp(.75rem, 2vw, 1.25rem);
    font-size: 1.45rem;
}

.site-lightbox__nav { font-size: 1.65rem; }
.site-lightbox__nav--previous { grid-column: 1; grid-row: 1; justify-self: start; }
.site-lightbox__nav--next { grid-column: 3; grid-row: 1; justify-self: end; }

.site-lightbox__close:hover,
.site-lightbox__nav:hover {
    border-color: rgb(255 255 255 / .3);
    background: rgb(255 255 255 / .13);
    color: #fff;
    transform: scale(1.04);
}

.site-lightbox__close:focus-visible,
.site-lightbox__nav:focus-visible {
    outline: .18rem solid var(--site-accent);
    outline-offset: .2rem;
}

.site-lightbox__nav[hidden] { display: none; }

@keyframes site-lightbox-enter {
    from { opacity: 0; }
    to { opacity: 1; }
}

@media (max-width: 43.74rem) {
    .site-lightbox {
        width: 100vw;
        height: 100svh;
        padding: .55rem;
    }

    .site-lightbox[open] { grid-template-columns: 1fr; }

    .site-lightbox figure {
        grid-column: 1;
        padding: 3.3rem .2rem 3.5rem;
    }

    .site-lightbox figure img {
        max-width: calc(100vw - 1.1rem);
        border-radius: .3rem;
    }

    .site-lightbox figcaption {
        padding-inline: 2.8rem;
        font-size: .76rem;
    }

    .site-lightbox__counter { inset-block-start: .85rem; }
    .site-lightbox__close { inset-block-start: .7rem; inset-inline-end: .7rem; }

    .site-lightbox__nav {
        position: absolute;
        inset-block-start: 50%;
        width: 2.5rem;
        min-width: 2.5rem;
        background: rgb(8 19 27 / .58);
        translate: 0 -50%;
    }

    .site-lightbox__nav--previous { inset-inline-start: .55rem; }
    .site-lightbox__nav--next { inset-inline-end: .55rem; }
}

@media (prefers-reduced-motion: reduce) {
    .site-lightbox[open] { animation: none; }
    .site-lightbox figure img,
    .site-lightbox__close,
    .site-lightbox__nav { transition: none; }
}

/* Linguagem visual do parque tecnológico: informação densa, cards compactos e sinais discretos. */
.site-page--home .site-hero h1 {
    max-width: 12ch;
    font-size: clamp(2.55rem, 5.35vw, 5.15rem);
    line-height: .98;
}

/* O vídeo de abertura ocupa toda a viewport, atrás do cabeçalho flutuante. */
.site-body--home-overlay .site-page--home > .site-first-block.site-hero--video {
    min-height: 100svh;
    min-height: 100dvh;
}

.site-hero__title-dynamic {
    display: grid;
    min-height: 3.05em;
    align-content: center;
}

.site-hero__title-fixed,
.site-hero__title-signal {
    display: block;
}

.site-hero__title-signal {
    min-height: 1.04em;
    color: #58c8f5;
}

.site-hero__signal-caret {
    display: inline-block;
    width: .045em;
    height: .8em;
    margin-inline-start: .08em;
    background: currentColor;
    animation: site-signal-caret 850ms steps(1, end) infinite;
    vertical-align: -.02em;
}

@keyframes site-signal-caret {
    50% { opacity: 0; }
}

.site-body .site-card-grid {
    gap: clamp(.75rem, 1.25vw, 1rem);
}

.site-body .site-feature-card,
.site-body .site-news-card {
    border-radius: 1rem;
    box-shadow: 0 .45rem 1.25rem rgb(7 76 120 / .055);
}

.site-body .site-feature-card__media,
.site-body .site-news-card > a:first-child {
    aspect-ratio: 16 / 9;
}

.site-body .site-feature-card > div,
.site-body .site-card__body,
.site-body .site-news-card > div {
    padding: clamp(.8rem, 1.25vw, 1.05rem);
}

.site-body .site-feature-card h3,
.site-body .site-card__body h3,
.site-body .site-news-card h3 {
    font-size: clamp(.98rem, 1.18vw, 1.13rem);
    line-height: 1.24;
}

.site-body .site-feature-card p,
.site-body .site-card__body p,
.site-body .site-news-card p {
    font-size: clamp(.8rem, .92vw, .9rem);
    line-height: 1.48;
}

.site-body .site-section__heading {
    margin-block-end: clamp(1.45rem, 2.7vw, 2.15rem);
}

.site-body .site-section__heading h2 {
    font-size: clamp(1.9rem, 3.55vw, 3.65rem);
}

.site-body .site-stat {
    min-height: 0;
    padding: clamp(1rem, 1.8vw, 1.45rem);
}

/* Indicadores de Ponta Porã: escala compacta para manter todos os valores em uma linha. */
.site-page--ponta-pora .site-stat strong {
    font-size: clamp(2.1rem, 3.7vw, 3.4rem);
    line-height: 1.02;
    letter-spacing: -.045em;
    white-space: nowrap;
}

@media (max-width: 47.99rem) {
    .site-page--home .site-hero h1 {
        max-width: 13ch;
        font-size: clamp(2.35rem, 11.5vw, 3.8rem);
    }

    .site-hero__title-dynamic { min-height: 3.05em; }
}

@media (prefers-reduced-motion: reduce) {
    .site-hero__signal-caret { animation: none; }
}


.site-a11y-reduce-motion .site-hero__signal-caret { animation: none; }

/* Seleção de texto alinhada à identidade institucional do PTIn. */
.site-body ::selection {
    background: #087fbd;
    color: #fff;
    text-shadow: none;
}

.site-body ::-moz-selection {
    background: #087fbd;
    color: #fff;
    text-shadow: none;
}

/* Enquadramento por secao salvo no Studio; a midia original permanece intacta. */
.site-section.site-hero > .site-hero__media,
.site-section.site-hero > .site-hero__media :where(img, video) {
    height: 100%;
}

.site-section.site-hero > .site-hero__media {
    object-position: var(--site-media-position-x, 50%) var(--site-media-position-y, 50%) !important;
    scale: var(--site-media-zoom, 1);
    transform-origin: center;
}

.site-section .site-feature__media {
    overflow: clip;
}

.site-section .site-feature__media > :where(img, video) {
    object-position: var(--site-media-position-x, 50%) var(--site-media-position-y, 50%) !important;
    scale: var(--site-media-zoom, 1);
    transform-origin: center;
}

@media (prefers-reduced-motion: reduce) {
    .site-section.site-hero > .site-hero__media,
    .site-section .site-feature__media > :where(img, video) { transition: none !important; }
}

/* Cards institucionais baseados em ícones: composição inteiramente centralizada. */
.site-body .site-block--card_grid .site-card:has(> .site-card__icon) {
    align-items: center;
    text-align: center;
}

.site-body .site-block--card_grid .site-card:has(> .site-card__icon) > .site-card__icon {
    margin-inline: auto;
}

.site-body .site-block--card_grid .site-card:has(> .site-card__icon) > .site-card__body {
    width: 100%;
    align-items: center;
    text-align: center;
}

.site-body .site-block--card_grid .site-card:has(> .site-card__icon) > .site-card__body > :where(h3, p) {
    width: 100%;
    margin-inline: auto;
}

/* Caminhos para inovar: cards institucionais sem fotografia. */
.site-body .site-card-grid--pathways {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: clamp(1rem, 1.8vw, 1.35rem);
}

.site-body .site-program-card {
    --site-program-accent: #087fbd;
    --site-program-soft: #e8f4fb;
    --site-program-ink: #086b9e;
    position: relative;
    min-height: clamp(16.5rem, 21vw, 18rem);
    overflow: hidden;
    isolation: isolate;
    border-color: color-mix(in srgb, var(--site-primary) 13%, var(--site-line));
    background: var(--site-surface);
    box-shadow: 0 .7rem 1.8rem rgb(8 45 67 / .065);
}

.site-body .site-program-card::before {
    content: "";
    position: absolute;
    inset: 0 0 auto;
    z-index: 3;
    height: .22rem;
    background: linear-gradient(90deg, #d83b3b 0 25%, #f5c400 25% 50%, #087fbd 50% 75%, #139b70 75% 100%);
}

.site-body .site-program-card:hover,
.site-body .site-program-card:focus-within {
    border-color: color-mix(in srgb, var(--site-program-accent) 40%, var(--site-line));
    box-shadow: 0 1rem 2.25rem rgb(8 45 67 / .1);
}

.site-program-card__visual {
    position: relative;
    display: flex;
    min-height: 5.7rem;
    overflow: hidden;
    align-items: center;
    padding: 1.3rem 1.35rem .55rem;
    background: transparent;
}

.site-program-card__icon {
    position: relative;
    z-index: 2;
    display: grid;
    width: 3.4rem;
    height: 3.4rem;
    place-items: center;
    border: 1px solid color-mix(in srgb, var(--site-program-accent) 12%, transparent);
    border-radius: .9rem;
    background: var(--site-program-soft);
    color: var(--site-program-ink);
    font-size: 1.2rem;
}

.site-program-card__brand-orb {
    position: absolute;
    top: -3.25rem;
    right: -1.35rem;
    width: 9.5rem;
    aspect-ratio: 1;
    border-radius: 50%;
    opacity: .34;
    background: conic-gradient(from -35deg, #d83b3b 0 25%, #f5c400 25% 49%, #087fbd 49% 74%, #139b70 74% 100%);
    -webkit-mask: radial-gradient(circle at center, #000 1.1px, transparent 1.45px) 0 0 / .5rem .5rem;
    mask: radial-gradient(circle at center, #000 1.1px, transparent 1.45px) 0 0 / .5rem .5rem;
}

.site-body .site-program-card > .site-card__body {
    position: relative;
    z-index: 1;
    display: flex;
    flex: 1;
    flex-direction: column;
    align-items: flex-start;
    padding: .45rem clamp(1.15rem, 1.8vw, 1.35rem) clamp(1.15rem, 1.8vw, 1.35rem);
    gap: .5rem;
    text-align: left;
}

.site-program-card__eyebrow {
    color: var(--site-program-ink);
    font-size: .66rem;
    font-weight: 800;
    letter-spacing: .13em;
    line-height: 1.2;
    text-transform: uppercase;
}

.site-body .site-program-card .site-card__body h3 {
    margin: 0;
    color: var(--site-ink-strong);
    font-size: clamp(1.18rem, 1.55vw, 1.42rem);
}

.site-program-card .site-card__body h3 a {
    color: inherit;
}

.site-body .site-program-card .site-card__body p {
    flex: 1;
    margin: .05rem 0 .35rem;
    color: var(--site-ink-muted);
    font-size: .88rem;
    line-height: 1.5;
}

.site-program-card__link {
    display: inline-flex;
    align-items: center;
    gap: .55rem;
    margin-top: auto;
    padding: .2rem 0;
    color: var(--site-program-ink);
    font-size: .82rem;
    font-weight: 800;
    line-height: 1.25;
    text-decoration: none;
    transition: color 180ms ease;
}

.site-program-card__link i {
    font-size: .72rem;
    transition: transform 180ms ease;
}

.site-program-card__link:hover,
.site-program-card__link:focus-visible {
    color: var(--site-ink-strong);
}

.site-program-card__link:hover i,
.site-program-card__link:focus-visible i {
    transform: translateX(.18rem);
}

:where(html[data-site-theme="dark"], html[data-ptin-theme="dark"]) .site-body .site-program-card {
    background: color-mix(in srgb, var(--site-surface) 94%, var(--site-program-accent));
}

html.site-a11y-contrast .site-program-card,
html[data-site-contrast="high"] .site-program-card {
    border-width: 2px;
}

@media (max-width: 58rem) {
    .site-body .site-card-grid--pathways {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .site-body .site-card-grid--pathways > :last-child:nth-child(odd) {
        grid-column: 1 / -1;
    }
}

@media (max-width: 40rem) {
    .site-body .site-card-grid--pathways {
        grid-template-columns: 1fr;
    }

    .site-body .site-card-grid--pathways > :last-child:nth-child(odd) {
        grid-column: auto;
    }

    .site-body .site-program-card {
        min-height: 16rem;
    }
}

@media (prefers-reduced-motion: reduce) {
    .site-body .site-program-card,
    .site-program-card__link i {
        transition: none;
    }
}

/*
 * Menu de categorias (news index)
 * Adicione ao FINAL do site-modern.css (fora de qualquer @layer).
 * Regras sem @layer vencem as regras em camadas, então o display:grid
 * de .site-card-grid é substituído sem precisar de !important.
 */

/* Container: sobrescreve o grid de 3 colunas do .site-card-grid */
.site-card-grid.site-news-index__grid.site_nav_menu {
    display: flex;
    grid-template-columns: none;
    align-items: center;
    gap: .75rem;
    width: 100%;
    margin-block-end: clamp(1.25rem, 3vw, 2rem);
    padding: .75rem;
    border: 1px solid var(--site-line);
    border-radius: var(--site-radius-lg);
    background: var(--site-surface);
    box-shadow: var(--site-shadow-xs);
}

/* Faixa rolável (o form) */
.site_nav_menu__track {
    position: relative;
    display: flex;
    flex: 1 1 auto;
    min-width: 0; /* permite o overflow dentro do flex */
    margin: 0;
    gap: .6rem;
    overflow-x: auto;
    overscroll-behavior-x: contain;
    scroll-behavior: smooth;
    scroll-snap-type: x proximity;
    scrollbar-width: none;
    -ms-overflow-style: none;
}

.site_nav_menu__track::-webkit-scrollbar {
    display: none;
}

/* Esmaece as bordas apenas quando há conteúdo escondido */
.site_nav_menu.has-overflow .site_nav_menu__track {
    -webkit-mask-image: linear-gradient(90deg, transparent, #000 1.25rem, #000 calc(100% - 1.25rem), transparent);
    mask-image: linear-gradient(90deg, transparent, #000 1.25rem, #000 calc(100% - 1.25rem), transparent);
}

/* Checkboxes: invisíveis, mas ainda focáveis pelo teclado */
.site_nav_menu__track input[type="checkbox"] {
    position: absolute;
    width: 1px;
    height: 1px;
    margin: -1px;
    padding: 0;
    border: 0;
    overflow: hidden;
    clip-path: inset(50%);
    opacity: 0;
    pointer-events: none;
    appearance: none;
}

/* Botões de categoria (labels) */
.btn_nav_menu {
    display: inline-flex;
    flex: 0 0 auto; /* não encolhe nem quebra linha */
    align-items: center;
    justify-content: center;
    min-height: 3rem;
    padding: .65rem 1.4rem;
    border: 1px solid var(--site-line-strong);
    border-radius: var(--site-radius-pill);
    background: var(--site-surface);
    color: var(--site-ink);
    cursor: pointer;
    font-size: .93rem;
    font-weight: 700;
    line-height: 1.15;
    white-space: nowrap;
    user-select: none;
    scroll-snap-align: start;
    transition:
        background-color var(--site-duration-fast),
        border-color var(--site-duration-fast),
        color var(--site-duration-fast),
        box-shadow var(--site-duration-fast),
        transform var(--site-duration-fast) var(--site-ease-spring);
}

.btn_nav_menu:hover {
    border-color: var(--site-primary);
    background: var(--site-surface-2);
    color: var(--site-primary);
}

/* Estado marcado: o input fica oculto, então estilizamos a label */
.site_nav_menu__track input:checked + .btn_nav_menu {
    border-color: var(--site-primary);
    background: var(--site-primary);
    color: #fff;
    box-shadow: 0 .5rem 1.2rem rgb(var(--site-rgb-primary) / .28);
}

.site_nav_menu__track input:focus-visible + .btn_nav_menu {
    box-shadow: var(--site-focus-ring);
}

/* Setas laterais */
.site_nav_menu__arrow {
    display: grid;
    flex: 0 0 auto;
    place-items: center;
    width: 3rem;
    height: 3rem;
    padding: 0;
    border: 1px solid var(--site-line-strong);
    border-radius: 50%;
    background: var(--site-surface);
    color: var(--site-primary);
    cursor: pointer;
    font-size: 1rem;
    transition:
        background-color var(--site-duration-fast),
        border-color var(--site-duration-fast),
        color var(--site-duration-fast),
        opacity var(--site-duration-fast);
}

.site_nav_menu__arrow:hover:not(:disabled) {
    border-color: var(--site-primary);
    background: var(--site-primary);
    color: #fff;
}

.site_nav_menu__arrow:focus-visible {
    outline: 0;
    box-shadow: var(--site-focus-ring);
}

.site_nav_menu__arrow:disabled {
    opacity: .35;
    cursor: default;
}

/* Sem estouro de largura, as setas somem */
.site_nav_menu:not(.has-overflow) .site_nav_menu__arrow {
    display: none;
}

@media (max-width: 40rem) {
    .site-card-grid.site-news-index__grid.site_nav_menu {
        padding: .5rem;
        gap: .5rem;
    }

    .site_nav_menu__arrow {
        width: 2.5rem;
        height: 2.5rem;
    }

    .btn_nav_menu {
        min-height: 2.75rem;
        padding-inline: 1.1rem;
        font-size: .875rem;
    }
}

@media (prefers-reduced-motion: reduce) {
    .site_nav_menu__track {
        scroll-behavior: auto;
    }

    .btn_nav_menu,
    .site_nav_menu__arrow {
        transition: none;
    }

    .btn_nav_menu:hover {
        transform: none;
    }
}