/* =========================================================
   DesentupidoraMZS — style.css
   Design system: docs/projeto.json · Gerado a partir dos modelos aprovados.
   Ordem: base e componentes globais (home) → componentes de cada modelo.
   ========================================================= */

/* ---------- HOME ---------- */
:root{ --primary:#1D6AA9; --primary-hover:#165A91; --primary-active:#154E7B; --primary-soft:#EAF3FA; --secondary:#154E7B; --accent:#ECA532; --accent-hover:#D99218; --accent-active:#C98212; --accent-soft:#FFF3DD; --accent-ink:#684100; --whatsapp:#168039; --whatsapp-hover:#0F6B30; --whatsapp-active:#0B5A28; --text:#1C1C1C; --text-muted:#5F6B76; --text-inverse:#FFFFFF; --surface:#FFFFFF; --surface-alt:#F7F9FB; --surface-blue:#EAF3FA; --surface-dark:#0F1720; --border:#D9E2EA; --border-hover:#B8CDDC; --border-strong:#7A8894; --success:#18794E; --success-soft:#E9F6EF; --error:#B42318; --error-soft:#FDECEA; --focus:#0B5FFF; --font-heading:"Manrope",Arial,sans-serif; --font-body:"Inter",Arial,sans-serif; --fs-display:clamp(2.75rem,5.4vw,4.75rem); --fs-h1:clamp(2.375rem,4.8vw,4.25rem); --fs-h2:clamp(1.875rem,3.5vw,3rem); --fs-h3:clamp(1.5rem,2.4vw,2.125rem); --fs-h4:clamp(1.25rem,1.8vw,1.625rem); --fs-h5:clamp(1.125rem,1.4vw,1.375rem); --fs-h6:clamp(1rem,1.2vw,1.125rem); --fs-body-lg:clamp(1.0625rem,1.25vw,1.1875rem); --fs-body:clamp(1rem,1vw,1.0625rem); --fs-small:clamp(.875rem,.9vw,.9375rem); --fs-caption:.8125rem; --r-xs:4px; --r-sm:8px; --r-md:12px; --r-lg:16px; --r-xl:24px; --r-pill:999px; --r-featured:20px; --sh-xs:0 1px 2px rgba(15,23,32,.06); --sh-sm:0 4px 12px rgba(15,23,32,.08); --sh-md:0 10px 28px rgba(15,23,32,.10); --sh-lg:0 20px 48px rgba(15,23,32,.14); --sh-form:0 10px 30px rgba(15,23,32,.16); --sh-header:0 4px 18px rgba(15,23,32,.08); --t-instant:80ms cubic-bezier(.2,0,0,1); --t-fast:120ms cubic-bezier(.2,0,0,1); --t-base:180ms cubic-bezier(.2,0,0,1); --t-slow:240ms cubic-bezier(.2,0,0,1); --t-accordion:240ms cubic-bezier(.4,0,.2,1); --container:1280px; --pad:16px; --gutter:16px; --section:56px; --header-h:64px; }
@media (min-width:375px){
  :root{ --pad:20px; }
}
@media (min-width:768px){
  :root{ --pad:28px; --gutter:20px; --section:80px; }
}
@media (min-width:1024px){
  :root{ --pad:40px; --gutter:24px; --header-h:72px; }
}
@media (min-width:1280px){
  :root{ --pad:48px; --section:96px; }
}
@media (min-width:1440px){
  :root{ --pad:64px; }
}
*,*::before,*::after{ box-sizing:border-box; }
html{ scroll-behavior:smooth; scroll-padding-top:calc(var(--header-h) + 16px); -webkit-text-size-adjust:100%; }
body{ margin:0; background:var(--surface); color:var(--text); font-family:var(--font-body); font-size:var(--fs-body); font-weight:500; line-height:1.65; -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility; }
img,svg{ display:block; max-width:100%; }
h1,h2,h3,h4,h5,h6{ font-family:var(--font-heading); font-weight:700; color:inherit; margin:0; text-wrap:balance; }
h1{ font-size:var(--fs-h1); line-height:1.06; letter-spacing:-.04em; }
h2{ font-size:var(--fs-h2); line-height:1.1; letter-spacing:-.03em; }
h3{ font-size:var(--fs-h3); line-height:1.15; letter-spacing:-.02em; }
h4{ font-size:var(--fs-h4); line-height:1.2; letter-spacing:-.015em; }
h5{ font-size:var(--fs-h5); line-height:1.3; letter-spacing:-.01em; font-weight:600; }
h6{ font-size:var(--fs-h6); line-height:1.35; font-weight:600; }
p{ margin:0; text-wrap:pretty; }
ul,ol{ margin:0; padding:0; list-style:none; }
a{ color:var(--primary); font-weight:600; text-underline-offset:.18em; }
a:hover{ color:var(--primary-hover); }
strong{ font-weight:700; color:inherit; }
button,input,select,textarea{ font:inherit; color:inherit; }
:focus-visible{ outline:3px solid var(--focus); outline-offset:3px; border-radius:4px; }
.sr-only{ position:absolute!important; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.skip-link{ position:absolute; left:16px; top:-100px; z-index:2000; background:var(--surface); color:var(--text); padding:12px 16px; border-radius:var(--r-sm); box-shadow:var(--sh-md); }
.skip-link:focus{ top:12px; }
.icon{ width:20px; height:20px; flex:none; fill:none; stroke:currentColor; stroke-width:1.75; stroke-linecap:round; stroke-linejoin:round; }
.icon--xs{ width:16px; height:16px; }
.icon--sm{ width:18px; height:18px; }
.icon--lg{ width:24px; height:24px; }
.icon--xl{ width:32px; height:32px; }
.container{ width:100%; max-width:calc(var(--container) + var(--pad)*2); margin-inline:auto; padding-inline:var(--pad); }
.section{ padding-block:var(--section); }
.section--alt{ background:var(--surface-alt); }
.section--blue{ background:var(--surface-blue); }
.eyebrow{ display:inline-flex; align-items:center; gap:8px; font-size:var(--fs-caption); font-weight:700; line-height:1.3; letter-spacing:.08em; text-transform:uppercase; color:var(--primary); }
.eyebrow::before{ content:""; width:20px; height:2px; background:var(--accent); border-radius:2px; }
.section-head{ display:grid; gap:16px; max-width:760px; margin-bottom:48px; }
.section-head--center{ margin-inline:auto; text-align:center; justify-items:center; }
.section-head p{ font-size:var(--fs-body-lg); color:var(--text-muted); }
.lead{ font-size:var(--fs-body-lg); }
.muted{ color:var(--text-muted); }
.ph{ display:inline-block; padding:0 6px; border:1px dashed currentColor; border-radius:var(--r-xs); font-weight:600; font-size:.92em; opacity:.9; white-space:normal; max-width:100%; }
.btn{ display:inline-flex; align-items:center; justify-content:center; gap:8px; min-height:48px; min-width:44px; padding:0 20px; border-radius:var(--r-sm); border:1px solid transparent; font-family:var(--font-body); font-size:15px; font-weight:700; line-height:1.2; text-decoration:none; cursor:pointer; transition:background-color var(--t-fast), color var(--t-fast), border-color var(--t-fast), transform var(--t-fast); }
.btn .icon{ width:20px; height:20px; }
.btn:hover{ transform:translateY(-1px); }
.btn:active{ transform:translateY(0); }
.btn--primary{ background:var(--primary); color:#fff; border-color:var(--primary); }
.btn--primary:hover{ background:var(--primary-hover); color:#fff; }
.btn--primary:active{ background:var(--primary-active); }
.btn--secondary{ background:#fff; color:var(--primary); border-color:var(--primary); }
.btn--secondary:hover{ background:var(--primary-soft); color:var(--primary-active); }
.btn--ghost{ background:transparent; color:var(--primary); }
.btn--ghost:hover{ background:var(--primary-soft); }
.btn--accent{ background:var(--accent); color:var(--text); border-color:var(--accent); }
.btn--accent:hover{ background:var(--accent-hover); color:var(--text); }
.btn--accent:active{ background:var(--accent-active); }
.btn--whatsapp{ background:var(--whatsapp); color:#fff; border-color:var(--whatsapp); }
.btn--whatsapp:hover{ background:var(--whatsapp-hover); border-color:var(--whatsapp-hover); color:#fff; }
.btn--whatsapp:active{ background:var(--whatsapp-active); }
.btn--dark{ background:var(--primary-active); color:#fff; border-color:var(--primary-active); }
.btn--dark:hover{ background:var(--surface-dark); color:#fff; }
.btn--inverse{ background:transparent; color:#fff; border-color:rgba(255,255,255,.4); }
.btn--inverse:hover{ background:rgba(255,255,255,.1); color:#fff; border-color:#fff; }
.btn--sm{ min-height:44px; padding:0 16px; font-size:14px; }
.btn--block{ width:100%; }
.btn-row{ display:flex; flex-wrap:wrap; gap:12px; }
@media (max-width:767px){
  .btn-row > .btn{ width:100%; }
}
.link-arrow{ display:inline-flex; align-items:center; gap:6px; font-weight:700; font-size:15px; text-decoration:none; color:var(--primary); }
.link-arrow .icon{ width:18px; height:18px; transition:transform var(--t-base); }
.link-arrow:hover .icon{ transform:translateX(3px); }
.badge{ display:inline-flex; align-items:center; gap:6px; height:28px; padding:4px 10px; border-radius:var(--r-pill); font-size:13px; font-weight:600; line-height:1; white-space:nowrap; }
.badge--primary{ background:var(--primary-soft); color:var(--primary-active); }
.badge--accent{ background:var(--accent-soft); color:var(--accent-ink); }
.badge--neutral{ background:var(--surface-alt); color:var(--text-muted); }
.icon-box{ display:grid; place-items:center; width:44px; height:44px; border-radius:10px; background:var(--primary-soft); color:var(--primary); flex:none; }
.icon-box--featured{ width:52px; height:52px; border-radius:12px; background:var(--primary); color:#fff; }
.icon-box--accent{ border-radius:8px; background:var(--accent); color:var(--text); }
.icon-box--circle{ border-radius:999px; }
.header{ position:fixed; top:0; left:0; right:0; z-index:1000; background:#fff; border-bottom:1px solid var(--border); transition:background-color var(--t-slow), border-color var(--t-slow), box-shadow var(--t-slow); }
.header.is-scrolled{ box-shadow:var(--sh-header); }
body:not(.has-transparent-header){ padding-top:var(--header-h); }
.header__logo .logo--light{ display:none; }
.header--transparent:not(.is-solid){ background:transparent; border-bottom-color:rgba(255,255,255,.14); }
.header--transparent:not(.is-solid) .logo--dark{ display:none; }
.header--transparent:not(.is-solid) .logo--light{ display:block; }
.header--transparent:not(.is-solid) .menu-toggle{ background:transparent; border-color:rgba(255,255,255,.32); color:#fff; }
.header__inner{ display:flex; align-items:center; justify-content:space-between; gap:24px; height:var(--header-h); }
.header__logo{ display:flex; align-items:center; flex:none; }
.header__logo img{ height:36px; width:auto; }
@media (min-width:1024px){
  .header__logo img{ height:44px; }
}
.nav{ display:none; }
.header__actions{ display:flex; align-items:center; gap:8px; }
.header__wa-label{ display:none; }
@media (min-width:480px){
  .header__wa-label{ display:inline; }
}
.menu-toggle{ display:grid; place-items:center; width:44px; height:44px; border:1px solid var(--border); background:#fff; border-radius:var(--r-sm); cursor:pointer; color:var(--text); }
@media (min-width:1024px){
  .menu-toggle{ display:none; }
  .nav{ display:block; }
  .nav__list{ display:flex; align-items:center; gap:4px; }
  .nav{ margin-left:auto; }
  .nav__link--home{ padding:0 12px; }
  .nav__link{ position:relative; }
  .nav__link[aria-current="page"],.nav__item.is-current > .nav__link{ color:var(--primary); background:var(--surface-alt); }
  .nav__link[aria-current="page"]::after,.nav__item.is-current > .nav__link::after{ content:""; position:absolute; left:14px; right:14px; bottom:4px; height:2px; border-radius:2px; background:var(--accent); }
  .nav__link--home[aria-current="page"]::after{ left:10px; right:10px; }
  .header--transparent:not(.is-solid) .nav__link[aria-current="page"],.header--transparent:not(.is-solid) .nav__item.is-current > .nav__link{ color:#fff; background:rgba(255,255,255,.14); }
  .nav__link--home .icon{ width:20px !important; height:20px !important; transform:none !important; }
  .nav__link{ display:inline-flex; align-items:center; gap:4px; height:44px; padding:0 14px; border-radius:var(--r-sm); background:none; border:0; cursor:pointer; color:var(--text); font-weight:600; font-size:15px; text-decoration:none; transition:color var(--t-fast), background-color var(--t-fast); }
  .nav__link:hover,.nav__item.is-open > .nav__link{ color:var(--primary); background:var(--surface-alt); }
  .nav__link .icon{ width:16px; height:16px; transition:transform var(--t-base); }
  .nav__item.is-open > .nav__link .icon{ transform:rotate(180deg); }
  .header--transparent:not(.is-solid) .nav__link{ color:#fff; }
  .header--transparent:not(.is-solid) .nav__link:hover{ color:#fff; background:rgba(255,255,255,.12); }
  .header--transparent:not(.is-solid) .nav__item.is-open > .nav__link{ color:#fff; background:rgba(255,255,255,.12); }
}
.mega{ position:absolute; left:50%; top:calc(100% + 1px); width:min(1200px, calc(100vw - 48px)); transform:translate(-50%,-6px); opacity:0; visibility:hidden; pointer-events:none; background:#fff; border:1px solid var(--border); border-radius:var(--r-lg); box-shadow:var(--sh-lg); overflow:hidden; transition:opacity var(--t-base), transform var(--t-base), visibility 0s linear 180ms; }
.nav__item.is-open .mega{ opacity:1; visibility:visible; pointer-events:auto; transform:translate(-50%,0); transition:opacity var(--t-base), transform var(--t-base); }
.mega__grid{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)) minmax(0,1.2fr); gap:24px; padding:28px; }
@media (min-width:1280px){
  .mega__grid{ gap:32px; padding:32px; }
  .mega__feature .btn{ white-space:nowrap; }
}
.mega__col{ display:flex; flex-direction:column; }
.mega__title{ display:block; margin-bottom:14px; padding-bottom:12px; border-bottom:1px solid var(--border); font-size:var(--fs-caption); font-weight:700; letter-spacing:.08em; text-transform:uppercase; color:var(--text-muted); text-decoration:none; }
.mega__title:hover{ color:var(--primary); }
.mega__list{ display:grid; gap:4px; }
.mega__link{ display:flex; gap:12px; align-items:center; min-height:60px; padding:10px; margin-inline:-10px; border-radius:var(--r-sm); text-decoration:none; color:var(--text); transition:background-color var(--t-fast); }
.mega__link:hover{ background:var(--surface-alt); color:var(--text); }
.mega__link .icon-box{ width:40px; height:40px; }
.mega__text{ display:block; min-width:0; }
.mega__text strong{ display:block; font-size:15px; line-height:1.35; }
.mega__text span{ display:block; font-size:13px; line-height:1.45; font-weight:500; color:var(--text-muted); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.mega__link:hover strong{ color:var(--primary); }
.mega__all{ display:inline-flex; align-items:center; gap:6px; margin-top:auto; padding-top:14px; font-size:14px; font-weight:700; text-decoration:none; }
.mega__feature{ position:relative; overflow:hidden; isolation:isolate; display:flex; flex-direction:column; align-items:flex-start; gap:10px; padding:24px; border-radius:var(--r-lg); background:linear-gradient(150deg,#154E7B 0%,#12324F 55%,#0F1720 100%); color:#fff; }
.mega__feature::after{ content:""; position:absolute; z-index:-1; right:-60px; bottom:-70px; width:180px; height:180px; border-radius:50%; border:28px solid rgba(255,255,255,.05); }
.mega__feature h3{ font-size:var(--fs-h6); line-height:1.3; color:#fff; }
.mega__feature p{ font-size:14px; color:rgba(255,255,255,.72); }
.mega__feature .btn{ margin-top:auto; width:100%; }
.mnav{ position:fixed; inset:0; z-index:1100; display:flex; flex-direction:column; height:100dvh; background:#fff; visibility:hidden; opacity:0; transition:opacity var(--t-base), visibility 0s linear 180ms; }
.mnav.is-open{ visibility:visible; opacity:1; transition:opacity var(--t-base); }
.mnav__head{ display:flex; align-items:center; justify-content:space-between; height:64px; padding-inline:var(--pad); border-bottom:1px solid var(--border); flex:none; }
.mnav__head img{ height:36px; width:auto; }
.mnav__body{ flex:1; overflow-y:auto; padding:8px var(--pad) 24px; }
.mnav__link,.mnav__acc{ display:flex; align-items:center; justify-content:space-between; width:100%; min-height:52px; padding:0; border:0; border-bottom:1px solid var(--border); background:none; font-family:var(--font-heading); font-size:18px; font-weight:700; color:var(--text); text-decoration:none; text-align:left; cursor:pointer; }
.mnav__link[aria-current="page"],.mnav__acc.is-current{ color:var(--primary); box-shadow:inset 3px 0 0 var(--accent); padding-left:12px; }
.mnav__acc .icon{ transition:transform var(--t-base); }
.mnav__acc[aria-expanded="true"] .icon{ transform:rotate(180deg); }
.mnav__panel{ display:grid; grid-template-rows:0fr; transition:grid-template-rows var(--t-accordion); }
.mnav__panel.is-open{ grid-template-rows:1fr; }
.mnav__panel > div{ overflow:hidden; }
.mnav__group{ padding:12px 0 8px; }
.mnav__group-title{ display:block; margin:8px 0 4px; font-size:var(--fs-caption); font-weight:700; letter-spacing:.08em; text-transform:uppercase; color:var(--text-muted); }
.mnav__sub{ display:flex; align-items:center; min-height:44px; gap:10px; color:var(--text); font-weight:600; text-decoration:none; }
.mnav__sub .icon{ color:var(--primary); }
.mnav__foot{ flex:none; padding:12px var(--pad) calc(12px + env(safe-area-inset-bottom)); border-top:1px solid var(--border); display:grid; gap:8px; }
.hero{ position:relative; isolation:isolate; color:#fff; background:var(--surface-dark); overflow:hidden; }
.hero__media{ position:absolute; inset:0; z-index:-2; }
.hero__media::before{ content:""; position:absolute; inset:0; background: radial-gradient(60% 80% at 85% 30%, rgba(29,106,169,.55), transparent 70%), radial-gradient(40% 50% at 70% 95%, rgba(236,165,50,.12), transparent 70%), linear-gradient(135deg,#132537 0%,#0F1720 60%); }
.hero__media img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.hero__overlay{ position:absolute; inset:0; z-index:-1; background:linear-gradient(90deg, rgba(15,23,32,.90) 0%, rgba(15,23,32,.64) 45%, rgba(15,23,32,.18) 100%); }
.hero__pattern{ position:absolute; right:-120px; top:50%; width:760px; transform:translateY(-50%); z-index:-1; opacity:.16; color:#fff; pointer-events:none; }
.hero__grid{ display:grid; gap:40px; padding-block:calc(var(--header-h) + 48px) 64px; align-items:center; }
.hero::before{ content:""; position:absolute; inset:0 0 auto 0; height:calc(var(--header-h) + 80px); z-index:-1; background:linear-gradient(180deg, rgba(15,23,32,.55), rgba(15,23,32,0)); pointer-events:none; }
.hero__img-hint{ position:absolute; right:var(--pad); bottom:96px; z-index:0; display:flex; gap:10px; align-items:flex-start; max-width:340px; padding:12px 14px; border:1px dashed rgba(255,255,255,.35); border-radius:var(--r-md); background:rgba(15,23,32,.55); color:rgba(255,255,255,.8); font-size:12px; line-height:1.5; pointer-events:none; }
.hero__img-hint strong{ display:block; font-size:13px; color:#fff; margin-bottom:2px; }
.hero__img-hint .icon{ color:var(--accent); margin-top:2px; }
.hero__media:has(img) ~ .hero__img-hint{ display:none; }
@media (max-width:1023px){
  .hero__img-hint{ display:none; }
}
.hero__content{ display:grid; gap:24px; align-content:start; }
.hero .eyebrow{ color:#fff; }
.hero__title{ font-size:var(--fs-h1); max-width:16ch; }
.hero__title em{ font-style:normal; color:var(--accent); }
.hero__lead{ font-size:var(--fs-body-lg); color:rgba(255,255,255,.86); max-width:56ch; }
.hero__meta{ display:flex; flex-wrap:wrap; gap:8px 20px; font-size:14px; color:rgba(255,255,255,.72); }
.hero__meta span{ display:inline-flex; align-items:center; gap:6px; }
@media (min-width:1024px){
  .hero__grid{ grid-template-columns:7fr 5fr; gap:var(--gutter); column-gap:64px; padding-block:calc(var(--header-h) + 72px) 104px; }
}
.form-card{ width:100%; max-width:460px; justify-self:end; background:#fff; color:var(--text); border:1px solid var(--border); border-radius:var(--r-md); box-shadow:var(--sh-form); overflow:hidden; }
@media (max-width:1023px){
  .form-card{ justify-self:stretch; max-width:none; }
}
.form-card__head{ padding:18px 24px; background:var(--secondary); color:#fff; }
.form-card__head h2,.form-card__head h3{ font-size:var(--fs-h6); line-height:1.3; }
.form-card__head p{ margin-top:4px; font-size:14px; color:rgba(255,255,255,.8); }
.form{ display:grid; gap:16px; padding:24px; }
.form__row{ display:grid; gap:16px; }
@media (min-width:480px){
  .form__row--2{ grid-template-columns:1fr 1fr; }
}
.field label{ display:block; margin-bottom:6px; font-size:14px; font-weight:600; color:var(--text); }
.field label .opt{ font-weight:500; color:var(--text-muted); }
.field input,.field select,.field textarea{ display:block; width:100%; height:46px; padding:11px 13px; font-size:16px; color:var(--text); background:var(--surface-alt); border:1px solid var(--border-strong); border-radius:var(--r-sm); transition:border-color var(--t-fast), box-shadow var(--t-fast), background-color var(--t-fast); }
.field select{ appearance:none; padding-right:40px; background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' fill='none' stroke='%235F6B76' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' viewBox='0 0 24 24'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E"); background-repeat:no-repeat; background-position:right 12px center; }
.field textarea{ height:auto; min-height:112px; resize:vertical; }
.field input::placeholder,.field textarea::placeholder{ color:var(--text-muted); }
.field input:hover,.field select:hover,.field textarea:hover{ border-color:var(--primary); }
.field input:focus,.field select:focus,.field textarea:focus{ outline:none; border-color:var(--primary); background:#fff; box-shadow:0 0 0 3px rgba(11,95,255,.24); }
.field__msg{ display:none; align-items:center; gap:6px; margin-top:6px; font-size:13px; font-weight:600; }
.field.has-error input,.field.has-error select{ border-color:var(--error); background:#fff; }
.field.has-error .field__msg{ display:flex; color:var(--error); }
.form__note{ display:flex; gap:8px; font-size:13px; line-height:1.45; color:var(--text-muted); }
.form__note .icon{ width:16px; height:16px; margin-top:1px; }
.form__alt{ display:flex; align-items:center; gap:12px; font-size:13px; color:var(--text-muted); }
.form__alt::before,.form__alt::after{ content:""; flex:1; height:1px; background:var(--border); }
.field .consent__box{ display:flex; gap:12px; align-items:flex-start; margin:0; padding:14px 16px; border:1px solid var(--border); border-radius:var(--r-sm); background:var(--surface-alt); font-size:14px!important; font-weight:500!important; line-height:1.5; color:var(--text); cursor:pointer; }
.consent__box a{ font-weight:600; }
.consent__box input{ appearance:none; -webkit-appearance:none; flex:none; width:22px; height:22px; margin-top:1px; border:2px solid var(--border-strong); border-radius:5px; background:#fff; cursor:pointer; transition:background-color var(--t-fast), border-color var(--t-fast); }
.consent__box input:hover{ border-color:var(--primary); }
.consent__box input:checked{ border-color:var(--primary); background:var(--primary) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E") center/14px no-repeat; }
.consent__box input:focus-visible{ outline:3px solid var(--focus); outline-offset:2px; }
.field.consent.has-error .consent__box{ border-color:var(--error); background:#fff; }
.field.consent.has-error .consent__box input{ border-color:var(--error); }
.form__success{ display:none; gap:10px; align-items:flex-start; padding:14px 16px; border-radius:var(--r-sm); background:var(--success-soft); color:#125E3E; font-size:14px; font-weight:600; }
.form.is-sent .form__success{ display:flex; }
/* Formulário de orçamento por serviço (data-lead-form) */
.field.has-error textarea{ border-color:var(--error); background:#fff; }
.form__legal{ font-size:13px; line-height:1.5; color:var(--text-muted); }
.form__legal a{ font-weight:600; }
.hp{ position:absolute !important; left:-9999px; width:1px; height:1px; overflow:hidden; }
.form__fail{ display:grid; gap:12px; padding:14px 16px; border:1px solid var(--error); border-radius:var(--r-sm); background:var(--error-soft); }
.form__fail[hidden]{ display:none; }
.form__fail p{ display:flex; gap:8px; align-items:flex-start; font-size:14px; font-weight:600; color:var(--error); }
.form__fail p .icon{ flex:none; width:18px; height:18px; margin-top:1px; }
.form__fail:focus{ outline:3px solid var(--focus); outline-offset:2px; }
.btn.is-loading{ pointer-events:none; opacity:.85; }
.btn.is-loading .icon{ display:none; }
.btn.is-loading::before{ content:""; width:18px; height:18px; border:2px solid currentColor; border-right-color:transparent; border-radius:50%; animation:btn-spin .7s linear infinite; }
@keyframes btn-spin{ to{ transform:rotate(360deg); } }
@media (prefers-reduced-motion:reduce){ .btn.is-loading::before{ animation-duration:2s; } }
.grid{ display:grid; gap:var(--gutter); }
@media (min-width:768px){
  .grid--3,.grid--2{ grid-template-columns:repeat(2,1fr); }
}
@media (min-width:1024px){
  .grid--3{ grid-template-columns:repeat(3,1fr); }
}
.svc{ position:relative; display:flex; flex-direction:column; background:#fff; border:1px solid var(--border); border-radius:var(--r-lg); overflow:hidden; transition:transform var(--t-base), box-shadow var(--t-base), border-color var(--t-base); }
.svc:hover{ transform:translateY(-3px); box-shadow:var(--sh-md); border-color:var(--border-hover); }
.svc{ -webkit-tap-highlight-color:transparent; }
.svc:has(a:focus-visible){ outline:2px solid var(--primary); outline-offset:4px; border-color:var(--primary); }
.svc__media{ position:relative; width:100%; height:200px; overflow:hidden; display:grid; place-items:center; background:var(--primary-soft); }
.svc__media img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; transition:transform var(--t-slow); }
.svc:hover .svc__media img{ transform:scale(1.04); }
.svc__media--des{ background:linear-gradient(145deg,#1D6AA9 0%,#154E7B 100%); }
.svc__media--lim{ background:linear-gradient(145deg,#154E7B 0%,#0F1720 100%); }
.svc__media--tec{ background:linear-gradient(145deg,#2A3B4C 0%,#0F1720 100%); }
.svc__media::before{ content:""; position:absolute; inset:0; opacity:.12; background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='40' viewBox='0 0 120 40'%3E%3Cpath d='M0 20c15-12 30-12 45 0s30 12 45 0 22-9 30-5' fill='none' stroke='%23fff' stroke-width='1.5'/%3E%3C/svg%3E"); }
.svc__ph{ position:relative; width:64px; height:64px; fill:none; stroke:rgba(255,255,255,.88); stroke-width:1.25; stroke-linecap:round; stroke-linejoin:round; }
.svc__media img ~ .svc__ph{ display:none; }
.svc__body{ display:flex; flex-direction:column; gap:10px; flex:1; padding:20px 24px 24px; }
.svc__meta{ display:inline-flex; align-items:center; gap:6px; font-size:14px; font-weight:500; color:var(--text-muted); }
.svc__meta .icon{ color:var(--text-muted); }
.svc h3{ font-size:var(--fs-h5); line-height:1.3; letter-spacing:-.01em; font-weight:700; }
.svc p{ font-size:15px; color:var(--text-muted); display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orient:vertical; overflow:hidden; }
.svc__foot{ margin-top:auto; padding-top:8px; }
.svc__foot a::after{ content:""; position:absolute; inset:0; border-radius:inherit; }
.svc__foot a:focus-visible{ outline:none; }
.svc:hover .link-arrow .icon{ transform:translateX(3px); }
.carousel-head{ display:flex; align-items:flex-end; justify-content:space-between; gap:24px; margin-bottom:40px; }
.carousel-head .section-head{ margin-bottom:0; }
.carousel__nav{ display:flex; gap:8px; flex:none; }
.carousel__btn{ display:grid; place-items:center; width:48px; height:48px; border:1px solid var(--border); border-radius:var(--r-sm); background:#fff; color:var(--primary-active); cursor:pointer; transition:background-color var(--t-fast), border-color var(--t-fast), color var(--t-fast), opacity var(--t-fast); }
.carousel__btn:hover:not(:disabled){ background:var(--primary); border-color:var(--primary); color:#fff; }
.carousel__btn:disabled{ opacity:.4; cursor:default; }
.carousel__track{ --peek:32px; display:grid; grid-auto-flow:column; gap:var(--gutter); grid-auto-columns:calc(100% - var(--gutter) - var(--peek)); margin-block:-8px -16px; padding-block:8px 16px; overflow-x:auto; overscroll-behavior-x:contain; scroll-snap-type:x mandatory; scroll-behavior:smooth; scrollbar-width:none; -webkit-overflow-scrolling:touch; }
.carousel__track::-webkit-scrollbar{ display:none; }
.carousel__track > li{ scroll-snap-align:start; }
.carousel__track:focus-visible{ outline:3px solid var(--focus); outline-offset:4px; }
#servicos .carousel__track{ grid-auto-columns:302px; }
@media (min-width:1024px){
  #servicos .carousel__track{ gap:16px; }
}
@media (max-width:767px){
  .carousel-head{ flex-direction:column; align-items:stretch; }
  .carousel__nav{ display:none; }
}
.split{ display:grid; gap:48px; align-items:start; }
@media (min-width:1024px){
  .split--7-5{ grid-template-columns:7fr 5fr; gap:64px; }
  .split--6-6{ grid-template-columns:1fr 1fr; gap:64px; align-items:center; }
}
.process{ position:relative; isolation:isolate; overflow:hidden; color:#fff; background:radial-gradient(60% 70% at 50% 0%, rgba(29,106,169,.28), transparent 70%), var(--surface-dark); }
.process .section-head{ margin-bottom:64px; }
.process .section-head p{ color:rgba(255,255,255,.68); }
.eyebrow--lines{ color:var(--accent); }
.eyebrow--lines::before,.eyebrow--lines::after{ content:""; width:32px; height:1px; background:currentColor; opacity:.7; }
.process__title{ font-size:var(--fs-h2); }
.process__title span{ display:block; color:var(--accent); }
.flow{ position:relative; display:grid; gap:40px; counter-reset:flow; }
.flow__step{ position:relative; display:grid; grid-template-columns:52px 1fr; gap:4px 20px; align-items:start; align-content:start; }
.flow__n{ grid-row:span 2; display:grid; place-items:center; width:52px; height:52px; border:1px solid rgba(236,165,50,.55); border-radius:var(--r-sm); background:rgba(236,165,50,.08); color:var(--accent); font-family:var(--font-heading); font-size:18px; font-weight:700; position:relative; z-index:1; }
.flow__step h3{ font-size:var(--fs-h6); line-height:1.35; padding-top:4px; }
.flow__step p{ font-size:15px; line-height:1.6; color:rgba(255,255,255,.64); }
.flow__step:not(:last-child)::before{ content:""; position:absolute; left:26px; top:52px; bottom:-40px; width:1px; background:rgba(255,255,255,.16); }
@media (min-width:1024px){
  .flow{ grid-template-columns:repeat(5,1fr); gap:24px; }
  .flow__step{ grid-template-columns:1fr; justify-items:center; text-align:center; gap:12px; }
  .flow__n{ grid-row:auto; margin-bottom:8px; }
  .flow__step h3{ padding-top:0; }
  .flow__step p{ max-width:26ch; }
  .flow__step:not(:last-child)::before{ left:calc(50% + 26px); right:calc(-50% + 26px - 24px); top:26px; bottom:auto; width:auto; height:1px; }
}
.process__cta{ display:grid; justify-items:center; gap:16px; margin-top:64px; text-align:center; }
.process__note{ display:flex; flex-wrap:wrap; justify-content:center; align-items:center; gap:10px; }
.process__note li{ display:inline-flex; align-items:center; gap:8px; min-height:36px; padding:0 14px; border:1px solid rgba(255,255,255,.14); border-radius:var(--r-pill); background:rgba(255,255,255,.04); font-size:14px; font-weight:600; color:rgba(255,255,255,.88); }
.process__note .icon{ width:16px; height:16px; color:var(--accent); }
.note{ display:flex; gap:12px; padding:16px 18px; border-left:4px solid var(--primary); border-radius:var(--r-sm); background:var(--surface-blue); font-size:14px; line-height:1.55; }
.note .icon{ color:var(--primary); margin-top:1px; }
.note--accent{ border-left-color:var(--accent); background:var(--accent-soft); }
.note--accent .icon{ color:var(--accent-ink); }
@media (min-width:768px){
  .grid--aud{ grid-template-columns:repeat(3,1fr); }
}
.aud{ position:relative; display:flex; flex-direction:column; background:#fff; border:1px solid var(--border); border-radius:var(--r-md); overflow:hidden; transition:transform var(--t-base), box-shadow var(--t-base); }
.aud:hover{ transform:translateY(-3px); box-shadow:var(--sh-md); }
.aud{ -webkit-tap-highlight-color:transparent; }
.aud:has(a:focus-visible){ outline:2px solid var(--primary); outline-offset:4px; border-color:var(--primary); }
.aud__media{ position:relative; height:250px; display:grid; place-items:center; color:rgba(255,255,255,.9); }
.aud__media--res{ background:linear-gradient(145deg,#1D6AA9,#154E7B); }
.aud__media--cond{ background:linear-gradient(145deg,#154E7B,#0F1720); }
.aud__media--emp{ background:linear-gradient(145deg,#2A3B4C,#0F1720); }
.aud__media::after{ content:""; position:absolute; inset:0; background:linear-gradient(180deg, rgba(15,23,32,0) 45%, rgba(15,23,32,.72) 100%); }
.aud__media .icon{ width:64px; height:64px; stroke-width:1.25; opacity:.9; }
.aud__photo .icon{ width:13px !important; height:13px !important; stroke-width:1.75 !important; opacity:1 !important; }
.aud__photo{ position:absolute; left:12px; top:12px; z-index:1; display:inline-flex; gap:6px; align-items:center; padding:4px 8px; border-radius:var(--r-xs); background:rgba(15,23,32,.5); font-size:11px; font-weight:600; color:rgba(255,255,255,.8); }
.aud__label{ position:absolute; left:20px; bottom:16px; z-index:1; color:#fff; font-size:var(--fs-caption); font-weight:700; letter-spacing:.08em; text-transform:uppercase; }
.aud__body{ display:flex; flex-direction:column; gap:12px; flex:1; padding:24px; }
.aud__body h3{ font-size:var(--fs-h5); line-height:1.3; }
.aud__body p{ font-size:15px; color:var(--text-muted); }
.aud__list{ display:grid; gap:6px; }
.aud__list li{ display:flex; gap:8px; font-size:14px; font-weight:600; }
.aud__list .icon{ width:16px; height:16px; margin-top:3px; color:var(--primary); }
.aud__foot{ margin-top:auto; padding-top:16px; }
.aud__foot a::after{ content:""; position:absolute; inset:0; }
.aud__foot a:focus-visible{ outline:none; }
.faq{ max-width:calc(8/12*100%); margin-inline:auto; display:grid; gap:12px; }
@media (max-width:1023px){
  .faq{ max-width:calc(10/12*100%); }
}
@media (max-width:767px){
  .faq{ max-width:none; }
}
.faq__item{ background:#fff; border:1px solid var(--border); border-radius:var(--r-sm); overflow:hidden; }
.faq__q{ display:flex; align-items:center; justify-content:space-between; gap:16px; width:100%; min-height:56px; padding:16px 18px; background:none; border:0; text-align:left; cursor:pointer; font-family:var(--font-heading); font-size:var(--fs-h6); font-weight:600; line-height:1.35; color:var(--text); transition:color var(--t-fast), background-color var(--t-fast); }
.faq__q:hover{ color:var(--primary); background:var(--surface-alt); }
.faq__q[aria-expanded="true"]{ color:var(--primary-active); }
.faq__q .icon{ flex:none; color:var(--primary); transition:transform var(--t-accordion); }
.faq__q[aria-expanded="true"] .icon{ transform:rotate(180deg); }
.faq__a{ display:grid; grid-template-rows:0fr; opacity:0; transition:grid-template-rows var(--t-accordion), opacity var(--t-accordion); }
.faq__a.is-open{ grid-template-rows:1fr; opacity:1; }
.faq__a > div{ overflow:hidden; }
.faq__a p{ padding:0 18px 18px; color:var(--text-muted); font-size:15px; }
.faq-foot{ text-align:center; margin-top:32px; }
.final{ display:grid; gap:40px; align-items:center; }
@media (min-width:1024px){
  .final{ grid-template-columns:7fr 5fr; gap:64px; }
}
.final__content{ display:grid; gap:24px; }
.final__help{ display:grid; gap:12px; padding:20px; border:1px solid var(--border); border-radius:var(--r-md); background:var(--surface-alt); }
.final__help h3{ font-size:var(--fs-h6); }
.final__help ul{ display:grid; gap:8px; }
.final__help li{ display:flex; gap:10px; font-size:15px; }
.final__help .icon{ margin-top:3px; color:var(--primary); }
.final .form-card{ justify-self:stretch; max-width:none; }
.coverage{ position:relative; isolation:isolate; overflow:hidden; display:grid; gap:40px; align-items:center; padding:48px 24px; border-radius:var(--r-xl); color:#fff; background:radial-gradient(70% 90% at 80% 50%, rgba(29,106,169,.35), transparent 70%), linear-gradient(135deg,#132537 0%,#0F1720 70%); }
@media (min-width:768px){
  .coverage{ padding:64px 56px; }
}
@media (min-width:1024px){
  .coverage{ grid-template-columns:7fr 5fr; gap:48px; padding:56px 64px; }
}
.coverage__content{ display:grid; gap:16px; align-content:center; }
.coverage .eyebrow{ color:var(--accent); }
.coverage h2{ font-size:clamp(1.875rem,2.8vw,2.5rem); line-height:1.1; max-width:20ch; }
.coverage__lead{ font-size:var(--fs-body-lg); color:rgba(255,255,255,.78); max-width:52ch; }
.coverage__rmc{ display:grid; gap:10px; margin-top:4px; padding-top:16px; border-top:1px solid rgba(255,255,255,.12); }
.coverage__rmc h3{ font-family:var(--font-body); font-size:var(--fs-caption); font-weight:700; letter-spacing:.08em; text-transform:uppercase; color:rgba(255,255,255,.6); }
.coverage__rmc ul{ display:flex; flex-wrap:wrap; gap:6px; }
.coverage__rmc a, .coverage__rmc li > span{ display:inline-flex; align-items:center; min-height:32px; padding:0 12px; border:1px solid rgba(255,255,255,.2); border-radius:var(--r-pill); color:#fff; font-size:13px; font-weight:600; text-decoration:none; transition:border-color var(--t-fast), color var(--t-fast), background-color var(--t-fast); }
.coverage__rmc a:hover{ border-color:var(--accent); color:var(--accent); background:rgba(236,165,50,.08); }
.coverage__foot{ display:flex; flex-wrap:wrap; align-items:center; gap:12px 24px; margin-top:8px; }
.coverage__foot a.link-arrow{ color:#fff; }
.coverage__foot a.link-arrow:hover{ color:var(--accent); }
.coverage__map{ margin:0; justify-self:center; width:100%; max-width:400px; }
.cmap{ width:100%; height:auto; overflow:visible; }
.cmap__nb{ fill:rgba(255,255,255,.025); stroke:rgba(255,255,255,.16); stroke-width:1; stroke-linejoin:round; }
.cmap__nb-label{ font:600 11px var(--font-body); fill:rgba(255,255,255,.42); letter-spacing:.02em; }
.cmap__city{ fill:rgba(29,106,169,.38); stroke:#7FB3DD; stroke-width:2; stroke-linejoin:round; filter:drop-shadow(0 12px 32px rgba(0,0,0,.35)); }
.cmap__halo{ fill:rgba(236,165,50,.22); stroke:rgba(236,165,50,.55); stroke-width:1; }
.cmap__dot--main circle:last-of-type{ fill:var(--accent); stroke:#fff; stroke-width:2; }
.cmap__dot--main .cmap__halo{ fill:rgba(236,165,50,.25); animation:cmap-pulse 2.4s ease-out infinite; transform-box:fill-box; transform-origin:center; }
@keyframes cmap-pulse{ 0%{ transform:scale(.8); opacity:1; } 100%{ transform:scale(2.2); opacity:0; } }
.cmap__tag rect{ fill:#fff; }
.cmap__tag text{ font:700 14px var(--font-heading); fill:var(--primary-active); }
.coverage__legend{ display:flex; flex-wrap:wrap; justify-content:center; gap:8px 20px; margin-top:12px; font-size:13px; font-weight:600; color:rgba(255,255,255,.7); }
.coverage__legend span{ display:inline-flex; align-items:center; gap:8px; }
.coverage__legend i{ display:block; width:10px; height:10px; border-radius:50%; }
.btn--outline-dark{ background:transparent; color:var(--text); border-color:rgba(28,28,28,.55); }
.btn--outline-dark:hover{ background:rgba(28,28,28,.08); color:var(--text); border-color:var(--text); }
.endcta{ position:relative; overflow:hidden; isolation:isolate; display:grid; gap:28px; align-items:center; padding:40px 24px; border-radius:var(--r-xl); background:var(--accent); color:var(--text); }
.endcta::after{ content:""; position:absolute; z-index:-1; right:-90px; bottom:-120px; width:340px; height:340px; border-radius:50%; border:48px solid rgba(255,255,255,.18); pointer-events:none; }
.endcta__label{ display:inline-flex; align-items:center; gap:8px; font-size:var(--fs-caption); font-weight:700; letter-spacing:.08em; text-transform:uppercase; color:#4A2E00; }
.endcta h2{ margin-top:10px; font-size:var(--fs-h3); max-width:22ch; }
.endcta p{ margin-top:12px; font-size:var(--fs-body-lg); max-width:58ch; }
.endcta__actions{ display:grid; gap:12px; }
@media (min-width:768px){
  .endcta{ padding:56px; }
}
@media (min-width:1024px){
  .endcta{ grid-template-columns:8fr 4fr; gap:48px; padding:64px 72px; }
}
.hero__problems{ display:grid; gap:10px; }
.hero__problems > span{ font-size:var(--fs-caption); font-weight:700; letter-spacing:.08em; text-transform:uppercase; color:rgba(255,255,255,.6); }
.hero__problems ul{ display:flex; flex-wrap:wrap; gap:8px; }
.hero__problems a{ display:inline-flex; align-items:center; min-height:40px; padding:0 16px; border:1px solid rgba(255,255,255,.24); border-radius:var(--r-pill); color:#fff; font-size:15px; font-weight:600; text-decoration:none; transition:border-color var(--t-fast), color var(--t-fast), background-color var(--t-fast); }
.hero__problems a:hover{ border-color:var(--accent); color:var(--accent); background:rgba(236,165,50,.08); }
@media (min-width:1024px){
  .hero__grid{ padding-bottom:152px; }
}
.perks{ position:relative; z-index:2; margin-top:-40px; }
.perks__card{ display:grid; background:#fff; border:1px solid var(--border); border-radius:var(--r-xl); box-shadow:var(--sh-lg); overflow:hidden; }
.perks__item{ display:flex; gap:16px; align-items:flex-start; padding:22px 24px; }
.perks__item + .perks__item{ border-top:1px solid var(--border); }
.perks__item h3{ font-size:var(--fs-h6); line-height:1.35; }
.perks__item p{ margin-top:4px; font-size:14px; color:var(--text-muted); }
@media (min-width:1024px){
  .perks{ margin-top:-72px; }
  .perks__card{ grid-template-columns:repeat(3,1fr); }
  .perks__item{ padding:28px; }
  .perks__item + .perks__item{ border-top:0; border-left:1px solid var(--border); }
}
.method{ display:grid; gap:var(--gutter); }
@media (min-width:768px){
  .method{ grid-template-columns:repeat(2,1fr); }
}
@media (min-width:1024px){
  .method{ grid-template-columns:repeat(4,1fr); }
}
.method__item{ position:relative; display:flex; flex-direction:column; gap:14px; padding:28px 24px; background:#fff; border:1px solid var(--border); border-radius:var(--r-md); transition:border-color var(--t-base), transform var(--t-base); }
.method__item:hover{ border-color:var(--primary); transform:translateY(-2px); }
.method__n{ position:absolute; top:20px; right:22px; font-family:var(--font-heading); font-size:28px; font-weight:700; color:var(--primary-soft); line-height:1; }
.method__item h3{ font-size:var(--fs-h6); line-height:1.35; }
.method__item p{ font-size:15px; color:var(--text-muted); }
.ctx{ display:grid; gap:var(--gutter); }
@media (min-width:768px){
  .ctx{ grid-template-columns:repeat(2,1fr); }
}
.ctx__item{ display:flex; gap:18px; align-items:flex-start; padding:24px; background:#fff; border:1px solid var(--border); border-left:4px solid var(--primary); border-radius:var(--r-md); }
.ctx__item h3{ font-size:var(--fs-h6); line-height:1.35; }
.ctx__item p{ margin-top:6px; font-size:15px; color:var(--text-muted); }
.ctx__item .link-arrow{ margin-top:10px; }
.why{ display:grid; gap:40px; align-items:start; }
@media (min-width:1024px){
  .why{ grid-template-columns:5fr 7fr; gap:64px; }
}
.why__intro{ display:grid; gap:18px; }
.why__list{ display:grid; border-top:1px solid var(--border); }
.why__list li{ display:flex; gap:18px; align-items:flex-start; padding:22px 0; border-bottom:1px solid var(--border); }
.why__list h3{ font-size:var(--fs-h5); line-height:1.3; }
.why__list p{ margin-top:4px; font-size:15px; color:var(--text-muted); }
.tech{ display:grid; gap:var(--gutter); }
@media (min-width:768px){
  .tech{ grid-template-columns:repeat(2,1fr); }
}
@media (min-width:1024px){
  .tech{ grid-template-columns:repeat(4,1fr); }
}
.tech__item{ display:flex; flex-direction:column; gap:12px; padding:28px 24px; background:#fff; border:1px solid var(--border); border-radius:var(--r-md); transition:border-color var(--t-base), box-shadow var(--t-base); }
.tech__item:hover{ border-color:var(--border-hover); box-shadow:var(--sh-md); }
.tech__item h3{ font-size:var(--fs-h5); line-height:1.3; margin-top:6px; }
.tech__item p{ font-size:15px; color:var(--text-muted); }
.tech__use{ align-self:flex-start; padding:4px 10px; border-radius:var(--r-xs); background:var(--accent-soft); color:var(--accent-ink); font-size:13px; font-weight:600; }
.tech__item .link-arrow{ margin-top:auto; padding-top:8px; }
.tech__note{ display:flex; align-items:center; gap:8px; margin-top:20px; font-size:14px; }
.endcta__links{ display:flex; flex-wrap:wrap; gap:8px; margin-top:18px; }
.endcta__links a{ display:inline-flex; align-items:center; gap:6px; min-height:36px; padding:0 14px; border-radius:var(--r-pill); background:rgba(255,255,255,.55); color:var(--text); font-size:14px; font-weight:600; text-decoration:none; }
.endcta__links a:hover{ background:#fff; color:var(--primary-active); }
.human{ display:grid; gap:40px; align-items:center; }
@media (min-width:1024px){
  .human{ grid-template-columns:6fr 6fr; gap:64px; }
}
.human__intro{ display:grid; gap:18px; }
.human__media{ position:relative; margin:0; justify-self:center; width:100%; max-width:480px; aspect-ratio:4/5; }
.human__media img{ position:absolute; inset:0; width:100%; height:100%; object-fit:contain; }
.human__media img ~ .human__ph{ display:none; }
.human__ph{ position:absolute; inset:0; display:grid; place-content:center; justify-items:center; gap:20px; border-radius:var(--r-featured); background:radial-gradient(60% 60% at 50% 45%, var(--primary-soft), var(--surface-alt) 75%); border:1px dashed var(--border-hover); }
.human__phone{ display:block; width:190px; height:380px; padding:12px; border-radius:36px; background:#0F1720; box-shadow:var(--sh-lg); }
.human__phone span{ display:block; width:100%; height:100%; border-radius:26px; background:linear-gradient(180deg,#fff 0 14%, var(--surface-alt) 14%); }
.human__ph-label{ display:inline-flex; align-items:center; gap:8px; font-size:13px; font-weight:600; color:var(--text-muted); }
.b2b-cta{ display:flex; justify-content:center; margin-top:40px; }
.endband{ display:grid; gap:24px; align-items:center; padding:36px 24px; border-radius:var(--r-xl); background:var(--secondary); color:#fff; position:relative; overflow:hidden; isolation:isolate; }
.endband::after{ content:""; position:absolute; z-index:-1; right:-80px; top:-100px; width:300px; height:300px; border-radius:50%; border:44px solid rgba(255,255,255,.06); }
.endband h2{ font-size:var(--fs-h3); }
.endband p{ margin-top:10px; color:rgba(255,255,255,.82); font-size:var(--fs-body-lg); }
.endband__actions{ display:flex; flex-wrap:wrap; gap:12px; }
@media (max-width:767px){
  .endband__actions .btn{ width:100%; }
}
@media (min-width:1024px){
  .endband{ grid-template-columns:8fr 4fr; padding:48px 64px; }
  .endband__actions{ justify-content:flex-end; }
}
.footer__social{ margin-top:16px; font-size:14px; color:var(--border); }
.exit{ position:fixed; inset:0; z-index:1200; display:grid; place-items:center; padding:24px; }
.exit[hidden]{ display:none; }
.exit__overlay{ position:absolute; inset:0; background:rgba(15,23,32,.64); animation:exit-fade var(--t-slow) both; }
.exit__box{ position:relative; display:grid; gap:14px; justify-items:start; width:100%; max-width:440px; padding:32px; border-radius:var(--r-xl); background:#fff; box-shadow:var(--sh-lg); animation:exit-in var(--t-slow) both; }
.exit__box h2{ font-size:var(--fs-h4); margin-top:6px; }
.exit__box p{ color:var(--text-muted); }
.exit__close{ position:absolute; top:12px; right:12px; display:grid; place-items:center; width:44px; height:44px; border:0; border-radius:var(--r-sm); background:var(--surface-alt); color:var(--text); cursor:pointer; }
.exit__close:hover{ background:var(--border); }
.exit__later{ justify-self:center; min-height:44px; padding:0 12px; border:0; background:none; color:var(--text-muted); font-weight:600; font-size:14px; text-decoration:underline; text-underline-offset:.18em; cursor:pointer; }
@keyframes exit-fade{ from{ opacity:0; } }
@keyframes exit-in{ from{ opacity:0; transform:translateY(12px) scale(.98); } }
.footer{ background:var(--surface-dark); color:#fff; padding-top:64px; padding-bottom:24px; }
.footer__grid{ display:grid; gap:40px 32px; }
@media (min-width:768px){
  .footer__grid{ grid-template-columns:repeat(2,1fr); }
}
@media (min-width:1024px){
  .footer__grid{ grid-template-columns:1.5fr 1fr 1fr 1fr; gap:48px; }
}
.footer__brand{ display:grid; gap:18px; align-content:start; }
.footer__brand img{ height:44px; width:auto; }
.footer__brand p{ max-width:46ch; font-size:15px; line-height:1.6; color:rgba(255,255,255,.72); }
.footer__contact{ font-style:normal; display:grid; gap:10px; font-size:15px; color:rgba(255,255,255,.72); }
.footer__contact > a,.footer__contact > span{ display:inline-flex; align-items:center; gap:10px; min-height:26px; width:fit-content; color:inherit; text-decoration:none; }
.footer__contact > a strong{ color:#fff; font-weight:700; }
.footer__contact > a:hover strong{ color:var(--accent); }
.footer__contact .icon{ width:18px; height:18px; color:var(--accent); flex:none; }
.footer__contact .ph{ white-space:nowrap; }
.footer__contact small{ font-size:13px; color:rgba(255,255,255,.6); }
.footer__contact > span:has(small) .icon{ align-self:flex-start; margin-top:3px; }
.footer__col h2{ margin-bottom:14px; font-family:var(--font-body); font-size:15px; font-weight:700; letter-spacing:0; text-transform:none; color:var(--accent); }
.footer__list{ display:grid; gap:4px; }
.footer__list a{ display:inline-flex; align-items:center; min-height:32px; color:#fff; font-weight:500; font-size:15px; line-height:1.4; text-decoration:none; }
.footer__list a:hover{ color:var(--accent); }
.footer__bottom{ display:flex; flex-wrap:wrap; justify-content:space-between; gap:12px 24px; margin-top:56px; padding-top:24px; border-top:1px solid rgba(255,255,255,.12); font-size:13px; color:rgba(217,226,234,.72); }
.footer__legal{ max-width:820px; line-height:1.6; }
.footer__credit{ white-space:nowrap; }
.footer__credit strong{ color:var(--accent); font-weight:700; }
.footer__bottom nav{ display:flex; flex-wrap:wrap; gap:8px 20px; align-self:flex-start; }
.footer__bottom a{ color:rgba(217,226,234,.72); font-weight:500; text-decoration:none; }
.footer__bottom a:hover{ color:#fff; text-decoration:underline; }
.sticky-cta{ position:fixed; left:0; right:0; bottom:0; z-index:900; display:grid; grid-template-columns:1fr; gap:8px; padding:10px var(--pad) calc(10px + env(safe-area-inset-bottom)); background:#fff; border-top:1px solid var(--border); box-shadow:0 -6px 20px rgba(15,23,32,.08); transform:translateY(110%); transition:transform var(--t-slow); }
.sticky-cta.is-visible{ transform:translateY(0); }
@media (min-width:1024px){
  .sticky-cta{ display:none; }
}
@media (max-width:1023px){
  body{ padding-bottom:72px; }
}
.reveal{ opacity:0; transform:translateY(12px); transition:opacity 240ms cubic-bezier(.2,0,0,1), transform 240ms cubic-bezier(.2,0,0,1); }
.reveal.is-in{ opacity:1; transform:none; }
.no-js .reveal{ opacity:1; transform:none; }
/* Sem JavaScript: respostas do FAQ abertas e mega menu por hover/foco */
.no-js .faq__a{ grid-template-rows:1fr; opacity:1; }
.no-js .nav__item:hover .mega, .no-js .nav__item:focus-within .mega{ opacity:1; visibility:visible; pointer-events:auto; transform:translate(-50%,0); }
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{ animation-duration:.01ms!important; animation-iteration-count:1!important; transition-duration:.01ms!important; scroll-behavior:auto!important; }
  .reveal{ opacity:1; transform:none; }
  .btn:hover,.svc:hover,.aud:hover,.diff:hover{ transform:none; }
}

/* ---------- HUB ---------- */
@media (min-width:768px){
  .carousel__track{ grid-auto-columns:calc((100% - var(--gutter) * 2 - var(--peek)) / 2); }
}
@media (min-width:1024px){
  .carousel__track{ grid-auto-columns:calc((100% - var(--gutter) * 4 - var(--peek)) / 4); }
}
.hero--hub .hero__grid{ padding-bottom:72px; }
@media (min-width:1024px){
  .hero--hub .hero__grid{ padding-block:calc(var(--header-h) + 56px) 96px; }
}
.hero--hub .hero__title{ font-size:var(--fs-h1); max-width:18ch; }
.crumbs ol{ display:flex; flex-wrap:wrap; align-items:center; gap:6px; font-size:14px; font-weight:500; }
.crumbs li{ display:inline-flex; align-items:center; gap:6px; }
.crumbs a{ color:rgba(255,255,255,.72); font-weight:500; text-decoration:none; }
.crumbs a:hover{ color:#fff; text-decoration:underline; }
.crumbs .icon{ width:14px; height:14px; color:rgba(255,255,255,.5); }
.crumbs [aria-current="page"]{ color:#fff; font-weight:600; }
.mega a[aria-current="page"]{ color:var(--primary); }
.answer{ display:grid; gap:28px; }
@media (min-width:1024px){
  .answer{ grid-template-columns:7fr 5fr; gap:56px; align-items:start; }
}
.answer__text{ font-size:var(--fs-body-lg); line-height:1.7; padding:24px 28px; border-left:4px solid var(--accent); border-radius:var(--r-sm); background:var(--surface-alt); }
.answer__text strong{ color:var(--text); }
.facts{ display:grid; gap:0; border:1px solid var(--border); border-radius:var(--r-md); overflow:hidden; }
.facts div{ display:grid; grid-template-columns:132px 1fr; gap:12px; padding:14px 18px; font-size:15px; }
.facts div + div{ border-top:1px solid var(--border); }
.facts dt{ display:flex; align-items:center; gap:8px; font-weight:700; color:var(--text); }
.facts dt .icon{ width:16px; height:16px; color:var(--primary); }
.facts dd{ margin:0; color:var(--text-muted); }
.hub-grid{ display:grid; gap:var(--gutter); }
@media (min-width:768px){
  .hub-grid{ grid-template-columns:repeat(3,1fr); }
}
@media (min-width:1024px){
  .hub-grid{ grid-template-columns:repeat(3,1fr); }
}
.hub-grid .svc__media{ display:block; height:250px; aspect-ratio:auto; }
.svc__photo{ position:absolute; right:12px; top:12px; z-index:1; display:inline-flex; gap:6px; align-items:center; padding:4px 8px; border-radius:var(--r-xs); background:rgba(15,23,32,.45); font-size:11px; font-weight:600; color:rgba(255,255,255,.8); }
.svc__media img ~ .svc__photo{ display:none; }
.svc__icon{ position:relative; margin-top:-52px; z-index:2; width:48px; height:48px; border-radius:12px; background:#fff; color:var(--primary); box-shadow:var(--sh-sm); }
.hub-grid .svc__body{ padding-top:0; }
.hub-grid .svc__body > .svc__icon{ margin-bottom:4px; }
.hub-grid .svc p{ -webkit-line-clamp:2; }
.svc--cta{ justify-content:center; gap:14px; padding:32px 28px; background:linear-gradient(150deg,#154E7B 0%,#12324F 55%,#0F1720 100%); border-color:transparent; color:#fff; }
.svc--cta:hover{ border-color:transparent; }
.svc--cta h3{ color:#fff; }
.svc--cta p{ display:block; color:rgba(255,255,255,.74); -webkit-line-clamp:unset; overflow:visible; }
.svc--cta .badge{ align-self:flex-start; }
.cmp{ overflow-x:auto; border:1px solid var(--border); border-radius:var(--r-md); background:#fff; -webkit-overflow-scrolling:touch; }
.cmp:focus-visible{ outline:3px solid var(--focus); outline-offset:2px; }
.cmp table{ width:100%; min-width:820px; border-collapse:collapse; font-size:15px; }
.cmp caption{ text-align:left; padding:14px 16px; font-size:14px; color:var(--text-muted); caption-side:bottom; border-top:1px solid var(--border); }
.cmp th,.cmp td{ padding:14px 16px; text-align:left; vertical-align:top; line-height:1.5; }
.cmp thead th{ background:var(--secondary); color:#fff; font-size:13px; font-weight:700; letter-spacing:.04em; text-transform:uppercase; }
.cmp tbody tr:nth-child(even){ background:var(--surface-alt); }
.cmp tbody tr:hover{ background:var(--primary-soft); }
.cmp tbody th{ font-weight:700; color:var(--text); min-width:190px; }
.cmp tbody th a{ display:flex; align-items:center; gap:4px; margin-top:4px; font-size:14px; font-weight:600; }
.cmp tbody th a .icon{ flex:none; }
.cmp td{ color:var(--text-muted); }
.cmp-hint{ display:none; margin-top:10px; font-size:13px; color:var(--text-muted); }
@media (max-width:899px){
  .cmp-hint{ display:flex; align-items:center; gap:6px; }
}
.feat{ display:grid; gap:var(--gutter); }
@media (min-width:768px){
  .feat{ grid-template-columns:repeat(2,1fr); }
}
@media (min-width:1024px){
  .feat{ grid-template-columns:repeat(3,1fr); }
}
.feat li{ display:flex; flex-direction:column; gap:12px; padding:28px 24px; background:#fff; border:1px solid var(--border); border-radius:var(--r-md); }
.feat h3{ font-size:var(--fs-h6); line-height:1.35; }
.feat p{ font-size:15px; color:var(--text-muted); }
.ig{ display:grid; gap:48px; }
.ig__block{ display:grid; gap:20px; }
.ig__block > h3{ font-size:var(--fs-h4); }
.ig__block > p{ color:var(--text-muted); }
.ig__cols{ display:grid; gap:var(--gutter); }
@media (min-width:768px){
  .ig__cols{ grid-template-columns:repeat(2,1fr); }
}
.ig__item{ display:flex; gap:14px; padding:20px 22px; background:#fff; border:1px solid var(--border); border-radius:var(--r-md); }
.ig__item h4{ font-size:16px; font-weight:700; line-height:1.35; }
.ig__item p{ margin-top:4px; font-size:15px; color:var(--text-muted); }
.ig__item .icon-box{ width:40px; height:40px; }
.ig__item--warn .icon-box{ background:var(--error-soft); color:var(--error); }
.ig__item--ok .icon-box{ background:var(--success-soft); color:var(--success); }
.testi{ display:grid; gap:var(--gutter); }
@media (min-width:768px){
  .testi{ grid-template-columns:repeat(3,1fr); }
}
.testi li{ position:relative; display:flex; flex-direction:column; gap:16px; padding:28px 24px 24px; background:#fff; border:1px solid var(--border); border-radius:var(--r-lg); box-shadow:var(--sh-xs); transition:box-shadow var(--t-base); }
.testi li:hover{ box-shadow:var(--sh-md); }
.testi__top{ display:flex; align-items:center; justify-content:space-between; gap:12px; }
.testi__stars{ display:flex; gap:2px; color:var(--accent); }
.testi__stars .icon{ width:18px; height:18px; fill:currentColor; }
.testi__src{ display:inline-flex; align-items:center; gap:4px; font-size:12px; font-weight:600; color:var(--text-muted); }
.testi__src .icon{ color:var(--success); }
.testi blockquote{ margin:0; flex:1; font-size:16px; line-height:1.6; color:var(--text); }
.testi footer{ display:flex; align-items:center; gap:12px; padding-top:16px; border-top:1px solid var(--border); font-size:14px; }
.testi footer strong{ display:block; font-size:15px; }
.testi__meta{ display:block; margin-top:2px; font-size:13px; color:var(--text-muted); }
.testi__avatar{ display:flex; align-items:center; justify-content:center; flex:none; width:48px; height:48px; border-radius:50%; background:var(--primary-soft); color:var(--primary); font-family:var(--font-heading); font-weight:700; }
.testi__avatar{ position:relative; overflow:hidden; border:2px dashed var(--border-hover); background:var(--primary-soft); flex-direction:column; gap:0; line-height:1; font-size:13px; }
.testi__avatar .icon{ width:14px; height:14px; margin-bottom:1px; }
.testi__photo{ width:48px; height:48px; border-radius:50%; object-fit:cover; flex:none; }
.testi__date{ display:block; margin-top:2px; font-size:12px; color:var(--text-muted); opacity:.85; }
.testi__quote{ flex:none; width:28px; height:28px; fill:var(--primary-soft); stroke:none; }
.dots{ display:none; }
@media (max-width:767px){
  .testi{ display:grid; grid-auto-flow:column; grid-auto-columns:88%; grid-template-columns:none; gap:12px; overflow-x:auto; scroll-snap-type:x mandatory; scrollbar-width:none; -webkit-overflow-scrolling:touch; padding-bottom:4px; }
  .testi::-webkit-scrollbar{ display:none; }
  .testi > li{ scroll-snap-align:start; }
  .testi > li:last-child{ scroll-snap-align:end; }
  .testi:focus-visible{ outline:3px solid var(--focus); outline-offset:4px; }
  .dots{ display:flex; justify-content:center; gap:8px; margin-top:18px; }
  .dots span{ width:8px; height:8px; border-radius:999px; background:var(--border-hover); transition:width var(--t-base), background-color var(--t-base); }
  .dots span.is-active{ width:24px; background:var(--primary); }
}
.testi__note{ display:flex; align-items:center; gap:8px; margin-top:16px; font-size:13px; color:var(--text-muted); }
.posts{ display:grid; gap:var(--gutter); }
@media (min-width:768px){
  .posts{ grid-template-columns:repeat(3,1fr); }
}
.post{ display:flex; flex-direction:column; background:#fff; border:1px solid var(--border); border-radius:var(--r-md); overflow:hidden; }
.post__media{ aspect-ratio:16/9; background:linear-gradient(145deg,#EAF3FA,#D9E2EA); display:grid; place-items:center; color:var(--primary); }
.post__media .icon{ width:40px; height:40px; stroke-width:1.25; }
.post__body{ display:flex; flex-direction:column; gap:10px; flex:1; padding:20px; }
.post__body .badge{ align-self:flex-start; }
.post__body h3{ font-size:var(--fs-h6); line-height:1.35; }
.post__body p{ font-size:15px; color:var(--text-muted); display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orient:vertical; overflow:hidden; }
.post__soon{ margin-top:auto; padding-top:8px; font-size:14px; font-weight:700; color:var(--text-muted); }

/* ---------- SERVICO ---------- */
.hero__img-hint--inline{ position:static; max-width:none; width:fit-content; margin-top:4px; }
.hero__media:has(img) ~ .container .hero__img-hint--inline{ display:none; }
.testi .ph{ white-space:normal; }
.testi > li{ min-width:0; }
.hero--svc .hero__grid{ padding-bottom:64px; }
@media (min-width:1024px){
  .hero--svc .hero__grid{ grid-template-columns:minmax(0,820px); padding-block:calc(var(--header-h) + 48px) 88px; }
  .hero--svc .hero__content{ padding-top:24px; }
}
.hero--svc .hero__title{ max-width:20ch; }
.hero--svc .btn-row{ margin-top:24px; }
.proofs{ display:grid; grid-template-columns:repeat(3,1fr); gap:10px; }
.proofs li{ display:flex; flex-direction:column; gap:8px; padding:14px; border:1px solid rgba(255,255,255,.14); border-radius:var(--r-md); background:rgba(255,255,255,.05); font-size:14px; font-weight:600; line-height:1.35; color:#fff; }
.proofs .icon{ width:22px; height:22px; color:var(--accent); }
@media (max-width:479px){
  .proofs{ grid-template-columns:1fr; }
  .proofs li{ flex-direction:row; align-items:center; }
}
.form-card__head .h-form{ font-family:var(--font-heading); font-size:var(--fs-h6); font-weight:700; line-height:1.3; color:#fff; }
.lead-def{ max-width:none; font-size:var(--fs-body-lg); line-height:1.75; }
.lead-def + .lead-def{ margin-top:16px; }
.types{ display:grid; gap:var(--gutter); margin-top:36px; }
@media (min-width:768px){
  .types{ grid-template-columns:repeat(3,1fr); }
}
.types article{ display:grid; gap:10px; align-content:start; padding:24px; background:#fff; border:1px solid var(--border); border-top:4px solid var(--primary); border-radius:var(--r-md); }
.types h3{ font-size:var(--fs-h6); line-height:1.35; }
.types p{ font-size:15px; color:var(--text-muted); }
.types .tag{ align-self:start; justify-self:start; font-size:12px; font-weight:700; letter-spacing:.06em; text-transform:uppercase; color:var(--primary-active); }
.signs{ display:grid; gap:var(--gutter); }
@media (min-width:768px){
  .signs{ grid-template-columns:repeat(2,1fr); }
}
@media (min-width:1024px){
  .signs{ grid-template-columns:repeat(3,1fr); }
}
.signs li{ display:flex; gap:16px; align-items:flex-start; padding:22px; background:#fff; border:1px solid var(--border); border-radius:var(--r-md); }
.signs h3{ font-size:16px; line-height:1.35; }
.signs p{ margin-top:4px; font-size:15px; color:var(--text-muted); }
.tl{ display:grid; gap:var(--gutter); counter-reset:tl; }
@media (min-width:768px){
  .tl{ grid-template-columns:1fr; } /* 5 etapas: 1 coluna no tablet para não sobrar card isolado */
}
@media (min-width:1024px){
  .tl{ grid-template-columns:repeat(5,1fr); }
}
.tl li{ position:relative; display:flex; flex-direction:column; gap:10px; padding:24px 20px; background:#fff; border:1px solid var(--border); border-radius:var(--r-md); }
.tl__n{ display:grid; place-items:center; width:40px; height:40px; border-radius:999px; background:var(--accent); color:var(--text); font-family:var(--font-heading); font-weight:700; }
.tl h3{ font-size:16px; line-height:1.35; }
.tl p{ font-size:14px; color:var(--text-muted); }
.tl__when{ margin-top:auto; display:inline-flex; align-items:center; gap:6px; align-self:flex-start; padding:4px 10px; border-radius:var(--r-pill); background:var(--primary-soft); color:var(--primary-active); font-size:12px; font-weight:700; }
.tl__when .icon{ width:14px; height:14px; }
.tl-note{ display:flex; align-items:center; gap:8px; margin-top:16px; font-size:14px; color:var(--text-muted); }
.incl{ display:grid; gap:var(--gutter); }
@media (min-width:768px){
  .incl{ grid-template-columns:repeat(2,1fr); }
}
.incl__col{ padding:28px; border-radius:var(--r-lg); border:1px solid var(--border); background:#fff; }
.incl__col h3{ display:flex; align-items:center; gap:10px; font-size:var(--fs-h6); margin-bottom:16px; }
.incl__col ul{ display:grid; gap:12px; }
.incl__col li{ display:flex; gap:10px; font-size:15px; line-height:1.5; }
.incl__col li .icon{ width:18px; height:18px; margin-top:2px; flex:none; }
.incl__col--yes h3 .icon,.incl__col--yes li .icon{ color:var(--success); }
.incl__col--no{ background:var(--surface-alt); }
.incl__col--no h3 .icon,.incl__col--no li .icon{ color:var(--error); }
.price-note{ display:flex; gap:12px; margin-top:20px; padding:18px 20px; border-left:4px solid var(--accent); border-radius:var(--r-sm); background:var(--accent-soft); font-size:15px; }
.price-note .icon{ color:var(--accent-ink); margin-top:2px; }
.check{ display:grid; gap:10px; }
@media (min-width:768px){
  .check{ grid-template-columns:repeat(2,1fr); }
}
.check li{ display:flex; gap:12px; align-items:flex-start; padding:16px 18px; background:#fff; border:1px solid var(--border); border-radius:var(--r-sm); font-size:15px; }
.check li::before{ content:""; flex:none; width:20px; height:20px; margin-top:1px; border:2px solid var(--primary); border-radius:5px; }
.ig h5{ font-size:14px; font-weight:700; letter-spacing:.04em; text-transform:uppercase; color:var(--primary-active); margin-top:4px; }
.support{ display:grid; gap:16px; padding:28px; border:1px solid var(--border); border-radius:var(--r-lg); background:var(--surface-alt); }
@media (min-width:1024px){
  .support{ grid-template-columns:4fr 8fr; align-items:center; gap:40px; }
}
.support h2{ font-size:var(--fs-h5); }
.support ul{ display:grid; gap:8px; }
.support li{ display:flex; align-items:center; justify-content:space-between; gap:12px; padding:14px 16px; background:#fff; border:1px solid var(--border); border-radius:var(--r-sm); font-size:15px; font-weight:600; }
.support li .badge{ flex:none; }

/* ---------- SOBRE ---------- */
.hero--about .hero__grid{ grid-template-columns:1fr; padding-bottom:72px; }
@media (min-width:1024px){
  .hero--about .hero__grid{ grid-template-columns:1fr; padding-block:calc(var(--header-h) + 56px) 88px; }
}
.hero--about .hero__title{ max-width:none; }
.hero--about .hero__lead{ max-width:64ch; }
.entity{ display:grid; gap:28px; }
@media (min-width:1024px){
  .entity{ grid-template-columns:7fr 5fr; gap:56px; align-items:start; }
}
.entity__def{ font-size:var(--fs-body-lg); line-height:1.75; }
.entity__def + .entity__def{ margin-top:16px; }
.idcard{ display:grid; border:1px solid var(--border); border-radius:var(--r-md); overflow:hidden; }
.idcard__head{ display:flex; align-items:center; gap:14px; padding:18px 20px; background:var(--secondary); color:#fff; }
.idcard__head img{ height:32px; width:auto; }
.idcard dl{ display:grid; margin:0; }
.idcard dl div{ display:grid; grid-template-columns:140px 1fr; gap:12px; padding:12px 20px; font-size:14px; }
.idcard dl div + div{ border-top:1px solid var(--border); }
.idcard dt{ font-weight:700; }
.idcard dd{ margin:0; color:var(--text-muted); }
.timeline{ display:grid; gap:var(--gutter); }
@media (min-width:768px){
  .timeline{ grid-template-columns:repeat(2,1fr); }
}
@media (min-width:1024px){
  .timeline{ grid-template-columns:repeat(4,1fr); }
}
.timeline li{ position:relative; display:grid; gap:10px; padding:24px 22px; background:#fff; border:1px solid var(--border); border-top:4px solid var(--accent); border-radius:var(--r-md); }
.timeline__year{ font-family:var(--font-heading); font-size:var(--fs-h4); font-weight:700; color:var(--primary-active); }
.timeline h3{ font-size:16px; line-height:1.35; }
.timeline p{ font-size:14px; color:var(--text-muted); }
.team{ display:grid; gap:var(--gutter); }
@media (min-width:768px){
  .team{ grid-template-columns:repeat(3,1fr); }
}
.team li{ display:grid; gap:14px; justify-items:center; text-align:center; padding:28px 24px; background:#fff; border:1px solid var(--border); border-radius:var(--r-lg); }
.team__photo{ display:grid; place-items:center; width:112px; height:112px; border-radius:50%; background:var(--primary-soft); border:2px dashed var(--border-hover); color:var(--primary); }
.team__photo .icon{ width:28px; height:28px; }
.team h3{ font-size:var(--fs-h6); }
.team__role{ font-size:14px; font-weight:600; color:var(--primary-active); }
.team dl{ display:grid; gap:6px; margin:0; font-size:14px; text-align:left; width:100%; }
.team dl div{ display:grid; grid-template-columns:96px 1fr; gap:8px; }
.team dt{ font-weight:700; color:var(--text); }
.team dd{ margin:0; color:var(--text-muted); }
.team .ph{ white-space:normal; }
.team__link{ display:inline-flex; align-items:center; gap:6px; font-size:14px; }
.mvv{ display:grid; gap:var(--gutter); }
@media (min-width:768px){
  .mvv{ grid-template-columns:repeat(3,1fr); }
}
.mvv article{ display:grid; gap:12px; align-content:start; padding:28px 24px; background:#fff; border:1px solid var(--border); border-radius:var(--r-md); }
.mvv h3{ font-size:var(--fs-h5); }
.mvv p,.mvv li{ font-size:15px; color:var(--text-muted); }
.mvv ul{ display:grid; gap:8px; }
.mvv li{ display:flex; gap:8px; }
.mvv li .icon{ width:16px; height:16px; margin-top:3px; color:var(--primary); flex:none; }
.cats{ display:grid; gap:var(--gutter); }
@media (min-width:768px){
  .cats{ grid-template-columns:repeat(3,1fr); }
}
.cats article{ display:flex; flex-direction:column; gap:12px; padding:28px 24px; background:#fff; border:1px solid var(--border); border-radius:var(--r-md); }
.cats h3{ font-size:var(--fs-h5); }
.cats p{ font-size:15px; color:var(--text-muted); }
.cats ul{ display:flex; flex-wrap:wrap; gap:6px; }
.cats ul li{ font-size:13px; font-weight:600; padding:4px 10px; border-radius:var(--r-pill); background:var(--surface-alt); color:var(--text-muted); }
.cats .link-arrow{ margin-top:auto; padding-top:8px; }
.nums{ display:grid; grid-template-columns:repeat(2,1fr); gap:var(--gutter); }
@media (min-width:1024px){
  .nums{ grid-template-columns:repeat(4,1fr); }
}
.nums li{ display:grid; gap:6px; padding:28px 20px; border-radius:var(--r-md); background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.12); text-align:center; }
.nums strong{ font-family:var(--font-heading); font-size:clamp(2.25rem,4vw,3.25rem); line-height:1; color:#fff; }
.nums span{ font-size:14px; color:rgba(255,255,255,.74); }
.certs{ display:grid; grid-template-columns:repeat(2,1fr); gap:var(--gutter); }
@media (min-width:1024px){
  .certs{ grid-template-columns:repeat(4,1fr); }
}
.certs li{ display:grid; gap:10px; justify-items:center; text-align:center; padding:24px 18px; border:1px dashed var(--border-hover); border-radius:var(--r-md); background:#fff; font-size:14px; color:var(--text-muted); }
.certs li strong{ color:var(--text); font-size:15px; }
.certs .ph{ white-space:normal; }
.where{ display:grid; gap:var(--gutter); }
@media (min-width:1024px){
  .where{ grid-template-columns:5fr 7fr; }
}
.nap{ display:grid; gap:14px; align-content:start; padding:28px; border-radius:var(--r-lg); background:var(--surface-dark); color:#fff; }
.nap h3{ font-size:var(--fs-h5); }
.nap address{ font-style:normal; display:grid; gap:12px; font-size:15px; color:rgba(255,255,255,.8); }
.nap address > span,.nap address > a{ display:flex; gap:10px; align-items:flex-start; color:inherit; text-decoration:none; }
.nap address a strong{ color:#fff; }
.nap .icon{ width:18px; height:18px; margin-top:2px; color:var(--accent); flex:none; }
.nap .ph{ white-space:normal; }
.profiles{ display:grid; gap:10px; }
@media (min-width:768px){
  .profiles{ grid-template-columns:repeat(2,1fr); }
}
.profiles li{ display:flex; align-items:center; gap:14px; padding:16px 18px; background:#fff; border:1px solid var(--border); border-radius:var(--r-md); }
.profiles li div{ display:grid; gap:2px; min-width:0; }
.profiles strong{ font-size:15px; }
.profiles span{ font-size:13px; color:var(--text-muted); }
.profiles .ph{ white-space:normal; }
.area-chips{ display:flex; flex-wrap:wrap; gap:8px; }
.area-chips a, .area-chips li > span{ display:inline-flex; align-items:center; min-height:40px; padding:0 16px; border:1px solid var(--border-hover); border-radius:var(--r-pill); background:#fff; color:var(--text); font-size:15px; font-weight:600; text-decoration:none; }
.area-chips a:hover{ border-color:var(--primary); color:var(--primary); }
.where--single{ grid-template-columns:1fr; max-width:640px; }
.where__note{ display:flex; gap:8px; align-items:center; margin-top:12px; font-size:13px; color:var(--text-muted); }

/* ---------- CONTATO ---------- */
.contact{ display:grid; gap:40px; align-items:start; }
@media (min-width:1024px){
  .contact{ grid-template-columns:5fr 7fr; gap:56px; }
}
.contact .form-card{ justify-self:stretch; max-width:none; }
.contact__side{ display:grid; gap:20px; }
.channels{ display:grid; grid-template-columns:repeat(2,1fr); gap:var(--gutter); }
.channels li{ display:grid; gap:10px; align-content:start; padding:22px; background:#fff; border:1px solid var(--border); border-radius:var(--r-md); }
.channels h3{ font-size:16px; }
.channels p{ font-size:14px; color:var(--text-muted); overflow-wrap:anywhere; }
.channels a{ font-size:14px; }
.channels .ph{ white-space:normal; }
@media (max-width:479px){
  .channels{ grid-template-columns:1fr; }
}
.hours{ display:grid; gap:0; border:1px solid var(--border); border-radius:var(--r-md); overflow:hidden; background:#fff; }
.hours div{ display:flex; justify-content:space-between; gap:16px; padding:12px 18px; font-size:15px; }
.hours div + div{ border-top:1px solid var(--border); }
.hours dt{ font-weight:600; }
.hours dd{ margin:0; color:var(--text-muted); text-align:right; }
.sla{ display:flex; gap:12px; padding:16px 18px; border-left:4px solid var(--primary); border-radius:var(--r-sm); background:var(--surface-blue); font-size:15px; }
.sla .icon{ color:var(--primary); margin-top:2px; }
.sla .ph{ white-space:normal; }
.mapbox{ position:relative; overflow:hidden; border-radius:var(--r-xl); border:1px solid var(--border); background:linear-gradient(135deg,#132537 0%,#0F1720 70%); aspect-ratio:16/7; min-height:320px; }
.mapbox .cmap{ position:absolute; inset:0; width:100%; height:100%; opacity:.55; }
.mapbox__cta{ position:absolute; inset:0; display:grid; place-content:center; justify-items:center; gap:14px; padding:24px; text-align:center; color:#fff; background:radial-gradient(50% 60% at 50% 50%, rgba(15,23,32,.35), rgba(15,23,32,.75)); }
.mapbox__cta p{ max-width:44ch; font-size:15px; color:rgba(255,255,255,.8); }
.mapbox iframe{ position:absolute; inset:0; width:100%; height:100%; border:0; }
.mapbox--live{ background:var(--surface-alt); aspect-ratio:16/7; }
.mapbox.is-loaded .mapbox__cta,.mapbox.is-loaded .cmap{ display:none; }
@media (max-width:767px){
  .mapbox{ aspect-ratio:4/5; }
}

/* ---------- BLOG-HUB ---------- */
.hero--blog .hero__grid{ grid-template-columns:1fr; padding-bottom:64px; }
@media (min-width:1024px){
  .hero--blog .hero__grid{ grid-template-columns:1fr; padding-block:calc(var(--header-h) + 48px) 80px; }
}
.hero--blog .hero__title{ max-width:none; }
.hero--blog .hero__lead{ max-width:68ch; }
.hero--blog .hero__lead a{ color:var(--accent); }
.post-meta{ display:flex; flex-wrap:wrap; align-items:center; gap:6px 14px; font-size:13px; color:var(--text-muted); }
.post-meta span{ display:inline-flex; align-items:center; gap:5px; }
.post-meta .icon{ width:14px; height:14px; }
.post-meta .ph{ white-space:nowrap; }
.bfilter{ display:flex; flex-wrap:wrap; align-items:center; gap:10px; margin-bottom:28px; }
.bfilter__label{ margin-right:6px; font-size:var(--fs-caption); font-weight:700; letter-spacing:.08em; text-transform:uppercase; color:var(--text-muted); }
.bfilter button,.bfilter a{ display:inline-flex; align-items:center; min-height:42px; padding:0 18px; border:1px solid var(--border-hover); border-radius:var(--r-xs); background:#fff; color:var(--text); font:600 14px var(--font-body); letter-spacing:.04em; text-transform:uppercase; text-decoration:none; cursor:pointer; transition:border-color var(--t-fast), color var(--t-fast); }
.bfilter button:hover,.bfilter a:hover{ border-color:var(--primary); color:var(--primary); }
.bfilter [aria-pressed="true"],.bfilter [aria-current="page"]{ border-color:var(--accent); color:var(--accent-ink); background:var(--accent-soft); }
.bcard[hidden]{ display:none; }
.blog-empty{ display:flex; gap:16px; align-items:center; padding:24px; border:1px dashed var(--border-hover); border-radius:var(--r-md); background:var(--surface-alt); }
.blog-empty p{ font-size:16px; }
.blog-empty[hidden]{ display:none; }
.bgrid{ display:grid; gap:var(--gutter); }
@media (min-width:768px){
  .bgrid{ grid-template-columns:repeat(2,1fr); }
}
@media (min-width:1024px){
  .bgrid{ grid-template-columns:repeat(3,1fr); }
}
.bcard{ position:relative; display:flex; flex-direction:column; background:#fff; border:1px solid var(--border); border-radius:var(--r-md); overflow:hidden; transition:transform var(--t-base), box-shadow var(--t-base); }
.bcard:hover{ transform:translateY(-3px); box-shadow:var(--sh-md); }
.bcard:focus-within{ outline:3px solid var(--focus); outline-offset:2px; }
.bcard__media{ position:relative; height:250px; display:grid; place-items:center; color:rgba(255,255,255,.85); }
.bcard__media--emergencias{ background:linear-gradient(145deg,#C26A12,#8A4A0C); }
.bcard__media--diagnostico{ background:linear-gradient(145deg,#1D6AA9,#154E7B); }
.bcard__media--prevencao{ background:linear-gradient(145deg,#18794E,#0F5A39); }
.bcard__media--condominios-empresas{ background:linear-gradient(145deg,#2A3B4C,#0F1720); }
.bcard__media .icon{ width:40px; height:40px; stroke-width:1.25; }
.bcard__photo{ position:absolute; right:10px; top:10px; display:inline-flex; gap:5px; align-items:center; padding:3px 8px; border-radius:var(--r-xs); background:rgba(15,23,32,.45); font-size:11px; font-weight:600; color:rgba(255,255,255,.85); }
.bcard__photo .icon{ width:13px!important; height:13px!important; stroke-width:1.75!important; }
.bcard__body{ display:flex; flex-direction:column; gap:10px; flex:1; padding:20px; }
.bcard__body .badge{ align-self:flex-start; }
.bcard h3{ font-size:var(--fs-h6); line-height:1.35; }
.bcard h3 a{ color:var(--text); text-decoration:none; }
.bcard h3 a::after{ content:""; position:absolute; inset:0; }
.bcard h3 a:focus-visible{ outline:none; }
.bcard:hover h3 a{ color:var(--primary); }
.bcard p{ font-size:15px; color:var(--text-muted); display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
.bcard .post-meta--split{ display:grid; grid-template-columns:1fr auto; gap:6px 12px; }
.bcard .post-meta--split > strong{ grid-column:1 / -1; }
.bcard .post-meta--split > span:last-child{ justify-self:end; }
.bcard .post-meta{ margin-top:auto; padding-top:12px; border-top:1px solid var(--border); }
.bcard .ph{ white-space:normal; }
.pager{ display:flex; flex-wrap:wrap; justify-content:center; align-items:center; gap:6px; margin-top:40px; }
.pager a,.pager span{ display:inline-grid; place-items:center; min-width:44px; height:44px; padding:0 12px; border:1px solid var(--border); border-radius:var(--r-sm); background:#fff; color:var(--text); font-weight:600; text-decoration:none; }
.pager a:hover{ border-color:var(--primary); color:var(--primary); }
.pager [aria-current="page"]{ background:var(--primary); border-color:var(--primary); color:#fff; }
.pager .is-disabled{ color:var(--text-muted); opacity:.5; }
.pager .gap{ border:0; background:none; min-width:24px; }
.cats-grid{ display:grid; gap:var(--gutter); }
@media (min-width:768px){
  .cats-grid{ grid-template-columns:repeat(2,1fr); }
}
@media (min-width:1024px){
  .cats-grid{ grid-template-columns:repeat(4,1fr); }
}
.cat-card{ position:relative; display:flex; flex-direction:column; gap:12px; padding:24px; background:#fff; border:1px solid var(--border); border-radius:var(--r-md); transition:border-color var(--t-base); }
.cat-card:hover{ border-color:var(--primary); }
.cat-card h3{ font-size:var(--fs-h6); }
.cat-card h3 a{ color:var(--text); text-decoration:none; }
.cat-card h3 a::after{ content:""; position:absolute; inset:0; }
.cat-card p{ font-size:14px; color:var(--text-muted); }
.blog-note{ display:flex; gap:10px; align-items:center; margin:0 auto 24px; padding:12px 16px; max-width:var(--container); border:1px dashed var(--accent); border-radius:var(--r-sm); background:var(--accent-soft); color:var(--accent-ink); font-size:14px; font-weight:600; }

/* ---------- ARTIGO ---------- */
.hero--post .hero__grid{ grid-template-columns:1fr; padding-bottom:56px; }
@media (min-width:1024px){
  .hero--post .hero__grid{ grid-template-columns:1fr; padding-block:calc(var(--header-h) + 44px) 72px; }
}
.hero--post .hero__title{ max-width:22ch; font-size:var(--fs-h2); }
.byline{ display:flex; flex-wrap:wrap; align-items:center; gap:12px 20px; font-size:14px; color:rgba(255,255,255,.8); }
.byline__author{ display:flex; align-items:center; gap:12px; color:#fff; text-decoration:none; }
.byline__author:hover strong{ text-decoration:underline; }
.byline__photo{ display:grid; place-items:center; width:44px; height:44px; border-radius:50%; background:rgba(255,255,255,.12); border:2px dashed rgba(255,255,255,.35); }
.byline__photo .icon{ width:16px; height:16px; }
.byline__author span{ display:grid; line-height:1.3; }
.byline__author small{ font-size:13px; color:rgba(255,255,255,.7); }
.byline__meta{ display:inline-flex; align-items:center; gap:6px; }
.byline__meta .icon{ width:14px; height:14px; color:var(--accent); }
.byline .ph{ white-space:nowrap; border-color:rgba(255,255,255,.4); }
.post-layout{ display:grid; gap:40px; }
@media (min-width:1024px){
  .post-layout{ grid-template-columns:minmax(0,8fr) 3fr; gap:56px; align-items:start; }
}
.post__main{ min-width:0; max-width:72ch; }
.post__main > * + *{ margin-top:20px; }
.post__main p,.post__main li{ font-size:var(--fs-body-lg); line-height:1.75; }
.post__main h2{ font-size:var(--fs-h3); margin-top:56px; scroll-margin-top:calc(var(--header-h) + 24px); }
.post__main h3{ font-size:var(--fs-h5); margin-top:36px; }
.post__main h4{ font-size:var(--fs-h6); margin-top:24px; }
.post__main ul:not([class]){ list-style:disc; padding-left:24px; }
.post__main ol:not([class]){ list-style:decimal; padding-left:24px; }
.post__main ul:not([class]) li + li,.post__main ol:not([class]) li + li{ margin-top:8px; }
.post__main ::marker{ color:var(--primary); }
.post__main a:not(.btn){ font-weight:600; }
.lead-answer{ font-size:var(--fs-body-lg); line-height:1.75; padding:22px 26px; border-left:4px solid var(--accent); border-radius:var(--r-sm); background:var(--surface-alt); }
.h2-answer{ font-weight:600; color:var(--text); }
.summary{ padding:24px 26px; border:1px solid var(--border); border-radius:var(--r-md); background:#fff; box-shadow:var(--sh-xs); }
.summary h2{ margin:0 0 14px; font-size:var(--fs-h6); display:flex; align-items:center; gap:8px; }
.summary h2 .icon{ color:var(--primary); }
.summary ul{ display:grid; gap:10px; }
.summary li{ display:flex; gap:10px; font-size:16px !important; line-height:1.55 !important; }
.summary li .icon{ width:18px; height:18px; margin-top:3px; color:var(--success); flex:none; }
.toc{ padding:18px; border:1px solid var(--border); border-radius:var(--r-md); background:var(--surface-alt); }
.toc h2{ font-family:var(--font-body); font-size:var(--fs-caption); font-weight:700; letter-spacing:.08em; text-transform:uppercase; color:var(--text-muted); margin-bottom:10px; }
.toc ol{ display:grid; gap:2px; counter-reset:toc; }
.toc a{ display:flex; gap:8px; padding:7px 8px; border-radius:var(--r-xs); color:var(--text); font-size:14px; font-weight:500; line-height:1.4; text-decoration:none; }
.toc a::before{ counter-increment:toc; content:counter(toc); flex:none; width:20px; color:var(--primary); font-weight:700; }
.toc a:hover,.toc a.is-active{ background:#fff; color:var(--primary); }
.side-sticky{ display:grid; gap:16px; }
@media (min-width:1024px){
  .post__side{ align-self:stretch; }
  .side-sticky{ position:sticky; top:calc(var(--header-h) + 24px); }
}
@media (max-width:1023px){
  .post__side{ order:-1; }
}
.side-cta{ display:grid; gap:12px; padding:24px 22px; border-radius:var(--r-xl); background:linear-gradient(160deg,#EAF3FA 0%,#D6E8F5 100%); border:1px solid #CFE0EE; color:var(--text); }
.side-cta__title{ font-family:var(--font-heading); font-size:var(--fs-h5); font-weight:700; line-height:1.25; color:var(--secondary); }
.side-cta p{ font-size:15px; line-height:1.55; color:#34495C; }
.side-cta__btn{ border-radius:var(--r-pill); min-height:52px; margin-top:4px; }
.side-cta__link{ display:inline-flex; align-items:center; justify-content:center; gap:6px; font-size:14px; font-weight:700; text-decoration:none; }
@media (max-width:1023px){
  .side-cta{ display:none; }
}
.rel-head{ display:flex; flex-wrap:wrap; align-items:flex-end; justify-content:space-between; gap:16px 24px; margin-bottom:32px; }
.section--alt .blog-empty{ background:#fff; }
.blog-empty[hidden],.bgrid:empty{ display:none; }
.dx{ overflow-x:auto; border:1px solid var(--border); border-radius:var(--r-md); }
.dx table{ width:100%; min-width:640px; border-collapse:collapse; font-size:15px; }
.dx caption{ caption-side:bottom; text-align:left; padding:12px 16px; font-size:13px; color:var(--text-muted); border-top:1px solid var(--border); }
.dx th,.dx td{ padding:14px 16px; text-align:left; vertical-align:top; line-height:1.5; }
.dx thead th{ background:var(--secondary); color:#fff; font-size:13px; letter-spacing:.04em; text-transform:uppercase; }
.dx tbody tr:nth-child(even){ background:var(--surface-alt); }
.dx tbody th{ font-weight:700; min-width:170px; }
.dx td{ color:var(--text-muted); }
.lvl{ display:inline-flex; align-items:center; gap:6px; padding:3px 10px; border-radius:var(--r-pill); font-size:12px; font-weight:700; white-space:nowrap; }
.lvl--low{ background:var(--success-soft); color:#125E3E; }
.lvl--mid{ background:var(--accent-soft); color:var(--accent-ink); }
.lvl--high{ background:var(--error-soft); color:#8A1A12; }
.steps2{ display:grid; gap:12px; counter-reset:st; }
.steps2 li{ position:relative; display:grid; grid-template-columns:40px 1fr; gap:14px; padding:18px; border:1px solid var(--border); border-radius:var(--r-md); background:#fff; font-size:16px !important; }
.steps2 li::before{ counter-increment:st; content:counter(st); display:grid; place-items:center; width:36px; height:36px; border-radius:50%; background:var(--accent); font-family:var(--font-heading); font-weight:700; }
.steps2 strong{ display:block; margin-bottom:2px; }
.dodont{ display:grid; gap:var(--gutter); }
@media (min-width:768px){
  .dodont{ grid-template-columns:1fr 1fr; }
}
.dodont > div{ padding:22px; border-radius:var(--r-md); border:1px solid var(--border); }
.dodont h3{ margin:0 0 12px !important; font-size:var(--fs-h6); display:flex; gap:8px; align-items:center; }
.dodont ul{ display:grid; gap:8px; }
.dodont li{ display:flex; gap:8px; font-size:15px !important; line-height:1.5 !important; }
.dodont li .icon{ width:16px; height:16px; margin-top:3px; flex:none; }
.dodont .do h3 .icon,.dodont .do li .icon{ color:var(--success); }
.dodont .dont{ background:var(--surface-alt); }
.dodont .dont h3 .icon,.dodont .dont li .icon{ color:var(--error); }
.ctabox{ display:grid; gap:14px; padding:28px; border-radius:var(--r-lg); background:linear-gradient(150deg,#154E7B 0%,#12324F 55%,#0F1720 100%); color:#fff; }
.ctabox p{ color:rgba(255,255,255,.82); font-size:16px !important; }
.ctabox strong{ font-family:var(--font-heading); font-size:var(--fs-h5); color:#fff; }
.ctabox .btn-row{ margin-top:4px; }
.ctabox a:not(.btn){ color:var(--accent); }
.author{ display:grid; gap:18px; padding:28px; border:1px solid var(--border); border-radius:var(--r-lg); background:var(--surface-alt); }
@media (min-width:768px){
  .author{ grid-template-columns:96px 1fr; align-items:start; }
}
.author__photo{ display:grid; place-items:center; width:96px; height:96px; border-radius:50%; background:var(--primary-soft); border:2px dashed var(--border-hover); color:var(--primary); }
.author h2{ margin:0 !important; font-size:var(--fs-h6); }
.author__role{ font-size:14px; font-weight:600; color:var(--primary-active); }
.author p{ font-size:15px !important; color:var(--text-muted); margin-top:10px; }
.author .ph{ white-space:normal; }
.author__links{ display:flex; flex-wrap:wrap; gap:8px 18px; margin-top:12px; font-size:14px; }
.post__main .faq{ max-width:none; margin-top:20px; }
.post__main .faq h3{ margin:0; font-size:inherit; }
.post__main .faq > * + *{ margin-top:0; }
.post__main .faq__q{ min-height:56px; padding:16px 18px; }
.post__main .faq__a p{ font-size:15px; }
.post__main .faq__q{ font-size:16px; }

/* ---------- AUTOR ---------- */
.hero--author .hero__grid{ grid-template-columns:1fr; padding-bottom:64px; }
@media (min-width:1024px){
  .hero--author .hero__grid{ grid-template-columns:1fr; padding-block:calc(var(--header-h) + 48px) 80px; }
}
.author-hero{ display:grid; gap:24px; align-items:center; }
@media (min-width:768px){
  .author-hero{ grid-template-columns:160px 1fr; gap:36px; }
}
.author-hero__photo{ display:grid; place-items:center; width:160px; height:160px; border-radius:50%; background:rgba(255,255,255,.08); border:2px dashed rgba(255,255,255,.35); color:rgba(255,255,255,.75); text-align:center; font-size:12px; font-weight:600; line-height:1.4; }
.author-hero__photo .icon{ width:28px; height:28px; margin:0 auto 6px; }
.author-hero .hero__title{ font-size:var(--fs-h2); max-width:none; }
.author-hero__role{ font-size:15px; font-weight:700; color:var(--accent); letter-spacing:.02em; }
.author-hero .hero__lead{ margin-top:10px; max-width:62ch; }
.author-hero .btn-row{ margin-top:18px; align-items:center; }
.author-hero .btn-row small{ font-size:13px; color:rgba(255,255,255,.7); }
.wa-card{ display:inline-flex; align-items:center; gap:16px; margin-top:20px; padding:14px 26px 14px 14px; border-radius:var(--r-xl); background:var(--whatsapp); color:#fff; text-decoration:none; box-shadow:var(--sh-md); transition:background-color var(--t-fast), transform var(--t-fast); }
.wa-card:hover{ background:var(--whatsapp-hover); color:#fff; transform:translateY(-1px); }
.wa-card__icon{ display:grid; place-items:center; flex:none; width:52px; height:52px; border-radius:50%; background:rgba(0,0,0,.22); }
.wa-card__icon .icon{ width:26px; height:26px; }
.wa-card__text{ display:grid; gap:2px; text-align:left; }
.wa-card__text strong{ font-family:var(--font-heading); font-size:18px; font-weight:700; line-height:1.25; }
.wa-card__text small{ font-size:14px; font-weight:500; color:rgba(255,255,255,.85); }
.who{ display:grid; gap:36px; }
@media (min-width:1024px){
  .who{ grid-template-columns:7fr 5fr; gap:56px; align-items:start; }
}
.who p{ font-size:var(--fs-body-lg); line-height:1.75; }
.who p + p{ margin-top:16px; }
.who dl{ display:grid; margin:0; border:1px solid var(--border); border-radius:var(--r-md); overflow:hidden; background:#fff; }
.who dl div{ display:grid; gap:4px; padding:16px 20px; }
.who dl div + div{ border-top:1px solid var(--border); }
.who dt{ font-size:var(--fs-caption); font-weight:700; letter-spacing:.08em; text-transform:uppercase; color:var(--text-muted); }
.who dd{ margin:0; font-size:15px; font-weight:600; color:var(--text); }
.rules{ display:grid; gap:var(--gutter); }
@media (min-width:768px){
  .rules{ grid-template-columns:repeat(2,1fr); }
}
@media (min-width:1024px){
  .rules{ grid-template-columns:repeat(3,1fr); }
}
.rules li{ display:grid; gap:10px; align-content:start; padding:26px 24px; background:#fff; border:1px solid var(--border); border-radius:var(--r-md); }
.rules h3{ font-size:var(--fs-h6); line-height:1.35; }
.rules p{ font-size:15px; color:var(--text-muted); }
.rules .icon-box{ margin-bottom:4px; }
.topics{ display:flex; flex-wrap:wrap; gap:8px; }
.topics li{ padding:8px 16px; border:1px solid var(--border-hover); border-radius:var(--r-pill); background:#fff; font-size:15px; font-weight:600; }
.topics li.is-main{ border-color:var(--primary); background:var(--primary); color:#fff; }
.bcard .post-meta strong{ color:var(--text); font-weight:600; }

/* ---------- OBRIGADO ---------- */
body.ty{ padding:0 !important; background:var(--surface-alt); min-height:100vh; display:flex; flex-direction:column; }
.ty-top{ background:var(--surface-dark); color:#fff; }
.ty-top .container{ display:flex; align-items:center; justify-content:space-between; gap:16px; min-height:64px; }
.ty-top a{ display:flex; }
.ty-top img{ height:34px; width:auto; }
.ty-top span{ font-size:13px; color:rgba(255,255,255,.75); }
.ty-top__logo-light{ filter:brightness(0) invert(1); }
.ty-main{ position:relative; flex:1; padding:48px var(--pad) 64px; overflow:hidden; }
.confetti{ position:absolute; inset:0; pointer-events:none; }
.confetti i{ position:absolute; top:-12px; width:7px; height:7px; border-radius:2px; opacity:.85; animation:fall 3.2s cubic-bezier(.25,.6,.4,1) forwards; }
@keyframes fall{ to{ transform:translateY(var(--y)) rotate(var(--r)); opacity:0; } }
@media (prefers-reduced-motion:reduce){
  .confetti{ display:none; }
}
.ty-card{ position:relative; z-index:1; max-width:640px; margin:0 auto; padding:40px 36px; background:#fff; border:1px solid var(--border); border-radius:var(--r-xl); box-shadow:var(--sh-md); }
@media (max-width:599px){
  .ty-card{ padding:28px 22px; }
}
.ty-card h1{ font-size:clamp(1.75rem,3.4vw,2.25rem); line-height:1.15; letter-spacing:-.02em; }
.ty-card__lead{ margin-top:12px; font-size:var(--fs-body-lg); color:var(--text-muted); }
.ty-card__lead strong{ color:var(--text); }
.ty-eta{ display:flex; gap:14px; align-items:flex-start; margin-top:24px; padding:18px 20px; border-radius:var(--r-md); background:var(--surface-blue); }
.ty-eta__ico{ display:grid; place-items:center; flex:none; width:40px; height:40px; border-radius:50%; background:var(--secondary); color:#fff; }
.ty-eta__ico .icon{ width:20px; height:20px; color:#fff; stroke:#fff; }
.ty-eta strong{ display:block; font-size:16px; }
.ty-eta span{ display:block; margin-top:2px; font-size:14px; color:var(--text-muted); }
.ty-wa{ display:flex; align-items:center; justify-content:center; gap:10px; width:100%; min-height:56px; margin-top:20px; padding:0 20px; border-radius:var(--r-md); background:var(--whatsapp); color:#fff; font-weight:700; font-size:16px; text-decoration:none; transition:background-color var(--t-fast); }
.ty-wa:hover{ background:var(--whatsapp-hover); color:#fff; }
.ty-wa .icon{ width:22px; height:22px; }
.ty-wa-hint{ margin-top:10px; text-align:center; font-size:13px; color:var(--text-muted); }
.ty-sep{ height:1px; margin:28px 0; background:var(--border); border:0; }
.ty-card h2{ font-size:var(--fs-h5); margin-bottom:16px; }
.ty-list{ display:grid; gap:16px; counter-reset:ty; }
.ty-list li{ display:grid; grid-template-columns:28px 1fr; gap:12px; }
.ty-list li::before{ counter-increment:ty; content:counter(ty); display:grid; place-items:center; width:28px; height:28px; border-radius:50%; background:var(--primary-soft); color:var(--primary-active); font-size:13px; font-weight:700; }
.ty-list strong{ display:block; font-size:15px; }
.ty-list span{ display:block; margin-top:2px; font-size:14px; color:var(--text-muted); }
.ty-prep{ display:grid; gap:10px; }
.ty-prep li{ display:grid; grid-template-columns:20px 1fr; gap:10px; align-items:start; font-size:15px; }
.ty-prep .icon{ width:20px; height:20px; margin-top:2px; color:var(--success); }
.ty-posts{ display:grid; gap:10px; }
.ty-posts a, .ty-posts__soon{ display:grid; grid-template-columns:20px 1fr auto; gap:10px; align-items:center; padding:12px 14px; border:1px solid var(--border); border-radius:var(--r-sm); font-size:15px; font-weight:600; line-height:1.4; color:var(--text); text-decoration:none; }
.ty-posts a:hover{ border-color:var(--primary); color:var(--primary); }
.ty-posts .icon{ width:20px; height:20px; color:var(--primary); }
.ty-posts__soon{ color:var(--text-muted); background:var(--surface-alt); }
.ty-posts__soon em{ font-style:normal; font-size:12px; font-weight:700; padding:2px 8px; border-radius:var(--r-pill); background:var(--accent-soft); color:#684100; }
.ty-links{ display:grid; gap:10px; margin-top:28px; padding-top:24px; border-top:1px solid var(--border); }
.ty-links a{ display:inline-flex; align-items:center; gap:8px; font-size:15px; font-weight:700; text-decoration:none; width:fit-content; }
.ty-links a .icon{ width:16px; height:16px; }
.ty-foot{ padding:18px var(--pad); text-align:center; font-size:13px; color:var(--text-muted); }
.ty-foot a{ color:var(--text-muted); font-weight:500; }

/* ---------- LEGAL ---------- */
.hero--legal .hero__grid{ grid-template-columns:1fr; padding-bottom:56px; }
@media (min-width:1024px){
  .hero--legal .hero__grid{ grid-template-columns:1fr; padding-block:calc(var(--header-h) + 44px) 72px; }
}
.hero--legal .hero__title{ max-width:none; font-size:var(--fs-h2); }
.legal-meta{ display:flex; flex-wrap:wrap; gap:8px 20px; font-size:14px; color:rgba(255,255,255,.78); }
.legal-meta span{ display:inline-flex; align-items:center; gap:6px; }
.legal-meta .icon{ width:14px; height:14px; color:var(--accent); }
.legal{ display:grid; gap:40px; }
@media (min-width:1024px){
  .legal{ grid-template-columns:minmax(0,8fr) 3fr; gap:56px; align-items:start; }
  .legal__side{ align-self:stretch; }
  .legal__side .toc{ position:sticky; top:calc(var(--header-h) + 24px); }
}
@media (max-width:1023px){
  .legal__side{ order:-1; }
}
.legal__main{ min-width:0; max-width:76ch; }
.legal__main > * + *{ margin-top:16px; }
.legal__main h2{ font-size:var(--fs-h4); margin-top:48px; padding-top:8px; scroll-margin-top:calc(var(--header-h) + 24px); }
.legal__main h2:first-child{ margin-top:0; }
.legal__main h3{ font-size:var(--fs-h6); margin-top:28px; }
.legal__main p,.legal__main li{ font-size:16px; line-height:1.75; }
.legal__main ul:not([class]){ list-style:disc; padding-left:24px; }
.legal__main ul:not([class]) li + li{ margin-top:6px; }
.legal__main ::marker{ color:var(--primary); }
.legal__main .ph{ white-space:normal; }
.legal-note{ display:flex; gap:12px; padding:16px 18px; border-left:4px solid var(--accent); border-radius:var(--r-sm); background:var(--accent-soft); font-size:15px; }
.legal-note .icon{ color:var(--accent-ink); margin-top:2px; }
.tbl{ overflow-x:auto; border:1px solid var(--border); border-radius:var(--r-md); }
.tbl table{ width:100%; min-width:600px; border-collapse:collapse; font-size:15px; }
.tbl th,.tbl td{ padding:12px 14px; text-align:left; vertical-align:top; line-height:1.55; }
.tbl thead th{ background:var(--secondary); color:#fff; font-size:13px; letter-spacing:.04em; text-transform:uppercase; }
.tbl tbody tr:nth-child(even){ background:var(--surface-alt); }
.tbl tbody th{ font-weight:700; }
.tbl td{ color:var(--text-muted); }
.toc a:hover{ background:#fff; color:var(--primary); }
.legal-links{ display:flex; flex-wrap:wrap; gap:8px; margin-top:32px; }
.legal-links a{ display:inline-flex; align-items:center; min-height:40px; padding:0 16px; border:1px solid var(--border-hover); border-radius:var(--r-pill); font-size:14px; font-weight:600; text-decoration:none; color:var(--text); background:#fff; }
.legal-links a:hover{ border-color:var(--primary); color:var(--primary); }
.ty-steps{ display:grid; gap:var(--gutter); }
@media (min-width:768px){
  .ty-steps{ grid-template-columns:repeat(3,1fr); }
}
.ty-steps li{ display:grid; gap:10px; align-content:start; padding:26px 24px; background:#fff; border:1px solid var(--border); border-radius:var(--r-md); }
.ty-steps__n{ display:grid; place-items:center; width:40px; height:40px; border-radius:50%; background:var(--accent); font-family:var(--font-heading); font-weight:700; }
.ty-steps h3{ font-size:var(--fs-h6); }
.ty-steps p{ font-size:15px; color:var(--text-muted); }
.ty-box{ display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:16px 24px; margin-top:24px; padding:22px 24px; border-radius:var(--r-md); background:var(--surface-blue); border:1px solid #CFE0EE; }
.ty-box p{ display:flex; gap:10px; align-items:center; font-size:16px; }
.ty-box p .icon{ color:var(--primary); }
.ty-check{ display:grid; place-items:center; width:72px; height:72px; border-radius:50%; background:var(--whatsapp); color:#fff; }
.ty-check .icon{ width:36px; height:36px; }
.linklist{ display:grid; gap:var(--gutter); }
@media (min-width:768px){
  .linklist{ grid-template-columns:repeat(3,1fr); }
}
.linklist a{ position:relative; display:grid; gap:8px; align-content:start; height:100%; padding:24px; background:#fff; border:1px solid var(--border); border-radius:var(--r-md); color:var(--text); text-decoration:none; transition:border-color var(--t-base), box-shadow var(--t-base); }
.linklist a:hover{ border-color:var(--primary); box-shadow:var(--sh-sm); }
.linklist strong{ font-family:var(--font-heading); font-size:var(--fs-h6); }
.linklist span{ font-size:15px; color:var(--text-muted); }
.linklist small{ margin-top:6px; display:inline-flex; align-items:center; gap:6px; font-size:14px; font-weight:700; color:var(--primary); }
.nf-code{ font-family:var(--font-heading); font-size:clamp(4rem,10vw,7rem); font-weight:700; line-height:1; color:var(--accent); }

/* Fotografias da campanha: formatos de exportação e recortes responsivos. */
.hero__media picture{ display:block; width:100%; height:100%; }
.hero__media:has(img)::before{ display:none; }
.hero:has(.hero__media img) .hero__pattern{ display:none; }
.aud__media,.bcard__media{ overflow:hidden; }
.aud__media > img,.bcard__media > img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
img.author-hero__photo,img.author__photo,img.byline__photo{ object-fit:cover; border:0; flex:none; }
.imagery-caption{ font-size:12px; line-height:1.5; color:var(--text-muted); }
.hero .imagery-caption{ color:rgba(255,255,255,.78); margin-top:6px; }
@media (max-width:767px){
  .hero__media img{ object-position:center; }
}

/* ---------- AVISO DE COOKIES (assets/js/consent.js) ---------- */
/* Fixo sobre a página (position:fixed): não empurra o conteúdo, então não gera CLS. */
.cc{ position:fixed; left:0; right:0; bottom:0; z-index:1200; padding:12px var(--pad) calc(12px + env(safe-area-inset-bottom)); pointer-events:none; }
.cc[hidden], .cc-panel[hidden]{ display:none; }
.cc__inner{ pointer-events:auto; display:grid; gap:12px; max-width:960px; margin:0 auto; padding:16px 18px; background:#fff; border:1px solid var(--border); border-radius:var(--r-md); box-shadow:0 12px 32px rgba(15,23,32,.18); max-height:45vh; overflow:auto; }
.cc__text{ font-size:14px; line-height:1.5; color:var(--text); }
.cc__text a, .cc-panel__lead a{ font-weight:700; color:var(--primary); }
.cc__actions{ display:grid; grid-template-columns:repeat(3,1fr); gap:8px; }
.cc__btn{ display:inline-flex; align-items:center; justify-content:center; min-height:44px; padding:0 14px; border:1.5px solid var(--primary); border-radius:var(--r-sm); background:#fff; color:var(--primary); font:700 14px/1.2 var(--font-body); cursor:pointer; transition:background var(--t-fast, .15s), color var(--t-fast, .15s); }
.cc__btn:hover{ background:var(--primary); color:#fff; }
.cc__btn:focus-visible, .cc-panel__close:focus-visible, .cc-switch:focus-visible{ outline:3px solid var(--focus); outline-offset:2px; }
@media (max-width:479px){ .cc__text{ font-size:13px; } .cc__btn{ padding:0 8px; font-size:13px; } }
@media (min-width:768px){ .cc__inner{ grid-template-columns:1fr auto; align-items:center; gap:20px; } .cc__actions{ grid-template-columns:repeat(3,auto); } .cc__btn{ min-width:132px; } }
.cc-lock, .cc-lock body{ overflow:hidden; }
.cc-panel{ position:fixed; inset:0; z-index:1300; display:grid; place-items:center; padding:16px; }
.cc-panel__overlay{ position:absolute; inset:0; background:rgba(15,23,32,.55); }
.cc-panel__box{ position:relative; width:100%; max-width:560px; max-height:calc(100dvh - 32px); overflow:auto; padding:28px 24px 24px; background:#fff; border-radius:var(--r-lg); box-shadow:0 20px 48px rgba(15,23,32,.3); }
.cc-panel__box:focus{ outline:none; }
.cc-panel__box h2{ font-size:var(--fs-h5); padding-right:36px; }
.cc-panel__lead{ margin-top:8px; font-size:14px; color:var(--text-muted); }
.cc-opt{ display:grid; grid-template-columns:1fr auto; gap:16px; align-items:center; padding:16px 0; border-bottom:1px solid var(--border); }
.cc-opt label{ font-weight:700; font-size:15px; }
.cc-opt p{ margin-top:2px; font-size:13px; color:var(--text-muted); }
.cc-switch{ appearance:none; -webkit-appearance:none; position:relative; width:48px; height:28px; border-radius:999px; background:var(--border-strong); cursor:pointer; transition:background .15s; }
.cc-switch::after{ content:""; position:absolute; top:3px; left:3px; width:22px; height:22px; border-radius:50%; background:#fff; transition:transform .15s; }
.cc-switch:checked{ background:var(--primary); }
.cc-switch:checked::after{ transform:translateX(20px); }
.cc-switch:disabled{ opacity:.6; cursor:not-allowed; }
.cc-panel__actions{ margin-top:20px; }
@media (min-width:768px){ .cc-panel__actions{ grid-template-columns:repeat(3,1fr); } }
.cc-panel__close{ position:absolute; top:12px; right:12px; width:44px; height:44px; border:0; border-radius:50%; background:transparent; font-size:26px; line-height:1; color:var(--text-muted); cursor:pointer; }
.cc-panel__close:hover{ background:var(--surface-alt); color:var(--text); }
.footer-cookie-btn{ padding:0; border:0; background:none; font:inherit; color:inherit; text-align:left; cursor:pointer; text-decoration:none; }
.footer-cookie-btn:hover{ text-decoration:underline; }
@media (prefers-reduced-motion:reduce){ .cc__btn, .cc-switch, .cc-switch::after{ transition:none; } }
.answer__entity{ margin-top:12px; font-size:14px; line-height:1.55; color:var(--text-muted); }
.incl__col > h3 + p{ margin-bottom:14px; font-size:15px; color:var(--text-muted); }
.coverage__rmc > p{ font-size:14px; line-height:1.5; color:rgba(255,255,255,.75); }

/* Breadcrumb em fundo claro (página de obrigado) */
.crumbs--light a{ color:var(--text-muted); }
.crumbs--light a:hover{ color:var(--primary); }
.crumbs--light .icon{ color:var(--border-strong); }
.crumbs--light [aria-current="page"]{ color:var(--text); }
.ty-crumbs{ position:relative; z-index:1; max-width:640px; margin:0 auto 16px; }

/* ===== Mapa do site (HTML) ===== */
.sitemap-html{ display:grid; gap:24px; grid-template-columns:1fr; }
@media (min-width:768px){ .sitemap-html{ grid-template-columns:repeat(2,1fr); } }
@media (min-width:1024px){ .sitemap-html{ grid-template-columns:repeat(3,1fr); } }
.sitemap-html__group{ background:var(--surface); border:1px solid var(--border); border-radius:var(--r-md); padding:24px; }
.sitemap-html__group h2{ font-size:var(--fs-h5); margin-bottom:12px; }
.sitemap-html__group ul{ display:grid; gap:4px; }
.sitemap-html__group a{ display:flex; align-items:center; min-height:44px; padding:6px 0; color:var(--text); font-weight:500; text-decoration:none; border-bottom:1px solid var(--border); }
.sitemap-html__group li:last-child a{ border-bottom:0; }
.sitemap-html__group a:hover{ color:var(--primary); text-decoration:underline; }
.sitemap-html__group .is-hub a{ color:var(--primary); font-weight:700; }
