/* ==========================================================================
   ClimaCool — Design System: seções modulares de location (fase 1)
   Carrega DEPOIS de styles-suburb.css. Tudo fica escopado em .ds-location
   (classe no <body> do template novo) para não afetar as outras páginas.

   Regras de cor (WCAG 2.2 AA, sem alterar as cores da marca):
   - Laranja #F05A28 em texto só se o texto for GRANDE (>= 24px, ou >= 18.66px bold):
     laranja/branco = 3.39:1 (passa como texto grande, falha como texto normal).
   - Texto corrido sobre laranja = #040404 (6.05:1). Título branco grande sobre laranja pode (3.39:1).
   - Texto secundário sobre claro = #5E5D66 (6.49:1) no lugar de #A3A2AA (2.53:1).
   - Sobre os cards escuros (#242424→#101010): branco (15.5:1+), cinza #A3A2AA (6.14:1), laranja (4.58:1).
   ========================================================================== */

:root {
  /* marca (valores oficiais — não alterar) */
  --ds-orange: #F05A28;
  --ds-orange-2: #F6921E;   /* só decorativo (2.32:1 sobre branco) */
  --ds-blue: #00ADEE;       /* só decorativo (logo) */
  --ds-black: #040404;
  /* neutros */
  --ds-white: #FFFFFF;
  --ds-grey-50: #F8F8F8;
  --ds-grey-100: #F6F6F6;
  --ds-grey-200: #E9E9E9;
  --ds-text: #040404;
  --ds-text-muted: #5E5D66;      /* substitui #A3A2AA em fundo claro */
  --ds-text-on-dark: #FFFFFF;
  --ds-text-on-dark-muted: #A3A2AA;
  --ds-border-input: #86858C;    /* 3.65:1 sobre branco (1.4.11); o atual #CFCFD4 = 1.55:1 */
  --ds-star: #B37F00;            /* 3.53:1 sobre branco; o atual #FFB800 = 1.73:1 */
  --ds-dark-1: #242424;
  --ds-dark-2: #101010;
  --ds-card-gradient: linear-gradient(180deg, var(--ds-dark-1) 0%, var(--ds-dark-2) 100%);
  --ds-card-shadow: 0 10px 246px rgba(0,0,0,.05), 0 15px 39px rgba(0,0,0,.05);
  /* tipografia (DM Sans, como o tema) */
  --ds-font: "DM Sans", "DM Sans Fallback", sans-serif;   /* fallback com métrica ajustada: sem salto de layout na troca de fonte */
  --ds-fs-display: 3rem;       /* 48 — .main-title / .banner-heading */
  --ds-fs-h2: 3rem;
  --ds-fs-h3: 1.5rem;          /* 24 — laranja permitido */
  --ds-fs-lead: 1.25rem;
  --ds-fs-body: 1.0625rem;     /* 17 */
  --ds-fs-small: .9375rem;
  --ds-fs-btn: 1.1875rem;      /* 19 bold = texto grande → branco/laranja passa */
  --ds-lh-body: 1.65;
  --ds-measure: 52rem;          /* ~72 caracteres a 17px em DM Sans; em rem (e não ch) para não mudar quando a fonte troca */
  /* espaço */
  --ds-space-section: 5rem;
  --ds-space-section-sm: 3rem;
  --ds-gap: 1.5rem;
  --ds-radius-card: 0;
  --ds-radius-soft: 10px;
  --ds-radius-pill: 50rem;
  /* foco */
  --ds-focus: #040404;
  --ds-focus-halo: #FFFFFF;
}

/* ---- Fonte de reserva com métrica da DM Sans (CLS): enquanto a DM Sans carrega, o texto usa Arial com a MESMA
   largura (size-adjust medido no Chrome sobre os H1 e parágrafos dos batches: negrito 101,5%, normal 104,7%).
   Sem isso o H1 quebrava em outras linhas e a página "pulava" quando a fonte chegava (CLS 0,22 no desktop). */
@font-face { font-family: "DM Sans Fallback"; src: local("Arial"), local("ArialMT"), local("Helvetica"); font-weight: 100 600;
  size-adjust: 104.7%; ascent-override: 94.6%; descent-override: 29.6%; line-gap-override: 0%; }
