/* =========================================================
   CONCRECIA — DARK THEME LAYER (Direction B · cinematic)
   Loaded LAST on every page (after site.css + page inline styles)
   so it re-skins existing components into the dark identity
   without rewriting each page. Keeps all existing class names.
   ========================================================= */

:root{
  --mist:#A9B6D8;            /* secondary text on dark   */
  --mist-dim:#95A2C4;        /* tertiary / labels (AA-safe on elevated panels) */
  --glass-line:rgba(169,182,216,.16);
  --glass-line-soft:rgba(169,182,216,.10);
  --glass-fill:linear-gradient(160deg,rgba(28,50,128,.26),rgba(8,17,46,.40));
  --glass-fill-soft:linear-gradient(160deg,rgba(28,50,128,.16),rgba(8,17,46,.30));
  --halo:rgba(245,197,24,.50);
  --shadow-deep:0 40px 90px -30px rgba(0,0,0,.72), 0 12px 28px -12px rgba(0,0,0,.55);
  --db-ease:cubic-bezier(.22,.61,.36,1);
  /* flip semantic aliases so token-driven components go dark */
  --bg:var(--c-navy-950);
  --bg-elev:var(--c-navy-900);
  --fg:var(--c-bone);
  --fg-dim:var(--mist);
  --fg-mute:var(--mist-dim);
  --rule:var(--glass-line);
  --rule-strong:var(--glass-line);
}

/* ---------- base ---------- */
html{background:var(--c-navy-950);}
body{
  background:var(--c-navy-950)!important;
  color:var(--c-bone);
}
/* subtle page film grain */
body::after{
  content:"";position:fixed;inset:0;z-index:9999;pointer-events:none;
  opacity:.026;mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}
::selection{background:var(--c-yellow-500);color:var(--c-navy-950)}

