/* =========================================================================
   Dinamic Assistance — folha de estilo única
   Direção: corporativa limpa. Azul e cinza, cards brancos com sombra suave,
   Montserrat nos títulos e Source Sans no corpo.
   Ordem: tokens · base · utilitários · componentes · seções · responsivo
   ========================================================================= */

/* --------------------------------------------------------------- 1. TOKENS */

:root {
    color-scheme: light;

    /* Azul institucional */
    --azul-900:  #0B2E4F;
    --azul-700:  #124E86;
    --azul-500:  #1E6FB8;
    --azul-100:  #D6E2EE;
    --azul-50:   #EEF4FA;

    /* Neutros levemente azulados */
    --fundo:     #F7F9FB;
    --branco:    #FFFFFF;
    --campo:     #FBFCFD;
    --tinta:     #1A2430;
    --texto:     #5A6672;
    --texto-2:   #6B7885;
    --texto-3:   #8894A0;
    --linha:     #E9EDF2;
    --linha-2:   #E3E8ED;
    --borda:     #D5DEE7;

    /* Verde WhatsApp — só nos botões de conversa */
    --verde:     #25A366;
    --verde-2:   #1C8B55;

    --ok:        #1E7A46;
    --ok-bg:     #E6F3EC;
    --erro:      #C0392B;
    --erro-bg:   #FAEAE8;

    --estrela:   #F0A500;

    --fonte-titulo: "Montserrat", "Segoe UI", "Helvetica Neue", Arial, sans-serif;
    --fonte-corpo:  "Source Sans 3", "Segoe UI", "Helvetica Neue", Arial, sans-serif;

    --sombra-1: 0 1px 2px rgba(11, 46, 79, 0.04), 0 10px 26px rgba(11, 46, 79, 0.06);
    --sombra-2: 0 1px 2px rgba(11, 46, 79, 0.04), 0 14px 34px rgba(11, 46, 79, 0.07);
    --sombra-3: 0 2px 4px rgba(11, 46, 79, 0.05), 0 22px 50px rgba(11, 46, 79, 0.11);

    --raio:     14px;
    --raio-btn: 10px;

    --topo-altura: 5.5rem;
    --transicao: 200ms cubic-bezier(0.22, 0.61, 0.36, 1);
}

/* ----------------------------------------------------------------- 2. BASE */

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

html {
    -webkit-text-size-adjust: 100%;
    scroll-behavior: smooth;
}

body {
    margin: 0;
    background: var(--fundo);
    color: var(--texto);
    font-family: var(--fonte-corpo);
    font-size: 1.0625rem;
    line-height: 1.65;
    -webkit-font-smoothing: antialiased;
    overflow-x: hidden;
}

img,
svg { max-width: 100%; }

img {
    display: block;
    height: auto;
}

a { color: var(--azul-700); }

a:hover { color: var(--azul-500); }

h1, h2, h3, h4 {
    margin: 0;
    font-family: var(--fonte-titulo);
    font-weight: 700;
    line-height: 1.15;
    color: var(--azul-900);
    text-wrap: balance;
}

p { margin: 0 0 1rem; }

p:last-child { margin-bottom: 0; }

ul, ol {
    margin: 0;
    padding: 0;
    list-style: none;
}

button {
    font: inherit;
    color: inherit;
    cursor: pointer;
}

:where(a, button, input, select, textarea, [tabindex]):focus-visible {
    outline: 2px solid var(--azul-500);
    outline-offset: 3px;
}

[id] { scroll-margin-top: calc(var(--topo-altura) + 1.5rem); }

/* ---------------------------------------------------------- 3. UTILITÁRIOS */

.wrap {
    width: 100%;
    max-width: 1440px;
    margin-inline: auto;
    padding-inline: clamp(1.25rem, 6vw, 8.75rem);
}

.sr-only {
    position: absolute;
    width: 1px;
    height: 1px;
    margin: -1px;
    padding: 0;
    overflow: hidden;
    clip-path: inset(50%);
    white-space: nowrap;
}

.skip {
    position: absolute;
    top: 0;
    left: 50%;
    z-index: 200;
    transform: translate(-50%, -120%);
    padding: 0.7rem 1.2rem;
    background: var(--azul-700);
    color: var(--branco);
    font-size: 0.9rem;
    text-decoration: none;
}