@font-face { font-family: "DM Sans Fallback"; src: local("Arial Bold"), local("Arial-BoldMT"), local("Helvetica Bold"); font-weight: 700 900;
  size-adjust: 101.5%; ascent-override: 97.5%; descent-override: 30.5%; line-gap-override: 0%; }
/* ascent/descent: DM Sans 0,99/0,31 em (medido no Chrome) ÷ size-adjust — a linha de base não muda na troca de fonte.
   header/footer destas páginas também usam a fonte de reserva (o tema declara "DM Sans", sans-serif direto). */
body.ds-location { --bs-body-font-family: var(--ds-font); }
body.ds-location :is(header, footer, nav) :is(h1, h2, h3, h4, h5, h6, .btn, .mobile-cta-link) { font-family: var(--ds-font); }

/* ---------------------------------------------------------------- base a11y */
.ds-location { color: var(--ds-text); }
.ds-location main { display: block; }
.ds-skip {
  position: absolute; left: -9999px; top: 0; z-index: 10000;
  background: var(--ds-black); color: var(--ds-white); padding: .875rem 1.25rem;
  font-weight: 700; text-decoration: underline;
}
.ds-skip:focus { left: 1rem; top: 1rem; }

/* foco visível em qualquer fundo: anel preto + halo branco (2.4.7 / 1.4.11) */
.ds-location :focus-visible,
.ds-location .btn:focus-visible,
.ds-location a:focus-visible,
.ds-location summary:focus-visible {
  outline: 3px solid var(--ds-focus) !important;
  outline-offset: 2px !important;
  box-shadow: 0 0 0 6px var(--ds-focus-halo) !important;
}

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

/* botões: 19px bold = texto grande → branco sobre laranja (3.39:1) passa; alvo >= 48px */
.ds-location .ds-btn,
.ds-location .ds-section .btn {
  font-size: var(--ds-fs-btn); font-weight: 700; line-height: 1.2;
  min-height: 48px; padding: .75rem 1.75rem; border-radius: var(--ds-radius-pill);
  display: inline-flex; align-items: center; justify-content: center; gap: .5rem;
}
.ds-location .ds-section .btn-primary:hover { color: var(--ds-white); }

/* movimento reduzido (2.3.3 / 2.2.2) */
@media (prefers-reduced-motion: reduce) {
  .ds-location *, .ds-location *::before, .ds-location *::after {
    animation-duration: .01ms !important; animation-iteration-count: 1 !important;
    transition-duration: .01ms !important; scroll-behavior: auto !important;
  }
}

/* ---------------------------------------------------------------- tipografia comum */
.ds-section, .ds-section :is(h1, h2, h3, h4, h5, h6, .btn) { font-family: var(--ds-font); }   /* o tema declara a fonte direto em h1–h6 e .btn */
/* o .container do tema fica 100% da tela abaixo de 1440px com só 12px de respiro; nas seções DS, um pouco mais */
.ds-section > .container, .ds-section .ds-hero__inner { padding-left: clamp(1rem, 3vw, 3rem); padding-right: clamp(1rem, 3vw, 3rem); }
.ds-section .ds-h2 {
  font-size: var(--ds-fs-h2); font-weight: 700; letter-spacing: -0.03rem; line-height: 1.05;
  color: var(--ds-text); margin: 0 0 1.25rem;
}
.ds-section .ds-h2 strong,
.ds-section .ds-h3 strong { color: var(--ds-orange); font-weight: 700; }   /* só em texto grande */
.ds-section .ds-h3 {
  font-size: var(--ds-fs-h3); font-weight: 700; letter-spacing: -0.02rem; line-height: 1.15;
  color: var(--ds-text); margin: 2rem 0 .75rem;
}
.ds-section .ds-h3:first-child { margin-top: 0; }
.ds-section p, .ds-section li { font-size: var(--ds-fs-body); line-height: var(--ds-lh-body); }
.ds-section p { margin: 0 0 1rem; }
.ds-section .ds-lead { font-size: var(--ds-fs-lead); line-height: 1.5; font-weight: 500; }
.ds-section .ds-measure { max-width: var(--ds-measure); }
.ds-section a:not(.btn) { color: inherit; text-decoration: underline; text-underline-offset: .15em; }
.ds-section a:not(.btn):hover { text-decoration-thickness: 2px; }
.ds-section .ds-muted { color: var(--ds-text-muted); }

