/* =========================================================
   VERTEX STUDIO — TERMOS E CONDIÇÕES
   FICHEIRO: css/termos.css
   PARTE 1 — BASE, FUNDO, PRELOADER E CABEÇALHO
========================================================= */

/* =========================================================
   1. VARIÁVEIS EXCLUSIVAS
========================================================= */

.terms-page-body {
    --terms-bg: #02050d;
    --terms-bg-soft: #06101e;
    --terms-panel: rgba(7, 15, 31, 0.82);
    --terms-panel-solid: #071020;
    --terms-panel-light: rgba(13, 27, 52, 0.74);

    --terms-white: #f6f8ff;
    --terms-text: #c2cadd;
    --terms-muted: #7f8ba3;

    --terms-cyan: #16c7ff;
    --terms-blue: #3574ff;
    --terms-violet: #7b4dff;
    --terms-purple: #a63dff;
    --terms-green: #43f2ad;

    --terms-border: rgba(83, 135, 255, 0.2);
    --terms-border-bright: rgba(42, 196, 255, 0.46);

    --terms-gradient: linear-gradient(
        115deg,
        var(--terms-cyan) 0%,
        var(--terms-blue) 48%,
        var(--terms-purple) 100%
    );

    --terms-shadow:
        0 32px 90px rgba(0, 0, 0, 0.45),
        0 0 60px rgba(70, 67, 255, 0.08);

    --terms-radius-large: 34px;
    --terms-radius-medium: 22px;
    --terms-radius-small: 14px;

    background: var(--terms-bg);
    color: var(--terms-text);
    overflow-x: clip;
}

/* Impede elementos decorativos de criarem deslocamento lateral. */
html {
    overflow-x: hidden;
    scroll-behavior: smooth;
}

body.terms-page-body {
    width: 100%;
    min-height: 100vh;
    margin: 0;
}

.terms-page-body *,
.terms-page-body *::before,
.terms-page-body *::after {
    box-sizing: border-box;
}

.terms-page-body img,
.terms-page-body svg,
.terms-page-body canvas {
    display: block;
    max-width: 100%;
}

.terms-page-body a {
    color: inherit;
    text-decoration: none;
}

.terms-page-body button,
.terms-page-body input,
.terms-page-body textarea {
    font: inherit;
}

.terms-page-body .container {
    width: min(100% - 48px, 1520px);
    margin-inline: auto;
}

.terms-page-body .section {
    position: relative;
    isolation: isolate;
}

/* =========================================================
   2. ACESSIBILIDADE
========================================================= */

.skip-link {
    position: fixed;
    top: 18px;
    left: 18px;
    z-index: 10000;
    padding: 13px 20px;
    border-radius: 10px;
    background: var(--terms-white);
    color: #030611;
    font-weight: 700;
    transform: translateY(-180%);
    transition: transform 0.25s ease;
}

.skip-link:focus {
    transform: translateY(0);
}

.terms-page-body :focus-visible {
    outline: 2px solid var(--terms-cyan);
    outline-offset: 4px;
}

/* =========================================================
   3. FUNDO GLOBAL
========================================================= */

.terms-page-body .site-background {
    position: fixed;
    inset: 0;
    z-index: -10;
    overflow: hidden;
    pointer-events: none;
    background:
        radial-gradient(
            circle at 10% 25%,
            rgba(0, 175, 255, 0.12),
            transparent 31%
        ),
        radial-gradient(
            circle at 88% 19%,
            rgba(119, 53, 255, 0.17),
            transparent 34%
        ),
        radial-gradient(
            circle at 52% 88%,
            rgba(25, 93, 255, 0.1),
            transparent 36%
        ),
        linear-gradient(135deg, #020611 0%, #02040b 56%, #09031a 100%);
}

.terms-page-body .site-background::before {
    content: "";
    position: absolute;
    width: 72vw;
    height: 72vw;
    top: -32vw;
    right: -26vw;
    border: 1px solid rgba(78, 104, 255, 0.12);
    border-radius: 50%;
    box-shadow:
        0 0 0 8vw rgba(64, 82, 255, 0.015),
        0 0 0 16vw rgba(120, 61, 255, 0.012);
}

.terms-page-body .site-background::after {
    content: "";
    position: absolute;
    width: 64vw;
    height: 32vw;
    left: -18vw;
    bottom: -17vw;
    border: 1px solid rgba(20, 199, 255, 0.11);
    border-radius: 50%;
    transform: rotate(-12deg);
}

.terms-page-body .site-background__grid {
    position: absolute;
    inset: 0;
    opacity: 0.13;
    background-image:
        linear-gradient(rgba(72, 107, 179, 0.09) 1px, transparent 1px),
        linear-gradient(90deg, rgba(72, 107, 179, 0.09) 1px, transparent 1px);
    background-size: 90px 90px;
    mask-image: linear-gradient(
        to bottom,
        transparent,
        black 14%,
        black 76%,
        transparent
    );
}

.terms-page-body .site-background__noise {
    position: absolute;
    inset: 0;
    opacity: 0.035;
    background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.88' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)' opacity='.75'/%3E%3C/svg%3E");
}

/* =========================================================
   4. BARRA DE PROGRESSO DA PÁGINA
========================================================= */

.scroll-progress {
    position: fixed;
    top: 0;
    left: 0;
    z-index: 9999;
    width: 100%;
    height: 3px;
    pointer-events: none;
    background: rgba(255, 255, 255, 0.025);
}

.scroll-progress__bar {
    display: block;
    width: 0;
    height: 100%;
    transform-origin: left center;
    background: var(--terms-gradient);
    box-shadow:
        0 0 12px rgba(22, 199, 255, 0.8),
        0 0 22px rgba(123, 77, 255, 0.62);
    transition: width 0.08s linear;
}

/* Compatibilidade caso o JavaScript utilize transform. */
.scroll-progress__bar[style*="scaleX"] {
    width: 100%;
}

/* =========================================================
   5. PRELOADER
========================================================= */

.terms-page-body .preloader {
    position: fixed;
    inset: 0;
    z-index: 10050;
    display: grid;
    place-items: center;
    overflow: hidden;
    visibility: visible;
    opacity: 1;
    background:
        radial-gradient(
            circle at center,
            rgba(33, 44, 103, 0.55),
            transparent 35%
        ),
        #02050d;
    transition:
        opacity 0.65s ease,
        visibility 0.65s ease;
}

.terms-page-body .preloader::before,
.terms-page-body .preloader::after {
    content: "";
    position: absolute;
    border-radius: 50%;
    pointer-events: none;
}

.terms-page-body .preloader::before {
    width: 330px;
    height: 330px;
    border: 1px solid rgba(52, 157, 255, 0.18);
    animation: terms-preloader-ring 5s linear infinite;
}

.terms-page-body .preloader::after {
    width: 250px;
    height: 250px;
    border: 1px solid rgba(145, 61, 255, 0.24);
    animation: terms-preloader-ring 4s linear infinite reverse;
}

.terms-page-body .preloader.is-hidden,
.terms-page-body .preloader.preloader--hidden {
    visibility: hidden;
    opacity: 0;
    pointer-events: none;
}

.terms-page-body .preloader__content {
    position: relative;
    z-index: 2;
    display: flex;
    width: min(340px, calc(100vw - 48px));
    flex-direction: column;
    align-items: center;
    gap: 24px;
}

.terms-page-body .preloader__logo-wrapper {
    position: relative;
    display: grid;
    width: 140px;
    height: 140px;
    place-items: center;
    border: 1px solid rgba(61, 155, 255, 0.3);
    border-radius: 50%;
    background: rgba(5, 10, 29, 0.74);
    box-shadow:
        inset 0 0 35px rgba(72, 62, 255, 0.12),
        0 0 60px rgba(55, 108, 255, 0.18);
    animation: terms-preloader-float 2.7s ease-in-out infinite;
}

.terms-page-body .preloader__logo-wrapper::before {
    content: "";
    position: absolute;
    inset: -10px;
    border: 1px solid transparent;
    border-top-color: var(--terms-cyan);
    border-right-color: var(--terms-violet);
    border-radius: inherit;
    animation: terms-preloader-spin 2.4s linear infinite;
}

.terms-page-body .preloader__logo {
    width: 82px;
    height: auto;
    filter: drop-shadow(0 0 17px rgba(75, 126, 255, 0.55));
    animation: terms-logo-spin 3.8s ease-in-out infinite;
}

.terms-page-body .preloader__bar {
    position: relative;
    width: 100%;
    height: 3px;
    overflow: hidden;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.09);
}

.terms-page-body .preloader__progress {
    display: block;
    width: 0;
    height: 100%;
    border-radius: inherit;
    background: var(--terms-gradient);
    box-shadow: 0 0 16px rgba(56, 138, 255, 0.75);
    transition: width 0.25s ease;
}

.terms-page-body .preloader__text {
    margin: 0;
    color: var(--terms-muted);
    font-size: 0.68rem;
    letter-spacing: 0.34em;
    text-align: center;
    text-transform: uppercase;
}

@keyframes terms-preloader-spin {
    to {
        transform: rotate(360deg);
    }
}

@keyframes terms-logo-spin {
    0%,
    100% {
        transform: rotate(-8deg) scale(0.94);
    }

    50% {
        transform: rotate(352deg) scale(1.04);
    }
}

@keyframes terms-preloader-ring {
    0% {
        transform: rotate(0deg) scale(0.94);
        opacity: 0.45;
    }

    50% {
        transform: rotate(180deg) scale(1.04);
        opacity: 0.8;
    }

    100% {
        transform: rotate(360deg) scale(0.94);
        opacity: 0.45;
    }
}

@keyframes terms-preloader-float {
    0%,
    100% {
        transform: translateY(-5px);
    }

    50% {
        transform: translateY(7px);
    }
}

/* =========================================================
   6. CABEÇALHO — INVISÍVEL NO TOPO
========================================================= */

.terms-page-body .site-header {
    position: fixed;
    top: 0;
    left: 0;
    z-index: 5000;
    width: 100%;
    min-height: 94px;
    border: 0;
    background: transparent;
    box-shadow: none;
    opacity: 0;
    visibility: hidden;
    transform: translateY(-115%);
    transition:
        transform 0.65s cubic-bezier(0.16, 1, 0.3, 1),
        opacity 0.45s ease,
        visibility 0.45s ease;
}

/* O JS pode usar qualquer uma destas classes. */
.terms-page-body .site-header.is-scrolled,
.terms-page-body .site-header.header--visible,
.terms-page-body .site-header.site-header--visible,
.terms-page-body .site-header.scrolled {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
}

.terms-page-body .site-header::before,
.terms-page-body .site-header::after {
    content: "";
    position: absolute;
    pointer-events: none;
}

.terms-page-body .site-header::before {
    inset: -28px 0 -48px;
    z-index: -2;
    background:
        radial-gradient(
            ellipse at 25% 25%,
            rgba(0, 177, 255, 0.19),
            transparent 38%
        ),
        radial-gradient(
            ellipse at 78% 20%,
            rgba(117, 54, 255, 0.2),
            transparent 42%
        ),
        linear-gradient(
            to bottom,
            rgba(2, 5, 14, 0.97) 0%,
            rgba(2, 5, 14, 0.86) 50%,
            transparent 100%
        );
    filter: blur(13px);
    opacity: 0;
    transition: opacity 0.5s ease;
}

.terms-page-body .site-header::after {
    top: 0;
    left: -32%;
    z-index: -1;
    width: 34%;
    height: 105px;
    border-radius: 50%;
    opacity: 0;
    background: linear-gradient(
        90deg,
        transparent,
        rgba(27, 202, 255, 0.23),
        rgba(125, 70, 255, 0.28),
        transparent
    );
    filter: blur(28px);
}

.terms-page-body .site-header.is-scrolled::before,
.terms-page-body .site-header.header--visible::before,
.terms-page-body .site-header.site-header--visible::before,
.terms-page-body .site-header.scrolled::before {
    opacity: 1;
}

.terms-page-body .site-header.is-scrolled::after,
.terms-page-body .site-header.header--visible::after,
.terms-page-body .site-header.site-header--visible::after,
.terms-page-body .site-header.scrolled::after {
    opacity: 1;
    animation: terms-header-led 8s ease-in-out infinite;
}

.terms-page-body .site-header__mist {
    position: absolute;
    inset: -25px 0 -42px;
    z-index: -1;
    overflow: hidden;
    pointer-events: none;
    border: 0;
    background: transparent;
    mask-image: linear-gradient(to bottom, black 35%, transparent 100%);
}

.terms-page-body .site-header__container {
    display: grid;
    min-height: 94px;
    grid-template-columns: 210px 1fr 210px;
    align-items: center;
    gap: 30px;
}

.terms-page-body .site-logo {
    position: relative;
    z-index: 2;
    display: inline-flex;
    width: max-content;
    align-items: center;
}

.terms-page-body .site-logo__image {
    width: 92px;
    height: auto;
    object-fit: contain;
    filter: drop-shadow(0 0 13px rgba(56, 114, 255, 0.25));
    transition:
        transform 0.35s ease,
        filter 0.35s ease;
}

.terms-page-body .site-logo:hover .site-logo__image {
    transform: translateY(-3px) scale(1.04);
    filter: drop-shadow(0 0 20px rgba(72, 134, 255, 0.5));
}

.terms-page-body .main-navigation {
    justify-self: center;
}

.terms-page-body .main-navigation__list {
    display: flex;
    margin: 0;
    padding: 0;
    align-items: center;
    justify-content: center;
    gap: clamp(22px, 2.2vw, 42px);
    list-style: none;
}

.terms-page-body .main-navigation__link {
    position: relative;
    display: inline-flex;
    padding: 14px 0;
    color: rgba(244, 247, 255, 0.84);
    font-size: 0.81rem;
    font-weight: 600;
    letter-spacing: 0.02em;
    transition:
        color 0.3s ease,
        transform 0.3s ease;
}

.terms-page-body .main-navigation__link::after {
    content: "";
    position: absolute;
    right: 0;
    bottom: 5px;
    left: 0;
    height: 1px;
    border-radius: 99px;
    background: var(--terms-gradient);
    box-shadow: 0 0 10px rgba(52, 144, 255, 0.6);
    transform: scaleX(0);
    transform-origin: right;
    transition: transform 0.35s ease;
}

.terms-page-body .main-navigation__link:hover,
.terms-page-body .main-navigation__link[aria-current="page"],
.terms-page-body .main-navigation__link.is-active {
    color: var(--terms-white);
    transform: translateY(-2px);
}

.terms-page-body .main-navigation__link:hover::after,
.terms-page-body .main-navigation__link[aria-current="page"]::after,
.terms-page-body .main-navigation__link.is-active::after {
    transform: scaleX(1);
    transform-origin: left;
}

.terms-page-body .site-header__actions {
    display: flex;
    justify-content: flex-end;
}

.terms-page-body .site-header__actions .button {
    min-height: 48px;
    padding-inline: 23px;
    white-space: nowrap;
}

@keyframes terms-header-led {
    0% {
        left: -34%;
    }

    50% {
        left: 100%;
    }

    100% {
        left: -34%;
    }
}

/* =========================================================
   7. BOTÕES GLOBAIS
========================================================= */

.terms-page-body .button {
    position: relative;
    display: inline-flex;
    min-height: 54px;
    padding: 0 25px;
    overflow: hidden;
    align-items: center;
    justify-content: center;
    gap: 14px;
    border: 1px solid transparent;
    border-radius: 14px;
    color: var(--terms-white);
    font-size: 0.82rem;
    font-weight: 700;
    letter-spacing: 0.015em;
    line-height: 1;
    white-space: nowrap;
    cursor: pointer;
    isolation: isolate;
    transition:
        transform 0.35s cubic-bezier(0.16, 1, 0.3, 1),
        border-color 0.35s ease,
        background 0.35s ease,
        box-shadow 0.35s ease;
}

.terms-page-body .button::before {
    content: "";
    position: absolute;
    top: -100%;
    left: -40%;
    z-index: -1;
    width: 35%;
    height: 300%;
    background: linear-gradient(
        90deg,
        transparent,
        rgba(255, 255, 255, 0.35),
        transparent
    );
    transform: rotate(22deg);
    transition: left 0.7s ease;
}

.terms-page-body .button:hover::before {
    left: 120%;
}

.terms-page-body .button:hover {
    transform: translateY(-4px);
}

.terms-page-body .button--primary {
    background: var(--terms-gradient);
    box-shadow:
        0 15px 35px rgba(36, 102, 255, 0.25),
        0 0 24px rgba(105, 66, 255, 0.15);
}

.terms-page-body .button--primary:hover {
    box-shadow:
        0 19px 45px rgba(36, 102, 255, 0.38),
        0 0 35px rgba(105, 66, 255, 0.3);
}

.terms-page-body .button--outline {
    border-color: rgba(81, 130, 255, 0.38);
    background: rgba(4, 10, 24, 0.54);
    box-shadow: inset 0 0 25px rgba(52, 84, 178, 0.04);
    backdrop-filter: blur(12px);
}

.terms-page-body .button--outline:hover {
    border-color: rgba(26, 198, 255, 0.62);
    background: rgba(9, 20, 42, 0.76);
    box-shadow:
        inset 0 0 25px rgba(27, 142, 255, 0.08),
        0 12px 32px rgba(0, 0, 0, 0.25);
}

/* =========================================================
   8. BOTÃO HAMBÚRGUER
========================================================= */

.terms-page-body .menu-toggle {
    position: relative;
    z-index: 5200;
    display: none;
    width: 48px;
    height: 48px;
    padding: 0;
    overflow: hidden;
    place-items: center;
    border: 1px solid rgba(100, 130, 214, 0.25);
    border-radius: 15px;
    background:
        linear-gradient(
            145deg,
            rgba(19, 32, 66, 0.78),
            rgba(8, 11, 28, 0.9)
        );
    color: var(--terms-white);
    cursor: pointer;
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.06),
        0 14px 35px rgba(0, 0, 0, 0.28);
    backdrop-filter: blur(16px);
    transition:
        transform 0.3s ease,
        border-color 0.3s ease,
        box-shadow 0.3s ease;
}

.terms-page-body .menu-toggle:hover {
    border-color: rgba(40, 197, 255, 0.55);
    transform: translateY(-2px);
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.08),
        0 15px 35px rgba(25, 105, 255, 0.18);
}

.terms-page-body .menu-toggle::before {
    content: "";
    position: absolute;
    inset: -60%;
    background: conic-gradient(
        transparent,
        rgba(22, 199, 255, 0.35),
        transparent 28%
    );
    animation: terms-menu-light 4s linear infinite;
}

.terms-page-body .menu-toggle::after {
    content: "";
    position: absolute;
    inset: 1px;
    border-radius: 13px;
    background: rgba(7, 12, 30, 0.94);
}

.terms-page-body .menu-toggle__line {
    position: absolute;
    z-index: 2;
    width: 21px;
    height: 1.5px;
    border-radius: 20px;
    background: currentColor;
    transition:
        top 0.35s ease,
        transform 0.35s ease,
        opacity 0.25s ease;
}

.terms-page-body .menu-toggle__line:nth-child(1) {
    top: 17px;
}

.terms-page-body .menu-toggle__line:nth-child(2) {
    top: 23px;
}

.terms-page-body .menu-toggle__line:nth-child(3) {
    top: 29px;
}

.terms-page-body .menu-toggle[aria-expanded="true"] .menu-toggle__line:nth-child(1) {
    top: 23px;
    transform: rotate(45deg);
}

.terms-page-body .menu-toggle[aria-expanded="true"] .menu-toggle__line:nth-child(2) {
    opacity: 0;
    transform: translateX(-10px);
}

.terms-page-body .menu-toggle[aria-expanded="true"] .menu-toggle__line:nth-child(3) {
    top: 23px;
    transform: rotate(-45deg);
}

@keyframes terms-menu-light {
    to {
        transform: rotate(360deg);
    }
}

/* =========================================================
   9. MENU MÓVEL
========================================================= */

.terms-page-body .mobile-menu {
    position: fixed;
    inset: 0;
    z-index: 5100;
    display: block;
    overflow: hidden;
    visibility: hidden;
    opacity: 0;
    pointer-events: none;
    background: #02050d;
    transform: translateY(-18px);
    transition:
        visibility 0.5s ease,
        opacity 0.45s ease,
        transform 0.55s cubic-bezier(0.16, 1, 0.3, 1);
}

/* Compatibilidade com diferentes nomes utilizados pelo JS. */
.terms-page-body .mobile-menu.is-open,
.terms-page-body .mobile-menu.mobile-navigation-active,
.terms-page-body.mobile-navigation-active .mobile-menu,
.terms-page-body.menu-open .mobile-menu {
    visibility: visible;
    opacity: 1;
    pointer-events: auto;
    transform: translateY(0);
}

body.mobile-navigation-active,
body.menu-open {
    overflow: hidden;
}