.skip:focus { transform: translate(-50%, 0); }

.ico {
    width: 1.2em;
    height: 1.2em;
    flex: none;
}

.sec { padding-block: clamp(3.5rem, 7vw, 6rem); }

.sec--azul { background: var(--azul-50); }

/* Cabeçalho de seção, centralizado */
.cabeca {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.85rem;
    margin-bottom: clamp(2.25rem, 4vw, 3.25rem);
    text-align: center;
}

.sobretitulo {
    margin: 0;
    color: var(--azul-500);
    font-size: 0.875rem;
    font-weight: 600;
    letter-spacing: 0.12em;
    text-transform: uppercase;
}

.sobretitulo--claro { color: #7FB2E0; }

.titulo {
    margin: 0;
    font-size: clamp(1.9rem, 3.6vw, 2.625rem);
    letter-spacing: -0.015em;
}

.cabeca .titulo { max-width: min(56rem, 100%); }

.intro {
    max-width: min(39rem, 100%);
    margin: 0;
    font-size: 1.125rem;
}

/* --------------------------------------------------------- 4. COMPONENTES */

.btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.6rem;
    min-height: 2.875rem;
    padding: 0.55rem 1.4rem;
    border: 1px solid transparent;
    border-radius: var(--raio-btn);
    background: none;
    font-family: var(--fonte-titulo);
    font-size: 0.95rem;
    font-weight: 700;
    text-decoration: none;
    transition: background var(--transicao), border-color var(--transicao),
                color var(--transicao), transform var(--transicao),
                box-shadow var(--transicao);
}

.btn--g {
    min-height: 3.5rem;
    padding: 0.75rem 1.9rem;
    font-size: 1.05rem;
}

.btn:hover { transform: translateY(-1px); }

.btn--azul {
    background: var(--azul-700);
    color: var(--branco);
}

.btn--azul:hover {
    background: var(--azul-900);
    color: var(--branco);
}

.btn--verde {
    background: var(--verde);
    color: var(--branco);
    box-shadow: 0 6px 18px rgba(37, 163, 102, 0.28);
}

.btn--verde:hover {
    background: var(--verde-2);
    color: var(--branco);
}

.btn--claro {
    background: var(--branco);
    border-color: #CBD8E4;
    color: var(--azul-700);
}

.btn--claro:hover {
    border-color: var(--azul-500);
    color: var(--azul-700);
}

.btn--branco {
    background: var(--branco);
    color: var(--azul-900);
}

.btn--branco:hover {
    background: var(--azul-50);
    color: var(--azul-900);
}

/* Selo arredondado do topo */
.selo {
    display: inline-flex;
    align-items: center;
    gap: 0.6rem;
    margin: 0;
    padding: 0.5rem 1.1rem;
    border: 1px solid var(--azul-100);
    border-radius: 999px;
    background: var(--branco);
    color: var(--azul-700);
    font-size: 0.875rem;
    font-weight: 600;
}

.selo .ico {
    width: 1rem;
    height: 1rem;
    stroke-width: 2;
}

/* Elo de texto com seta */
.elo {
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
    margin-top: auto;
    color: var(--azul-700);
    font-size: 0.95rem;
    font-weight: 600;
    text-decoration: none;
}

.elo .ico {
    width: 1rem;
    height: 1rem;
    stroke-width: 1.9;
    transition: transform var(--transicao);
}

.elo:hover .ico { transform: translateX(4px); }

/* Painel branco padrão */
.painel {
    padding: clamp(1.5rem, 3vw, 2.5rem);
    background: var(--branco);
    border: 1px solid var(--linha);
    border-radius: 16px;
    box-shadow: var(--sombra-2);
}

/* ------------------------------------------------------------ 5. CABEÇALHO */

.topo {
    position: sticky;
    top: 0;
    z-index: 60;
    background: var(--branco);
    border-bottom: 1px solid var(--linha-2);
}

.topo__inner {
    display: flex;
    align-items: center;
    gap: clamp(1rem, 2.5vw, 2.5rem);
    min-height: var(--topo-altura);
    transition: min-height var(--transicao);
}

.topo.is-condensado .topo__inner { min-height: 4.5rem; }

.topo__logo { flex: none; }

.topo__logo img {
    width: auto;
    height: 3.25rem;
    transition: height var(--transicao);
}

.topo.is-condensado .topo__logo img { height: 2.6rem; }