@media (max-width: 1024px) {
  .ds-section .ds-h2 { font-size: 2.25rem; }
}
@media (max-width: 568px) {
  .ds-section .ds-h2 { font-size: 2rem; }
  .ds-section .ds-h3 { font-size: 1.375rem; }
}

/* checklist (ul/ol do brief) — ícone laranja decorativo (3.39:1 >= 3:1 não-texto) */
.ds-checklist { list-style: none; padding: 0; margin: 0 0 1.25rem; display: grid; gap: .5rem; }
.ds-checklist li { position: relative; padding-left: 2rem; }
.ds-checklist li::before {
  content: ""; position: absolute; left: 0; top: .3em; width: 1.25rem; height: 1.25rem;
  background: var(--ds-orange);
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='M7.6 14.6 3.3 10.3l1.4-1.4 2.9 2.9 7.7-7.7 1.4 1.4z'/%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 20 20'%3E%3Cpath d='M7.6 14.6 3.3 10.3l1.4-1.4 2.9 2.9 7.7-7.7 1.4 1.4z'/%3E%3C/svg%3E") center/contain no-repeat;
}
ol.ds-checklist { counter-reset: ds; }
ol.ds-checklist li::before { content: counter(ds); counter-increment: ds; -webkit-mask: none; mask: none;
  background: var(--ds-orange); color: var(--ds-black); font-weight: 700; font-size: .8rem; text-align: center; line-height: 1.25rem; border-radius: 50%; }
.ds-on-dark .ds-checklist li { color: var(--ds-text-on-dark); }

/* ---------------------------------------------------------------- HERO */
.ds-hero { position: relative; margin: 1rem; overflow: hidden; background: var(--ds-black); color: var(--ds-white); }
.ds-hero__media img { width: 100%; height: 100%; object-fit: cover; position: absolute; inset: 0; }
.ds-hero__media::after { /* garante contraste do texto sobre a foto */
  content: ""; position: absolute; inset: 0;
  background: linear-gradient(90deg, rgba(4,4,4,.94) 0%, rgba(4,4,4,.82) 45%, rgba(4,4,4,.15) 80%, rgba(4,4,4,0) 100%);
}
.ds-hero__inner { position: relative; z-index: 1; padding: 4.5rem 2.5rem 4rem; }
.ds-hero__media picture { position: absolute; inset: 0; }
.ds-hero__kicker { font-size: var(--ds-fs-small); font-weight: 500; letter-spacing: .02em; margin-bottom: .75rem; color: var(--ds-white); }
.ds-hero h1 {
  font-size: 3rem; font-weight: 700; letter-spacing: -0.03rem; line-height: 1.05; margin: 0 0 1.5rem;
  max-width: 14.75em; color: var(--ds-white);      /* = 21ch em DM Sans; "ch" mudava 710→561px na fonte de reserva (CLS) */
}
.ds-hero h1 strong { color: var(--ds-orange); }              /* 6.05:1 sobre o overlay */
.ds-hero__pills { display: flex; flex-wrap: wrap; gap: .5rem; margin: 0 0 1.5rem; padding: 0; list-style: none; }
.ds-hero__pills li { background: rgba(255,255,255,.12); border: 1px solid rgba(255,255,255,.35); border-radius: var(--ds-radius-pill);
  padding: .375rem .875rem; font-size: var(--ds-fs-small); font-weight: 500; color: var(--ds-white); }
.ds-hero__actions { display: flex; flex-wrap: wrap; gap: 1rem; }
@media (max-width: 991.98px) {
  .ds-hero { margin: .75rem; }
  .ds-hero__media::after { background: rgba(4,4,4,.82); }
  .ds-hero h1 { font-size: 2.25rem; }
  .ds-hero__inner { padding: 3rem 1.25rem; }
}

/* ---------------------------------------------------------------- SUMMARY (TL;DR) */
.ds-summary { padding: 2.5rem 0 0; }
.ds-summary__box { background: var(--ds-grey-100); border-left: 6px solid var(--ds-orange); padding: 1.5rem 1.75rem; }
.ds-summary__box p { margin: 0; font-size: 1.125rem; line-height: 1.6; }
.ds-summary__label { font-weight: 700; margin-right: .25rem; }

