/* =====================================================================
   GIGA - child theme do Nexus (WHMCS 9)
   ---------------------------------------------------------------------
   Para trocar a identidade visual, edite apenas o bloco :root abaixo
   (cores da marca) e, se quiser, as variáveis --gs-*.
   Este arquivo substitui o custom.css do Nexus, por isso ele traz
   TODAS as variáveis do tema (inclusive as usadas pelas telas do Nexus).
   ===================================================================== */

:root {
    /* ---------- Marca (edite aqui) ---------- */
    --gs-navy: #002846;
    --gs-navy-2: #09304c;
    --gs-accent: #db3f3b;
    --gs-accent-ink: #ffffff;
    --gs-ft-accent: #db3f3b;

    --white: #fff;

    /* Neutros (mesma escala do Nexus) */
    --neutral-50: #fbf9fa;
    --neutral-100: #f4f5f7;
    --neutral-200: #e4e4e7;
    --neutral-300: #d0d5dd;
    --neutral-400: #9ca3af;
    --neutral-500: #6b7280;
    --neutral-600: #4b5563;
    --neutral-700: #374151;
    --neutral-800: #1f2937;
    --neutral-900: #111827;
    --neutral-950: #030712;

    /* Paleta da marca (azul da marca rgb(1, 90, 158)) */
    --primary-50: #edf3f8;
    --primary-100: #dbe8f1;
    --primary-200: #b8d1e4;
    --primary-300: #85b0d0;
    --primary-400: #4d8cbb;
    --primary-500: #1f6eaa;
    --primary-600: #015a9e;
    --primary-700: #014d88;
    --primary-800: #014172;
    --primary-900: #01345c;
    --primary-950: #00243f;

    --primary: var(--primary-600);
    --primary-lifted: var(--primary-700);
    --primary-accented: var(--primary-800);

    --secondary: var(--neutral-500);
    --secondary-lifted: var(--neutral-600);
    --secondary-accented: var(--neutral-700);

    --success: #00a63e;
    --success-lifted: #008236;
    --success-accented: #016630;

    --info: #155dfc;
    --info-lifted: #1447e6;
    --info-accented: #193cb8;

    --notice: #7f22fe;
    --notice-lifted: #7008e7;
    --notice-accented: #5d0ec0;

    --warning: #f54a00;
    --warning-lifted: #ca3500;
    --warning-accented: #9f2d00;

    --error: #e7000b;
    --error-lifted: #c10007;
    --error-accented: #9f0712;

    /* Tons escuros usados em botões e rodapé */
    --grayscale: var(--gs-navy);
    --grayscale-lifted: var(--gs-navy-2);
    --grayscale-accented: #00213a;

    --neutral: var(--neutral-500);
    --neutral-lifted: var(--neutral-600);
    --neutral-accented: var(--neutral-700);

    /* Texto */
    --text-inverted: var(--white);
    --text-muted: #5f6b7d; /* 1.59.0: mais escuro, contraste mínimo 4,5 em fundos claros */
    --text-lifted: #55647a;
    --text-accented: #3b4859;
    --text: #1c2733;

    /* Bordas */
    --border-muted: #e6eaf0;
    --border: #d6dde6;
    --border-lifted: #b6c1cf;
    --border-accented: #7d8a9c;

    /* Fundos */
    --bg: var(--white);
    --bg-muted: #f5f7fa;
    --bg-lifted: #eef2f6;
    --bg-accented: #e3e8ef;
    --bg-inverted: var(--gs-navy);

    --yellow-200: #fff085;
    --yellow-300: #ffdf20;
    --teal-300: #46edd5;
    --teal-400: #00d5be;
    --emerald-300: #5ee9b5;
    --pink-400: #fb64b6;

    --text-xs: 0.625rem;
    --text-sm: 0.75rem;
    --text-md: 0.875rem;
    --text-lg: 1rem;

    --outline-sm: 1px;
    --outline-md: 2px;
    --outline-lg: 3px;

    --rounding-sm: 0.5rem;
    --rounding-md: 0.625rem;
    --rounding-lg: 0.875rem;

    --letter-spacing: 0em;
    --disabled-opacity: 35%;

    /* ---------- Variáveis do Giga ---------- */
    --gs-font: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
    --gs-font-display: 'Plus Jakarta Sans', var(--gs-font);
    --gs-bar-h: 68px;
    --gs-glass: rgba(255, 255, 255, .82);
    --gs-glass-solid: rgba(255, 255, 255, .96);
    --gs-shadow: 0 1px 2px rgba(0, 40, 70, .04), 0 8px 24px rgba(0, 40, 70, .07);
    --gs-shadow-lg: 0 14px 40px rgba(0, 40, 70, .15);
    --gs-ease: cubic-bezier(.22, .61, .36, 1);
    --gs-max: 1240px;
    --gs-primary-rgb: 1, 90, 158;
    --gs-primary-light-rgb: 77, 140, 187;
    --gs-accent-rgb: 219, 63, 59;
    --gs-logo-h: 36px;
}

/* ---------- Modo escuro ---------- */
html.gs-dark {
    color-scheme: dark;

    --bg: #121b2b;
    --bg-muted: #0a1220;
    --bg-lifted: #172338;
    --bg-accented: #1f2d45;
    --bg-inverted: #050a14;

    --text: #e6edf5;
    --text-lifted: #c6d0dd;
    --text-muted: #95a1b2;
    --text-accented: #d3dbe6;

    --border: #26354f;
    --border-muted: #1c2940;
    --border-lifted: #344766;
    --border-accented: #55647a;

    --grayscale: #172338;
    --grayscale-lifted: #1f2d45;
    --grayscale-accented: #121b2b;

    --primary: var(--primary-500);
    --primary-lifted: var(--primary-400);
    --primary-accented: var(--primary-300);

    --gs-glass: rgba(10, 18, 32, .82);
    --gs-glass-solid: rgba(10, 18, 32, .96);
    --gs-shadow: 0 1px 2px rgba(0, 0, 0, .4), 0 10px 28px rgba(0, 0, 0, .35);
    --gs-shadow-lg: 0 16px 44px rgba(0, 0, 0, .55);
}

/* =====================================================================
   BASE
   ===================================================================== */
html { scroll-behavior: smooth; }
/* barra do topo fixa: rolagens automáticas (âncoras, campos com erro, foco) param abaixo dela */
html { scroll-padding-top: calc(var(--gs-header-h, 72px) + 12px); }

body.gs-body {
    font-family: var(--gs-font);
    background: var(--bg-muted);
    color: var(--text);
    -webkit-font-smoothing: antialiased;
    text-rendering: optimizeLegibility;
    /* sem overflow no body: em navegadores de celular isso desliga o cabeçalho fixo (sticky).
       O corte horizontal é feito nas seções abaixo do cabeçalho. */
    overflow-x: visible;
    /* o Nexus define html, body { height: 100% }: com isso o cabeçalho fixo (sticky)
       só acompanhava a rolagem até a altura da tela e depois sumia */
    height: auto;
    min-height: 100vh;
}
html { height: auto; min-height: 100%; background-color: var(--bg-muted); }
section#main-body, footer.gs-footer, .gs-promo, .gs-pagehead, .gs-cartflow, nav.master-breadcrumb { overflow-x: clip; }

body.gs-lock { overflow: hidden; }

h1, h2, h3, h4, h5, h6, .h1, .h2, .h3, .h4, .h5, .h6 {
    font-family: var(--gs-font-display, var(--gs-font));
    font-weight: 700;
    letter-spacing: -.01em;
    color: var(--gs-tx-title, var(--text));
}

a { color: var(--gs-link, var(--primary)); transition: color .15s var(--gs-ease); }
/* --gs-link: azul da marca escurecido só o necessário para ler bem sobre fundo claro (vem do Theme Manager) */
html.gs-dark { --gs-link: initial; --gs-primary-btn: initial; --gs-primary-ink: initial; }
a:hover { color: var(--primary-lifted); }

::selection { background: var(--primary-100); color: var(--gs-navy); }
html.gs-dark ::selection { background: var(--primary-800); color: #fff; }

:focus-visible { outline: 2px solid var(--primary); outline-offset: 2px; }

.gs-skip {
    position: fixed; top: .5rem; left: .5rem; z-index: 2000;
    transform: translateY(-200%);
    background: var(--gs-primary-btn, var(--primary)); color: var(--gs-primary-ink, #fff); font-weight: 700;
    padding: .7rem 1.1rem; border-radius: var(--rounding-md);
    transition: transform .16s var(--gs-ease);
}
.gs-skip:focus { transform: none; color: #fff; text-decoration: none; }

.container { max-width: var(--gs-max); }
@media (min-width: 1200px) { .container { max-width: var(--gs-max); } }
/* computador: margem lateral maior (mesma largura útil de conteúdo nas telas grandes) */
@media (min-width: 992px) { .container { padding-left: 24px; padding-right: 24px; max-width: calc(var(--gs-max) + 18px); } }

#main-body { padding-top: 1.75rem; padding-bottom: 3rem; background: transparent; min-height: 40vh; }

/* =====================================================================
   BARRA DE PROMOÇÃO
   ===================================================================== */
.gs-promo {
    background: linear-gradient(90deg, var(--gs-navy) 0, var(--primary-800) 100%);
    color: #fff;
}
.gs-promo__inner {
    max-width: var(--gs-max); margin: 0 auto; padding: .5rem 15px;
    display: flex; align-items: center; justify-content: center; flex-wrap: wrap; gap: .4rem 1rem;
    font-size: .9rem; font-weight: 600; text-align: center;
}
.gs-promo__cta {
    display: inline-flex; align-items: center; gap: .4rem;
    padding: .25rem .8rem; border-radius: 999px;
    background: var(--gs-accent-btn, var(--gs-accent)); color: var(--gs-accent-ink); font-weight: 800; font-size: .8rem;
    transition: transform .15s var(--gs-ease), filter .15s var(--gs-ease);
}
.gs-promo__cta:hover { color: var(--gs-accent-ink); text-decoration: none; transform: translateY(-1px); filter: brightness(1.05); }

/* =====================================================================
   CABEÇALHO
   ===================================================================== */
header.gs-header {
    position: -webkit-sticky; position: sticky; top: 0; z-index: 1030;
    background: transparent;
    padding: 0;
}


.gs-bar {
    background: var(--gs-glass);
    -webkit-backdrop-filter: saturate(160%) blur(14px);
    backdrop-filter: saturate(160%) blur(14px);
    border-bottom: 1px solid var(--border-muted);
    transition: background-color .18s var(--gs-ease), box-shadow .18s var(--gs-ease);
}
@supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))) {
    .gs-bar { background: var(--gs-glass-solid); }
}
.gs-bar.is-scrolled { background: var(--gs-glass-solid); box-shadow: var(--gs-shadow); }

.gs-bar__inner {
    position: relative;
    display: flex; align-items: center; gap: .5rem;
    height: var(--gs-bar-h);
    transition: height .18s var(--gs-ease);
}
.gs-bar.is-scrolled .gs-bar__inner { height: 58px; }

.gs-brand { display: inline-flex; align-items: center; min-height: 44px; flex: 0 0 auto; color: var(--text); font-weight: 800; }
.gs-brand:hover { text-decoration: none; color: var(--text); }
/* logo: altura definida no addon (Aparência → Barra de navegação), normal e com a barra reduzida */
.gs-brand__img {
    display: block; width: auto; height: var(--gs-logo-h, 36px); max-height: none;
    max-width: min(320px, calc(var(--gs-logo-h, 36px) * 6)); object-fit: contain; object-position: left center;
    transition: height .18s var(--gs-ease), max-width .18s var(--gs-ease);
}
.gs-bar.is-scrolled .gs-brand__img { height: var(--gs-logo-h-s, calc(var(--gs-logo-h, 36px) - 6px)); max-height: none; }
@media (max-width: 991.98px) {
    .gs-brand__img { height: min(var(--gs-logo-h, 36px), 44px); max-width: 180px; }
    .gs-bar.is-scrolled .gs-brand__img { height: min(var(--gs-logo-h-s, 30px), 38px); }
}
.gs-brand__text { font-size: 1.25rem; letter-spacing: -.02em; }
.gs-brand__img--dark { display: none; }
html.gs-dark .gs-brand__img--light { display: none; }
html.gs-dark .gs-brand__img--dark { display: block; }
html.gs-dark .gs-brand__img--plate { background: #fff; padding: 4px 8px; border-radius: 10px; }

/* menu principal (desktop) */
.gs-nav { display: none; flex: 1 1 auto; margin: 0 .5rem 0 1.25rem; }
.gs-menu { display: flex; align-items: center; gap: 2px; list-style: none; margin: 0; padding: 0; }
.gs-menu__item { position: relative; display: flex; align-items: center; }
.gs-menu__item.gs-has-panel--mega { position: static; }

.gs-menu__link {
    position: relative;
    display: inline-flex; align-items: center; gap: .35rem;
    height: 40px; padding: 0 .8rem;
    background: transparent; border: 0; border-radius: var(--rounding-sm);
    font-family: var(--gs-font); font-size: .95rem; font-weight: 700; letter-spacing: .005em;
    color: var(--text); white-space: nowrap; cursor: pointer;
    transition: background-color .14s var(--gs-ease), color .14s var(--gs-ease);
}
.gs-menu__link:hover, .gs-menu__item.is-open > .gs-menu__link {
    background: var(--primary-50); color: var(--primary-700); text-decoration: none;
}
html.gs-dark .gs-menu__link:hover, html.gs-dark .gs-menu__item.is-open > .gs-menu__link {
    background: rgba(var(--gs-primary-light-rgb, 91, 139, 255), .14); color: var(--primary-300);
}
.gs-menu__link::after {
    content: ""; position: absolute; left: 50%; bottom: 3px; width: 18px; height: 2px; border-radius: 2px;
    background: var(--primary); transform: translateX(-50%) scaleX(0); opacity: 0;
    transition: transform .18s var(--gs-ease), opacity .18s var(--gs-ease);
}
.gs-menu__link:hover::after, .gs-menu__item.is-open > .gs-menu__link::after { transform: translateX(-50%) scaleX(1); opacity: 1; }
.gs-menu__chev { font-size: .62rem; opacity: .6; transition: transform .18s var(--gs-ease); }
.gs-menu__item.is-open .gs-menu__chev { transform: rotate(180deg); }

@media (min-width: 992px) {
    .gs-nav { display: flex; }
    .gs-burger { display: none !important; }
}

/* painéis (mega menu e menu da conta) */
.gs-panel {
    position: absolute; top: 100%; z-index: 20;
    visibility: hidden; opacity: 0; pointer-events: none; transform: translateY(-6px);
    background: var(--bg); border: 1px solid var(--border-muted); border-radius: var(--rounding-lg);
    box-shadow: var(--gs-shadow-lg); padding: .6rem;
    transition: opacity .16s var(--gs-ease), transform .16s var(--gs-ease), visibility .16s;
}
.gs-panel::before { content: ""; position: absolute; left: 0; right: 0; top: -16px; height: 16px; }
.gs-menu__item.is-open > .gs-panel { visibility: visible; opacity: 1; pointer-events: auto; transform: none; }

.gs-panel--main { left: 0; min-width: 270px; width: max-content; max-width: 380px; margin-top: 8px; }
.gs-panel--main.gs-panel--mega {
    left: 0; right: 0; margin: 8px auto 0; width: min(960px, 100%); max-width: none;
    display: grid; grid-template-columns: minmax(0, 1fr) 260px; gap: .75rem;
}
.gs-panel--mega .gs-panel__list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .25rem; align-content: start; }
.gs-panel--account { right: 0; left: auto; min-width: 250px; margin-top: 10px; }