.topo__nav ul {
    display: flex;
    gap: clamp(1rem, 2vw, 2.125rem);
}

.topo__nav a {
    display: block;
    padding-block: 0.35rem;
    color: var(--tinta);
    font-size: 1rem;
    font-weight: 600;
    text-decoration: none;
    transition: color var(--transicao);
}

.topo__nav a:hover,
.topo__nav a.is-ativo { color: var(--azul-700); }

.topo__acoes {
    display: flex;
    align-items: center;
    gap: 1.25rem;
    margin-left: auto;
}

.topo__tel {
    display: inline-flex;
    align-items: center;
    gap: 0.55rem;
    color: var(--tinta);
    font-size: 1.0625rem;
    font-weight: 600;
    text-decoration: none;
    white-space: nowrap;
}

.topo__tel .ico { color: var(--azul-700); }

.topo__tel:hover { color: var(--azul-700); }

.topo__toggle {
    display: none;
    width: 2.875rem;
    height: 2.875rem;
    border: 1px solid var(--borda);
    border-radius: 8px;
    background: var(--branco);
    place-items: center;
}

.topo__toggle .ico {
    width: 1.4rem;
    height: 1.4rem;
    stroke-width: 1.8;
}

/* ------------------------------------------------------------------ 6. HERO */

.hero {
    position: relative;
    overflow: hidden;
    padding-block: clamp(2.75rem, 6vw, 6rem) clamp(5rem, 9vw, 9.375rem);
    text-align: center;
    isolation: isolate;
}

.hero__media {
    position: absolute;
    inset: 0;
    z-index: -2;
}

.hero__media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: 60% 55%;
    opacity: 0.6;
}

.hero::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: -1;
    background: linear-gradient(180deg,
        rgba(247, 249, 251, 0.55) 0%,
        rgba(238, 244, 250, 0.72) 55%,
        var(--fundo) 100%);
}

.hero__inner {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 1.625rem;
}

.hero__titulo {
    max-width: min(56rem, 100%);
    margin: 0;
    font-size: clamp(2.125rem, 4.4vw, 3.75rem);
    font-weight: 800;
    line-height: 1.1;
    letter-spacing: -0.02em;
    overflow-wrap: break-word;
}

.hero__lead {
    max-width: 46ch;
    margin: 0;
    color: #3A4A59;
    font-size: clamp(1.0625rem, 1.5vw, 1.25rem);
    line-height: 1.6;
}

.hero__acoes {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 0.875rem;
    margin-top: 0.375rem;
}

/* Faixa de confiança encostada no hero */
.destaques-wrap {
    position: relative;
    margin-top: clamp(-4.875rem, -7vw, -3.5rem);
}

.destaques {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    background: var(--branco);
    border: 1px solid var(--linha-2);
    border-radius: var(--raio);
    box-shadow: var(--sombra-2);
    overflow: hidden;
}

.destaques li {
    padding: 1.875rem 2.125rem;
    border-right: 1px solid #EDF1F5;
}

.destaques li:last-child { border-right: 0; }

.destaques__valor {
    margin: 0 0 0.25rem;
    font-family: var(--fonte-titulo);
    font-size: clamp(1.6rem, 2.6vw, 2.125rem);
    font-weight: 800;
    line-height: 1;
    color: var(--azul-900);
}

.destaques__rotulo {
    margin: 0;
    font-size: 0.9375rem;
    color: var(--texto-2);
}

/* -------------------------------------------------------------- 7. SERVIÇOS */

.cartoes {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 1.625rem;
}

.cartao {
    display: flex;
    flex-direction: column;
    background: var(--branco);
    border: 1px solid var(--linha);
    border-radius: var(--raio);
    box-shadow: var(--sombra-1);
    overflow: hidden;
    transition: transform var(--transicao), box-shadow var(--transicao);
}

.cartao:hover {
    transform: translateY(-3px);
    box-shadow: var(--sombra-2);
}

.cartao__foto {
    height: 10.5rem;
    background: var(--azul-50);
    overflow: hidden;
}

.cartao__foto img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 600ms cubic-bezier(0.22, 0.61, 0.36, 1);
}

.cartao:hover .cartao__foto img { transform: scale(1.04); }

.cartao__corpo {
    display: flex;
    flex-direction: column;
    flex: 1;
    gap: 0.75rem;
    padding: 1.75rem 1.625rem 1.875rem;
}