/* ---------------------------------------------------------------- LEAD SPLIT (banner hook + intro) */
.ds-lead-split { padding: var(--ds-space-section) 0; }
.ds-lead-split__media img { width: 100%; height: auto; display: block; }
.ds-lead-split .ds-lead { margin-bottom: 1.25rem; }
@media (max-width: 991.98px) { .ds-lead-split { padding: var(--ds-space-section-sm) 0; } }

/* ---------------------------------------------------------------- PROSE (tópico em texto) */
.ds-prose { padding: var(--ds-space-section) 0; }
.ds-prose--grey { background: var(--ds-grey-50); }
.ds-prose__aside img { width: 100%; height: auto; display: block; }
@media (max-width: 991.98px) { .ds-prose { padding: var(--ds-space-section-sm) 0; } }

/* ---------------------------------------------------------------- BAND (faixa laranja) */
.ds-band { background: var(--ds-orange); padding: var(--ds-space-section) 0; }
.ds-band .ds-h2 { color: var(--ds-white); }                         /* grande: 3.39:1 ok */
.ds-band .ds-h2 strong { color: var(--ds-black); }
.ds-band p, .ds-band li, .ds-band .ds-h3 { color: var(--ds-black); }  /* 6.05:1 */
.ds-band .ds-checklist li::before { background: var(--ds-black); }
.ds-band .btn-light { background: var(--ds-white); border-color: var(--ds-white); color: var(--ds-black); }
.ds-band .btn-light:hover { background: var(--ds-black); border-color: var(--ds-black); color: var(--ds-white); }
@media (max-width: 991.98px) { .ds-band { padding: var(--ds-space-section-sm) 0; } }

/* ---------------------------------------------------------------- TOPIC CARD (card escuro com foto) */
.ds-topic-cards { padding: 0 0 var(--ds-space-section); }
.ds-card { background: var(--ds-card-gradient); box-shadow: var(--ds-card-shadow); color: var(--ds-text-on-dark); height: 100%;
  display: flex; flex-direction: column; border-radius: var(--ds-radius-card); overflow: hidden; }
.ds-card__media { background: var(--ds-dark-1); }
.ds-card__media img { width: 100%; height: 100%; max-height: 18rem; object-fit: cover; display: block; }
.ds-card__media--product { display: flex; align-items: center; justify-content: center; min-height: 11rem; padding: 1.5rem; }
.ds-card__media--product img { max-height: 9rem; width: auto; object-fit: contain; }
.ds-card__body { padding: 1.75rem 2rem 2rem; }
.ds-card .ds-card__title { font-size: 1.75rem; font-weight: 700; letter-spacing: -0.03rem; line-height: 1.1; color: var(--ds-white);
  margin: 0 0 1.25rem; padding-bottom: 1.25rem; position: relative; }
.ds-card .ds-card__title::after { content: ""; position: absolute; left: 0; bottom: 0; width: 100%; height: 2px; border-radius: 10px;
  background: linear-gradient(90deg, var(--ds-orange) 0%, rgba(240,90,40,0) 100%); }
.ds-card .ds-card__title strong { color: var(--ds-orange); }          /* 4.58:1 sobre #242424 */
.ds-card .ds-h3 { color: var(--ds-white); font-size: 1.25rem; margin: 1.5rem 0 .5rem; }
.ds-card p, .ds-card li { color: var(--ds-text-on-dark); font-size: 1rem; }
.ds-card-grid { padding: 0 0 var(--ds-space-section); }
.ds-topic-cards .ds-card__body { padding: 2.25rem 2.5rem 2.5rem; }
.ds-topic-cards .ds-card__body > .ds-on-dark { max-width: 58rem; }     /* linha legível no card largo */
.ds-card__media picture, .ds-card__media img { display: block; width: 100%; }
.ds-card__media--product picture { width: auto; }

/* ---------------------------------------------------------------- SUBTOPIC GRID */
.ds-subtopics { padding: var(--ds-space-section) 0; }
.ds-subtopics__intro { margin-bottom: 2.5rem; }
.ds-subtopics .ds-card .ds-card__title { font-size: 1.5rem; }