/* ---------- sections ---------- */
.section{background:var(--c-navy-950);color:var(--c-bone)}
.section--paper{background:#08153A}      /* slightly elevated dark */
.section--stone{background:#0A1B45}
.section--dark{background:var(--c-navy-950)}
.section p,.section li{color:var(--mist)}
.section--paper p,.section--stone p,.section--dark p{color:var(--mist)}
h1,h2,h3,h4,h5{color:var(--c-white)}
.section-title,.page-head__title{color:var(--c-white)}
.section-sub,.lead{color:var(--mist)}
.section-eyebrow{color:var(--c-yellow-500)}
.section-eyebrow::before{background:var(--c-yellow-500);box-shadow:0 0 8px var(--halo)}

/* ---------- HEADER (injected by partials.js) ---------- */
.site-header{
  background:transparent;
  border-bottom:1px solid transparent;
  transition:background .4s var(--db-ease),border-color .4s var(--db-ease),backdrop-filter .4s var(--db-ease);
}
.site-header.is-scrolled,.site-header.scrolled{
  background:rgba(5,15,46,.72);
  backdrop-filter:blur(16px) saturate(130%);-webkit-backdrop-filter:blur(16px) saturate(130%);
  border-bottom:1px solid var(--glass-line);
}
.site-header__wordmark{color:var(--c-white)!important;filter:none}
/* white-out the header logo image so it shows on dark */
.site-header__brand img,.site-header__mark img{filter:brightness(0) invert(1)}
.site-nav a{color:var(--mist)}
.site-nav a:hover{color:var(--c-white)}
.site-nav a.is-active{color:var(--c-white)}
.site-nav a.is-active::after,.site-nav a:hover::after{background:var(--c-yellow-500);box-shadow:0 0 8px var(--halo)}
.site-header__phone{color:var(--mist)}
.site-header__phone svg{color:var(--c-yellow-500)}
.menu-toggle{border:1px solid var(--glass-line);color:var(--c-bone);background:rgba(169,182,216,.05)}
.menu-toggle:hover{background:rgba(169,182,216,.12)}
.menu-toggle span{background:var(--c-bone)}
.mobile-drawer{background:var(--c-navy-950);border-top:1px solid var(--glass-line)}
.mobile-drawer__nav a{color:var(--c-bone);border-bottom:1px solid var(--glass-line-soft)}
.mobile-drawer__nav a:hover{color:var(--c-yellow-500)}
.mobile-drawer__close{color:var(--c-bone)}

/* ---------- buttons ---------- */
.btn--primary{background:var(--c-yellow-500);color:var(--c-navy-950);
  box-shadow:0 14px 34px -14px rgba(245,197,24,.7)}
.btn--primary:hover{background:var(--c-yellow-400);transform:translateY(-2px);
  box-shadow:0 0 34px -4px rgba(245,197,24,.5),0 20px 42px -16px rgba(245,197,24,.85)}
.btn--accent{background:var(--c-yellow-500);color:var(--c-navy-950)}
.btn--accent:hover{background:var(--c-yellow-400)}
.btn--ghost{background:rgba(169,182,216,.06);color:var(--c-bone);border:1px solid var(--glass-line)}
.btn--ghost:hover{border-color:rgba(245,197,24,.5);color:var(--c-white);background:rgba(169,182,216,.1)}
.btn--ghost-inverse{border-color:var(--glass-line);color:var(--c-bone)}
.btn--ghost-inverse:hover{background:rgba(255,255,255,.06);color:var(--c-white)}

/* ---------- page head → dark hero band ---------- */
.page-head{
  background:var(--c-navy-950);position:relative;overflow:hidden;
  border-bottom:1px solid var(--glass-line);
  padding-top:clamp(132px,15vw,180px);
}
.page-head::before{
  content:"";position:absolute;inset:0;z-index:0;pointer-events:none;
  background:
    radial-gradient(70% 90% at 88% 0%, rgba(245,197,24,.10), transparent 50%),
    radial-gradient(90% 90% at 0% 0%, rgba(20,42,117,.5), transparent 55%),
    linear-gradient(0deg, var(--c-navy-950), transparent 70%);
  opacity:1;height:auto;width:auto;
}
.page-head > .container{position:relative;z-index:1}
.page-head__title{color:var(--c-white)}
.page-head__lead{color:var(--mist)}
.page-head__crumb{color:var(--mist-dim)}
.page-head__crumb a{color:var(--mist)}
.page-head__crumb a:hover{color:var(--c-yellow-500)}
.page-head__crumb span{color:var(--mist-dim)}
.page-head__meta .label{color:var(--mist-dim)}
.page-head__meta .value{color:var(--c-white)}

/* ---------- generic cards → glass ---------- */
.card,.svc-block__photo,.info-card{
  background:var(--glass-fill);border:1px solid var(--glass-line);
  box-shadow:var(--shadow-deep);
}
.card{transition:transform .5s var(--db-ease),border-color .5s var(--db-ease),box-shadow .5s var(--db-ease)}
.card:hover{border-color:rgba(245,197,24,.4);transform:translateY(-6px);
  box-shadow:var(--shadow-deep),0 0 44px -14px rgba(245,197,24,.4)}
.card__title{color:var(--c-white)}
.card__text{color:var(--mist)}
.card__num{color:var(--c-yellow-500)}
.card__link{color:var(--c-yellow-500);border-top-color:var(--glass-line)}
.card--accent{background:var(--glass-fill);border-color:var(--glass-line)}
.card--accent:hover{background:var(--glass-fill);border-color:rgba(245,197,24,.5)}

/* ---------- stats / trust ---------- */
.stat__num,.trust-stat__num{color:var(--c-white)}
.stat__num .unit,.trust-stat__num .unit{color:var(--c-yellow-500);text-shadow:0 0 16px var(--halo)}
.stat__label,.trust-stat__label{color:var(--mist)}
.stat{border-top-color:var(--c-yellow-500)}
.trust-bar{background:#08153A;border-top:1px solid var(--glass-line);border-bottom:1px solid var(--glass-line)}
.trust-bar__grid > *{position:relative}

/* ---------- forms (dark inputs) ---------- */
.field__label{color:var(--mist)}
.field input,.field textarea,.field select,
input[type=text],input[type=email],input[type=tel],input[type=number],select,textarea{
  background:rgba(8,17,46,.6)!important;
  border:1px solid var(--glass-line)!important;
  color:var(--c-bone)!important;
}
.field input::placeholder,.field textarea::placeholder{color:var(--mist-dim)}
.field input:focus,.field textarea:focus,.field select:focus,
input:focus,select:focus,textarea:focus{
  border-color:var(--c-yellow-500)!important;
  outline:none;box-shadow:0 0 0 3px rgba(245,197,24,.18)!important;
}
.field select option{background:var(--c-navy-900);color:var(--c-bone)}
.field__hint{color:var(--mist-dim)}
/* white quote-form panels → dark glass */
form[action*="web3forms"],.quote-form{
  background:var(--glass-fill)!important;border:1px solid var(--glass-line)!important;
  border-top:4px solid var(--c-yellow-500)!important;backdrop-filter:blur(14px);
  box-shadow:var(--shadow-deep);
}
.quote-form__title{color:var(--c-white)!important}
.quote-form__sub{color:var(--mist)!important}
.quote-form__submit .meta{color:var(--mist-dim)!important}

/* ---------- footer (already dark, refine) ---------- */
.site-footer{background:#030A20;border-top:1px solid var(--glass-line)}
.site-footer__brand p{color:var(--mist)}
.site-footer__col h5{color:var(--c-yellow-500)}
.site-footer__col a{color:var(--mist)}
.site-footer__col a:hover{color:var(--c-yellow-400)}
.site-footer__contact-item .label{color:var(--mist-dim)}
.site-footer__contact-item .value{color:var(--mist)}
.site-footer__contact-item .value b,.site-footer__contact-item .value a{color:var(--c-white)}
.site-footer__cities,.site-footer__bottom{border-top-color:var(--glass-line)}
.site-footer__cities-label{color:var(--c-yellow-500)}
.site-footer__cities-list,.site-footer__cities-note{color:var(--mist)}
.site-footer__social a{border-color:var(--glass-line);color:var(--mist)}
.site-footer__social a:hover{border-color:var(--c-yellow-500);color:var(--c-white)}

/* ---------- CTA strip ---------- */
.cta-strip{background:var(--c-navy-950)}
.cta-strip h2{color:var(--c-white)}
.cta-strip__filete{background:var(--c-yellow-500);box-shadow:0 0 12px var(--halo)}
.inline-cta{background:#08153A;border-top:1px solid var(--glass-line);border-bottom:1px solid var(--glass-line)}
.inline-cta__title{color:var(--c-white)}
.inline-cta__sub{color:var(--mist)}

/* ---------- mobile sticky CTA bar ---------- */
.mobile-cta-bar{
  background:rgba(5,15,46,.92)!important;backdrop-filter:blur(14px);
  border-top:1px solid var(--glass-line)!important;
}

/* ---------- service blocks / app cards (servicos.html) ---------- */
.svc-section{border-bottom-color:var(--glass-line)!important}
.svc-section--paper{background:#08153A!important}
.svc-section--dark{background:var(--c-navy-950)!important}
.svc-block__title{color:var(--c-white)!important}
.svc-block__text{color:var(--mist)!important}
.svc-block__list li{color:var(--c-bone)!important;border-bottom-color:var(--glass-line)!important}
.svc-block__eyebrow{color:var(--c-yellow-500)!important}
.fck-table{background:var(--glass-fill)!important;color:var(--mist)!important;border:1px solid var(--glass-line)}
.fck-table th{background:rgba(8,17,46,.7)!important;color:var(--mist-dim)!important;border-bottom-color:var(--glass-line)!important}
.fck-table td{border-bottom-color:var(--glass-line)!important;color:var(--mist)!important}
.fck-table td:first-child{color:var(--c-yellow-500)!important}
.svc-apps{border-color:var(--glass-line)!important}
.svc-app-card{background:var(--glass-fill-soft)!important;border-color:var(--glass-line)!important}
.svc-app-card:hover{background:var(--glass-fill)!important}
.svc-app-card h4{color:var(--c-white)!important}
.svc-app-card p{color:var(--mist)!important}
.svc-app-card__num{color:var(--c-yellow-500)!important}
.svc-app-card__link{color:var(--c-yellow-500)!important;border-top-color:var(--glass-line)!important}
.frota-stat__num{color:var(--c-white)!important}
.frota-stat__label{color:var(--mist)!important}
.frota-banner__text{color:var(--c-white)}

/* ---------- blog / article cards ---------- */
.blog-card{border-top-color:var(--glass-line)}
.blog-card__cat,.article-card__cat,.featured-hero__cat,.featured__cat{color:var(--c-yellow-500)}
.blog-card__title,.article-card__title{color:var(--c-white)}
.blog-card__title a:hover{color:var(--c-yellow-400)}
.blog-card__meta,.article-card__meta{color:var(--mist-dim)}

/* ---------- FAQ (details/summary) ---------- */
.faq-section__num{color:var(--c-yellow-500)}
.faq-item{border-bottom:1px solid var(--glass-line)}
.faq-item summary{color:var(--c-white)}
.faq-item summary:hover{color:var(--c-yellow-400)}
.faq-item p{color:var(--mist)}
.faq-item[open] summary{color:var(--c-yellow-500)}

/* ---------- value items / channels / info (sobre, contato) ---------- */
.value-item__title{color:var(--c-white)}
.value-item__text{color:var(--mist)}
.value-item__num,.channel__num{color:var(--c-yellow-500)}
.channel__title{color:var(--c-white)}
.channel__text,.channel p{color:var(--mist)}
.info-card .label{color:var(--mist-dim)}
.info-card .value{color:var(--c-white)}

/* ---------- landing (concreto-usinado-ribeirao-preto) ---------- */
.lp-section--paper{background:#08153A!important}
.lp-h2{color:var(--c-white)!important}
.lp-text{color:var(--mist)!important}
.lp-text strong{color:var(--c-yellow-500)!important}
.lp-fck-table{background:var(--glass-fill)!important}
.lp-fck-table th{background:rgba(8,17,46,.7)!important;color:var(--mist-dim)!important;border-bottom-color:var(--glass-line)!important}
.lp-fck-table td{border-bottom-color:var(--glass-line)!important;color:var(--mist)!important}
.lp-fck-table td:first-child{color:var(--c-yellow-500)!important}
.lp-cities-text{color:var(--c-bone)!important;border-color:var(--glass-line)!important}
.lp-partner-note{color:var(--mist)!important}
.lp-hero-photo__text{color:var(--c-white)}

/* ---------- silo (homepage) ---------- */
.silo-col + .silo-col{border-left-color:var(--glass-line)}
.silo-title{color:var(--c-white)}
.silo-sub{color:var(--mist)}
.silo-list li,.silo-list li:last-child{border-color:var(--glass-line)}
.silo-list strong{color:var(--c-white)}
.silo-list span{color:var(--mist-dim)}
.silo-list a:hover strong{color:var(--c-yellow-400)}
.silo-cities li{border-color:var(--glass-line)}
.silo-cities a{color:var(--c-bone)}
.silo-cities a:hover{color:var(--c-yellow-400)}
.silo-note{color:var(--mist)}

/* ---------- misc surfaces ---------- */
.testimonial__quote{color:var(--c-bone)}
.testimonial__name{color:var(--c-white)}
.testimonial__obra{color:var(--mist-dim)}
.checklist li{color:var(--c-bone)}
.photo-frame__caption h4{color:var(--c-white)}
hr,.rule{border-color:var(--glass-line)}

/* generic links inside prose keep yellow on dark */
a[style*="var(--primary)"]{color:var(--c-yellow-500)!important}

/* maps embed frame */
iframe{border-color:var(--glass-line)!important;filter:saturate(.9) brightness(.95)}

/* =========================================================
   PAGE-SPECIFIC LIGHT-CARD OVERRIDES → dark glass
   (inline page <style> hardcodes light bg / navy text)
   ========================================================= */

/* contato — channels + info + form + map */
.channel{background:var(--glass-fill-soft)!important;border-color:var(--glass-line)!important}
.channel:hover{background:var(--glass-fill)!important}
.channel__title{color:var(--c-white)!important}
.channel__value{color:var(--c-yellow-500)!important}
.channel__sub{color:var(--mist)!important}
.channel__num{color:var(--mist-dim)!important}
.channels{border-top-color:var(--glass-line)!important}
.info-card{background:var(--glass-fill)!important;border-top:4px solid var(--c-yellow-500)!important}
.info-card h3{color:var(--c-white)!important}
.info-card .label{color:var(--c-yellow-500)!important}
.info-card__hours li{color:var(--mist)!important;border-bottom-color:var(--glass-line)!important}
.info-card__hours .day{color:var(--mist-dim)!important}

/* blog index — featured + article cards */
.featured-hero{background:var(--glass-fill)!important;border-color:var(--glass-line)!important}
.featured-hero__title,.featured-hero__title a{color:var(--c-white)!important}
.featured-hero__title a:hover{color:var(--c-yellow-400)!important}
.featured-hero p,.featured-hero__excerpt{color:var(--mist)!important}
.article-card{background:var(--glass-fill-soft)!important;border-color:var(--glass-line)!important}
.article-card:hover{border-color:rgba(245,197,24,.4)!important}
.article-card__title,.article-card__title a{color:var(--c-white)!important}
.article-card__title a:hover{color:var(--c-yellow-400)!important}
.article-card__excerpt,.article-card p{color:var(--mist)!important}

/* blog posts — prose */
.post-head{border-bottom-color:var(--glass-line)!important}
.post-head h1{color:var(--c-white)!important}
.post-head__lead{color:var(--mist)!important}
.post-head__meta,.post-head__meta strong{color:var(--mist)!important}
.post-head__crumb,.post-head__crumb a{color:var(--mist-dim)!important}
.post-body p,.post-body li,.post-body td{color:var(--c-bone)!important}
.post-body h2,.post-body h3{color:var(--c-white)!important}
.post-body strong{color:#fff!important}
.post-body > p:first-of-type::first-letter{color:var(--c-yellow-500)!important}
.post-body a{color:var(--c-yellow-400)!important}
.post-body .post-callout{background:var(--glass-fill)!important;border-left:4px solid var(--c-yellow-500)!important}
.post-body .post-callout strong{color:var(--c-yellow-500)!important}
.post-body .post-pull{color:#fff!important;border-top-color:var(--c-yellow-500)!important}
.post-body .post-section-num{color:var(--c-yellow-500)!important}
.post-body .post-divider{background:var(--glass-line)!important}
.post-body blockquote{color:var(--c-bone)!important}
.related{background:#08153A!important;border-top-color:var(--glass-line)!important}
.related__card{background:var(--glass-fill-soft)!important;border-color:var(--glass-line)!important}
.related__card:hover{border-color:rgba(245,197,24,.4)!important}
.related__cat{color:var(--c-yellow-500)!important}
.related__title,.related__title a{color:var(--c-white)!important}
.related__title a:hover{color:var(--c-yellow-400)!important}
.comparison-row .ctype{color:var(--c-yellow-500)!important}
.comparison-row p{color:var(--mist)!important}
.comparison-row > div{border-color:var(--glass-line)!important}

/* application pages — app-body */
.app-body p,.app-body li{color:var(--c-bone)!important}
.app-body h2{color:var(--c-white)!important}
.app-body p strong{color:var(--c-yellow-500)!important}
.app-spec{border-color:var(--glass-line)!important}
.app-spec .label{color:var(--mist-dim)!important}
.app-spec .value{color:var(--c-yellow-500)!important}
.app-list li{color:var(--c-bone)!important;border-bottom-color:var(--glass-line)!important}

/* city pages — city-body */
.city-body p,.city-body li{color:var(--c-bone)!important}
.city-body h2{color:var(--c-white)!important}
.city-body p strong{color:var(--c-yellow-500)!important}
.city-meta{border-color:var(--glass-line)!important}
.city-meta .label{color:var(--mist-dim)!important}
.city-meta .value{color:var(--c-yellow-500)!important}

/* landing extras */
.lp-hero-photo{background:var(--c-navy-900)!important}

/* generic: inline navy links/strong on dark → yellow */
[style*="color:var(--primary)"],[style*="color: var(--primary)"]{color:var(--c-yellow-400)!important}

/* sobre page values (white cards → dark glass) */
.value-item{background:var(--glass-fill-soft)!important;border-color:var(--glass-line)!important}
.value-item__num{color:var(--c-yellow-500)!important}
.value-item__title{color:var(--c-white)!important}
.value-item__text{color:var(--mist)!important}
.timeline__year,.timeline__title{color:var(--c-white)!important}
.timeline__text{color:var(--mist)!important}
/* sobre narrative + photo caption */
.narrative__side .label{color:var(--c-yellow-500)!important}
.narrative__side h3{color:var(--c-white)!important}
.narrative__body p{color:var(--c-bone)!important}
.sobre-photo__caption .label{color:var(--c-yellow-500)!important}
.sobre-photo__caption h3{color:var(--c-white)!important}

/* =========================================================
   ACCESSIBILITY + POLISH (auditoria final)
   ========================================================= */
/* foco de teclado visível em TODO o site (estava só na home) — WCAG 2.4.7 */
a:focus-visible,.btn:focus-visible,button:focus-visible,summary:focus-visible,
[tabindex]:focus-visible{ outline:2px solid var(--c-yellow-500); outline-offset:3px; }
@media (forced-colors:active){
  input:focus,select:focus,textarea:focus{ outline:2px solid Highlight; }
}
/* placeholders de imagem escuros (não vazar caixa clara no carregamento/404) */
.svc-block__photo,.sobre-photo,.featured-hero__photo,.article-card__photo,
.post-hero-img,.related__card img{ background:var(--c-navy-900)!important; }
/* respeitar prefers-reduced-motion na camada dark */
@media (prefers-reduced-motion:reduce){
  .card,.card:hover,.btn--primary:hover,.svc-app-card:hover,.value-item:hover{ transform:none!important; transition:none!important; }
  body::after{ display:none; }
}
/* links de cidade no rodapé (cluster local crawlável) */
.site-footer__cities-list a{ color:var(--mist); text-decoration:none; border-bottom:1px solid transparent; transition:color .2s ease, border-color .2s ease; }
.site-footer__cities-list a:hover{ color:var(--c-yellow-400); border-bottom-color:var(--c-yellow-500); }
/* links de cidade na landing-mãe */
.lp-cities-text a{ color:var(--c-bone)!important; text-decoration:none; border-bottom:1px solid rgba(245,197,24,.38); transition:color .2s ease, border-color .2s ease; }
.lp-cities-text a:hover{ color:var(--c-yellow-400)!important; border-bottom-color:var(--c-yellow-500); }
/* CTA no hero das páginas de cidade/aplicação/landing (CRO) */
.ph-cta{ margin-top:30px; display:flex; flex-wrap:wrap; gap:12px; }
@media (max-width:520px){ .ph-cta .btn{ width:100%; justify-content:center; } }