.cartao__icone {
    display: block;
    color: var(--azul-500);
}

.cartao__icone .ico {
    width: 1.875rem;
    height: 1.875rem;
}

.cartao__titulo {
    margin: 0;
    font-size: 1.3125rem;
    line-height: 1.25;
}

.cartao__texto {
    margin: 0;
    font-size: 1rem;
    line-height: 1.6;
}

/* ---------------------------------------------------------------- 8. MARCAS */

.marcas-sec { padding-bottom: clamp(1rem, 2vw, 1.5rem); }

.marcas {
    display: flex;
    align-items: center;
    gap: clamp(1.5rem, 3vw, 2.875rem);
    margin-top: clamp(3rem, 6vw, 5.25rem);
    padding: 1.875rem 2.5rem;
    background: var(--branco);
    border: 1px solid var(--linha);
    border-radius: var(--raio);
}

.marcas__titulo {
    flex: none;
    width: 9.375rem;
    margin: 0;
    color: var(--texto-2);
    font-size: 0.9375rem;
    line-height: 1.5;
}

.marcas__titulo strong {
    color: var(--azul-900);
    font-weight: 600;
}

.marcas__lista {
    display: flex;
    flex: 1;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 1.25rem 1.625rem;
}

.marcas__lista img {
    max-height: 2.5rem;
    width: auto;
    object-fit: contain;
    opacity: 0.72;
    transition: opacity var(--transicao);
}

.marcas__lista li:hover img { opacity: 1; }

/* ----------------------------------------------------------------- 9. SOBRE */

.sobre {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: clamp(2rem, 5vw, 4.75rem);
    align-items: center;
}

.sobre__texto {
    display: flex;
    flex-direction: column;
    gap: 1.125rem;
}

.sobre__texto p {
    margin: 0;
    font-size: 1.0625rem;
    line-height: 1.75;
}

.sobre__foto {
    margin: 0;
    border-radius: 16px;
    overflow: hidden;
    box-shadow: var(--sombra-3);
}

.sobre__foto img { width: 100%; }

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

.pilar {
    display: flex;
    flex-direction: column;
    gap: 0.375rem;
    padding: 1.25rem 1.375rem;
    background: var(--branco);
    border: 1px solid var(--linha);
    border-radius: 12px;
}

.pilar__icone {
    display: block;
    color: var(--azul-500);
}

.pilar__icone .ico {
    width: 1.5rem;
    height: 1.5rem;
}

.pilar__titulo {
    margin: 0;
    font-size: 1rem;
}

.pilar__texto {
    margin: 0;
    font-size: 0.875rem;
    line-height: 1.55;
}

/* ---------------------------------------------------------- 10. CERTIFICADOS */

.certs {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 1.5rem;
}

.cert {
    display: flex;
    flex-direction: column;
    gap: 0.875rem;
    padding: 1.25rem;
    background: var(--branco);
    border-radius: 12px;
    box-shadow: var(--sombra-1);
}

.cert__foto {
    display: block;
    width: 100%;
    padding: 0;
    border: 0;
    border-radius: 6px;
    background: none;
    overflow: hidden;
}

.cert__foto img {
    width: 100%;
    border-radius: 6px;
    transition: transform 400ms cubic-bezier(0.22, 0.61, 0.36, 1);
}

.cert__foto:hover img { transform: scale(1.04); }

.cert__linha {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 0.5rem;
    margin: 0;
}

.cert__ano {
    font-family: var(--fonte-titulo);
    font-size: 1.375rem;
    font-weight: 800;
    font-variant-numeric: tabular-nums;
    color: var(--azul-900);
}

.cert__tag {
    font-size: 0.8125rem;
    color: var(--texto-3);
}

/* -------------------------------------------------------------- 11. CLIENTES */

.clientes {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 1.125rem;
}

.clientes__item {
    display: grid;
    place-items: center;
    min-height: 6.5rem;
    padding: 1.125rem 1rem;
    background: var(--branco);
    border: 1px solid var(--linha);
    border-radius: 12px;
}

.clientes__item img {
    max-height: 2.75rem;
    width: auto;
    object-fit: contain;
    opacity: 0.7;
    transition: opacity var(--transicao);
}

.clientes__item:hover img { opacity: 1; }