/* ---------------------------------------------------------------- SERVICES GRID (cards claros) */
.ds-services { padding: var(--ds-space-section) 0; }
.ds-service { background: var(--ds-grey-100); padding: 1.75rem; height: 100%; border-top: 4px solid var(--ds-orange); }
.ds-service__icon { width: 2.5rem; height: 2.5rem; color: var(--ds-orange); margin-bottom: 1rem; }
.ds-service .ds-h3 { margin: 0 0 .5rem; font-size: 1.375rem; }
.ds-service p { margin: 0; }

/* ---------------------------------------------------------------- INFO PAIR (About + Why) */
.ds-info-pair { padding: var(--ds-space-section) 0; }
.ds-panel { padding: 2.25rem; height: 100%; }
.ds-panel--light { background: var(--ds-grey-100); }
.ds-panel--dark { background: var(--ds-card-gradient); color: var(--ds-text-on-dark); }
.ds-panel--dark .ds-h2, .ds-panel--dark p, .ds-panel--dark li { color: var(--ds-white); }
.ds-panel .ds-h2 { font-size: 2rem; }

/* ---------------------------------------------------------------- TRUST STRIP (E-E-A-T) */
.ds-trust { padding: var(--ds-space-section) 0; background: var(--ds-grey-50); }
.ds-trust__grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--ds-gap); margin-top: 2rem; }
.ds-trust__item { background: var(--ds-white); padding: 1.5rem; border-top: 4px solid var(--ds-orange); }
.ds-trust__icon { width: 2.25rem; height: 2.5rem; margin-bottom: .75rem; }
.ds-trust__label { font-size: 1.25rem; font-weight: 700; margin: 0 0 .5rem; color: var(--ds-text); }
.ds-trust__item p { font-size: 1rem; margin: 0; }
@media (max-width: 991.98px) { .ds-trust__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 575.98px) { .ds-trust__grid { grid-template-columns: 1fr; } }

/* ---------------------------------------------------------------- feature-list (C8 "Safety Code" corrigido) */
.ds-feature { padding: var(--ds-space-section) 0; }
.ds-feature__list { list-style: none; padding: 0; margin: 1rem 0 1.5rem; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; }
.ds-location .ds-feature__list li { display: flex; align-items: center; gap: .75rem; background: var(--ds-grey-100); padding: 1rem; font-weight: 700; line-height: 1.35; list-style: none; }
.ds-feature__icon { flex: 0 0 auto; width: 2rem; height: 2.3rem; }
.ds-feature__media img { width: 100%; max-width: 420px; height: auto; display: block; margin: 0 auto; }
@media (max-width: 991.98px) { .ds-feature { padding: var(--ds-space-section-sm) 0; } }
@media (max-width: 767.98px) { .ds-feature__list { grid-template-columns: 1fr; } }

/* ---------------------------------------------------------------- FAQ (details/summary nativo) */
.ds-faq { padding: var(--ds-space-section) 0; }
.ds-faq__list { border-top: 1px solid var(--ds-grey-200); margin-top: 1.5rem; }
.ds-faq__item { border-bottom: 1px solid var(--ds-grey-200); }
.ds-faq__item summary {
  list-style: none; cursor: pointer; display: flex; justify-content: space-between; align-items: center; gap: 1rem;
  padding: 1.25rem .25rem; font-size: 1.1875rem; font-weight: 700; line-height: 1.35; color: var(--ds-text); min-height: 48px;
}
.ds-faq__item summary::-webkit-details-marker { display: none; }
.ds-faq__item summary::after {
  content: ""; flex: 0 0 1.5rem; height: 1.5rem; border-radius: 50%; background: var(--ds-orange);
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M11 5h2v14h-2z'/%3E%3Cpath d='M5 11h14v2H5z'/%3E%3C/svg%3E") center/100% no-repeat;
          mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M11 5h2v14h-2z'/%3E%3Cpath d='M5 11h14v2H5z'/%3E%3C/svg%3E") center/100% no-repeat;
}
.ds-faq__item[open] summary::after {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M5 11h14v2H5z'/%3E%3C/svg%3E");
          mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M5 11h14v2H5z'/%3E%3C/svg%3E");
}
.ds-faq__answer { padding: 0 .25rem 1.25rem; max-width: var(--ds-measure); }
.ds-faq__answer p { margin: 0; }