.terms-page-body .mobile-menu__background {
    position: absolute;
    inset: 0;
    overflow: hidden;
    background:
        radial-gradient(
            circle at 9% 13%,
            rgba(0, 184, 255, 0.17),
            transparent 32%
        ),
        radial-gradient(
            circle at 92% 79%,
            rgba(125, 59, 255, 0.25),
            transparent 38%
        ),
        linear-gradient(145deg, #020812, #02040b 55%, #09031a);
}

.terms-page-body .mobile-menu__background::before,
.terms-page-body .mobile-menu__background::after {
    content: "";
    position: absolute;
    border: 1px solid rgba(60, 105, 221, 0.14);
    border-radius: 50%;
}

.terms-page-body .mobile-menu__background::before {
    width: 470px;
    height: 470px;
    top: -230px;
    left: -220px;
    box-shadow:
        0 0 0 70px rgba(25, 103, 255, 0.012),
        0 0 0 140px rgba(25, 103, 255, 0.009);
}

.terms-page-body .mobile-menu__background::after {
    right: -200px;
    bottom: -220px;
    width: 510px;
    height: 510px;
    border-color: rgba(135, 62, 255, 0.17);
}

.terms-page-body .mobile-menu__waves {
    position: absolute;
    inset: 0;
    overflow: hidden;
    pointer-events: none;
}

.terms-page-body .mobile-menu__waves::before,
.terms-page-body .mobile-menu__waves::after {
    content: "";
    position: absolute;
    left: -20%;
    width: 140%;
    height: 150px;
    border: 1px solid rgba(32, 191, 255, 0.14);
    border-radius: 50%;
    transform: rotate(-7deg);
    animation: terms-mobile-wave 7s ease-in-out infinite;
}

.terms-page-body .mobile-menu__waves::before {
    top: 38%;
}

.terms-page-body .mobile-menu__waves::after {
    top: 54%;
    border-color: rgba(128, 66, 255, 0.16);
    animation-delay: -3.5s;
}

.terms-page-body .mobile-menu__content {
    position: relative;
    z-index: 2;
    display: flex;
    width: min(100% - 44px, 760px);
    height: 100%;
    margin-inline: auto;
    padding: 22px 0 28px;
    flex-direction: column;
}

.terms-page-body .mobile-menu__header {
    display: flex;
    min-height: 72px;
    padding-bottom: 18px;
    align-items: center;
    justify-content: space-between;
    gap: 30px;
    border-bottom: 1px solid rgba(112, 132, 183, 0.13);
}

/*
   A logo do menu fica numa área própria.
   Isso impede que se sobreponha à logo do cabeçalho.
*/
.terms-page-body .mobile-menu__logo {
    position: relative;
    z-index: 1;
    display: inline-flex;
    width: 92px;
    flex: 0 0 92px;
}

.terms-page-body .mobile-menu__logo img {
    width: 100%;
    height: auto;
    object-fit: contain;
    filter: drop-shadow(0 0 14px rgba(47, 115, 255, 0.3));
}

.terms-page-body .mobile-menu__close {
    position: relative;
    z-index: 3;
    display: grid;
    width: 48px;
    height: 48px;
    flex: 0 0 48px;
    padding: 0;
    place-items: center;
    border: 1px solid rgba(112, 136, 197, 0.25);
    border-radius: 15px;
    background: rgba(9, 15, 34, 0.8);
    color: transparent;
    cursor: pointer;
    backdrop-filter: blur(12px);
    transition:
        border-color 0.3s ease,
        background 0.3s ease,
        transform 0.3s ease;
}

.terms-page-body .mobile-menu__close::before,
.terms-page-body .mobile-menu__close::after {
    content: "";
    position: absolute;
    width: 21px;
    height: 1.5px;
    border-radius: 20px;
    background: var(--terms-white);
}

.terms-page-body .mobile-menu__close::before {
    transform: rotate(45deg);
}

.terms-page-body .mobile-menu__close::after {
    transform: rotate(-45deg);
}

.terms-page-body .mobile-menu__close:hover {
    border-color: rgba(35, 197, 255, 0.55);
    background: rgba(15, 28, 59, 0.92);
    transform: rotate(5deg);
}

.terms-page-body .mobile-menu__nav {
    display: flex;
    min-height: 0;
    padding: clamp(22px, 5vh, 50px) 0;
    flex: 1;
    align-items: center;
}

.terms-page-body .mobile-menu__list {
    display: grid;
    width: 100%;
    margin: 0;
    padding: 0;
    list-style: none;
}

.terms-page-body .mobile-menu__list li {
    opacity: 0;
    transform: translateX(-28px);
    transition:
        opacity 0.45s ease,
        transform 0.55s cubic-bezier(0.16, 1, 0.3, 1);
}

.terms-page-body .mobile-menu.is-open .mobile-menu__list li,
.terms-page-body .mobile-menu.mobile-navigation-active .mobile-menu__list li,
.terms-page-body.mobile-navigation-active .mobile-menu__list li,
.terms-page-body.menu-open .mobile-menu__list li {
    opacity: 1;
    transform: translateX(0);
}

.terms-page-body .mobile-menu__list li:nth-child(1) {
    transition-delay: 0.08s;
}

.terms-page-body .mobile-menu__list li:nth-child(2) {
    transition-delay: 0.13s;
}

.terms-page-body .mobile-menu__list li:nth-child(3) {
    transition-delay: 0.18s;
}

.terms-page-body .mobile-menu__list li:nth-child(4) {
    transition-delay: 0.23s;
}

.terms-page-body .mobile-menu__list li:nth-child(5) {
    transition-delay: 0.28s;
}

.terms-page-body .mobile-menu__list li:nth-child(6) {
    transition-delay: 0.33s;
}

.terms-page-body .mobile-menu__link {
    position: relative;
    display: grid;
    min-height: 68px;
    padding: 14px 6px;
    grid-template-columns: 46px 1fr 30px;
    align-items: center;
    gap: 8px;
    border-bottom: 1px solid rgba(112, 132, 183, 0.13);
    color: var(--terms-white);
    transition:
        color 0.3s ease,
        padding-left 0.3s ease,
        background 0.3s ease;
}

.terms-page-body .mobile-menu__link::before {
    content: attr(data-index);
    color: var(--terms-cyan);
    font-family: monospace;
    font-size: 0.68rem;
    letter-spacing: 0.15em;
}

.terms-page-body .mobile-menu__link::after {
    content: "↗";
    justify-self: end;
    color: var(--terms-muted);
    font-size: 1rem;
    transition:
        color 0.3s ease,
        transform 0.3s ease;
}

.terms-page-body .mobile-menu__link:hover,
.terms-page-body .mobile-menu__link[aria-current="page"] {
    padding-left: 14px;
    color: var(--terms-cyan);
    background: linear-gradient(
        90deg,
        rgba(14, 170, 255, 0.07),
        transparent
    );
}

.terms-page-body .mobile-menu__link:hover::after,
.terms-page-body .mobile-menu__link[aria-current="page"]::after {
    color: var(--terms-cyan);
    transform: translate(3px, -3px);
}

.terms-page-body .mobile-menu__footer {
    display: grid;
    padding-top: 20px;
    grid-template-columns: 1fr auto;
    align-items: center;
    gap: 20px;
    border-top: 1px solid rgba(112, 132, 183, 0.13);
}

.terms-page-body .mobile-menu__footer p {
    margin: 0;
    color: var(--terms-muted);
    font-size: 0.82rem;
    line-height: 1.6;
}

.terms-page-body .mobile-menu__footer .button {
    min-height: 49px;
}

@keyframes terms-mobile-wave {
    0%,
    100% {
        transform: translateX(-3%) rotate(-7deg);
    }

    50% {
        transform: translateX(5%) rotate(-4deg);
    }
}

/* =========================================================
   10. VISIBILIDADE RESPONSIVA DO CABEÇALHO
========================================================= */

@media (max-width: 1050px) {
    .terms-page-body .site-header__container {
        grid-template-columns: 1fr auto;
    }

    .terms-page-body .main-navigation,
    .terms-page-body .site-header__actions {
        display: none;
    }

    .terms-page-body .menu-toggle {
        display: grid;
        justify-self: end;
    }
}

@media (max-width: 640px) {
    .terms-page-body .container {
        width: min(100% - 34px, 1520px);
    }

    .terms-page-body .site-header {
        min-height: 76px;
    }

    .terms-page-body .site-header__container {
        min-height: 76px;
    }

    .terms-page-body .site-logo__image {
        width: 72px;
    }

    .terms-page-body .menu-toggle {
        width: 46px;
        height: 46px;
    }

    .terms-page-body .mobile-menu__content {
        width: calc(100% - 34px);
        padding-top: 14px;
    }

    .terms-page-body .mobile-menu__header {
        min-height: 66px;
    }

    .terms-page-body .mobile-menu__logo {
        width: 76px;
        flex-basis: 76px;
    }

    .terms-page-body .mobile-menu__link {
        min-height: 61px;
        grid-template-columns: 38px 1fr 26px;
        font-size: 1rem;
    }

    .terms-page-body .mobile-menu__footer {
        grid-template-columns: 1fr;
    }

    .terms-page-body .mobile-menu__footer .button {
        width: 100%;
    }
}

/* =========================================================
   11. HERO — TERMOS E CONDIÇÕES
========================================================= */

.terms-hero {
    position: relative;
    display: flex;
    min-height: 100svh;
    padding: 145px 0 80px;
    overflow: hidden;
    align-items: center;
    isolation: isolate;
}

.terms-hero::before {
    content: "";
    position: absolute;
    z-index: -4;
    width: 760px;
    height: 760px;
    top: 4%;
    right: -230px;
    border: 1px solid rgba(90, 83, 255, 0.13);
    border-radius: 50%;
    box-shadow:
        0 0 0 110px rgba(67, 75, 255, 0.012),
        0 0 0 220px rgba(114, 54, 255, 0.009);
    animation: terms-hero-orbit 13s ease-in-out infinite;
}

.terms-hero::after {
    content: "";
    position: absolute;
    z-index: -5;
    width: 62vw;
    height: 34vw;
    left: -20vw;
    bottom: -20vw;
    border: 1px solid rgba(22, 199, 255, 0.13);
    border-radius: 50%;
    transform: rotate(-8deg);
}

.terms-hero__canvas {
    position: absolute;
    inset: 0;
    z-index: -6;
    width: 100%;
    height: 100%;
    pointer-events: none;
    opacity: 0.62;
}

.terms-hero__glow {
    position: absolute;
    z-index: -3;
    pointer-events: none;
    border-radius: 50%;
    filter: blur(85px);
}

.terms-hero__glow--cyan {
    width: 390px;
    height: 390px;
    top: 22%;
    left: 4%;
    opacity: 0.17;
    background: var(--terms-cyan);
    animation: terms-glow-drift 8s ease-in-out infinite;
}

.terms-hero__glow--violet {
    width: 460px;
    height: 460px;
    right: 3%;
    bottom: 6%;
    opacity: 0.19;
    background: var(--terms-violet);
    animation: terms-glow-drift 10s ease-in-out infinite reverse;
}

.terms-hero__layout {
    display: grid;
    width: 100%;
    grid-template-columns: minmax(0, 0.88fr) minmax(500px, 1.12fr);
    align-items: center;
    gap: clamp(60px, 7vw, 125px);
}

.terms-hero__content {
    position: relative;
    z-index: 5;
    max-width: 720px;
}

.terms-hero__eyebrow {
    display: inline-flex;
    margin-bottom: 25px;
    align-items: center;
    gap: 13px;
    color: var(--terms-cyan);
    font-size: 0.68rem;
    font-weight: 700;
    letter-spacing: 0.32em;
    line-height: 1.5;
    text-transform: uppercase;
}

.terms-hero__eyebrow::before {
    content: "";
    width: 30px;
    height: 1px;
    background: linear-gradient(
        90deg,
        transparent,
        var(--terms-cyan)
    );
    box-shadow: 0 0 10px rgba(22, 199, 255, 0.72);
}

.terms-hero__title {
    max-width: 760px;
    margin: 0;
    color: var(--terms-white);
    font-size: clamp(3.25rem, 5.35vw, 6.9rem);
    font-weight: 650;
    letter-spacing: -0.07em;
    line-height: 0.89;
}

.terms-hero__title > span {
    display: block;
}

.terms-hero__title .terms-hero__title-script,
.terms-hero__title .title-script {
    width: max-content;
    max-width: 100%;
    padding: 0.08em 0.08em 0.16em;
    color: transparent;
    font-family: "Allura", "Great Vibes", cursive;
    font-size: 1.13em;
    font-weight: 400;
    letter-spacing: 0;
    line-height: 0.86;
    background: var(--terms-gradient);
    background-clip: text;
    -webkit-background-clip: text;
    filter: drop-shadow(0 0 20px rgba(36, 146, 255, 0.16));
    transform: translateX(0.12em);
}

.terms-hero__title .terms-hero__title-editorial,
.terms-hero__title .title-editorial {
    margin-top: 0.04em;
    font-family: "Cormorant Garamond", Georgia, serif;
    font-size: 0.88em;
    font-weight: 500;
    letter-spacing: -0.045em;
    line-height: 0.85;
}

.terms-hero__description {
    max-width: 630px;
    margin: 31px 0 0;
    color: var(--terms-text);
    font-size: clamp(0.95rem, 1.05vw, 1.12rem);
    line-height: 1.8;
}

.terms-hero__actions {
    display: flex;
    margin-top: 34px;
    flex-wrap: wrap;
    align-items: center;
    gap: 14px;
}

.terms-hero__meta {
    display: grid;
    max-width: 650px;
    margin: 38px 0 0;
    padding: 24px 0 0;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 20px;
    border-top: 1px solid rgba(116, 137, 190, 0.14);
}

.terms-hero__meta-item {
    position: relative;
    min-width: 0;
    padding-right: 18px;
}

.terms-hero__meta-item:not(:last-child)::after {
    content: "";
    position: absolute;
    top: 3px;
    right: 0;
    width: 1px;
    height: 35px;
    background: rgba(118, 139, 192, 0.15);
}

.terms-hero__meta-item strong {
    display: block;
    margin-bottom: 5px;
    color: var(--terms-white);
    font-size: 0.82rem;
    font-weight: 700;
}

.terms-hero__meta-item span {
    display: block;
    color: var(--terms-muted);
    font-size: 0.7rem;
    line-height: 1.5;
}

/* =========================================================
   12. DOCUMENTO 3D DO HERO
========================================================= */

.terms-hero__visual {
    position: relative;
    z-index: 3;
    width: 100%;
    max-width: 780px;
    min-width: 0;
    justify-self: end;
    perspective: 1500px;
}

.terms-browser {
    position: relative;
    width: min(100%, 730px);
    min-height: 560px;
    margin-left: auto;
    border: 1px solid rgba(79, 112, 224, 0.34);
    border-radius: 29px;
    background:
        linear-gradient(
            145deg,
            rgba(11, 25, 49, 0.92),
            rgba(4, 9, 22, 0.97)
        );
    box-shadow:
        -35px 40px 100px rgba(0, 0, 0, 0.48),
        20px 20px 70px rgba(94, 45, 255, 0.12),
        inset 0 1px 0 rgba(255, 255, 255, 0.045);
    transform: rotateY(-5deg) rotateX(1.8deg);
    transform-style: preserve-3d;
    transition:
        transform 0.8s cubic-bezier(0.16, 1, 0.3, 1),
        box-shadow 0.8s ease;
}

.terms-browser:hover {
    box-shadow:
        -42px 48px 110px rgba(0, 0, 0, 0.52),
        24px 24px 85px rgba(94, 45, 255, 0.18),
        inset 0 1px 0 rgba(255, 255, 255, 0.06);
    transform: rotateY(-1deg) rotateX(0deg) translateY(-8px);
}

.terms-browser::before {
    content: "";
    position: absolute;
    inset: -1px;
    z-index: -1;
    border-radius: inherit;
    padding: 1px;
    opacity: 0.5;
    background: linear-gradient(
        125deg,
        rgba(23, 199, 255, 0.55),
        transparent 35%,
        transparent 65%,
        rgba(137, 58, 255, 0.65)
    );
    mask:
        linear-gradient(#fff 0 0) content-box,
        linear-gradient(#fff 0 0);
    mask-composite: exclude;
    -webkit-mask:
        linear-gradient(#fff 0 0) content-box,
        linear-gradient(#fff 0 0);
    -webkit-mask-composite: xor;
}

.terms-browser__topbar {
    display: flex;
    min-height: 67px;
    padding: 0 23px;
    align-items: center;
    gap: 16px;
    border-bottom: 1px solid rgba(95, 122, 191, 0.15);
    border-radius: 29px 29px 0 0;
    background: rgba(13, 25, 44, 0.8);
}

.terms-browser__dots {
    display: flex;
    flex: 0 0 auto;
    gap: 7px;
}

.terms-browser__dots span {
    width: 8px;
    height: 8px;
    border-radius: 50%;
}

.terms-browser__dots span:nth-child(1) {
    background: #ff6171;
    box-shadow: 0 0 8px rgba(255, 97, 113, 0.35);
}

.terms-browser__dots span:nth-child(2) {
    background: #ffc75c;
    box-shadow: 0 0 8px rgba(255, 199, 92, 0.35);
}

.terms-browser__dots span:nth-child(3) {
    background: #4de1a4;
    box-shadow: 0 0 8px rgba(77, 225, 164, 0.35);
}

.terms-browser__address {
    display: flex;
    min-width: 0;
    height: 35px;
    padding: 0 17px;
    flex: 1;
    align-items: center;
    border: 1px solid rgba(102, 127, 184, 0.08);
    border-radius: 999px;
    background: rgba(28, 42, 65, 0.68);
    color: #71809a;
    font-size: 0.67rem;
}

.terms-browser__actions {
    display: flex;
    flex: 0 0 auto;
    gap: 5px;
}

.terms-browser__actions span {
    width: 4px;
    height: 4px;
    border-radius: 50%;
    background: #64718a;
}

.terms-browser__body {
    position: relative;
    min-height: 490px;
    padding: 45px;
    overflow: hidden;
    border-radius: 0 0 29px 29px;
    background:
        radial-gradient(
            circle at 82% 78%,
            rgba(102, 48, 255, 0.13),
            transparent 35%
        ),
        rgba(2, 7, 18, 0.76);
}

.terms-browser__body::before {
    content: "";
    position: absolute;
    width: 380px;
    height: 380px;
    right: -190px;
    bottom: -190px;
    border: 1px solid rgba(119, 59, 255, 0.2);
    border-radius: 50%;
    box-shadow:
        0 0 0 65px rgba(104, 49, 255, 0.018),
        0 0 0 130px rgba(104, 49, 255, 0.011);
}

.terms-document-preview {
    position: relative;
    z-index: 2;
    min-height: 392px;
    padding: 31px 32px;
    border: 1px solid rgba(75, 111, 191, 0.2);
    border-radius: 20px;
    background:
        linear-gradient(
            145deg,
            rgba(8, 18, 37, 0.92),
            rgba(3, 8, 20, 0.92)
        );
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.035),
        0 25px 50px rgba(0, 0, 0, 0.2);
}

.terms-document-preview__header {
    display: flex;
    padding-bottom: 23px;
    align-items: flex-start;
    justify-content: space-between;
    gap: 20px;
    border-bottom: 1px solid rgba(102, 126, 182, 0.13);
}

.terms-document-preview__identity {
    display: flex;
    align-items: center;
    gap: 13px;
}

.terms-document-preview__logo {
    display: grid;
    width: 38px;
    height: 38px;
    place-items: center;
    border: 1px solid rgba(46, 184, 255, 0.28);
    border-radius: 11px;
    background: rgba(18, 35, 68, 0.65);
    color: var(--terms-cyan);
    font-size: 0.74rem;
    font-weight: 800;
    box-shadow: 0 0 20px rgba(25, 150, 255, 0.1);
}

.terms-document-preview__identity strong {
    display: block;
    color: var(--terms-white);
    font-size: 0.8rem;
}

.terms-document-preview__identity span {
    display: block;
    margin-top: 4px;
    color: var(--terms-muted);
    font-size: 0.58rem;
    letter-spacing: 0.1em;
    text-transform: uppercase;
}

.terms-document-preview__status {
    display: inline-flex;
    padding: 8px 11px;
    align-items: center;
    gap: 7px;
    border: 1px solid rgba(65, 226, 168, 0.18);
    border-radius: 999px;
    background: rgba(31, 183, 125, 0.06);
    color: #82eabd;
    font-size: 0.55rem;
    letter-spacing: 0.1em;
    text-transform: uppercase;
}

.terms-document-preview__status::before {
    content: "";
    width: 5px;
    height: 5px;
    border-radius: 50%;
    background: var(--terms-green);
    box-shadow: 0 0 9px var(--terms-green);
}

.terms-document-preview__title {
    margin: 26px 0 7px;
    color: var(--terms-white);
    font-size: clamp(1.35rem, 2vw, 2rem);
    letter-spacing: -0.04em;
}

.terms-document-preview__subtitle {
    margin: 0 0 25px;
    color: var(--terms-muted);
    font-size: 0.69rem;
    line-height: 1.65;
}

.terms-document-preview__clauses {
    display: grid;
    gap: 11px;
}

.terms-document-preview__clause {
    display: grid;
    min-height: 42px;
    padding: 10px 13px;
    grid-template-columns: 30px 1fr auto;
    align-items: center;
    gap: 10px;
    border: 1px solid rgba(78, 107, 171, 0.13);
    border-radius: 11px;
    background: rgba(12, 23, 45, 0.6);
    transition:
        transform 0.3s ease,
        border-color 0.3s ease,
        background 0.3s ease;
}

.terms-document-preview__clause:hover {
    border-color: rgba(25, 188, 255, 0.3);
    background: rgba(15, 31, 61, 0.76);
    transform: translateX(5px);
}

.terms-document-preview__clause > span:first-child {
    color: var(--terms-cyan);
    font-family: monospace;
    font-size: 0.6rem;
}

.terms-document-preview__clause strong {
    color: #cfd6e7;
    font-size: 0.67rem;
    font-weight: 600;
}

.terms-document-preview__clause > span:last-child {
    color: var(--terms-green);
    font-size: 0.72rem;
}

.terms-document-preview__footer {
    display: grid;
    margin-top: 25px;
    grid-template-columns: 1fr auto;
    align-items: end;
    gap: 25px;
}

.terms-document-preview__progress {
    display: grid;
    gap: 8px;
}

.terms-document-preview__progress div:first-child {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 15px;
    color: var(--terms-muted);
    font-size: 0.58rem;
}

.terms-document-preview__progress div:first-child strong {
    color: var(--terms-white);
    font-size: 0.64rem;
}

.terms-document-preview__track {
    display: block;
    width: 100%;
    height: 3px;
    overflow: hidden;
    border-radius: 20px;
    background: rgba(255, 255, 255, 0.08);
}

.terms-document-preview__track span {
    display: block;
    width: 78%;
    height: 100%;
    border-radius: inherit;
    background: var(--terms-gradient);
    box-shadow: 0 0 10px rgba(30, 169, 255, 0.5);
    animation: terms-document-progress 3.6s ease-in-out infinite;
}

.terms-document-preview__signature {
    color: transparent;
    font-family: "Allura", cursive;
    font-size: 1.55rem;
    line-height: 1;
    background: var(--terms-gradient);
    background-clip: text;
    -webkit-background-clip: text;
}

/* =========================================================
   13. BALÕES DO QUADRO 3D
========================================================= */

.terms-browser__floating-card,
.terms-floating-card {
    position: absolute;
    z-index: 8;
    min-width: 150px;
    padding: 18px 20px;
    border: 1px solid rgba(72, 119, 225, 0.38);
    border-radius: 17px;
    background:
        linear-gradient(
            145deg,
            rgba(8, 18, 40, 0.97),
            rgba(4, 8, 23, 0.98)
        );
    box-shadow:
        0 22px 50px rgba(0, 0, 0, 0.42),
        inset 0 1px 0 rgba(255, 255, 255, 0.04);
    backdrop-filter: blur(18px);
    transform: translateZ(70px);
}

.terms-browser__floating-card strong,
.terms-floating-card strong {
    display: block;
    margin-bottom: 7px;
    color: var(--terms-white);
    font-size: 0.8rem;
}

.terms-browser__floating-card span,
.terms-floating-card span {
    display: block;
    color: var(--terms-muted);
    font-size: 0.59rem;
    line-height: 1.5;
}

.terms-browser__floating-card--scope,
.terms-floating-card--scope {
    top: 112px;
    left: -58px;
    animation: terms-card-float 5.2s ease-in-out infinite;
}

.terms-browser__floating-card--agreement,
.terms-floating-card--agreement {
    top: 250px;
    right: -52px;
    animation: terms-card-float 6s ease-in-out infinite reverse;
}

.terms-browser__floating-card--commitment,
.terms-floating-card--commitment {
    bottom: 42px;
    left: -26px;
    animation: terms-card-float 5.6s ease-in-out infinite -2s;
}

.terms-browser__floating-card::before,
.terms-floating-card::before {
    content: "";
    position: absolute;
    width: 6px;
    height: 6px;
    top: 17px;
    right: 17px;
    border-radius: 50%;
    background: var(--terms-cyan);
    box-shadow: 0 0 12px var(--terms-cyan);
}

/* =========================================================
   14. INDICADOR PARA DESLIZAR
========================================================= */

.terms-hero__scroll {
    position: absolute;
    bottom: 25px;
    left: 50%;
    z-index: 6;
    display: grid;
    justify-items: center;
    gap: 9px;
    color: var(--terms-muted);
    transform: translateX(-50%);
}

.terms-hero__scroll span {
    font-size: 0.56rem;
    letter-spacing: 0.32em;
    text-transform: uppercase;
}

.terms-hero__scroll-icon {
    position: relative;
    width: 25px;
    height: 39px;
    border: 1px solid rgba(82, 135, 238, 0.38);
    border-radius: 999px;
    background: rgba(7, 14, 31, 0.55);
}

.terms-hero__scroll-icon::before {
    content: "";
    position: absolute;
    top: 7px;
    left: 50%;
    width: 3px;
    height: 8px;
    border-radius: 999px;
    background: var(--terms-cyan);
    box-shadow: 0 0 8px var(--terms-cyan);
    transform: translateX(-50%);
    animation: terms-scroll-dot 1.8s ease-in-out infinite;
}

/* =========================================================
   15. ANIMAÇÕES DO HERO
========================================================= */

@keyframes terms-hero-orbit {
    0%,
    100% {
        transform: translate3d(0, 0, 0) scale(1);
    }

    50% {
        transform: translate3d(-30px, 20px, 0) scale(1.04);
    }
}

@keyframes terms-glow-drift {
    0%,
    100% {
        transform: translate3d(-15px, -10px, 0) scale(0.95);
    }

    50% {
        transform: translate3d(35px, 25px, 0) scale(1.08);
    }
}

@keyframes terms-card-float {
    0%,
    100% {
        transform: translate3d(0, -5px, 70px);
    }

    50% {
        transform: translate3d(0, 9px, 78px);
    }
}

@keyframes terms-document-progress {
    0%,
    100% {
        width: 67%;
    }

    50% {
        width: 92%;
    }
}

@keyframes terms-scroll-dot {
    0% {
        opacity: 0;
        transform: translate(-50%, 0);
    }

    35% {
        opacity: 1;
    }

    100% {
        opacity: 0;
        transform: translate(-50%, 16px);
    }
}

/* =========================================================
   16. HERO — ADAPTAÇÃO INTERMÉDIA
========================================================= */

@media (max-width: 1280px) {
    .terms-hero__layout {
        grid-template-columns: minmax(0, 0.9fr) minmax(470px, 1.1fr);
        gap: 55px;
    }

    .terms-browser__body {
        padding: 36px;
    }

    .terms-browser__floating-card--scope,
    .terms-floating-card--scope {
        left: -24px;
    }

    .terms-browser__floating-card--agreement,
    .terms-floating-card--agreement {
        right: -20px;
    }
}

@media (max-width: 1050px) {
    .terms-hero {
        min-height: auto;
        padding: 130px 0 105px;
    }

    .terms-hero__layout {
        grid-template-columns: 1fr;
        gap: 80px;
    }

    .terms-hero__content {
        max-width: 780px;
    }

    .terms-hero__visual {
        width: min(100%, 760px);
        margin-inline: auto;
        justify-self: center;
    }

    .terms-browser {
        margin-inline: auto;
        transform: none;
    }

    .terms-browser:hover {
        transform: translateY(-7px);
    }

    .terms-hero__scroll {
        display: none;
    }
}

@media (max-width: 720px) {
    .terms-hero {
        padding: 112px 0 76px;
    }

    .terms-hero__layout {
        gap: 58px;
    }

    .terms-hero__eyebrow {
        margin-bottom: 19px;
        font-size: 0.58rem;
        letter-spacing: 0.25em;
    }

    .terms-hero__title {
        font-size: clamp(3rem, 15vw, 5rem);
        line-height: 0.94;
    }

    .terms-hero__title .terms-hero__title-script,
    .terms-hero__title .title-script {
        width: auto;
        font-size: 1.03em;
        line-height: 0.95;
        transform: none;
    }

    .terms-hero__title .terms-hero__title-editorial,
    .terms-hero__title .title-editorial {
        margin-top: 0.12em;
        font-size: 0.8em;
        line-height: 0.94;
    }

    .terms-hero__description {
        margin-top: 24px;
        font-size: 0.92rem;
        line-height: 1.72;
    }

    .terms-hero__actions {
        display: grid;
        margin-top: 27px;
        grid-template-columns: 1fr;
    }

    .terms-hero__actions .button {
        width: 100%;
    }

    .terms-hero__meta {
        margin-top: 30px;
        padding-top: 20px;
        grid-template-columns: 1fr;
        gap: 15px;
    }

    .terms-hero__meta-item {
        padding: 0 0 15px;
        border-bottom: 1px solid rgba(116, 137, 190, 0.12);
    }

    .terms-hero__meta-item::after {
        display: none;
    }

    .terms-browser {
        min-height: auto;
        border-radius: 22px;
    }

    .terms-browser__topbar {
        min-height: 54px;
        padding-inline: 15px;
        border-radius: 22px 22px 0 0;
    }

    .terms-browser__address {
        padding-inline: 12px;
        font-size: 0.55rem;
    }

    .terms-browser__actions {
        display: none;
    }

    .terms-browser__body {
        min-height: auto;
        padding: 18px;
        border-radius: 0 0 22px 22px;
    }

    .terms-document-preview {
        min-height: 395px;
        padding: 23px 18px;
    }

    .terms-document-preview__header {
        display: grid;
        gap: 14px;
    }

    .terms-document-preview__status {
        width: max-content;
    }

    .terms-document-preview__title {
        margin-top: 20px;
    }

    .terms-document-preview__clause {
        grid-template-columns: 24px 1fr auto;
        padding-inline: 10px;
    }

    .terms-document-preview__footer {
        grid-template-columns: 1fr;
    }

    .terms-document-preview__signature {
        justify-self: end;
    }

    /*
       Os balões permanecem completamente dentro da largura do telemóvel.
       Assim nenhum texto será cortado.
    */
    .terms-browser__floating-card,
    .terms-floating-card {
        min-width: 120px;
        max-width: 145px;
        padding: 14px;
        transform: none;
    }

    .terms-browser__floating-card--scope,
    .terms-floating-card--scope {
        top: 67px;
        left: 8px;
    }

    .terms-browser__floating-card--agreement,
    .terms-floating-card--agreement {
        top: auto;
        right: 8px;
        bottom: 88px;
    }

    .terms-browser__floating-card--commitment,
    .terms-floating-card--commitment {
        bottom: 9px;
        left: 8px;
    }

    @keyframes terms-card-float {
        0%,
        100% {
            transform: translateY(-3px);
        }

        50% {
            transform: translateY(6px);
        }
    }
}

@media (max-width: 420px) {
    .terms-hero__title {
        font-size: clamp(2.75rem, 14.4vw, 4rem);
    }

    .terms-browser__dots {
        gap: 5px;
    }

    .terms-browser__dots span {
        width: 6px;
        height: 6px;
    }

    .terms-browser__floating-card,
    .terms-floating-card {
        min-width: 105px;
        max-width: 125px;
        padding: 12px;
    }

    .terms-browser__floating-card strong,
    .terms-floating-card strong {
        font-size: 0.68rem;
    }

    .terms-browser__floating-card span,
    .terms-floating-card span {
        font-size: 0.51rem;
    }
}

/* =========================================================
   17. ÁREA PRINCIPAL DOS TERMOS
========================================================= */

.terms-content {
    position: relative;
    padding: clamp(105px, 10vw, 170px) 0;
    overflow: visible;
}

.terms-content::before {
    content: "";
    position: absolute;
    top: 4%;
    left: -18%;
    z-index: -2;
    width: 58%;
    height: 430px;
    border: 1px solid rgba(19, 188, 255, 0.11);
    border-radius: 50%;
    transform: rotate(-8deg);
}

.terms-content::after {
    content: "";
    position: absolute;
    right: -22%;
    bottom: 13%;
    z-index: -2;
    width: 65%;
    height: 490px;
    border: 1px solid rgba(126, 57, 255, 0.12);
    border-radius: 50%;
    transform: rotate(7deg);
}

.terms-content__layout {
    display: grid;
    grid-template-columns: 280px minmax(0, 1fr);
    align-items: start;
    gap: clamp(65px, 7vw, 120px);
}

/* =========================================================
   18. NAVEGAÇÃO LATERAL
========================================================= */

.terms-sidebar {
    position: sticky;
    top: 125px;
    z-index: 10;
    padding: 25px;
    border: 1px solid rgba(80, 113, 190, 0.19);
    border-radius: 22px;
    background:
        linear-gradient(
            145deg,
            rgba(9, 20, 42, 0.8),
            rgba(4, 8, 20, 0.88)
        );
    box-shadow:
        0 25px 60px rgba(0, 0, 0, 0.24),
        inset 0 1px 0 rgba(255, 255, 255, 0.035);
    backdrop-filter: blur(18px);
}

.terms-sidebar::before {
    content: "";
    position: absolute;
    inset: -1px;
    z-index: -1;
    border-radius: inherit;
    padding: 1px;
    opacity: 0.38;
    background: linear-gradient(
        140deg,
        rgba(24, 199, 255, 0.6),
        transparent 32%,
        transparent 70%,
        rgba(125, 61, 255, 0.55)
    );
    mask:
        linear-gradient(#fff 0 0) content-box,
        linear-gradient(#fff 0 0);
    mask-composite: exclude;
    -webkit-mask:
        linear-gradient(#fff 0 0) content-box,
        linear-gradient(#fff 0 0);
    -webkit-mask-composite: xor;
}

.terms-sidebar__label {
    display: block;
    margin-bottom: 18px;
    color: var(--terms-muted);
    font-size: 0.58rem;
    font-weight: 700;
    letter-spacing: 0.24em;
    text-transform: uppercase;
}

.terms-sidebar__nav {
    position: relative;
}

.terms-sidebar__list {
    display: grid;
    margin: 0;
    padding: 0;
    list-style: none;
}

.terms-sidebar__link {
    position: relative;
    display: grid;
    min-height: 42px;
    padding: 9px 8px;
    grid-template-columns: 29px 1fr;
    align-items: center;
    gap: 7px;
    border-radius: 9px;
    color: var(--terms-muted);
    font-size: 0.68rem;
    line-height: 1.35;
    transition:
        padding-left 0.3s ease,
        color 0.3s ease,
        background 0.3s ease;
}

.terms-sidebar__link span {
    color: rgba(22, 199, 255, 0.66);
    font-family: monospace;
    font-size: 0.58rem;
}

.terms-sidebar__link::after {
    content: "";
    position: absolute;
    top: 50%;
    left: -25px;
    width: 2px;
    height: 0;
    border-radius: 99px;
    background: var(--terms-gradient);
    box-shadow: 0 0 10px rgba(32, 179, 255, 0.7);
    transform: translateY(-50%);
    transition: height 0.3s ease;
}

.terms-sidebar__link:hover,
.terms-sidebar__link.is-active,
.terms-sidebar__link[aria-current="true"] {
    padding-left: 13px;
    color: var(--terms-white);
    background: linear-gradient(
        90deg,
        rgba(21, 166, 255, 0.09),
        transparent
    );
}

.terms-sidebar__link.is-active::after,
.terms-sidebar__link[aria-current="true"]::after {
    height: 24px;
}

/* =========================================================
   19. DOCUMENTO PRINCIPAL
========================================================= */

.terms-document {
    position: relative;
    min-width: 0;
    max-width: 970px;
}

.terms-document__header {
    position: relative;
    margin-bottom: 80px;
    padding-bottom: 48px;
    border-bottom: 1px solid rgba(109, 132, 188, 0.15);
}

.terms-document__header::after {
    content: "";
    position: absolute;
    bottom: -1px;
    left: 0;
    width: 120px;
    height: 1px;
    background: var(--terms-gradient);
    box-shadow: 0 0 13px rgba(41, 165, 255, 0.65);
}

.terms-document__eyebrow {
    display: flex;
    margin-bottom: 20px;
    align-items: center;
    gap: 12px;
    color: var(--terms-cyan);
    font-size: 0.62rem;
    font-weight: 700;
    letter-spacing: 0.3em;
    text-transform: uppercase;
}

.terms-document__eyebrow::before {
    content: "";
    width: 28px;
    height: 1px;
    background: var(--terms-cyan);
    box-shadow: 0 0 9px var(--terms-cyan);
}

.terms-document__title {
    max-width: 900px;
    margin: 0;
    color: var(--terms-white);
    font-size: clamp(3.1rem, 5vw, 6.3rem);
    font-weight: 650;
    letter-spacing: -0.065em;
    line-height: 0.93;
}

.terms-document__title span {
    display: block;
    padding: 0.04em 0.05em 0.13em;
    color: transparent;
    font-family: "Allura", "Great Vibes", cursive;
    font-size: 1.04em;
    font-weight: 400;
    letter-spacing: 0;
    line-height: 0.92;
    background: var(--terms-gradient);
    background-clip: text;
    -webkit-background-clip: text;
}

.terms-document__intro {
    max-width: 780px;
    margin: 25px 0 0;
    color: var(--terms-text);
    font-size: 1rem;
    line-height: 1.85;
}

.terms-document__updated {
    display: inline-flex;
    margin-top: 28px;
    padding: 10px 14px;
    align-items: center;
    gap: 9px;
    border: 1px solid rgba(67, 225, 167, 0.16);
    border-radius: 999px;
    background: rgba(31, 180, 125, 0.055);
    color: #8dcdb1;
    font-size: 0.64rem;
}

.terms-document__updated::before {
    content: "";
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: var(--terms-green);
    box-shadow: 0 0 9px var(--terms-green);
}

/* =========================================================
   20. ARTIGOS DOS TERMOS
========================================================= */

.terms-article {
    position: relative;
    display: grid;
    padding: 0 0 clamp(85px, 9vw, 135px);
    grid-template-columns: 78px minmax(0, 1fr);
    gap: clamp(27px, 4vw, 54px);
}

.terms-article:not(:last-child)::after {
    content: "";
    position: absolute;
    right: 0;
    bottom: clamp(42px, 4.5vw, 67px);
    left: 132px;
    height: 1px;
    background: linear-gradient(
        90deg,
        rgba(78, 111, 185, 0.2),
        rgba(78, 111, 185, 0.06),
        transparent
    );
}

.terms-article__number {
    position: sticky;
    top: 130px;
    display: flex;
    width: 64px;
    height: 64px;
    align-items: center;
    justify-content: center;
    border: 1px solid rgba(38, 180, 255, 0.28);
    border-radius: 18px;
    background:
        linear-gradient(
            145deg,
            rgba(15, 38, 70, 0.77),
            rgba(5, 10, 25, 0.9)
        );
    color: var(--terms-cyan);
    font-family: monospace;
    font-size: 0.8rem;
    letter-spacing: 0.08em;
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.04),
        0 17px 38px rgba(0, 0, 0, 0.22),
        0 0 25px rgba(32, 147, 255, 0.06);
}

.terms-article__number::before {
    content: "";
    position: absolute;
    inset: 7px;
    border: 1px solid rgba(100, 74, 255, 0.16);
    border-radius: 12px;
}

.terms-article__content {
    min-width: 0;
}

.terms-article__eyebrow {
    display: block;
    margin-bottom: 12px;
    color: var(--terms-cyan);
    font-size: 0.58rem;
    font-weight: 700;
    letter-spacing: 0.25em;
    text-transform: uppercase;
}

.terms-article__title {
    max-width: 820px;
    margin: 0 0 24px;
    color: var(--terms-white);
    font-size: clamp(2rem, 3.35vw, 3.85rem);
    font-weight: 650;
    letter-spacing: -0.052em;
    line-height: 1;
}

.terms-article__title span {
    color: transparent;
    font-family: "Allura", "Great Vibes", cursive;
    font-size: 1.18em;
    font-weight: 400;
    letter-spacing: 0;
    background: var(--terms-gradient);
    background-clip: text;
    -webkit-background-clip: text;
}

.terms-article__content > p {
    max-width: 810px;
    margin: 0 0 20px;
    color: var(--terms-text);
    font-size: 0.94rem;
    line-height: 1.85;
}

.terms-article__content > p strong {
    color: var(--terms-white);
    font-weight: 650;
}

.terms-article__content > p a {
    color: var(--terms-cyan);
    text-decoration: underline;
    text-decoration-color: rgba(22, 199, 255, 0.35);
    text-underline-offset: 4px;
}

.terms-article__content > p a:hover {
    text-decoration-color: var(--terms-cyan);
}

.terms-article__small {
    color: var(--terms-muted) !important;
    font-size: 0.76rem !important;
    line-height: 1.75 !important;
}

/* =========================================================
   21. LISTAS
========================================================= */

.terms-list,
.terms-check-list,
.terms-cross-list {
    display: grid;
    margin: 25px 0 0;
    padding: 0;
    gap: 13px;
    list-style: none;
}

.terms-list li,
.terms-check-list li,
.terms-cross-list li {
    position: relative;
    min-height: 25px;
    padding-left: 31px;
    color: var(--terms-text);
    font-size: 0.83rem;
    line-height: 1.7;
}

.terms-list li::before,
.terms-check-list li::before,
.terms-cross-list li::before {
    position: absolute;
    top: 3px;
    left: 0;
    display: grid;
    width: 19px;
    height: 19px;
    place-items: center;
    border-radius: 50%;
    font-size: 0.58rem;
}

.terms-list li::before,
.terms-check-list li::before {
    content: "✓";
    border: 1px solid rgba(21, 192, 255, 0.28);
    background: rgba(19, 157, 255, 0.07);
    color: var(--terms-cyan);
}

.terms-cross-list li::before {
    content: "×";
    border: 1px solid rgba(151, 88, 255, 0.28);
    background: rgba(121, 57, 255, 0.07);
    color: #ad7dff;
}

/* =========================================================
   22. CARTÕES INFORMATIVOS
========================================================= */

.terms-info-grid {
    display: grid;
    margin-top: 33px;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 15px;
}

.terms-info-card {
    position: relative;
    min-width: 0;
    min-height: 220px;
    padding: 25px;
    overflow: hidden;
    border: 1px solid rgba(73, 109, 191, 0.19);
    border-radius: 19px;
    background:
        linear-gradient(
            145deg,
            rgba(10, 23, 47, 0.82),
            rgba(4, 9, 22, 0.88)
        );
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.03),
        0 20px 45px rgba(0, 0, 0, 0.17);
    transition:
        transform 0.45s cubic-bezier(0.16, 1, 0.3, 1),
        border-color 0.4s ease,
        box-shadow 0.4s ease;
}

.terms-info-card::before {
    content: "";
    position: absolute;
    width: 130px;
    height: 130px;
    top: -80px;
    right: -65px;
    border-radius: 50%;
    opacity: 0;
    background: rgba(44, 123, 255, 0.22);
    filter: blur(35px);
    transition: opacity 0.4s ease;
}

.terms-info-card:hover {
    border-color: rgba(28, 191, 255, 0.4);
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.045),
        0 27px 60px rgba(0, 0, 0, 0.25),
        0 0 30px rgba(41, 118, 255, 0.06);
    transform: translateY(-8px);
}

.terms-info-card:hover::before {
    opacity: 1;
}

.terms-info-card__index {
    display: block;
    margin-bottom: 27px;
    color: var(--terms-cyan);
    font-family: monospace;
    font-size: 0.65rem;
}

.terms-info-card h3 {
    margin: 0 0 12px;
    color: var(--terms-white);
    font-size: 0.94rem;
    font-weight: 700;
    line-height: 1.35;
}

.terms-info-card p {
    margin: 0;
    color: var(--terms-muted);
    font-size: 0.75rem;
    line-height: 1.75;
}

/* =========================================================
   23. ANIMAÇÕES DE ENTRADA
========================================================= */

.terms-page-body [data-reveal],
.terms-page-body .reveal-up {
    opacity: 0;
    filter: blur(5px);
    transform: translateY(46px);
    transition:
        opacity 0.85s ease,
        filter 0.85s ease,
        transform 0.95s cubic-bezier(0.16, 1, 0.3, 1);
}

.terms-page-body [data-reveal].is-visible,
.terms-page-body [data-reveal].revealed,
.terms-page-body .reveal-up.is-visible,
.terms-page-body .reveal-up.revealed {
    opacity: 1;
    filter: blur(0);
    transform: translateY(0);
}

/* Evita conteúdo invisível se o JS demorar ou estiver desativado. */
.terms-page-body.no-js [data-reveal],
.terms-page-body.no-js .reveal-up {
    opacity: 1;
    filter: none;
    transform: none;
}

/* =========================================================
   24. RESPONSIVIDADE DO CONTEÚDO
========================================================= */

@media (max-width: 1120px) {
    .terms-content__layout {
        grid-template-columns: 230px minmax(0, 1fr);
        gap: 50px;
    }

    .terms-sidebar {
        padding: 20px 17px;
    }

    .terms-sidebar__link {
        grid-template-columns: 25px 1fr;
        font-size: 0.62rem;
    }

    .terms-article {
        grid-template-columns: 64px minmax(0, 1fr);
        gap: 28px;
    }

    .terms-article__number {
        width: 58px;
        height: 58px;
    }

    .terms-article:not(:last-child)::after {
        left: 92px;
    }
}

@media (max-width: 900px) {
    .terms-content__layout {
        grid-template-columns: 1fr;
        gap: 60px;
    }

    .terms-sidebar {
        position: relative;
        top: auto;
        padding: 15px;
        overflow-x: auto;
        scrollbar-width: none;
    }

    .terms-sidebar::-webkit-scrollbar {
        display: none;
    }

    .terms-sidebar__label {
        margin-bottom: 12px;
    }

    .terms-sidebar__list {
        display: flex;
        width: max-content;
        gap: 7px;
    }

    .terms-sidebar__link {
        min-height: 38px;
        padding: 9px 13px;
        grid-template-columns: auto auto;
        border: 1px solid rgba(74, 110, 192, 0.16);
        border-radius: 999px;
        background: rgba(7, 15, 32, 0.68);
        white-space: nowrap;
    }

    .terms-sidebar__link::after {
        display: none;
    }

    .terms-sidebar__link:hover,
    .terms-sidebar__link.is-active,
    .terms-sidebar__link[aria-current="true"] {
        padding-left: 13px;
        border-color: rgba(22, 199, 255, 0.36);
    }
}

@media (max-width: 720px) {
    .terms-content {
        padding: 85px 0;
    }

    .terms-content__layout {
        gap: 50px;
    }

    .terms-document__header {
        margin-bottom: 65px;
        padding-bottom: 38px;
    }

    .terms-document__title {
        font-size: clamp(2.8rem, 13vw, 4.5rem);
        line-height: 0.95;
    }

    .terms-document__title span {
        font-size: 1em;
        line-height: 1;
    }

    .terms-document__intro {
        font-size: 0.9rem;
        line-height: 1.75;
    }

    .terms-article {
        padding-bottom: 95px;
        grid-template-columns: 1fr;
        gap: 22px;
    }

    .terms-article:not(:last-child)::after {
        right: 0;
        bottom: 47px;
        left: 0;
    }

    .terms-article__number {
        position: relative;
        top: auto;
        width: 52px;
        height: 52px;
    }

    .terms-article__title {
        font-size: clamp(2rem, 9.5vw, 3.2rem);
        line-height: 1.02;
    }

    .terms-article__title span {
        display: block;
        margin-top: 5px;
        font-size: 1.2em;
        line-height: 0.95;
    }

    .terms-article__content > p {
        font-size: 0.88rem;
        line-height: 1.78;
    }

    .terms-info-grid {
        grid-template-columns: 1fr;
    }

    .terms-info-card {
        min-height: auto;
        padding: 23px;
    }

    .terms-info-card__index {
        margin-bottom: 19px;
    }
}

/* =========================================================
   25. CARTÕES DE ESCOPO E SERVIÇOS
========================================================= */

.terms-scope-grid,
.terms-services-grid {
    display: grid;
    margin-top: 32px;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 15px;
}

.terms-scope-card,
.terms-service-card {
    position: relative;
    min-height: 180px;
    padding: 25px;
    overflow: hidden;
    border: 1px solid rgba(75, 111, 193, 0.18);
    border-radius: 19px;
    background:
        linear-gradient(
            145deg,
            rgba(10, 24, 47, 0.8),
            rgba(4, 9, 22, 0.9)
        );
    transition:
        transform 0.4s cubic-bezier(0.16, 1, 0.3, 1),
        border-color 0.4s ease,
        box-shadow 0.4s ease;
}

.terms-scope-card::after,
.terms-service-card::after {
    content: "";
    position: absolute;
    right: -55px;
    bottom: -70px;
    width: 150px;
    height: 150px;
    border: 1px solid rgba(109, 62, 255, 0.16);
    border-radius: 50%;
    transition:
        transform 0.5s ease,
        border-color 0.5s ease;
}

.terms-scope-card:hover,
.terms-service-card:hover {
    border-color: rgba(24, 194, 255, 0.36);
    box-shadow: 0 25px 55px rgba(0, 0, 0, 0.22);
    transform: translateY(-7px);
}

.terms-scope-card:hover::after,
.terms-service-card:hover::after {
    border-color: rgba(114, 63, 255, 0.38);
    transform: scale(1.14);
}

.terms-scope-card__icon,
.terms-service-card__icon {
    display: grid;
    width: 43px;
    height: 43px;
    margin-bottom: 21px;
    place-items: center;
    border: 1px solid rgba(25, 192, 255, 0.27);
    border-radius: 12px;
    background: rgba(13, 117, 195, 0.09);
    color: var(--terms-cyan);
    font-size: 0.78rem;
    box-shadow: 0 0 21px rgba(25, 151, 255, 0.07);
}

.terms-scope-card h3,
.terms-service-card h3 {
    position: relative;
    z-index: 2;
    margin: 0 0 10px;
    color: var(--terms-white);
    font-size: 0.92rem;
}

.terms-scope-card p,
.terms-service-card p {
    position: relative;
    z-index: 2;
    margin: 0;
    color: var(--terms-muted);
    font-size: 0.74rem;
    line-height: 1.72;
}

/* =========================================================
   26. QUADRO DE PROPOSTA COMERCIAL
========================================================= */

.terms-proposal {
    position: relative;
    display: grid;
    margin-top: 35px;
    padding: 33px;
    overflow: hidden;
    grid-template-columns: minmax(0, 1fr) minmax(250px, 0.75fr);
    gap: 32px;
    border: 1px solid rgba(71, 112, 210, 0.25);
    border-radius: 23px;
    background:
        linear-gradient(
            135deg,
            rgba(9, 27, 52, 0.88),
            rgba(8, 9, 29, 0.92)
        );
    box-shadow:
        0 28px 70px rgba(0, 0, 0, 0.25),
        inset 0 1px 0 rgba(255, 255, 255, 0.035);
}

.terms-proposal::before {
    content: "";
    position: absolute;
    width: 280px;
    height: 280px;
    top: -190px;
    right: -70px;
    border-radius: 50%;
    background: rgba(112, 53, 255, 0.28);
    filter: blur(55px);
}

.terms-proposal__content,
.terms-proposal__summary {
    position: relative;
    z-index: 2;
}

.terms-proposal__label {
    display: block;
    margin-bottom: 15px;
    color: var(--terms-cyan);
    font-size: 0.58rem;
    font-weight: 700;
    letter-spacing: 0.23em;
    text-transform: uppercase;
}

.terms-proposal h3 {
    max-width: 520px;
    margin: 0 0 14px;
    color: var(--terms-white);
    font-size: clamp(1.4rem, 2.3vw, 2.2rem);
    letter-spacing: -0.035em;
    line-height: 1.15;
}

.terms-proposal p {
    margin: 0;
    color: var(--terms-muted);
    font-size: 0.78rem;
    line-height: 1.75;
}

.terms-proposal__summary {
    display: grid;
    padding: 22px;
    align-content: center;
    gap: 11px;
    border: 1px solid rgba(79, 112, 191, 0.18);
    border-radius: 17px;
    background: rgba(3, 9, 23, 0.67);
}

.terms-proposal__row {
    display: flex;
    min-height: 35px;
    padding-bottom: 10px;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    border-bottom: 1px solid rgba(103, 126, 180, 0.11);
}

.terms-proposal__row:last-child {
    padding-bottom: 0;
    border-bottom: 0;
}

.terms-proposal__row span {
    color: var(--terms-muted);
    font-size: 0.64rem;
}

.terms-proposal__row strong {
    color: var(--terms-white);
    font-size: 0.68rem;
    text-align: right;
}

/* =========================================================
   27. ETAPAS E LINHA DE PROCESSO
========================================================= */

.terms-process,
.terms-timeline {
    position: relative;
    display: grid;
    margin-top: 34px;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 12px;
}

.terms-process::before,
.terms-timeline::before {
    content: "";
    position: absolute;
    top: 26px;
    right: 8%;
    left: 8%;
    z-index: 0;
    height: 1px;
    background: linear-gradient(
        90deg,
        var(--terms-cyan),
        var(--terms-blue),
        var(--terms-violet)
    );
    opacity: 0.28;
}

.terms-process__item,
.terms-timeline__item {
    position: relative;
    z-index: 1;
    min-width: 0;
    padding: 0 14px 20px;
    text-align: center;
}

.terms-process__number,
.terms-timeline__number {
    display: grid;
    width: 53px;
    height: 53px;
    margin: 0 auto 19px;
    place-items: center;
    border: 1px solid rgba(39, 180, 255, 0.34);
    border-radius: 50%;
    background:
        linear-gradient(
            145deg,
            rgba(13, 39, 73, 0.97),
            rgba(5, 11, 26, 0.98)
        );
    color: var(--terms-cyan);
    font-family: monospace;
    font-size: 0.68rem;
    box-shadow:
        0 0 0 7px var(--terms-bg),
        0 0 25px rgba(26, 150, 255, 0.1);
}

.terms-process__item h3,
.terms-timeline__item h3 {
    margin: 0 0 8px;
    color: var(--terms-white);
    font-size: 0.78rem;
}

.terms-process__item p,
.terms-timeline__item p {
    margin: 0;
    color: var(--terms-muted);
    font-size: 0.66rem;
    line-height: 1.65;
}

/* =========================================================
   28. PAGAMENTOS
========================================================= */

.terms-payment-grid {
    display: grid;
    margin-top: 34px;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 15px;
}

.terms-payment-card {
    position: relative;
    display: grid;
    min-height: 155px;
    padding: 23px;
    grid-template-columns: 44px 1fr;
    align-items: start;
    gap: 17px;
    border: 1px solid rgba(77, 111, 188, 0.18);
    border-radius: 18px;
    background: rgba(7, 16, 34, 0.76);
    transition:
        transform 0.35s ease,
        border-color 0.35s ease;
}

.terms-payment-card:hover {
    border-color: rgba(27, 190, 255, 0.36);
    transform: translateY(-5px);
}

.terms-payment-card__icon {
    display: grid;
    width: 44px;
    height: 44px;
    place-items: center;
    border: 1px solid rgba(24, 190, 255, 0.25);
    border-radius: 12px;
    background: rgba(19, 135, 221, 0.08);
    color: var(--terms-cyan);
    font-size: 0.7rem;
}

.terms-payment-card h3 {
    margin: 2px 0 8px;
    color: var(--terms-white);
    font-size: 0.83rem;
}

.terms-payment-card p {
    margin: 0;
    color: var(--terms-muted);
    font-size: 0.7rem;
    line-height: 1.7;
}

/* =========================================================
   29. AVISOS E NOTAS LEGAIS
========================================================= */

.terms-note,
.terms-legal-note {
    position: relative;
    display: grid;
    margin-top: 30px;
    padding: 26px;
    overflow: hidden;
    grid-template-columns: 55px 1fr;
    align-items: start;
    gap: 20px;
    border: 1px solid rgba(39, 182, 255, 0.22);
    border-radius: 19px;
    background:
        linear-gradient(
            135deg,
            rgba(8, 29, 55, 0.8),
            rgba(7, 10, 29, 0.88)
        );
    box-shadow: inset 4px 0 0 rgba(22, 199, 255, 0.55);
}

.terms-note::after,
.terms-legal-note::after {
    content: "";
    position: absolute;
    width: 190px;
    height: 190px;
    top: -130px;
    right: -100px;
    border-radius: 50%;
    background: rgba(69, 78, 255, 0.23);
    filter: blur(42px);
}

.terms-note__icon,
.terms-legal-note__icon {
    position: relative;
    z-index: 2;
    display: grid;
    width: 50px;
    height: 50px;
    place-items: center;
    border: 1px solid rgba(31, 194, 255, 0.3);
    border-radius: 14px;
    background: rgba(17, 121, 201, 0.1);
    color: var(--terms-cyan);
    font-family: monospace;
    font-size: 0.72rem;
    font-weight: 700;
}

.terms-note > div,
.terms-legal-note > div {
    position: relative;
    z-index: 2;
}

.terms-note h3,
.terms-legal-note h3 {
    margin: 0 0 9px;
    color: var(--terms-white);
    font-size: 0.92rem;
}

.terms-note p,
.terms-legal-note p {
    margin: 0;
    color: var(--terms-text);
    font-size: 0.76rem;
    line-height: 1.75;
}

.terms-legal-note p + p {
    margin-top: 13px;
}

/* =========================================================
   30. COLUNAS DE RESPONSABILIDADES
========================================================= */

.terms-responsibility-grid {
    display: grid;
    margin-top: 34px;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 17px;
}

.terms-responsibility-card {
    position: relative;
    padding: 28px;
    overflow: hidden;
    border: 1px solid rgba(77, 111, 188, 0.19);
    border-radius: 20px;
    background:
        linear-gradient(
            145deg,
            rgba(9, 22, 44, 0.82),
            rgba(4, 9, 22, 0.92)
        );
}

.terms-responsibility-card::before {
    content: "";
    position: absolute;
    top: 0;
    left: 28px;
    width: 70px;
    height: 2px;
    border-radius: 99px;
    background: var(--terms-gradient);
    box-shadow: 0 0 12px rgba(28, 182, 255, 0.5);
}

.terms-responsibility-card__label {
    display: block;
    margin-bottom: 17px;
    color: var(--terms-cyan);
    font-size: 0.57rem;
    font-weight: 700;
    letter-spacing: 0.23em;
    text-transform: uppercase;
}

.terms-responsibility-card h3 {
    margin: 0 0 17px;
    color: var(--terms-white);
    font-size: 1.05rem;
}

/* =========================================================
   31. COMPARAÇÃO — GARANTIA
========================================================= */

.terms-comparison {
    display: grid;
    margin-top: 35px;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 17px;
}

.terms-comparison__column {
    position: relative;
    min-width: 0;
    padding: 29px;
    overflow: hidden;
    border: 1px solid rgba(76, 111, 189, 0.2);
    border-radius: 21px;
    background: rgba(6, 14, 31, 0.81);
}

.terms-comparison__column::before {
    content: "";
    position: absolute;
    width: 180px;
    height: 180px;
    right: -105px;
    bottom: -115px;
    border-radius: 50%;
    filter: blur(38px);
}

.terms-comparison__column--included::before {
    background: rgba(25, 196, 255, 0.15);
}

.terms-comparison__column--excluded::before {
    background: rgba(134, 61, 255, 0.16);
}

.terms-comparison__label {
    display: inline-flex;
    margin-bottom: 18px;
    padding: 7px 11px;
    border: 1px solid rgba(36, 185, 255, 0.2);
    border-radius: 999px;
    color: var(--terms-cyan);
    font-size: 0.57rem;
    font-weight: 700;
    letter-spacing: 0.17em;
    text-transform: uppercase;
}

.terms-comparison__column--excluded .terms-comparison__label {
    border-color: rgba(145, 79, 255, 0.24);
    color: #af81ff;
}

.terms-comparison__column h3 {
    position: relative;
    z-index: 2;
    margin: 0;
    color: var(--terms-white);
    font-size: 1rem;
}

/* =========================================================
   32. PAINEL DE DESTAQUE
========================================================= */

.terms-highlight-panel {
    position: relative;
    display: grid;
    margin-top: 32px;
    padding: clamp(28px, 4vw, 44px);
    overflow: hidden;
    grid-template-columns: minmax(0, 1fr) 190px;
    align-items: center;
    gap: 35px;
    border: 1px solid rgba(50, 117, 245, 0.3);
    border-radius: 24px;
    background:
        linear-gradient(
            125deg,
            rgba(7, 31, 58, 0.91),
            rgba(11, 9, 40, 0.94)
        );
    box-shadow:
        0 30px 75px rgba(0, 0, 0, 0.3),
        inset 0 1px 0 rgba(255, 255, 255, 0.04);
}

.terms-highlight-panel__glow {
    position: absolute;
    width: 300px;
    height: 300px;
    right: -80px;
    bottom: -180px;
    border-radius: 50%;
    opacity: 0.34;
    background: linear-gradient(
        135deg,
        var(--terms-cyan),
        var(--terms-violet)
    );
    filter: blur(65px);
    animation: terms-highlight-glow 6s ease-in-out infinite;
}

.terms-highlight-panel__content,
.terms-highlight-panel__metric {
    position: relative;
    z-index: 2;
}

.terms-highlight-panel__tag {
    display: block;
    margin-bottom: 15px;
    color: var(--terms-cyan);
    font-size: 0.58rem;
    font-weight: 700;
    letter-spacing: 0.24em;
    text-transform: uppercase;
}

.terms-highlight-panel h3 {
    max-width: 610px;
    margin: 0 0 14px;
    color: var(--terms-white);
    font-size: clamp(1.4rem, 2.4vw, 2.3rem);
    letter-spacing: -0.04em;
    line-height: 1.1;
}

.terms-highlight-panel h3 span {
    color: transparent;
    background: var(--terms-gradient);
    background-clip: text;
    -webkit-background-clip: text;
}

.terms-highlight-panel p {
    max-width: 650px;
    margin: 0;
    color: var(--terms-muted);
    font-size: 0.76rem;
    line-height: 1.75;
}

.terms-highlight-panel__metric {
    display: grid;
    min-height: 145px;
    padding: 20px;
    place-content: center;
    border: 1px solid rgba(72, 123, 232, 0.24);
    border-radius: 18px;
    background: rgba(4, 11, 27, 0.73);
    text-align: center;
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.035),
        0 20px 40px rgba(0, 0, 0, 0.18);
}

.terms-highlight-panel__metric strong {
    display: block;
    margin-bottom: 9px;
    color: transparent;
    font-size: clamp(1.8rem, 3vw, 3rem);
    line-height: 1;
    background: var(--terms-gradient);
    background-clip: text;
    -webkit-background-clip: text;
}

.terms-highlight-panel__metric span {
    color: var(--terms-muted);
    font-size: 0.62rem;
    line-height: 1.5;
}

@keyframes terms-highlight-glow {
    0%,
    100% {
        transform: translate3d(-15px, 0, 0) scale(0.94);
    }

    50% {
        transform: translate3d(25px, -20px, 0) scale(1.08);
    }
}

/* =========================================================
   33. RESPONSIVIDADE DOS COMPONENTES
========================================================= */

@media (max-width: 780px) {
    .terms-scope-grid,
    .terms-services-grid,
    .terms-payment-grid,
    .terms-responsibility-grid,
    .terms-comparison {
        grid-template-columns: 1fr;
    }

    .terms-proposal {
        padding: 25px;
        grid-template-columns: 1fr;
    }

    .terms-process,
    .terms-timeline {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 25px 12px;
    }

    .terms-process::before,
    .terms-timeline::before {
        display: none;
    }

    .terms-highlight-panel {
        grid-template-columns: 1fr;
    }

    .terms-highlight-panel__metric {
        min-height: 120px;
    }
}

@media (max-width: 520px) {
    .terms-scope-grid,
    .terms-services-grid,
    .terms-payment-grid,
    .terms-responsibility-grid,
    .terms-comparison,
    .terms-info-grid {
        gap: 12px;
    }

    .terms-process,
    .terms-timeline {
        grid-template-columns: 1fr;
    }

    .terms-process__item,
    .terms-timeline__item {
        display: grid;
        padding: 16px;
        grid-template-columns: 47px 1fr;
        align-items: center;
        column-gap: 14px;
        border: 1px solid rgba(74, 108, 187, 0.16);
        border-radius: 15px;
        background: rgba(7, 15, 32, 0.68);
        text-align: left;
    }

    .terms-process__number,
    .terms-timeline__number {
        width: 45px;
        height: 45px;
        margin: 0;
        grid-row: 1 / 3;
        box-shadow: none;
    }

    .terms-process__item h3,
    .terms-timeline__item h3 {
        margin-bottom: 4px;
    }

    .terms-note,
    .terms-legal-note {
        padding: 22px;
        grid-template-columns: 1fr;
    }

    .terms-note__icon,
    .terms-legal-note__icon {
        width: 45px;
        height: 45px;
    }

    .terms-comparison__column,
    .terms-responsibility-card {
        padding: 24px 21px;
    }

    .terms-highlight-panel {
        padding: 26px 21px;
    }
}

/* =========================================================
   34. ARTIGO FINAL DE CONTACTO
========================================================= */

.terms-article--contact {
    padding-bottom: 30px;
}

.terms-contact-grid {
    display: grid;
    margin-top: 34px;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
}

.terms-contact-card {
    position: relative;
    display: grid;
    min-width: 0;
    min-height: 170px;
    padding: 27px;
    overflow: hidden;
    grid-template-columns: 43px minmax(0, 1fr) 28px;
    align-items: start;
    gap: 17px;
    border: 1px solid rgba(76, 115, 204, 0.23);
    border-radius: 20px;
    background:
        linear-gradient(
            145deg,
            rgba(10, 28, 53, 0.84),
            rgba(5, 9, 25, 0.92)
        );
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.035),
        0 22px 55px rgba(0, 0, 0, 0.2);
    transition:
        transform 0.45s cubic-bezier(0.16, 1, 0.3, 1),
        border-color 0.4s ease,
        box-shadow 0.4s ease;
}

.terms-contact-card::before {
    content: "";
    position: absolute;
    width: 190px;
    height: 190px;
    right: -130px;
    bottom: -130px;
    border-radius: 50%;
    opacity: 0.28;
    background: var(--terms-violet);
    filter: blur(48px);
    transition:
        opacity 0.4s ease,
        transform 0.5s ease;
}

.terms-contact-card::after {
    content: "";
    position: absolute;
    bottom: 0;
    left: 0;
    width: 0;
    height: 2px;
    border-radius: 99px;
    background: var(--terms-gradient);
    box-shadow: 0 0 14px rgba(23, 185, 255, 0.66);
    transition: width 0.5s ease;
}

.terms-contact-card:hover {
    border-color: rgba(27, 195, 255, 0.44);
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.045),
        0 28px 65px rgba(0, 0, 0, 0.3),
        0 0 30px rgba(49, 106, 255, 0.08);
    transform: translateY(-8px);
}

.terms-contact-card:hover::before {
    opacity: 0.47;
    transform: scale(1.2);
}

.terms-contact-card:hover::after {
    width: 100%;
}

.terms-contact-card__number {
    position: relative;
    z-index: 2;
    display: grid;
    width: 42px;
    height: 42px;
    place-items: center;
    border: 1px solid rgba(28, 189, 255, 0.3);
    border-radius: 12px;
    background: rgba(18, 131, 216, 0.08);
    color: var(--terms-cyan);
    font-family: monospace;
    font-size: 0.64rem;
}

.terms-contact-card__content {
    position: relative;
    z-index: 2;
    min-width: 0;
}

.terms-contact-card__label {
    display: block;
    margin: 2px 0 12px;
    color: var(--terms-muted);
    font-size: 0.57rem;
    font-weight: 700;
    letter-spacing: 0.18em;
    text-transform: uppercase;
}

.terms-contact-card__content strong {
    display: block;
    overflow-wrap: anywhere;
    color: var(--terms-white);
    font-size: clamp(0.78rem, 1vw, 0.9rem);
    line-height: 1.45;
}

.terms-contact-card__content small {
    display: block;
    margin-top: 11px;
    color: var(--terms-muted);
    font-size: 0.66rem;
    line-height: 1.55;
}

.terms-contact-card__arrow {
    position: relative;
    z-index: 2;
    justify-self: end;
    color: var(--terms-cyan);
    font-size: 1rem;
    transition: transform 0.35s ease;
}

.terms-contact-card:hover .terms-contact-card__arrow {
    transform: translate(4px, -4px);
}

/* =========================================================
   35. DISPOSIÇÕES FINAIS
========================================================= */

.terms-final-grid {
    display: grid;
    margin-top: 18px;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 14px;
}

.terms-final-card {
    position: relative;
    min-width: 0;
    min-height: 205px;
    padding: 24px;
    overflow: hidden;
    border: 1px solid rgba(75, 109, 186, 0.17);
    border-radius: 18px;
    background: rgba(6, 14, 30, 0.76);
    transition:
        transform 0.4s ease,
        border-color 0.4s ease,
        background 0.4s ease;
}

.terms-final-card:hover {
    border-color: rgba(90, 86, 255, 0.37);
    background: rgba(9, 18, 40, 0.9);
    transform: translateY(-6px);
}

.terms-final-card__icon {
    display: grid;
    width: 41px;
    height: 41px;
    margin-bottom: 21px;
    place-items: center;
    border: 1px solid rgba(56, 151, 255, 0.25);
    border-radius: 12px;
    background: rgba(26, 111, 202, 0.08);
    color: var(--terms-cyan);
    font-family: monospace;
    font-size: 0.67rem;
}

.terms-final-card h3 {
    margin: 0 0 10px;
    color: var(--terms-white);
    font-size: 0.85rem;
    line-height: 1.35;
}

.terms-final-card p {
    margin: 0;
    color: var(--terms-muted);
    font-size: 0.69rem;
    line-height: 1.7;
}

/* =========================================================
   36. VERSÃO DO DOCUMENTO
========================================================= */

.terms-version {
    position: relative;
    display: grid;
    margin-top: 28px;
    padding: 24px 27px;
    overflow: hidden;
    grid-template-columns: 45px minmax(0, 1fr) auto;
    align-items: center;
    gap: 19px;
    border: 1px solid rgba(75, 112, 198, 0.21);
    border-radius: 17px;
    background:
        linear-gradient(
            90deg,
            rgba(8, 23, 45, 0.8),
            rgba(7, 9, 27, 0.85)
        );
}

.terms-version__line {
    position: relative;
    width: 38px;
    height: 2px;
    overflow: hidden;
    border-radius: 99px;
    background: rgba(255, 255, 255, 0.08);
}

.terms-version__line::after {
    content: "";
    position: absolute;
    inset: 0;
    background: var(--terms-gradient);
    animation: terms-version-light 2.6s ease-in-out infinite;
}

.terms-version__content span {
    display: block;
    margin-bottom: 4px;
    color: var(--terms-muted);
    font-size: 0.58rem;
    letter-spacing: 0.16em;
    text-transform: uppercase;
}

.terms-version__content strong {
    display: block;
    color: var(--terms-white);
    font-size: 0.76rem;
}

.terms-version__status {
    display: inline-flex;
    align-items: center;
    gap: 9px;
    color: #87cdb0;
    font-size: 0.63rem;
    white-space: nowrap;
}

.terms-version__dot {
    display: block;
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: var(--terms-green);
    box-shadow:
        0 0 8px var(--terms-green),
        0 0 17px rgba(67, 242, 173, 0.38);
    animation: terms-status-pulse 2s ease-in-out infinite;
}

@keyframes terms-version-light {
    0%,
    100% {
        transform: translateX(-80%);
    }

    50% {
        transform: translateX(80%);
    }
}

@keyframes terms-status-pulse {
    0%,
    100% {
        opacity: 0.65;
        transform: scale(0.85);
    }

    50% {
        opacity: 1;
        transform: scale(1.2);
    }
}

/* =========================================================
   37. CHAMADA FINAL
========================================================= */

.terms-cta {
    position: relative;
    padding: clamp(90px, 10vw, 150px) 0;
    overflow: hidden;
}

.terms-cta::before {
    content: "";
    position: absolute;
    top: 50%;
    left: -10%;
    z-index: -2;
    width: 120%;
    height: 220px;
    border: 1px solid rgba(38, 181, 255, 0.12);
    border-radius: 50%;
    transform: translateY(-50%) rotate(-4deg);
}

.terms-cta__orb {
    position: absolute;
    z-index: -1;
    border-radius: 50%;
    pointer-events: none;
    filter: blur(80px);
}

.terms-cta__orb--one {
    width: 330px;
    height: 330px;
    top: 5%;
    left: 9%;
    opacity: 0.16;
    background: var(--terms-cyan);
    animation: terms-cta-orb 8s ease-in-out infinite;
}

.terms-cta__orb--two {
    width: 390px;
    height: 390px;
    right: 7%;
    bottom: -7%;
    opacity: 0.2;
    background: var(--terms-violet);
    animation: terms-cta-orb 10s ease-in-out infinite reverse;
}

.terms-cta__panel {
    position: relative;
    display: grid;
    min-height: 390px;
    padding: clamp(48px, 6vw, 85px);
    overflow: hidden;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    gap: 65px;
    border: 1px solid rgba(69, 118, 223, 0.3);
    border-radius: var(--terms-radius-large);
    background:
        radial-gradient(
            circle at 88% 30%,
            rgba(120, 56, 255, 0.17),
            transparent 35%
        ),
        linear-gradient(
            135deg,
            rgba(7, 27, 52, 0.93),
            rgba(6, 8, 28, 0.96)
        );
    box-shadow:
        0 45px 110px rgba(0, 0, 0, 0.38),
        0 0 60px rgba(68, 72, 255, 0.08),
        inset 0 1px 0 rgba(255, 255, 255, 0.045);
}

.terms-cta__panel::before {
    content: "";
    position: absolute;
    inset: -1px;
    z-index: -1;
    border-radius: inherit;
    padding: 1px;
    background: linear-gradient(
        120deg,
        rgba(20, 199, 255, 0.68),
        transparent 31%,
        transparent 68%,
        rgba(139, 61, 255, 0.66)
    );
    mask:
        linear-gradient(#fff 0 0) content-box,
        linear-gradient(#fff 0 0);
    mask-composite: exclude;
    -webkit-mask:
        linear-gradient(#fff 0 0) content-box,
        linear-gradient(#fff 0 0);
    -webkit-mask-composite: xor;
}

.terms-cta__panel::after {
    content: "";
    position: absolute;
    width: 470px;
    height: 470px;
    right: -240px;
    bottom: -300px;
    border: 1px solid rgba(127, 60, 255, 0.2);
    border-radius: 50%;
    box-shadow:
        0 0 0 75px rgba(116, 49, 255, 0.017),
        0 0 0 150px rgba(116, 49, 255, 0.01);
}

.terms-cta__content,
.terms-cta__actions {
    position: relative;
    z-index: 3;
}

.terms-cta__content {
    max-width: 830px;
}

.terms-cta__eyebrow {
    display: block;
    margin-bottom: 17px;
    color: var(--terms-cyan);
    font-size: 0.62rem;
    font-weight: 700;
    letter-spacing: 0.28em;
    text-transform: uppercase;
}

.terms-cta__title {
    margin: 0;
    color: var(--terms-white);
    font-size: clamp(2.6rem, 4.5vw, 5.7rem);
    font-weight: 650;
    letter-spacing: -0.06em;
    line-height: 0.96;
}

.terms-cta__title span {
    display: block;
    color: transparent;
    font-family: "Allura", "Great Vibes", cursive;
    font-size: 1.08em;
    font-weight: 400;
    letter-spacing: 0;
    line-height: 0.96;
    background: var(--terms-gradient);
    background-clip: text;
    -webkit-background-clip: text;
}

.terms-cta__content p {
    max-width: 680px;
    margin: 24px 0 0;
    color: var(--terms-text);
    font-size: 0.9rem;
    line-height: 1.8;
}

.terms-cta__actions {
    display: grid;
    min-width: 220px;
    gap: 13px;
}

.terms-cta__actions .button {
    width: 100%;
}

.terms-cta__word {
    position: absolute;
    right: -18px;
    bottom: -45px;
    z-index: 0;
    color: rgba(255, 255, 255, 0.018);
    font-size: clamp(6rem, 13vw, 14rem);
    font-weight: 800;
    letter-spacing: -0.07em;
    line-height: 1;
    pointer-events: none;
    user-select: none;
}

@keyframes terms-cta-orb {
    0%,
    100% {
        transform: translate3d(-18px, 0, 0) scale(0.95);
    }

    50% {
        transform: translate3d(30px, 20px, 0) scale(1.08);
    }
}

/* =========================================================
   38. RESPONSIVIDADE DA ÁREA FINAL
========================================================= */

@media (max-width: 930px) {
    .terms-final-grid {
        grid-template-columns: 1fr;
    }

    .terms-final-card {
        min-height: auto;
    }

    .terms-cta__panel {
        grid-template-columns: 1fr;
        gap: 36px;
    }

    .terms-cta__actions {
        width: min(100%, 360px);
    }
}

@media (max-width: 680px) {
    .terms-contact-grid {
        grid-template-columns: 1fr;
    }

    .terms-contact-card {
        min-height: auto;
        padding: 22px;
        grid-template-columns: 41px minmax(0, 1fr) 22px;
        gap: 13px;
    }

    .terms-version {
        padding: 21px;
        grid-template-columns: 34px 1fr;
    }

    .terms-version__status {
        grid-column: 2;
        white-space: normal;
    }

    .terms-cta {
        padding: 80px 0;
    }

    .terms-cta__panel {
        min-height: auto;
        padding: 43px 23px;
        border-radius: 24px;
    }

    .terms-cta__title {
        font-size: clamp(2.5rem, 12vw, 4.1rem);
        line-height: 0.98;
    }

    .terms-cta__title span {
        margin-top: 6px;
        line-height: 0.95;
    }

    .terms-cta__content p {
        font-size: 0.85rem;
        line-height: 1.73;
    }

    .terms-cta__actions {
        width: 100%;
    }
}

@media (max-width: 420px) {
    .terms-contact-card {
        grid-template-columns: 38px minmax(0, 1fr);
    }

    .terms-contact-card__number {
        width: 38px;
        height: 38px;
    }

    .terms-contact-card__arrow {
        position: absolute;
        top: 21px;
        right: 19px;
    }

    .terms-contact-card__content strong {
        padding-right: 5px;
        font-size: 0.72rem;
    }
}

/* =========================================================
   39. RODAPÉ
========================================================= */

.terms-page-body .site-footer {
    position: relative;
    padding: 90px 0 28px;
    overflow: hidden;
    border-top: 1px solid rgba(83, 112, 177, 0.12);
    background:
        linear-gradient(
            180deg,
            rgba(3, 8, 18, 0.2),
            rgba(2, 5, 13, 0.98) 24%
        );
}

.terms-page-body .site-footer::before {
    content: "";
    position: absolute;
    top: -130px;
    left: 50%;
    width: 70%;
    height: 210px;
    border: 1px solid rgba(21, 191, 255, 0.1);
    border-radius: 50%;
    transform: translateX(-50%);
}

.terms-page-body .site-footer__glow {
    position: absolute;
    top: -170px;
    left: 50%;
    width: 60%;
    height: 300px;
    border-radius: 50%;
    opacity: 0.12;
    background: linear-gradient(
        90deg,
        var(--terms-cyan),
        var(--terms-violet)
    );
    filter: blur(95px);
    transform: translateX(-50%);
    pointer-events: none;
}

.terms-page-body .site-footer__container {
    position: relative;
    z-index: 2;
}

.terms-page-body .site-footer__top {
    display: grid;
    padding-bottom: 65px;
    grid-template-columns: 1.45fr 0.75fr 0.9fr 1fr;
    align-items: start;
    gap: clamp(35px, 5vw, 80px);
}

.terms-page-body .site-footer__brand {
    max-width: 390px;
}

.terms-page-body .site-footer__logo {
    display: inline-flex;
    width: 120px;
    margin-bottom: 23px;
}

.terms-page-body .site-footer__logo img {
    width: 100%;
    height: auto;
    object-fit: contain;
    filter: drop-shadow(0 0 17px rgba(50, 112, 255, 0.25));
    transition:
        transform 0.35s ease,
        filter 0.35s ease;
}

.terms-page-body .site-footer__logo:hover img {
    transform: translateY(-4px) scale(1.04);
    filter: drop-shadow(0 0 23px rgba(59, 127, 255, 0.48));
}

.terms-page-body .site-footer__brand > p {
    max-width: 355px;
    margin: 0;
    color: var(--terms-muted);
    font-size: 0.76rem;
    line-height: 1.8;
}

.terms-page-body .site-footer__socials {
    display: flex;
    margin-top: 23px;
    flex-wrap: wrap;
    gap: 9px;
}

.terms-page-body .site-footer__socials a {
    display: grid;
    width: 41px;
    height: 41px;
    place-items: center;
    border: 1px solid rgba(76, 106, 175, 0.22);
    border-radius: 12px;
    background: rgba(6, 14, 31, 0.64);
    color: var(--terms-text);
    font-size: 0.58rem;
    font-weight: 700;
    transition:
        color 0.3s ease,
        border-color 0.3s ease,
        background 0.3s ease,
        transform 0.3s ease,
        box-shadow 0.3s ease;
}

.terms-page-body .site-footer__socials a:hover {
    border-color: rgba(23, 194, 255, 0.42);
    background: rgba(11, 29, 56, 0.9);
    color: var(--terms-cyan);
    box-shadow: 0 12px 25px rgba(0, 0, 0, 0.22);
    transform: translateY(-4px);
}

.terms-page-body .site-footer__column {
    min-width: 0;
}

.terms-page-body .site-footer__column h2 {
    margin: 8px 0 23px;
    color: var(--terms-white);
    font-size: 0.83rem;
    font-weight: 700;
    letter-spacing: 0.04em;
}

.terms-page-body .site-footer__links {
    display: grid;
    margin: 0;
    padding: 0;
    gap: 13px;
    list-style: none;
}

.terms-page-body .site-footer__links a,
.terms-page-body .site-footer__column--contact > a,
.terms-page-body .site-footer__column--contact > span {
    display: inline-flex;
    max-width: 100%;
    color: var(--terms-muted);
    font-size: 0.7rem;
    line-height: 1.6;
    overflow-wrap: anywhere;
    transition:
        color 0.3s ease,
        transform 0.3s ease;
}

.terms-page-body .site-footer__links a:hover,
.terms-page-body .site-footer__links a[aria-current="page"],
.terms-page-body .site-footer__column--contact > a:hover {
    color: var(--terms-cyan);
    transform: translateX(4px);
}

.terms-page-body .site-footer__column--contact {
    display: grid;
    align-content: start;
    gap: 12px;
}

.terms-page-body .site-footer__column--contact h2 {
    margin-bottom: 11px;
}

.terms-page-body .site-footer__availability {
    display: inline-flex;
    width: max-content;
    max-width: 100%;
    margin-top: 10px;
    padding: 10px 12px;
    align-items: center;
    gap: 8px;
    border: 1px solid rgba(67, 226, 168, 0.15);
    border-radius: 999px;
    background: rgba(24, 168, 112, 0.045);
    color: #81caaa;
    font-size: 0.58rem;
    line-height: 1.4;
}

.terms-page-body .site-footer__availability > span {
    width: 6px;
    height: 6px;
    flex: 0 0 6px;
    border-radius: 50%;
    background: var(--terms-green);
    box-shadow: 0 0 9px var(--terms-green);
    animation: terms-status-pulse 2s ease-in-out infinite;
}

.terms-page-body .site-footer__bottom {
    display: flex;
    min-height: 70px;
    padding-top: 24px;
    align-items: center;
    justify-content: space-between;
    gap: 30px;
    border-top: 1px solid rgba(100, 122, 174, 0.12);
}

.terms-page-body .site-footer__bottom p {
    margin: 0;
    color: #6f7b91;
    font-size: 0.62rem;
}

.terms-page-body .site-footer__legal {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: 23px;
}

.terms-page-body .site-footer__legal a {
    color: var(--terms-muted);
    font-size: 0.63rem;
    transition: color 0.3s ease;
}

.terms-page-body .site-footer__legal a:hover,
.terms-page-body .site-footer__legal a[aria-current="page"] {
    color: var(--terms-cyan);
}

/* =========================================================
   40. WHATSAPP FLUTUANTE
========================================================= */

.terms-page-body .floating-whatsapp {
    position: fixed;
    right: 27px;
    bottom: 26px;
    z-index: 4900;
    display: inline-flex;
    min-height: 55px;
    padding: 0 21px;
    align-items: center;
    justify-content: center;
    gap: 11px;
    border: 1px solid rgba(61, 230, 167, 0.42);
    border-radius: 16px;
    background:
        linear-gradient(
            145deg,
            rgba(4, 34, 29, 0.94),
            rgba(3, 18, 20, 0.96)
        );
    color: #58ecb4;
    font-size: 0.7rem;
    font-weight: 700;
    box-shadow:
        0 18px 45px rgba(0, 0, 0, 0.35),
        inset 0 1px 0 rgba(255, 255, 255, 0.04);
    backdrop-filter: blur(15px);
    transition:
        transform 0.35s ease,
        border-color 0.35s ease,
        box-shadow 0.35s ease;
}

.terms-page-body .floating-whatsapp:hover {
    border-color: rgba(75, 255, 184, 0.72);
    box-shadow:
        0 22px 55px rgba(0, 0, 0, 0.42),
        0 0 27px rgba(38, 222, 151, 0.14);
    transform: translateY(-5px);
}

.terms-page-body .floating-whatsapp svg {
    flex: 0 0 22px;
}

.terms-page-body .floating-whatsapp__pulse {
    position: absolute;
    top: -5px;
    right: -5px;
    width: 12px;
    height: 12px;
    border: 2px solid rgba(3, 24, 20, 0.92);
    border-radius: 50%;
    background: var(--terms-green);
    box-shadow: 0 0 10px var(--terms-green);
}

.terms-page-body .floating-whatsapp__pulse::before {
    content: "";
    position: absolute;
    inset: -5px;
    border: 1px solid rgba(67, 242, 173, 0.55);
    border-radius: 50%;
    animation: terms-whatsapp-pulse 2s ease-out infinite;
}

@keyframes terms-whatsapp-pulse {
    0% {
        opacity: 0.9;
        transform: scale(0.55);
    }

    100% {
        opacity: 0;
        transform: scale(1.8);
    }
}

/* =========================================================
   41. VOLTAR AO TOPO
========================================================= */

.terms-page-body .back-to-top {
    position: fixed;
    right: 30px;
    bottom: 94px;
    z-index: 4890;
    display: grid;
    width: 49px;
    height: 49px;
    padding: 0;
    place-items: center;
    border: 1px solid rgba(65, 130, 246, 0.35);
    border-radius: 15px;
    background: rgba(5, 14, 31, 0.88);
    color: var(--terms-cyan);
    cursor: pointer;
    visibility: hidden;
    opacity: 0;
    box-shadow:
        0 17px 38px rgba(0, 0, 0, 0.3),
        inset 0 1px 0 rgba(255, 255, 255, 0.035);
    backdrop-filter: blur(14px);
    transform: translateY(18px);
    transition:
        opacity 0.35s ease,
        visibility 0.35s ease,
        transform 0.35s ease,
        border-color 0.3s ease,
        background 0.3s ease;
}

.terms-page-body .back-to-top.is-visible,
.terms-page-body .back-to-top.visible,
.terms-page-body .back-to-top.show {
    visibility: visible;
    opacity: 1;
    transform: translateY(0);
}

.terms-page-body .back-to-top:hover {
    border-color: rgba(23, 199, 255, 0.68);
    background: rgba(9, 28, 55, 0.96);
    transform: translateY(-4px);
}

.terms-page-body .back-to-top span {
    font-size: 1.05rem;
    animation: terms-arrow-up 1.7s ease-in-out infinite;
}

@keyframes terms-arrow-up {
    0%,
    100% {
        transform: translateY(2px);
    }

    50% {
        transform: translateY(-3px);
    }
}

/* =========================================================
   42. CURSOR PERSONALIZADO
========================================================= */

.terms-page-body .custom-cursor,
.terms-page-body .cursor {
    position: fixed;
    top: 0;
    left: 0;
    z-index: 10020;
    width: 34px;
    height: 34px;
    border: 1px solid rgba(24, 190, 255, 0.76);
    border-radius: 50%;
    opacity: 0;
    pointer-events: none;
    mix-blend-mode: screen;
    transform: translate(-50%, -50%);
    transition:
        width 0.25s ease,
        height 0.25s ease,
        opacity 0.25s ease,
        border-color 0.25s ease,
        background 0.25s ease;
}

.terms-page-body .custom-cursor.is-visible,
.terms-page-body .cursor.is-visible {
    opacity: 0.75;
}

.terms-page-body .custom-cursor.is-hovering,
.terms-page-body .cursor.is-hovering {
    width: 53px;
    height: 53px;
    border-color: rgba(137, 71, 255, 0.8);
    background: rgba(84, 72, 255, 0.08);
}

/* =========================================================
   43. MENSAGEM SEM JAVASCRIPT
========================================================= */

.terms-page-body .noscript-message {
    position: fixed;
    right: 18px;
    bottom: 18px;
    left: 18px;
    z-index: 11000;
    padding: 15px 18px;
    border: 1px solid rgba(255, 184, 77, 0.4);
    border-radius: 12px;
    background: #181108;
    color: #ffd48c;
    font-size: 0.8rem;
    text-align: center;
}

/* =========================================================
   44. RESPONSIVIDADE DO RODAPÉ
========================================================= */

@media (max-width: 1080px) {
    .terms-page-body .site-footer__top {
        grid-template-columns: 1.3fr repeat(3, 1fr);
        gap: 35px;
    }
}

@media (max-width: 860px) {
    .terms-page-body .site-footer {
        padding-top: 75px;
    }

    .terms-page-body .site-footer__top {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 48px 32px;
    }

    .terms-page-body .site-footer__brand {
        max-width: none;
        grid-column: 1 / -1;
    }
}

@media (max-width: 580px) {
    .terms-page-body .site-footer {
        padding: 68px 0 20px;
    }

    .terms-page-body .site-footer__top {
        padding-bottom: 45px;
        grid-template-columns: 1fr;
        gap: 38px;
    }

    .terms-page-body .site-footer__brand {
        grid-column: auto;
        text-align: center;
    }

    .terms-page-body .site-footer__logo {
        margin-inline: auto;
    }

    .terms-page-body .site-footer__brand > p {
        margin-inline: auto;
    }

    .terms-page-body .site-footer__socials {
        justify-content: center;
    }

    .terms-page-body .site-footer__column {
        text-align: center;
    }

    .terms-page-body .site-footer__links {
        justify-items: center;
    }

    .terms-page-body .site-footer__column--contact {
        justify-items: center;
    }

    .terms-page-body .site-footer__availability {
        justify-self: center;
    }

    .terms-page-body .site-footer__bottom {
        min-height: auto;
        padding-top: 27px;
        flex-direction: column;
        text-align: center;
    }

    .terms-page-body .site-footer__legal {
        justify-content: center;
        gap: 15px;
    }

    .terms-page-body .floating-whatsapp {
        right: 16px;
        bottom: 16px;
        width: 57px;
        height: 57px;
        min-height: 57px;
        padding: 0;
        border-radius: 17px;
    }

    .terms-page-body .floating-whatsapp > span:last-child {
        display: none;
    }

    .terms-page-body .back-to-top {
        right: 20px;
        bottom: 87px;
        width: 47px;
        height: 47px;
    }
}

/* =========================================================
   45. ECRÃ MUITO PEQUENO
========================================================= */

@media (max-width: 360px) {
    .terms-page-body .container {
        width: calc(100% - 26px);
    }

    .terms-page-body .button {
        min-height: 51px;
        padding-inline: 17px;
        font-size: 0.74rem;
    }

    .terms-document__title {
        font-size: 2.55rem;
    }

    .terms-article__title {
        font-size: 1.9rem;
    }

    .terms-contact-card,
    .terms-info-card,
    .terms-final-card,
    .terms-scope-card,
    .terms-service-card {
        padding-inline: 18px;
    }
}

/* =========================================================
   46. REDUÇÃO DE MOVIMENTO
========================================================= */

@media (prefers-reduced-motion: reduce) {
    html {
        scroll-behavior: auto;
    }

    .terms-page-body *,
    .terms-page-body *::before,
    .terms-page-body *::after {
        scroll-behavior: auto !important;
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.01ms !important;
    }

    .terms-page-body [data-reveal],
    .terms-page-body .reveal-up {
        opacity: 1;
        filter: none;
        transform: none;
    }
}

/* =========================================================
   47. CORREÇÕES FINAIS CONTRA CORTES
========================================================= */

.terms-page-body main,
.terms-page-body section,
.terms-page-body .container,
.terms-page-body .terms-content__layout,
.terms-page-body .terms-document,
.terms-page-body .terms-article__content {
    min-width: 0;
}

.terms-page-body h1,
.terms-page-body h2,
.terms-page-body h3,
.terms-page-body p,
.terms-page-body a,
.terms-page-body strong,
.terms-page-body span {
    overflow-wrap: break-word;
}

.terms-page-body .terms-browser,
.terms-page-body .terms-cta__panel,
.terms-page-body .terms-contact-card,
.terms-page-body .terms-version {
    max-width: 100%;
}

/*
   Os balões do quadro 3D podem ultrapassar apenas no desktop,
   mas nunca serão cortados pelo contentor visual.
*/
.terms-page-body .terms-hero__visual,
.terms-page-body .terms-browser {
    overflow: visible;
}

@media (max-width: 720px) {
    .terms-page-body .terms-hero__visual {
        padding-inline: 0;
    }

    .terms-page-body .terms-browser {
        width: 100%;
    }

    .terms-page-body .terms-document-preview__clause strong,
    .terms-page-body .terms-contact-card__content strong {
        word-break: break-word;
    }
}
























/* =========================================================
   CORREÇÃO REAL — COMPATIBILIDADE COM O TERMOS.HTML
   PARTE 1 — TIPOGRAFIA, CURSOR E HERO
========================================================= */

/* =========================================================
   1. TIPOGRAFIA GERAL
========================================================= */

body.terms-page-body {
    font-family: "Manrope", "Inter", sans-serif !important;
    font-size: 16px;
    line-height: 1.6;
}

.terms-page-body p,
.terms-page-body a,
.terms-page-body span,
.terms-page-body strong,
.terms-page-body small,
.terms-page-body button {
    font-family: "Manrope", "Inter", sans-serif;
}

.terms-page-body h1,
.terms-page-body h2,
.terms-page-body h3 {
    font-family: "Space Grotesk", "Manrope", sans-serif;
}

/* =========================================================
   2. REMOVER COMPLETAMENTE O CURSOR PERSONALIZADO
========================================================= */

.terms-page-body .custom-cursor,
.terms-page-body .custom-cursor--dot,
.terms-page-body .custom-cursor--outline,
.terms-page-body .cursor,
.terms-page-body #cursor-dot,
.terms-page-body #cursor-outline,
.terms-page-body [data-cursor] {
    display: none !important;
    width: 0 !important;
    height: 0 !important;
    visibility: hidden !important;
    opacity: 0 !important;
    pointer-events: none !important;
}

.terms-page-body,
.terms-page-body * {
    cursor: default;
}

.terms-page-body a,
.terms-page-body button,
.terms-page-body [role="button"] {
    cursor: pointer;
}

/* =========================================================
   3. HERO EM DUAS COLUNAS
========================================================= */

.terms-page-body .terms-hero {
    display: flex !important;
    min-height: 100svh !important;
    padding: 125px 0 70px !important;
    overflow: hidden;
    align-items: center;
}

.terms-page-body .terms-hero__container {
    position: relative;
    z-index: 5;
    display: grid !important;
    width: min(100% - 48px, 1520px);
    margin-inline: auto;
    grid-template-columns:
        minmax(420px, 0.92fr)
        minmax(560px, 1.08fr) !important;
    align-items: center !important;
    gap: clamp(55px, 6vw, 105px) !important;
}

.terms-page-body .terms-hero__content {
    position: relative;
    z-index: 4;
    width: 100%;
    max-width: 700px;
    min-width: 0;
    margin: 0 !important;
    padding: 0 !important;
}

.terms-page-body .section-eyebrow {
    display: inline-flex;
    margin: 0 0 22px;
    align-items: center;
    gap: 12px;
    color: var(--terms-cyan);
    font-size: 0.64rem;
    font-weight: 700;
    letter-spacing: 0.3em;
    line-height: 1.5;
    text-transform: uppercase;
}

.terms-page-body .section-eyebrow::before {
    content: "";
    width: 30px;
    height: 1px;
    background: var(--terms-cyan);
    box-shadow: 0 0 10px rgba(22, 199, 255, 0.65);
}

/* =========================================================
   4. TÍTULO DO HERO
========================================================= */

.terms-page-body .terms-hero__title {
    display: block !important;
    width: 100%;
    max-width: 700px;
    margin: 0 !important;
    overflow: visible !important;
    color: var(--terms-white);
    line-height: 1;
}

.terms-page-body .terms-hero__title-main {
    display: block !important;
    margin: 0 !important;
    color: var(--terms-white) !important;
    font-family: "Space Grotesk", "Manrope", sans-serif !important;
    font-size: clamp(3.4rem, 4.75vw, 5.8rem) !important;
    font-weight: 650 !important;
    letter-spacing: -0.065em !important;
    line-height: 0.92 !important;
}

.terms-page-body .terms-hero__title-script {
    display: block !important;
    width: max-content;
    max-width: 100%;
    margin: 5px 0 2px 22px !important;
    padding: 0.08em 0.08em 0.15em !important;
    color: transparent !important;
    font-family: "Allura", "Great Vibes", cursive !important;
    font-size: clamp(4rem, 5.6vw, 6.8rem) !important;
    font-weight: 400 !important;
    letter-spacing: 0 !important;
    line-height: 0.88 !important;
    background: var(--terms-gradient);
    background-clip: text;
    -webkit-background-clip: text;
}

.terms-page-body .terms-hero__title-editorial {
    display: block !important;
    margin: 0 !important;
    color: var(--terms-white) !important;
    font-family: "Bodoni Moda", "Playfair Display", Georgia, serif !important;
    font-size: clamp(3.1rem, 4.4vw, 5.3rem) !important;
    font-weight: 400 !important;
    letter-spacing: -0.055em !important;
    line-height: 0.96 !important;
}

.terms-page-body .terms-hero__description {
    max-width: 620px;
    margin: 27px 0 0 !important;
    color: var(--terms-text);
    font-size: 0.94rem;
    line-height: 1.8;
}

.terms-page-body .terms-hero__actions {
    display: flex;
    margin-top: 30px !important;
    flex-wrap: wrap;
    gap: 13px;
}

/* O HTML utiliza button--secondary. */
.terms-page-body .button--secondary {
    border: 1px solid rgba(76, 119, 217, 0.34);
    background: rgba(5, 12, 28, 0.72);
    color: var(--terms-white);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.03);
    backdrop-filter: blur(12px);
}

.terms-page-body .button--secondary:hover {
    border-color: rgba(22, 199, 255, 0.55);
    background: rgba(10, 25, 50, 0.9);
}

/* =========================================================
   5. METADADOS
========================================================= */

.terms-page-body .terms-hero__metadata {
    display: grid !important;
    width: 100%;
    max-width: 630px;
    margin-top: 33px !important;
    padding-top: 21px;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 18px;
    border-top: 1px solid rgba(102, 128, 188, 0.15);
}

.terms-page-body .terms-hero__metadata > div {
    position: relative;
    min-width: 0;
}

.terms-page-body .terms-hero__metadata > div:not(:last-child)::after {
    content: "";
    position: absolute;
    top: 2px;
    right: 0;
    width: 1px;
    height: 35px;
    background: rgba(105, 131, 190, 0.16);
}

.terms-page-body .terms-hero__metadata strong {
    display: block;
    margin-bottom: 5px;
    color: var(--terms-white);
    font-size: 0.72rem;
}

.terms-page-body .terms-hero__metadata span {
    display: block;
    color: var(--terms-muted);
    font-size: 0.65rem;
}

/* =========================================================
   6. VISUAL AO LADO DIREITO
========================================================= */

.terms-page-body .terms-hero__visual {
    position: relative !important;
    z-index: 4;
    display: block !important;
    width: 100% !important;
    max-width: 760px !important;
    min-width: 0;
    margin: 0 !important;
    justify-self: end !important;
    align-self: center !important;
    overflow: visible !important;
    perspective: 1500px;
    translate: none !important;
}

.terms-page-body .terms-browser {
    position: relative;
    display: block;
    width: 100% !important;
    max-width: 720px !important;
    min-height: 555px;
    margin: 0 0 0 auto !important;
    overflow: visible !important;
    border: 0;
    border-radius: 28px;
    background: transparent;
    transform: rotateY(-4deg) rotateX(1deg);
    transform-style: preserve-3d;
}

.terms-page-body .terms-browser__window {
    position: relative;
    z-index: 2;
    min-height: 535px;
    overflow: hidden;
    border: 1px solid rgba(73, 115, 218, 0.38);
    border-radius: 28px;
    background:
        linear-gradient(
            145deg,
            rgba(11, 25, 48, 0.97),
            rgba(3, 8, 20, 0.99)
        );
    box-shadow:
        -28px 35px 90px rgba(0, 0, 0, 0.5),
        20px 25px 75px rgba(93, 42, 255, 0.15),
        inset 0 1px 0 rgba(255, 255, 255, 0.05);
}

/* =========================================================
   7. BARRA DO NAVEGADOR
========================================================= */

.terms-page-body .terms-browser__toolbar {
    display: flex;
    min-height: 62px;
    padding: 0 20px;
    align-items: center;
    gap: 15px;
    border-bottom: 1px solid rgba(92, 120, 184, 0.16);
    background: rgba(14, 27, 47, 0.86);
}

.terms-page-body .terms-browser__controls {
    display: flex;
    flex: 0 0 auto;
    gap: 7px;
}

.terms-page-body .terms-browser__controls span {
    width: 8px;
    height: 8px;
    border-radius: 50%;
}

.terms-page-body .terms-browser__controls span:nth-child(1) {
    background: #ff6371;
}

.terms-page-body .terms-browser__controls span:nth-child(2) {
    background: #ffc65b;
}

.terms-page-body .terms-browser__controls span:nth-child(3) {
    background: #4ee1a5;
}

.terms-page-body .terms-browser__address {
    display: flex;
    min-width: 0;
    height: 34px;
    padding-inline: 15px;
    flex: 1;
    align-items: center;
    gap: 7px;
    overflow: hidden;
    border: 1px solid rgba(103, 130, 188, 0.09);
    border-radius: 999px;
    background: rgba(28, 42, 65, 0.7);
    color: #71809a;
    font-size: 0.62rem;
    white-space: nowrap;
}

.terms-page-body .terms-browser__options {
    flex: 0 0 auto;
    color: #64718a;
    font-size: 0.72rem;
    letter-spacing: 0.16em;
}

/* =========================================================
   8. CONTEÚDO INTERNO DO QUADRO
========================================================= */

.terms-page-body .terms-browser__page {
    position: relative;
    min-height: 473px;
    padding: 30px 34px 34px;
    overflow: hidden;
    background:
        radial-gradient(
            circle at 88% 84%,
            rgba(111, 51, 255, 0.14),
            transparent 36%
        ),
        rgba(2, 7, 18, 0.78);
}

.terms-page-body .terms-browser__page-header {
    display: flex;
    margin-bottom: 19px;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    color: var(--terms-muted);
    font-family: monospace;
    font-size: 0.58rem;
    letter-spacing: 0.12em;
}

.terms-page-body .terms-browser__page-header span,
.terms-page-body .terms-browser__page-header small {
    font-family: monospace;
}

.terms-page-body .terms-browser__document {
    position: relative;
    padding: 26px;
    border: 1px solid rgba(75, 110, 190, 0.2);
    border-radius: 19px;
    background:
        linear-gradient(
            145deg,
            rgba(8, 18, 37, 0.94),
            rgba(3, 8, 20, 0.94)
        );
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.035),
        0 22px 50px rgba(0, 0, 0, 0.24);
}

.terms-page-body .terms-browser__document-top {
    display: grid;
    grid-template-columns: 52px minmax(0, 1fr);
    align-items: start;
    gap: 18px;
}

.terms-page-body .terms-browser__document-symbol {
    display: grid;
    width: 50px;
    height: 58px;
    place-items: center;
    color: var(--terms-cyan);
    filter: drop-shadow(0 0 12px rgba(22, 199, 255, 0.22));
}

.terms-page-body .terms-browser__document-copy {
    min-width: 0;
}

.terms-page-body .terms-browser__document-copy > span {
    display: block;
    margin-bottom: 7px;
    color: var(--terms-cyan);
    font-size: 0.54rem;
    font-weight: 700;
    letter-spacing: 0.17em;
}

.terms-page-body .terms-browser__document-copy strong {
    display: block;
    color: var(--terms-white);
    font-size: 1.03rem;
    line-height: 1.3;
}

.terms-page-body .terms-browser__document-copy p {
    margin: 8px 0 0;
    color: var(--terms-muted);
    font-size: 0.64rem;
    line-height: 1.55;
}

.terms-page-body .terms-browser__progress {
    margin-top: 23px;
}

.terms-page-body .terms-browser__progress-top {
    display: flex;
    margin-bottom: 8px;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    color: var(--terms-muted);
    font-size: 0.57rem;
}

.terms-page-body .terms-browser__progress-top strong {
    color: var(--terms-white);
    font-size: 0.61rem;
}

.terms-page-body .terms-browser__progress-bar {
    width: 100%;
    height: 3px;
    overflow: hidden;
    border-radius: 99px;
    background: rgba(255, 255, 255, 0.08);
}

.terms-page-body .terms-browser__progress-bar span {
    display: block;
    width: 82%;
    height: 100%;
    border-radius: inherit;
    background: var(--terms-gradient);
    box-shadow: 0 0 12px rgba(35, 164, 255, 0.6);
    animation: corrected-terms-progress 3.4s ease-in-out infinite;
}

.terms-page-body .terms-browser__clauses {
    display: grid;
    margin-top: 21px;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 9px;
}

.terms-page-body .terms-browser__clause {
    min-width: 0;
    padding: 13px;
    border: 1px solid rgba(74, 108, 182, 0.16);
    border-radius: 12px;
    background: rgba(11, 23, 45, 0.66);
}

.terms-page-body .terms-browser__clause span {
    display: block;
    margin-bottom: 8px;
    color: var(--terms-cyan);
    font-family: monospace;
    font-size: 0.55rem;
}

.terms-page-body .terms-browser__clause strong {
    display: block;
    color: var(--terms-white);
    font-size: 0.66rem;
}

.terms-page-body .terms-browser__clause small {
    display: block;
    margin-top: 5px;
    color: var(--terms-muted);
    font-size: 0.5rem;
    line-height: 1.45;
}

.terms-page-body .terms-browser__signature {
    display: flex;
    margin-top: 21px;
    padding-top: 16px;
    align-items: flex-end;
    justify-content: space-between;
    gap: 20px;
    border-top: 1px solid rgba(91, 117, 177, 0.13);
}

.terms-page-body .terms-browser__signature > div:first-child span {
    display: block;
    color: var(--terms-muted);
    font-size: 0.48rem;
    letter-spacing: 0.16em;
}

.terms-page-body .terms-browser__signature > div:first-child strong {
    display: block;
    margin-top: 5px;
    color: transparent;
    font-family: "Allura", cursive;
    font-size: 1.3rem;
    font-weight: 400;
    background: var(--terms-gradient);
    background-clip: text;
    -webkit-background-clip: text;
}

.terms-page-body .terms-browser__signature-line {
    min-width: 105px;
    text-align: right;
}

.terms-page-body .terms-browser__signature-line > span {
    display: block;
    height: 1px;
    margin-bottom: 5px;
    background: rgba(91, 119, 183, 0.23);
}

.terms-page-body .terms-browser__signature-line small {
    color: var(--terms-green);
    font-size: 0.46rem;
    letter-spacing: 0.12em;
}

/* =========================================================
   9. BALÕES FLUTUANTES CORRETOS
========================================================= */

.terms-page-body .terms-browser__floating {
    position: absolute;
    z-index: 8;
    min-width: 145px;
    max-width: 190px;
    padding: 17px 18px;
    border: 1px solid rgba(70, 117, 220, 0.4);
    border-radius: 16px;
    background:
        linear-gradient(
            145deg,
            rgba(8, 19, 41, 0.98),
            rgba(4, 8, 22, 0.98)
        );
    box-shadow:
        0 22px 48px rgba(0, 0, 0, 0.42),
        inset 0 1px 0 rgba(255, 255, 255, 0.045);
    backdrop-filter: blur(17px);
}

.terms-page-body .terms-browser__floating strong {
    display: block;
    color: var(--terms-white);
    font-size: 0.74rem;
}

.terms-page-body .terms-browser__floating small {
    display: block;
    margin-top: 5px;
    color: var(--terms-muted);
    font-size: 0.55rem;
    line-height: 1.45;
}

.terms-page-body .terms-browser__floating--scope {
    top: 100px;
    left: -48px;
    display: flex;
    align-items: center;
    gap: 13px;
    animation: corrected-floating-card 5s ease-in-out infinite;
}

.terms-page-body .terms-browser__floating--scope > span {
    color: var(--terms-cyan);
    font-family: monospace;
    font-size: 0.62rem;
}

.terms-page-body .terms-browser__floating--agreement {
    top: 260px;
    right: -43px;
    animation: corrected-floating-card 5.8s ease-in-out infinite reverse;
}

.terms-page-body .terms-browser__floating--secure {
    bottom: 25px;
    left: -25px;
    display: flex;
    align-items: center;
    gap: 11px;
    animation: corrected-floating-card 5.4s ease-in-out infinite -2s;
}

.terms-page-body .terms-browser__secure-dot {
    width: 7px;
    height: 7px;
    flex: 0 0 7px;
    border-radius: 50%;
    background: var(--terms-green);
    box-shadow: 0 0 10px var(--terms-green);
}

.terms-page-body .terms-browser__floor-light {
    position: absolute;
    right: 8%;
    bottom: -34px;
    left: 8%;
    z-index: -1;
    height: 65px;
    border-radius: 50%;
    opacity: 0.45;
    background: linear-gradient(
        90deg,
        rgba(22, 199, 255, 0.32),
        rgba(124, 61, 255, 0.38)
    );
    filter: blur(30px);
}

@keyframes corrected-terms-progress {
    0%,
    100% {
        width: 70%;
    }

    50% {
        width: 100%;
    }
}

@keyframes corrected-floating-card {
    0%,
    100% {
        transform: translateY(-5px);
    }

    50% {
        transform: translateY(8px);
    }
}

/* =========================================================
   10. EFEITOS DO FUNDO DO HERO
========================================================= */

.terms-page-body .terms-hero__effects {
    position: absolute;
    inset: 0;
    z-index: -3;
    overflow: hidden;
    pointer-events: none;
}

.terms-page-body .terms-hero__glow {
    position: absolute;
    width: 520px;
    height: 520px;
    top: 16%;
    right: 2%;
    border-radius: 50%;
    opacity: 0.16;
    background: linear-gradient(
        135deg,
        var(--terms-cyan),
        var(--terms-violet)
    );
    filter: blur(90px);
}

.terms-page-body .terms-hero__ring {
    position: absolute;
    border: 1px solid rgba(80, 90, 255, 0.14);
    border-radius: 50%;
}

.terms-page-body .terms-hero__ring--one {
    width: 620px;
    height: 620px;
    top: 4%;
    right: -170px;
}

.terms-page-body .terms-hero__ring--two {
    width: 420px;
    height: 420px;
    top: 15%;
    right: -70px;
}

.terms-page-body .terms-hero__beam {
    position: absolute;
    top: 25%;
    left: -20%;
    width: 42%;
    height: 180px;
    opacity: 0.14;
    background: linear-gradient(
        90deg,
        transparent,
        var(--terms-cyan),
        transparent
    );
    filter: blur(60px);
    transform: rotate(-10deg);
    animation: corrected-hero-beam 8s ease-in-out infinite;
}

@keyframes corrected-hero-beam {
    0%,
    100% {
        transform: translateX(-15%) rotate(-10deg);
    }

    50% {
        transform: translateX(170%) rotate(-6deg);
    }
}

/* =========================================================
   11. HERO RESPONSIVO
========================================================= */

@media (max-width: 1180px) {
    .terms-page-body .terms-hero__container {
        grid-template-columns:
            minmax(380px, 0.9fr)
            minmax(500px, 1.1fr) !important;
        gap: 45px !important;
    }

    .terms-page-body .terms-browser__floating--scope {
        left: -18px;
    }

    .terms-page-body .terms-browser__floating--agreement {
        right: -15px;
    }
}

@media (max-width: 980px) {
    .terms-page-body .terms-hero {
        min-height: auto !important;
        padding: 120px 0 100px !important;
    }

    .terms-page-body .terms-hero__container {
        grid-template-columns: 1fr !important;
        gap: 70px !important;
    }

    .terms-page-body .terms-hero__content {
        max-width: 760px;
        margin-inline: auto !important;
        text-align: center;
    }

    .terms-page-body .section-eyebrow {
        justify-content: center;
    }

    .terms-page-body .terms-hero__title {
        margin-inline: auto !important;
    }

    .terms-page-body .terms-hero__title-script {
        width: auto;
        margin-left: 0 !important;
    }

    .terms-page-body .terms-hero__description {
        margin-inline: auto !important;
    }

    .terms-page-body .terms-hero__actions {
        justify-content: center;
    }

    .terms-page-body .terms-hero__metadata {
        margin-inline: auto;
        text-align: left;
    }

    .terms-page-body .terms-hero__visual {
        width: min(100%, 730px) !important;
        margin-inline: auto !important;
        justify-self: center !important;
    }

    .terms-page-body .terms-browser {
        margin-inline: auto !important;
        transform: none;
    }
}

@media (max-width: 680px) {
    .terms-page-body .terms-hero {
        padding: 105px 0 75px !important;
    }

    .terms-page-body .terms-hero__container {
        width: calc(100% - 34px);
        gap: 54px !important;
    }

    .terms-page-body .terms-hero__title-main {
        font-size: clamp(2.8rem, 14vw, 4.2rem) !important;
    }

    .terms-page-body .terms-hero__title-script {
        font-size: clamp(3.4rem, 17vw, 5rem) !important;
        line-height: 0.92 !important;
    }

    .terms-page-body .terms-hero__title-editorial {
        font-size: clamp(2.4rem, 12vw, 3.6rem) !important;
    }

    .terms-page-body .terms-hero__actions {
        display: grid;
        grid-template-columns: 1fr;
    }

    .terms-page-body .terms-hero__actions .button {
        width: 100%;
    }

    .terms-page-body .terms-hero__metadata {
        grid-template-columns: 1fr;
        gap: 13px;
        text-align: center;
    }

    .terms-page-body .terms-hero__metadata > div {
        padding-bottom: 13px;
        border-bottom: 1px solid rgba(102, 128, 188, 0.12);
    }

    .terms-page-body .terms-hero__metadata > div::after {
        display: none;
    }

    .terms-page-body .terms-browser {
        min-height: auto;
    }

    .terms-page-body .terms-browser__window {
        min-height: auto;
        border-radius: 21px;
    }

    .terms-page-body .terms-browser__toolbar {
        min-height: 53px;
        padding-inline: 14px;
    }

    .terms-page-body .terms-browser__page {
        min-height: auto;
        padding: 19px;
    }

    .terms-page-body .terms-browser__document {
        padding: 20px 16px;
    }

    .terms-page-body .terms-browser__document-top {
        grid-template-columns: 42px minmax(0, 1fr);
        gap: 12px;
    }

    .terms-page-body .terms-browser__document-symbol {
        width: 40px;
    }

    .terms-page-body .terms-browser__clauses {
        grid-template-columns: 1fr;
    }

    .terms-page-body .terms-browser__floating {
        position: relative;
        inset: auto !important;
        display: none;
    }

    .terms-page-body .terms-browser__signature {
        align-items: flex-start;
        flex-direction: column;
    }

    .terms-page-body .terms-browser__signature-line {
        width: 100%;
    }
}

/* =========================================================
   CORREÇÃO REAL — COMPATIBILIDADE COM O TERMOS.HTML
   PARTE 2 — MENU LATERAL, TÍTULOS E ARTIGOS
========================================================= */

/* =========================================================
   12. ESTRUTURA PRINCIPAL DOS TERMOS
========================================================= */

.terms-page-body .terms-content {
    position: relative;
    padding: clamp(100px, 10vw, 160px) 0;
    overflow: visible;
}

.terms-page-body .terms-content__layout {
    display: grid !important;
    width: min(100% - 48px, 1520px);
    margin-inline: auto;
    grid-template-columns: 275px minmax(0, 1fr) !important;
    align-items: start;
    gap: clamp(60px, 7vw, 115px) !important;
}

.terms-page-body .terms-document {
    width: 100%;
    max-width: 980px;
    min-width: 0;
}

/* =========================================================
   13. NAVEGAÇÃO LATERAL REAL DO HTML
========================================================= */

.terms-page-body .terms-sidebar {
    position: sticky !important;
    top: 120px !important;
    z-index: 20;
    width: 100%;
    padding: 0 !important;
    overflow: visible !important;
    border: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
}

.terms-page-body .terms-sidebar__inner {
    position: relative;
    width: 100%;
    padding: 25px 21px;
    overflow: hidden;
    border: 1px solid rgba(74, 111, 199, 0.25);
    border-radius: 22px;
    background:
        linear-gradient(
            145deg,
            rgba(9, 21, 43, 0.88),
            rgba(3, 8, 20, 0.95)
        );
    box-shadow:
        0 28px 65px rgba(0, 0, 0, 0.28),
        inset 0 1px 0 rgba(255, 255, 255, 0.04);
    backdrop-filter: blur(18px);
}

.terms-page-body .terms-sidebar__inner::before {
    content: "";
    position: absolute;
    top: -70px;
    left: -50px;
    width: 150px;
    height: 150px;
    border-radius: 50%;
    opacity: 0.18;
    background: var(--terms-cyan);
    filter: blur(45px);
}

.terms-page-body .terms-sidebar__label {
    position: relative;
    z-index: 2;
    display: block;
    margin-bottom: 17px;
    color: var(--terms-muted);
    font-size: 0.56rem;
    font-weight: 700;
    letter-spacing: 0.25em;
    text-transform: uppercase;
}

.terms-page-body .terms-sidebar__navigation {
    position: relative;
    z-index: 2;
    display: grid !important;
    width: 100%;
    gap: 3px;
}

.terms-page-body .terms-sidebar__navigation > a {
    position: relative;
    display: grid !important;
    width: 100%;
    min-height: 40px;
    padding: 9px 8px !important;
    grid-template-columns: 30px minmax(0, 1fr);
    align-items: center;
    gap: 7px;
    border: 0;
    border-radius: 9px;
    background: transparent;
    color: var(--terms-muted);
    font-size: 0.66rem;
    line-height: 1.35;
    white-space: normal;
    transition:
        padding-left 0.3s ease,
        color 0.3s ease,
        background 0.3s ease;
}

.terms-page-body .terms-sidebar__navigation > a > span {
    color: rgba(22, 199, 255, 0.72);
    font-family: monospace;
    font-size: 0.57rem;
}

.terms-page-body .terms-sidebar__navigation > a::before {
    content: "";
    position: absolute;
    top: 50%;
    left: -21px;
    width: 2px;
    height: 0;
    border-radius: 99px;
    background: var(--terms-gradient);
    box-shadow: 0 0 10px rgba(22, 199, 255, 0.6);
    transform: translateY(-50%);
    transition: height 0.3s ease;
}

.terms-page-body .terms-sidebar__navigation > a:hover,
.terms-page-body .terms-sidebar__navigation > a.is-active {
    padding-left: 13px !important;
    color: var(--terms-white);
    background: linear-gradient(
        90deg,
        rgba(17, 166, 255, 0.1),
        transparent
    );
}

.terms-page-body .terms-sidebar__navigation > a.is-active::before {
    height: 23px;
}

.terms-page-body .terms-sidebar__help {
    position: relative;
    z-index: 2;
    display: grid;
    margin-top: 20px;
    padding-top: 18px;
    gap: 8px;
    border-top: 1px solid rgba(94, 119, 178, 0.14);
}

.terms-page-body .terms-sidebar__help > span {
    color: var(--terms-muted);
    font-size: 0.59rem;
}

.terms-page-body .terms-sidebar__help > a {
    display: flex;
    min-width: 0;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    color: var(--terms-white);
    font-size: 0.6rem;
    overflow-wrap: anywhere;
    transition: color 0.3s ease;
}

.terms-page-body .terms-sidebar__help > a:hover {
    color: var(--terms-cyan);
}

.terms-page-body .terms-sidebar__help i {
    flex: 0 0 auto;
    color: var(--terms-cyan);
    font-style: normal;
}

/* =========================================================
   14. CABEÇALHO DO DOCUMENTO
========================================================= */

.terms-page-body .terms-document__header {
    position: relative;
    margin: 0 0 80px;
    padding: 0 0 48px;
    border-bottom: 1px solid rgba(103, 128, 187, 0.15);
}

.terms-page-body .terms-document__header::after {
    content: "";
    position: absolute;
    bottom: -1px;
    left: 0;
    width: 125px;
    height: 1px;
    background: var(--terms-gradient);
    box-shadow: 0 0 13px rgba(34, 165, 255, 0.65);
}

.terms-page-body .terms-heading {
    display: block;
    width: 100%;
    max-width: 900px;
    margin: 0 !important;
    overflow: visible;
}

.terms-page-body .terms-heading > span {
    display: block;
}

.terms-page-body .terms-heading__main {
    color: var(--terms-white);
    font-family: "Space Grotesk", "Manrope", sans-serif !important;
    font-size: clamp(3rem, 4.7vw, 5.7rem);
    font-weight: 650;
    letter-spacing: -0.065em;
    line-height: 0.94;
}

.terms-page-body .terms-heading__script {
    width: max-content;
    max-width: 100%;
    margin: 1px 0 2px 18px;
    padding: 0.06em 0.08em 0.13em;
    color: transparent;
    font-family: "Allura", "Great Vibes", cursive !important;
    font-size: clamp(3.8rem, 5.5vw, 6.5rem);
    font-weight: 400;
    letter-spacing: 0;
    line-height: 0.9;
    background: var(--terms-gradient);
    background-clip: text;
    -webkit-background-clip: text;
}

.terms-page-body .terms-heading__editorial {
    color: var(--terms-white);
    font-family: "Bodoni Moda", "Playfair Display", Georgia, serif !important;
    font-size: clamp(2.8rem, 4.3vw, 5.1rem);
    font-weight: 400;
    letter-spacing: -0.055em;
    line-height: 0.95;
}

.terms-page-body .terms-document__introduction {
    max-width: 800px;
    margin: 27px 0 0 !important;
    color: var(--terms-text);
    font-size: 0.94rem;
    line-height: 1.85;
}

.terms-page-body .terms-document__notice {
    display: grid;
    max-width: 820px;
    margin-top: 28px;
    padding: 21px 23px;
    grid-template-columns: 40px minmax(0, 1fr);
    align-items: center;
    gap: 17px;
    border: 1px solid rgba(32, 183, 255, 0.21);
    border-radius: 17px;
    background:
        linear-gradient(
            135deg,
            rgba(7, 27, 52, 0.8),
            rgba(6, 9, 27, 0.88)
        );
    box-shadow: inset 3px 0 0 rgba(22, 199, 255, 0.5);
}

.terms-page-body .terms-document__notice-icon {
    display: grid;
    width: 39px;
    height: 39px;
    place-items: center;
    border: 1px solid rgba(30, 190, 255, 0.28);
    border-radius: 11px;
    background: rgba(16, 132, 216, 0.09);
    color: var(--terms-cyan);
    font-family: "Bodoni Moda", serif;
    font-size: 1rem;
}

.terms-page-body .terms-document__notice p {
    margin: 0;
    color: var(--terms-text);
    font-size: 0.72rem;
    line-height: 1.7;
}

/* =========================================================
   15. ARTIGOS 01 A 09
========================================================= */

.terms-page-body .terms-article {
    position: relative;
    display: grid !important;
    width: 100%;
    padding: 0 0 clamp(90px, 9vw, 135px);
    grid-template-columns: 68px minmax(0, 1fr) !important;
    align-items: start;
    gap: clamp(28px, 4vw, 48px) !important;
}

.terms-page-body .terms-article:not(:last-child)::after {
    content: "";
    position: absolute;
    right: 0;
    bottom: clamp(44px, 4.5vw, 67px);
    left: 116px;
    height: 1px;
    background: linear-gradient(
        90deg,
        rgba(77, 111, 187, 0.22),
        transparent
    );
}

.terms-page-body .terms-article__number {
    position: sticky;
    top: 125px;
    display: grid !important;
    width: 62px !important;
    height: 62px !important;
    padding: 0 !important;
    place-items: center;
    border: 1px solid rgba(35, 184, 255, 0.31);
    border-radius: 17px;
    background:
        linear-gradient(
            145deg,
            rgba(14, 37, 70, 0.88),
            rgba(4, 10, 24, 0.96)
        );
    color: var(--terms-cyan);
    font-family: monospace !important;
    font-size: 0.71rem;
    letter-spacing: 0.08em;
    box-shadow:
        0 18px 40px rgba(0, 0, 0, 0.24),
        inset 0 1px 0 rgba(255, 255, 255, 0.045);
}

.terms-page-body .terms-article__content {
    width: 100%;
    min-width: 0;
}

.terms-page-body .terms-article__category,
.terms-page-body .terms-article__eyebrow {
    display: block;
    margin: 0 0 12px;
    color: var(--terms-cyan);
    font-size: 0.57rem;
    font-weight: 700;
    letter-spacing: 0.25em;
    text-transform: uppercase;
}

.terms-page-body .terms-article__content > h3,
.terms-page-body .terms-article__title {
    max-width: 830px;
    margin: 0 0 23px !important;
    color: var(--terms-white);
    font-family: "Space Grotesk", "Manrope", sans-serif !important;
    font-size: clamp(2rem, 3.25vw, 3.75rem);
    font-weight: 650;
    letter-spacing: -0.052em;
    line-height: 1.03;
}

.terms-page-body .terms-article__title span {
    color: transparent;
    font-family: "Allura", "Great Vibes", cursive !important;
    font-size: 1.18em;
    font-weight: 400;
    letter-spacing: 0;
    background: var(--terms-gradient);
    background-clip: text;
    -webkit-background-clip: text;
}

.terms-page-body .terms-article__content > p {
    max-width: 825px;
    margin: 0 0 20px !important;
    color: var(--terms-text);
    font-size: 0.88rem;
    line-height: 1.84;
}

.terms-page-body .terms-article__content > p + p {
    margin-top: 14px !important;
}

.terms-page-body .terms-article__content strong {
    color: var(--terms-white);
}

/* =========================================================
   16. CARTÕES DE ESCOPO REAIS
========================================================= */

.terms-page-body .terms-scope-grid {
    display: grid !important;
    margin: 31px 0;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 14px;
}

.terms-page-body .terms-scope-card {
    position: relative;
    display: block;
    min-width: 0;
    min-height: 190px;
    padding: 25px !important;
    overflow: hidden;
    border: 1px solid rgba(74, 110, 190, 0.2);
    border-radius: 19px;
    background:
        linear-gradient(
            145deg,
            rgba(9, 22, 45, 0.84),
            rgba(4, 9, 22, 0.93)
        );
    transition:
        transform 0.4s ease,
        border-color 0.4s ease,
        box-shadow 0.4s ease;
}

.terms-page-body .terms-scope-card::after {
    content: "";
    position: absolute;
    right: -65px;
    bottom: -75px;
    width: 150px;
    height: 150px;
    border: 1px solid rgba(116, 59, 255, 0.18);
    border-radius: 50%;
}

.terms-page-body .terms-scope-card:hover {
    border-color: rgba(24, 193, 255, 0.39);
    box-shadow: 0 26px 55px rgba(0, 0, 0, 0.24);
    transform: translateY(-7px);
}

.terms-page-body .terms-scope-card > span {
    display: block;
    margin-bottom: 27px;
    color: var(--terms-cyan);
    font-family: monospace;
    font-size: 0.62rem;
}

.terms-page-body .terms-scope-card > strong {
    position: relative;
    z-index: 2;
    display: block;
    margin-bottom: 10px;
    color: var(--terms-white);
    font-size: 0.84rem;
    line-height: 1.4;
}

.terms-page-body .terms-scope-card > p {
    position: relative;
    z-index: 2;
    margin: 0 !important;
    color: var(--terms-muted);
    font-size: 0.7rem;
    line-height: 1.7;
}

/* =========================================================
   17. DESTAQUES INTERNOS DOS ARTIGOS
========================================================= */

.terms-page-body .terms-article__highlight {
    position: relative;
    display: grid;
    margin: 29px 0 0;
    padding: 23px 25px;
    overflow: hidden;
    grid-template-columns: minmax(145px, 0.32fr) minmax(0, 1fr);
    align-items: center;
    gap: 25px;
    border: 1px solid rgba(35, 180, 255, 0.23);
    border-radius: 18px;
    background:
        linear-gradient(
            135deg,
            rgba(8, 29, 54, 0.82),
            rgba(7, 9, 28, 0.9)
        );
    box-shadow: inset 4px 0 0 rgba(22, 199, 255, 0.52);
}

.terms-page-body .terms-article__highlight::after {
    content: "";
    position: absolute;
    width: 170px;
    height: 170px;
    top: -120px;
    right: -80px;
    border-radius: 50%;
    background: rgba(91, 68, 255, 0.25);
    filter: blur(40px);
}

.terms-page-body .terms-article__highlight > strong {
    position: relative;
    z-index: 2;
    color: var(--terms-cyan);
    font-size: 0.74rem;
}

.terms-page-body .terms-article__highlight > p {
    position: relative;
    z-index: 2;
    margin: 0 !important;
    color: var(--terms-text);
    font-size: 0.72rem;
    line-height: 1.7;
}

/* =========================================================
   18. PROPOSTA COMERCIAL REAL
========================================================= */

.terms-page-body .terms-proposal {
    position: relative;
    display: block !important;
    margin: 32px 0;
    padding: 0 !important;
    overflow: hidden;
    border: 1px solid rgba(72, 112, 208, 0.27);
    border-radius: 21px;
    background:
        linear-gradient(
            145deg,
            rgba(9, 25, 49, 0.9),
            rgba(4, 8, 22, 0.95)
        );
    box-shadow:
        0 27px 65px rgba(0, 0, 0, 0.25),
        inset 0 1px 0 rgba(255, 255, 255, 0.04);
}

.terms-page-body .terms-proposal__header {
    display: flex;
    min-height: 75px;
    padding: 18px 24px;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    border-bottom: 1px solid rgba(90, 118, 183, 0.16);
    background: rgba(14, 28, 49, 0.66);
}

.terms-page-body .terms-proposal__header span {
    display: block;
    margin-bottom: 5px;
    color: var(--terms-cyan);
    font-family: monospace;
    font-size: 0.5rem;
    letter-spacing: 0.15em;
}

.terms-page-body .terms-proposal__header strong {
    display: block;
    color: var(--terms-white);
    font-size: 0.82rem;
}

.terms-page-body .terms-proposal__header small {
    color: var(--terms-muted);
    font-size: 0.54rem;
    letter-spacing: 0.12em;
}

.terms-page-body .terms-proposal__grid {
    display: grid;
    padding: 24px;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
}

.terms-page-body .terms-proposal__grid > div {
    position: relative;
    min-width: 0;
    min-height: 142px;
    padding: 20px;
    border: 1px solid rgba(72, 106, 181, 0.16);
    border-radius: 15px;
    background: rgba(6, 14, 31, 0.68);
    transition:
        border-color 0.3s ease,
        transform 0.3s ease;
}

.terms-page-body .terms-proposal__grid > div:hover {
    border-color: rgba(23, 190, 255, 0.34);
    transform: translateY(-5px);
}

.terms-page-body .terms-proposal__grid span {
    display: block;
    margin-bottom: 17px;
    color: var(--terms-cyan);
    font-family: monospace;
    font-size: 0.56rem;
}

.terms-page-body .terms-proposal__grid strong {
    display: block;
    margin-bottom: 7px;
    color: var(--terms-white);
    font-size: 0.75rem;
}

.terms-page-body .terms-proposal__grid p {
    margin: 0 !important;
    color: var(--terms-muted);
    font-size: 0.66rem;
    line-height: 1.65;
}

/* =========================================================
   19. ANIMAÇÕES COMPATÍVEIS COM REVEAL-ELEMENT
========================================================= */

.terms-page-body .reveal-element {
    opacity: 0;
    filter: blur(4px);
    transform: translateY(35px);
    transition:
        opacity 0.85s ease,
        filter 0.85s ease,
        transform 0.9s cubic-bezier(0.16, 1, 0.3, 1);
}

.terms-page-body .reveal-element.is-visible,
.terms-page-body .reveal-element.is-revealed,
.terms-page-body .reveal-element.revealed,
.terms-page-body .reveal-element.active {
    opacity: 1;
    filter: blur(0);
    transform: translateY(0);
}

/*
   Segurança: o conteúdo não fica invisível caso algum script
   de animação não encontre a classe esperada.
*/
.terms-page-body.page-loaded .reveal-element {
    animation: corrected-reveal-safety 0s linear 1.7s forwards;
}

@keyframes corrected-reveal-safety {
    to {
        opacity: 1;
        filter: blur(0);
        transform: translateY(0);
    }
}

/* =========================================================
   20. RESPONSIVIDADE DOS TERMOS
========================================================= */

@media (max-width: 1080px) {
    .terms-page-body .terms-content__layout {
        grid-template-columns: 225px minmax(0, 1fr) !important;
        gap: 45px !important;
    }

    .terms-page-body .terms-sidebar__inner {
        padding-inline: 16px;
    }

    .terms-page-body .terms-sidebar__navigation > a {
        grid-template-columns: 26px minmax(0, 1fr);
        font-size: 0.6rem;
    }
}

@media (max-width: 880px) {
    .terms-page-body .terms-content__layout {
        grid-template-columns: 1fr !important;
        gap: 55px !important;
    }

    .terms-page-body .terms-sidebar {
        position: relative !important;
        top: auto !important;
    }

    .terms-page-body .terms-sidebar__inner {
        padding: 16px;
        overflow-x: auto;
        scrollbar-width: none;
    }

    .terms-page-body .terms-sidebar__inner::-webkit-scrollbar {
        display: none;
    }

    .terms-page-body .terms-sidebar__navigation {
        display: flex !important;
        width: max-content;
        gap: 7px;
    }

    .terms-page-body .terms-sidebar__navigation > a {
        width: auto;
        min-height: 39px;
        padding: 9px 13px !important;
        grid-template-columns: auto auto;
        border: 1px solid rgba(74, 109, 190, 0.18);
        border-radius: 999px;
        background: rgba(6, 14, 31, 0.7);
        white-space: nowrap;
    }

    .terms-page-body .terms-sidebar__navigation > a:hover,
    .terms-page-body .terms-sidebar__navigation > a.is-active {
        padding-left: 13px !important;
        border-color: rgba(22, 199, 255, 0.4);
    }

    .terms-page-body .terms-sidebar__navigation > a::before {
        display: none;
    }

    .terms-page-body .terms-sidebar__help {
        display: none;
    }
}

@media (max-width: 680px) {
    .terms-page-body .terms-content {
        padding: 80px 0;
    }

    .terms-page-body .terms-content__layout {
        width: calc(100% - 34px);
        gap: 48px !important;
    }

    .terms-page-body .terms-document__header {
        margin-bottom: 62px;
        padding-bottom: 38px;
    }

    .terms-page-body .terms-heading__main {
        font-size: clamp(2.7rem, 13vw, 4rem);
    }

    .terms-page-body .terms-heading__script {
        width: auto;
        margin-left: 0;
        font-size: clamp(3.2rem, 16vw, 4.8rem);
    }

    .terms-page-body .terms-heading__editorial {
        font-size: clamp(2.4rem, 11.5vw, 3.6rem);
    }

    .terms-page-body .terms-document__introduction {
        font-size: 0.86rem;
        line-height: 1.75;
    }

    .terms-page-body .terms-document__notice {
        padding: 20px;
        grid-template-columns: 1fr;
    }

    .terms-page-body .terms-article {
        padding-bottom: 95px;
        grid-template-columns: 1fr !important;
        gap: 21px !important;
    }

    .terms-page-body .terms-article:not(:last-child)::after {
        right: 0;
        bottom: 47px;
        left: 0;
    }

    .terms-page-body .terms-article__number {
        position: relative;
        top: auto;
        width: 52px !important;
        height: 52px !important;
    }

    .terms-page-body .terms-article__content > h3,
    .terms-page-body .terms-article__title {
        font-size: clamp(1.9rem, 9vw, 3rem);
    }

    .terms-page-body .terms-scope-grid,
    .terms-page-body .terms-proposal__grid {
        grid-template-columns: 1fr !important;
    }

    .terms-page-body .terms-scope-card {
        min-height: auto;
    }

    .terms-page-body .terms-article__highlight {
        grid-template-columns: 1fr;
        gap: 10px;
    }
}

/* =========================================================
   CORREÇÃO REAL — COMPATIBILIDADE COM O TERMOS.HTML
   PARTE 3 — COMPONENTES DOS ARTIGOS
========================================================= */

/* =========================================================
   21. ETAPAS DA CONTRATAÇÃO
========================================================= */

.terms-page-body .terms-contract-steps {
    position: relative;
    display: grid;
    margin: 33px 0;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 13px;
}

.terms-page-body .terms-contract-steps::before {
    content: "";
    position: absolute;
    top: 27px;
    right: 7%;
    left: 7%;
    z-index: 0;
    height: 1px;
    background: var(--terms-gradient);
    opacity: 0.3;
}

.terms-page-body .terms-contract-step {
    position: relative;
    z-index: 1;
    min-width: 0;
    padding: 0 13px 20px;
    text-align: center;
}

.terms-page-body .terms-contract-step__number {
    display: grid;
    width: 54px;
    height: 54px;
    margin: 0 auto 19px;
    place-items: center;
    border: 1px solid rgba(30, 187, 255, 0.34);
    border-radius: 50%;
    background:
        linear-gradient(
            145deg,
            rgba(13, 38, 72, 0.98),
            rgba(4, 10, 24, 0.99)
        );
    color: var(--terms-cyan);
    font-family: monospace;
    font-size: 0.64rem;
    box-shadow:
        0 0 0 7px var(--terms-bg),
        0 0 23px rgba(22, 170, 255, 0.1);
}

.terms-page-body .terms-contract-step strong {
    display: block;
    margin-bottom: 8px;
    color: var(--terms-white);
    font-size: 0.75rem;
}

.terms-page-body .terms-contract-step p {
    margin: 0 !important;
    color: var(--terms-muted);
    font-size: 0.64rem;
    line-height: 1.65;
}

/* =========================================================
   22. PAINEL DE PAGAMENTO
========================================================= */

.terms-page-body .terms-payment-panel {
    position: relative;
    display: grid;
    margin: 33px 0 17px;
    padding: 32px;
    overflow: hidden;
    grid-template-columns: 155px minmax(0, 1fr);
    align-items: center;
    gap: 34px;
    border: 1px solid rgba(62, 118, 231, 0.29);
    border-radius: 22px;
    background:
        radial-gradient(
            circle at 8% 50%,
            rgba(18, 181, 255, 0.12),
            transparent 31%
        ),
        linear-gradient(
            135deg,
            rgba(8, 29, 55, 0.9),
            rgba(8, 8, 31, 0.94)
        );
    box-shadow:
        0 28px 70px rgba(0, 0, 0, 0.26),
        inset 0 1px 0 rgba(255, 255, 255, 0.04);
}

.terms-page-body .terms-payment-panel__visual {
    position: relative;
    display: grid;
    width: 145px;
    height: 145px;
    place-items: center;
}

.terms-page-body .terms-payment-panel__symbol {
    position: relative;
    z-index: 3;
    display: grid;
    width: 72px;
    height: 72px;
    place-items: center;
    border: 1px solid rgba(31, 190, 255, 0.38);
    border-radius: 21px;
    background:
        linear-gradient(
            145deg,
            rgba(16, 54, 91, 0.9),
            rgba(8, 13, 38, 0.95)
        );
    color: transparent;
    font-family: "Bodoni Moda", serif;
    font-size: 2rem;
    background-clip: padding-box;
    box-shadow:
        0 18px 45px rgba(0, 0, 0, 0.3),
        0 0 30px rgba(42, 132, 255, 0.13);
}

.terms-page-body .terms-payment-panel__symbol::after {
    content: "€";
    position: absolute;
    color: transparent;
    background: var(--terms-gradient);
    background-clip: text;
    -webkit-background-clip: text;
}

.terms-page-body .terms-payment-panel__orbit {
    position: absolute;
    border: 1px solid rgba(45, 164, 255, 0.2);
    border-radius: 50%;
    animation: corrected-payment-orbit 9s linear infinite;
}

.terms-page-body .terms-payment-panel__orbit--one {
    width: 110px;
    height: 110px;
}

.terms-page-body .terms-payment-panel__orbit--two {
    width: 145px;
    height: 145px;
    border-color: rgba(128, 61, 255, 0.17);
    animation-direction: reverse;
    animation-duration: 12s;
}

.terms-page-body .terms-payment-panel__content {
    position: relative;
    z-index: 2;
    min-width: 0;
}

.terms-page-body .terms-payment-panel__label {
    display: block;
    margin-bottom: 13px;
    color: var(--terms-cyan);
    font-size: 0.55rem;
    font-weight: 700;
    letter-spacing: 0.23em;
    text-transform: uppercase;
}

.terms-page-body .terms-payment-panel__content > strong {
    display: block;
    max-width: 620px;
    color: var(--terms-white);
    font-size: clamp(1.25rem, 2vw, 2rem);
    letter-spacing: -0.035em;
    line-height: 1.25;
}

.terms-page-body .terms-payment-panel__content > p {
    max-width: 630px;
    margin: 12px 0 0 !important;
    color: var(--terms-muted);
    font-size: 0.72rem;
    line-height: 1.7;
}

@keyframes corrected-payment-orbit {
    to {
        transform: rotate(360deg);
    }
}

/* =========================================================
   23. CARTÕES DE PAGAMENTO
========================================================= */

.terms-page-body .terms-payment-grid {
    display: grid;
    margin: 0 0 31px;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 13px;
}

.terms-page-body .terms-payment-card {
    display: block !important;
    min-width: 0;
    min-height: 155px;
    padding: 22px !important;
    border: 1px solid rgba(73, 107, 185, 0.18);
    border-radius: 17px;
    background: rgba(6, 15, 33, 0.78);
    transition:
        transform 0.35s ease,
        border-color 0.35s ease;
}

.terms-page-body .terms-payment-card:hover {
    border-color: rgba(25, 191, 255, 0.37);
    transform: translateY(-5px);
}

.terms-page-body .terms-payment-card > span {
    display: block;
    margin-bottom: 20px;
    color: var(--terms-cyan);
    font-family: monospace;
    font-size: 0.58rem;
}

.terms-page-body .terms-payment-card > strong {
    display: block;
    margin-bottom: 8px;
    color: var(--terms-white);
    font-size: 0.77rem;
}

.terms-page-body .terms-payment-card > p {
    margin: 0 !important;
    color: var(--terms-muted);
    font-size: 0.67rem;
    line-height: 1.7;
}

/* =========================================================
   24. LINHA TEMPORAL DOS PRAZOS
========================================================= */

.terms-page-body .terms-timeline {
    position: relative;
    display: grid;
    margin: 34px 0;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 12px;
}

.terms-page-body .terms-timeline__item {
    position: relative;
    min-width: 0;
    padding: 0 13px 20px;
    text-align: center;
}

.terms-page-body .terms-timeline__line {
    position: absolute;
    top: 26px;
    left: 58%;
    z-index: 0;
    width: 90%;
    height: 1px;
    background: linear-gradient(
        90deg,
        rgba(22, 199, 255, 0.5),
        rgba(124, 61, 255, 0.4)
    );
}

.terms-page-body .terms-timeline__number {
    position: relative;
    z-index: 2;
    display: grid;
    width: 53px;
    height: 53px;
    margin: 0 auto 18px;
    place-items: center;
    border: 1px solid rgba(32, 184, 255, 0.34);
    border-radius: 50%;
    background: #071429;
    color: var(--terms-cyan);
    font-family: monospace;
    font-size: 0.64rem;
    box-shadow:
        0 0 0 7px var(--terms-bg),
        0 0 22px rgba(22, 169, 255, 0.11);
}

.terms-page-body .terms-timeline__content strong {
    display: block;
    margin-bottom: 7px;
    color: var(--terms-white);
    font-size: 0.75rem;
}

.terms-page-body .terms-timeline__content p {
    margin: 0 !important;
    color: var(--terms-muted);
    font-size: 0.64rem;
    line-height: 1.65;
}

.terms-page-body .terms-article__content > h4 {
    margin: 27px 0 16px;
    color: var(--terms-white);
    font-family: "Space Grotesk", sans-serif;
    font-size: 0.88rem;
}

/* =========================================================
   25. LISTA DE CONDIÇÕES
========================================================= */

.terms-page-body .terms-condition-list {
    display: grid;
    margin: 0 0 27px;
    padding: 0;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 11px;
    list-style: none;
}

.terms-page-body .terms-condition-list li {
    position: relative;
    min-height: 60px;
    padding: 15px 15px 15px 43px;
    border: 1px solid rgba(70, 105, 181, 0.15);
    border-radius: 13px;
    background: rgba(6, 14, 31, 0.65);
    color: var(--terms-text);
    font-size: 0.67rem;
    line-height: 1.55;
}

.terms-page-body .terms-condition-list li::before {
    content: "!";
    position: absolute;
    top: 15px;
    left: 15px;
    display: grid;
    width: 19px;
    height: 19px;
    place-items: center;
    border: 1px solid rgba(36, 180, 255, 0.28);
    border-radius: 50%;
    color: var(--terms-cyan);
    font-family: monospace;
    font-size: 0.55rem;
}

/* =========================================================
   26. RESPONSABILIDADES
========================================================= */

.terms-page-body .terms-responsibility-grid {
    display: grid;
    margin: 33px 0;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
}

.terms-page-body .terms-responsibility-card {
    position: relative;
    min-width: 0;
    padding: 27px !important;
    overflow: hidden;
    border: 1px solid rgba(75, 109, 187, 0.2);
    border-radius: 20px;
    background:
        linear-gradient(
            145deg,
            rgba(9, 22, 44, 0.84),
            rgba(4, 9, 22, 0.94)
        );
}

.terms-page-body .terms-responsibility-card--vertex {
    box-shadow: inset 0 2px 0 rgba(22, 199, 255, 0.34);
}

.terms-page-body .terms-responsibility-card--client {
    box-shadow: inset 0 2px 0 rgba(132, 66, 255, 0.38);
}

.terms-page-body .terms-responsibility-card__header {
    display: flex;
    margin-bottom: 22px;
    align-items: center;
    gap: 14px;
}

.terms-page-body .terms-responsibility-card__symbol {
    display: grid;
    width: 43px;
    height: 43px;
    flex: 0 0 43px;
    place-items: center;
    border: 1px solid rgba(31, 187, 255, 0.29);
    border-radius: 12px;
    background: rgba(18, 132, 217, 0.09);
    color: var(--terms-cyan);
    font-family: monospace;
    font-size: 0.72rem;
}

.terms-page-body .terms-responsibility-card--client
    .terms-responsibility-card__symbol {
    border-color: rgba(139, 75, 255, 0.3);
    color: #b188ff;
}

.terms-page-body .terms-responsibility-card__header small {
    display: block;
    color: var(--terms-muted);
    font-size: 0.54rem;
}

.terms-page-body .terms-responsibility-card__header strong {
    display: block;
    margin-top: 4px;
    color: var(--terms-white);
    font-size: 0.82rem;
}

.terms-page-body .terms-responsibility-card ul,
.terms-page-body .terms-change-card ul {
    display: grid;
    margin: 0;
    padding: 0;
    gap: 11px;
    list-style: none;
}

.terms-page-body .terms-responsibility-card li,
.terms-page-body .terms-change-card li {
    position: relative;
    padding-left: 25px;
    color: var(--terms-text);
    font-size: 0.67rem;
    line-height: 1.65;
}

.terms-page-body .terms-responsibility-card li::before,
.terms-page-body .terms-change-card li::before {
    content: "✓";
    position: absolute;
    top: 0;
    left: 0;
    color: var(--terms-cyan);
    font-size: 0.65rem;
}

/* =========================================================
   27. ALTERAÇÕES E REVISÕES
========================================================= */

.terms-page-body .terms-change-comparison {
    display: grid;
    margin: 33px 0;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
}

.terms-page-body .terms-change-card {
    position: relative;
    min-width: 0;
    padding: 27px;
    overflow: hidden;
    border: 1px solid rgba(75, 109, 186, 0.19);
    border-radius: 20px;
    background: rgba(6, 14, 31, 0.79);
}

.terms-page-body .terms-change-card--included {
    box-shadow: inset 0 2px 0 rgba(22, 199, 255, 0.33);
}

.terms-page-body .terms-change-card--additional {
    box-shadow: inset 0 2px 0 rgba(135, 67, 255, 0.39);
}

.terms-page-body .terms-change-card__header {
    display: flex;
    margin-bottom: 22px;
    align-items: center;
    gap: 13px;
}

.terms-page-body .terms-change-card__header span {
    display: grid;
    width: 39px;
    height: 39px;
    place-items: center;
    border: 1px solid rgba(28, 184, 255, 0.28);
    border-radius: 11px;
    color: var(--terms-cyan);
    font-size: 0.78rem;
}

.terms-page-body .terms-change-card--additional
    .terms-change-card__header span {
    border-color: rgba(139, 73, 255, 0.3);
    color: #b185ff;
}

.terms-page-body .terms-change-card__header strong {
    color: var(--terms-white);
    font-size: 0.84rem;
}

/* =========================================================
   28. ENTREGA E APROVAÇÃO
========================================================= */

.terms-page-body .terms-delivery-flow {
    display: grid;
    margin: 34px 0 20px;
    grid-template-columns:
        minmax(0, 1fr) 25px
        minmax(0, 1fr) 25px
        minmax(0, 1fr) 25px
        minmax(0, 1fr);
    align-items: stretch;
    gap: 8px;
}

.terms-page-body .terms-delivery-step {
    min-width: 0;
    min-height: 170px;
    padding: 21px;
    border: 1px solid rgba(72, 107, 183, 0.18);
    border-radius: 17px;
    background:
        linear-gradient(
            145deg,
            rgba(9, 21, 43, 0.82),
            rgba(4, 9, 22, 0.92)
        );
}

.terms-page-body .terms-delivery-step > span {
    display: block;
    margin-bottom: 23px;
    color: var(--terms-cyan);
    font-family: monospace;
    font-size: 0.58rem;
}

.terms-page-body .terms-delivery-step strong {
    display: block;
    margin-bottom: 8px;
    color: var(--terms-white);
    font-size: 0.73rem;
}

.terms-page-body .terms-delivery-step p {
    margin: 0 !important;
    color: var(--terms-muted);
    font-size: 0.62rem;
    line-height: 1.65;
}

.terms-page-body .terms-delivery-arrow {
    display: grid;
    place-items: center;
    color: var(--terms-cyan);
    font-size: 0.8rem;
    opacity: 0.65;
}

.terms-page-body .terms-delivery-notice {
    display: grid;
    margin: 17px 0 29px;
    padding: 22px;
    grid-template-columns: 45px minmax(0, 1fr);
    align-items: center;
    gap: 17px;
    border: 1px solid rgba(31, 182, 255, 0.2);
    border-radius: 17px;
    background: rgba(7, 23, 44, 0.76);
}

.terms-page-body .terms-delivery-notice__icon {
    display: grid;
    width: 43px;
    height: 43px;
    place-items: center;
    border: 1px solid rgba(27, 184, 255, 0.27);
    border-radius: 12px;
    color: var(--terms-cyan);
}

.terms-page-body .terms-delivery-notice strong {
    display: block;
    margin-bottom: 6px;
    color: var(--terms-white);
    font-size: 0.78rem;
}

.terms-page-body .terms-delivery-notice p {
    margin: 0 !important;
    color: var(--terms-muted);
    font-size: 0.67rem;
    line-height: 1.65;
}

/* =========================================================
   29. PROPRIEDADE INTELECTUAL
========================================================= */

.terms-page-body .terms-rights-panel {
    position: relative;
    display: grid;
    margin: 33px 0 16px;
    padding: 32px;
    overflow: hidden;
    grid-template-columns: 150px minmax(0, 1fr);
    align-items: center;
    gap: 34px;
    border: 1px solid rgba(69, 112, 213, 0.28);
    border-radius: 22px;
    background:
        radial-gradient(
            circle at 8% 50%,
            rgba(21, 178, 255, 0.12),
            transparent 30%
        ),
        linear-gradient(
            135deg,
            rgba(8, 28, 54, 0.9),
            rgba(8, 8, 30, 0.94)
        );
}

.terms-page-body .terms-rights-panel__visual {
    position: relative;
    display: grid;
    width: 140px;
    height: 140px;
    place-items: center;
}

.terms-page-body .terms-rights-panel__symbol {
    position: relative;
    z-index: 3;
    display: grid;
    width: 72px;
    height: 72px;
    place-items: center;
    border: 1px solid rgba(31, 185, 255, 0.34);
    border-radius: 21px;
    background: rgba(12, 40, 75, 0.85);
    color: var(--terms-cyan);
    font-size: 1.65rem;
    box-shadow: 0 18px 45px rgba(0, 0, 0, 0.29);
}

.terms-page-body .terms-rights-panel__ring {
    position: absolute;
    border: 1px solid rgba(39, 170, 255, 0.2);
    border-radius: 50%;
    animation: corrected-payment-orbit 10s linear infinite;
}

.terms-page-body .terms-rights-panel__ring--one {
    width: 105px;
    height: 105px;
}

.terms-page-body .terms-rights-panel__ring--two {
    width: 140px;
    height: 140px;
    border-color: rgba(135, 64, 255, 0.17);
    animation-direction: reverse;
    animation-duration: 13s;
}

.terms-page-body .terms-rights-panel__content > span {
    display: block;
    margin-bottom: 12px;
    color: var(--terms-cyan);
    font-size: 0.54rem;
    font-weight: 700;
    letter-spacing: 0.21em;
}

.terms-page-body .terms-rights-panel__content > strong {
    display: block;
    color: var(--terms-white);
    font-size: clamp(1.2rem, 2vw, 1.9rem);
    line-height: 1.25;
}

.terms-page-body .terms-rights-panel__content > p {
    margin: 11px 0 0 !important;
    color: var(--terms-muted);
    font-size: 0.7rem;
    line-height: 1.7;
}

.terms-page-body .terms-rights-grid {
    display: grid;
    margin: 0 0 30px;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 13px;
}

.terms-page-body .terms-right-card {
    min-width: 0;
    min-height: 155px;
    padding: 22px;
    border: 1px solid rgba(73, 107, 184, 0.17);
    border-radius: 17px;
    background: rgba(6, 14, 31, 0.72);
    transition:
        transform 0.35s ease,
        border-color 0.35s ease;
}

.terms-page-body .terms-right-card:hover {
    border-color: rgba(25, 190, 255, 0.36);
    transform: translateY(-5px);
}

.terms-page-body .terms-right-card > span {
    display: block;
    margin-bottom: 19px;
    color: var(--terms-cyan);
    font-family: monospace;
    font-size: 0.57rem;
}

.terms-page-body .terms-right-card > strong {
    display: block;
    margin-bottom: 8px;
    color: var(--terms-white);
    font-size: 0.76rem;
}

.terms-page-body .terms-right-card > p {
    margin: 0 !important;
    color: var(--terms-muted);
    font-size: 0.66rem;
    line-height: 1.68;
}

/* =========================================================
   30. RESPONSIVIDADE DOS COMPONENTES
========================================================= */

@media (max-width: 900px) {
    .terms-page-body .terms-contract-steps,
    .terms-page-body .terms-timeline {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 27px 13px;
    }

    .terms-page-body .terms-contract-steps::before,
    .terms-page-body .terms-timeline__line {
        display: none;
    }

    .terms-page-body .terms-delivery-flow {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 13px;
    }

    .terms-page-body .terms-delivery-arrow {
        display: none;
    }
}

@media (max-width: 680px) {
    .terms-page-body .terms-contract-steps,
    .terms-page-body .terms-timeline,
    .terms-page-body .terms-payment-grid,
    .terms-page-body .terms-condition-list,
    .terms-page-body .terms-responsibility-grid,
    .terms-page-body .terms-change-comparison,
    .terms-page-body .terms-delivery-flow,
    .terms-page-body .terms-rights-grid {
        grid-template-columns: 1fr;
    }

    .terms-page-body .terms-contract-step,
    .terms-page-body .terms-timeline__item {
        display: grid;
        padding: 17px;
        grid-template-columns: 47px minmax(0, 1fr);
        align-items: center;
        gap: 13px;
        border: 1px solid rgba(73, 108, 185, 0.17);
        border-radius: 15px;
        background: rgba(6, 14, 31, 0.69);
        text-align: left;
    }

    .terms-page-body .terms-contract-step__number,
    .terms-page-body .terms-timeline__number {
        width: 45px;
        height: 45px;
        margin: 0;
        grid-row: 1;
        box-shadow: none;
    }

    .terms-page-body .terms-payment-panel,
    .terms-page-body .terms-rights-panel {
        padding: 25px 21px;
        grid-template-columns: 1fr;
        gap: 22px;
        text-align: center;
    }

    .terms-page-body .terms-payment-panel__visual,
    .terms-page-body .terms-rights-panel__visual {
        width: 125px;
        height: 125px;
        margin-inline: auto;
    }

    .terms-page-body .terms-payment-panel__content > p,
    .terms-page-body .terms-rights-panel__content > p {
        margin-inline: auto !important;
    }

    .terms-page-body .terms-responsibility-card,
    .terms-page-body .terms-change-card {
        padding: 23px !important;
    }

    .terms-page-body .terms-delivery-step {
        min-height: auto;
    }

    .terms-page-body .terms-delivery-notice {
        padding: 20px;
        grid-template-columns: 1fr;
    }
}

/* =========================================================
   CORREÇÃO FINAL
   MENU SEMPRE VISÍVEL + MOBILE + ANIMAÇÕES
========================================================= */

/* =========================================================
   1. CABEÇALHO SEMPRE VISÍVEL
========================================================= */

.terms-page-body .site-header {
    position: fixed !important;
    top: 0;
    left: 0;
    z-index: 5000;
    width: 100%;
    min-height: 88px;
    visibility: visible !important;
    opacity: 1 !important;
    transform: translateY(0) !important;
    transition:
        background 0.4s ease,
        box-shadow 0.4s ease,
        backdrop-filter 0.4s ease !important;
}

.terms-page-body .site-header::before {
    opacity: 0.22 !important;
}

/* No topo fica transparente, mas continua visível. */
.terms-page-body .site-header:not(.is-scrolled)::before {
    opacity: 0.08 !important;
}

.terms-page-body .site-header.is-scrolled::before,
.terms-page-body .site-header.site-header--visible::before,
.terms-page-body .site-header.scrolled::before {
    opacity: 1 !important;
}

.terms-page-body .site-header__container {
    min-height: 88px;
}

/* =========================================================
   2. CORREÇÃO DO HAMBÚRGUER
========================================================= */

@media (max-width: 1050px) {
    .terms-page-body .site-header__container {
        display: grid !important;
        grid-template-columns: 1fr auto !important;
        align-items: center;
    }

    .terms-page-body .main-navigation {
        display: none !important;
    }

    /*
       Mantém a área de ações visível porque o botão
       hambúrguer encontra-se dentro dela.
    */
    .terms-page-body .site-header__actions {
        display: flex !important;
        align-items: center;
        justify-content: flex-end;
    }

    /* Esconde somente o botão de orçamento no cabeçalho. */
    .terms-page-body .site-header__actions > a {
        display: none !important;
    }

    .terms-page-body .menu-toggle {
        display: grid !important;
        visibility: visible !important;
        opacity: 1 !important;
        pointer-events: auto !important;
    }
}

/* =========================================================
   3. MENU MÓVEL — CLASSES REAIS DO HTML
========================================================= */

.terms-page-body .mobile-menu {
    position: fixed;
    inset: 0;
    z-index: 6000;
    display: block !important;
    visibility: hidden;
    opacity: 0;
    pointer-events: none;
    transform: translateY(-18px);
    transition:
        visibility 0.45s ease,
        opacity 0.4s ease,
        transform 0.5s cubic-bezier(0.16, 1, 0.3, 1);
}

.terms-page-body .mobile-menu.is-open,
.terms-page-body .mobile-menu.mobile-navigation-active,
.terms-page-body.mobile-navigation-active .mobile-menu,
.terms-page-body.menu-open .mobile-menu {
    visibility: visible !important;
    opacity: 1 !important;
    pointer-events: auto !important;
    transform: translateY(0) !important;
}

.terms-page-body .mobile-menu__content {
    position: relative;
    z-index: 3;
    display: flex;
    width: min(100% - 42px, 720px);
    height: 100%;
    margin-inline: auto;
    padding: 18px 0 27px;
    flex-direction: column;
}

.terms-page-body .mobile-menu__header {
    display: flex;
    min-height: 72px;
    padding-bottom: 17px;
    align-items: center;
    justify-content: space-between;
    gap: 30px;
    border-bottom: 1px solid rgba(105, 130, 186, 0.14);
}

.terms-page-body .mobile-menu__header + nav {
    display: flex;
    min-height: 0;
    padding: clamp(21px, 4vh, 42px) 0;
    flex: 1;
    align-items: center;
    overflow-y: auto;
}

.terms-page-body .mobile-menu__list {
    display: grid !important;
    width: 100%;
    margin: 0;
    padding: 0;
    list-style: none;
}

.terms-page-body .mobile-menu__list li {
    display: block;
    width: 100%;
    opacity: 0;
    transform: translateX(-30px);
    transition:
        opacity 0.45s ease,
        transform 0.55s cubic-bezier(0.16, 1, 0.3, 1);
}

.terms-page-body.mobile-navigation-active
    .mobile-menu__list li,
.terms-page-body.menu-open
    .mobile-menu__list li,
.terms-page-body .mobile-menu.is-open
    .mobile-menu__list li {
    opacity: 1;
    transform: translateX(0);
}

.terms-page-body .mobile-menu__list li:nth-child(1) {
    transition-delay: 0.06s;
}

.terms-page-body .mobile-menu__list li:nth-child(2) {
    transition-delay: 0.11s;
}

.terms-page-body .mobile-menu__list li:nth-child(3) {
    transition-delay: 0.16s;
}

.terms-page-body .mobile-menu__list li:nth-child(4) {
    transition-delay: 0.21s;
}

.terms-page-body .mobile-menu__list li:nth-child(5) {
    transition-delay: 0.26s;
}

.terms-page-body .mobile-menu__list li:nth-child(6) {
    transition-delay: 0.31s;
}

.terms-page-body .mobile-menu__list a {
    display: grid !important;
    width: 100%;
    min-height: 65px;
    padding: 13px 7px;
    grid-template-columns: 43px minmax(0, 1fr) 28px;
    align-items: center;
    gap: 8px;
    border-bottom: 1px solid rgba(103, 127, 181, 0.13);
    color: var(--terms-white);
    font-family: "Space Grotesk", sans-serif;
    font-size: 1.04rem;
    transition:
        color 0.3s ease,
        padding-left 0.3s ease,
        background 0.3s ease;
}

.terms-page-body .mobile-menu__list a::after {
    content: "↗";
    justify-self: end;
    color: var(--terms-muted);
    font-size: 0.8rem;
    transition:
        color 0.3s ease,
        transform 0.3s ease;
}

.terms-page-body .mobile-menu__list a > span {
    color: var(--terms-cyan);
    font-family: monospace;
    font-size: 0.59rem;
}

.terms-page-body .mobile-menu__list a:hover {
    padding-left: 14px;
    color: var(--terms-cyan);
    background: linear-gradient(
        90deg,
        rgba(20, 178, 255, 0.08),
        transparent
    );
}

.terms-page-body .mobile-menu__list a:hover::after {
    color: var(--terms-cyan);
    transform: translate(3px, -3px);
}

/* O botão de fechar possui dois spans reais no HTML. */
.terms-page-body .mobile-menu__close {
    position: relative;
    display: grid !important;
    width: 48px;
    height: 48px;
    flex: 0 0 48px;
    padding: 0;
    place-items: center;
    border: 1px solid rgba(104, 130, 192, 0.25);
    border-radius: 15px;
    background: rgba(7, 14, 32, 0.86);
}

.terms-page-body .mobile-menu__close span {
    position: absolute;
    width: 21px;
    height: 1.5px;
    border-radius: 20px;
    background: var(--terms-white);
}

.terms-page-body .mobile-menu__close span:nth-child(1) {
    transform: rotate(45deg);
}

.terms-page-body .mobile-menu__close span:nth-child(2) {
    transform: rotate(-45deg);
}

/* =========================================================
   4. ANIMAÇÕES DIRECIONAIS
========================================================= */

.terms-page-body .reveal-element {
    opacity: 0;
    visibility: visible;
    filter: blur(7px);
    will-change: opacity, transform, filter;
    transition:
        opacity 0.85s ease,
        filter 0.85s ease,
        transform 1s cubic-bezier(0.16, 1, 0.3, 1);
}

.terms-page-body
    .reveal-element[data-animation="fade-up"] {
    transform: translateY(58px);
}

.terms-page-body
    .reveal-element[data-animation="fade-left"] {
    transform: translateX(75px);
}

.terms-page-body
    .reveal-element[data-animation="fade-right"] {
    transform: translateX(-75px);
}

.terms-page-body
    .reveal-element[data-animation="scale-up"] {
    transform: scale(0.88);
}

.terms-page-body .reveal-element.is-visible,
.terms-page-body .reveal-element.revealed,
.terms-page-body .reveal-element.is-revealed,
.terms-page-body .reveal-element.active {
    opacity: 1;
    filter: blur(0);
    transform: translate(0, 0) scale(1);
}

/* Movimento interno depois que o artigo aparece. */
.terms-page-body .terms-article.is-visible
    .terms-scope-card,
.terms-page-body .terms-article.revealed
    .terms-scope-card,
.terms-page-body .terms-article.is-visible
    .terms-payment-card,
.terms-page-body .terms-article.revealed
    .terms-payment-card,
.terms-page-body .terms-article.is-visible
    .terms-right-card,
.terms-page-body .terms-article.revealed
    .terms-right-card,
.terms-page-body .terms-article.is-visible
    .terms-info-card,
.terms-page-body .terms-article.revealed
    .terms-info-card {
    animation: terms-card-entrance 0.8s
        cubic-bezier(0.16, 1, 0.3, 1) both;
}

.terms-page-body .terms-article.is-visible
    :is(
        .terms-scope-card,
        .terms-payment-card,
        .terms-right-card,
        .terms-info-card
    ):nth-child(2),
.terms-page-body .terms-article.revealed
    :is(
        .terms-scope-card,
        .terms-payment-card,
        .terms-right-card,
        .terms-info-card
    ):nth-child(2) {
    animation-delay: 0.1s;
}

.terms-page-body .terms-article.is-visible
    :is(
        .terms-scope-card,
        .terms-payment-card,
        .terms-right-card,
        .terms-info-card
    ):nth-child(3),
.terms-page-body .terms-article.revealed
    :is(
        .terms-scope-card,
        .terms-payment-card,
        .terms-right-card,
        .terms-info-card
    ):nth-child(3) {
    animation-delay: 0.2s;
}

.terms-page-body .terms-article.is-visible
    :is(
        .terms-scope-card,
        .terms-payment-card,
        .terms-right-card,
        .terms-info-card
    ):nth-child(4),
.terms-page-body .terms-article.revealed
    :is(
        .terms-scope-card,
        .terms-payment-card,
        .terms-right-card,
        .terms-info-card
    ):nth-child(4) {
    animation-delay: 0.3s;
}

@keyframes terms-card-entrance {
    from {
        opacity: 0;
        filter: blur(5px);
        transform: translateY(35px) scale(0.96);
    }

    to {
        opacity: 1;
        filter: blur(0);
        transform: translateY(0) scale(1);
    }
}

/* =========================================================
   5. RESPONSIVIDADE GERAL DO TELEMÓVEL
========================================================= */

@media (max-width: 680px) {
    html,
    body.terms-page-body {
        width: 100%;
        max-width: 100%;
        overflow-x: clip !important;
    }

    .terms-page-body .site-header {
        min-height: 75px;
    }

    .terms-page-body .site-header__container {
        width: calc(100% - 34px);
        min-height: 75px;
    }

    .terms-page-body .site-logo__image {
        width: 76px;
    }

    .terms-page-body .menu-toggle {
        width: 46px;
        height: 46px;
    }

    .terms-page-body .mobile-menu__content {
        width: calc(100% - 34px);
        padding-top: 12px;
    }

    .terms-page-body .mobile-menu__logo {
        width: 77px;
        flex-basis: 77px;
    }

    .terms-page-body .mobile-menu__header + nav {
        align-items: flex-start;
    }

    .terms-page-body .mobile-menu__list a {
        min-height: 60px;
        grid-template-columns: 37px minmax(0, 1fr) 24px;
        font-size: 0.96rem;
    }

    .terms-page-body .mobile-menu__footer {
        display: grid;
        padding-top: 17px;
        grid-template-columns: 1fr;
        gap: 13px;
    }

    .terms-page-body .mobile-menu__footer p {
        margin: 0;
        color: var(--terms-muted);
        font-size: 0.72rem;
        text-align: center;
    }

    .terms-page-body .mobile-menu__footer .button {
        width: 100%;
    }

    .terms-page-body .terms-hero__scroll {
        display: none;
    }

    .terms-page-body .terms-content__layout,
    .terms-page-body .terms-document,
    .terms-page-body .terms-article,
    .terms-page-body .terms-article__content {
        width: 100%;
        max-width: 100%;
        min-width: 0;
    }

    .terms-page-body .terms-article__content > p,
    .terms-page-body .terms-article__content li {
        text-align: left;
    }

    .terms-page-body .terms-contact-card__content strong,
    .terms-page-body .terms-sidebar__help a,
    .terms-page-body .terms-right-card p {
        overflow-wrap: anywhere;
        word-break: normal;
    }

    .terms-page-body .terms-final-grid,
    .terms-page-body .terms-contact-grid,
    .terms-page-body .terms-comparison {
        grid-template-columns: 1fr !important;
    }
}

/* =========================================================
   CORREÇÃO RESPONSIVA DEFINITIVA — TELEMÓVEIS
   ESTE BLOCO DEVE SER O ÚLTIMO DO TERMOS.CSS
========================================================= */

@media screen and (max-width: 768px) {

    /* =====================================================
       1. BLOQUEIO DE DESLOCAMENTO HORIZONTAL
    ===================================================== */

    html,
    body,
    body.terms-page-body {
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
        margin: 0 !important;
        overflow-x: hidden !important;
    }

    .terms-page-body main,
    .terms-page-body section,
    .terms-page-body article,
    .terms-page-body aside,
    .terms-page-body header,
    .terms-page-body footer,
    .terms-page-body nav,
    .terms-page-body div {
        max-width: 100%;
        min-width: 0;
    }

    .terms-page-body img,
    .terms-page-body svg,
    .terms-page-body canvas {
        max-width: 100% !important;
    }

    .terms-page-body .container,
    .terms-page-body .terms-hero__container,
    .terms-page-body .terms-content__layout,
    .terms-page-body .site-footer__container {
        width: calc(100% - 32px) !important;
        max-width: calc(100% - 32px) !important;
        min-width: 0 !important;
        margin-right: auto !important;
        margin-left: auto !important;
        padding-right: 0 !important;
        padding-left: 0 !important;
    }

    /* =====================================================
       2. CABEÇALHO
    ===================================================== */

    .terms-page-body .site-header {
        width: 100% !important;
        min-height: 74px !important;
    }

    .terms-page-body .site-header__container {
        display: grid !important;
        width: calc(100% - 32px) !important;
        min-height: 74px !important;
        grid-template-columns: minmax(0, 1fr) 48px !important;
        gap: 15px !important;
    }

    .terms-page-body .site-logo {
        width: 76px !important;
        max-width: 76px !important;
    }

    .terms-page-body .site-logo__image {
        width: 76px !important;
        max-width: 76px !important;
        height: auto !important;
    }

    .terms-page-body .main-navigation {
        display: none !important;
    }

    .terms-page-body .site-header__actions {
        display: flex !important;
        width: 48px !important;
        justify-content: flex-end !important;
    }

    .terms-page-body .site-header__actions > a {
        display: none !important;
    }

    .terms-page-body .menu-toggle {
        display: grid !important;
        width: 46px !important;
        height: 46px !important;
    }

    /* =====================================================
       3. HERO
    ===================================================== */

    .terms-page-body .terms-hero {
        display: block !important;
        width: 100% !important;
        min-height: auto !important;
        padding: 110px 0 75px !important;
        overflow: hidden !important;
    }

    .terms-page-body .terms-hero__container {
        display: grid !important;
        grid-template-columns: minmax(0, 1fr) !important;
        gap: 55px !important;
    }

    .terms-page-body .terms-hero__content,
    .terms-page-body .terms-hero__visual {
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
        margin: 0 !important;
        padding: 0 !important;
        justify-self: stretch !important;
        transform: none !important;
        translate: none !important;
    }

    .terms-page-body .terms-hero__content {
        text-align: center;
    }

    .terms-page-body .section-eyebrow {
        max-width: 100%;
        justify-content: center;
        font-size: 0.54rem;
        letter-spacing: 0.2em;
        text-align: center;
    }

    .terms-page-body .terms-hero__title {
        width: 100% !important;
        max-width: 100% !important;
        overflow: visible !important;
    }

    .terms-page-body .terms-hero__title-main,
    .terms-page-body .terms-hero__title-script,
    .terms-page-body .terms-hero__title-editorial {
        display: block !important;
        width: 100% !important;
        max-width: 100% !important;
        margin-right: 0 !important;
        margin-left: 0 !important;
        overflow-wrap: normal !important;
        word-break: normal !important;
        text-align: center !important;
    }

    .terms-page-body .terms-hero__title-main {
        font-size: clamp(2.8rem, 14vw, 4.3rem) !important;
        line-height: 0.94 !important;
    }

    .terms-page-body .terms-hero__title-script {
        padding-inline: 0 !important;
        font-size: clamp(3.35rem, 16vw, 5rem) !important;
        line-height: 0.95 !important;
    }

    .terms-page-body .terms-hero__title-editorial {
        font-size: clamp(2.35rem, 11.8vw, 3.6rem) !important;
        line-height: 1 !important;
    }

    .terms-page-body .terms-hero__description {
        width: 100%;
        max-width: 100%;
        margin: 24px auto 0 !important;
        font-size: 0.86rem;
        line-height: 1.7;
        text-align: center;
    }

    .terms-page-body .terms-hero__actions {
        display: grid !important;
        width: 100% !important;
        margin-top: 27px !important;
        grid-template-columns: minmax(0, 1fr) !important;
    }

    .terms-page-body .terms-hero__actions .button {
        width: 100% !important;
        max-width: 100% !important;
    }

    .terms-page-body .terms-hero__metadata {
        display: grid !important;
        width: 100% !important;
        max-width: 100% !important;
        grid-template-columns: minmax(0, 1fr) !important;
        gap: 0 !important;
    }

    .terms-page-body .terms-hero__metadata > div {
        width: 100%;
        padding: 13px 0;
        border-bottom: 1px solid rgba(101, 126, 185, 0.12);
        text-align: center;
    }

    /* =====================================================
       4. QUADRO 3D NO TELEMÓVEL
    ===================================================== */

    .terms-page-body .terms-browser {
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
        min-height: 0 !important;
        margin: 0 !important;
        transform: none !important;
        perspective: none !important;
    }

    .terms-page-body .terms-browser__window {
        width: 100% !important;
        min-height: 0 !important;
        overflow: hidden !important;
        border-radius: 20px !important;
        transform: none !important;
    }

    .terms-page-body .terms-browser__toolbar {
        width: 100%;
        min-height: 51px;
        padding: 0 13px !important;
        gap: 9px;
    }

    .terms-page-body .terms-browser__controls {
        gap: 4px;
    }

    .terms-page-body .terms-browser__controls span {
        width: 6px;
        height: 6px;
    }

    .terms-page-body .terms-browser__address {
        min-width: 0 !important;
        padding-inline: 10px;
        overflow: hidden;
        font-size: 0.5rem;
        text-overflow: ellipsis;
        white-space: nowrap;
    }

    .terms-page-body .terms-browser__options {
        display: none;
    }

    .terms-page-body .terms-browser__page {
        width: 100% !important;
        min-height: 0 !important;
        padding: 16px !important;
    }

    .terms-page-body .terms-browser__page-header {
        gap: 8px;
        font-size: 0.46rem;
    }

    .terms-page-body .terms-browser__document {
        width: 100% !important;
        padding: 18px 14px !important;
        border-radius: 15px;
    }

    .terms-page-body .terms-browser__document-top {
        display: grid !important;
        grid-template-columns: 35px minmax(0, 1fr) !important;
        gap: 10px !important;
    }

    .terms-page-body .terms-browser__document-symbol {
        width: 34px;
        height: 43px;
    }

    .terms-page-body .terms-browser__document-symbol svg {
        width: 31px;
        height: auto;
    }

    .terms-page-body .terms-browser__document-copy strong {
        font-size: 0.76rem;
        overflow-wrap: anywhere;
    }

    .terms-page-body .terms-browser__document-copy p {
        font-size: 0.54rem;
    }

    .terms-page-body .terms-browser__clauses {
        display: grid !important;
        grid-template-columns: minmax(0, 1fr) !important;
    }

    .terms-page-body .terms-browser__signature {
        display: grid !important;
        grid-template-columns: minmax(0, 1fr) !important;
        gap: 13px;
    }

    .terms-page-body .terms-browser__signature-line {
        width: 100% !important;
        min-width: 0 !important;
    }

    /*
       Os balões são removidos apenas no telemóvel.
       No desktop continuam com o efeito 3D.
    */
    .terms-page-body .terms-browser__floating,
    .terms-page-body .terms-browser__floor-light {
        display: none !important;
    }

    /* =====================================================
       5. NAVEGAÇÃO DOS TERMOS
    ===================================================== */

    .terms-page-body .terms-content {
        width: 100% !important;
        padding: 78px 0 !important;
        overflow: hidden !important;
    }

    .terms-page-body .terms-content__layout {
        display: grid !important;
        grid-template-columns: minmax(0, 1fr) !important;
        gap: 48px !important;
    }

    .terms-page-body .terms-sidebar {
        position: relative !important;
        top: auto !important;
        width: 100% !important;
    }

    .terms-page-body .terms-sidebar__inner {
        width: 100% !important;
        padding: 15px !important;
        overflow-x: auto !important;
        overflow-y: hidden !important;
        scrollbar-width: none;
    }

    .terms-page-body .terms-sidebar__inner::-webkit-scrollbar {
        display: none;
    }

    .terms-page-body .terms-sidebar__navigation {
        display: flex !important;
        width: max-content !important;
        max-width: none !important;
        gap: 7px !important;
    }

    .terms-page-body .terms-sidebar__navigation > a {
        width: auto !important;
        min-width: max-content !important;
        min-height: 38px !important;
        padding: 9px 13px !important;
        grid-template-columns: auto auto !important;
        border: 1px solid rgba(74, 110, 190, 0.2);
        border-radius: 999px;
        white-space: nowrap !important;
    }

    .terms-page-body .terms-sidebar__help {
        display: none !important;
    }

    /* =====================================================
       6. TÍTULO DO DOCUMENTO
    ===================================================== */

    .terms-page-body .terms-document {
        width: 100% !important;
    }

    .terms-page-body .terms-heading {
        width: 100% !important;
        max-width: 100% !important;
        text-align: center;
    }

    .terms-page-body .terms-heading__main,
    .terms-page-body .terms-heading__script,
    .terms-page-body .terms-heading__editorial {
        display: block !important;
        width: 100% !important;
        max-width: 100% !important;
        margin-right: 0 !important;
        margin-left: 0 !important;
        overflow-wrap: normal !important;
        word-break: normal !important;
        text-align: center !important;
    }

    .terms-page-body .terms-heading__main {
        font-size: clamp(2.45rem, 12vw, 3.8rem);
    }

    .terms-page-body .terms-heading__script {
        padding-inline: 0;
        font-size: clamp(3rem, 15vw, 4.5rem);
    }

    .terms-page-body .terms-heading__editorial {
        font-size: clamp(2.2rem, 10.8vw, 3.35rem);
    }

    .terms-page-body .terms-document__introduction {
        width: 100%;
        font-size: 0.84rem;
        text-align: center;
    }

    .terms-page-body .terms-document__notice {
        width: 100%;
        padding: 19px !important;
        grid-template-columns: minmax(0, 1fr) !important;
    }

    /* =====================================================
       7. TODOS OS ARTIGOS
    ===================================================== */

    .terms-page-body .terms-article {
        display: grid !important;
        width: 100% !important;
        grid-template-columns: minmax(0, 1fr) !important;
        gap: 20px !important;
    }

    .terms-page-body .terms-article__number {
        position: relative !important;
        top: auto !important;
        width: 50px !important;
        height: 50px !important;
    }

    .terms-page-body .terms-article__content {
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
    }

    .terms-page-body .terms-article__content > h3,
    .terms-page-body .terms-article__title {
        width: 100%;
        max-width: 100%;
        font-size: clamp(1.85rem, 8.7vw, 2.8rem) !important;
        overflow-wrap: normal;
        word-break: normal;
    }

    .terms-page-body .terms-article__title span {
        display: block;
        width: 100%;
        margin-top: 5px;
    }

    .terms-page-body .terms-article__content > p {
        width: 100%;
        max-width: 100%;
        font-size: 0.83rem;
        line-height: 1.75;
    }

    /* =====================================================
       8. TODOS OS GRIDS PASSAM PARA UMA COLUNA
    ===================================================== */

    .terms-page-body .terms-scope-grid,
    .terms-page-body .terms-proposal__grid,
    .terms-page-body .terms-contract-steps,
    .terms-page-body .terms-payment-grid,
    .terms-page-body .terms-timeline,
    .terms-page-body .terms-condition-list,
    .terms-page-body .terms-responsibility-grid,
    .terms-page-body .terms-change-comparison,
    .terms-page-body .terms-delivery-flow,
    .terms-page-body .terms-rights-grid,
    .terms-page-body .terms-info-grid,
    .terms-page-body .terms-comparison,
    .terms-page-body .terms-contact-grid,
    .terms-page-body .terms-final-grid {
        display: grid !important;
        width: 100% !important;
        max-width: 100% !important;
        grid-template-columns: minmax(0, 1fr) !important;
        gap: 12px !important;
    }

    .terms-page-body .terms-scope-card,
    .terms-page-body .terms-payment-card,
    .terms-page-body .terms-responsibility-card,
    .terms-page-body .terms-change-card,
    .terms-page-body .terms-delivery-step,
    .terms-page-body .terms-right-card,
    .terms-page-body .terms-info-card,
    .terms-page-body .terms-comparison__column,
    .terms-page-body .terms-contact-card,
    .terms-page-body .terms-final-card {
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
        min-height: 0 !important;
    }

    .terms-page-body .terms-contract-steps::before,
    .terms-page-body .terms-timeline__line,
    .terms-page-body .terms-delivery-arrow {
        display: none !important;
    }

    /* =====================================================
       9. PAINÉIS LARGOS
    ===================================================== */

    .terms-page-body .terms-proposal,
    .terms-page-body .terms-payment-panel,
    .terms-page-body .terms-rights-panel,
    .terms-page-body .terms-highlight-panel,
    .terms-page-body .terms-legal-note,
    .terms-page-body .terms-delivery-notice,
    .terms-page-body .terms-article__highlight,
    .terms-page-body .terms-version,
    .terms-page-body .terms-cta__panel {
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
    }

    .terms-page-body .terms-payment-panel,
    .terms-page-body .terms-rights-panel,
    .terms-page-body .terms-highlight-panel,
    .terms-page-body .terms-legal-note,
    .terms-page-body .terms-delivery-notice,
    .terms-page-body .terms-article__highlight {
        display: grid !important;
        padding: 21px !important;
        grid-template-columns: minmax(0, 1fr) !important;
        gap: 18px !important;
    }

    .terms-page-body .terms-payment-panel__visual,
    .terms-page-body .terms-rights-panel__visual {
        width: 120px !important;
        height: 120px !important;
        margin-inline: auto !important;
    }

    .terms-page-body .terms-payment-panel__content,
    .terms-page-body .terms-rights-panel__content,
    .terms-page-body .terms-highlight-panel__content {
        width: 100%;
        min-width: 0;
        text-align: center;
    }

    .terms-page-body .terms-proposal__header {
        display: grid !important;
        grid-template-columns: minmax(0, 1fr) !important;
        text-align: left;
    }

    .terms-page-body .terms-contact-card {
        padding: 20px !important;
        grid-template-columns: 39px minmax(0, 1fr) !important;
    }

    .terms-page-body .terms-contact-card__arrow {
        position: absolute;
        top: 20px;
        right: 18px;
    }

    .terms-page-body .terms-contact-card__content strong,
    .terms-page-body .terms-contact-card__content small,
    .terms-page-body .terms-final-card p,
    .terms-page-body .terms-right-card p {
        max-width: 100%;
        overflow-wrap: anywhere !important;
    }

    /* =====================================================
       10. CTA E RODAPÉ
    ===================================================== */

    .terms-page-body .terms-cta {
        width: 100%;
        padding: 75px 0;
        overflow: hidden;
    }

    .terms-page-body .terms-cta__panel {
        display: grid !important;
        padding: 38px 21px !important;
        grid-template-columns: minmax(0, 1fr) !important;
        gap: 30px !important;
    }

    .terms-page-body .terms-cta__title {
        width: 100%;
        font-size: clamp(2.3rem, 11vw, 3.7rem);
    }

    .terms-page-body .terms-cta__actions {
        width: 100%;
        min-width: 0;
    }

    .terms-page-body .terms-cta__actions .button {
        width: 100%;
    }

    .terms-page-body .site-footer__top {
        display: grid !important;
        grid-template-columns: minmax(0, 1fr) !important;
        gap: 38px !important;
    }

    .terms-page-body .site-footer__brand,
    .terms-page-body .site-footer__column {
        width: 100%;
        max-width: 100%;
        text-align: center;
    }

    .terms-page-body .site-footer__links,
    .terms-page-body .site-footer__column--contact {
        justify-items: center;
    }

    .terms-page-body .site-footer__bottom {
        flex-direction: column;
        text-align: center;
    }

    .terms-page-body .site-footer__legal {
        justify-content: center;
    }
}