/* ----------------------------------------------------------- 12. DEPOIMENTOS */

.sec--depo { padding-top: 0; }

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

.depo {
    display: flex;
    flex-direction: column;
    gap: 0.875rem;
    padding: 2.125rem 2rem;
    background: var(--branco);
    border: 1px solid var(--linha);
    border-radius: var(--raio);
    box-shadow: var(--sombra-1);
}

.aspas {
    width: 1.875rem;
    height: 1.5rem;
    color: #C9DAEA;
}

.estrelas {
    display: flex;
    gap: 0.15rem;
    margin: 0;
}

.estrela {
    width: 1.05rem;
    height: 1.05rem;
    fill: var(--estrela);
}

.estrela--vazia { fill: #DFE5EB; }

.depo__texto {
    margin: 0;
}

.depo__texto p {
    margin: 0;
    color: #3E4C5A;
    font-size: 1.0625rem;
    line-height: 1.7;
}

.depo__autor {
    display: flex;
    flex-direction: column;
    gap: 0.125rem;
    margin: auto 0 0;
    padding-top: 0.5rem;
}

.depo__autor strong {
    font-family: var(--fonte-titulo);
    font-size: 1rem;
    font-weight: 700;
    color: var(--azul-900);
}

.depo__autor span {
    font-size: 0.875rem;
    color: var(--texto-3);
}

/* --------------------------------------------------------------- 13. RENTAL */

.rental-sec { padding-block: 0 clamp(3.5rem, 7vw, 6rem); }

.rental {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 0.95fr);
    gap: clamp(2rem, 4vw, 3.75rem);
    align-items: center;
    padding: clamp(2rem, 4vw, 3.5rem) clamp(1.75rem, 4vw, 3.75rem);
    background: var(--azul-900);
    border-radius: 18px;
}

.rental__texto {
    display: flex;
    flex-direction: column;
    gap: 1.125rem;
    align-items: flex-start;
}

.rental__titulo {
    margin: 0;
    font-size: clamp(1.75rem, 3.4vw, 2.375rem);
    color: var(--branco);
    letter-spacing: -0.015em;
}

.rental__lead {
    max-width: 44ch;
    margin: 0;
    color: #BBD0E4;
    font-size: 1.0625rem;
    line-height: 1.7;
}

.rental__lead strong {
    color: var(--branco);
    font-weight: 600;
}

.rental__foto {
    border-radius: 12px;
    overflow: hidden;
}

.rental__foto img { width: 100%; }

/* --------------------------------------------------------------- 14. CONTATO */

.contato {
    display: grid;
    grid-template-columns: minmax(0, 1.45fr) minmax(0, 1fr);
    gap: 2.125rem;
    align-items: start;
}

.form {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1.25rem;
}