/* ---------------------------------------------------------------- CTA BAND */
.ds-cta { background: var(--ds-orange); padding: 4rem 0; }
.ds-cta .ds-h2 { color: var(--ds-white); margin-bottom: 1rem; }
.ds-cta .ds-h2 strong, .ds-reviews .ds-h2 strong { color: var(--ds-black); }   /* destaque laranja sumiria no fundo laranja */
.ds-cta p { color: var(--ds-black); font-size: 1.1875rem; }
.ds-cta .btn-secondary { background: var(--ds-black); border-color: var(--ds-black); color: var(--ds-white); }
.ds-cta .btn-secondary:hover { background: var(--ds-white); border-color: var(--ds-white); color: var(--ds-black); }

/* ---------------------------------------------------------------- módulos globais (versão corrigida) */
.ds-brands { padding: 0 0 var(--ds-space-section); }
.ds-brands__title { font-size: 1.5rem; font-weight: 700; color: var(--ds-text); margin: 0 0 1.25rem; }
.ds-brand { display: flex; flex-direction: column; gap: .5rem; text-decoration: none !important; color: var(--ds-text) !important; }
.ds-brand__logo { min-height: 90px; background: var(--ds-grey-100); display: flex; align-items: center; justify-content: center; padding: .75rem 1rem; }
.ds-brand__logo img { max-width: 100%; max-height: 56px; width: auto; height: auto; }
.ds-brand__caption { font-size: 1rem; letter-spacing: -0.02em; }
.ds-brand:hover .ds-brand__caption { text-decoration: underline; }

.ds-blogs { padding: var(--ds-space-section) 0; background: var(--ds-grey-50); }
.ds-blogs .ds-blogs__title { font-size: 1.5rem; }
.ds-blog { background: var(--ds-card-gradient); box-shadow: var(--ds-card-shadow); height: 100%; display: flex; flex-direction: column; }
.ds-blog img { width: 100%; height: 16rem; object-fit: cover; display: block; }
.ds-blog__body { padding: 1.75rem; color: var(--ds-white); display: flex; flex-direction: column; flex: 1; }
.ds-blog .ds-h3 { color: var(--ds-white); margin: 0 0 1rem; }
.ds-blog .ds-h3 a { color: var(--ds-white); text-decoration: none; }
.ds-blog .ds-h3 a:hover { text-decoration: underline; }
.ds-blog p { color: var(--ds-white); }
.ds-blog .btn { margin-top: auto; align-self: flex-start; border: 2px solid var(--ds-orange); color: var(--ds-white); background: transparent; }
.ds-blog .btn:hover { background: var(--ds-orange); color: var(--ds-white); }

.ds-contact { padding: var(--ds-space-section) 0 0; }
.ds-contact__inner { padding: 2.875rem; background: linear-gradient(180deg, rgba(196,196,196,.13) 19.86%, rgba(196,196,196,0) 100%); }
.ds-contact .ds-form-title { font-size: 1.875rem; font-weight: 700; border-bottom: 2px solid var(--ds-grey-200); padding-bottom: 1rem; margin: 0 0 1.5rem; }
.ds-contact .ds-form-subtitle { font-size: 1.25rem; font-weight: 500; margin: 0 0 1rem; }
.ds-field label { display: block; font-size: .9375rem; font-weight: 500; color: var(--ds-text); margin-bottom: .5rem; }
.ds-field input { width: 100%; min-height: 56px; border: 1px solid var(--ds-border-input); padding: .75rem 1rem; font-size: 1rem; color: var(--ds-text); background: var(--ds-white); }
.ds-field input::placeholder { color: var(--ds-text-muted); }       /* 6.49:1 */
.ds-contact .ds-submit { width: 100%; border-radius: 0; }
.ds-contact__promo { position: relative; background: var(--ds-black); color: var(--ds-white); height: 100%; min-height: 16rem;
  display: flex; flex-direction: column; justify-content: flex-end; overflow: hidden; }