.gs-panel__link {
    display: flex; align-items: center; gap: .75rem;
    padding: .6rem .7rem; border-radius: var(--rounding-md);
    color: var(--text); font-weight: 600; font-size: .92rem;
    transition: background-color .14s var(--gs-ease), transform .14s var(--gs-ease);
}
.gs-panel__link:hover { background: var(--primary-50); color: var(--primary-700); text-decoration: none; }
html.gs-dark .gs-panel__link:hover { background: rgba(var(--gs-primary-light-rgb, 91, 139, 255), .12); color: var(--primary-300); }
.gs-panel--mega .gs-panel__link:hover { transform: translateX(2px); }
.gs-panel__ico {
    flex: 0 0 auto; display: inline-flex; align-items: center; justify-content: center;
    width: 38px; height: 38px; border-radius: 11px;
    background: var(--primary-50); color: var(--primary); font-size: .95rem;
    transition: background-color .14s var(--gs-ease), color .14s var(--gs-ease);
}
html.gs-dark .gs-panel__ico { background: rgba(var(--gs-primary-light-rgb, 91, 139, 255), .14); color: var(--primary-300); }
.gs-panel__link:hover .gs-panel__ico { background: var(--gs-primary-btn, var(--primary)); color: var(--gs-primary-ink, #fff); }
.gs-panel__txt { min-width: 0; }
.gs-panel__sep { margin: .35rem .5rem; border: 0; border-top: 1px solid var(--border-muted); }

.gs-panel--account .gs-panel__ico { width: 30px; height: 30px; border-radius: 9px; font-size: .8rem; }
.gs-panel--account .gs-panel__link { padding: .45rem .55rem; font-size: .9rem; }

.gs-panel__aside {
    position: relative; overflow: hidden; display: flex; flex-direction: column; justify-content: flex-end;
    padding: 1.1rem; border-radius: var(--rounding-md); color: #dbe4ee;
    background: linear-gradient(160deg, var(--gs-navy-2), var(--gs-navy));
}
.gs-panel__aside::before {
    content: ""; position: absolute; inset: -40% -30% auto -30%; height: 150%; pointer-events: none;
    background: radial-gradient(45% 55% at 30% 10%, rgba(var(--gs-primary-light-rgb, 91, 139, 255), .55), transparent 70%);
}
.gs-panel__aside > * { position: relative; }
.gs-panel__aside:hover { text-decoration: none; color: #fff; }
.gs-panel__kicker { font-size: .68rem; text-transform: uppercase; letter-spacing: .09em; color: #a9c1ff; font-weight: 700; }
.gs-panel__hl { display: block; font-size: 1.1rem; line-height: 1.25; color: #fff; margin: .35rem 0 .4rem; font-weight: 800; }
.gs-panel__desc { display: block; font-size: .8rem; line-height: 1.5; color: #b9c8e4; margin-bottom: .8rem; }
.gs-panel__cta {
    align-self: flex-start; display: inline-flex; align-items: center; gap: .4rem;
    padding: .45rem .85rem; border-radius: 999px; background: var(--gs-accent-btn, var(--gs-accent)); color: var(--gs-accent-ink);
    font-size: .8rem; font-weight: 800; transition: transform .14s var(--gs-ease);
}
.gs-panel__aside:hover .gs-panel__cta { transform: translateX(2px); }

/* ferramentas (busca, tema, carrinho, conta) */
.gs-tools { display: flex; align-items: center; gap: .15rem; margin-left: auto; flex: 0 0 auto; }
.gs-iconbtn {
    position: relative; display: inline-flex; align-items: center; justify-content: center;
    width: 44px; height: 44px; min-width: 44px; padding: 0;
    background: transparent; border: 0; border-radius: 12px; box-shadow: none;
    color: var(--text); font-size: 1.02rem; line-height: 1; cursor: pointer;
    transition: background-color .14s var(--gs-ease), color .14s var(--gs-ease);
}
.gs-iconbtn:hover, .gs-iconbtn:focus { background: var(--primary-50); color: var(--primary-700); text-decoration: none; }
html.gs-dark .gs-iconbtn:hover, html.gs-dark .gs-iconbtn:focus { background: rgba(var(--gs-primary-light-rgb, 91, 139, 255), .14); color: var(--primary-300); }

.gs-badge {
    display: inline-flex; align-items: center; justify-content: center;
    min-width: 18px; height: 18px; padding: 0 5px; border-radius: 999px;
    background: var(--gs-primary-btn, var(--primary)); color: var(--gs-primary-ink, #fff); font-size: .65rem; font-weight: 800; line-height: 1;
}
.gs-badge--float { position: absolute; top: 4px; right: 3px; pointer-events: none; box-shadow: 0 0 0 2px var(--gs-glass-solid); }
.gs-badge--float.is-empty { display: none; }
.gs-badge--inline { margin-left: .25rem; }

.gs-ico-light, .gs-ico-dark, .gs-ico-system { display: none !important; }
html[data-gs-theme="light"] .gs-ico-light,
html[data-gs-theme="dark"] .gs-ico-dark,
html[data-gs-theme="system"] .gs-ico-system { display: inline-block !important; }

/* sino de notificações (cliente logado) */
.gs-menu--bell { margin: 0; }
.gs-menu--bell .gs-menu__item { position: relative; }
.gs-badge--alert { background: var(--error); color: #fff; }
.gs-bellbtn .gs-badge--float { top: 5px; right: 4px; min-width: 16px; height: 16px; padding: 0 4px; font-size: .6rem; }
.gs-panel--bell { right: -6px; left: auto; width: 340px; max-width: calc(100vw - 24px); margin-top: 10px; padding: 0; overflow: hidden; }
.gs-bell__head {
    display: flex; align-items: center; gap: .5rem; margin: 0; padding: .8rem 1rem;
    border-bottom: 1px solid var(--border-muted); font-weight: 800; font-size: .92rem; color: var(--text);
}
.gs-bell__count {
    display: inline-flex; align-items: center; justify-content: center; min-width: 20px; height: 20px; padding: 0 6px;
    border-radius: 999px; background: color-mix(in srgb, var(--error) 12%, transparent); color: var(--error); font-size: .72rem; font-weight: 800;
}
.gs-bell__list { max-height: min(60vh, 380px); overflow-y: auto; padding: .35rem; }
.gs-bell__item {
    display: flex; align-items: flex-start; gap: .7rem; padding: .65rem .7rem; border-radius: var(--rounding-md);
    color: var(--text); font-size: .86rem; line-height: 1.45; text-decoration: none;
    transition: background-color .14s var(--gs-ease);
}
.gs-bell__item + .gs-bell__item { margin-top: 2px; }
.gs-bell__item:hover { background: var(--bg-muted); color: var(--text); text-decoration: none; }
.gs-bell__ico {
    flex: 0 0 auto; display: inline-flex; align-items: center; justify-content: center;
    width: 30px; height: 30px; border-radius: 9px; font-size: .85rem;
    --c: var(--info, #0ea5e9); color: var(--c); background: color-mix(in srgb, var(--c) 13%, transparent);
}
.gs-bell__item--danger .gs-bell__ico { --c: var(--error); }
.gs-bell__item--warning .gs-bell__ico { --c: #d97706; }
.gs-bell__item--success .gs-bell__ico { --c: var(--success); }
html.gs-dark .gs-bell__ico { --c: #60a5fa; }
html.gs-dark .gs-bell__item--danger .gs-bell__ico, html.gs-dark .gs-bell__count { --c: #ff6b72; color: #ff6b72; }
html.gs-dark .gs-bell__item--warning .gs-bell__ico { --c: #f5a524; }
html.gs-dark .gs-bell__item--success .gs-bell__ico { --c: #4ade80; }
.gs-bell__msg { min-width: 0; padding-top: .3rem; }
.gs-bell__none { display: flex; align-items: center; gap: .5rem; margin: 0; padding: 1rem .7rem; color: var(--text-muted); font-size: .88rem; }
html.gs-dark .gs-panel__link--admin .gs-panel__ico, .gs-panel__link--admin .gs-panel__ico { --c: #d97706; color: var(--c); background: color-mix(in srgb, var(--c) 13%, transparent); }
@media (max-width: 575.98px) { .gs-menu--bell .gs-menu__item { position: static; } .gs-panel--bell { right: 12px; left: 12px; width: auto; } }

.gs-menu--account { margin-left: .25rem; }
.gs-menu--account .gs-menu__link { padding: 0 .65rem; border: 1px solid var(--border); background: var(--bg); }
.gs-menu--account .gs-menu__label { max-width: 130px; overflow: hidden; text-overflow: ellipsis; }
.gs-menu__user { font-size: 1.15rem; color: var(--primary); }
@media (max-width: 767.98px) { .gs-menu--account .gs-menu__label, .gs-menu--account .gs-menu__chev { display: none; } }

/* botões do cabeçalho / home */
.gs-btn {
    display: inline-flex; align-items: center; justify-content: center; gap: .5rem;
    padding: .55rem 1.1rem; border-radius: var(--rounding-md); border: 1.5px solid transparent;
    font-family: var(--gs-font); font-size: .92rem; font-weight: 800; line-height: 1.2; cursor: pointer; white-space: nowrap;
    transition: transform .15s var(--gs-ease), box-shadow .15s var(--gs-ease), background-color .15s var(--gs-ease), color .15s var(--gs-ease), border-color .15s var(--gs-ease);
}
.gs-btn:hover { text-decoration: none; transform: translateY(-2px); }
.gs-btn:active { transform: translateY(1px); }
.gs-btn--solid { background: var(--gs-primary-btn, var(--primary)); border-color: var(--gs-primary-btn, var(--primary)); color: var(--gs-primary-ink, #fff); box-shadow: 0 6px 16px rgba(var(--gs-primary-rgb, 36, 80, 224), .28); }
.gs-btn--solid:hover { background: var(--gs-primary-btn, var(--primary-lifted)); border-color: var(--gs-primary-btn, var(--primary-lifted)); color: var(--gs-primary-ink, #fff); filter: brightness(1.07); box-shadow: 0 10px 24px rgba(var(--gs-primary-rgb, 36, 80, 224), .38); }
.gs-btn--ghost { background: transparent; color: var(--text); border-color: transparent; }
.gs-btn--ghost:hover { background: var(--primary-50); color: var(--primary-700); }
html.gs-dark .gs-btn--ghost:hover { background: rgba(var(--gs-primary-light-rgb, 91, 139, 255), .14); color: var(--primary-300); }
.gs-btn--accent { background: var(--gs-accent-btn, var(--gs-accent)); border-color: var(--gs-accent-btn, var(--gs-accent)); color: var(--gs-accent-ink); box-shadow: 0 8px 22px rgba(var(--gs-accent-rgb, 255, 176, 32), .35); }
.gs-btn--accent:hover { color: var(--gs-accent-ink); filter: brightness(1.06); box-shadow: 0 12px 28px rgba(var(--gs-accent-rgb, 255, 176, 32), .45); }
.gs-btn--outline { background: transparent; color: var(--primary); border-color: var(--primary); }
.gs-btn--outline:hover { background: var(--gs-primary-btn, var(--primary)); color: var(--gs-primary-ink, #fff); box-shadow: 0 8px 20px rgba(var(--gs-primary-rgb, 36, 80, 224), .28); }
.gs-btn--outline-light { background: rgba(255, 255, 255, .08); color: #fff; border-color: rgba(255, 255, 255, .45); }
.gs-btn--outline-light:hover { background: #fff; color: var(--gs-navy); }
.gs-btn--lg { padding: .85rem 1.6rem; font-size: 1rem; border-radius: var(--rounding-lg); }
.gs-btn--block { display: flex; width: 100%; }
@media (max-width: 767.98px) { .gs-hide-sm { display: none !important; } }

/* gaveta mobile */
.gs-drawer { position: fixed; inset: 0; z-index: 1150; }
.gs-drawer[hidden] { display: none; }
.gs-drawer__backdrop { position: absolute; inset: 0; background: rgba(4, 8, 18, .6); opacity: 0; cursor: pointer; transition: opacity .22s var(--gs-ease); }
.gs-drawer.is-open .gs-drawer__backdrop { opacity: 1; }
.gs-drawer__panel {
    position: absolute; top: 0; bottom: 0; left: 0; width: min(92vw, 400px);
    display: flex; flex-direction: column; gap: 1rem;
    padding: 1rem 1.1rem calc(1.4rem + env(safe-area-inset-bottom, 0px));
    background: var(--bg); box-shadow: 18px 0 48px rgba(4, 8, 18, .3);
    overflow-y: auto; overscroll-behavior: contain; -webkit-overflow-scrolling: touch;
    transform: translateX(-100%); transition: transform .24s var(--gs-ease);
}
.gs-drawer.is-open .gs-drawer__panel { transform: none; }
.gs-drawer__head { display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
.gs-drawer__search { position: relative; margin: 0; }
.gs-drawer__search i { position: absolute; left: .9rem; top: 50%; transform: translateY(-50%); color: var(--text-muted); font-size: .9rem; }
.gs-drawer__search input {
    width: 100%; min-height: 46px; padding: 0 .9rem 0 2.4rem; font-size: 16px;
    border: 1px solid var(--border); border-radius: var(--rounding-md); background: var(--bg-muted); color: var(--text);
}
.gs-drawer__nav { display: flex; flex-direction: column; gap: 2px; }
.gs-drawer__group, .gs-drawer__link {
    display: flex; align-items: center; justify-content: space-between; gap: .6rem;
    width: 100%; min-height: 48px; padding: .6rem .75rem; border: 0; border-radius: var(--rounding-md);
    background: transparent; font-family: var(--gs-font); font-size: 1rem; font-weight: 700; color: var(--text); text-align: left; cursor: pointer;
}
.gs-drawer__link:hover, .gs-drawer__group:hover { background: var(--primary-50); color: var(--primary-700); text-decoration: none; }
html.gs-dark .gs-drawer__link:hover, html.gs-dark .gs-drawer__group:hover { background: rgba(var(--gs-primary-light-rgb, 91, 139, 255), .14); color: var(--primary-300); }
.gs-drawer__group i { font-size: .8rem; color: var(--text-muted); transition: transform .18s var(--gs-ease); }
.gs-drawer__group[aria-expanded="true"] { color: var(--primary-700); }
.gs-drawer__group[aria-expanded="true"] i { transform: rotate(180deg); }
.gs-drawer__sub { display: flex; flex-direction: column; padding: 0 0 .4rem .75rem; }
.gs-drawer__sub[hidden] { display: none; }
.gs-drawer__sub a {
    display: flex; align-items: center; gap: .6rem; min-height: 44px; padding: .35rem .75rem;
    border-left: 2px solid var(--border-muted); font-size: .92rem; color: var(--text-lifted);
}
.gs-drawer__sub a i { width: 1.1rem; text-align: center; color: var(--primary); }
.gs-drawer__sub a:hover { color: var(--primary-700); border-left-color: var(--primary); text-decoration: none; }
.gs-drawer__cta { display: flex; gap: .5rem; }
.gs-drawer__cta .gs-btn { flex: 1 1 auto; }
.gs-drawer__theme {
    display: grid; grid-template-columns: repeat(3, 1fr); gap: 4px; padding: 4px; margin-top: auto;
    border: 1px solid var(--border); border-radius: var(--rounding-md); background: var(--bg-muted);
}
.gs-drawer__theme button {
    display: inline-flex; flex-direction: column; align-items: center; justify-content: center; gap: 3px;
    min-height: 46px; border: 0; border-radius: 9px; background: transparent; color: var(--text-lifted);
    font-size: .72rem; font-weight: 700; cursor: pointer;
}
.gs-drawer__theme button.is-active { background: var(--bg); color: var(--primary-700); box-shadow: var(--gs-shadow); }
html.gs-dark .gs-drawer__theme button.is-active { color: var(--primary-300); }

/* breadcrumb */
.master-breadcrumb { background: transparent; border: 0; }
.master-breadcrumb .breadcrumb { background: transparent; padding: 1rem 0 0; margin: 0; font-size: .85rem; }
.gs-page-homepage .master-breadcrumb { display: none; }

/* =====================================================================
   HOME
   ===================================================================== */
.gs-page-homepage #main-body { padding: 0; }
.gs-page-homepage #main-body > div > .row { margin: 0; }
.gs-page-homepage #main-body .primary-content { padding: 0; }

.gs-hero {
    position: relative; overflow: hidden; color: #fff;
    background:
        radial-gradient(1100px 380px at 100% -20%, var(--primary-600) 0, transparent 55%),
        linear-gradient(155deg, var(--gs-navy) 0, var(--gs-navy-2) 100%);
    padding: 4.5rem 0 8rem;
}
.gs-hero__inner { display: grid; grid-template-columns: 1.1fr .9fr; align-items: center; gap: 2.5rem; }
.gs-hero__title { color: #fff; font-size: clamp(1.7rem, 4.4vw, 2.7rem); font-weight: 700; line-height: 1.12; margin: 1rem 0 .9rem; letter-spacing: -.02em; }
.gs-hero__lead { color: rgba(255, 255, 255, .82); font-size: 1.1rem; line-height: 1.6; max-width: 36rem; margin-bottom: 1.75rem; }
.gs-hero__actions { display: flex; flex-wrap: wrap; gap: .75rem; margin-bottom: 1.5rem; }
.gs-hero__bullets { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: .5rem 1.25rem; color: rgba(255, 255, 255, .8); font-size: .9rem; font-weight: 600; }
.gs-hero__bullets i { color: var(--gs-accent); margin-right: .3rem; }

.gs-chip {
    display: inline-flex; align-items: center; gap: .4rem; padding: .3rem .85rem; border-radius: 999px;
    background: var(--primary-50); color: var(--primary-700); font-size: .82rem; font-weight: 800;
}
.gs-chip--light { background: rgba(255, 255, 255, .12); color: #eef5f3; border: 1px solid rgba(255, 255, 255, .18); }

.gs-hero__art { position: relative; min-height: 260px; display: flex; align-items: center; justify-content: center; }
.gs-mock { position: relative; z-index: 2; width: 100%; max-width: 400px; background: #fff; border-radius: 16px; box-shadow: 0 34px 70px rgba(0, 0, 0, .4); overflow: hidden; }
.gs-mock__bar { display: flex; align-items: center; gap: 6px; padding: 12px 14px; background: #eef2f9; }
.gs-mock__bar span { width: 10px; height: 10px; border-radius: 50%; background: #cbd5e1; }
.gs-mock__bar span:nth-child(1) { background: #ff6b5e; }
.gs-mock__bar span:nth-child(2) { background: #ffbd44; }
.gs-mock__bar span:nth-child(3) { background: #22c55e; }
.gs-mock__bar em { margin-left: .6rem; font-style: normal; font-size: .72rem; color: #64748b; }
.gs-mock__body { display: flex; min-height: 190px; }
.gs-mock__side { width: 32%; background: linear-gradient(180deg, var(--primary-600), var(--primary-800)); }
.gs-mock__main { flex: 1; padding: 18px; }
.gs-mock__line { height: 12px; border-radius: 6px; background: #e2e8f0; margin-bottom: 12px; }
.gs-mock__line.w90 { width: 90%; } .gs-mock__line.w75 { width: 75%; } .gs-mock__line.w60 { width: 60%; }
.gs-mock__tiles { display: flex; gap: 10px; margin-top: 18px; }
.gs-mock__tiles span { flex: 1; height: 48px; border-radius: 9px; background: #eef2f9; }
.gs-mock__tiles span:first-child { background: var(--primary-100); }
.gs-blob { position: absolute; border-radius: 50%; opacity: .92; }
.gs-blob--1 { width: 92px; height: 92px; background: var(--gs-accent); top: 6%; right: 2%; z-index: 1; }
.gs-blob--2 { width: 70px; height: 70px; background: var(--primary-400); bottom: 4%; left: 0; z-index: 3; }

/* serviços */
.gs-services { position: relative; z-index: 2; margin-top: -5.5rem; margin-bottom: 3rem; }
.gs-services__grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(230px, 1fr)); gap: 1.25rem; }
.gs-pcard {
    position: relative; display: flex; flex-direction: column; padding: 1.75rem 1.5rem;
    background: var(--bg); border: 1px solid var(--border-muted); border-radius: var(--rounding-lg); box-shadow: var(--gs-shadow);
    transition: transform .18s var(--gs-ease), box-shadow .18s var(--gs-ease), border-color .18s var(--gs-ease);
}
.gs-pcard:hover { transform: translateY(-5px); box-shadow: var(--gs-shadow-lg); }
.gs-pcard--popular { border-color: var(--primary); box-shadow: 0 14px 34px rgba(var(--gs-primary-rgb, 36, 80, 224), .2); }
.gs-pcard__badge {
    position: absolute; top: -12px; left: 50%; transform: translateX(-50%);
    background: var(--gs-accent-btn, var(--gs-accent)); color: var(--gs-accent-ink); font-size: .72rem; font-weight: 800; white-space: nowrap;
    padding: .3rem .9rem; border-radius: 999px; box-shadow: 0 6px 14px rgba(var(--gs-accent-rgb, 219, 63, 59), .3);
}
.gs-pcard__icon {
    display: inline-flex; align-items: center; justify-content: center;
    width: 56px; height: 56px; border-radius: 15px; margin-bottom: 1rem;
    background: var(--primary-50); color: var(--primary); font-size: 1.45rem;
}
html.gs-dark .gs-pcard__icon { background: rgba(var(--gs-primary-light-rgb, 91, 139, 255), .14); color: var(--primary-300); }
.gs-pcard__title { font-size: 1.15rem; margin-bottom: .5rem; }
.gs-pcard__desc { color: var(--text-lifted); font-size: .92rem; line-height: 1.55; flex: 1; margin-bottom: 1.1rem; }

/* busca de domínio */
.home-domain-search.gs-domain { background: transparent !important; padding: 0; margin: 0; border: 0; }
.gs-domain { margin: 0 0 3.5rem; }
.gs-domain__card {
    padding: 2rem; background: var(--bg); border: 1px solid var(--border-muted);
    border-radius: var(--rounding-lg); box-shadow: var(--gs-shadow);
}
.gs-domain__head h2 { text-align: center; font-size: 1.6rem; margin: 0 0 1.25rem; }
.gs-domain__group { position: relative; display: flex; flex-wrap: nowrap; gap: .5rem; max-width: 820px; margin: 0 auto; }
.gs-domain__icon { position: absolute; left: 1.15rem; top: 50%; transform: translateY(-50%); color: var(--text-muted); z-index: 3; pointer-events: none; }
.gs-domain__group .form-control {
    height: 56px; padding-left: 2.9rem; font-size: 1.05rem; border-radius: var(--rounding-md) !important;
    background: var(--bg-muted); border: 1px solid var(--border); flex: 1 1 auto;
}
.gs-domain__group .form-control:focus { background: var(--bg); }
.gs-domain__group .input-group-append { gap: .5rem; margin: 0; }
.gs-domain__group .btn { height: 56px; padding: 0 1.6rem; border-radius: var(--rounding-md) !important; font-weight: 800; }
.gs-domain__foot { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 1rem; max-width: 820px; margin: 1.25rem auto 0; }
.gs-domain .gs-tlds { display: flex; flex-wrap: wrap; align-items: center; gap: .6rem 1.5rem; list-style: none; margin: 0; padding: 0; }
.gs-domain .gs-tlds li { display: inline-flex; align-items: center; gap: .5rem; margin: 0; color: var(--text-lifted); font-weight: 700; font-size: .9rem; }
.gs-domain .gs-tlds img { height: 22px; width: auto; }
.gs-domain__all { font-weight: 800; font-size: .9rem; }
.gs-domain__all i { font-size: .75rem; margin-left: .25rem; }

/* seções genéricas */
.gs-section { padding: 3rem 0; }
.gs-section__head { text-align: center; max-width: 46rem; margin: 0 auto 2rem; }
.gs-section__head--sub { margin-top: 3rem; }
.gs-section__title { font-size: clamp(1.5rem, 3vw, 2rem); margin: 0; }

.gs-features { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.25rem; }
.gs-feature {
    display: flex; gap: 1rem; align-items: flex-start; padding: 1.4rem 1.25rem;
    background: var(--bg); border: 1px solid var(--border-muted); border-radius: var(--rounding-lg); box-shadow: var(--gs-shadow);
    transition: transform .18s var(--gs-ease), box-shadow .18s var(--gs-ease), border-color .18s var(--gs-ease);
}
.gs-feature:hover { transform: translateY(-3px); box-shadow: var(--gs-shadow-lg); border-color: var(--primary-200); }
.gs-feature__ico {
    flex: 0 0 auto; display: inline-flex; align-items: center; justify-content: center;
    width: 48px; height: 48px; border-radius: 13px; background: var(--primary-50); color: var(--primary); font-size: 1.15rem;
}
html.gs-dark .gs-feature__ico { background: rgba(var(--gs-primary-light-rgb, 91, 139, 255), .14); color: var(--primary-300); }
.gs-feature__title { font-size: 1.02rem; margin: 0 0 .35rem; }
.gs-feature__text { margin: 0; color: var(--text-lifted); font-size: .9rem; line-height: 1.55; }

.gs-stats { background: linear-gradient(135deg, var(--primary-600) 0, var(--primary-700) 100%); color: #fff; padding: 3rem 0; margin: 1rem 0 2rem; }
.gs-stats__grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1rem; text-align: center; }
.gs-stat + .gs-stat { border-left: 1px solid rgba(255, 255, 255, .18); }
.gs-stat__num { font-size: 2.6rem; font-weight: 800; line-height: 1; }
.gs-stat__label { font-weight: 800; margin-top: .5rem; }
.gs-stat__sub { color: rgba(255, 255, 255, .78); font-size: .82rem; margin-top: .2rem; }

.gs-quotes { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.25rem; }
.gs-quote { margin: 0; padding: 1.75rem; background: var(--bg); border: 1px solid var(--border-muted); border-radius: var(--rounding-lg); box-shadow: var(--gs-shadow); }
.gs-quote blockquote { margin: 0 0 1.25rem; font-size: .96rem; line-height: 1.6; }
.gs-quote figcaption strong { display: block; font-size: .92rem; }
.gs-quote figcaption small { color: var(--text-lifted); }

.gs-cta { background: linear-gradient(155deg, var(--gs-navy), var(--gs-navy-2)); color: #fff; padding: 3.25rem 0; margin: 1rem 0 0; }
.gs-cta__inner { display: flex; align-items: center; justify-content: space-between; gap: 2rem; flex-wrap: wrap; }
.gs-cta__title { color: #fff; margin: 0 0 .4rem; font-size: 1.7rem; }
.gs-cta__text { color: rgba(255, 255, 255, .82); margin: 0; max-width: 40rem; }

.gs-faq { max-width: 820px; margin: 0 auto; }
.gs-faq__item { background: var(--bg); border: 1px solid var(--border-muted); border-radius: var(--rounding-md); margin-bottom: .8rem; overflow: hidden; }
.gs-faq__item[open] { border-color: var(--primary-200); box-shadow: var(--gs-shadow); }
.gs-faq__q {
    cursor: pointer; list-style: none; padding: 1.05rem 1.3rem; font-weight: 800; font-size: 1rem;
    display: flex; align-items: center; justify-content: space-between; gap: 1rem; color: var(--text);
}
.gs-faq__q::-webkit-details-marker { display: none; }
/* ícone em V (na cor da marca): aponta para baixo e vira para cima ao abrir */
.gs-faq__q::after {
    content: ""; display: block; flex: 0 0 22px; width: 22px; height: 22px; background: var(--primary);
    -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E") center / contain no-repeat; mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E") center / contain no-repeat;
    transition: transform .25s var(--gs-ease);
}
.gs-faq__item[open] .gs-faq__q::after { transform: rotate(180deg); }
.gs-faq__a { padding: 0 1.3rem 1.2rem; color: var(--text-lifted); line-height: 1.7; }

.gs-tiles { display: grid; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); gap: 1rem; }
.gs-tile {
    display: flex; flex-direction: column; align-items: center; gap: .7rem; text-align: center;
    padding: 1.4rem 1rem; background: var(--bg); border: 1px solid var(--border-muted); border-radius: var(--rounding-lg);
    color: var(--text); font-weight: 800; font-size: .92rem; box-shadow: var(--gs-shadow);
    transition: transform .18s var(--gs-ease), border-color .18s var(--gs-ease), box-shadow .18s var(--gs-ease);
}
.gs-tile:hover { transform: translateY(-3px); border-color: var(--primary); color: var(--primary-700); text-decoration: none; box-shadow: var(--gs-shadow-lg); }
.gs-tile__ico {
    display: inline-flex; align-items: center; justify-content: center; width: 48px; height: 48px;
    border-radius: 13px; background: var(--primary-50); color: var(--primary); font-size: 1.2rem;
}
html.gs-dark .gs-tile__ico { background: rgba(var(--gs-primary-light-rgb, 91, 139, 255), .14); color: var(--primary-300); }

/* =====================================================================
   RODAPÉ
   ===================================================================== */
footer.gs-footer {
    position: relative; margin-top: 3rem; padding: 0; overflow: hidden; color: #dbe4ee;
    background: linear-gradient(180deg, var(--gs-navy) 0, #001a30 100%);
}
footer.gs-footer::before {
    content: ""; position: absolute; inset: 0; pointer-events: none;
    background: radial-gradient(60rem 26rem at 12% 0, rgba(var(--gs-primary-rgb, 73, 128, 117), .22) 0, transparent 62%);
}
footer.gs-footer > * { position: relative; }
footer.gs-footer a { color: #dbe4ee; }
footer.gs-footer a:hover { color: #fff; text-decoration: none; }

.gs-ft-trust { border-bottom: 1px solid rgba(255, 255, 255, .1); }
.gs-ft-trust__grid { list-style: none; margin: 0; padding: 1.3rem 0; display: flex; flex-wrap: wrap; justify-content: space-between; gap: 1rem 1.5rem; }
.gs-ft-trust__item { display: flex; align-items: center; gap: .7rem; }
.gs-ft-trust__ico {
    display: inline-flex; align-items: center; justify-content: center; width: 36px; height: 36px; border-radius: 10px;
    background: rgba(255, 255, 255, .07); border: 1px solid rgba(255, 255, 255, .12); color: var(--gs-ft-accent); font-size: .95rem;
}
.gs-ft-trust__txt { font-size: .88rem; font-weight: 700; color: #e6edf4; }

.gs-ft-main { display: grid; grid-template-columns: 1fr 2fr; gap: 2.5rem; padding: 3rem 0 2rem; }
.gs-ft-brand__logo { display: inline-flex; align-items: center; min-height: 44px; margin-bottom: .75rem; }
.gs-ft-brand__img { max-height: 36px; max-width: 200px; width: auto; height: auto; }
.gs-ft-brand__img--plate { background: #fff; padding: 6px 10px; border-radius: 10px; }
.gs-ft-brand__tag { color: #a9bacb; font-size: .92rem; line-height: 1.6; max-width: 26rem; margin-bottom: 1rem; }
.gs-ft-social .btn-icon {
    width: 40px; height: 40px; display: inline-flex; align-items: center; justify-content: center; padding: 0;
    background: rgba(255, 255, 255, .07); border: 1px solid rgba(255, 255, 255, .12); border-radius: 11px; color: #e6edf4;
}
.gs-ft-social .btn-icon:hover { background: var(--gs-primary-btn, var(--primary)); border-color: var(--gs-primary-btn, var(--primary)); color: var(--gs-primary-ink, #fff); transform: translateY(-2px); }

.gs-ft-nav { display: grid; grid-template-columns: repeat(auto-fit, minmax(128px, 1fr)); gap: 1.75rem 1.25rem; }
.gs-fcol__title {
    position: relative; margin: 0 0 1rem; padding-bottom: .55rem;
    font-size: .76rem; font-weight: 800; text-transform: uppercase; letter-spacing: .09em; color: #9fb3c8;
}
.gs-fcol__title::after { content: ""; position: absolute; left: 0; bottom: 0; width: 24px; height: 2px; border-radius: 2px; background: var(--gs-ft-accent); }
.gs-fcol ul { list-style: none; margin: 0; padding: 0; }
.gs-fcol li { margin-bottom: .1rem; }
.gs-fcol a { display: inline-flex; align-items: center; min-height: 32px; font-size: .9rem; transition: color .14s ease, transform .18s var(--gs-ease); }
.gs-fcol a:hover { transform: translateX(3px); }

/* Selo Reclame Aqui: faixa centralizada acima do copyright (o cartão é branco nos dois
   modos, porque o selo oficial é feito para fundo claro) */
.gs-ft-ra { display: flex; justify-content: center; padding: 1.25rem 0; border-top: 1px solid rgba(255, 255, 255, .1); }
.gs-ft-ra--cartonly { position: absolute; left: -9999px; top: 0; width: 420px; border: 0; padding: 0; }
.gs-ra { display: flex; align-items: center; gap: 12px; max-width: 460px; padding: 12px 14px; background: #fff; border: 1px solid #e2e8f0; border-radius: 10px; text-align: left; }
.gs-ra__seal { flex: 0 0 auto; line-height: 0; }
.gs-ra__seal:empty { display: none; }
.gs-ra__txt { font-size: .82rem; line-height: 1.4; color: #475569; }
.gs-ra__txt strong { display: block; color: #0f172a; font-size: .86rem; }
.gs-ft-bottom { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: .85rem 1.5rem; padding: 1.25rem 0 1.6rem; border-top: 1px solid rgba(255, 255, 255, .1); }
footer.gs-footer .copyright { color: #9fb3c8; font-size: .85rem; }
.gs-ft-actions { display: flex; align-items: center; flex-wrap: wrap; gap: .6rem 1rem; }
.gs-ft-pay { display: flex; flex-wrap: wrap; gap: .4rem; list-style: none; margin: 0; padding: 0; }
.gs-pay {
    display: inline-flex; align-items: center; height: 32px; padding: 0 .8rem; border-radius: 9px;
    background: rgba(255, 255, 255, .07); border: 1px solid rgba(255, 255, 255, .12); color: #e6edf4; font-size: .78rem; font-weight: 800;
}
.gs-locale-btn {
    display: inline-flex; align-items: center; gap: .5rem; min-height: 40px; padding: 0 1rem; border-radius: 999px;
    background: rgba(255, 255, 255, .07); border: 1px solid rgba(255, 255, 255, .14); color: #e6edf4; font-size: .85rem; font-weight: 700; cursor: pointer;
}
.gs-locale-btn:hover { border-color: var(--gs-accent); color: #fff; }

/* =====================================================================
   COMPONENTES DO NEXUS (reestilizados)
   ===================================================================== */
.btn { font-family: var(--gs-font); font-weight: 700; border-radius: var(--rounding-md); transition: transform .15s var(--gs-ease), box-shadow .15s var(--gs-ease), background-color .15s var(--gs-ease), border-color .15s var(--gs-ease); }
.btn:hover:not(:disabled):not(.disabled):not(.btn-icon):not(.btn-link):not(.btn-return-to-admin) { transform: translateY(-1px); }

.btn-primary, body .btn-primary {
    background: var(--gs-primary-btn, var(--primary)); border-color: var(--gs-primary-btn, var(--primary)); color: var(--gs-primary-ink, #fff);
    box-shadow: 0 6px 16px rgba(var(--gs-primary-rgb, 36, 80, 224), .25);
}
.btn-primary:hover, .btn-primary:focus, .btn-primary:active,
.btn-primary:not(:disabled):not(.disabled):active, .show > .btn-primary.dropdown-toggle {
    background: var(--primary-lifted); border-color: var(--primary-lifted); color: #fff;
    box-shadow: 0 10px 24px rgba(var(--gs-primary-rgb, 36, 80, 224), .35);
}
.btn-outline-primary { color: var(--primary); border-color: var(--primary); background: transparent; }
.btn-outline-primary:hover, .btn-outline-primary:focus, .btn-outline-primary:not(:disabled):not(.disabled):active {
    background: var(--gs-primary-btn, var(--primary)); border-color: var(--gs-primary-btn, var(--primary)); color: var(--gs-primary-ink, #fff);
}
.btn-secondary { background: var(--gs-navy-2); border-color: var(--gs-navy-2); color: #fff; }
.btn-secondary:hover { background: var(--gs-navy); border-color: var(--gs-navy); color: #fff; }
.btn-default { background: var(--bg); border: 1px solid var(--border); color: var(--text); }
.btn-default:hover, .btn-default:focus { background: var(--primary-50); border-color: var(--primary-200); color: var(--primary-700); }
html.gs-dark .btn-default:hover { background: rgba(var(--gs-primary-light-rgb, 91, 139, 255), .14); color: var(--primary-300); }
.btn-link { color: var(--primary); }
.btn-lg { border-radius: var(--rounding-lg); }

.text-primary { color: var(--primary) !important; }
.bg-primary, .badge-primary { background-color: var(--primary) !important; }
.badge { border-radius: 999px; font-weight: 800; }

.card, .panel {
    background: var(--bg); border: 1px solid var(--border-muted); border-radius: var(--rounding-lg);
    box-shadow: var(--gs-shadow); color: var(--text);
}
.card-header, .panel-heading { background: transparent; border-bottom: 1px solid var(--border-muted); font-weight: 800; color: var(--text); }
.card-footer { background: transparent; border-top: 1px solid var(--border-muted); }
.card-title { color: var(--text); }

.form-control, .custom-select, .input-group-text, select.form-control, textarea.form-control {
    border-color: var(--border); border-radius: var(--rounding-md); background-color: var(--bg); color: var(--text);
}
.form-control, .custom-select { min-height: 44px; }
.form-control:focus, .custom-select:focus { border-color: var(--primary); box-shadow: 0 0 0 3px rgba(51, 103, 245, .2); background-color: var(--bg); color: var(--text); }
.input-group-text { background: var(--bg-lifted); color: var(--text-lifted); }
.input-group > .form-control:not(:last-child), .input-group > .input-group-prepend > .input-group-text { border-radius: var(--rounding-md) 0 0 var(--rounding-md); }
.form-control::placeholder { color: var(--text-muted); }
label { font-weight: 700; }
.custom-control-input:checked ~ .custom-control-label::before { background-color: var(--primary); border-color: var(--primary); }

.table { color: var(--text); }
.table thead th {
    background: var(--bg-lifted); border-bottom: 1px solid var(--border); color: var(--text-lifted);
    font-size: .74rem; font-weight: 800; letter-spacing: .05em; text-transform: uppercase;
}
.table td, .table th { border-color: var(--border-muted); vertical-align: middle; }
.table-hover tbody tr:hover { background: var(--primary-50); color: var(--text); }
html.gs-dark .table-hover tbody tr:hover { background: rgba(var(--gs-primary-light-rgb, 91, 139, 255), .1); }
.table-list tbody tr { background: var(--bg); }

.alert { border: 0; border-left: 4px solid transparent; border-radius: var(--rounding-md); box-shadow: var(--gs-shadow); }
.alert-success { background: #e8f8ef; border-left-color: var(--success); color: #146c43; }
.alert-info { background: #eaf1ff; border-left-color: var(--info); color: #1b4fc4; }
.alert-warning { background: #fff5e3; border-left-color: #f59e0b; color: #8a5200; }
.alert-danger { background: #fdecec; border-left-color: var(--error); color: #a30a14; }

.dropdown-menu { background: var(--bg); border: 1px solid var(--border-muted); border-radius: var(--rounding-md); box-shadow: var(--gs-shadow-lg); padding: .4rem; }
.dropdown-item { color: var(--text); border-radius: 9px; font-weight: 600; }
.dropdown-item:hover, .dropdown-item:focus { background: var(--primary-50); color: var(--primary-700); }

.nav-tabs { border-bottom: 1px solid var(--border); }
.nav-tabs .nav-link { color: var(--text-lifted); font-weight: 700; border: 0; border-bottom: 2px solid transparent; border-radius: 0; }
.nav-tabs .nav-link:hover { color: var(--primary); border-color: transparent; border-bottom-color: var(--primary-200); }
.nav-tabs .nav-link.active, .nav-tabs .nav-item.show .nav-link { color: var(--primary); background: transparent; border-color: transparent; border-bottom-color: var(--primary); }

.page-link { color: var(--primary); background: var(--bg); border-color: var(--border); border-radius: var(--rounding-sm) !important; margin: 0 2px; }
.page-item.active .page-link { background: var(--gs-primary-btn, var(--primary)); border-color: var(--gs-primary-btn, var(--primary)); color: var(--gs-primary-ink, #fff); }

.modal-content { background: var(--bg); color: var(--text); border: 1px solid var(--border-muted); border-radius: var(--rounding-lg); box-shadow: var(--gs-shadow-lg); }
.modal-header, .modal-footer { border-color: var(--border-muted); }
.popover { background: var(--bg); border-color: var(--border-muted); border-radius: var(--rounding-md); box-shadow: var(--gs-shadow-lg); }
.popover-body { color: var(--text); }

/* sidebar do client area */
.sidebar .card-sidebar, .sidebar .panel { border-radius: var(--rounding-lg); overflow: hidden; margin-bottom: 1rem; }
.sidebar .card-sidebar > .card-header { background: var(--bg-lifted); padding: .85rem 1rem; }
.sidebar .card-title { font-size: .78rem; font-weight: 800; letter-spacing: .05em; text-transform: uppercase; color: var(--text-accented); }
.sidebar .list-group-item { border: 0; border-bottom: 1px solid var(--border-muted); background: transparent; color: var(--text); font-size: .9rem; padding: .7rem 1rem; }
.sidebar .list-group-item:last-child { border-bottom: 0; }
.sidebar .list-group-item:hover, .sidebar .list-group-item.active { background: var(--primary-50); color: var(--primary-700); }
html.gs-dark .sidebar .list-group-item:hover, html.gs-dark .sidebar .list-group-item.active { background: rgba(var(--gs-primary-light-rgb, 91, 139, 255), .12); color: var(--primary-300); }
.list-group-item { background: var(--bg); border-color: var(--border-muted); color: var(--text); }

/* painel do cliente (tiles) */
.tiles .tile {
    background: var(--bg); border: 1px solid var(--border-muted); border-radius: var(--rounding-lg);
    box-shadow: var(--gs-shadow); color: var(--text);
    transition: transform .18s var(--gs-ease), box-shadow .18s var(--gs-ease);
}
.tiles .tile:hover { transform: translateY(-3px); box-shadow: var(--gs-shadow-lg); text-decoration: none; }
.tiles .tile .stat { color: var(--primary); font-weight: 800; }

/* login / cadastro */
.login-form .card, .card.mw-540 { border-radius: var(--rounding-lg); box-shadow: var(--gs-shadow-lg); border: 1px solid var(--border-muted); }
.login-form .card-body { padding: 2.25rem; }
.providerLinkingFeedback + form .card { margin-top: 1rem; }

/* cabeçalhos de página */
.header-lined { border: 0; margin-bottom: 1.5rem; }
.header-lined h1 { font-size: clamp(1.5rem, 3vw, 2rem); }
.header-lined h1 small { color: var(--text-lifted); font-weight: 600; }

/* =====================================================================
   MODO ESCURO: ajustes para componentes com cores fixas do Nexus
   ===================================================================== */
html.gs-dark body.gs-body, html.gs-dark #main-body { background: var(--bg-muted); color: var(--text); }
html.gs-dark .bg-white, html.gs-dark .bg-light { background: var(--bg) !important; }
html.gs-dark .text-dark { color: var(--text) !important; }
html.gs-dark .text-muted { color: var(--text-muted) !important; }
html.gs-dark .alert-success { background: rgba(0, 166, 62, .14); color: #7fe0a6; }
html.gs-dark .alert-info { background: rgba(21, 93, 252, .16); color: #9bbcff; }
html.gs-dark .alert-warning { background: rgba(245, 158, 11, .14); color: #f3cb7a; }
html.gs-dark .alert-danger { background: rgba(231, 0, 11, .14); color: #ff9a9f; }
html.gs-dark .table thead th { background: var(--bg-lifted); }
html.gs-dark .table td, html.gs-dark .table th { border-color: var(--border-muted); }
html.gs-dark .close, html.gs-dark .modal-header .close { color: var(--text); text-shadow: none; }
html.gs-dark .breadcrumb-item.active, html.gs-dark .breadcrumb-item a { color: var(--text-lifted); }
html.gs-dark .dropdown-divider { border-color: var(--border-muted); }
html.gs-dark .popover .arrow::after { border-bottom-color: var(--bg); border-top-color: var(--bg); }
html.gs-dark .markdown-editor-status, html.gs-dark .editor-toolbar { background: var(--bg-lifted); border-color: var(--border); color: var(--text); }
html.gs-dark .btn-light { background: var(--bg-lifted); border-color: var(--border); color: var(--text); }
html.gs-dark .gs-mock { box-shadow: 0 34px 70px rgba(0, 0, 0, .6); }

/* =====================================================================
   RESPONSIVO
   ===================================================================== */
@media (max-width: 1199.98px) {
    .gs-features { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .gs-ft-nav { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 991.98px) {
    :root { --gs-bar-h: 60px; }
    .gs-hero__inner { grid-template-columns: 1fr; text-align: center; }
    .gs-hero__lead { margin-left: auto; margin-right: auto; }
    .gs-hero__actions, .gs-hero__bullets { justify-content: center; }
    .gs-hero__art { display: none; }
    .gs-hero { padding: 3rem 0 7rem; }
    .gs-brand { margin: 0 auto 0 .15rem; }
    .gs-stats__grid { grid-template-columns: repeat(2, 1fr); gap: 1.5rem; }
    .gs-stat:nth-child(odd) { border-left: 0; }
    .gs-quotes { grid-template-columns: 1fr; }
    .gs-ft-main { grid-template-columns: 1fr; }
}
@media (max-width: 767.98px) {
    .gs-features { grid-template-columns: 1fr; }
    .gs-domain__card { padding: 1.4rem 1rem; }
    .gs-domain__foot { justify-content: center; text-align: center; }
    .gs-cta__inner { justify-content: center; text-align: center; }
    .gs-ft-trust__grid { flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; gap: 1.5rem; }
    .gs-ft-trust__item { flex: 0 0 auto; white-space: nowrap; }
    .gs-ft-bottom { justify-content: center; text-align: center; }
    .gs-ft-actions { justify-content: center; }
}
@media (max-width: 575.98px) {
    .gs-ft-nav { grid-template-columns: 1fr; }
    .gs-services { margin-top: -4.5rem; }
    .gs-domain__group { flex-wrap: wrap; }
}

@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after { transition: none !important; animation: none !important; scroll-behavior: auto !important; }
}

/* =====================================================================
   ADDON GIGA THEME MANAGER
   Pré-header completo, estilos de itens do menu, rodapé e páginas
   personalizadas (blocos do editor visual).
   ===================================================================== */

/* ---------- pré-header ---------- */
.gs-promo--navy { background: var(--gs-navy); }
.gs-promo--primary { background: var(--primary); }
.gs-promo--accent { background: var(--gs-accent-btn, var(--gs-accent)); color: var(--gs-accent-ink); }
.gs-promo--accent .gs-promo__cta { background: var(--gs-navy); color: #fff; }
.gs-promo--accent .gs-promo__item { color: var(--gs-accent-ink); }
.gs-promo__inner { position: relative; }
.gs-promo--full .gs-promo__inner { justify-content: space-between; flex-wrap: nowrap; }
.gs-promo__center { display: flex; align-items: center; justify-content: center; flex-wrap: wrap; gap: .35rem 1rem; flex: 1 1 auto; }
.gs-promo__side { display: flex; align-items: center; gap: 1.1rem; list-style: none; margin: 0; padding: 0; flex: 0 1 auto; font-size: .8rem; font-weight: 600; white-space: nowrap; }
.gs-promo__item { display: inline-flex; align-items: center; gap: .4rem; color: rgba(255, 255, 255, .85); }
.gs-promo__item i { opacity: .8; font-size: .85em; }
a.gs-promo__item:hover { color: #fff; text-decoration: none; }
.gs-promo__close {
    position: absolute; right: 6px; top: 50%; transform: translateY(-50%);
    display: inline-flex; align-items: center; justify-content: center; width: 26px; height: 26px;
    border: 0; border-radius: 50%; background: rgba(255, 255, 255, .12); color: inherit; cursor: pointer; font-size: .75rem;
}
.gs-promo__close:hover { background: rgba(255, 255, 255, .25); }
.gs-promo:has(.gs-promo__close) .gs-promo__inner { padding-right: 42px; }
.gs-promo--full .gs-promo__inner { gap: 1.25rem; }
.gs-promo--full .gs-promo__center { flex-wrap: nowrap; min-width: 0; }
.gs-promo--full .gs-promo__text { min-width: 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.gs-promo--full .gs-promo__cta { flex: 0 0 auto; }
@media (max-width: 1439.98px) {
    .gs-promo__more { display: none; }
}
@media (max-width: 1199.98px) {
    .gs-promo__side--left { display: none; }
}
@media (max-width: 991.98px) {
    .gs-promo__side { display: none; }
    .gs-promo--full .gs-promo__inner { justify-content: center; }
    .gs-promo--full .gs-promo__center { flex-wrap: wrap; }
    .gs-promo--full .gs-promo__text { white-space: normal; }
}

/* ---------- menu (itens do addon) ---------- */
.gs-menu__ico { font-size: .85em; opacity: .85; }
.gs-menu__item.is-active > .gs-menu__link { color: var(--primary); }
html.gs-dark .gs-menu__item.is-active > .gs-menu__link { color: var(--primary-300); }
.gs-menu__link--hl { color: var(--primary); }
html.gs-dark .gs-menu__link--hl { color: var(--primary-300); }
.gs-menu__link--btn { margin-left: .35rem; background: var(--gs-primary-btn, var(--primary)); color: var(--gs-primary-ink, #fff) !important; box-shadow: 0 6px 16px rgba(var(--gs-primary-rgb), .28); }
.gs-menu__link--btn:hover { background: var(--primary-lifted) !important; color: #fff !important; }
.gs-badge--accent { background: var(--gs-accent-btn, var(--gs-accent)); color: var(--gs-accent-ink); }
.gs-badge--success { background: var(--success); }
.gs-badge--danger { background: var(--error); }
.gs-panel__txt { display: flex; flex-direction: column; }
.gs-panel__name { display: block; }
.gs-panel__sub { display: block; margin-top: .1rem; color: var(--text-lifted); font-size: .78rem; font-weight: 500; line-height: 1.35; white-space: normal; }
.gs-panel__link.is-active { background: var(--primary-50); color: var(--primary-700); }
html.gs-dark .gs-panel__link.is-active { background: rgba(var(--gs-primary-light-rgb), .12); color: var(--primary-300); }
.gs-panel__all {
    display: flex; align-items: center; gap: .4rem; grid-column: 1 / -1;
    margin-top: .35rem; padding: .55rem .7rem; border-top: 1px solid var(--border-muted);
    color: var(--primary); font-weight: 800; font-size: .85rem;
}
.gs-panel__all:hover { text-decoration: none; color: var(--primary-700); }
.gs-panel__all i { font-size: .75em; }
.gs-cartbtn--hidden { display: none !important; }
.gs-drawer__link--btn { margin-top: .25rem; background: var(--gs-primary-btn, var(--primary)); color: var(--gs-primary-ink, #fff) !important; text-align: center; justify-content: center; }
.gs-drawer__sub a.is-active, .gs-drawer__link.is-active { color: var(--primary); }

/* ---------- home ---------- */
.gs-hero__art--img { min-height: 0; }
.gs-hero__img { position: relative; z-index: 2; display: block; max-width: 100%; max-height: 440px; height: auto; margin: 0 auto; filter: drop-shadow(0 30px 60px rgba(0, 0, 0, .35)); }

/* ---------- rodapé ---------- */
.gs-ft-contact { list-style: none; margin: 0 0 1.1rem; padding: 0; display: grid; gap: .45rem; font-size: .9rem; color: #b4c3d3; }
.gs-ft-contact li { display: flex; gap: .6rem; align-items: baseline; }
.gs-ft-contact i { width: 1rem; color: var(--gs-ft-accent); font-size: .85rem; }
.gs-ft-contact a { color: #dbe4ee; }
.gs-ft-social--x { display: flex; flex-wrap: wrap; gap: .45rem; list-style: none; margin: 0; padding: 0; }
.gs-ft-social--x a {
    display: inline-flex; align-items: center; justify-content: center; width: 38px; height: 38px;
    border-radius: 11px; border: 1px solid rgba(255, 255, 255, .14); background: rgba(255, 255, 255, .06);
    color: #dbe4ee; transition: background-color .15s var(--gs-ease), transform .15s var(--gs-ease), border-color .15s var(--gs-ease);
}
.gs-ft-social--x a:hover { background: var(--gs-primary-btn, var(--primary)); border-color: var(--gs-primary-btn, var(--primary)); color: var(--gs-primary-ink, #fff); transform: translateY(-2px); text-decoration: none; }

/* ---------- páginas personalizadas ---------- */
.gs-custom-page #main-body { padding-top: 0; }
.gs-custom-page .master-breadcrumb { margin-bottom: 0; }
.gs-cpage { color: var(--text); }
.gs-cpage--boxed { padding: 1.5rem 0 1rem; }
.gs-custom-page #main-body > div:not(.container) > .row { margin-left: 0; margin-right: 0; }
.gs-custom-page #main-body > div:not(.container) .primary-content { padding: 0; }
.gs-cpage__head { padding-top: 1.5rem; margin-bottom: 1.25rem; }
.gs-cpage__title { margin: 0; font-size: clamp(1.7rem, 3.6vw, 2.4rem); letter-spacing: -.02em; }
.gs-cpage__preview {
    display: flex; align-items: center; gap: .5rem; margin: 1rem 0; padding: .7rem 1rem;
    border-radius: var(--rounding-md); background: #fff6e0; color: #8a5a00; font-weight: 700; font-size: .9rem;
}
.gs-cpage--full .gs-cpage__preview { margin: 1rem 15px; }
.gs-cpage__empty { max-width: 34rem; margin: 3rem auto; text-align: center; }
.gs-cpage__code { display: block; font-size: 4.5rem; font-weight: 800; line-height: 1; color: var(--primary); opacity: .2; }
.gs-cpage--boxed .container { max-width: none; padding-left: 0; padding-right: 0; }
.gs-cpage__body > :first-child { margin-top: 0; }
.gs-cpage__body img { max-width: 100%; height: auto; }

.gs-cp-hero {
    --gs-cph-pad: clamp(1.75rem, 4vw, 3rem);
    position: relative; overflow: hidden; color: #fff; padding: var(--gs-cph-pad) 0;
    background:
        radial-gradient(1000px 380px at 100% -20%, rgba(var(--gs-primary-light-rgb), .55) 0, transparent 58%),
        radial-gradient(600px 300px at 0% 120%, rgba(var(--gs-accent-rgb), .14) 0, transparent 60%),
        linear-gradient(155deg, var(--gs-navy) 0, var(--gs-navy-2) 100%);
}
/* imagem de fundo própria do topo (editor: engrenagem do topo → Imagem de fundo) */
html :is(.gs-cp-hero, .gs-hero)[data-gs-bg] {
    --gs-hb-o: 55%; --gs-hb-o2: 65%; --gs-hb-pos: center;
    background:
        linear-gradient(135deg, color-mix(in srgb, var(--primary-700, #015a9e) var(--gs-hb-o), transparent) 0, color-mix(in srgb, var(--primary-900, #0b2545) var(--gs-hb-o2), transparent) 100%),
        var(--gs-hero-img, none) center var(--gs-hb-pos) / cover no-repeat var(--primary-900, #0b2545) !important;
}
html :is(.gs-cp-hero, .gs-hero)[data-gs-bg][data-gs-bg-overlay="fraca"] { --gs-hb-o: 30%; --gs-hb-o2: 40%; }
html :is(.gs-cp-hero, .gs-hero)[data-gs-bg][data-gs-bg-overlay="forte"] { --gs-hb-o: 80%; --gs-hb-o2: 90%; }
html :is(.gs-cp-hero, .gs-hero)[data-gs-bg][data-gs-bg-pos="top"] { --gs-hb-pos: top; }
html :is(.gs-cp-hero, .gs-hero)[data-gs-bg][data-gs-bg-pos="bottom"] { --gs-hb-pos: bottom; }
.gs-cpage--boxed .gs-cp-hero { border-radius: var(--rounding-lg); padding-left: clamp(1.25rem, 4vw, 3rem); padding-right: clamp(1.25rem, 4vw, 3rem); margin-bottom: 1.5rem; }
/* banner da página inicial usado como bloco numa página em caixa */
.gs-cpage--boxed .gs-hero { border-radius: var(--rounding-lg); padding-left: clamp(1.25rem, 4vw, 3rem); padding-right: clamp(1.25rem, 4vw, 3rem); margin-bottom: 1.5rem; }
.gs-cp-hero--sm { --gs-cph-pad: clamp(1.75rem, 4vw, 3rem); }
.gs-cp-hero__title { color: #fff; font-size: clamp(1.9rem, 4.4vw, 3rem); line-height: 1.1; letter-spacing: -.025em; margin: .9rem 0 .8rem; max-width: 46rem; }
.gs-cp-hero__lead { color: rgba(255, 255, 255, .84); font-size: 1.1rem; line-height: 1.6; max-width: 40rem; margin: 0 0 1.6rem; }
.gs-cp-hero h1, .gs-cp-hero h2, .gs-cp-hero h3 { color: #fff; }
.gs-cp-actions { display: flex; flex-wrap: wrap; gap: .75rem; }
.gs-cp-section { padding: clamp(2.25rem, 5vw, 3.5rem) 0; }
.gs-cpage--boxed .gs-cp-section { padding: 1.5rem 0; }
.gs-cp-section--muted { background: var(--bg-lifted); }
.gs-cpage--boxed .gs-cp-section--muted { padding: 1.75rem; border-radius: var(--rounding-lg); }
.gs-cp-sub { margin: .6rem 0 0; color: var(--text-lifted); font-size: 1.02rem; }
.gs-cp-row { row-gap: 1.25rem; }
.gs-cp-split { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(1.5rem, 4vw, 3.5rem); align-items: center; }
.gs-cp-split--rev > :first-child { order: 2; }
.gs-cp-split h2 { font-size: clamp(1.4rem, 2.8vw, 1.9rem); margin-bottom: .8rem; }
.gs-cp-split p { color: var(--text-lifted); line-height: 1.7; }
/* topo com imagem (bloco "Topo com imagem"): o texto de apoio continua claro sobre o fundo azul */
.gs-cp-split p.gs-cp-hero__lead, .gs-cp-hero .gs-cp-split p { color: rgba(255, 255, 255, .84); }
.gs-cp-img { display: block; max-width: 100%; height: auto; border-radius: var(--rounding-lg); box-shadow: var(--gs-shadow); }
.gs-cp-hero .gs-cp-img { box-shadow: 0 30px 60px rgba(0, 0, 0, .35); }
.gs-cp-checks { list-style: none; margin: 0 0 1.25rem; padding: 0; display: grid; gap: .5rem; }
.gs-cp-checks li { position: relative; padding-left: 1.7rem; line-height: 1.5; }
.gs-cp-checks li::before {
    content: ""; position: absolute; left: 0; top: .2em; width: 1.1rem; height: 1.1rem; border-radius: 50%; background: var(--primary-50);
}
.gs-cp-checks li::after {
    content: ""; position: absolute; left: .2rem; top: calc(.2em + .2rem); width: .7rem; height: .7rem; background: var(--primary);
    -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='none' stroke='%23000' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round' d='M3 8.5l3.2 3L13 4.5'/%3E%3C/svg%3E") center / contain no-repeat;
    mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='none' stroke='%23000' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round' d='M3 8.5l3.2 3L13 4.5'/%3E%3C/svg%3E") center / contain no-repeat;
}
html.gs-dark .gs-cp-checks li::before { background: rgba(var(--gs-primary-light-rgb), .16); }
html.gs-dark .gs-cp-checks li::after { background: var(--primary-300); }
.gs-cp-hero .gs-cp-checks li::before { background-color: rgba(255, 255, 255, .15); }
.gs-cp-hero .gs-cp-checks li::after { background: var(--gs-accent); }
.gs-cp-prices { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 1.25rem; align-items: stretch; }
.gs-cp-price {
    position: relative; display: flex; flex-direction: column; padding: 1.75rem 1.5rem 1.5rem;
    background: var(--bg); border: 1px solid var(--border-muted); border-radius: var(--rounding-lg); box-shadow: var(--gs-shadow);
}
.gs-cp-price--featured { border-color: var(--primary); box-shadow: 0 14px 34px rgba(var(--gs-primary-rgb), .2); }
.gs-cp-price__badge {
    position: absolute; top: -12px; left: 50%; transform: translateX(-50%); white-space: nowrap;
    padding: .3rem .9rem; border-radius: 999px; background: var(--gs-primary-btn, var(--primary)); color: var(--gs-primary-ink, #fff); font-size: .72rem; font-weight: 800;
}
.gs-cp-price__name { font-size: 1.15rem; margin: 0 0 .5rem; }
.gs-cp-price__value { font-size: 2.3rem; font-weight: 800; line-height: 1.1; color: var(--gs-price-color, var(--text)); margin-bottom: 1.25rem; letter-spacing: -.02em; }
.gs-cp-price__value small { font-size: .95rem; font-weight: 700; margin-right: .2rem; vertical-align: super; }
.gs-cp-price__value span { font-size: .9rem; font-weight: 600; color: var(--text-lifted); margin-left: .2rem; }
.gs-cp-price .gs-cp-checks { flex: 1; }
.gs-cp-steps { list-style: none; counter-reset: gsstep; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 1.25rem; }
.gs-cp-steps li { counter-increment: gsstep; position: relative; padding: 1.5rem 1.4rem 1.4rem; background: var(--bg); border: 1px solid var(--border-muted); border-radius: var(--rounding-lg); box-shadow: var(--gs-shadow); }
.gs-cp-steps li::before {
    content: counter(gsstep); display: inline-flex; align-items: center; justify-content: center; width: 36px; height: 36px; margin-bottom: .8rem;
    border-radius: 50%; background: var(--gs-primary-btn, var(--primary)); color: var(--gs-primary-ink, #fff); font-weight: 800;
}
.gs-cp-steps h3 { font-size: 1.05rem; margin: 0 0 .35rem; }
.gs-cp-steps p { margin: 0; color: var(--text-lifted); }
.gs-cp-card { padding: 1.5rem; background: var(--bg); border: 1px solid var(--border-muted); border-radius: var(--rounding-lg); box-shadow: var(--gs-shadow); }
.gs-cp-card > :last-child { margin-bottom: 0; }
.gs-cp-cards { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 1rem; }
.gs-cp-note {
    display: flex; gap: .65rem; align-items: baseline; padding: .9rem 1.1rem; margin: 1rem 0;
    border-radius: var(--rounding-md); background: var(--primary-50); color: var(--primary-800); border: 1px solid var(--primary-100);
}
.gs-cp-note--warn { background: #fff6e0; color: #8a5a00; border-color: #ffe2a6; }
.gs-cp-note--muted { justify-content: center; background: transparent; border: 0; color: var(--text-muted); font-size: .85rem; }
html.gs-dark .gs-cp-note { background: rgba(var(--gs-primary-light-rgb), .1); color: var(--primary-200); border-color: rgba(var(--gs-primary-light-rgb), .2); }
html.gs-dark .gs-cp-note--warn { background: rgba(255, 176, 32, .1); color: #ffd58a; border-color: rgba(255, 176, 32, .25); }
html.gs-dark .gs-cp-note--muted { background: transparent; color: var(--text-muted); }
.gs-cp-prose { max-width: 48rem; font-size: 1.02rem; line-height: 1.75; }
.gs-cpage--full .gs-cp-prose { margin-left: auto; margin-right: auto; }
.gs-cp-prose h2 { font-size: 1.4rem; margin: 2rem 0 .6rem; }
.gs-cp-prose h3 { font-size: 1.15rem; margin: 1.5rem 0 .5rem; }
.gs-cp-prose p, .gs-cp-prose li { color: var(--text-accented); }
.gs-cp-updated { color: var(--text-muted) !important; font-size: .88rem; }
.gs-cp-video { position: relative; aspect-ratio: 16 / 9; border-radius: var(--rounding-lg); overflow: hidden; background: #000; box-shadow: var(--gs-shadow); }
.gs-cp-video iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.gs-cp-spacer { height: 2.5rem; }
.gs-cp-divider { margin: 2rem 0; border: 0; border-top: 1px solid var(--border-muted); }
.gs-cpage .gs-cta { margin: 0; }
.gs-cpage--boxed .gs-cta, .gs-cpage--boxed .gs-stats { border-radius: var(--rounding-lg); padding-left: clamp(1.25rem, 4vw, 2.5rem); padding-right: clamp(1.25rem, 4vw, 2.5rem); }
.gs-cpage .gs-stats { margin: 0; }

/* ---------- blocos de hospedagem (editor de páginas) ---------- */
/* busca de domínio */
.gs-cp-domain { text-align: center; }
.gs-cp-domain .gs-section__head { margin-left: auto; margin-right: auto; }
.gs-cp-domain__form { display: flex; gap: .6rem; max-width: 46rem; margin: 1.5rem auto 1.25rem; padding: .45rem; background: var(--bg); border: 1px solid var(--border-muted); border-radius: 999px; box-shadow: var(--gs-shadow-lg, var(--gs-shadow)); }
.gs-cp-domain__form input[type="text"] { flex: 1; min-width: 0; border: 0; background: transparent; padding: 0 1.1rem; font-size: 1.05rem; color: var(--text); outline: 0; box-shadow: none; }
.gs-cp-domain__form .gs-btn { border-radius: 999px; flex: 0 0 auto; }
.gs-cp-hero .gs-cp-domain__form { border-color: transparent; }
.gs-cp-tlds { display: flex; flex-wrap: wrap; justify-content: center; gap: .6rem; margin: 0; padding: 0; list-style: none; }
.gs-cp-tlds li { display: inline-flex; align-items: baseline; gap: .45rem; padding: .45rem .9rem; border-radius: 999px; background: var(--bg); border: 1px solid var(--border-muted); font-size: .9rem; color: var(--text-lifted); }
.gs-cp-tlds strong { color: var(--text); font-size: 1rem; }
.gs-cp-hero .gs-cp-tlds li { background: rgba(255, 255, 255, .08); border-color: rgba(255, 255, 255, .18); color: rgba(255, 255, 255, .8); }
.gs-cp-hero .gs-cp-tlds strong { color: #fff; }
/* especificações dentro do card de plano */
.gs-cp-specs { list-style: none; margin: 0 0 1.25rem; padding: 0; flex: 1; }
.gs-cp-specs li { display: flex; justify-content: space-between; gap: 1rem; padding: .55rem 0; border-bottom: 1px dashed var(--border-muted); font-size: .92rem; color: var(--text-lifted); }
.gs-cp-specs li:last-child { border-bottom: 0; }
.gs-cp-specs strong { color: var(--text); text-align: right; }
.gs-cp-price__desc { margin: -.25rem 0 1rem; color: var(--text-lifted); font-size: .9rem; }
.gs-cp-price__foot { margin: .6rem 0 0; text-align: center; color: var(--text-muted); font-size: .8rem; }
/* planos de hospedagem (modelo 2) */
.gs-cp-price--v2 .gs-cp-price__from { font-size: .8rem; color: var(--text-muted); }
.gs-cp-price--v2 .gs-cp-price__value { margin-bottom: .45rem; }
.gs-cp-price__save { margin: 0 0 1.15rem; font-size: .8rem; color: var(--text-lifted); line-height: 1.5; }
.gs-cp-price__save[hidden] { display: none !important; }
.gs-cp-save { display: inline-block; margin-right: .3rem; padding: .05rem .45rem; border-radius: 6px; background: #dcfce7; color: #15803d; font-weight: 800; }
html.gs-dark .gs-cp-save { background: rgba(34, 197, 94, .16); color: #4ade80; }
.gs-cp-price__monthly { display: block; margin-top: .2rem; color: var(--text-muted); }
.gs-cp-feats { list-style: none; margin: 0 0 1.35rem; padding: 1.1rem 0 0; border-top: 1px solid var(--border-muted); flex: 1; display: flex; flex-direction: column; gap: .65rem; font-size: .9rem; color: var(--text-lifted); line-height: 1.4; }
.gs-cp-feats li { display: flex; align-items: flex-start; gap: .7rem; }
.gs-cp-feats i { flex: 0 0 1.1rem; text-align: center; margin-top: .15rem; color: var(--primary); font-size: .88rem; }
html.gs-dark .gs-cp-feats i { color: var(--primary-300); }
.gs-cp-feats strong { color: var(--text); font-weight: 700; }
/* planos em linhas (VPS / dedicados) */
.gs-cp-plans { display: grid; gap: .75rem; }
.gs-cp-plan { display: grid; grid-template-columns: minmax(130px, 1.3fr) repeat(4, minmax(0, 1fr)) minmax(120px, 1fr) auto; align-items: center; gap: 1rem; padding: 1rem 1.25rem; background: var(--bg); border: 1px solid var(--border-muted); border-radius: var(--rounding-lg); box-shadow: var(--gs-shadow); }
.gs-cp-plan--featured { border-color: var(--primary); box-shadow: 0 10px 26px rgba(var(--gs-primary-rgb), .16); }
.gs-cp-plan__name { font-weight: 800; font-size: 1.05rem; color: var(--text); }
.gs-cp-plan__name small { display: block; margin-top: .15rem; font-weight: 600; font-size: .75rem; color: var(--primary); text-transform: uppercase; letter-spacing: .04em; }
.gs-cp-plan__spec { display: flex; flex-direction: column; font-size: .78rem; color: var(--text-muted); }
.gs-cp-plan__spec strong { font-size: 1rem; color: var(--text); }
.gs-cp-plan__price { font-weight: 800; font-size: 1.35rem; color: var(--gs-price-color, var(--text)); white-space: nowrap; }
.gs-cp-plan__price span { font-size: .8rem; font-weight: 600; color: var(--text-lifted); }
.gs-cp-plan .gs-btn { white-space: nowrap; }
/* tabela comparativa / preços de domínio */
.gs-cp-table-wrap { overflow-x: auto; border: 1px solid var(--border-muted); border-radius: var(--rounding-lg); background: var(--bg); box-shadow: var(--gs-shadow); }
.gs-cp-table { width: 100%; min-width: 560px; border-collapse: collapse; font-size: .95rem; }
.gs-cp-table th, .gs-cp-table td { padding: .85rem 1.1rem; text-align: center; border-bottom: 1px solid var(--border-muted); color: var(--text-accented); }
.gs-cp-table th:first-child, .gs-cp-table td:first-child { text-align: left; }
.gs-cp-table thead th { background: var(--bg-lifted); color: var(--text); font-weight: 800; font-size: .9rem; }
.gs-cp-table tbody tr:last-child td { border-bottom: 0; }
.gs-cp-table tbody tr:hover td { background: var(--bg-lifted); }
.gs-cp-table td strong { color: var(--text); }
.gs-cp-yes, .gs-cp-no { display: inline-flex; width: 1.4rem; height: 1.4rem; border-radius: 50%; align-items: center; justify-content: center; font-size: .75rem; }
.gs-cp-yes { background: rgba(22, 163, 74, .12); color: #16a34a; }
.gs-cp-no { background: var(--bg-lifted); color: var(--text-muted); }
/* faixa de garantias */
.gs-cp-trust { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 1rem; }
.gs-cp-trust__item { display: flex; align-items: center; gap: .85rem; padding: 1rem 1.1rem; background: var(--bg); border: 1px solid var(--border-muted); border-radius: var(--rounding-lg); }
.gs-cp-trust__ico { flex: 0 0 auto; display: inline-flex; align-items: center; justify-content: center; width: 46px; height: 46px; border-radius: 12px; background: var(--primary-50); color: var(--primary); font-size: 1.15rem; }
.gs-cp-trust__item strong { display: block; color: var(--text); line-height: 1.25; }
.gs-cp-trust__item small { display: block; color: var(--text-lifted); font-size: .82rem; line-height: 1.35; }
html.gs-dark .gs-cp-trust__ico, html.gs-dark .gs-cp-spec__ico { background: rgba(var(--gs-primary-light-rgb), .14); color: var(--primary-300); }
/* recursos técnicos */
.gs-cp-specgrid { display: grid; grid-template-columns: repeat(auto-fit, minmax(210px, 1fr)); gap: .85rem; }
.gs-cp-spec { display: flex; align-items: center; gap: .8rem; padding: .9rem 1rem; background: var(--bg); border: 1px solid var(--border-muted); border-radius: var(--rounding-md); }
.gs-cp-spec__ico { flex: 0 0 auto; width: 38px; height: 38px; border-radius: 10px; display: inline-flex; align-items: center; justify-content: center; background: var(--primary-50); color: var(--primary); }
.gs-cp-spec strong { display: block; color: var(--text); font-size: .95rem; }
.gs-cp-spec small { display: block; color: var(--text-lifted); font-size: .8rem; }
/* sistemas operacionais / tecnologias */
.gs-cp-logos { display: grid; grid-template-columns: repeat(auto-fit, minmax(120px, 1fr)); gap: .85rem; }
.gs-cp-logo { display: flex; flex-direction: column; align-items: center; gap: .5rem; padding: 1.1rem .75rem; background: var(--bg); border: 1px solid var(--border-muted); border-radius: var(--rounding-lg); color: var(--text-accented); font-weight: 700; font-size: .9rem; text-align: center; transition: transform .15s, border-color .15s; }
.gs-cp-logo i { font-size: 2rem; color: var(--primary); }
.gs-cp-logo:hover { transform: translateY(-3px); border-color: var(--primary-200); }
/* selo de garantia */
.gs-cp-guarantee { display: flex; align-items: center; gap: clamp(1rem, 3vw, 2rem); padding: clamp(1.25rem, 3vw, 2rem); background: var(--bg); border: 2px dashed var(--primary-200); border-radius: var(--rounding-lg); }
.gs-cp-guarantee__seal { flex: 0 0 auto; display: flex; flex-direction: column; align-items: center; justify-content: center; width: 116px; height: 116px; border-radius: 50%; background: var(--gs-primary-btn, var(--primary)); color: var(--gs-primary-ink, #fff); text-align: center; box-shadow: 0 0 0 6px var(--primary-100); }
.gs-cp-guarantee__seal strong { font-size: 2.3rem; line-height: 1; font-weight: 800; }
.gs-cp-guarantee__seal small { font-size: .72rem; font-weight: 700; text-transform: uppercase; letter-spacing: .05em; }
.gs-cp-guarantee h2 { font-size: clamp(1.3rem, 2.6vw, 1.7rem); margin: 0 0 .4rem; }
.gs-cp-guarantee p { margin: 0; color: var(--text-lifted); }
/* destaque com ícone (migração, suporte) */
.gs-cp-banner { display: flex; align-items: center; gap: 1.5rem; flex-wrap: wrap; padding: clamp(1.5rem, 4vw, 2.5rem); border-radius: var(--rounding-lg); color: #fff; background: radial-gradient(600px 240px at 100% 0, rgba(var(--gs-primary-light-rgb), .45), transparent 60%), linear-gradient(135deg, var(--primary-600, var(--primary)), var(--primary-700, var(--gs-navy))); }
.gs-cp-banner__ico { flex: 0 0 auto; width: 64px; height: 64px; border-radius: 18px; display: inline-flex; align-items: center; justify-content: center; background: rgba(255, 255, 255, .14); font-size: 1.7rem; }
.gs-cp-banner__body { flex: 1 1 280px; }
.gs-cp-banner h2 { color: #fff; margin: 0 0 .35rem; font-size: clamp(1.3rem, 2.6vw, 1.7rem); }
.gs-cp-banner p { margin: 0; color: rgba(255, 255, 255, .85); }
.gs-cp-banner .gs-cp-checks { margin: .9rem 0 0; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); }
.gs-cp-banner .gs-cp-checks li::before { background: rgba(255, 255, 255, .16); }
.gs-cp-banner .gs-cp-checks li::after { background: #fff; }
/* localização / datacenter */
.gs-cp-locs { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: .85rem; }
.gs-cp-loc { padding: 1rem 1.1rem; background: var(--bg); border: 1px solid var(--border-muted); border-radius: var(--rounding-lg); }
.gs-cp-loc__flag { font-size: 1.6rem; line-height: 1; }
.gs-cp-loc strong { display: block; margin-top: .5rem; color: var(--text); }
.gs-cp-loc small { display: block; color: var(--text-lifted); font-size: .82rem; }
/* ---------- bloco "Servidores VPS" (linhas com CPU, RAM, disco, tráfego e país) ---------- */
.gs-cp-plans--x .gs-cp-plan { grid-template-columns: minmax(90px, .8fr) minmax(140px, 1.25fr) minmax(90px, .8fr) minmax(120px, 1.05fr) minmax(110px, 1fr) 56px minmax(130px, 1fr) auto; }
.gs-cp-xspec { display: flex; flex-direction: column; gap: .1rem; font-size: .78rem; color: var(--text-muted); line-height: 1.35; }
.gs-cp-xspec__lbl { display: flex; align-items: center; gap: .35rem; margin-bottom: .15rem; font-size: .72rem; font-weight: 700; color: var(--text-muted); }
.gs-cp-xspec__lbl i { color: var(--primary); font-size: .8rem; }
.gs-cp-xspec strong { font-size: .98rem; color: var(--text); font-weight: 700; }
.gs-cp-xflag { display: block; width: 28px; height: 21px; border-radius: 3px; box-shadow: 0 0 0 1px rgba(0, 0, 0, .08); object-fit: cover; }
.gs-cp-plans--x .gs-cp-plan__price { display: flex; flex-direction: column; align-items: flex-end; line-height: 1.1; }
.gs-cp-plans--x .gs-cp-plan__price em { margin-bottom: .2rem; font-style: normal; font-size: .72rem; font-weight: 500; color: var(--text-muted); }
.gs-cp-xprice { font-size: 1.35rem; font-weight: 800; color: var(--gs-price-color, var(--text)); white-space: nowrap; }
.gs-cp-xprice strong { font: inherit; color: inherit; }
html.gs-dark .gs-cp-xspec__lbl i { color: var(--primary-300); }
@media (max-width: 991.98px) {
    .gs-cp-plans--x .gs-cp-plan { grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: start; }
    .gs-cp-plans--x .gs-cp-plan__price { grid-column: 1 / -1; flex-direction: row; align-items: baseline; gap: .4rem; padding-top: .7rem; border-top: 1px dashed var(--border-muted); }
    .gs-cp-plans--x .gs-cp-plan__price em { margin: 0; }
    .gs-cp-plans--x .gs-cp-plan__name { grid-column: 1 / -1; }
    .gs-cp-plans--x .gs-cp-plan .gs-btn { grid-column: 1 / -1; width: 100%; }
}
/* ---------- bloco "Servidores dedicados" (editor de páginas) ---------- */
.gs-cp-ded { display: grid; gap: .75rem; }
.gs-cp-ded__head, .gs-cp-ded__row {
    display: grid; align-items: center; gap: 1rem;
    grid-template-columns: minmax(120px, 1fr) minmax(150px, 1.3fr) minmax(130px, 1.1fr) minmax(95px, .8fr) minmax(120px, 1fr) minmax(130px, 1.1fr) minmax(150px, 1fr);
}
.gs-cp-ded__head { padding: 0 1.25rem; font-size: .78rem; font-weight: 700; color: var(--text-muted); }
.gs-cp-ded__row { position: relative; padding: 1.1rem 1.25rem; background: var(--bg); color: var(--text); border: 1px solid var(--border-muted); border-radius: var(--rounding-lg); box-shadow: var(--gs-shadow); }
.gs-cp-ded__model { display: flex; align-items: center; gap: .7rem; }
.gs-cp-ded__chip { flex: 0 0 auto; width: 42px; height: 42px; border-radius: 10px; display: inline-flex; align-items: center; justify-content: center; background: var(--primary-50); color: var(--primary); font-size: 1.15rem; }
.gs-cp-ded__name { font-weight: 800; font-size: 1.15rem; color: var(--text); line-height: 1.1; }
.gs-cp-ded__name b { font-weight: inherit; }
.gs-cp-ded__badge { display: none; }
.gs-cp-ded__cell { display: flex; flex-direction: column; gap: .15rem; font-size: .82rem; color: var(--text-muted); line-height: 1.35; }
.gs-cp-ded__cell strong { font-size: .98rem; color: var(--text); font-weight: 700; }
.gs-cp-ded__cell em { font-style: normal; font-size: .72rem; }
.gs-cp-ded__mark { color: var(--primary); }
.gs-cp-ded__flag { display: block; width: 28px; height: 21px; margin-bottom: .25rem; border-radius: 3px; box-shadow: 0 0 0 1px rgba(0, 0, 0, .08); object-fit: cover; }
.gs-cp-ded__buy { display: flex; flex-direction: column; align-items: flex-end; gap: .15rem; text-align: right; }
.gs-cp-ded__from { font-size: .75rem; color: var(--text-muted); }
.gs-cp-ded__price { font-weight: 800; font-size: 1.45rem; color: var(--gs-price-color, var(--text)); white-space: nowrap; line-height: 1.1; }
.gs-cp-ded__price small { font-size: .85rem; font-weight: 700; margin-right: .15rem; }
.gs-cp-ded__price strong { font: inherit; color: inherit; }
.gs-cp-ded__price span { font-size: .78rem; font-weight: 600; color: var(--text-lifted); }
.gs-cp-ded__buy .gs-btn { margin-top: .45rem; white-space: nowrap; }
/* servidor em destaque ("Mais contratado") */
.gs-cp-ded__row--featured {
    margin-top: .6rem; border-color: var(--primary); background: var(--bg);
    box-shadow: 0 10px 26px rgba(var(--gs-primary-rgb), .14);
}
.gs-cp-ded__row--featured .gs-cp-ded__badge {
    display: inline-block; position: absolute; top: -11px; left: 1.25rem; margin: 0; padding: .22rem .7rem;
    border-radius: 999px; background: var(--gs-primary-btn, var(--primary)); color: var(--gs-primary-ink, #fff); font-size: .68rem; font-weight: 700; letter-spacing: .01em; line-height: 1.3;
    box-shadow: 0 4px 10px rgba(var(--gs-primary-rgb), .3);
}
.gs-cp-ded__row--featured .gs-cp-ded__badge::before { content: "\2605\00a0"; }
.gs-cp-ded__row--featured .gs-cp-ded__chip { background: var(--gs-primary-btn, var(--primary)); color: var(--gs-primary-ink, #fff); }
html.gs-dark .gs-cp-ded__chip { background: rgba(var(--gs-primary-light-rgb), .14); color: var(--primary-300); }
html.gs-dark .gs-cp-ded__row--featured .gs-cp-ded__chip { background: var(--primary); color: #fff; }
@media (max-width: 991.98px) {
    .gs-cp-ded__head { display: none; }
    .gs-cp-ded__row { grid-template-columns: repeat(2, minmax(0, 1fr)); row-gap: .9rem; align-items: start; }
    .gs-cp-ded__model, .gs-cp-ded__buy { grid-column: 1 / -1; }
    .gs-cp-ded__buy { flex-direction: row; flex-wrap: wrap; align-items: baseline; justify-content: space-between; text-align: left; border-top: 1px dashed var(--border-muted); padding-top: .8rem; }
    .gs-cp-ded__buy .gs-btn { width: 100%; margin-top: .3rem; }
    .gs-cp-ded__cell::before { content: attr(data-label); font-size: .7rem; font-weight: 700; color: var(--text-muted); }
}
.gs-cp-price__value [data-gs-amount], .gs-cp-plan__price strong, .gs-cp-table [data-gs-amount], .gs-cp-table [data-gs-cur] { font: inherit; color: inherit; }
.gs-cp-plan__name b { font-weight: inherit; }
.gs-btn.is-soldout { opacity: .55; pointer-events: none; cursor: not-allowed; }
.gs-cp-table .gs-btn { white-space: nowrap; }
.gs-btn--sm { padding: .45rem .95rem; font-size: .85rem; }
.gs-cp-split .gs-tiles { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.gs-cp-loc__ping { display: inline-block; margin-top: .55rem; padding: .15rem .55rem; border-radius: 999px; background: rgba(22, 163, 74, .12); color: #16a34a; font-size: .74rem; font-weight: 700; }

@media (max-width: 767.98px) {
    .gs-cp-split { grid-template-columns: 1fr; }
    .gs-cp-split--rev > :first-child { order: 0; }
    .gs-cp-domain__form { flex-direction: column; border-radius: var(--rounding-lg); padding: .6rem; }
    .gs-cp-domain__form input[type="text"] { padding: .7rem .8rem; }
    .gs-cp-plan { grid-template-columns: repeat(2, minmax(0, 1fr)); row-gap: .7rem; }
    .gs-cp-plan__name, .gs-cp-plan__price { grid-column: 1 / -1; }
    .gs-cp-plan .gs-btn { grid-column: 1 / -1; width: 100%; }
    .gs-cp-guarantee { flex-direction: column; text-align: center; }
    .gs-cp-banner { text-align: center; justify-content: center; }
    .gs-cp-banner .gs-cp-checks { text-align: left; }
}

/* =====================================================================
   HOME: CARDS COM RECURSOS E PREÇO, "A PARTIR DE" E TUTORIAIS
   ===================================================================== */
/* fora de um topo/faixa escura (ex.: numa seção clara), o texto fica escuro e o preço na cor principal */
.gs-hero__from { margin: -.4rem 0 1.25rem; color: var(--text-lifted); font-size: .95rem; }
.gs-hero__from strong { color: var(--gs-price-color, var(--primary)); font-family: var(--gs-font-display, var(--gs-font)); font-size: 1.35rem; font-weight: 800; margin: 0 .15rem 0 .25rem; }
:is(.gs-hero, .gs-cp-hero, .gs-cta, .gs-cp-banner) .gs-hero__from { color: rgba(255, 255, 255, .78); }
:is(.gs-hero, .gs-cp-hero, .gs-cta, .gs-cp-banner) .gs-hero__from strong { color: var(--gs-price-color, var(--gs-accent)); }

.gs-pcard { padding: 1.6rem 1.5rem 1.5rem; }
.gs-pcard__top { display: flex; align-items: center; gap: .9rem; margin-bottom: 1rem; }
.gs-pcard__top .gs-pcard__icon { margin: 0; width: 50px; height: 50px; border-radius: 13px; font-size: 1.25rem; flex: 0 0 auto; }
.gs-pcard__top .gs-pcard__title { margin: 0; font-size: 1.12rem; }
.gs-pcard__tag { margin: .15rem 0 0; color: var(--text-lifted); font-size: .84rem; line-height: 1.35; }
.gs-pcard__list { list-style: none; margin: 0 0 1.1rem; padding: 0; display: grid; gap: .45rem; align-content: start; flex: 1; font-size: .9rem; color: var(--text-accented); }
.gs-pcard__list li { position: relative; padding-left: 1.55rem; line-height: 1.4; }
.gs-pcard__list li::before { content: ""; position: absolute; left: 0; top: .1em; width: 1.05rem; height: 1.05rem; border-radius: 50%; background: var(--primary-50); }
.gs-pcard__list li::after {
    content: ""; position: absolute; left: .2rem; top: calc(.1em + .2rem); width: .65rem; height: .65rem; background: var(--primary);
    -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='none' stroke='%23000' stroke-width='2.8' stroke-linecap='round' stroke-linejoin='round' d='M3 8.5l3.2 3L13 4.5'/%3E%3C/svg%3E") center / contain no-repeat;
    mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='none' stroke='%23000' stroke-width='2.8' stroke-linecap='round' stroke-linejoin='round' d='M3 8.5l3.2 3L13 4.5'/%3E%3C/svg%3E") center / contain no-repeat;
}
html.gs-dark .gs-pcard__list li::before { background: rgba(var(--gs-primary-light-rgb), .16); }
html.gs-dark .gs-pcard__list li::after { background: var(--primary-300); }
.gs-pcard__spacer { flex: 1; }
.gs-pcard__price { display: flex; flex-direction: column; margin: 0 0 1rem; padding-top: .9rem; border-top: 1px dashed var(--border-muted); }
.gs-pcard__from { color: var(--text-lifted); font-size: .78rem; font-weight: 600; }
.gs-pcard__amount { font-family: var(--gs-font-display, var(--gs-font)); font-size: clamp(1.25rem, .95rem + 1.3vw, 1.55rem); font-weight: 800; color: var(--gs-price-color, var(--gs-navy)); letter-spacing: -.01em; line-height: 1.2; }
html.gs-dark .gs-pcard__amount { color: var(--gs-price-color, var(--text)); }
.gs-pcard__amount small { font-family: var(--gs-font); font-size: .82rem; font-weight: 600; color: var(--text-lifted); margin-left: .15rem; letter-spacing: 0; }
.gs-pcard__note { color: var(--text-lifted); font-size: .74rem; }

.gs-section__head--row { display: flex; align-items: flex-end; justify-content: space-between; gap: 1rem; flex-wrap: wrap; max-width: none; text-align: left; }
.gs-section__more { font-weight: 700; font-size: .9rem; white-space: nowrap; }
.gs-section__more i { font-size: .75em; margin-left: .2rem; }
.gs-kb { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.25rem; }
.gs-kb__item {
    display: flex; flex-direction: column; padding: 1.4rem 1.35rem; color: var(--text);
    background: var(--bg); border: 1px solid var(--border-muted); border-radius: var(--rounding-lg); box-shadow: var(--gs-shadow);
    transition: transform .18s var(--gs-ease), box-shadow .18s var(--gs-ease), border-color .18s var(--gs-ease);
}
.gs-kb__item:hover { color: var(--text); text-decoration: none; transform: translateY(-4px); box-shadow: var(--gs-shadow-lg); border-color: var(--primary-200); }
.gs-kb__ico { display: inline-flex; align-items: center; justify-content: center; width: 42px; height: 42px; margin-bottom: .9rem; border-radius: 12px; background: var(--primary-50); color: var(--primary); }
html.gs-dark .gs-kb__ico { background: rgba(var(--gs-primary-light-rgb), .14); color: var(--primary-300); }
.gs-kb__title { font-size: 1.02rem; margin: 0 0 .45rem; line-height: 1.35; }
.gs-kb__text { flex: 1; margin: 0 0 1rem; color: var(--text-lifted); font-size: .88rem; line-height: 1.55; }
.gs-kb__more { color: var(--primary); font-weight: 700; font-size: .85rem; }
html.gs-dark .gs-kb__more { color: var(--primary-300); }
.gs-kb__more i { font-size: .75em; margin-left: .2rem; transition: transform .15s var(--gs-ease); }
.gs-kb__item:hover .gs-kb__more i { transform: translateX(3px); }

.gs-pay { gap: .4rem; }
.gs-pay i, .gs-pay__svg { font-size: 1rem; color: var(--gs-ft-accent); }

@media (max-width: 991.98px) { .gs-kb { grid-template-columns: 1fr 1fr; } }
@media (max-width: 575.98px) { .gs-kb { grid-template-columns: 1fr; } }
.gs-domain .input-group-wrapper { background: transparent !important; border: 0 !important; box-shadow: none !important; padding: 0 !important; }

/* =====================================================================
   NOTÍCIAS, EXTENSÕES DE DOMÍNIO E AJUSTES COMUNS AOS DOIS ESTILOS
   ===================================================================== */
.gs-domain__sub { margin: .35rem 0 0; color: var(--text-lifted); }
.gs-tlds { display: flex; flex-wrap: wrap; justify-content: center; gap: .5rem 2rem; list-style: none; margin: 0; padding: 0; }
.gs-tld { display: inline-flex; align-items: baseline; gap: .45rem; margin: 0; }
.gs-tld__ext { font-family: var(--gs-font-display, var(--gs-font)); font-size: 1.05rem; font-weight: 800; color: var(--text); }
.gs-tld__price { color: var(--text-lifted); font-size: .88rem; font-weight: 600; }
.gs-tld__price small { margin-left: .1rem; color: var(--text-muted); }
.gs-section__lead { margin: .6rem auto 0; max-width: 40rem; color: var(--text-lifted); font-size: 1.02rem; }
.gs-ft-brand__img--dark { display: none; }
.gs-news { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.5rem; }
.gs-news__item {
    display: flex; flex-direction: column; padding: 1.5rem; color: var(--text);
    background: var(--bg); border: 1px solid var(--border-muted); border-radius: var(--lg-radius, var(--rounding-lg)); box-shadow: var(--lg-shadow, var(--gs-shadow));
    transition: transform .18s var(--gs-ease), box-shadow .18s var(--gs-ease);
}
.gs-news__item:hover { color: var(--text); text-decoration: none; transform: translateY(-4px); box-shadow: var(--lg-shadow-hover, var(--gs-shadow-lg)); }
.gs-news__date { display: inline-flex; align-items: center; gap: .4rem; margin-bottom: .7rem; color: var(--text-muted); font-size: .8rem; font-weight: 600; }
.gs-news__title { font-size: 1.08rem; line-height: 1.35; margin: 0 0 .5rem; }
.gs-news__text { flex: 1; margin: 0 0 1rem; color: var(--text-lifted); font-size: .9rem; line-height: 1.55; }
.gs-news__more { color: var(--gs-link, var(--primary)); font-weight: 700; font-size: .87rem; }
html.gs-dark .gs-news__more { color: var(--primary-300); }
.gs-news__more i { font-size: .75em; margin-left: .2rem; transition: transform .15s var(--gs-ease); }
.gs-news__item:hover .gs-news__more i { transform: translateX(3px); }

@media (max-width: 991.98px) { .gs-news { grid-template-columns: 1fr 1fr; } }
@media (max-width: 575.98px) { .gs-news { grid-template-columns: 1fr; } }
.gs-domain .btn-success { background: var(--gs-navy); border-color: var(--gs-navy); color: #fff; }
.gs-domain .btn-success:hover { background: var(--gs-navy-2); border-color: var(--gs-navy-2); color: #fff; }
.gs-hero__note { color: rgba(255, 255, 255, .85); font-size: .8rem; }
.gs-cp-price__note { margin: -.9rem 0 1rem; color: var(--text-muted); font-size: .78rem; }
.gs-plans-widget { margin: 0 auto; }

/* cor do preço escolhida no editor (seções automáticas) */
.gs-wcolor { display: contents; }

/* =====================================================================
   ÁREA DO CLIENTE MODERNA
   Painel inicial, título das páginas, menu lateral, tabelas, status,
   formulários, login e detalhes do serviço.
   ===================================================================== */
:root {
    --gs-ca-radius: var(--rounding-lg, 14px);
    --gs-ca-shadow: 0 1px 2px rgba(16, 24, 40, .04), 0 4px 16px rgba(16, 24, 40, .05);
    --gs-ca-line: var(--border-muted);
}
html.gs-dark { --gs-ca-shadow: 0 1px 2px rgba(0, 0, 0, .35); }

/* ---------- título da página ---------- */
.gs-pagehead { background: var(--bg); border-bottom: 1px solid var(--gs-ca-line); }
.gs-pagehead__inner { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding-top: 1.35rem; padding-bottom: 1.2rem; }
.gs-pagehead__title { margin: 0 0 .25rem; font-size: clamp(1.35rem, 2.6vw, 1.7rem); letter-spacing: -.01em; }
.gs-pagehead__crumbs .breadcrumb { margin: 0; padding: 0; background: transparent; font-size: .84rem; }
.gs-pagehead__crumbs .breadcrumb-item, .gs-pagehead__crumbs .breadcrumb-item a { color: var(--text-muted); }
.gs-pagehead__crumbs .breadcrumb-item a:hover { color: var(--primary); }
.gs-pagehead__crumbs .breadcrumb-item.active { color: var(--text-lifted); }
.gs-pagehead + * + * #main-body, .gs-pagehead ~ #main-body { padding-top: 1.75rem; }

/* painéis do painel inicial */
.client-home-cards .card { border-radius: var(--gs-ca-radius); border: 1px solid var(--gs-ca-line); box-shadow: var(--gs-ca-shadow); overflow: hidden; margin-bottom: 1.25rem; }
.client-home-cards .card-header { display: block; background: var(--bg); border-bottom: 1px solid var(--gs-ca-line); padding: .95rem 1.15rem; }
.client-home-cards .card-title { display: flex; align-items: center; gap: .55rem; font-size: 1rem; font-weight: 700; }
.client-home-cards .card-title .float-right { order: 9; margin-left: auto; }
.gs-ca-panel__ico { display: inline-flex; align-items: center; justify-content: center; width: 30px; height: 30px; border-radius: 9px; background: var(--primary-50); color: var(--primary); font-size: .85rem; }
html.gs-dark .gs-ca-panel__ico { background: rgba(var(--gs-primary-light-rgb), .14); color: var(--primary-300); }
.client-home-cards .list-group-item { border-left: 0; border-right: 0; border-color: var(--gs-ca-line); padding: .75rem 1.15rem; font-size: .92rem; color: var(--text-accented); }
.client-home-cards .list-group-item:first-child { border-top: 0; }
.client-home-cards .list-group-item:hover { background: var(--bg-muted); color: var(--primary); }
.client-home-cards .card-footer { background: var(--bg-muted); border-top: 1px solid var(--gs-ca-line); }
.client-home-cards .card-footer:empty { display: none; }
.client-home-cards .btn-xs { border-radius: 8px; padding: .3rem .7rem; font-size: .78rem; font-weight: 700; }

/* ---------- menu lateral ---------- */
.sidebar .card-sidebar { border-radius: var(--gs-ca-radius); border: 1px solid var(--gs-ca-line); box-shadow: var(--gs-ca-shadow); overflow: hidden; }
.sidebar .card-sidebar .card-header { background: var(--bg); border-bottom: 1px solid var(--gs-ca-line); padding: .85rem 1rem; }
.sidebar .card-sidebar .card-title { font-size: .78rem; font-weight: 800; text-transform: uppercase; letter-spacing: .06em; color: var(--text-muted); }
.sidebar .card-sidebar .card-title > i:first-child { color: var(--primary); margin-right: .2rem; }
.sidebar .card-sidebar .list-group { padding: .4rem; }
.sidebar .card-sidebar .list-group-item {
    margin: 1px 0; padding: .55rem .7rem; border: 0 !important; border-radius: var(--rounding-md) !important;
    color: var(--text-accented); font-size: .9rem; font-weight: 500; background: transparent;
}
.sidebar .card-sidebar .list-group-item:hover { background: var(--bg-muted); color: var(--primary); }
.sidebar .card-sidebar .list-group-item.active { background: var(--primary-50); color: var(--primary-700); font-weight: 700; }
html.gs-dark .sidebar .card-sidebar .list-group-item.active { background: rgba(var(--gs-primary-light-rgb), .14); color: var(--primary-200); }
.sidebar .sidebar-menu-item-wrapper { display: flex; align-items: center; gap: .6rem; }
.sidebar .sidebar-menu-item-icon-wrapper { width: 1.1rem; text-align: center; }
.sidebar .sidebar-menu-item-icon { color: var(--text-muted); }
.sidebar .list-group-item.active .sidebar-menu-item-icon, .sidebar .list-group-item:hover .sidebar-menu-item-icon { color: inherit; }
.sidebar .sidebar-menu-item-badge { margin-left: auto; }
.sidebar .card-sidebar .badge { border-radius: 999px; background: var(--bg-lifted); color: var(--text-lifted); font-weight: 700; }
.sidebar .card-sidebar .card-minimise { color: var(--text-muted); font-size: .7rem; }
.sidebar .card-sidebar .card-body { font-size: .9rem; }

/* ---------- tabelas (serviços, domínios, faturas, chamados) ---------- */
.table-container, .dataTables_wrapper { border-radius: var(--gs-ca-radius); }
.dataTables_wrapper { padding: 1rem; background: var(--bg); border: 1px solid var(--gs-ca-line); box-shadow: var(--gs-ca-shadow); }
.dataTables_wrapper table.table-list { border: 0; border-radius: 0; margin: .5rem 0 !important; }
.dataTables_wrapper table.table-list thead th {
    background: var(--bg-muted); border: 0 !important; color: var(--text-muted);
    font-size: .74rem; font-weight: 800; text-transform: uppercase; letter-spacing: .05em; padding: .75rem .9rem;
}
.dataTables_wrapper table.table-list thead th:first-child { border-radius: 10px 0 0 10px; }
.dataTables_wrapper table.table-list thead th:last-child { border-radius: 0 10px 10px 0; }
.dataTables_wrapper table.table-list tbody td { border-top: 1px solid var(--gs-ca-line); padding: .85rem .9rem; vertical-align: middle; font-size: .92rem; background: transparent; }
.dataTables_wrapper table.table-list tbody tr:first-child td { border-top: 0; }
.dataTables_wrapper table.table-list tbody tr { cursor: pointer; transition: background-color .12s ease; }
.dataTables_wrapper table.table-list tbody tr:hover td { background: var(--bg-muted); }
.dataTables_wrapper .dataTables_filter input, .dataTables_wrapper .dataTables_length select { border-radius: var(--rounding-md); border: 1px solid var(--border); background: var(--bg); padding: .35rem .7rem; }
.dataTables_wrapper .dataTables_paginate .pagination .page-link { border-radius: 8px !important; margin: 0 2px; border: 1px solid var(--gs-ca-line); color: var(--text-accented); }
.dataTables_wrapper .dataTables_paginate .pagination .active .page-link { background: var(--gs-primary-btn, var(--primary)); border-color: var(--gs-primary-btn, var(--primary)); color: var(--gs-primary-ink, #fff); }
.dataTables_wrapper .dataTables_info { color: var(--text-muted); font-size: .84rem; }
.table-list .ticket-number { color: var(--text-muted); font-weight: 700; }
.table-list .ticket-subject.unread { font-weight: 800; color: var(--text); }

/* ---------- status (etiquetas suaves com ponto) ---------- */
.label.status {
    --st: var(--neutral);
    display: inline-flex; align-items: center; gap: .4rem; padding: .32rem .7rem; border-radius: 999px; margin: 0;
    font-size: .74rem; font-weight: 800; letter-spacing: .01em; line-height: 1.1;
    background: color-mix(in srgb, var(--st) 13%, transparent) !important; color: color-mix(in srgb, var(--st) 82%, var(--text)) !important;
}
.label.status::before { content: ""; width: 7px; height: 7px; border-radius: 50%; background: var(--st); }
.label.status[style*="background"] { --st: currentColor; }
.label.status-active, .label.status-open, .label.status-completed, .label.status-paid, .label.status-accepted, .label.status-delivered { --st: var(--success); }
.label.status-pending, .label.status-payment-pending, .label.status-pending-transfer, .label.status-pending-registration, .label.status-unpaid, .label.status-customer-reply, .label.status-onhold, .label.status-inprogress, .label.status-grace { --st: var(--warning); }
.label.status-suspended, .label.status-redemption, .label.status-collections { --st: #d99a00; }
.label.status-terminated, .label.status-cancelled, .label.status-fraud, .label.status-expired, .label.status-transferred-away, .label.status-lost, .label.status-dead, .label.status-refunded { --st: var(--error); }
.label.status-answered { --st: var(--info); }
.label.status-closed { --st: var(--neutral); }

/* ---------- detalhes do serviço ---------- */
.product-details .product-status {
    border-radius: var(--gs-ca-radius); padding: 1.6rem 1.25rem; color: #fff;
    background: linear-gradient(135deg, var(--primary-600), var(--primary-800));
}
.product-details .product-status-active { background: linear-gradient(135deg, #12a150, #0b7a3c); }
.product-details .product-status-pending { background: linear-gradient(135deg, #f59e0b, #c27803); }
.product-details .product-status-suspended { background: linear-gradient(135deg, #d99a00, #a87400); }
.product-details .product-status-terminated, .product-details .product-status-cancelled, .product-details .product-status-fraud { background: linear-gradient(135deg, #e5484d, #b4232a); }
.product-details .product-status .fa-stack .fa-circle { color: rgba(255, 255, 255, .18); }
.product-details .product-status-text { font-weight: 800; letter-spacing: .02em; }
.product-details .product-actions-wrapper .btn { border-radius: var(--rounding-md); font-weight: 700; }
.primary-content .nav-tabs { border-bottom: 1px solid var(--gs-ca-line); gap: .25rem; }
.primary-content .nav-tabs .nav-link { border: 0; border-bottom: 2px solid transparent; border-radius: 0; color: var(--text-lifted); font-weight: 700; padding: .7rem 1rem; }
.primary-content .nav-tabs .nav-link:hover { color: var(--primary); }
.primary-content .nav-tabs .nav-link.active { color: var(--primary); border-bottom-color: var(--primary); background: transparent; }

/* ---------- cartões e formulários do client area ---------- */
.primary-content > .card, .primary-content form > .card, .primary-content .tab-pane > .card { border-radius: var(--gs-ca-radius); border: 1px solid var(--gs-ca-line); box-shadow: var(--gs-ca-shadow); }
.primary-content .card-header { background: var(--bg); border-bottom: 1px solid var(--gs-ca-line); font-weight: 700; }
.primary-content .card-title { font-size: 1.05rem; font-weight: 700; }
.primary-content .form-control, .primary-content .custom-select { border-radius: var(--rounding-md); border-color: var(--border); min-height: 42px; }
.primary-content .form-control:focus, .primary-content .custom-select:focus,
.login-form .form-control:focus { border-color: var(--primary); box-shadow: 0 0 0 3px rgba(var(--gs-primary-rgb), .16); }
.primary-content label, .login-form label { font-weight: 600; color: var(--text-accented); }
.primary-content .alert { border-radius: var(--rounding-md); }

/* ---------- login e cadastro ---------- */
.login-form .card, .gs-page-clientregister .primary-content > form > .card, .gs-page-clientregister .card {
    border-radius: 18px; border: 1px solid var(--gs-ca-line); box-shadow: 0 24px 60px rgba(16, 24, 40, .10);
}
.login-form .card { margin-top: 2.5rem !important; margin-bottom: 2.5rem !important; }
.login-form .h3 { font-weight: 800; }
.login-form .input-group-merge .input-group-text { background: var(--bg-muted); border-color: var(--border); color: var(--text-muted); border-radius: var(--rounding-md) 0 0 var(--rounding-md); }
.login-form .input-group-merge .form-control { min-height: 46px; border-color: var(--border); }
.login-form .input-group-merge .input-group-append .btn { border-color: var(--border); border-radius: 0 var(--rounding-md) var(--rounding-md) 0; }
.login-form .btn-primary { min-height: 46px; border-radius: var(--rounding-md); font-weight: 800; }

/* ---------- painel inicial da área do cliente (clientareahome.tpl) ---------- */
html .gs-page-clientareahome #main-body { padding-top: 0; }
.gs-page-clientareahome #main-body > div > .row { margin: 0; }
.gs-page-clientareahome #main-body .primary-content { padding: 0; }
.gs-dash { padding-bottom: 1rem; }
.gs-dash-band {
    color: #fff; padding: 2.1rem 0 6rem;
    background:
        var(--gs-dots, radial-gradient(rgba(255, 255, 255, .09) 1px, transparent 1.4px) 0 0 / 22px 22px),
        radial-gradient(900px 420px at 85% 0%, var(--primary-500) 0, transparent 60%),
        linear-gradient(135deg, var(--primary-700) 0, var(--primary-900) 100%);
}
.gs-dash-band__in { display: flex; justify-content: space-between; align-items: flex-end; gap: 1.25rem; flex-wrap: wrap; }
.gs-dash-kick { display: inline-flex; align-items: center; gap: .5rem; padding: .3rem .75rem; border-radius: 999px; background: rgba(255, 255, 255, .12); border: 1px solid rgba(255, 255, 255, .2); font-size: .8rem; font-weight: 600; }
.gs-dash-hello { margin: .75rem 0 .25rem; color: #fff; font-family: var(--gs-font-display, var(--gs-font)); font-size: clamp(1.6rem, 3.4vw, 2rem); font-weight: 700; line-height: 1.15; letter-spacing: -.015em; }
.gs-dash-sub { margin: 0; color: rgba(255, 255, 255, .82); }
.gs-dash-acts { display: flex; gap: .6rem; flex-wrap: wrap; }

.gs-dash-stats { position: relative; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1rem; margin: -4rem 0 1.15rem; }
.gs-dash-stat {
    display: flex; align-items: center; gap: .9rem; min-width: 0; padding: 1.15rem 1.25rem; color: var(--text);
    background: var(--bg); border: 1px solid var(--gs-ca-line); border-radius: var(--gs-ca-radius); box-shadow: var(--gs-ca-shadow);
    transition: transform .15s var(--gs-ease), box-shadow .15s var(--gs-ease), border-color .15s var(--gs-ease);
}
.gs-dash-stat:hover { color: var(--text); text-decoration: none; transform: translateY(-2px); box-shadow: var(--gs-shadow-lg); border-color: var(--primary-200); }
.gs-dash-stat > span:not(.gs-dash-ic) { display: flex; flex-direction: column; min-width: 0; }
.gs-dash-stat b { font-family: var(--gs-font-display, var(--gs-font)); font-size: 2.5rem; font-weight: 800; line-height: 1; color: var(--text); }
.gs-dash-stat b.gs-dash-stat__money { font-size: 1.5rem; line-height: 1.15; }
.gs-dash-stat span span { margin-top: .2rem; font-size: .86rem; color: var(--text-muted); }
.gs-dash-stat__late { font-style: normal; font-size: .8rem; font-weight: 700; color: var(--error); }
.gs-dash-stat__go { margin-left: auto; font-size: .85rem; opacity: .7; }
.gs-dash-stat--pay { border-color: color-mix(in srgb, var(--warning) 35%, transparent); background: linear-gradient(135deg, color-mix(in srgb, var(--warning) 7%, var(--bg)), var(--bg)); }
.gs-dash-stat--pay .gs-dash-ic { --c: var(--warning); }
.gs-dash-stat--pay .gs-dash-stat__go { color: var(--warning); }
.gs-dash-stat--pay:hover { border-color: color-mix(in srgb, var(--warning) 55%, transparent); }
.gs-dash-stat--ok .gs-dash-ic { --c: var(--success); }
.gs-dash-stat--ok .gs-dash-stat__go { color: var(--success); }

.gs-dash-ic { --c: var(--primary); flex: 0 0 auto; display: inline-flex; align-items: center; justify-content: center; width: 42px; height: 42px; border-radius: 12px; font-size: 1rem; color: var(--c); background: color-mix(in srgb, var(--c) 11%, transparent); }

.gs-dash-grid { display: grid; grid-template-columns: minmax(0, 1.65fr) minmax(0, 1fr); gap: 1.15rem; align-items: start; }
.gs-dash-side { display: flex; flex-direction: column; gap: 1.15rem; min-width: 0; }
.gs-dash-card { min-width: 0; overflow: hidden; background: var(--bg); border: 1px solid var(--gs-ca-line); border-radius: var(--gs-ca-radius); box-shadow: var(--gs-ca-shadow); }
.gs-dash-hd { display: flex; justify-content: space-between; align-items: center; gap: 1rem; padding: 1rem 1.25rem; border-bottom: 1px solid var(--gs-ca-line); }
.gs-dash-hd h2 { margin: 0; font-family: var(--gs-font-display, var(--gs-font)); font-size: 1.05rem; font-weight: 700; color: var(--text); }
.gs-dash-hd a { font-size: .85rem; font-weight: 600; white-space: nowrap; }
.gs-dash-hd a i { font-size: .75rem; margin-left: .2rem; }
.gs-dash-li { display: flex; align-items: center; gap: .9rem; padding: .9rem 1.25rem; border-bottom: 1px solid var(--gs-ca-line); color: var(--text); }
.gs-dash-li:last-child { border-bottom: 0; }
a.gs-dash-li:hover { background: var(--bg-muted); color: var(--text); text-decoration: none; }
.gs-dash-li__m { flex: 1 1 auto; display: flex; flex-direction: column; min-width: 0; }
.gs-dash-li__m b { font-weight: 600; color: var(--text); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.gs-dash-li__m span { font-size: .82rem; color: var(--text-muted); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.gs-dash-li__link:hover { text-decoration: none; }
.gs-dash-li__m span.gs-dash-late { color: var(--error); font-weight: 600; }
.gs-dash-li__link:hover b { color: var(--gs-link, var(--primary)); }
.gs-dash-mono { font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: .78rem !important; }
.gs-dash-li__dt { flex: 0 0 auto; width: 6.2rem; text-align: right; font-size: .86rem; color: var(--text-lifted); }
.gs-dash-li__go { flex: 0 0 auto; font-size: .75rem; color: var(--text-muted); opacity: .6; }
.gs-dash-li--inv .gs-btn { flex: 0 0 auto; }
.gs-dash-li--all { justify-content: space-between; background: var(--bg-muted); font-size: .9rem; }
.gs-dash-li--all b { font-weight: 700; }
.gs-dash-more { display: block; padding: .6rem 1.25rem; border-bottom: 1px solid var(--gs-ca-line); font-size: .85rem; font-weight: 600; }

.gs-dash-pill { flex: 0 0 auto; display: inline-flex; align-items: center; gap: .4rem; padding: .2rem .65rem; border-radius: 999px; font-size: .75rem; font-weight: 700; white-space: nowrap; --c: var(--text-muted); color: var(--c); background: color-mix(in srgb, var(--c) 12%, transparent); }
.gs-dash-pill::before { content: ""; width: 6px; height: 6px; border-radius: 50%; background: currentColor; }
.gs-dash-pill--ok { --c: var(--success-lifted, var(--success)); }
.gs-dash-pill--wa { --c: #b45309; }
.gs-dash-pill--er { --c: var(--error); }
.gs-dash-pill--in { --c: var(--gs-link, var(--primary)); }
html.gs-dark .gs-dash-pill--wa { --c: #f5a524; }
html.gs-dark .gs-dash-pill--ok { --c: var(--success); }

.gs-dash-empty { display: flex; flex-direction: column; align-items: center; gap: .6rem; padding: 2rem 1.25rem; text-align: center; color: var(--text-muted); }
.gs-dash-empty p { margin: 0; }
.gs-dash-empty--sm { padding: 1rem 1.25rem; align-items: flex-start; text-align: left; font-size: .9rem; }
.gs-dash-addon { margin-bottom: 1.15rem; }
.gs-dash-panels { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 1.15rem; margin-top: 1.25rem; }

@media (max-width: 991.98px) {
    .gs-dash-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .gs-dash-grid { grid-template-columns: minmax(0, 1fr); }
    /* no celular as faturas em aberto vêm antes dos serviços */
    .gs-dash-grid { display: flex; flex-direction: column; align-items: stretch; }
    .gs-dash-side { display: contents; }
    .gs-dash-inv { order: -1; }
    .gs-dash-panels { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 575.98px) {
    .gs-dash-band { padding: 1.5rem 0 5.25rem; }
    .gs-dash-acts { width: 100%; }
    .gs-dash-acts .gs-btn { flex: 1 1 0; justify-content: center; }
    .gs-dash-stats { gap: .65rem; margin-top: -3.75rem; }
    .gs-dash-stat { flex-direction: column; align-items: flex-start; gap: .55rem; padding: .95rem; }
    .gs-dash-stat b { font-size: 2rem; }
    .gs-dash-stat b.gs-dash-stat__money { font-size: 1.3rem; }
    .gs-dash-stat__go { display: none; }
    .gs-dash-li { padding: .85rem 1rem; gap: .7rem; }
    .gs-dash-hd { padding: .9rem 1rem; }
    .gs-dash-li__dt, .gs-dash-li__go, .gs-dash-li--inv .gs-dash-pill { display: none; }
    .gs-dash-li--all { flex-wrap: wrap; }
}

/* espaço entre a faixa de título e o conteúdo (ambos os estilos) */
.gs-pagehead ~ #main-body,
.gs-style-lagom .gs-pagehead ~ #main-body { padding-top: 1.75rem; }

/* =====================================================================
   LOJA - faixa com título e etapas do pedido (includes/gs-cartflow.tpl)
   ===================================================================== */
.gs-cartflow {
    background: var(--bg);
    border-bottom: 1px solid var(--border-muted);
}
.gs-cartflow__inner {
    display: flex; align-items: center; justify-content: space-between; gap: 1rem 2rem; flex-wrap: wrap;
    padding-top: 1.25rem; padding-bottom: 1.15rem;
}
.gs-cartflow__eyebrow {
    margin: 0 0 .2rem; font-size: .78rem; font-weight: 700; letter-spacing: .04em; text-transform: uppercase;
    color: var(--success, #16a34a);
}
.gs-cartflow__eyebrow i { margin-right: .3rem; }
.gs-cartflow__title { margin: 0; font-size: clamp(1.3rem, 2.4vw, 1.65rem); letter-spacing: -.015em; }

.gs-steps { display: flex; align-items: center; list-style: none; margin: 0; padding: 0; counter-reset: none; }
.gs-step { display: flex; align-items: center; color: var(--text-muted, #8a96a8); font-size: .86rem; font-weight: 600; white-space: nowrap; }
.gs-step + .gs-step::before {
    content: ""; display: block; width: clamp(14px, 3vw, 40px); height: 2px; margin: 0 .6rem; border-radius: 2px;
    background: var(--border, #d6dde6);
}
.gs-step.is-done + .gs-step::before { background: var(--primary); }
.gs-step__link { display: inline-flex; align-items: center; color: inherit; text-decoration: none; }
.gs-step__link:hover { color: var(--primary); text-decoration: none; }
.gs-step__dot {
    display: inline-flex; align-items: center; justify-content: center; flex: 0 0 auto;
    width: 30px; height: 30px; margin-right: .5rem; border-radius: 50%;
    border: 2px solid var(--border, #d6dde6); background: var(--bg); color: var(--text-muted, #8a96a8);
    font-size: .8rem; font-weight: 800;
}
.gs-step.is-done { color: var(--text); }
.gs-step.is-done .gs-step__dot { background: var(--gs-primary-btn, var(--primary)); border-color: var(--gs-primary-btn, var(--primary)); color: var(--gs-primary-ink, #fff); font-size: .72rem; }
.gs-step.is-current { color: var(--primary); }
.gs-step.is-current .gs-step__dot {
    border-color: var(--primary); color: var(--primary); background: var(--primary-50, #edf3f8);
    box-shadow: 0 0 0 4px color-mix(in srgb, var(--primary) 14%, transparent);
}
html.gs-dark .gs-step.is-current .gs-step__dot { background: color-mix(in srgb, var(--primary) 18%, transparent); color: var(--primary-300, #8fb6d6); }
html.gs-dark .gs-step.is-current { color: var(--primary-300, #8fb6d6); }

.gs-cartflow ~ #main-body,
.gs-style-lagom .gs-cartflow ~ #main-body { padding-top: 1.75rem; }

@media (max-width: 767.98px) {
    .gs-step__label { display: none; }
    .gs-step.is-current .gs-step__label { display: inline; }
    .gs-steps { width: 100%; }
    /* as linhas entre as etapas se ajustam à largura: as 5 etapas sempre cabem na tela */
    .gs-step + .gs-step::before { width: clamp(6px, 3vw, 40px); margin: 0 .35rem; }
    .gs-step__dot { width: 28px; height: 28px; margin-right: .4rem; }
    .gs-step:not(.is-current) .gs-step__dot { margin-right: 0; }
}
@media (max-width: 359.98px) {
    .gs-step.is-current .gs-step__label { display: none; }
    .gs-step.is-current .gs-step__dot { margin-right: 0; }
}

/* =====================================================================
   LOGIN (login.tpl) - cartão dividido: marca + formulário
   ===================================================================== */
.gs-page-login .master-breadcrumb { display: none; }
.gs-auth {
    display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.05fr);
    max-width: 980px; margin: 2.5rem auto 3rem;
    background: var(--bg); border: 1px solid var(--border-muted); border-radius: calc(var(--rounding-lg) + 6px);
    box-shadow: var(--gs-shadow-lg); overflow: hidden;
}

/* painel da marca */
.gs-auth__aside {
    position: relative; display: flex; flex-direction: column; justify-content: center; gap: 2rem;
    padding: 2.5rem 2.25rem; color: #fff; overflow: hidden;
    background:
        radial-gradient(120% 80% at 100% 0, color-mix(in srgb, var(--primary) 70%, transparent) 0, transparent 60%),
        radial-gradient(90% 60% at 0 100%, color-mix(in srgb, var(--gs-accent, #db3f3b) 35%, transparent) 0, transparent 65%),
        linear-gradient(160deg, var(--gs-navy, #002846) 0, var(--gs-navy-2, #09304c) 100%);
}
.gs-auth__aside::after {
    content: ""; position: absolute; inset: 0; pointer-events: none; opacity: .08;
    background-image: radial-gradient(#fff 1px, transparent 1px); background-size: 18px 18px;
}
.gs-auth__aside > * { position: relative; z-index: 1; }
.gs-auth__logo { display: block; max-height: 40px; max-width: 200px; width: auto; }
.gs-auth__logo--plate { background: #fff; padding: 6px 10px; border-radius: 10px; }
.gs-auth__name { font-size: 1.35rem; font-weight: 800; letter-spacing: -.02em; }
.gs-auth__eyebrow { margin: 0 0 .5rem; font-size: .78rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; color: rgba(255, 255, 255, .7); }
.gs-auth__title { margin: 0 0 .6rem; color: #fff; font-size: clamp(1.6rem, 3vw, 2.1rem); letter-spacing: -.02em; }
.gs-auth__lead { margin: 0 0 1.5rem; color: rgba(255, 255, 255, .82); line-height: 1.55; }
.gs-auth__list { list-style: none; margin: 0; padding: 0; display: grid; gap: .7rem; }
.gs-auth__list li { display: flex; align-items: center; gap: .7rem; font-weight: 600; color: rgba(255, 255, 255, .92); }
.gs-auth__ico {
    display: inline-flex; align-items: center; justify-content: center; flex: 0 0 34px; width: 34px; height: 34px;
    border-radius: 10px; background: rgba(255, 255, 255, .12); border: 1px solid rgba(255, 255, 255, .16); font-size: .85rem;
}
.gs-auth__secure { margin: 0; font-size: .82rem; color: rgba(255, 255, 255, .65); }
.gs-auth__secure i { margin-right: .35rem; color: #7fe0a6; }

/* formulário */
.gs-auth__main { padding: 2.5rem 2.5rem 2rem; display: flex; flex-direction: column; justify-content: center; }
.gs-auth__head { margin-bottom: 1.5rem; text-align: center; }
.gs-auth__h { margin: 0 0 .3rem; font-size: 1.6rem; font-weight: 800; letter-spacing: -.02em; }
.gs-auth__sub { margin: 0; color: var(--text-muted); }
.gs-auth__form .form-group { margin-bottom: 1.1rem; }
.gs-auth__form label.form-control-label { display: block; margin-bottom: .4rem; font-size: .88rem; font-weight: 700; color: var(--text-accented); }
.gs-auth__pwrow { display: flex; align-items: baseline; justify-content: space-between; gap: 1rem; }
.gs-auth__forgot { font-size: .84rem; font-weight: 600; }

.gs-field.input-group { position: relative; display: block; flex-wrap: nowrap; }
.gs-field__ico {
    position: absolute; left: 1rem; top: 50%; transform: translateY(-50%); z-index: 4;
    color: var(--text-muted); font-size: .92rem; pointer-events: none; transition: color .15s;
}
.gs-field .form-control {
    width: 100%; height: 50px; padding: 0 1rem 0 2.75rem; border-radius: var(--rounding-md) !important;
    border: 1.5px solid var(--border); background: var(--bg-muted); color: var(--text); font-size: 1rem;
    transition: border-color .15s, box-shadow .15s, background-color .15s;
}
.gs-field .form-control:hover { border-color: var(--border-accented, var(--border)); }
.gs-field .form-control:focus {
    border-color: var(--primary); background: var(--bg);
    box-shadow: 0 0 0 4px color-mix(in srgb, var(--primary) 16%, transparent);
}
.gs-field:focus-within .gs-field__ico { color: var(--primary); }
.gs-field .pw-input { padding-right: 3.25rem; }
.gs-field__btn.btn {
    position: absolute; right: 6px; top: 50%; transform: translateY(-50%); z-index: 4;
    width: 38px; height: 38px; padding: 0; border: 0; border-radius: 10px; background: transparent; color: var(--text-muted); box-shadow: none;
}
.gs-field__btn.btn:hover, .gs-field__btn.btn:focus, .gs-field__btn.btn:active { transform: translateY(-50%) !important; background: var(--bg-lifted); color: var(--primary); box-shadow: none; }

.gs-auth__remember { display: flex; align-items: center; gap: .55rem; margin: .25rem 0 1.25rem; font-size: .9rem; font-weight: 600; color: var(--text-lifted, var(--text)); cursor: pointer; }
.gs-auth__remember .form-check-input { position: static; margin: 0; }
.gs-auth__submit.btn {
    display: flex; align-items: center; justify-content: center; gap: .55rem; width: 100%;
    height: 52px; border: 0; border-radius: 999px; font-size: 1.05rem; font-weight: 800;
    background: var(--gs-primary-btn, var(--primary)); color: var(--gs-primary-ink, #fff);
    box-shadow: 0 12px 26px color-mix(in srgb, var(--primary) 30%, transparent);
    transition: transform .15s, box-shadow .15s, filter .15s;
}
.gs-auth__submit.btn:hover, .gs-auth__submit.btn:focus { transform: translateY(-2px); filter: brightness(1.06); color: #fff; box-shadow: 0 16px 32px color-mix(in srgb, var(--primary) 38%, transparent); }
.gs-auth__submit i { transition: transform .15s; }
.gs-auth__submit:hover i { transform: translateX(3px); }

.gs-auth__linked:empty { display: none; }
.gs-auth__linked { margin-top: 1.25rem; }
.gs-auth__linked .social-signin-btns, .gs-auth__linked .btn { border-radius: var(--rounding-md); }
.gs-auth__signup {
    margin: 1.5rem 0 0; padding-top: 1.25rem; border-top: 1px solid var(--border-muted);
    text-align: center; color: var(--text-muted); font-size: .92rem;
}
.gs-auth__signup a { font-weight: 800; margin-left: .25rem; }

html.gs-dark .gs-field .form-control { background: var(--bg-lifted); }
html.gs-dark .gs-field .form-control:focus { background: var(--bg); }

@media (max-width: 767.98px) {
    .gs-auth { grid-template-columns: 1fr; margin: 1.25rem auto 2rem; }
    .gs-auth__aside { padding: 1.5rem 1.5rem 1.25rem; gap: 1rem; }
    .gs-auth__lead, .gs-auth__list, .gs-auth__secure { display: none; }
    .gs-auth__title { font-size: 1.35rem; margin: 0; }
    .gs-auth__main { padding: 1.75rem 1.4rem 1.5rem; }
}

/* =====================================================================
   CABEÇALHO - visitante: ícone de usuário com submenu (Entrar / Criar conta)
   ===================================================================== */
.gs-menu--guest { display: flex; }
.gs-menu--guest > .gs-menu__item { position: relative; }
.gs-userbtn { font-size: 1.15rem; }
.gs-menu--guest .gs-menu__item.is-open > .gs-userbtn { background: var(--primary-50); color: var(--primary-700, var(--primary)); }
html.gs-dark .gs-menu--guest .gs-menu__item.is-open > .gs-userbtn { background: rgba(var(--gs-primary-light-rgb, 91, 139, 255), .14); color: var(--primary-300); }
.gs-panel--guest { min-width: 220px; }
.gs-panel__hello { margin: .2rem .55rem .45rem; font-size: .75rem; font-weight: 800; letter-spacing: .05em; text-transform: uppercase; color: var(--text-muted); }

/* barra fixa: diminui um pouco ao rolar (junto com o logo) */
.gs-menu__link { transition: height .18s var(--gs-ease), background-color .14s var(--gs-ease), color .14s var(--gs-ease); }
.gs-style-lagom .gs-bar__inner { transition: min-height .18s var(--gs-ease), height .18s var(--gs-ease); }
.gs-style-lagom .gs-bar.is-scrolled .gs-bar__inner { min-height: 62px; height: 62px; }
.gs-style-lagom .gs-bar.is-scrolled .gs-menu__link { height: 62px; }
.gs-style-lagom .gs-bar.is-scrolled .gs-menu--account .gs-menu__link { height: 38px; }
@media (max-width: 991.98px) {
    .gs-style-lagom .gs-bar.is-scrolled .gs-bar__inner { min-height: 56px; height: 56px; }
}
.gs-userbtn:focus:not(:focus-visible) { outline: none; box-shadow: none; }
@media (max-width: 991.98px) { .gs-hide-md { display: none !important; } }
/* o Nexus limita o logo a 60px (header.header .logo-img): a altura do addon prevalece */
header.gs-header .gs-brand__img.logo-img { max-height: none; height: var(--gs-logo-h, 36px); max-width: min(320px, calc(var(--gs-logo-h, 36px) * 6)); }
header.gs-header .gs-bar.is-scrolled .gs-brand__img.logo-img { height: var(--gs-logo-h-s, calc(var(--gs-logo-h, 36px) - 6px)); }
@media (max-width: 991.98px) {
    header.gs-header .gs-brand__img.logo-img { height: min(var(--gs-logo-h, 36px), 44px); max-width: 180px; }
    header.gs-header .gs-bar.is-scrolled .gs-brand__img.logo-img { height: min(var(--gs-logo-h-s, 30px), 38px); }
}

/* =====================================================================
   CARTÕES CLAROS DENTRO DE SEÇÕES ESCURAS (topo/hero, faixa de chamada, números, destaque)
   Os textos dessas seções são brancos; sem isto, cards de fundo branco colocados
   dentro delas herdavam texto branco (branco sobre branco).
   ===================================================================== */
:is(.gs-cp-hero, html:not(.gs-style-lagom) .gs-cta, .gs-cta__inner, .gs-stats, .gs-cp-banner, .gs-hero) :is(.gs-cp-price, .gs-cp-card, .gs-cp-plan, .gs-cp-trust__item, .gs-cp-spec, .gs-cp-logo, .gs-cp-loc, .gs-cp-table-wrap, .gs-cp-steps li, .gs-cp-guarantee, .gs-tile, .gs-quote, .gs-faq__item, .gs-pcard, .gs-cp-domain__form) {
    color: var(--text);
}
:is(.gs-cp-hero, html:not(.gs-style-lagom) .gs-cta, .gs-cta__inner, .gs-stats, .gs-cp-banner, .gs-hero) :is(.gs-cp-price, .gs-cp-card, .gs-cp-plan, .gs-cp-trust__item, .gs-cp-spec, .gs-cp-logo, .gs-cp-loc, .gs-cp-table-wrap, .gs-cp-steps li, .gs-cp-guarantee, .gs-tile, .gs-quote, .gs-faq__item, .gs-pcard) :is(h1, h2, h3, h4, h5, h6, strong, b, summary) {
    color: var(--text);
}
:is(.gs-cp-hero, html:not(.gs-style-lagom) .gs-cta, .gs-cta__inner, .gs-stats, .gs-cp-banner, .gs-hero) :is(.gs-cp-price, .gs-cp-card, .gs-cp-plan, .gs-pcard, .gs-cp-guarantee) .gs-cp-checks li::before { background-color: var(--primary-50); }
:is(.gs-cp-hero, html:not(.gs-style-lagom) .gs-cta, .gs-cta__inner, .gs-stats, .gs-cp-banner, .gs-hero) :is(.gs-cp-price, .gs-cp-card, .gs-cp-plan, .gs-pcard, .gs-cp-guarantee) .gs-cp-checks li::after { background: var(--primary); }
:is(.gs-cp-hero, html:not(.gs-style-lagom) .gs-cta, .gs-cta__inner, .gs-stats, .gs-cp-banner, .gs-hero) .gs-cp-price__badge { color: #fff; }
:is(.gs-cp-hero, html:not(.gs-style-lagom) .gs-cta, .gs-cta__inner, .gs-stats, .gs-cp-banner, .gs-hero) .gs-cp-guarantee__seal :is(strong, small) { color: #fff; }
/* textos de apoio e itens sem cartão nessas seções: claros */
:is(.gs-cp-hero, html:not(.gs-style-lagom) .gs-cta, .gs-cta__inner, .gs-stats, .gs-cp-banner) .gs-section__head .gs-cp-sub,
:is(.gs-cp-hero, html:not(.gs-style-lagom) .gs-cta, .gs-cta__inner, .gs-stats, .gs-cp-banner) .gs-cp-note--muted { color: rgba(255, 255, 255, .78); }
:is(.gs-cp-hero, html:not(.gs-style-lagom) .gs-cta, .gs-cta__inner, .gs-stats, .gs-cp-banner) .gs-feature { background: rgba(255, 255, 255, .06); border-color: rgba(255, 255, 255, .14); box-shadow: none; }
:is(.gs-cp-hero, html:not(.gs-style-lagom) .gs-cta, .gs-cta__inner, .gs-stats, .gs-cp-banner) .gs-feature__title { color: #fff; }
:is(.gs-cp-hero, html:not(.gs-style-lagom) .gs-cta, .gs-cta__inner, .gs-stats, .gs-cp-banner) .gs-feature__text { color: rgba(255, 255, 255, .78); }
html.gs-dark :is(.gs-cp-hero, html:not(.gs-style-lagom) .gs-cta, .gs-cta__inner, .gs-stats, .gs-cp-banner, .gs-hero) :is(.gs-cp-price, .gs-cp-card, .gs-cp-plan, .gs-pcard, .gs-cp-guarantee) .gs-cp-checks li::before { background-color: rgba(var(--gs-primary-light-rgb), .16); }
html.gs-dark :is(.gs-cp-hero, html:not(.gs-style-lagom) .gs-cta, .gs-cta__inner, .gs-stats, .gs-cp-banner, .gs-hero) :is(.gs-cp-price, .gs-cp-card, .gs-cp-plan, .gs-pcard, .gs-cp-guarantee) .gs-cp-checks li::after { background: var(--primary-300); }
/* Lagom: a faixa de chamada é transparente e só a caixa interna é escura */
.gs-style-lagom .gs-cta { color: var(--text); }
.gs-style-lagom .gs-cta__inner { color: #fff; }

/* =====================================================================
   PLANOS COM PREÇO: botões "Contratar" azuis e destaque "Mais contratado"
   (cards, linhas VPS, servidores dedicados, tabela comparativa, Planos de um grupo)
   ===================================================================== */
:is(.gs-cp-price, .gs-cp-plan, .gs-cp-ded__row, .gs-cp-table) .gs-btn--outline {
    background: var(--gs-primary-btn, var(--primary)); border-color: var(--gs-primary-btn, var(--primary)); color: var(--gs-primary-ink, #fff);
}
:is(.gs-cp-price, .gs-cp-plan, .gs-cp-ded__row, .gs-cp-table) .gs-btn--outline:hover { filter: brightness(1.08); color: #fff; }
/* cards */
.gs-cp-price--featured {
    border-color: var(--primary); background: var(--bg);
    box-shadow: 0 10px 26px rgba(var(--gs-primary-rgb), .14);
}
.gs-cp-price .gs-cp-price__badge {
    left: 1.25rem; transform: none; top: -11px; padding: .22rem .7rem; font-size: .68rem; font-weight: 700; line-height: 1.3;
    background: var(--gs-primary-btn, var(--primary)); color: var(--gs-primary-ink, #fff); box-shadow: 0 4px 10px rgba(var(--gs-primary-rgb), .3);
}
.gs-cp-price .gs-cp-price__badge::before { content: "\2605\00a0"; }
.gs-cp-price:not(.gs-cp-price--featured) .gs-cp-price__badge { display: none; }
/* linhas (VPS) */
.gs-cp-plan--featured {
    position: relative; margin-top: .6rem; border-color: var(--primary); background: var(--bg);
    box-shadow: 0 10px 26px rgba(var(--gs-primary-rgb), .14);
}
.gs-cp-plan--featured .gs-cp-plan__name small {
    position: absolute; top: -11px; left: 1.25rem; margin: 0; padding: .22rem .7rem; border-radius: 999px;
    background: var(--gs-primary-btn, var(--primary)); color: var(--gs-primary-ink, #fff); font-size: .68rem; font-weight: 700; letter-spacing: .01em; text-transform: none; line-height: 1.3;
    box-shadow: 0 4px 10px rgba(var(--gs-primary-rgb), .3);
}
.gs-cp-plan--featured .gs-cp-plan__name small::before { content: "\2605\00a0"; }
.gs-cp-plan:not(.gs-cp-plan--featured) .gs-cp-plan__name small { display: none; }
/* tabela comparativa: coluna em destaque (contorno azul) */
.gs-cp-table-wrap:has(th.is-featured) { padding-top: 14px; }
.gs-cp-table:has(th.is-featured) { border-collapse: separate; border-spacing: 0; }
.gs-cp-table th.is-featured, .gs-cp-table td.is-featured { position: relative; background: var(--bg); border-left: 2px solid var(--primary); border-right: 2px solid var(--primary); }
.gs-cp-table thead th.is-featured { border-top: 2px solid var(--primary); border-radius: 10px 10px 0 0; color: var(--primary); font-size: 1rem; }
.gs-cp-table tbody tr:last-child td.is-featured { border-bottom: 2px solid var(--primary); border-radius: 0 0 10px 10px; }
.gs-cp-table tbody tr:hover td.is-featured { background: var(--bg-lifted); }
.gs-cp-table thead th.is-featured::before {
    content: "\2605\00a0Mais contratado"; position: absolute; top: -12px; left: 50%; transform: translateX(-50%); white-space: nowrap;
    padding: .22rem .7rem; border-radius: 999px; background: var(--gs-primary-btn, var(--primary)); color: var(--gs-primary-ink, #fff); font-size: .68rem; font-weight: 700; line-height: 1.3;
    box-shadow: 0 4px 10px rgba(var(--gs-primary-rgb), .3);
}
html.gs-dark .gs-cp-table thead th.is-featured { color: var(--primary-300); }

/* =====================================================================
   Botões de compra: carregando após o clique (js/giga.js)
   ===================================================================== */
.gs-is-loading { position: relative !important; pointer-events: none !important; cursor: default; color: transparent !important; opacity: .65 !important; transition: none !important; }
.gs-is-loading > *:not(.gs-bars) { visibility: hidden; }
.gs-bars {
    --gs-bars-color: #fff;
    position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; gap: 3px; pointer-events: none;
}
.gs-bars i { display: block; width: 3px; border-radius: 2px; background: var(--gs-bars-color); animation: gs-bars-wave 1.2s ease-in-out infinite; }
.gs-bars i:nth-child(1) { height: 7px; animation-delay: 0s; }
.gs-bars i:nth-child(2) { height: 11px; animation-delay: .15s; }
.gs-bars i:nth-child(3) { height: 14px; animation-delay: .3s; }
.gs-bars i:nth-child(4) { height: 9px; animation-delay: .45s; }
.gs-btn--outline .gs-bars, .btn-outline-primary .gs-bars, .btn-default .gs-bars, .btn-link .gs-bars { --gs-bars-color: var(--primary); }
@keyframes gs-bars-wave { 0%, 100% { transform: scaleY(.6); opacity: .45; } 50% { transform: scaleY(1.25); opacity: 1; } }
@media (prefers-reduced-motion: reduce) { .gs-bars i { animation: none; opacity: .9; } }


/* =====================================================================
   Editor: blocos soltos na página e ajustes de blocos básicos
   ===================================================================== */
/* botões e links lado a lado (blocos básicos) ganham espaço entre si */
.gs-cpage__body .gs-btn + .gs-btn, .gs-cpage__body .gs-btn + a:not(.gs-btn), .gs-cpage__body a:not(.gs-btn) + .gs-btn { margin-left: .6rem; }
.gs-cpage__body .gs-btn { margin-bottom: .4rem; }
/* bloco "Plano" avulso: não estica na largura toda */
.gs-cpage__body > .gs-cp-price, .gs-cp-wrap > .gs-cp-price { max-width: 380px; }
.gs-cp-section--tight { padding: 1rem 0 !important; }

/* Formulários do WHMCS (contato, chamado etc.): no celular o rótulo fica acima do campo,
   então alinha à esquerda em vez de à direita. */
@media (max-width: 575.98px) {
    .form-group.row > .col-form-label.text-right { text-align: left !important; padding-bottom: .25rem; }
}

/* ===== Carrossel de cards no celular (editor: engrenagem da seção → "Carrossel no celular") =====
   a = card centralizado, setas brancas e pontinhos · b = setas e contador · c = card à esquerda, setas na cor da marca e pontinhos */
.gs-car__nav, .gs-car__dots, .gs-car__bar { display: none; }
@media (max-width: 767.98px) {
    html [data-gs-carousel]:not([data-gs-carousel=""]) :is(.gs-services__grid, .gs-cp-prices, .gs-cp-row),
    html :is(.gs-services__grid, .gs-cp-prices, .gs-cp-row)[data-gs-carousel]:not([data-gs-carousel=""]) {
        display: flex !important; flex-wrap: nowrap !important; justify-content: flex-start !important; align-items: stretch;
        grid-template-columns: none !important; gap: 14px !important; position: relative;
        overflow-x: auto; overflow-y: hidden; scroll-snap-type: x mandatory; overscroll-behavior-x: contain;
        -webkit-overflow-scrolling: touch; scrollbar-width: none; padding-top: 18px; padding-bottom: 12px;
    }
    html [data-gs-carousel]:not([data-gs-carousel=""]) :is(.gs-services__grid, .gs-cp-prices, .gs-cp-row)::-webkit-scrollbar,
    html :is(.gs-services__grid, .gs-cp-prices, .gs-cp-row)[data-gs-carousel]:not([data-gs-carousel=""])::-webkit-scrollbar { display: none; }
    html [data-gs-carousel]:not([data-gs-carousel=""]) :is(.gs-services__grid, .gs-cp-prices, .gs-cp-row) > *,
    html :is(.gs-services__grid, .gs-cp-prices, .gs-cp-row)[data-gs-carousel]:not([data-gs-carousel=""]) > * {
        flex: 0 0 84% !important; max-width: 84% !important; min-width: 0 !important; width: auto !important; margin-top: 0; margin-bottom: 0;
        scroll-snap-align: center; scroll-snap-stop: always;
    }
    /* bootstrap .row: sem as margens negativas e sem o recuo das colunas */
    html [data-gs-carousel]:not([data-gs-carousel=""]) .gs-cp-row, html .gs-cp-row[data-gs-carousel]:not([data-gs-carousel=""]) { margin-left: 0; margin-right: 0; }
    html [data-gs-carousel]:not([data-gs-carousel=""]) .gs-cp-row > *, html .gs-cp-row[data-gs-carousel]:not([data-gs-carousel=""]) > * { padding-left: 0; padding-right: 0; }

    /* A: card no meio, vizinhos aparecendo dos dois lados */
    html [data-gs-carousel="a"]:not([data-gs-carousel=""]) :is(.gs-services__grid, .gs-cp-prices, .gs-cp-row),
    html :is(.gs-services__grid, .gs-cp-prices, .gs-cp-row)[data-gs-carousel="a"]:not([data-gs-carousel=""]) { margin-left: -15px; margin-right: -15px; padding-left: 8%; padding-right: 8%; scroll-padding: 0 8%; }
    /* B: um card por vez, largura toda */
    html [data-gs-carousel="b"]:not([data-gs-carousel=""]) :is(.gs-services__grid, .gs-cp-prices, .gs-cp-row) > *,
    html :is(.gs-services__grid, .gs-cp-prices, .gs-cp-row)[data-gs-carousel="b"]:not([data-gs-carousel=""]) > * { flex-basis: 100% !important; max-width: 100% !important; scroll-snap-align: start; }
    html [data-gs-carousel="b"]:not([data-gs-carousel=""]) :is(.gs-services__grid, .gs-cp-prices, .gs-cp-row),
    html :is(.gs-services__grid, .gs-cp-prices, .gs-cp-row)[data-gs-carousel="b"]:not([data-gs-carousel=""]) { padding-left: 2px; padding-right: 2px; scroll-padding: 0 2px; }
    /* C: card à esquerda, espaço nas laterais para as setas */
    html [data-gs-carousel="c"]:not([data-gs-carousel=""]) :is(.gs-services__grid, .gs-cp-prices, .gs-cp-row),
    html :is(.gs-services__grid, .gs-cp-prices, .gs-cp-row)[data-gs-carousel="c"]:not([data-gs-carousel=""]) { margin-left: 38px; margin-right: 38px; padding-left: 2px; padding-right: 2px; gap: 20px !important; scroll-padding: 0 2px; }
    html [data-gs-carousel="c"]:not([data-gs-carousel=""]) :is(.gs-services__grid, .gs-cp-prices, .gs-cp-row) > *,
    html :is(.gs-services__grid, .gs-cp-prices, .gs-cp-row)[data-gs-carousel="c"]:not([data-gs-carousel=""]) > * { flex-basis: min(86%, 300px) !important; max-width: min(86%, 300px) !important; scroll-snap-align: start; }

    /* controles (criados pelo giga.js) */
    .gs-car { position: relative; }
    .gs-car__nav {
        position: absolute; top: 50%; z-index: 8; display: flex; align-items: center; justify-content: center;
        width: 40px; height: 40px; margin-top: -20px; padding: 0; border-radius: 50%; font-size: 16px; line-height: 1; cursor: pointer;
        transition: opacity .2s, transform .2s;
    }
    .gs-car__nav[disabled] { opacity: .35; cursor: default; }
    .gs-car__nav:focus-visible, .gs-car__dot:focus-visible, .gs-car__bar button:focus-visible { outline: 2px solid var(--primary, #015a9e); outline-offset: 2px; }
    .gs-car--a .gs-car__nav { width: 38px; height: 38px; margin-top: -19px; border: 1px solid #e2e8f0; background: #fff; color: #0f1b33; box-shadow: 0 6px 16px rgba(15, 42, 68, .18); }
    .gs-car--a .gs-car__nav--prev { left: -11px; }
    .gs-car--a .gs-car__nav--next { right: -11px; }
    .gs-car--c .gs-car__nav { border: 0; background: var(--primary, #015a9e); color: #fff; box-shadow: 0 8px 22px rgba(15, 42, 68, .22); }
    .gs-car--c .gs-car__nav--prev { left: -2px; }
    .gs-car--c .gs-car__nav--next { right: -2px; }
    .gs-car__dots { display: flex; justify-content: center; align-items: center; gap: 0; margin-top: 2px; }
    /* área de toque de 24 px; o pontinho visível é desenhado no ::before (sem animar largura) */
    .gs-car__dot { position: relative; width: 24px; height: 24px; padding: 0; border: 0; border-radius: 99px; background: transparent; cursor: pointer; --gs-dot: #cbd5e1; }
    .gs-car__dot::before { content: ""; position: absolute; left: 50%; top: 50%; width: 8px; height: 8px; margin: -4px 0 0 -4px; border-radius: 99px; background: var(--gs-dot); transition: background-color .2s; }
    .gs-car__dot.is-on { width: 30px; }
    .gs-car__dot.is-on::before { width: 22px; margin-left: -11px; }
    .gs-car--c .gs-car__dot { --gs-dot: #e2e8f0; }
    .gs-car__dot.is-on, .gs-car--c .gs-car__dot.is-on { --gs-dot: var(--primary, #015a9e); }
    .gs-car__bar { display: flex; justify-content: center; align-items: center; gap: 14px; margin-top: 6px; }
    .gs-car__bar button {
        display: flex; align-items: center; justify-content: center; width: 40px; height: 40px; padding: 0; border-radius: 50%;
        border: 1px solid #cbd5e1; background: #fff; color: #0f1b33; font-size: 16px; box-shadow: 0 2px 6px rgba(15, 23, 42, .08); cursor: pointer;
    }
    .gs-car__bar button[disabled] { opacity: .35; cursor: default; }
    .gs-car__count { min-width: 56px; text-align: center; font-size: 14px; color: var(--text-lifted, #55647a); }
    /* fundos escuros (topo, faixas): pontinhos e contador claros */
    :is(.gs-cp-hero, .gs-cta, .gs-stats, .gs-hero) .gs-car__dot { --gs-dot: rgba(255, 255, 255, .35); }
    :is(.gs-cp-hero, .gs-cta, .gs-stats, .gs-hero) .gs-car__dot.is-on { --gs-dot: #fff; }
    :is(.gs-cp-hero, .gs-cta, .gs-stats, .gs-hero) .gs-car__count { color: rgba(255, 255, 255, .85); }
}
@media (max-width: 767.98px) and (prefers-reduced-motion: reduce) {
    .gs-car__dot::before, .gs-car__nav { transition: none; }
}

/* ===== Seção que sobe sobre o topo (editor: engrenagem da seção → "Subir sobre o topo") =====
   1 = leve · 2 = média · 3 = forte. O topo logo antes ganha o mesmo espaço extra embaixo. */
[data-gs-lift="1"] { --gs-lift: 60px; }
[data-gs-lift="2"] { --gs-lift: 110px; }
[data-gs-lift="3"] { --gs-lift: 160px; }
@media (max-width: 767.98px) {
    [data-gs-lift="1"] { --gs-lift: 40px; }
    [data-gs-lift="2"] { --gs-lift: 70px; }
    [data-gs-lift="3"] { --gs-lift: 100px; }
}
html [data-gs-lift]:is([data-gs-lift="1"], [data-gs-lift="2"], [data-gs-lift="3"]) {
    position: relative; z-index: 3; margin-top: calc(-1 * var(--gs-lift)) !important; padding-top: 0 !important; background: transparent !important;
}
/* o conteúdo de dentro também começa colado (sem o respiro de cima da seção) */
html [data-gs-lift]:is([data-gs-lift="1"], [data-gs-lift="2"], [data-gs-lift="3"]) > :is(.gs-services, .gs-cp-section, section, .gs-wcar, .gs-wcolor):first-child,
html [data-gs-lift]:is([data-gs-lift="1"], [data-gs-lift="2"], [data-gs-lift="3"]) > :is(.gs-wcar, .gs-wcolor) > :is(.gs-services, .gs-cp-section, section):first-child,
/* no editor a seção automática fica dentro da caixa de pré-visualização (.gs-widget__preview) */
html [data-gs-lift]:is([data-gs-lift="1"], [data-gs-lift="2"], [data-gs-lift="3"]) > .gs-widget__preview > :is(.gs-services, .gs-cp-section, section, .gs-wcar, .gs-wcolor):first-child,
html [data-gs-lift]:is([data-gs-lift="1"], [data-gs-lift="2"], [data-gs-lift="3"]) > .gs-widget__preview > :is(.gs-wcar, .gs-wcolor) > :is(.gs-services, .gs-cp-section, section):first-child,
html [data-gs-lift]:is([data-gs-lift="1"], [data-gs-lift="2"], [data-gs-lift="3"]) > .gs-widget__preview > .gs-wcar > .gs-wcolor > :is(.gs-services, .gs-cp-section, section):first-child,
html [data-gs-lift]:is([data-gs-lift="1"], [data-gs-lift="2"], [data-gs-lift="3"]) > .gs-wcar > .gs-wcolor > :is(.gs-services, .gs-cp-section, section):first-child {
    margin-top: 0 !important; padding-top: 0 !important;
}
/* título que ficar sobre o topo: em branco */
html [data-gs-lift]:is([data-gs-lift="1"], [data-gs-lift="2"], [data-gs-lift="3"]) .gs-section__head :is(.gs-section__title, .gs-section__lead, .gs-cp-sub) { color: #fff; }
html [data-gs-lift]:is([data-gs-lift="1"], [data-gs-lift="2"], [data-gs-lift="3"]) .gs-section__head .gs-section__lead,
html [data-gs-lift]:is([data-gs-lift="1"], [data-gs-lift="2"], [data-gs-lift="3"]) .gs-section__head .gs-cp-sub { color: rgba(255, 255, 255, .84); }
/* espaço extra embaixo do topo anterior (o giga.js marca a classe; :has cobre o editor) */
html .gs-cp-hero.gs-lift-prev--1, html .gs-cp-hero:has(+ [data-gs-lift="1"]) { padding-bottom: calc(var(--gs-cph-pad, clamp(1.75rem, 4vw, 3rem)) + 60px); }
html .gs-cp-hero.gs-lift-prev--2, html .gs-cp-hero:has(+ [data-gs-lift="2"]) { padding-bottom: calc(var(--gs-cph-pad, clamp(1.75rem, 4vw, 3rem)) + 110px); }
html .gs-cp-hero.gs-lift-prev--3, html .gs-cp-hero:has(+ [data-gs-lift="3"]) { padding-bottom: calc(var(--gs-cph-pad, clamp(1.75rem, 4vw, 3rem)) + 160px); }
@media (max-width: 767.98px) {
    html .gs-cp-hero.gs-lift-prev--1, html .gs-cp-hero:has(+ [data-gs-lift="1"]) { padding-bottom: calc(var(--gs-cph-pad, clamp(1.75rem, 4vw, 3rem)) + 40px); }
    html .gs-cp-hero.gs-lift-prev--2, html .gs-cp-hero:has(+ [data-gs-lift="2"]) { padding-bottom: calc(var(--gs-cph-pad, clamp(1.75rem, 4vw, 3rem)) + 70px); }
    html .gs-cp-hero.gs-lift-prev--3, html .gs-cp-hero:has(+ [data-gs-lift="3"]) { padding-bottom: calc(var(--gs-cph-pad, clamp(1.75rem, 4vw, 3rem)) + 100px); }
}

/* ===== Sem página inicial definida (includes/gs-nohome.tpl) ===== */
.gs-nohome { display: flex; justify-content: center; padding: clamp(3rem, 8vw, 6rem) 15px; }
.gs-nohome__card {
    width: 100%; max-width: 640px; padding: clamp(1.75rem, 5vw, 3rem); text-align: center;
    background: var(--card-bg, #fff); border: 1px solid var(--border, #e2e8f0); border-radius: 18px; box-shadow: 0 20px 50px rgba(15, 23, 42, .08);
}
.gs-nohome__ico { display: inline-flex; align-items: center; justify-content: center; width: 68px; height: 68px; margin-bottom: 1rem; border-radius: 50%; background: var(--primary-50, #edf3f8); color: var(--primary, #015a9e); font-size: 28px; }
.gs-nohome__tag { display: table; margin: 0 auto .75rem; padding: 4px 12px; border-radius: 99px; background: #fff7ed; color: #c2410c; font-size: 12.5px; font-weight: 600; }
.gs-nohome h1 { margin: 0 0 .75rem; font-size: clamp(1.5rem, 3.4vw, 2rem); }
.gs-nohome p { max-width: 34rem; margin: 0 auto 1.25rem; color: var(--text-lifted, #55647a); line-height: 1.7; }
.gs-nohome__steps { max-width: 30rem; margin: 0 auto 1.5rem; padding-left: 1.2rem; text-align: left; line-height: 1.8; }
.gs-nohome__actions { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px; }

/* ===== Largura dos cards (editor: engrenagem da seção → "Largura dos cards") =====
   s = ~260 px · m = ~300 px · l = ~360 px. Cards do mesmo tamanho, centralizados; a linha incompleta fica no meio.
   Só do tablet para cima: no celular vale a lista normal ou o carrossel. */
[data-gs-card-w="s"] { --gs-cw: 260px; }
[data-gs-card-w="m"] { --gs-cw: 300px; }
[data-gs-card-w="l"] { --gs-cw: 360px; }
@media (min-width: 768px) {
    html [data-gs-card-w]:is([data-gs-card-w="s"], [data-gs-card-w="m"], [data-gs-card-w="l"]) :is(.gs-services__grid, .gs-cp-prices, .gs-cp-row),
    html :is(.gs-services__grid, .gs-cp-prices, .gs-cp-row)[data-gs-card-w]:is([data-gs-card-w="s"], [data-gs-card-w="m"], [data-gs-card-w="l"]) {
        display: flex !important; flex-wrap: wrap !important; justify-content: center !important; grid-template-columns: none !important;
    }
    html [data-gs-card-w]:is([data-gs-card-w="s"], [data-gs-card-w="m"], [data-gs-card-w="l"]) :is(.gs-services__grid, .gs-cp-prices, .gs-cp-row) > *,
    html :is(.gs-services__grid, .gs-cp-prices, .gs-cp-row)[data-gs-card-w]:is([data-gs-card-w="s"], [data-gs-card-w="m"], [data-gs-card-w="l"]) > * {
        flex: 0 0 var(--gs-cw) !important; max-width: var(--gs-cw) !important; min-width: 0 !important; width: auto !important;
    }
    /* linhas de colunas (bootstrap) não têm espaço entre linhas */
    html [data-gs-card-w]:is([data-gs-card-w="s"], [data-gs-card-w="m"], [data-gs-card-w="l"]) .gs-cp-row,
    html .gs-cp-row[data-gs-card-w]:is([data-gs-card-w="s"], [data-gs-card-w="m"], [data-gs-card-w="l"]) { row-gap: 1.25rem; }
}

/* =====================================================================
   1.59.0 - elementos novos do editor
   ===================================================================== */
/* Selo */
.gs-badge { display: inline-flex; align-items: center; gap: .3rem; padding: .18rem .6rem; border-radius: 999px; font-size: .75rem; font-weight: 700; line-height: 1.5; white-space: nowrap; vertical-align: middle; }
.gs-badge--primary { background: var(--primary-50); color: var(--gs-link, var(--primary-700)); }
.gs-badge--accent { background: rgba(var(--gs-accent-rgb, 228, 125, 56), .14); color: color-mix(in srgb, var(--gs-accent) 70%, #000); }
.gs-badge--success { background: #dcfce7; color: #15803d; }
.gs-badge--neutral { background: var(--bg-lifted); color: var(--text-lifted); }
.gs-badge--dark { background: var(--gs-navy); color: #fff; }
html.gs-dark .gs-badge--primary { background: rgba(var(--gs-primary-light-rgb), .16); color: var(--primary-300); }
html.gs-dark .gs-badge--accent { color: var(--gs-accent); }
html.gs-dark .gs-badge--success { background: rgba(34, 197, 94, .16); color: #4ade80; }

/* Bloco de código */
.gs-code { margin: 0 0 1.25rem; border-radius: var(--rounding-md); background: #0f172a; color: #e2e8f0; overflow: hidden; box-shadow: var(--gs-shadow); }
.gs-code__bar { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: .45rem .6rem .45rem 1rem; background: #1e293b; }
.gs-code__lang { font: 700 .72rem/1 var(--gs-font); letter-spacing: .06em; text-transform: uppercase; color: #94a3b8; }
.gs-code__pre { margin: 0; padding: 1rem 1.1rem; overflow-x: auto; background: transparent; border: 0; color: inherit; font: .86rem/1.6 ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; white-space: pre; }
.gs-code__pre code { color: inherit; background: none; padding: 0; font: inherit; white-space: inherit; }
.gs-code__copy { display: inline-flex; align-items: center; gap: .35rem; padding: .3rem .7rem; border: 1px solid #334155; border-radius: 8px; background: transparent; color: #cbd5e1; font: 600 .78rem/1.2 var(--gs-font); cursor: pointer; }
.gs-code__copy:hover { background: #334155; color: #fff; }

/* Caixa de copiar */
.gs-copy { display: flex; align-items: center; gap: .6rem; width: fit-content; min-width: min(100%, 260px); max-width: 100%; margin: 0 0 .75rem; padding: .35rem .35rem .35rem .85rem; border: 1px dashed var(--primary-300, #85c2ff); border-radius: var(--rounding-md); background: var(--bg); }
.gs-copy__label { flex: none; font-size: .78rem; font-weight: 700; color: var(--text-muted); text-transform: uppercase; letter-spacing: .04em; }
.gs-copy__value { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; padding: 0; background: none; color: var(--text); font: 700 .95rem/1.4 ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; }
.gs-copy__btn { flex: none; display: inline-flex; align-items: center; gap: .35rem; padding: .45rem .8rem; border: 0; border-radius: calc(var(--rounding-md) - 3px); background: var(--gs-primary-btn, var(--primary)); color: var(--gs-primary-ink, #fff); font: 700 .8rem/1.2 var(--gs-font); cursor: pointer; }
.gs-copy__btn:hover { filter: brightness(1.08); }
:is(.gs-copy__btn, .gs-code__copy).is-copied { background: #15803d; border-color: #15803d; color: #fff; }

/* Contagem regressiva */
.gs-countdown { display: inline-flex; gap: .5rem; margin: 0 0 1rem; }
.gs-countdown__u { display: flex; flex-direction: column; align-items: center; min-width: 4.2rem; padding: .6rem .5rem; border-radius: var(--rounding-md); background: var(--gs-navy); color: #fff; }
.gs-countdown__u b { font: 800 1.7rem/1.1 var(--gs-font-display); font-variant-numeric: tabular-nums; }
.gs-countdown__u span { margin-top: .15rem; font-size: .68rem; font-weight: 600; letter-spacing: .05em; text-transform: uppercase; opacity: .75; }
.gs-countdown--sm { gap: .3rem; margin: 0; }
.gs-countdown--sm .gs-countdown__u { min-width: 2.9rem; padding: .35rem .3rem; background: rgba(255, 255, 255, .14); }
.gs-countdown--sm .gs-countdown__u b { font-size: 1.1rem; }
.gs-countdown--sm .gs-countdown__u span { font-size: .6rem; }
.gs-countdown.is-ended { display: none; }

/* Ícone com número */
.gs-stat { display: inline-flex; align-items: center; gap: .85rem; margin: 0 0 1rem; }
.gs-stat__ico { flex: none; display: inline-flex; align-items: center; justify-content: center; width: 3rem; height: 3rem; border-radius: var(--rounding-md); background: var(--primary-50); color: var(--primary); font-size: 1.2rem; }
html.gs-dark .gs-stat__ico { background: rgba(var(--gs-primary-light-rgb), .16); color: var(--primary-300); }
.gs-stat__num { display: block; font: 800 1.75rem/1.1 var(--gs-font-display); color: var(--text); letter-spacing: -.02em; }
.gs-stat__label { display: block; font-size: .85rem; color: var(--text-lifted); }

/* Abas */
.gs-tabs { margin: 0 0 1.5rem; }
.gs-tabs__nav { display: flex; gap: .25rem; margin-bottom: 1.25rem; border-bottom: 1px solid var(--border-muted); overflow-x: auto; scrollbar-width: none; }
.gs-tabs__nav::-webkit-scrollbar { display: none; }
.gs-tabs__tab { flex: none; padding: .7rem 1.1rem; margin-bottom: -1px; border: 0; border-bottom: 2px solid transparent; background: none; color: var(--text-lifted); font: 600 .95rem/1.3 var(--gs-font); cursor: pointer; white-space: nowrap; }
.gs-tabs__tab:hover { color: var(--text); }
.gs-tabs__tab.is-on { color: var(--gs-link, var(--primary)); border-bottom-color: var(--primary); }
.gs-tabs.is-ready .gs-tabs__panel:not(.is-on) { display: none; }

/* Linha do tempo */
.gs-timeline { list-style: none; margin: 0 0 1.5rem; padding: 0 0 0 1.6rem; position: relative; }
.gs-timeline::before { content: ""; position: absolute; left: .45rem; top: .4rem; bottom: .4rem; width: 2px; background: var(--border-muted); }
.gs-timeline__item { position: relative; padding: 0 0 1.4rem; }
.gs-timeline__item::before { content: ""; position: absolute; left: -1.6rem; top: .3rem; width: .95rem; height: .95rem; border-radius: 50%; background: var(--bg); border: 3px solid var(--primary); }
.gs-timeline__item:first-child::before { background: var(--primary); }
.gs-timeline__date { display: block; font-size: .78rem; font-weight: 700; color: var(--text-muted); text-transform: uppercase; letter-spacing: .04em; }
.gs-timeline__title { margin: .15rem 0 .35rem; font-size: 1.1rem; }
.gs-timeline__list { margin: 0; padding-left: 1.1rem; color: var(--text-lifted); font-size: .92rem; }
.gs-timeline__list li { margin: .15rem 0; }
.gs-timeline__item.is-folded { display: none; }
.gs-timeline__more { margin: -.9rem 0 1.5rem; padding: .5rem 1rem; border: 1px solid var(--border-muted); border-radius: 999px; background: var(--bg); color: var(--gs-link, var(--primary)); font: 700 .85rem/1.2 var(--gs-font); cursor: pointer; }
.gs-timeline__more:hover { border-color: var(--primary); }

/* Galeria com ampliação */
.gs-gallery { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; margin: 0 0 1.5rem; }
.gs-gallery[data-gs-cols="2"] { grid-template-columns: repeat(2, 1fr); }
.gs-gallery[data-gs-cols="4"] { grid-template-columns: repeat(4, 1fr); }
.gs-gallery__item { margin: 0; border-radius: var(--rounding-md); overflow: hidden; border: 1px solid var(--border-muted); background: var(--bg-lifted); box-shadow: var(--gs-shadow); }
.gs-gallery__item img { display: block; width: 100%; height: 100%; aspect-ratio: 16 / 10; object-fit: cover; transition: transform .25s var(--gs-ease); }
.gs-gallery.is-ready .gs-gallery__item { cursor: zoom-in; }
.gs-gallery.is-ready .gs-gallery__item:hover img { transform: scale(1.03); }
@media (max-width: 767.98px) { .gs-gallery, .gs-gallery[data-gs-cols] { grid-template-columns: repeat(2, 1fr); gap: .6rem; } }
.gs-lightbox { position: fixed; inset: 0; z-index: 2000; display: flex; align-items: center; justify-content: center; padding: 3.5rem 1rem; background: rgba(5, 10, 20, .9); }
.gs-lightbox img { max-width: min(1200px, 100%); max-height: 100%; border-radius: 10px; box-shadow: 0 20px 60px rgba(0, 0, 0, .5); }
.gs-lightbox__btn { position: absolute; display: inline-flex; align-items: center; justify-content: center; width: 2.75rem; height: 2.75rem; border: 0; border-radius: 50%; background: rgba(255, 255, 255, .14); color: #fff; font-size: 1.1rem; cursor: pointer; }
.gs-lightbox__btn:hover { background: rgba(255, 255, 255, .26); }
.gs-lightbox__x { top: .9rem; right: .9rem; }
.gs-lightbox__prev { left: .9rem; top: 50%; transform: translateY(-50%); }
.gs-lightbox__next { right: .9rem; top: 50%; transform: translateY(-50%); }
.gs-lightbox__count { position: absolute; bottom: 1rem; left: 50%; transform: translateX(-50%); color: rgba(255, 255, 255, .8); font-size: .85rem; }

/* Tabela de requisitos e comparativo */
.gs-cp-table--req td:nth-child(2) { text-align: center; width: 7rem; }
.gs-cp-table--req th:nth-child(2) { text-align: center; }
.gs-cp-table--req td:nth-child(3) { color: var(--text-muted); font-size: .88rem; }
.gs-cp-table--vs td:not(:first-child), .gs-cp-table--vs th:not(:first-child) { text-align: center; }

/* Lista de downloads */
.gs-files { list-style: none; margin: 0 0 1.5rem; padding: 0; border: 1px solid var(--border-muted); border-radius: var(--rounding-lg); background: var(--bg); overflow: hidden; }
.gs-file { display: flex; align-items: center; gap: .9rem; padding: .85rem 1rem; }
.gs-file + .gs-file { border-top: 1px solid var(--border-muted); }
.gs-file__ico { flex: none; display: inline-flex; align-items: center; justify-content: center; width: 2.5rem; height: 2.5rem; border-radius: 10px; background: var(--primary-50); color: var(--primary); }
html.gs-dark .gs-file__ico { background: rgba(var(--gs-primary-light-rgb), .16); color: var(--primary-300); }
.gs-file__info { flex: 1; min-width: 0; }
.gs-file__info strong { display: block; color: var(--text); overflow-wrap: anywhere; }
.gs-file__info small { color: var(--text-muted); }

/* Logos de clientes */
.gs-logos__title { margin: 0 0 1.25rem; text-align: center; font-size: .82rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--text-muted); }
.gs-logos { overflow: hidden; }
.gs-logos__track { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 1.5rem 2.75rem; }
.gs-logos__img { display: block; height: 44px; width: auto; max-width: 170px; object-fit: contain; filter: grayscale(1); opacity: .7; transition: filter .2s, opacity .2s; }
.gs-logos__img:hover { filter: none; opacity: 1; }
html.gs-dark .gs-logos__img { filter: grayscale(1) brightness(1.6); }
.gs-logos.is-marquee { -webkit-mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent); mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent); }
.gs-logos.is-marquee .gs-logos__track { flex-wrap: nowrap; justify-content: flex-start; width: max-content; padding-right: 2.75rem; animation: gs-marquee var(--gs-marquee-t, 30s) linear infinite; }
.gs-logos.is-marquee:hover .gs-logos__track { animation-play-state: paused; }
@keyframes gs-marquee { to { transform: translateX(-50%); } }
@media (prefers-reduced-motion: reduce) { .gs-logos.is-marquee .gs-logos__track { animation: none; flex-wrap: wrap; justify-content: center; width: auto; } .gs-logos.is-marquee { -webkit-mask-image: none; mask-image: none; } }

/* Faixa de promoção */
.gs-promo { padding: 1.1rem 0; background: linear-gradient(100deg, var(--gs-navy), var(--primary-700, #006edb)); color: #fff; }
.gs-promo__inner { display: flex; align-items: center; justify-content: center; flex-wrap: wrap; gap: .9rem 1.4rem; }
.gs-promo__text { font-size: 1.02rem; }
.gs-promo__text strong { color: #fff; }
.gs-promo__tag { display: inline-flex; align-items: center; gap: .3rem; margin-right: .5rem; padding: .15rem .6rem; border-radius: 999px; background: var(--gs-accent-btn, var(--gs-accent)); color: var(--gs-accent-ink, #fff); font-size: .72rem; font-weight: 800; text-transform: uppercase; letter-spacing: .04em; }
.gs-promo .gs-copy { margin: 0; border-color: rgba(255, 255, 255, .45); background: rgba(255, 255, 255, .1); }
.gs-promo .gs-copy__label { color: rgba(255, 255, 255, .75); }
.gs-promo .gs-copy__value { color: #fff; }
.gs-promo .gs-copy__btn { background: #fff; color: var(--gs-navy); }
.gs-promo.is-ended { display: none; }

/* Grade de apps / integrações */
.gs-apps { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 1rem; }
@media (max-width: 575.98px) { .gs-apps { grid-template-columns: repeat(2, 1fr); gap: .65rem; } }
.gs-app { display: flex; flex-direction: column; align-items: center; gap: .2rem; padding: 1.3rem .8rem; text-align: center; background: var(--bg); border: 1px solid var(--border-muted); border-radius: var(--rounding-lg); box-shadow: var(--gs-shadow); transition: transform .18s var(--gs-ease), border-color .18s; }
.gs-app:hover { transform: translateY(-2px); border-color: var(--primary-300, #85c2ff); }
.gs-app__ico { display: inline-flex; align-items: center; justify-content: center; width: 3.2rem; height: 3.2rem; margin-bottom: .45rem; border-radius: 14px; background: var(--primary-50); color: var(--primary); font-size: 1.55rem; }
.gs-app__ico img { max-width: 2rem; max-height: 2rem; }
html.gs-dark .gs-app__ico { background: rgba(var(--gs-primary-light-rgb), .16); color: var(--primary-300); }
.gs-app__name { color: var(--text); font-size: .95rem; }
.gs-app__sub { color: var(--text-muted); font-size: .78rem; }

/* Demonstração ao vivo */
.gs-demo { align-items: center; }
.gs-demo__card h3 { display: flex; align-items: center; gap: .5rem; margin: 0 0 1rem; font-size: 1.05rem; }
.gs-demo__card h3 i { color: var(--primary); }
.gs-demo__note { margin: .25rem 0 0; font-size: .8rem; color: var(--text-muted); }

/* Planos Nextcloud e SSL */
.gs-cp-storage { display: flex; align-items: baseline; flex-wrap: wrap; gap: .35rem; margin: 0 0 .9rem; padding: .6rem .8rem; border-radius: var(--rounding-md); background: var(--primary-50); color: var(--text-lifted); font-size: .85rem; }
.gs-cp-storage i { color: var(--primary); }
.gs-cp-storage strong { font: 800 1.35rem/1 var(--gs-font-display); color: var(--text); }
html.gs-dark .gs-cp-storage { background: rgba(var(--gs-primary-light-rgb), .12); }
.gs-cp-price__ico { display: inline-flex; align-items: center; justify-content: center; width: 2.6rem; height: 2.6rem; margin-bottom: .75rem; border-radius: 12px; background: var(--primary-50); color: var(--primary); font-size: 1.1rem; }
html.gs-dark .gs-cp-price__ico { background: rgba(var(--gs-primary-light-rgb), .16); color: var(--primary-300); }
@media (min-width: 1200px) { .gs-cp-prices--5 { grid-template-columns: repeat(5, 1fr); gap: 1rem; } .gs-cp-prices--5 .gs-cp-price { padding-left: 1.15rem; padding-right: 1.15rem; } }
.gs-cp-prices--2 { max-width: 780px; margin-left: auto; margin-right: auto; }
.gs-cp-price__value [data-gs-unit] { font-size: .9rem; font-weight: 600; color: var(--text-lifted); margin-left: .2rem; }

/* Cards de módulos */
.gs-mods { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 1.25rem; }
.gs-mod { display: flex; flex-direction: column; padding: 1.4rem; background: var(--bg); border: 1px solid var(--border-muted); border-radius: var(--rounding-lg); box-shadow: var(--gs-shadow); transition: border-color .18s, transform .18s var(--gs-ease); }
.gs-mod:hover { border-color: var(--primary-300, #85c2ff); transform: translateY(-2px); }
.gs-mod__head { display: flex; align-items: center; gap: .85rem; margin-bottom: .8rem; }
.gs-mod__ico { flex: none; display: inline-flex; align-items: center; justify-content: center; width: 3rem; height: 3rem; border-radius: 14px; background: linear-gradient(135deg, var(--primary), var(--gs-navy)); color: #fff; font-size: 1.25rem; }
.gs-mod__ico img { max-width: 100%; max-height: 100%; border-radius: inherit; }
.gs-mod__name { margin: 0; font-size: 1.08rem; }
.gs-mod__ver { font-size: .78rem; font-weight: 600; color: var(--text-muted); }
.gs-mod__desc { flex: 1; margin: 0 0 .9rem; color: var(--text-lifted); font-size: .92rem; }
.gs-mod__tags { display: flex; flex-wrap: wrap; gap: .35rem; margin-bottom: 1.1rem; }
.gs-mod__foot { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: .75rem; padding-top: 1rem; border-top: 1px solid var(--border-muted); }
.gs-mod__price { color: var(--text); white-space: nowrap; }
.gs-mod__price [data-gs-cur] { font-size: .8rem; font-weight: 700; vertical-align: super; margin-right: .15rem; }
.gs-mod__price [data-gs-amount] { font: 800 1.45rem/1 var(--gs-font-display); }
.gs-mod__price [data-gs-unit] { font-size: .8rem; color: var(--text-lifted); margin-left: .15rem; }
.gs-mod__btns { display: flex; flex-wrap: wrap; gap: .35rem; }
.gs-mod.is-soldout { opacity: .7; }

/* Botão de ciclo de pagamento */
/* seletor de ciclo do editor (o carrinho tem outro .gs-cycle, por isso o atributo) */
.gs-cycle[data-gs-cycle-switch] { display: flex; width: max-content; max-width: 100%; margin: 0 auto 1.75rem; padding: .3rem; gap: .2rem; border-radius: 999px; background: var(--bg-lifted); border: 1px solid var(--border-muted); overflow-x: auto; }
.gs-cycle__opt { display: inline-flex; align-items: center; gap: .4rem; padding: .55rem 1.15rem; border: 0; border-radius: 999px; background: none; color: var(--text-lifted); font: 700 .9rem/1.2 var(--gs-font); white-space: nowrap; cursor: pointer; }
.gs-cycle__opt:hover { color: var(--text); }
.gs-cycle__opt.is-on { background: var(--bg); color: var(--text); box-shadow: 0 2px 8px rgba(0, 40, 70, .12); }
.gs-cycle__opt[hidden] { display: none; }
.gs-cycle__off { padding: .05rem .4rem; border-radius: 6px; background: #dcfce7; color: #15803d; font-size: .72rem; font-weight: 800; }
.gs-cycle__off:empty { display: none; }
html.gs-dark .gs-cycle__off { background: rgba(34, 197, 94, .16); color: #4ade80; }
/* comparativo: o selo da coluna destacada diz "Recomendado" */
.gs-cp-table--vs thead th.is-featured::before { content: "\2713\00a0 Recomendado"; }
/* chave de ciclo: plano sem o ciclo escolhido continua com o valor mensal, com aviso */
.is-cycle-missing :is(.gs-cp-price__value, .gs-mod__price)::after { content: "Sem esta opção de ciclo · valor mensal"; display: block; margin-top: .3rem; font-size: .72rem; font-weight: 600; letter-spacing: 0; color: var(--text-muted); }
.gs-demo__card .gs-copy { width: auto; }
.gs-demo > * { min-width: 0; }
.gs-demo .gs-cp-actions { flex-wrap: wrap; }

/* =====================================================================
   Fatura do tema (viewinvoice.tpl): fatura à esquerda e card de pagamento ao lado
   ===================================================================== */
html.gs-inv-page,html.gs-inv-page body.gs-inv-body{background:#f5f7fa;color:var(--text,#1c2733)}
.gs-inv-body{margin:0;padding:28px 16px 10px;font-family:var(--gs-font,inherit)}
.gs-inv-page #fullpage-overlay.w-hidden{display:none}
.gs-inv{max-width:860px;margin:0 auto;background:#fff;border:1px solid var(--border-muted,#e2e8f0);border-radius:14px;padding:40px 44px}
.gs-inv--solo{padding:28px}
.gs-inv-hd{display:flex;justify-content:space-between;align-items:flex-start;gap:16px}
.gs-inv-logo{display:block;max-width:220px;height:auto;object-fit:contain}
.gs-inv-company{font:800 1.35rem/1.2 var(--gs-font-display,inherit);color:var(--text)}
.gs-inv-hd__r{text-align:right}
.gs-inv-hd h1{margin:0;font:700 1.55rem/1.2 var(--gs-font-display,inherit);color:var(--text)}
.gs-inv-hd__sub{margin-top:4px;font-size:.88rem;color:var(--text-muted)}
/* faixa de status */
.gs-inv-band{position:relative;overflow:hidden;display:flex;align-items:center;flex-wrap:wrap;gap:14px 20px;margin:22px 0 4px;padding:14px 18px 14px 22px;border-radius:12px;background:#f8fafc;--gs-inv-c:#475569;--gs-inv-t:#334155}
.gs-inv-band::before{content:"";position:absolute;left:0;top:0;bottom:0;width:6px;background:var(--gs-inv-c)}
.gs-inv-band--unpaid{background:#fffbeb;--gs-inv-c:#b45309;--gs-inv-t:#92400e}
.gs-inv-band--paid{background:#f0fdf4;--gs-inv-c:#15803d;--gs-inv-t:#166534}
.gs-inv-band--overdue{background:#fef2f2;--gs-inv-c:#b91c1c;--gs-inv-t:#991b1b}
.gs-inv-band--info{background:#f0f9ff;--gs-inv-c:#0369a1;--gs-inv-t:#075985}
.gs-inv-band__st{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.gs-inv-badge{display:inline-block;padding:6px 16px;border-radius:999px;background:var(--gs-inv-c,#475569);color:#fff;font:800 .95rem/1.2 var(--gs-font,inherit);letter-spacing:.04em;text-transform:uppercase}
.gs-inv-band__info{font-size:.92rem;font-weight:600;color:var(--gs-inv-t)}
/* avisos e blocos */
.gs-inv-alert{margin:16px 0 0;padding:12px 16px;border-radius:10px;font-size:.92rem;border:1px solid #bae6fd;background:#f0f9ff;color:#075985}
.gs-inv-alert strong{margin-right:4px}
.gs-inv-alert--success{border-color:#bbf7d0;background:#f0fdf4;color:#166534}
.gs-inv-alert--danger,.gs-inv-alert--error{border-color:#fecaca;background:#fef2f2;color:#991b1b}
.gs-inv-alert--warning{border-color:#fde68a;background:#fffbeb;color:#92400e}
.gs-inv-info{display:grid;grid-template-columns:1fr 1fr;gap:22px 40px;padding:26px 0}
.gs-inv-info h4{margin:0 0 6px;font-size:.78rem;font-weight:700;color:var(--text-muted)}
.gs-inv-info p{margin:0;font-size:.92rem;line-height:1.6;color:var(--text)}
.gs-inv-info__r{text-align:right}
.gs-inv-credit{margin:0 0 22px;padding:14px 16px;border:1px solid #bbf7d0;border-radius:12px;background:#f0fdf4;font-size:.9rem}
.gs-inv-credit__t{font-weight:800;color:#166534;margin-bottom:4px}
.gs-inv-credit p{margin:0 0 10px;color:var(--text-lifted)}
.gs-inv-credit__row{display:flex;gap:8px;max-width:360px}
.gs-inv-credit__row .form-control{flex:1 1 auto;min-width:0}
.gs-inv-notes{margin:0 0 22px;padding:12px 16px;border-radius:10px;background:var(--bg-lifted,#f8fafc);font-size:.9rem}
.gs-inv-notes strong{display:block;margin-bottom:4px;font-size:.78rem;color:var(--text-muted)}
.gs-inv-t{width:100%;border-collapse:collapse;font-size:.92rem}
.gs-inv-t th{padding:.55rem 0;text-align:left;font-size:.78rem;font-weight:700;color:var(--text-muted);border-bottom:1px solid var(--border-muted,#e2e8f0)}
.gs-inv-t td{padding:.75rem 0;border-bottom:1px solid var(--border-muted,#e2e8f0);color:var(--text);vertical-align:top}
.gs-inv-t th:last-child,.gs-inv-t td:last-child{text-align:right;white-space:nowrap;padding-left:16px}
.gs-inv-t td small{display:block;margin-top:2px;font-size:.8rem;color:var(--text-muted)}
.gs-inv-t--tx th,.gs-inv-t--tx td{padding-right:12px}
.gs-inv-t td.gs-inv-t__empty{text-align:left;color:var(--text-muted);white-space:normal;padding-left:0}
.gs-inv-tw{overflow-x:auto}
.gs-inv-sum{margin:8px 0 0 auto;width:min(320px,100%);font-size:.92rem}
.gs-inv-sum>div{display:flex;justify-content:space-between;gap:12px;padding:.35rem 0;color:var(--text-lifted)}
.gs-inv-sum .gs-inv-sum__tot{margin-top:4px;padding-top:.7rem;border-top:1px solid var(--text);font:800 1.1rem var(--gs-font-display,inherit);color:var(--text)}
.gs-inv-sum__bal span:last-child{font-weight:700;color:var(--text)}
.gs-inv-taxnote{margin:8px 0 0;font-size:.8rem;color:var(--text-muted)}
.gs-inv-sec{margin:30px 0 4px;font-size:.8rem;font-weight:700;color:var(--text-muted)}
.gs-inv-qr{margin-top:22px}
/* layout: fatura + card de pagamento */
.gs-inv-wrap{max-width:1180px;margin:0 auto 30px;display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:22px;align-items:start}
.gs-inv-wrap .gs-inv{max-width:none;margin:0}
.gs-inv-side{position:sticky;top:16px;display:grid;gap:14px;min-width:0}
.gs-inv-pay{min-width:0;padding:20px;background:#fff;border:1px solid var(--border-muted,#e2e8f0);border-radius:14px;box-shadow:0 6px 20px rgba(15,23,42,.06)}
.gs-inv-pay small{display:block;font-size:.78rem;font-weight:600;color:var(--text-muted)}
.gs-inv-pay__big{margin:2px 0 4px;font:800 1.75rem/1.15 var(--gs-font-display,inherit);color:var(--text)}
.gs-inv-pay__due{margin-bottom:14px;font-size:.85rem;color:var(--text-lifted)}
.gs-inv-pay__due.is-overdue{color:#b91c1c;font-weight:700}
.gs-inv-pay__pm{margin:0 0 14px;font-size:.88rem;color:var(--text-lifted)}
/* "Alterar forma de pagamento" em destaque */
.gs-inv-pm{display:flex;flex-direction:column;gap:4px;margin:0 0 14px;padding:12px;border:1.5px solid var(--primary-300,#85c2ff);border-radius:12px;background:var(--primary-50,#edf6ff)}
.gs-inv-pm__t{display:flex;align-items:center;gap:7px;margin:0;font-size:.9rem;font-weight:800;color:var(--gs-link,var(--primary-700));cursor:pointer}
.gs-inv-pm__t i{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:50%;background:var(--gs-primary-btn,var(--primary));color:#fff;font-size:.7rem}
.gs-inv-pm__sel{width:100%;min-width:0;padding:.55rem .7rem;border:1.5px solid var(--primary-300,#85c2ff);border-radius:10px;background:#fff;color:var(--text);font:700 .9rem var(--gs-font,inherit)}
/* conteúdo da forma de pagamento (botão, QR Code Pix, boleto, cartão) */
.gs-inv-gw{padding-top:14px;border-top:1px solid var(--border-muted,#e2e8f0);min-width:0;overflow-wrap:anywhere}
.gs-inv-gw:empty{display:none}
.gs-inv-gw .btn,.gs-inv-gw input[type=submit],.gs-inv-gw button[type=submit]{width:100%;border-radius:var(--rounding-md,.75rem);font-weight:700}
.gs-inv-gw img,.gs-inv-gw canvas,.gs-inv-gw svg{max-width:100%;height:auto}
.gs-inv-gw [style*="max-width"]{max-width:100%!important}
.gs-inv-acts{display:grid;padding:8px;background:#fff;border:1px solid var(--border-muted,#e2e8f0);border-radius:14px}
.gs-inv-acts a{display:flex;align-items:center;gap:10px;padding:.6rem .75rem;border-radius:8px;font-weight:600;font-size:.9rem;color:var(--text-accented,var(--text))}
.gs-inv-acts a i{width:18px;text-align:center;color:var(--text-muted)}
.gs-inv-acts a:hover{background:var(--bg-lifted,#f1f5f9);text-decoration:none}
@media (max-width:900px){.gs-inv-wrap{grid-template-columns:1fr}.gs-inv-side{position:static;order:-1}}
@media (max-width:700px){
  .gs-inv-body{padding:0 0 10px}
  .gs-inv{padding:24px 18px;border-radius:0;border-left:0;border-right:0}
  .gs-inv-wrap{gap:14px}.gs-inv-side{padding:14px 14px 0}
  .gs-inv-hd{flex-direction:column}.gs-inv-hd__r{text-align:left}
  .gs-inv-info__r{text-align:left}
  .gs-inv-info{gap:18px}
}
@media (max-width:480px){.gs-inv-info{grid-template-columns:1fr}}
@media print{
  html.gs-inv-page,html.gs-inv-page body.gs-inv-body{background:#fff}
  .gs-inv-body{padding:0}
  .gs-inv{border:0;padding:0;max-width:none}
  .gs-inv-wrap{display:block}
  .gs-inv-side,.d-print-none{display:none!important}
  .gs-inv-band{-webkit-print-color-adjust:exact;print-color-adjust:exact}
}

/* Modo escuro: links dentro de avisos (ex.: "Clique aqui" no aviso amarelo da configuração do produto) */
html.gs-dark .alert .alert-link { color: inherit; text-decoration: underline; }

/* =====================================================================
   Revisão da área do cliente (1.64.6): regras do Nexus com seletores mais
   fortes deixavam partes brancas no modo escuro
   ===================================================================== */
/* tabelas (serviços, faturas, chamados, domínios, cotações, e-mails, preços de domínio):
   coluna ordenada, busca e paginação desabilitada */
body .dataTables_wrapper table.table-list thead th.sorting_asc,
body .dataTables_wrapper table.table-list thead th.sorting_desc { background: var(--bg-lifted); color: var(--text-lifted); }
body .dataTables_wrapper .dataTables_filter label .form-control,
body .dataTables_wrapper .dataTables_length select { background-color: var(--bg); color: var(--text); border-color: var(--border); }
.page-item.disabled .page-link { background: var(--bg); border-color: var(--border); color: var(--text-muted); }
/* painéis da página inicial (Últimas notícias etc.): botão do cabeçalho, bordas e espaçamento */
body .primary-content .client-home-cards .card .card-header .btn { background: var(--bg); border-color: var(--border); color: var(--text-accented); }
body .primary-content .client-home-cards .card .card-header .btn:hover { background: var(--bg-muted); color: var(--primary); }
.client-home-cards .card > .list-group { border: 0; }
body .primary-content .client-home-cards .card .list-group .list-group-item { padding: .75rem 1.15rem; border-left: 0; border-right: 0; border-color: var(--gs-ca-line); }
body .primary-content .client-home-cards .card .list-group .list-group-item:first-child { border-top: 0; }
body .primary-content .client-home-cards .card .list-group .list-group-item:last-child { border-bottom: 0; }
/* cadastro */
#registration .field, #registration .form-control { background-color: var(--bg); color: var(--text); border-color: var(--border); }
#registration .field[disabled], #registration .field[readonly], #registration .form-control[disabled], #registration .form-control[readonly] { background-color: var(--bg-muted); }
#registration label { color: var(--text-lifted); }
#registration .sub-heading span { background-color: var(--bg); color: var(--primary); }
/* campos desabilitados ou só leitura (ex.: nome e e-mail ao abrir chamado) */
html.gs-dark .form-control:disabled, html.gs-dark .form-control[readonly] { background-color: var(--bg-lifted); color: var(--text-lifted); }
/* editor da mensagem (abrir e responder chamado) */
html.gs-dark .md-editor { border-color: var(--border); }
html.gs-dark .md-editor > .md-header, html.gs-dark .md-editor > .btn-toolbar, html.gs-dark .md-editor .md-footer { background: var(--bg-lifted) !important; border-color: var(--border); }
html.gs-dark .md-editor > textarea, html.gs-dark .md-editor > textarea.markdown-editor, html.gs-dark .md-editor > .md-preview { background: var(--bg) !important; color: var(--text); border-color: var(--border) !important; }
html.gs-dark .md-editor.active { border-color: var(--primary); }
.markdown-editor-status, .md-editor .small-font, .markdown-save { color: var(--text-muted); }
/* anexos */
html.gs-dark .custom-file-label { background: var(--bg); border-color: var(--border); color: var(--text-muted); }
html.gs-dark .custom-file-label::after { background: var(--bg-lifted); color: var(--text); border-color: var(--border); }
/* interruptor sim/não (cadastro, dados da conta) */
html.gs-dark .bootstrap-switch { border-color: var(--border); background: var(--bg); }
html.gs-dark .bootstrap-switch .bootstrap-switch-handle-off,
html.gs-dark .bootstrap-switch .bootstrap-switch-label { background: var(--bg-lifted); color: var(--text); border-color: var(--border); }
/* barra de força da senha */
html.gs-dark .progress { background-color: var(--bg-lifted); }
/* botão "Clique aqui para habilitar" da verificação em duas etapas */
html.gs-dark .btn.btn-success.open-modal.twofa-config-link.enable { background: var(--bg-lifted); border-color: var(--border); color: var(--text); }
html.gs-dark .btn.btn-success.open-modal.twofa-config-link.enable:hover { border-color: var(--primary); color: var(--primary); }
/* vermelho de "vencida" mais claro no fundo escuro (painel inicial) */
html.gs-dark .gs-dash-pill--er { --c: #ff6b72; }
html.gs-dark .gs-dash-li__m span.gs-dash-late, html.gs-dark .gs-dash-stat__late { color: #ff6b72; }
/* módulo de VPS (hcp-*): os cartões do módulo têm fundo branco fixo e somem no modo escuro */
html.gs-dark .hcp-ov-card, html.gs-dark .hcp-card { background: var(--bg) !important; border-color: var(--border-muted) !important; color: var(--text); }
html.gs-dark .hcp-ov-identity-icon { background: var(--bg-lifted) !important; color: var(--text-lifted) !important; }
html.gs-dark .hcp-ov-pill-running { background: rgba(34, 197, 94, .14) !important; color: #4ade80 !important; }
html.gs-dark .hcp-traffic-bar-wrapper { background: var(--bg-lifted) !important; }
html.gs-dark .hcp-ov-card .btn-default, html.gs-dark .hcp-card .btn-default { background: var(--bg-lifted) !important; border-color: var(--border) !important; color: var(--text) !important; }
html.gs-dark .hcp-ov-circle-label, html.gs-dark .hcp-info-value, html.gs-dark #hcp-password-masked { color: var(--text) !important; }
html.gs-dark .hcp-info-label, html.gs-dark .hcp-info-section-title { color: var(--text-muted) !important; }

/* altura de cada banner: editor → engrenagem do banner → "Altura do banner" (data-gs-hero-h; vazio = Normal).
   Desde a 1.72.0: Alta = a antiga Normal (estilo base do banner), Normal = a antiga Compacta e Compacta é nova, mais baixa.
   O espaço de baixo do banner padrão inclui a parte coberta pelos cartões que sobem sobre ele. */
html .gs-hero:not([data-gs-hero-h="tall"]):not([data-gs-hero-h="compact"]) { padding: 2rem 0 6.5rem; }
html .gs-hero:not([data-gs-hero-h="tall"]):not([data-gs-hero-h="compact"]) .gs-hero__art { min-height: 200px; }
html .gs-hero:not([data-gs-hero-h="tall"]):not([data-gs-hero-h="compact"]) .gs-hero__img { max-height: 320px; }
html .gs-hero[data-gs-hero-h="compact"] { padding: 1rem 0 6.5rem; }
html .gs-hero[data-gs-hero-h="compact"] .gs-hero__art { min-height: 160px; }
html .gs-hero[data-gs-hero-h="compact"] .gs-hero__img { max-height: 240px; }
html .gs-hero[data-gs-hero-h="compact"] .gs-ill { max-width: 380px; }
/* topo criado no editor (bloco "Topo"); sem escolha vale a Normal do .gs-cp-hero */
html .gs-cp-hero[data-gs-hero-h="compact"] { --gs-cph-pad: clamp(1rem, 2.5vw, 1.75rem); }
html .gs-cp-hero[data-gs-hero-h="normal"] { --gs-cph-pad: clamp(1.75rem, 4vw, 3rem); }
html .gs-cp-hero[data-gs-hero-h="tall"] { --gs-cph-pad: clamp(3rem, 7vw, 5.5rem); }
@media (max-width: 991.98px) {
    html .gs-hero:not([data-gs-hero-h="tall"]):not([data-gs-hero-h="compact"]) { padding: 1.75rem 0 6.5rem; }
    html .gs-hero[data-gs-hero-h="compact"] { padding: 1rem 0 6.5rem; }
}
/* banner sem imagem ao lado (engrenagem do banner → Imagem ao lado → Nenhuma): texto ocupa a largura */
html .gs-hero .gs-hero__inner:has(.gs-hero__noart) { grid-template-columns: minmax(0, 1fr); }
html .gs-hero .gs-hero__art:has(> .gs-hero__noart) { display: none; }