.campo {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.campo--full { grid-column: 1 / -1; }

.campo label {
    color: #3E4C5A;
    font-size: 0.875rem;
    font-weight: 600;
}

.form input,
.form textarea,
.form select {
    width: 100%;
    min-height: 3.125rem;
    padding: 0.8rem 1rem;
    border: 1px solid var(--borda);
    border-radius: 8px;
    background: var(--campo);
    color: var(--tinta);
    font-family: var(--fonte-corpo);
    font-size: 1rem;
    transition: border-color var(--transicao), box-shadow var(--transicao);
}

.form textarea {
    min-height: 7.625rem;
    resize: vertical;
}

.form input:focus,
.form textarea:focus,
.form select:focus {
    outline: none;
    border-color: var(--azul-500);
    box-shadow: 0 0 0 3px rgba(30, 111, 184, 0.16);
}

.form ::placeholder {
    color: #97A2AD;
    opacity: 1;
}

.campo__select { position: relative; }

.campo__select select {
    appearance: none;
    padding-right: 2.75rem;
}

.campo__seta {
    position: absolute;
    top: 50%;
    right: 1rem;
    width: 1rem;
    height: 1rem;
    color: var(--texto-3);
    transform: translateY(-50%);
    pointer-events: none;
}

.campo.is-erro input,
.campo.is-erro textarea { border-color: var(--erro); }

.campo__erro {
    margin: 0;
    color: var(--erro);
    font-size: 0.875rem;
}

.mel {
    position: absolute;
    left: -9999px;
    width: 1px;
    height: 1px;
    overflow: hidden;
}

.form__acoes {
    grid-column: 1 / -1;
    display: flex;
    flex-wrap: wrap;
    gap: 0.875rem;
    margin-top: 0.25rem;
}

.form__acoes .btn { flex: 1 1 12rem; }

.aviso {
    margin-bottom: 1.5rem;
    padding: 0.9rem 1.1rem;
    border-left: 3px solid currentColor;
    border-radius: 4px;
    font-size: 0.95rem;
}

.aviso--ok {
    background: var(--ok-bg);
    color: var(--ok);
}

.aviso--erro {
    background: var(--erro-bg);
    color: var(--erro);
}

.dados {
    background: var(--branco);
    border: 1px solid var(--linha);
    border-radius: 16px;
    overflow: hidden;
}

.dados li {
    display: grid;
    grid-template-columns: 1.6rem minmax(0, 1fr);
    gap: 0.1rem 1rem;
    padding: 1.5rem 1.75rem;
    border-bottom: 1px solid #EDF1F5;
}

.dados li:last-child { border-bottom: 0; }

.dados__ico {
    grid-row: 1 / 3;
    align-self: start;
    padding-top: 0.35rem;
    color: var(--azul-500);
}

.dados__ico .ico {
    width: 1.375rem;
    height: 1.375rem;
}

.dados__rot {
    font-size: 0.8125rem;
    color: var(--texto-3);
}

.dados li a,
.dados li > span:last-child {
    color: var(--tinta);
    font-size: 1.0625rem;
    font-weight: 600;
    line-height: 1.4;
    text-decoration: none;
}

.dados__fraco {
    display: inline-block;
    color: var(--texto-2);
    font-size: 0.9375rem;
    font-weight: 400;
}

.dados li a:hover { color: var(--azul-700); }

/* ---------------------------------------------------------------- 15. RODAPÉ */

.rodape {
    background: var(--azul-900);
    color: #A9C2D8;
}

.rodape__inner {
    display: grid;
    grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr) minmax(0, 1fr) minmax(0, 0.9fr);
    gap: clamp(1.75rem, 4vw, 3.75rem);
    padding-block: clamp(2.5rem, 5vw, 3.5rem);
}

.rodape__sobre p {
    max-width: 38ch;
    font-size: 1rem;
    line-height: 1.65;
}

.rodape__logo {
    display: inline-block;
    margin-bottom: 1.125rem;
    padding: 0.5rem 0.75rem;
    background: var(--branco);
    border-radius: 8px;
}

.rodape__logo img { height: 2.875rem; width: auto; }

.rodape__contato {
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem 1.5rem;
    margin-top: 1.125rem;
}

.rodape__contato a {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    color: var(--branco);
    font-size: 1rem;
    font-weight: 600;
    text-decoration: none;
}