.ds-contact__promo-media img, .ds-contact__promo-media picture { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.ds-contact__promo-caption { position: relative; z-index: 1; padding: 1.5rem; background: linear-gradient(0deg, rgba(4,4,4,.92) 0%, rgba(4,4,4,.85) 70%, rgba(4,4,4,0) 100%); }
.ds-contact__promo .ds-contact__promo-title { color: var(--ds-white); font-size: 2rem; margin: 0 0 1.25rem; }
.ds-btn__icon { width: 1.25em; height: 1.25em; }

.ds-reviews { padding: var(--ds-space-section) 0; }
.ds-reviews__panel { background: var(--ds-orange); padding: 3rem; }
.ds-reviews .ds-h2 { color: var(--ds-white); }
.ds-reviews__intro { color: var(--ds-black); font-size: 1.125rem; }
.ds-review { background: var(--ds-white); border-radius: var(--ds-radius-soft); padding: 1.5rem; height: 100%; box-shadow: 0 15px 40px rgba(0,0,0,.08); }
.ds-review__name { font-weight: 700; margin: 0; }
.ds-review__date { color: var(--ds-text-muted); font-size: .875rem; }
.ds-review__stars { color: var(--ds-star); letter-spacing: .1em; font-size: 1.5rem; line-height: 1; }  /* 24px = texto grande (3.53:1 ≥ 3); + "Rated 5 out of 5" para leitor de tela */
.ds-review p { font-size: 1rem; margin: 1rem 0 0; }
.ds-reviews__numbers { display: flex; gap: 2.5rem; margin-top: 2rem; color: var(--ds-black); }
.ds-reviews__numbers strong { font-size: 2rem; display: block; line-height: 1; }

/* ---------------------------------------------------------------- aviso de preview (fora do conteúdo) */
.ds-preview-note { font: 500 14px/1.5 var(--ds-font); background: #FFF7E6; color: #3D2B00; border-bottom: 2px solid #E5B04A; padding: .75rem 1rem; }
.ds-preview-note summary { cursor: pointer; font-weight: 700; }
.ds-preview-note ul { margin: .5rem 0 0 1.25rem; }
.ds-preview-note a { color: #040404; text-decoration: underline; }

/* ==========================================================================
   LAYOUT v2 (27/09) — correções pedidas na revisão dos previews
   ========================================================================== */

/* ---- Ritmo vertical: toda seção tem o mesmo respiro em cima e embaixo. Seções seguidas com o MESMO fundo
   (tom) não somam os dois: a de baixo zera o topo. Fundo diferente = respiro dos dois lados, então nenhum
   título encosta numa faixa colorida (antes: marcas e cards com padding-top 0 colavam na faixa laranja). */
:is(.ds-location main, main.ds-location) > .ds-section { --ds-pad: var(--ds-space-section); padding-top: var(--ds-pad); padding-bottom: var(--ds-pad); }
@media (max-width: 991.98px) { :is(.ds-location main, main.ds-location) > .ds-section { --ds-pad: var(--ds-space-section-sm); } }
:is(.ds-location main, main.ds-location) > .ds-tone-light + .ds-tone-light,
:is(.ds-location main, main.ds-location) > .ds-tone-grey + .ds-tone-grey,
:is(.ds-location main, main.ds-location) > .ds-tone-orange + .ds-tone-orange { padding-top: 0; }
:is(.ds-location main, main.ds-location) > .ds-hero { padding: 0; }
:is(.ds-location main, main.ds-location) > .ds-summary { --ds-pad: 3rem; }
/* cards de tópico em sequência: respiro menor entre eles (continuam lendo como um grupo) */
:is(.ds-location main, main.ds-location) > .ds-topic-cards:has(+ .ds-topic-cards) { padding-bottom: 3rem; }
@media (max-width: 991.98px) {
  :is(.ds-location main, main.ds-location) > .ds-summary { --ds-pad: 2rem; }
  :is(.ds-location main, main.ds-location) > .ds-topic-cards:has(+ .ds-topic-cards) { padding-bottom: 1.5rem; }
}

/* ---- Hero: pílulas com texto >= 16px */
.ds-hero__pills li { font-size: 1rem; }

/* ---- TL;DR: caixa centralizada, rótulo numa coluna, texto a 20px */
.ds-summary__box { max-width: 62rem; margin: 0 auto; display: grid; grid-template-columns: auto minmax(0, 1fr); gap: .25rem 1.5rem;
  align-items: baseline; padding: 1.75rem 2rem; }
.ds-summary__box .ds-summary__label { margin: 0; font-size: .9375rem; text-transform: uppercase; letter-spacing: .08em; white-space: nowrap; }
.ds-summary__box .ds-summary__text { margin: 0; font-size: 1.25rem; line-height: 1.6; }
@media (max-width: 575.98px) { .ds-summary__box { grid-template-columns: 1fr; padding: 1.25rem; } .ds-summary__box .ds-summary__text { font-size: 1.125rem; } }

/* ---- Topic card: foto ao lado do texto (5/12 + 7/12), zigue-zague; sem foto = título | texto */
.ds-card.ds-card--split { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); height: auto; }
.ds-card--split.ds-card--flip { grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); }
.ds-card--split.ds-card--flip .ds-card__media { order: 2; }
.ds-card--split .ds-card__media { position: relative; min-height: 24rem; background: var(--ds-dark-2); }
.ds-card--split .ds-card__media:not(.ds-card__media--product) picture,
.ds-card--split .ds-card__media:not(.ds-card__media--product) img { position: absolute; inset: 0; width: 100%; height: 100%; max-height: none; object-fit: cover; }
.ds-card--split .ds-card__media--product { display: flex; align-items: center; justify-content: center; padding: 2.5rem; min-height: 20rem; }
.ds-card--split .ds-card__media--product img { max-height: 14rem; width: auto; }
.ds-topic-cards .ds-card--split .ds-card__body { padding: 3rem 3.25rem; align-self: center; }
.ds-topic-cards .ds-card--split .ds-card__body > .ds-on-dark { max-width: none; }
.ds-card--split .ds-card__body p, .ds-card--split .ds-card__body li { font-size: var(--ds-fs-body); }
.ds-card--split.ds-card--noimg { grid-template-columns: 1fr; }
.ds-topic-cards .ds-card--noimg .ds-card__body { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: 1rem 3rem; align-items: start; }
@media (max-width: 991.98px) {
  .ds-card.ds-card--split, .ds-card--split.ds-card--flip { grid-template-columns: 1fr; }
  .ds-topic-cards .ds-card--noimg .ds-card__body { grid-template-columns: 1fr; }
  .ds-card--split.ds-card--flip .ds-card__media { order: 0; }
  .ds-card--split .ds-card__media { min-height: 0; aspect-ratio: 16 / 9; }
  .ds-card--split .ds-card__media--product { aspect-ratio: auto; min-height: 14rem; }
  .ds-topic-cards .ds-card--split .ds-card__body { padding: 2rem 1.5rem 2.25rem; }
}

/* ---- Cards de subtópico: foto 16:9 (antes: faixa 1442×187 esticada) */
.ds-card__media--photo { aspect-ratio: 16 / 9; overflow: hidden; }
.ds-card__media--photo picture, .ds-card__media--photo img { width: 100%; height: 100%; max-height: none; object-fit: cover; }
.ds-subtopics .ds-card p, .ds-subtopics .ds-card li { font-size: var(--ds-fs-body); }

/* ---- Prose: colunas (introdução | subtópicos, ou título | texto) em vez de uma coluna estreita à esquerda */
.ds-subitems { display: grid; }
.ds-subitem { border-top: 3px solid var(--ds-orange); padding: 1.25rem 0 1.25rem; }
.ds-subitem:last-child { padding-bottom: 0; }
.ds-subitem .ds-h3 { margin-top: 0; }
.ds-subitem p:last-child { margin-bottom: 0; }
.ds-subitems--grid { grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 3rem; margin-top: 1.5rem; }
@media (max-width: 991.98px) { .ds-subitems--grid { grid-template-columns: 1fr; } }

/* ---- FAQ: título fixo à esquerda (4/12), perguntas na largura toda da coluna da direita (8/12) */
.ds-faq__title { position: sticky; top: 7rem; }
.ds-faq .ds-faq__list { margin-top: 0; }
.ds-faq .ds-faq__answer { max-width: none; }
@media (max-width: 991.98px) { .ds-faq__title { position: static; } }

/* ---- Prose com foto ao lado: foto editorial 4:5 preenchendo a coluna, fixa ao rolar em texto longo */
.ds-prose__photo { position: sticky; top: 7rem; aspect-ratio: 4 / 5; overflow: hidden; background: var(--ds-grey-100); }
.ds-prose__photo picture, .ds-prose__photo img { display: block; width: 100%; height: 100%; object-fit: cover; }
@media (max-width: 991.98px) { .ds-prose__photo { position: static; aspect-ratio: 16 / 9; } }
