/*
 * Conecta PTIN no sistema visual institucional.
 * O shell, os tokens, a tipografia e os componentes-base vêm da index normal.
 */
@layer site-overrides {
    .site-conecta-hub {
        overflow: clip;
        background: var(--site-canvas);
    }

    .site-conecta-access {
        position: absolute;
        z-index: 4;
        inset: clamp(1rem, 2.5vw, 1.75rem) 0 auto;
        pointer-events: none;
    }

    .site-conecta-access__inner {
        display: flex;
        width: min(100% - (var(--site-gutter) * 2), var(--site-container));
        margin-inline: auto;
        justify-content: flex-end;
        gap: .55rem;
        pointer-events: auto;
    }

    .site-body--conecta-hub .site-conecta-access__button {
        min-height: 2.75rem;
        padding: .62rem .95rem;
        border-radius: var(--site-radius-pill);
        gap: .45rem;
        font-size: .8rem;
        line-height: 1;
        white-space: nowrap;
        box-shadow: 0 .8rem 2rem rgb(0 0 0 / .2);
        backdrop-filter: blur(14px);
    }

    .site-body--conecta-hub .site-conecta-access__button.site-button--outline {
        border-color: rgb(255 255 255 / .55);
        background: rgb(4 29 45 / .66);
        color: #fff;
    }

    .site-body--conecta-hub .site-conecta-access__button.site-button--outline:hover {
        border-color: #fff;
        background: rgb(4 29 45 / .86);
    }

    .site-body--conecta-hub .site-conecta-access__button svg {
        width: 1rem;
        height: 1rem;
        fill: none;
        stroke: currentColor;
        stroke-linecap: round;
        stroke-linejoin: round;
        stroke-width: 1.9;
    }

    .site-body--conecta-hub .site-conecta-access__theme {
        width: 2.75rem;
        min-width: 2.75rem;
        min-height: 2.75rem;
        border-color: rgb(255 255 255 / .55);
        background: rgb(4 29 45 / .66);
        color: #fff;
        box-shadow: 0 .8rem 2rem rgb(0 0 0 / .2);
        backdrop-filter: blur(14px);
    }

    .site-body--conecta-hub .site-conecta-access__theme:hover {
        border-color: #fff;
        background: rgb(4 29 45 / .86);
        color: #fff;
    }

    .site-body--conecta-hub .site-first-block.site-conecta-hero .site-hero__content {
        padding-block-start: clamp(6.75rem, 13vh, 8.5rem);
    }

    .site-conecta-hub svg {
        width: 1.25rem;
        height: 1.25rem;
        fill: none;
        stroke: currentColor;
        stroke-width: 1.8;
        stroke-linecap: round;
        stroke-linejoin: round;
    }

    .site-conecta-hero {
        min-height: clamp(39rem, 72svh, 47rem);
        align-items: stretch;
        background: var(--site-secondary);
    }

    .site-conecta-hero::before {
        background:
            linear-gradient(90deg, rgb(3 25 39 / .96) 0%, rgb(3 25 39 / .86) 42%, rgb(3 25 39 / .54) 72%, rgb(3 25 39 / .38) 100%),
            linear-gradient(0deg, rgb(3 25 39 / .64), transparent 58%);
    }

    .site-conecta-hero::after {
        inset: auto -8rem -15rem auto;
        width: 34rem;
        height: 34rem;
        border-radius: 50%;
        background: rgb(var(--site-rgb-cyan) / .15);
        filter: blur(4.5rem);
    }

    .site-conecta-hero .site-hero__media img {
        object-position: 55% 50%;
    }

    .site-conecta-hero .site-hero__content {
        position: relative;
        align-content: center;
    }

    .site-conecta-hero .site-hero__scroll-cue {
        z-index: 2;
    }

    .site-conecta-orb {
        --site-conecta-orb-color: 8 127 130;
        --site-conecta-orb-border-alpha: .32;
        --site-conecta-orb-fill-alpha: .14;
        --site-conecta-orb-ring-alpha: .065;
        --site-conecta-orb-shadow-alpha: .08;
        --site-conecta-orb-fallback-opacity: .84;
        position: relative;
        z-index: 1;
        width: min(100%, 30rem);
        aspect-ratio: 1;
        translate: none;
        contain: layout paint size;
        opacity: .82;
        pointer-events: none;
        transition: opacity var(--site-duration) var(--site-ease-out);
    }

    .site-conecta-orb__canvas,
    .site-conecta-orb__fallback {
        position: absolute;
        inset: 0;
        display: block;
        width: 100%;
        height: 100%;
        pointer-events: none;
        transform-origin: center;
    }

    .site-conecta-orb__canvas {
        opacity: 0;
        transition: opacity .6s var(--site-ease-out);
    }

    .site-conecta-orb__fallback {
        inset: 15%;
        width: 70%;
        height: 70%;
        border: 1px solid rgb(var(--site-conecta-orb-color) / var(--site-conecta-orb-border-alpha));
        border-radius: 50%;
        background:
            radial-gradient(circle at 38% 32%, rgb(var(--site-conecta-orb-color) / var(--site-conecta-orb-fill-alpha)), transparent 58%),
            repeating-radial-gradient(circle at 50% 50%, transparent 0 .48rem, rgb(var(--site-conecta-orb-color) / var(--site-conecta-orb-ring-alpha)) .5rem .54rem);
        box-shadow: inset 0 0 3rem rgb(var(--site-conecta-orb-color) / var(--site-conecta-orb-shadow-alpha));
        opacity: var(--site-conecta-orb-fallback-opacity);
        transition: opacity .4s var(--site-ease-out);
    }

    .site-conecta-orb.is-ready .site-conecta-orb__canvas {
        opacity: 1;
    }

    .site-conecta-orb.is-ready .site-conecta-orb__fallback {
        opacity: 0;
    }

    .site-conecta-orb.is-motion-reduced .site-conecta-orb__canvas {
        opacity: .45;
    }

    :where(html[data-site-theme="dark"], html[data-site-theme-resolved="dark"]) .site-conecta-orb {
        --site-conecta-orb-color: 167 239 243;
        --site-conecta-orb-border-alpha: .2;
        --site-conecta-orb-fill-alpha: .08;
        --site-conecta-orb-ring-alpha: .035;
        --site-conecta-orb-shadow-alpha: .04;
        --site-conecta-orb-fallback-opacity: .7;
    }

    .site-conecta-hero__layout {
        display: grid;
        width: 100%;
        grid-template-columns: minmax(0, 1.05fr) minmax(27rem, .95fr);
        gap: clamp(2rem, 5vw, 5rem);
        align-items: center;
    }

    .site-conecta-hero .site-hero__copy {
        position: relative;
        z-index: 2;
        max-width: 45rem;
    }

    .site-conecta-hero h1 {
        max-width: 10ch;
    }

    .site-conecta-hero__points {
        display: flex;
        margin: .2rem 0 0;
        padding: 0;
        flex-wrap: wrap;
        gap: .65rem 1.1rem;
        color: rgb(255 255 255 / .78);
        font-size: .86rem;
        font-weight: 700;
        list-style: none;
    }

    .site-conecta-hero__points li {
        display: inline-flex;
        align-items: center;
        gap: .42rem;
    }

    .site-conecta-hero__points svg {
        width: 1rem;
        height: 1rem;
        color: #8ae6ef;
        stroke-width: 2.4;
    }

    .site-conecta-hero .site-button svg {
        width: 1.05rem;
        height: 1.05rem;
    }

    .site-conecta-quick {
        padding: clamp(1rem, 2vw, 1.4rem);
        border: 1px solid color-mix(in srgb, var(--site-line) 75%, transparent);
        border-radius: clamp(1.1rem, 2vw, 1.6rem);
        background: color-mix(in srgb, var(--site-surface) 94%, transparent);
        box-shadow: 0 1.6rem 4rem rgb(2 25 40 / .28);
        color: var(--site-ink);
        backdrop-filter: blur(1rem);
    }

    .site-conecta-quick__header {
        position: relative;
        z-index: 2;
        display: flex;
        padding: .2rem .2rem 1rem;
        align-items: end;
        justify-content: space-between;
        gap: 1rem;
    }

    .site-conecta-quick__header > div {
        display: grid;
        gap: .18rem;
    }

    .site-conecta-quick__header span {
        color: var(--site-primary);
        font-size: .7rem;
        font-weight: 820;
        letter-spacing: .1em;
        text-transform: uppercase;
    }

    .site-conecta-quick__header h2 {
        color: var(--site-ink-strong);
        font-size: clamp(1.3rem, 2vw, 1.7rem);
    }

    .site-conecta-quick__header > strong {
        display: grid;
        width: 2.7rem;
        height: 2.7rem;
        border-radius: 50%;
        place-items: center;
        background: color-mix(in srgb, var(--site-primary) 12%, var(--site-surface));
        color: var(--site-primary);
        font-family: var(--site-font-display);
        font-size: 1rem;
    }

    .site-conecta-quick__list {
        position: relative;
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: .65rem;
    }

    .site-conecta-quick__link {
        --module-color: var(--site-primary);
        position: relative;
        display: grid;
        min-width: 0;
        min-height: 4.8rem;
        padding: .72rem;
        border: 1px solid var(--site-line);
        border-radius: .9rem;
        grid-template-columns: auto minmax(0, 1fr) auto;
        align-items: center;
        gap: .65rem;
        background: var(--site-surface-2);
        color: var(--site-ink);
        text-decoration: none;
        transition:
            border-color var(--site-duration-fast),
            background-color var(--site-duration-fast),
            box-shadow var(--site-duration-fast),
            transform var(--site-duration-fast) var(--site-ease-out);
    }

    .site-conecta-quick__link:hover,
    .site-conecta-quick__link:focus-visible {
        z-index: 3;
        border-color: color-mix(in srgb, var(--module-color) 48%, var(--site-line));
        background: var(--site-surface);
        color: var(--site-ink);
        box-shadow: var(--site-shadow-xs);
        transform: translateY(-.16rem);
    }

    .site-conecta-quick__link > * {
        position: relative;
        z-index: 2;
    }

    .site-conecta-quick__link:focus-visible,
    .site-conecta-module:focus-visible,
    .site-conecta-about__more:focus-visible {
        outline: .2rem solid var(--site-accent);
        outline-offset: .18rem;
    }

    .site-conecta-icon {
        display: grid;
        width: 2.65rem;
        height: 2.65rem;
        flex: 0 0 auto;
        border-radius: .75rem;
        place-items: center;
        background: color-mix(in srgb, var(--module-color) 12%, var(--site-surface));
        color: var(--module-color);
    }

    .site-conecta-icon svg {
        width: 1.35rem;
        height: 1.35rem;
    }

    .site-conecta-quick__copy {
        display: grid;
        min-width: 0;
        gap: .18rem;
    }

    .site-conecta-quick__copy strong {
        overflow: hidden;
        color: var(--site-ink-strong);
        font-size: .85rem;
        line-height: 1.25;
        text-overflow: ellipsis;
    }

    .site-conecta-quick__copy small {
        overflow: hidden;
        color: var(--site-ink-muted);
        font-size: .67rem;
        line-height: 1.25;
        text-overflow: ellipsis;
        white-space: nowrap;
    }

    .site-conecta-arrow {
        width: 1rem !important;
        height: 1rem !important;
        color: var(--module-color);
        transition: translate var(--site-duration-fast) var(--site-ease-out);
    }

    .site-conecta-quick__link:hover .site-conecta-arrow,
    .site-conecta-module:hover .site-conecta-module__action svg {
        translate: .2rem 0;
    }

    .site-conecta-tone--cyan { --module-color: #0b8294; }
    .site-conecta-tone--blue { --module-color: #176dae; }
    .site-conecta-tone--green { --module-color: #19805c; }
    .site-conecta-tone--violet { --module-color: #705eb0; }
    .site-conecta-tone--amber { --module-color: #a96518; }
    .site-conecta-tone--teal { --module-color: #087f82; }

    .site-conecta-about__layout {
        display: grid;
        grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr);
        gap: clamp(1rem, 2.4vw, 1.8rem);
        align-items: stretch;
    }

    .site-conecta-about__orb-card {
        position: relative;
        isolation: isolate;
        display: grid;
        min-width: 0;
        min-height: clamp(28rem, 38vw, 34rem);
        padding: clamp(1.6rem, 3.5vw, 3rem);
        overflow: visible;
        border: 0;
        border-radius: 0;
        place-items: center;
        background: transparent;
        box-shadow: none;
    }

    .site-conecta-about__icon {
        display: grid;
        width: 3.4rem;
        height: 3.4rem;
        margin-block-end: auto;
        border: 1px solid rgb(255 255 255 / .18);
        border-radius: 1rem;
        place-items: center;
        background: rgb(255 255 255 / .09);
        color: #8ae6ef;
    }

    .site-conecta-about__icon svg {
        width: 1.65rem;
        height: 1.65rem;
    }

    .site-conecta-about__intro h3 {
        max-width: 17ch;
        margin-block-start: clamp(2.5rem, 7vw, 6rem);
        color: #fff;
        font-size: clamp(1.75rem, 3vw, 2.7rem);
        line-height: 1.08;
    }

    .site-conecta-about__intro p {
        max-width: 42rem;
        margin-block-start: 1rem;
        font-size: 1rem;
        line-height: 1.7;
    }

    .site-conecta-about__intro a {
        display: inline-flex;
        margin-block-start: 1.4rem;
        align-items: center;
        gap: .5rem;
        color: #fff;
        font-weight: 780;
        text-decoration: none;
    }

    .site-conecta-about__intro a svg {
        width: 1rem;
        height: 1rem;
    }

    .site-conecta-about__features {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: clamp(.8rem, 1.8vw, 1.2rem);
    }

    .site-conecta-about__details {
        display: grid;
        min-width: 0;
        grid-template-rows: 1fr auto;
        gap: clamp(1rem, 2vw, 1.4rem);
    }

    .site-conecta-about__more {
        display: inline-flex;
        width: fit-content;
        align-items: center;
        gap: .5rem;
        color: var(--site-primary);
        font-weight: 780;
        text-decoration: none;
    }

    .site-conecta-about__more svg {
        width: 1rem;
        height: 1rem;
        transition: translate var(--site-duration-fast) var(--site-ease-out);
    }

    .site-conecta-about__more:hover svg,
    .site-conecta-about__more:focus-visible svg {
        translate: .2rem 0;
    }

    .site-conecta-about__features article {
        padding: clamp(1.25rem, 2.4vw, 1.8rem);
        border: 1px solid var(--site-line);
        border-radius: var(--site-radius-lg);
        background: var(--site-surface);
        box-shadow: var(--site-shadow-xs);
    }

    .site-conecta-about__features article > span {
        display: grid;
        width: 2.8rem;
        height: 2.8rem;
        margin-block-end: 1.25rem;
        border-radius: .8rem;
        place-items: center;
        background: color-mix(in srgb, var(--site-primary) 11%, var(--site-surface));
        color: var(--site-primary);
    }

    .site-conecta-about__features h3 {
        color: var(--site-ink-strong);
        font-size: clamp(1.12rem, 1.6vw, 1.35rem);
    }

    .site-conecta-about__features p {
        margin-block-start: .55rem;
        color: var(--site-ink-muted);
        font-size: .92rem;
        line-height: 1.6;
    }

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

    .site-conecta-module {
        --module-color: var(--site-primary);
        position: relative;
        display: flex;
        min-width: 0;
        min-height: 22rem;
        padding: clamp(1.25rem, 2.3vw, 1.7rem);
        overflow: hidden;
        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);
        color: var(--site-ink);
        text-decoration: none;
        transition:
            border-color var(--site-duration),
            box-shadow var(--site-duration),
            transform var(--site-duration) var(--site-ease-out);
    }

    .site-conecta-module::before {
        position: absolute;
        inset: 0 0 auto;
        height: .24rem;
        background: var(--module-color);
        content: "";
    }

    .site-conecta-module:hover,
    .site-conecta-module:focus-visible {
        border-color: color-mix(in srgb, var(--module-color) 42%, var(--site-line));
        box-shadow: var(--site-shadow-md);
        color: var(--site-ink);
        transform: translateY(-.3rem);
    }

    .site-conecta-module__top {
        display: flex;
        align-items: flex-start;
        justify-content: space-between;
        gap: 1rem;
    }

    .site-conecta-module__status {
        display: inline-flex;
        min-height: 1.75rem;
        padding: .28rem .62rem;
        border-radius: var(--site-radius-pill);
        align-items: center;
        gap: .4rem;
        background: var(--site-surface-2);
        color: var(--site-ink-muted);
        font-size: .66rem;
        font-weight: 750;
        line-height: 1.2;
        text-align: right;
    }

    .site-conecta-module__status i {
        width: .42rem;
        height: .42rem;
        border-radius: 50%;
        background: var(--site-ink-muted);
    }

    .site-conecta-module__status.is-available {
        background: color-mix(in srgb, #16825b 12%, var(--site-surface));
        color: #126b4c;
    }

    .site-conecta-module__status.is-available i {
        background: #16825b;
    }

    .site-conecta-module > small {
        margin-block-start: 1.6rem;
        color: var(--module-color);
        font-size: .69rem;
        font-weight: 820;
        letter-spacing: .08em;
        text-transform: uppercase;
    }

    .site-conecta-module h3 {
        margin-block-start: .55rem;
        color: var(--site-ink-strong);
        font-size: clamp(1.4rem, 2.2vw, 1.8rem);
    }

    .site-conecta-module > p {
        margin-block-start: .7rem;
        color: var(--site-ink-muted);
        font-size: .95rem;
        line-height: 1.65;
    }

    .site-conecta-module__action {
        display: inline-flex;
        margin-block-start: auto;
        padding-block-start: 1.25rem;
        align-items: center;
        justify-content: space-between;
        gap: .8rem;
        color: var(--module-color);
        font-weight: 790;
    }

    .site-conecta-module__action svg {
        width: 1.05rem;
        height: 1.05rem;
        transition: translate var(--site-duration-fast) var(--site-ease-out);
    }

    .site-conecta-cta__panel {
        display: grid;
        grid-template-columns: minmax(0, 1fr) auto;
        gap: clamp(2rem, 6vw, 6rem);
        align-items: end;
    }

    .site-conecta-cta__panel > div:first-child {
        display: grid;
        gap: 1rem;
    }

    .site-conecta-cta__panel h2 {
        max-width: 15ch;
        color: #fff;
        font-size: clamp(2rem, 4.4vw, 4rem);
        line-height: 1.02;
    }

    .site-conecta-cta__panel p {
        max-width: 42rem;
        color: rgb(255 255 255 / .76);
        font-size: 1.05rem;
    }

    .site-conecta-cta__actions {
        display: grid;
        min-width: min(100%, 16rem);
        justify-items: start;
        gap: .7rem;
    }

    .site-conecta-cta__actions small {
        max-width: 20rem;
        color: rgb(255 255 255 / .68);
        font-size: .76rem;
        line-height: 1.5;
    }

    html[data-site-theme="dark"] .site-conecta-module__status.is-available {
        color: #82e1ba;
    }

    @media (max-width: 72rem) {
        .site-conecta-hero {
            min-height: auto;
        }

        .site-conecta-hero__layout {
            grid-template-columns: 1fr;
            gap: 2.5rem;
        }

        .site-conecta-hero .site-hero__copy {
            max-width: 48rem;
        }

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

    }

    @media (max-width: 61.99rem) {
        .site-conecta-quick__list,
        .site-conecta-modules__grid {
            grid-template-columns: repeat(2, minmax(0, 1fr));
        }

        .site-conecta-cta__panel {
            grid-template-columns: 1fr;
            align-items: start;
        }

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

        .site-conecta-about__orb-card {
            min-height: clamp(25rem, 62vw, 31rem);
        }

        .site-conecta-orb {
            width: min(100%, 28rem);
        }
    }

    @media (max-width: 43.74rem) {
        .site-conecta-access {
            inset-block-start: .85rem;
        }

        .site-conecta-access__inner {
            display: grid;
            grid-template-columns: minmax(0, 1fr) 2.75rem minmax(0, 1fr);
        }

        .site-body--conecta-hub .site-conecta-access__button {
            width: 100%;
            min-width: 0;
            padding-inline: .7rem;
            justify-content: center;
            font-size: .74rem;
        }

        .site-body--conecta-hub .site-first-block.site-conecta-hero .site-hero__content {
            padding-block-start: 6.5rem;
        }

        .site-body--home-overlay .site-first-block.site-conecta-hero {
            min-height: auto;
        }

        .site-conecta-hero .site-hero__media img {
            object-position: 64% 50%;
        }

        .site-conecta-hero .site-hero__content {
            padding-block-end: 3rem;
            align-content: start;
        }

        .site-conecta-hero__layout {
            gap: 2rem;
        }

        .site-conecta-hero__points {
            gap: .55rem .8rem;
            font-size: .78rem;
        }

        .site-conecta-quick {
            padding: .9rem;
            border-radius: 1rem;
        }

        .site-conecta-quick__header {
            padding: .2rem .15rem .85rem;
        }

        .site-conecta-quick__list {
            grid-template-columns: repeat(2, minmax(0, 1fr));
            gap: .55rem;
        }

        .site-conecta-quick__link {
            min-height: 5.6rem;
            padding: .7rem;
            grid-template-columns: auto minmax(0, 1fr);
            align-content: center;
            gap: .55rem;
        }

        .site-conecta-quick__link > .site-conecta-arrow {
            display: none;
        }

        .site-conecta-quick__copy strong {
            white-space: normal;
        }

        .site-conecta-quick__copy small {
            white-space: normal;
        }

        .site-conecta-about__features,
        .site-conecta-modules__grid {
            grid-template-columns: 1fr;
        }

        .site-conecta-about__orb-card {
            min-height: 21rem;
            padding: 1.5rem;
        }

        .site-conecta-orb {
            width: min(100%, 20rem);
            opacity: .74;
        }

        .site-conecta-module {
            min-height: 20rem;
        }

        .site-conecta-cta__panel {
            padding: 1.5rem;
        }

        .site-conecta-cta__actions,
        .site-conecta-cta__actions .site-button {
            width: 100%;
        }
    }

    @media (max-width: 22rem) {
        .site-conecta-brand__divider,
        .site-conecta-brand__copy {
            display: none;
        }

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

    @media (prefers-reduced-motion: reduce) {
        .site-conecta-orb,
        .site-conecta-orb__canvas,
        .site-conecta-orb__fallback {
            transition-duration: .01ms;
        }

        .site-conecta-quick__link,
        .site-conecta-module,
        .site-conecta-arrow,
        .site-conecta-module__action svg,
        .site-conecta-about__more svg {
            transition-duration: .01ms;
        }

        .site-conecta-quick__link:hover,
        .site-conecta-module:hover {
            transform: none;
        }
    }

    :is(html.site-a11y-reduce-motion, html[data-site-motion="reduced"], html[data-site-motion="reduce"]) .site-conecta-orb,
    :is(html.site-a11y-reduce-motion, html[data-site-motion="reduced"], html[data-site-motion="reduce"]) .site-conecta-orb :is(.site-conecta-orb__canvas, .site-conecta-orb__fallback) {
        transition-duration: .01ms;
    }

    @media (forced-colors: active) {
        .site-conecta-brand__divider {
            background: CanvasText;
        }

        .site-conecta-about__orb-card {
            display: none;
        }

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

        .site-conecta-quick,
        .site-conecta-quick__link,
        .site-conecta-about__features article,
        .site-conecta-module {
            border: 2px solid CanvasText;
        }
    }
}