.rodape__contato a:hover { color: #7FB2E0; }

.rodape__titulo {
    margin-bottom: 1rem;
    color: var(--branco);
    font-size: 0.9375rem;
    font-weight: 700;
    letter-spacing: 0.03em;
}

.rodape__links ul {
    display: grid;
    gap: 0.75rem;
}

.rodape__links a {
    color: #A9C2D8;
    font-size: 1rem;
    text-decoration: none;
    transition: color var(--transicao);
}

.rodape__links a:hover { color: var(--branco); }

.rodape__qr img {
    width: 8.125rem;
    padding: 0.5rem;
    background: var(--branco);
    border-radius: 8px;
}

.rodape__base { border-top: 1px solid #1C4A72; }

.rodape__baseInner {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    gap: 0.4rem 1.5rem;
    padding-block: 1.15rem;
    font-size: 0.875rem;
    color: #7E9BB5;
}

.rodape__baseInner p { margin: 0; }

/* ------------------------------------------------------------ 16. FLUTUANTES */

.zap-flutuante,
.ao-topo {
    position: fixed;
    right: clamp(0.9rem, 2.5vw, 1.5rem);
    z-index: 70;
    display: grid;
    place-items: center;
    border-radius: 50%;
    box-shadow: 0 6px 20px rgba(11, 46, 79, 0.22);
    transition: transform var(--transicao), opacity var(--transicao), background var(--transicao);
}

.zap-flutuante {
    bottom: clamp(0.9rem, 2.5vw, 1.5rem);
    width: 3.4rem;
    height: 3.4rem;
    border: 0;
    background: var(--verde);
    color: var(--branco);
    text-decoration: none;
}

.zap-flutuante .ico {
    width: 1.75rem;
    height: 1.75rem;
}

.zap-flutuante:hover {
    transform: scale(1.06);
    color: var(--branco);
}

.ao-topo {
    bottom: calc(clamp(0.9rem, 2.5vw, 1.5rem) + 4.1rem);
    width: 2.7rem;
    height: 2.7rem;
    border: 1px solid var(--borda);
    background: var(--branco);
    color: var(--azul-900);
    opacity: 0;
    pointer-events: none;
}

.ao-topo .ico {
    width: 1.15rem;
    height: 1.15rem;
    stroke-width: 1.8;
}

.ao-topo.is-visivel {
    opacity: 1;
    pointer-events: auto;
}

.ao-topo:hover { background: var(--azul-50); }

/* -------------------------------------------------------------- 17. LIGHTBOX */

.lightbox {
    width: min(92vw, 34rem);
    padding: 0.75rem;
    border: 1px solid var(--linha);
    border-radius: 12px;
    background: var(--branco);
    color: var(--texto);
}

.lightbox::backdrop { background: rgba(11, 46, 79, 0.72); }

.lightbox img {
    width: 100%;
    border-radius: 6px;
}

.lightbox__legenda {
    margin: 0.75rem 0 0.25rem;
    color: var(--texto-2);
    font-size: 0.875rem;
}

.lightbox__fechar {
    position: absolute;
    top: 0.75rem;
    right: 0.75rem;
    width: 2.2rem;
    height: 2.2rem;
    border: 1px solid var(--linha);
    border-radius: 8px;
    background: var(--branco);
    font-size: 1.4rem;
    line-height: 1;
}

/* ------------------------------------------------ 17b. PÁGINA DE TEXTO LEGAL */

.legal__topo {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
    max-width: 46rem;
    margin-bottom: clamp(2rem, 4vw, 3rem);
    padding-bottom: 1.75rem;
    border-bottom: 1px solid var(--linha-2);
}

.legal__data {
    margin: 0;
    color: var(--texto-3);
    font-size: 0.9375rem;
}

.legal__corpo {
    max-width: 46rem;
    font-size: 1.0625rem;
    line-height: 1.75;
}

.legal__corpo p { margin: 0 0 1.125rem; }

.legal__corpo h2 {
    margin: 2.5rem 0 0.875rem;
    font-size: 1.375rem;
}

.legal__corpo a {
    text-decoration: underline;
    text-underline-offset: 3px;
}

.legal__lista {
    display: grid;
    gap: 0.625rem;
    margin: 0 0 1.125rem;
    padding-left: 1.25rem;
    list-style: disc;
}

.legal__lista li { padding-left: 0.25rem; }

.legal__corpo mark {
    padding: 0.1em 0.4em;
    border-radius: 4px;
    background: #FFF3CD;
    color: #7A5B00;
    font-weight: 600;
}

.legal__contato {
    margin-top: 2.75rem;
    padding: 1.5rem 1.75rem;
    background: var(--azul-50);
    border-radius: 12px;
}

.legal__contato p:first-child { color: var(--azul-900); }

/* --------------------------------------------------- 17c. AVISO DE COOKIES */

.cookies {
    position: fixed;
    inset: auto 0 0 0;
    z-index: 90;
    padding: clamp(0.75rem, 2vw, 1.25rem);
    animation: sobe-cookies 320ms cubic-bezier(0.22, 0.61, 0.36, 1);
}

.cookies[hidden] { display: none; }

.cookies__caixa {
    display: flex;
    align-items: center;
    gap: clamp(1rem, 3vw, 2.25rem);
    width: 100%;
    max-width: 66rem;
    margin-inline: auto;
    padding: 1.25rem 1.5rem;
    background: var(--branco);
    border: 1px solid var(--linha-2);
    border-radius: var(--raio);
    box-shadow: 0 4px 12px rgba(11, 46, 79, 0.08), 0 20px 48px rgba(11, 46, 79, 0.16);
}

.cookies__titulo {
    margin-bottom: 0.25rem;
    font-size: 1.0625rem;
}

.cookies__texto p {
    margin: 0;
    font-size: 0.9375rem;
    line-height: 1.6;
}

.cookies__texto a {
    text-decoration: underline;
    text-underline-offset: 3px;
    white-space: nowrap;
}

.cookies__acoes {
    display: flex;
    flex: none;
    gap: 0.75rem;
}

.cookies__acoes .btn { min-width: 7rem; }

@keyframes sobe-cookies {
    from { transform: translateY(100%); opacity: 0; }
    to   { transform: none; opacity: 1; }
}

/* Enquanto o aviso está aberto os botões flutuantes saem da frente.
   A classe vem do JS: o rodapé é renderizado antes do aviso, então não há
   seletor de irmão que alcance daqui. */
body.com-aviso-cookies .zap-flutuante,
body.com-aviso-cookies .ao-topo {
    opacity: 0;
    pointer-events: none;
}

/* --------------------------------------------------- 17d. LEGAL NO RODAPÉ */

.rodape__legal {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem 1.25rem;
    width: 100%;
}

.rodape__legal a,
.rodape__legal button {
    padding: 0;
    border: 0;
    background: none;
    color: #A9C2D8;
    font-family: inherit;
    font-size: 0.875rem;
    text-decoration: underline;
    text-underline-offset: 3px;
    transition: color var(--transicao);
}

.rodape__legal a:hover,
.rodape__legal button:hover { color: var(--branco); }

/* -------------------------------------------------------------- 18. REVELAR */

.js [data-revelar] {
    opacity: 0;
    transform: translateY(14px);
    transition: opacity 560ms ease, transform 560ms cubic-bezier(0.22, 0.61, 0.36, 1);
}

.js [data-revelar].is-visivel {
    opacity: 1;
    transform: none;
}

/* ------------------------------------------------------------ 19. RESPONSIVO */

@media (max-width: 1180px) {
    .cartoes { grid-template-columns: repeat(2, minmax(0, 1fr)); }

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

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

@media (max-width: 1040px) {
    :root { --topo-altura: 4.5rem; }

    .topo__toggle { display: grid; }

    .topo__nav {
        position: absolute;
        top: 100%;
        left: 0;
        right: 0;
        display: none;
        padding: 0.5rem clamp(1.25rem, 6vw, 8.75rem) 1.25rem;
        background: var(--branco);
        border-bottom: 1px solid var(--linha-2);
        box-shadow: var(--sombra-1);
    }

    .topo__nav.is-aberto { display: block; }

    .topo__nav ul {
        flex-direction: column;
        gap: 0;
    }

    .topo__nav li + li { border-top: 1px solid var(--linha); }

    .topo__nav a {
        padding-block: 0.85rem;
        font-size: 1.05rem;
    }

    .topo__tel span,
    .topo__btnTexto { display: none; }

    .topo__acoes .btn { padding-inline: 0.9rem; }

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

    .destaques li:nth-child(2) { border-right: 0; }

    .destaques li:nth-child(-n + 2) { border-bottom: 1px solid #EDF1F5; }

    .sobre,
    .rental,
    .contato { grid-template-columns: minmax(0, 1fr); }

    .rental__foto { order: -1; }

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

    .marcas__titulo { width: auto; }

    .marcas__lista { justify-content: flex-start; }
}

@media (max-width: 860px) {
    .depos { grid-template-columns: minmax(0, 1fr); }

    .pilares { grid-template-columns: minmax(0, 1fr); }

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

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

@media (max-width: 760px) {
    .cookies__caixa {
        flex-direction: column;
        align-items: stretch;
        gap: 1rem;
    }

    .cookies__acoes .btn { flex: 1; }
}

@media (max-width: 620px) {
    body { font-size: 1rem; }

    .cartoes { grid-template-columns: minmax(0, 1fr); }

    .form { grid-template-columns: minmax(0, 1fr); }

    .form__acoes .btn { flex: 1 1 100%; }

    .hero__acoes { flex-direction: column; align-self: stretch; }

    .hero__acoes .btn { width: 100%; }

    .rodape__inner { grid-template-columns: minmax(0, 1fr); }

    .marcas__lista { gap: 1.25rem; }

    .marcas__lista img { max-height: 2rem; }
}

@media (max-width: 420px) {
    .clientes,
    .certs { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* --------------------------------------------------- 20. MOVIMENTO REDUZIDO */

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

    *,
    *::before,
    *::after {
        animation-duration: 0.001ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.001ms !important;
    }

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