/*
 * Flores de Sal - site público. Reproduz o layout do WordPress (tema Impreza + tema filho):
 * Bricolage Grotesque, grade de 1200 px, pontos de quebra 1280 / 1024 / 600 e paleta --fls.
 */
@font-face { font-family: "Bricolage Grotesque"; src: url("../fonts/bricolage-grotesque-latin.woff2") format("woff2"); font-weight: 300 800; font-display: swap;
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "Bricolage Grotesque"; src: url("../fonts/bricolage-grotesque-latin-ext.woff2") format("woff2"); font-weight: 300 800; font-display: swap;
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF; }

:root {
  --azul: #0a2958; --azul-escuro: #082146; --azul-700: #1a437b; --azul-50: #e6eaf1; --azul-100: #bfcadc;
  --laranja: #fda135; --laranja-700: #f0842d; --laranja-hover: #f28402;
  --verde: #87bc31; --verde-700: #62981f; --verde-hover: #6c9627; --verde-50: #f1f7e6;
  --rosa: #e00167; --rosa-500: #f10368; --rosa-800: #b5005c; --rosa-hover: #b30152;
  --lilas: #6781f2; --lilas-500: #0047e0; --lilas-hover: #274ced; --lilas-400: #3a63ee;
  --magenta: #c94e93; --magenta-600: #b43577; --magenta-hover: #ab3477;
  --grafite: #28272a; --grafite-hover: #000;
  --texto: #343337; --titulo: #28272a; --apagado: #454545; --fundo-alt: #f5f5f5; --borda: #e8e8e8;
  --grid: 1200px; --gutter: 2.5rem;
  --header-h: 150px; --header-sticky-h: 80px; --logo-h: 71px;
  --sombra: 0 0 20px 10px rgba(0, 0, 0, .2);
  --ease: cubic-bezier(.78, .13, .15, .86);
  /* Tamanhos fixos em dois degraus (acima e até 600 px), como no site em produção. */
  --h1: 96px; --h2: 60px; --h3: 48px; --h4: 34px; --h5: 24px; --h6: 20px;
}
@media (max-width: 600px) { :root { --h1: 74px; --h2: 45px; --h3: 27px; --h4: 28px; --h5: 20px; } }
@media (max-width: 1280px) { :root { --header-h: 100px; --header-sticky-h: 60px; --logo-h: 66px; } }
@media (max-width: 1024px) { :root { --header-h: 80px; --header-sticky-h: 60px; --logo-h: 60px; } }
@media (max-width: 600px) { :root { --gutter: 1.5rem; } }
/* Espaçamento padrão das seções do WP (height_default): 6rem; até 1024 px, max(54px, 6vw). */
:root { --sec: 6rem; }
@media (max-width: 1024px) { :root { --sec: max(54px, 6vw); } }
@media (max-width: 900px) { .site-header .header-inner { padding-left: 1rem; padding-right: 1rem; } }

/* Base ------------------------------------------------------------------------------------------- */
html { scroll-behavior: smooth; scroll-padding-top: var(--header-sticky-h); }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; } }
/* opsz 14: a fonte variável fica igual às instâncias estáticas do Google Fonts usadas no WP (sem isso, títulos grandes ficam ~5% mais estreitos). */
body { font-family: "Bricolage Grotesque", system-ui, sans-serif; font-variation-settings: "opsz" 14; font-size: 16px; line-height: 26px; font-weight: 300; color: var(--texto); background: #fff; padding-top: var(--header-h); -webkit-font-smoothing: antialiased; }
@media (max-width: 600px) { body { line-height: 24px; } }
h1, h2, h3, h4, h5, h6 { font-family: inherit; font-weight: 600; color: var(--titulo); line-height: 1.2; margin: 0 0 .6em; }
h1 { font-size: var(--h1); line-height: 1; } h2 { font-size: var(--h2); } h3 { font-size: var(--h3); } h4 { font-size: var(--h4); } h5 { font-size: var(--h5); } h6 { font-size: var(--h6); }
p { margin: 0 0 1.5rem; }
@media (max-width: 600px) { p { margin-bottom: 1rem; } }
a { color: var(--azul); text-decoration: none; transition: color .3s; }
a:hover { color: var(--azul-escuro); }
img { max-width: 100%; height: auto; }
strong, b { font-weight: 700; }
:focus-visible { outline: 2px solid var(--rosa); outline-offset: 2px; }
main:focus { outline: none; }
.rich-text > :last-child { margin-bottom: 0; }
.rich-text a { text-decoration: underline; }
.rich-text ul, .rich-text ol { margin: 0 0 1.5rem; padding-left: 1.5rem; }
.narrow { width: 600px; max-width: 100%; margin-left: auto; margin-right: auto; }
.nowrap { white-space: nowrap; }

.fs-container { width: 100%; max-width: calc(var(--grid) + 2 * var(--gutter)); margin: 0 auto; padding-left: var(--gutter); padding-right: var(--gutter); }
.fs-section { padding: 6rem 0; }
.fs-section--top-tight { padding-bottom: 0; }
.fs-section--bottom-tight { padding-top: 0; }
.fs-section--no-top { padding-top: 0; }
.fs-section--title { padding: 4rem 0 1rem; }
@media (max-width: 1280px) { .fs-section--title { padding-top: 2rem; } }
@media (max-width: 1024px) { .fs-section { padding: 6vmax 0; } .fs-section--title { padding: 2rem 0 1rem; } .fs-section--top-tight { padding-bottom: 0; } .fs-section--no-top, .fs-section--bottom-tight { padding-top: 0; } }

.page-title { color: var(--azul); font-size: var(--h3); line-height: 1.2; text-align: center; max-width: 860px; margin: 0 auto .6em; }
.page-title--left { text-align: left; margin-left: 0; }
.page-title--h3 { color: var(--titulo); }
.page-subtitle { text-align: center; margin: 0; }

/* Botões (estilos do tema: pílula, fade no hover) ---------------------------------------------- */
.fs-btn { display: inline-flex; align-items: center; justify-content: center; gap: 11px; font-family: inherit; font-size: 16px; font-weight: 400; line-height: 1.1;
  padding: .56em .8em; border: 0; border-radius: 100px; color: #fff; background: var(--azul); text-decoration: none; cursor: pointer; transition: background-color .3s, color .3s; }
.fs-btn:hover, .fs-btn:focus-visible { color: #fff; background: var(--azul-escuro); }
.fs-btn--lg { font-size: 1.2rem; }
.fs-btn--sm { font-size: 12px; padding: .5em .9em; }
.fs-btn--laranja { background: var(--laranja); } .fs-btn--laranja:hover { background: var(--laranja-hover); }
.fs-btn--rosa { background: var(--rosa); } .fs-btn--rosa:hover { background: var(--rosa-hover); }
.fs-btn--verde { background: var(--verde); } .fs-btn--verde:hover { background: var(--verde-hover); }
.fs-btn--lilas { background: var(--lilas); } .fs-btn--lilas:hover { background: var(--lilas-hover); }
.fs-btn--magenta { background: var(--magenta); } .fs-btn--magenta:hover { background: var(--magenta-hover); }
.fs-btn--branco { background: #fff; color: var(--azul); font-size: 20px; font-weight: 600; line-height: 1.2; padding: .5em 2em; }
.fs-btn--branco:hover, .fs-btn--branco:focus-visible { background: var(--azul); color: #fff; }
.fs-btn--icon { padding: .13em .8em .13em .25em; }
.fs-btn--icon i { font-size: 31px; line-height: 1; }
.fs-btn--whats { background: var(--verde); font-size: 34px; font-weight: 600; padding: .3em 1.6em; gap: .4em; }
.fs-btn--whats:hover { background: var(--verde-hover); }
.fs-btn--send { font-size: 1.2rem; gap: .6rem; }
.fs-btn--send i { font-size: .9em; }
.fs-btn[disabled] { opacity: .7; cursor: wait; }
@media (max-width: 600px) { .fs-btn--whats { font-size: 28px; } }

/* Títulos em pílula ------------------------------------------------------------------------------ */
.pill-title-wrap { display: flex; justify-content: center; margin-bottom: 4rem; }
.pill-title-wrap--sm { margin-bottom: 3rem; }
.pill-title { display: inline-block; color: #fff; background: var(--azul); border-radius: 100px; padding: .2rem 3rem; margin: 0; font-size: var(--h2); text-align: center; }
.pill-title--lilas { background: var(--lilas); }
.pill-title--verde { background: var(--verde); }
.pill-title--azul { background: var(--azul); }

/* Cabeçalho ------------------------------------------------------------------------------------------ */
.site-header { position: fixed; top: 0; left: 0; right: 0; z-index: 1030; height: var(--header-h); background: #fff; box-shadow: 0 0 2rem rgba(0, 0, 0, .12); transition: height .3s var(--ease); }
.site-header.is-sticky { height: var(--header-sticky-h); }
.header-inner { height: 100%; display: flex; align-items: center; justify-content: space-between; }
.header-brand { display: flex; align-items: center; flex-shrink: 0; height: var(--logo-h); transition: height .3s var(--ease); }
.site-header.is-sticky .header-brand { height: 48px; }
.header-brand img { height: 100%; width: auto; }
.header-nav { display: none; height: 100%; }
.header-menu { display: flex; align-items: stretch; height: 100%; margin: 0; padding: 0; list-style: none; }
.header-menu__item { display: flex; align-items: stretch; position: relative; }
.header-menu__item > a { --bg: var(--lilas); --bg-h: var(--lilas-500); position: relative; display: flex; align-items: center; padding: 5px 1rem; font-weight: 400; color: #fff; background: var(--bg);
  font-size: 16px; line-height: 1.3; border-radius: 0 0 0 1.5rem; transition: all .3s; }
.header-menu__item > a::after { content: ""; position: absolute; left: 100%; top: 0; bottom: 0; width: 1.5rem; background: var(--bg); transition: background .3s; }
.header-menu__item:last-child > a::after { width: max(2.5rem, calc((100vw - var(--grid)) / 2)); }
.header-menu__item > a:hover, .header-menu__item.is-current > a { --bg: var(--bg-h); color: #fff; padding-bottom: 20px; }
.header-menu__item > a > span { position: relative; z-index: 1; }
.header-menu .line2 { display: block; white-space: nowrap; }
.header-menu > li > a > span { white-space: nowrap; }
/* Cor do item (config/app.php, menu); a posição só define o empilhamento das abas. */
.header-menu__item--verde > a { --bg: var(--verde); --bg-h: var(--verde-700); }
.header-menu__item--magenta > a { --bg: var(--magenta); --bg-h: var(--magenta-600); }
.header-menu__item--laranja > a { --bg: var(--laranja); --bg-h: var(--laranja-700); }
.header-menu__item--rosa > a { --bg: var(--rosa); --bg-h: var(--rosa-800); }
.header-menu__item--azul > a { --bg: var(--azul); --bg-h: var(--azul-700); }
.header-menu__item--lilas > a { --bg: var(--lilas); --bg-h: var(--lilas-500); }
.header-menu__item--grafite > a { --bg: var(--grafite); --bg-h: var(--grafite-hover); }
.header-menu__item:nth-child(1) > a { z-index: 10; } .header-menu__item:nth-child(2) > a { z-index: 20; }
.header-menu__item:nth-child(3) > a { z-index: 30; } .header-menu__item:nth-child(4) > a { z-index: 40; }
.header-menu__item:nth-child(5) > a { z-index: 50; } .header-menu__item:nth-child(6) > a { z-index: 60; }
.header-menu__item:nth-child(7) > a { z-index: 70; }
.site-header.is-sticky .header-menu__item > a { border-radius: 0; }
@media (min-width: 1281px) { .header-nav { margin-left: 2rem; } .header-menu__item > a::after { width: 3rem; } }
/* Abas a partir de 1200 px: com 7 itens (Eventos), abaixo disso não cabem ao lado da logo. */
@media (min-width: 1200px) { .header-nav { display: block; } }
.nav-toggle { display: inline-flex; flex-direction: column; justify-content: center; gap: 5px; width: 44px; height: 44px; padding: 10px 8px; margin-right: -8px; border: 0; background: transparent; cursor: pointer; }
.nav-toggle span { display: block; height: 3px; border-radius: 2px; background: var(--azul); }
@media (min-width: 1200px) { .nav-toggle { display: none; } }

/* Menu mobile (offcanvas) */
.site-drawer { --bs-offcanvas-width: min(20rem, 85vw); background: #fff; display: flex; flex-direction: column; }
.drawer-head { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 1rem 1.25rem; border-bottom: 1px solid var(--borda); }
.drawer-brand img { height: 44px; width: auto; }
.drawer-close { width: 44px; height: 44px; border: 0; background: var(--fundo-alt); border-radius: 50%; color: var(--azul); font-size: 1.2rem; cursor: pointer; }
.drawer-links { list-style: none; margin: 0; padding: 1rem 1.25rem; display: grid; gap: .5rem; overflow-y: auto; }
.drawer-links a { display: block; padding: .75rem 1rem; border-radius: 0 0 0 1.25rem; color: #fff; background: var(--lilas); font-weight: 500; }
.drawer-links__item--verde a { background: var(--verde); } .drawer-links__item--magenta a { background: var(--magenta); } .drawer-links__item--laranja a { background: var(--laranja); }
.drawer-links__item--rosa a { background: var(--rosa); } .drawer-links__item--azul a { background: var(--azul); } .drawer-links__item--lilas a { background: var(--lilas); }
.drawer-links__item--grafite a { background: var(--grafite); }
.drawer-links a:hover, .drawer-links a[aria-current] { filter: brightness(.9); color: #fff; }
.drawer-label { margin: .5rem 1.25rem .25rem; font-size: .75rem; text-transform: uppercase; letter-spacing: .08em; color: var(--apagado); }
.drawer-anchors { list-style: none; margin: 0; padding: 0 1.25rem 1rem; }
.drawer-anchors a { display: block; padding: .45rem 0; color: var(--azul); border-bottom: 1px solid var(--borda); }
.drawer-foot { margin-top: auto; padding: 1rem 1.25rem 1.5rem; border-top: 1px solid var(--borda); }
.drawer-foot .fs-btn { width: 100%; }

/* Menu lateral de seções da Home ---------------------------------------------------------------- */
.anchor-nav { position: fixed; top: 0; bottom: 0; right: -500px; z-index: 110; display: flex; flex-direction: column; justify-content: center; transition: right .4s ease; pointer-events: none; }
.anchor-nav.is-active { right: 8px; }
.anchor-nav ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 4px; align-items: flex-end; }
.anchor-nav li { display: grid; justify-content: end; grid-template-columns: 0fr; transition: grid-template-columns .4s ease; pointer-events: auto; }
.anchor-nav a { display: flex; align-items: center; height: 34px; min-width: 34px; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; text-indent: 2em;
  border-radius: 100px; padding: 0 .8em; color: #fff; font-size: 16px; transition: all .4s ease; }
.anchor-nav li:hover, .anchor-nav li.is-current, .anchor-nav li:focus-within { grid-template-columns: 1fr; }
.anchor-nav li:hover a, .anchor-nav li.is-current a, .anchor-nav a:focus-visible { text-indent: 0; color: #fff; }
.anchor-nav__item--1 a { background: var(--verde); } .anchor-nav__item--1:hover a, .anchor-nav__item--1.is-current a { background: var(--verde-700); }
.anchor-nav__item--2 a { background: var(--lilas); } .anchor-nav__item--2:hover a, .anchor-nav__item--2.is-current a { background: var(--lilas-500); }
.anchor-nav__item--3 a { background: var(--rosa); } .anchor-nav__item--3:hover a, .anchor-nav__item--3.is-current a { background: var(--rosa-800); }
.anchor-nav__item--4 a { background: var(--azul); } .anchor-nav__item--4:hover a, .anchor-nav__item--4.is-current a { background: var(--azul-700); }
.anchor-nav__item--5 a { background: var(--magenta); } .anchor-nav__item--5:hover a, .anchor-nav__item--5.is-current a { background: var(--magenta-600); }
@media (max-width: 768px) { .anchor-nav a { height: 28px; min-width: 28px; padding: 2px .8em; } }

/* Heros (topo com vídeo, obra e associação) ---------------------------------------------------- */
.hero { position: relative; display: flex; flex-direction: column; justify-content: flex-end; min-height: calc(100vh - var(--header-h)); padding: 4rem 0;
  background: var(--azul) no-repeat center center / cover; overflow: hidden; color: #fff; }
.hero--parallax { min-height: calc(100vh - var(--header-sticky-h)); background-attachment: fixed; }
@media (hover: none), (max-width: 1024px) { .hero--parallax { background-attachment: scroll; } }
.hero::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 65%; background: linear-gradient(180deg, rgba(0, 0, 0, 0), rgba(0, 0, 0, .7)); pointer-events: none; z-index: 1; }
@media (min-width: 1080px) { .hero::after { height: 35%; } }
.hero__video { position: absolute; inset: 0; z-index: 0; overflow: hidden; pointer-events: none; }
.hero__video iframe { position: absolute; top: 50%; left: 50%; width: max(100%, 177.78vh); height: max(100%, 56.25vw); transform: translate(-50%, -50%); border: 0; opacity: 0; transition: opacity 1s; }
.hero__video.is-playing iframe { opacity: 1; }
.hero__content { position: relative; z-index: 10; display: flex; flex-direction: column; align-items: center; gap: 1.5rem; text-align: center; }
.hero__content > * { margin: 0; }
.hero__kicker { font-size: var(--h4); font-weight: 300; line-height: 1.2; color: #fff; }
.hero__title { font-size: var(--h2); font-weight: 300; line-height: 1.2; color: #fff; }
.hero__title strong { font-weight: 700; }
.hero__subtitle { font-size: 1.6rem; line-height: 1.3; color: #fff; }
.hero--associacao .hero__content { gap: 1.5rem; }
.hero--associacao .hero__title { font-weight: 600; margin-bottom: -1rem; }

/* Bairro Cidade ------------------------------------------------------------------------------------ */
.bairro { padding: var(--sec) 0; overflow: hidden; }
.bairro__grid { display: grid; grid-template-columns: 1fr; }
.bairro__media { position: relative; z-index: 20; }
.bairro__img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: bottom center; background: var(--azul); border-radius: 0 150px 0 0; }
.bairro__img--desktop, .bairro__img--tablet { display: none; }
.bairro__body { position: relative; z-index: 10; padding: 0 0 2rem; }
.bairro__pill { display: flex; align-items: center; color: #fff; background: var(--azul); border-radius: 0 50px 50px 0; margin: 0 4.5rem 2rem 0; padding: .5rem .5rem .5rem 1.5rem; }
.bairro__pill h2 { color: #fff; font-size: 30px; margin: 0; }
.bairro__pill img { width: 74px; margin-left: auto; }
.bairro__text { padding: 0 1.5rem; }
.bairro__cta { text-align: center; margin: 1.8rem 0 .3rem; line-height: 0; }
@media (min-width: 601px) {
  /* 1/3 + 2/3 do container (a imagem sangra à esquerda); o texto termina no gutter. */
  .bairro__grid { grid-template-columns: calc(var(--gutter) + (100% - 2 * var(--gutter)) / 3) 1fr; }
  .bairro__body { margin-right: var(--gutter); }
  .bairro__img--tablet { display: block; }
  .bairro__body { padding: 3.6rem 0 2rem; }
  .bairro__pill { margin: 0 0 2rem -6rem; padding: .5rem .5rem .5rem 8rem; }
  .bairro__pill h2 { font-size: 30px; }
  .bairro__pill img { width: 120px; }
  .bairro__text { padding: 0 0 0 2rem; }
}
@media (max-width: 600px) { .bairro__media { display: none; } }
@media (min-width: 1025px) {
  .bairro__grid { grid-template-columns: 1fr 1fr; }
  .bairro__img--tablet { display: none; }
  .bairro__img--desktop { display: block; }
  .bairro__pill { padding-left: 10rem; }
  .bairro__pill h2 { font-size: var(--h3); }
  .bairro__pill img { width: 140px; }
  /* Termina na borda do grid, como no WP. % = largura da coluna (metade da seção), sem contar a barra de rolagem como o 100vw. */
  .bairro__body { margin-right: max(var(--gutter), 100% - var(--grid) / 2); }
  .bairro__text { padding: 0 0 0 4rem; }
}
@media (min-width: 1080px) {
  .bairro__media { margin-right: -100px; height: 734px; }
  .bairro__img--desktop { border-radius: 0; -webkit-mask-image: var(--mask), linear-gradient(to left, transparent 0, transparent 319px, #000 319px); mask-image: var(--mask), linear-gradient(to left, transparent 0, transparent 319px, #000 319px);
    -webkit-mask-size: auto 100%; mask-size: auto 100%; -webkit-mask-repeat: no-repeat; mask-repeat: no-repeat; -webkit-mask-position: bottom right; mask-position: bottom right; }
}

/* Primeira Fase (contadores) ------------------------------------------------------------------- */
.fase { padding: var(--sec) 0; }
.counters { display: grid; grid-template-columns: 1fr; gap: 2rem; }
@media (min-width: 601px) { .counters { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1025px) { .counters { grid-template-columns: repeat(4, 1fr); } }
.counter { position: relative; border-radius: 50%; background: var(--c); box-shadow: 0 10px 20px 10px rgba(0, 0, 0, .2); color: #fff; width: 100%; }
.counter::before { content: ""; display: block; padding-bottom: 100%; }
.counter__inner { position: absolute; inset: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: .2rem; text-align: center; padding: 1rem; }
.counter__inner p { margin: 0; color: #fff; }
.counter__value { font-size: 4rem; line-height: 1; margin-bottom: -.5rem !important; font-weight: 300; font-variant-numeric: lining-nums tabular-nums; }
.counter__unit { font-size: 28px; font-weight: 400; line-height: 1.2; }
.counter__caption { font-weight: 300; }
@media (max-width: 1024px) { .counter__caption { display: none; } }
.pill-title-wrap--realidade { padding-top: 8rem; margin-bottom: -2rem; }
@media (max-width: 600px) { .pill-title-wrap--realidade { padding-top: 6.5rem; } }

/* Carrossel de fotos (fade + miniaturas) ----------------------------------------------------- */
.slider-section { padding: var(--sec) 1.5rem 2rem; }

.pslider { position: relative; max-width: 1650px; margin: 0 auto; border-radius: 0 150px 0 150px; overflow: hidden; background: var(--azul); box-shadow: 0 10px 20px 10px rgba(0, 0, 0, .2); }
.pslider__stage { position: relative; aspect-ratio: var(--ratio); }
.pslider__slide { position: absolute; inset: 0; margin: 0; opacity: 0; transition: opacity .25s linear; }
.pslider__slide.is-active { opacity: 1; z-index: 1; }
.pslider__slide img { width: 100%; height: 100%; object-fit: cover; display: block; }
.pslider__thumbs { position: absolute; left: 0; right: 0; bottom: 20px; z-index: 50; display: flex; gap: 4px; overflow-x: auto; scrollbar-width: none; padding: 0 4px; scroll-behavior: smooth; }
.pslider__thumbs::-webkit-scrollbar { display: none; }
.pslider__thumb { flex: 0 0 auto; width: 64px; height: 64px; padding: 0; border: 0; background: var(--azul); overflow: hidden; cursor: pointer; }
.pslider__thumb img { width: 100%; height: 100%; object-fit: cover; display: block; transition: opacity .3s; }
.pslider__thumb.is-active img { opacity: .3; }
@media (max-width: 1024px) { .pslider { border-radius: 0 100px 0 100px; } }
@media (max-width: 768px) { .pslider__thumbs { bottom: 5px; } .pslider__thumb { width: 2rem; height: 2rem; border: 2px solid #fff; } }
@media (max-width: 600px) { .pslider { border-radius: 0 50px 0 50px; } }

/* Abas de espaços --------------------------------------------------------------------------------- */
.tabs-section { padding: 8rem 0; }
.tabs-section--parque { padding: 6rem 0 8rem; }
.etabs { display: flex; align-items: center; }
.etabs__list { display: flex; flex-direction: column; flex-shrink: 0; }
.etabs__tab { font-family: inherit; font-weight: inherit; text-align: left; border: 0; background: transparent; cursor: pointer; transition: all .4s ease; }
.etabs--simple .etabs__tab { color: var(--c); font-size: 16px; line-height: 26px; padding: .8em 1.2em; border-radius: .3rem; margin: 0 0 .3em; }
.etabs--simple .etabs__tab:last-child { margin-bottom: 0; }
.etabs__sections { padding-left: 2.5rem; }
.etabs--simple .etabs__tab:hover { background: var(--soft); padding-left: 1.6em; }
.etabs--simple .etabs__tab.is-active { background: var(--c); color: #fff; padding-left: 1.6em; padding-right: .8em; }
.etabs--trendy .etabs__list { border-right: 1px solid var(--borda); align-self: stretch; justify-content: center; }
.etabs--trendy .etabs__tab { color: var(--azul); font-size: 30px; font-weight: 600; padding: 1em 1.5em 1em 0; min-width: 210px; position: relative; }
.etabs--trendy .etabs__tab.is-active::after { content: ""; position: absolute; right: -1px; top: 0; bottom: 0; width: 2px; background: var(--azul); }
.etabs__sections { flex: 1; min-width: 0; }
.etabs__section { display: block; }
.etabs__acc { display: none; }
.etabs__grid { display: grid; grid-template-columns: 1fr 1fr; align-items: center; }
.etabs__media { margin-right: -25%; }
.etabs__media img { display: block; width: 100%; height: auto; aspect-ratio: 1 / 1; object-fit: cover; }
.etabs__card { position: relative; z-index: 2; background: #fff; border-radius: 1.5rem; padding: 1.5rem; box-shadow: var(--sombra); }
.etabs__title { color: var(--title); font-size: var(--h5); margin-bottom: .7rem; }
.etabs--trendy .etabs__title { margin-bottom: 1rem; }
.etabs__card .rich-text > :last-child { margin-bottom: 0; }
.etabs__panel[hidden] { display: none; }
.etabs__panel:not([hidden]) { animation: tabFade .4s ease; }
@keyframes tabFade { from { opacity: 0; } to { opacity: 1; } }
/* Lista que abre e fecha: as simples até 768 px e a "trendy" até 540 px, como no WP (o JS usa os mesmos valores, em data-etabs). */
.etabs__acc { width: 100%; align-items: center; gap: .3rem; padding: 1rem 0; border: 0; background: none; font: inherit; line-height: 24px; color: var(--c); text-align: left; cursor: pointer; }
.etabs__acc i { font-size: 14px; transition: transform .3s; }
.etabs__acc[aria-expanded="true"] i { transform: rotate(180deg); }
.etabs--simple .etabs__acc i { margin-left: auto; }
.etabs--trendy .etabs__acc { justify-content: center; padding: 1rem 1.5rem; color: var(--texto); }
@media (max-width: 768px) {
  .etabs--simple { display: block; }
  .etabs--simple .etabs__list { display: none; }
  .etabs--simple .etabs__sections { padding-left: 0; }
  .etabs--simple .etabs__section { border-bottom: 1px solid var(--borda); }
  .etabs--simple .etabs__section:first-child { border-top: 1px solid var(--borda); }
  .etabs--simple .etabs__acc { display: flex; }
  .etabs--simple .etabs__panel { padding-bottom: 1.5rem; }
  .etabs--simple .etabs__grid { grid-template-columns: 1fr; }
  .etabs--simple .etabs__media { margin-right: 0; }
  .etabs--simple .etabs__media img { aspect-ratio: 3 / 2; }
  .etabs--simple .etabs__card { box-shadow: none; padding: 0; margin-top: 1.5rem; border-radius: 0; }}
/* 541–600 px: a "trendy" segue em abas, mas com a foto acima do texto, como no WP. */
@media (max-width: 600px) {
  .etabs--trendy .etabs__tab { font-size: 16px; padding: 1rem 1.5rem 1rem 0; min-width: 0; }
  .etabs--trendy .etabs__grid { grid-template-columns: minmax(0, 1fr); }
  .etabs--trendy .etabs__media { margin-right: 0; }
  .etabs--trendy .etabs__media img { aspect-ratio: 3 / 2; }
  .etabs--trendy .etabs__card { box-shadow: none; padding: 0; margin-top: 2rem; border-radius: 0; }
  .etabs--trendy .etabs__title { font-size: 20px; margin-bottom: 12px; }
}
@media (max-width: 540px) {
  .etabs--trendy { display: block; }
  .etabs--trendy .etabs__list { display: none; }
  .etabs--trendy .etabs__sections { padding-left: 0; }
  .etabs--trendy .etabs__section { border-bottom: 1px solid var(--borda); }
  .etabs--trendy .etabs__section:first-child { border-top: 1px solid var(--borda); }
  .etabs--trendy .etabs__acc { display: flex; }
  .etabs--trendy .etabs__panel { padding-bottom: 1.5rem; }
  .etabs--trendy .etabs__grid { grid-template-columns: 1fr; }
  .etabs--trendy .etabs__media { margin-right: 0; }
  .etabs--trendy .etabs__media img { aspect-ratio: 3 / 2; }
  .etabs--trendy .etabs__card { box-shadow: none; padding: 0; margin-top: 1.5rem; border-radius: 0; }}

/* Implantação (mapa interativo) ------------------------------------------------------------------ */
.implantacao { padding: 2rem 0; overflow-x: clip; }
.implantacao__inner { max-width: 1650px; margin: 0 auto; padding: 0 1.5rem; }
.implantacao__head { display: flex; flex-direction: column; align-items: center; gap: 1.4rem; text-align: center; margin-bottom: 4rem; }
.implantacao__head p { margin: 0; }
@media (max-width: 1024px) { .implantacao__head { margin-bottom: 2rem; } }
.imap__wrap { position: relative; z-index: 10; }
.imap__pins { position: absolute; inset: 0; z-index: 30; }
.imap__pin { position: absolute; width: 20px; height: 20px; z-index: 30; cursor: pointer; top: var(--dx); right: var(--dy); }
@media (min-width: 992px) { .imap__pin { top: var(--dy); left: var(--dx); right: auto; } }
.imap__pin::before, .imap__pin::after { content: ""; position: absolute; inset: 0; border-radius: 50%; }
.imap__pin::before { background: #fff; opacity: .6; z-index: 25; animation: pinPulse .9s ease-out infinite; }
.imap__pin::after { background: var(--rosa); border: 2px solid #fff; box-shadow: 0 2px 2px 2px rgba(0, 0, 0, .8); z-index: 30; }
@keyframes pinPulse { from { transform: scale(1); opacity: .6; } to { transform: scale(2.5); opacity: 0; } }
.imap__img { display: block; width: 100%; height: auto; position: relative; z-index: 20; }
.imap__img--desktop { display: none; }
@media (min-width: 992px) { .imap__img--desktop { display: block; } .imap__img--mobile { display: none; } }
.imap__tip { position: fixed; z-index: 1100; pointer-events: none; background: #fff; color: var(--texto); font-size: 14px; line-height: 1.3; padding: .4rem .7rem; border-radius: .25rem; box-shadow: 0 2px 10px rgba(0, 0, 0, .3); white-space: nowrap; }

/* Corretores ---------------------------------------------------------------------------------------- */
.corretores { background: var(--verde); padding: var(--sec) 0 2rem; }
.corretores__title { color: #fff; font-size: var(--h3); font-weight: 400; margin-bottom: 2rem; }
.corretores__title strong { font-weight: 700; }
.corretores-video { background: var(--verde); padding-top: 2rem; }
@media (max-width: 600px) { .corretores { padding-bottom: 1rem; } .corretores-video { padding-top: 1rem; } }
.yt-player { position: relative; aspect-ratio: 16 / 9; overflow: hidden; background: var(--azul); }
.yt-player > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.yt-player iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.yt-player__play { position: absolute; top: 50%; left: 50%; z-index: 2; width: 4em; height: 4em; margin: -2em 0 0 -2em; display: flex; align-items: center; justify-content: center;
  border: 0; border-radius: 50%; background: #fff; color: var(--azul); font-size: 1.3rem; cursor: pointer; transition: transform .4s ease; }
.yt-player__play:hover { transform: scale(1.2); }
.yt-player__play i { margin-left: .15em; }
.yt-player__play--sm { font-size: 1.1rem; }
.yt-player--live { max-height: 75vh; border-radius: 0 100px 0 100px; margin: 0 auto; }
@media (max-width: 600px) { .yt-player--live { border-radius: 0 50px 0 50px; } }
.page-title--live { color: var(--azul); }

/* Instagram ---------------------------------------------------------------------------------------- */
.insta { padding: 6rem 0; background: #fff repeat center top; background-size: auto; overflow: hidden; }
.insta__box { background: #fff; padding: 4.4rem 1.5rem 0; box-shadow: 0 0 20px 10px rgba(0, 0, 0, .3); }
.insta__grid { display: grid; grid-template-columns: 1fr 1fr; max-width: var(--grid); margin: 0 auto; }
.insta__phone img { display: block; max-width: 510px; width: 100%; margin-left: auto; position: relative; right: -2.6rem; z-index: 50; }
.insta__body { padding: 3.5rem 0 0 80px; }
.insta__text { color: var(--azul); font-size: var(--h4); font-weight: 400; line-height: 1.2; margin-bottom: 1rem; }
.insta__handle { margin-bottom: 4rem; }
.insta__handle a { position: relative; display: inline-flex; align-items: center; gap: .5rem; color: #fff; background: var(--azul); font-size: var(--h4); font-weight: 600; line-height: 1.2;
  padding: .4rem 2rem .4rem 0; border-radius: 0 100px 100px 0; }
.insta__handle a::before { content: ""; position: absolute; right: 100%; top: 0; bottom: 0; width: 250px; background: inherit; }
.insta__handle a:hover { color: #fff; }
.insta__logo { max-width: 160px; display: block; }
@media (min-width: 1281px) { .insta__handle a::before { width: 300px; } }
@media (max-width: 1280px) { .insta__phone img { max-width: 459px; } .insta__handle { margin-bottom: 2rem; } .insta__logo { max-width: 120px; } }
@media (max-width: 1024px) { .insta__grid { grid-template-columns: 2fr 3fr; } .insta__phone img { margin-left: -14vw; right: 0; width: calc(100% + 14vw); max-width: 510px; } .insta__body { padding: 1rem 0 0 30px; } .insta__logo { max-width: 90px; } }
@media (max-width: 767px) { .insta__handle a::before { width: 3.5rem; } }
@media (max-width: 600px) { .insta__box { padding: 0 1.5rem; } .insta__grid { grid-template-columns: minmax(0, 1fr); } .insta__phone { display: none; }
  .insta__handle a { display: block; } .insta__handle a i { margin-right: .5rem; } .insta__body { padding: 4rem 0 4rem 30px; } }

/* Localização (mapa do Google) ---------------------------------------------------------------- */
.location { padding: 6rem 0; }
.location__title { color: var(--azul); font-size: var(--h3); text-align: center; margin-bottom: 3rem; }
.location__frame { border-radius: 50px; overflow: hidden; }
.location__map { display: block; width: 100%; height: 450px; border: 0; background: var(--verde-50); }
.location--frame .location__frame { background: var(--lilas); box-shadow: var(--sombra); }
.location--frame .location__map { background: var(--lilas); }
@media (max-width: 600px) { .location__frame { border-radius: 30px; } }

/* Quem Está Construindo ---------------------------------------------------------------------------- */
.grupo-logo { margin: 2rem 0 4rem; text-align: center; }
.grupo-logo img { width: 300px; max-width: 100%; }
.empresas { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, 1fr); gap: 3rem; align-items: center; justify-items: center; }
.empresas img { width: 150px; max-height: 50px; object-fit: contain; }
.empresas li:last-child img { width: 200px; }
@media (max-width: 1024px) { .empresas { grid-template-columns: repeat(2, 1fr); gap: 2rem; } }
.wide-banner { padding: 4rem 2.5rem; }
.wide-banner img { display: block; width: 1600px; max-width: 100%; margin: 0 auto; border-radius: 0 100px 0 100px; }
.wide-banner--padded { padding: 4rem 2.5rem; }
@media (max-width: 600px) { .wide-banner { padding: 4rem 1.5rem; } .wide-banner img { border-radius: 0 50px 0 50px; } }
.mvv { display: grid; grid-template-columns: repeat(3, 1fr); gap: 3rem; }
.mvv__card { color: #fff; text-align: center; border-radius: 1.6rem; padding: 2rem; }
.mvv__card p { margin: 0; color: #fff; }
.mvv__title { font-size: var(--h5); color: #fff; }
.mvv__card--rosa { background: var(--rosa); } .mvv__card--lilas { background: var(--lilas); } .mvv__card--verde { background: var(--verde); }
@media (max-width: 1024px) { .mvv { grid-template-columns: 1fr; gap: 1.5rem; } }

/* Localização (por que Tijucas) ------------------------------------------------------------------- */
.tij-block { color: #fff; background: var(--azul); margin: 0 100px; padding: 4rem 2.5rem; }
.tij-block--first { border-radius: 1.6rem 1.6rem 0 0; }
.tij-block--last { border-radius: 0 0 1.6rem 1.6rem; }
.tij-block .rich-text, .tij-block .rich-text strong { color: #fff; }
.tij-title { color: #fff; font-size: var(--h3); text-align: center; }
.tij-photo { margin: 0; }
.tij-photo img { display: block; width: 1000px; max-width: 100%; margin: 0 auto; border-radius: 0 100px 0 100px; }
.tij-photo figcaption { width: 600px; max-width: 100%; margin: 0 auto; padding: .5rem 0; text-align: center; font-style: italic; }
.tij-cta { margin: 4rem 0 2rem; }
@media (max-width: 1024px) { .tij-block { margin: 0; } .tij-photo img { border-radius: 0; } }
@media (max-width: 600px) { .tij-block { padding: 2rem 1.5rem; } }

/* Destaques na Mídia --------------------------------------------------------------------------------- */
/* Coluna do WP: 2rem de margem lateral e 4rem de respiro (1rem e 2rem no celular). */
.midia > .fs-container { padding: 4rem calc(var(--gutter) + 2rem) 4rem; }
@media (max-width: 600px) { .midia > .fs-container { padding: 2rem calc(var(--gutter) + 1rem); } }
.midia__intro { width: 640px; max-width: 100%; margin-bottom: 4rem; }
.midia__intro .page-title { margin-bottom: 2rem; }
.midia__grid { display: grid; grid-template-columns: 1fr 1fr; column-gap: 1.5rem; row-gap: 3rem; }
@media (max-width: 1024px) { .midia__grid { grid-template-columns: 1fr; } }
.midia-card { display: flex; background: var(--fundo-alt); overflow: hidden; }
.midia-card__media { position: relative; z-index: 50; flex: 0 0 250px; width: 250px; }
.midia-card__photo { display: block; height: 100%; border: 1px solid var(--azul); overflow: hidden; background: #fff; }
.midia-card__photo img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: top center; }
.midia-card__logo { position: absolute; left: 0; right: 0; bottom: 0; z-index: 60; background: var(--azul); padding: .8rem 0 .2rem; text-align: center; }
.midia-card__logo img { width: 100px; max-height: 44px; object-fit: contain; }
.midia-card__body { flex: 1; min-width: 0; padding: 1rem; display: flex; flex-direction: column; }
.midia-card__title { font-size: 1.2rem; line-height: 1.2; margin-bottom: .6rem; }
.midia-card__title a { color: inherit; }
.midia-card__title a:hover { color: var(--azul); }
.midia-card__veiculo { color: var(--lilas-400); font-size: .8rem; margin: 0 0 .5rem; }
.midia-card__excerpt { color: var(--apagado); font-size: .8rem; line-height: 1.4; font-style: italic; margin-bottom: 2rem; }
.midia-card__link { display: inline-flex; align-items: center; gap: .5rem; color: var(--azul); margin-top: auto; }
.midia-card__link:hover { color: var(--laranja); }
@media (max-width: 600px) { .midia-card { flex-direction: column; } .midia-card__media { width: 100%; flex-basis: auto; } .midia-card__photo { aspect-ratio: 381 / 300; } }
.midia__more { text-align: center; margin-top: 3rem; }
.midia__more.is-loading .fs-btn { opacity: .6; pointer-events: none; }
.midia__empty { color: var(--apagado); }

/* Eventos: próximos em 2 por linha e já realizados em cards menores (3 por linha) ----------------- */
.eventos > .fs-container { padding: 4rem calc(var(--gutter) + 2rem) 4rem; }
@media (max-width: 600px) { .eventos > .fs-container { padding: 2rem calc(var(--gutter) + 1rem); } }
.eventos__intro { width: 640px; max-width: 100%; margin-bottom: 4rem; }
.eventos__intro .page-title { margin-bottom: 2rem; }
.eventos__bloco + .eventos__bloco { margin-top: 5rem; }
.eventos__titulo { display: inline-block; margin: 0 0 2.5rem; padding: .15em 1.2em; border-radius: 100px; background: var(--azul); color: #fff; font-size: 28px; line-height: 1.3; }
.eventos__titulo--rosa { background: var(--rosa); }
.eventos__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 2rem; }
.eventos__grid--passados { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.5rem; }
@media (max-width: 768px) { .eventos__grid { grid-template-columns: minmax(0, 1fr); } .eventos__grid--passados { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 600px) {
  .eventos__bloco + .eventos__bloco { margin-top: 3.5rem; }
  .eventos__titulo { font-size: 22px; margin-bottom: 1.5rem; }
  .eventos__grid { gap: 1.5rem; } .eventos__grid--passados { gap: 1rem; }
}

.evento-card__link { display: flex; flex-direction: column; height: 100%; background: var(--fundo-alt); color: var(--texto); border-radius: 0 0 0 3rem; overflow: hidden; transition: box-shadow .3s, transform .3s; }
.evento-card__link:hover, .evento-card__link:focus-visible { color: var(--texto); box-shadow: 0 .75rem 2rem rgba(0, 0, 0, .12); transform: translateY(-3px); }
.evento-card__media { position: relative; display: block; aspect-ratio: 3 / 2; background: var(--azul-50); overflow: hidden; }
.evento-card__media picture, .evento-passado__media picture { display: block; width: 100%; height: 100%; }
.evento-card__media img { display: block; width: 100%; height: 100%; object-fit: cover; }
.evento-card__badge { position: absolute; left: 0; top: 0; display: flex; flex-direction: column; align-items: flex-start; padding: 1rem 1.75rem 1.1rem 1.5rem; background: #fff; border-radius: 0 0 1.75rem 0; line-height: 1; }
.evento-card__day { font-size: 52px; font-weight: 700; color: var(--rosa); letter-spacing: -.02em; }
.evento-card__badge--periodo .evento-card__day { font-size: 40px; }
.evento-card__month { margin-top: .5rem; font-size: 14px; font-weight: 600; color: var(--azul); letter-spacing: .08em; }
.evento-card__body { display: flex; flex-direction: column; flex: 1; padding: 2rem 2.25rem 2.25rem; }
.evento-card__date { color: var(--rosa-800); font-size: 13px; line-height: 1.4; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; margin-bottom: .6rem; }
.evento-card__title { font-size: 28px; line-height: 1.15; font-weight: 600; color: var(--titulo); margin-bottom: .75rem; }
.evento-card__text { font-size: 16px; line-height: 1.55; color: var(--apagado); margin-bottom: 1.75rem; }
.evento-card__more { align-self: flex-start; display: inline-flex; align-items: center; gap: .6rem; margin-top: auto; padding: .6em 1.75em; border-radius: 100px; background: var(--azul); color: #fff; font-size: 17px; font-weight: 400; transition: background .3s; }
.evento-card__more i { font-size: .85em; }
.evento-card__link:hover .evento-card__more, .evento-card__link:focus-visible .evento-card__more { background: var(--azul-700); }
@media (max-width: 600px) {
  .evento-card__link { border-radius: 0 0 0 2rem; }
  .evento-card__badge { padding: .75rem 1.25rem .85rem 1rem; border-radius: 0 0 1.25rem 0; }
  .evento-card__day { font-size: 40px; } .evento-card__badge--periodo .evento-card__day { font-size: 32px; }
  .evento-card__month { font-size: 12px; }
  .evento-card__body { padding: 1.25rem 1.25rem 1.5rem; }
  .evento-card__date { font-size: 12px; }
  .evento-card__title { font-size: 24px; }
  .evento-card__text { font-size: 15px; margin-bottom: 1.25rem; }
  .evento-card__more { font-size: 16px; min-height: 44px; }
}

/* Já realizados: cards verticais menores (3 por linha), capa inteira em 3:2 no topo, sem vão nem corte. */
.evento-passado__link { display: flex; flex-direction: column; height: 100%; background: var(--fundo-alt); color: var(--texto); overflow: hidden; transition: box-shadow .3s; }
.evento-passado__link:hover, .evento-passado__link:focus-visible { color: var(--texto); box-shadow: 0 .5rem 1.5rem rgba(0, 0, 0, .1); }
.evento-passado__media { display: block; aspect-ratio: 3 / 2; background: var(--borda); }
.evento-passado__media img { display: block; width: 100%; height: 100%; object-fit: cover; }
.evento-passado__body { flex: 1; display: flex; flex-direction: column; padding: 1.1rem 1.25rem 1.25rem; }
.evento-passado__date { font-size: 14px; line-height: 1.4; color: var(--apagado); margin-bottom: .4rem; }
.evento-passado__title { font-size: 20px; line-height: 1.2; font-weight: 600; color: var(--titulo); margin-bottom: .5rem; }
.evento-passado__text { font-size: 14px; line-height: 1.45; color: var(--apagado); margin-bottom: 1rem; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.evento-passado__more { display: inline-flex; align-items: center; gap: .5rem; margin-top: auto; color: var(--azul); font-size: 15px; font-weight: 500; }
.evento-passado__link:hover .evento-passado__more { color: var(--laranja-hover); }
@media (max-width: 600px) {
  .evento-passado__body { padding: .75rem .8rem .9rem; }
  .evento-passado__date { font-size: 12px; line-height: 1.35; }
  .evento-passado__title { font-size: 16px; margin-bottom: .6rem; }
  .evento-passado__text { display: none; }
  .evento-passado__more { font-size: 14px; }
}

/* Estágio da Obra ------------------------------------------------------------------------------------ */
.obra { padding-top: 2rem; }
.obra__box { width: 868px; max-width: 100%; margin: 0 auto; }
.obra__head { display: grid; grid-template-columns: 1fr 1fr; align-items: end; margin-bottom: 1rem; }
.obra__geral { font-size: var(--h4); font-weight: 400; margin: 0; }
.obra__update { text-align: right; margin: 0; }
.obra__bar { border: 1px solid #63a822; border-radius: 100px; margin-bottom: 4rem; }
.obra__bar-fill { height: 3rem; line-height: 3rem; border-radius: 50px; background: linear-gradient(90deg, #abd040, #63a822); color: #fff; text-align: right; font-size: 1.2rem; font-weight: 600; padding: 0 .5rem; min-width: 3.5rem; }
.obra__etapas { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: 1fr 1fr; gap: 2rem; align-items: center; }
.obra__etapas li { display: flex; align-items: center; gap: 1.2rem; }
.obra__mini { position: relative; flex: 0 0 40%; height: 10px; border: 1px solid rgba(134, 167, 246, .5); border-radius: 100px; }
.obra__mini-fill { display: block; height: 100%; border-radius: 100px; background: linear-gradient(90deg, #86a7f6, #6781f2); }
.obra__mini-pct { position: absolute; bottom: 100%; left: 0; color: var(--lilas); font-size: 16px; font-weight: 600; letter-spacing: 1px; line-height: 1.4; }
.obra__etapa { font-size: 1.2rem; line-height: 1.3; }
@media (max-width: 600px) { .obra__head { grid-template-columns: 1fr; } .obra__update { text-align: inherit; } .obra__etapas { grid-template-columns: 1fr; } .obra__bar { margin-bottom: 3rem; } }

/* Carrossel de 2 fotos (Estágio da Obra) */
.carousel2 { position: relative; padding: 0 2rem; }
.carousel2__viewport { overflow: hidden; }
.carousel2__track { list-style: none; margin: 0; padding: 0; display: flex; transition: transform .5s ease; }
.carousel2__item { flex: 0 0 50%; padding: 0 .75rem; }
.carousel2__img { display: block; overflow: hidden; border-radius: 0 50px 0 50px; margin-bottom: 1rem; }
.carousel2__img img { display: block; width: 100%; aspect-ratio: 16 / 9; object-fit: cover; transition: transform .3s; }
.carousel2__img:hover img { transform: scale(1.05); }
.carousel2__caption { text-align: center; font-size: 16px; margin: 0; }
.carousel2__nav { position: absolute; top: calc(50% - 1.5rem); z-index: 5; width: 2.4rem; height: 2.4rem; transform: translateY(-50%); border: 0; border-radius: 100px; background: var(--verde); color: #fff; font-size: 1rem; cursor: pointer; transition: background .3s; }
.carousel2__nav:hover { background: var(--verde-hover); }
.carousel2__nav[disabled] { opacity: .4; cursor: default; }
.carousel2__nav--prev { left: -.5rem; } .carousel2__nav--next { right: -.5rem; }
@media (max-width: 768px) { .carousel2__item { flex-basis: 100%; } .carousel2__img { border-radius: 0 25px 0 25px; } }

/* Formulários (Contato e Trabalhe conosco) ----------------------------------------------------- */
.contato { padding: 2rem 0 6rem; }
.contato__grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 3rem; align-items: center; }
.form-card { border: 1px solid rgba(10, 41, 88, .15); border-radius: 1.6rem; padding: 2.5rem; margin-right: 10%; }
.form-card--center { width: 768px; max-width: 100%; margin: 0 auto; }
.form-card__title { font-size: var(--h4); margin-bottom: 2rem; }
.fs-form { display: flex; flex-direction: column; gap: 2.4rem; }
.form-group { position: relative; display: flex; flex-direction: column; }
.form-group--third { max-width: 33.33%; min-width: 120px; }
.form-group label { color: var(--azul); font-size: .7rem; text-transform: uppercase; letter-spacing: -.2px; font-weight: 600; line-height: 1.3; margin-bottom: .2rem; }
.fs-form input[type="text"], .fs-form input[type="email"], .fs-form select, .fs-form textarea { width: 100%; min-height: 2rem; font-family: inherit; font-size: 1rem; font-weight: 300; color: var(--texto);
  background: transparent; border: 0; border-bottom: 1px solid rgba(10, 41, 88, .15); border-radius: 0; padding: 0; line-height: 32px; transition: border-color .2s, box-shadow .2s; appearance: none; }
.fs-form select { background: transparent url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M0 0h10L5 6z' fill='%230a2958'/%3E%3C/svg%3E") no-repeat right .25rem center; padding-right: 1.5rem; }
.fs-form textarea { resize: vertical; min-height: 128px; padding: 5.8px 0; line-height: 1.4; }
.fs-form input:focus, .fs-form select:focus, .fs-form textarea:focus { outline: none; border-bottom-color: var(--rosa); box-shadow: 0 1px 0 0 var(--rosa); }
.fs-form ::placeholder { color: #8a8a90; opacity: 1; }
/* Arquivo como no WP: sem caixa no botão, sublinhado como os demais campos. */
.fs-form input[type="file"] { width: 100%; height: 35px; font-family: inherit; font-size: 1rem; font-weight: 300; line-height: 32px; color: var(--texto); border-bottom: 1px solid rgba(10, 41, 88, .15); cursor: pointer; }
.fs-form input[type="file"]::file-selector-button { font: inherit; color: #000; background: transparent; border: 0; padding: 1px 6px 1px 0; margin: 0 4px 0 0; cursor: pointer; }
.fs-form .is-invalid { border-bottom-color: #c62828 !important; }
.field-error { color: #c62828; font-size: .8rem; margin-top: .3rem; }
.form-hint { color: var(--apagado); font-size: .75rem; margin-top: .3rem; }
.form-row-2 { display: grid; grid-template-columns: 1fr 1fr; gap: 2.4rem; }
.form-alert { color: #c62828; font-size: .9rem; }
.form-hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.form-success { text-align: center; padding: 2rem 0; }
.form-success i { font-size: 3rem; color: var(--verde); margin-bottom: 1rem; }
.form-success p { font-size: 1.1rem; }
.fs-form .fs-btn { align-self: flex-start; }
.contato__whats-title { font-size: var(--h4); margin-bottom: 1rem; }
.contato__blocks { display: grid; gap: 1.6rem; margin: 2rem 0; }
.contato__label { font-size: var(--h6); font-weight: 400; margin-bottom: 2px; }
.contato__phone { margin: 0; display: flex; align-items: baseline; gap: .5rem; }
.contato__phone small { font-size: 1rem; line-height: 1; }
.contato__phone span { font-size: 2rem; line-height: 1; }
.contato__work { display: inline-flex; align-items: center; gap: .5rem; color: var(--azul); text-decoration: underline; }
.contato__work:hover { color: var(--laranja); }
@media (max-width: 1280px) { .form-card { padding: 2.5rem; } }
@media (max-width: 1024px) { .contato__grid { grid-template-columns: minmax(0, 1fr); } .form-card { width: 768px; max-width: 100%; margin: 0 auto; padding: 1.5rem; } .contato__info { width: 768px; max-width: 100%; margin: 0 auto; } }
@media (max-width: 600px) { .form-card { padding: 1.5rem; } .contato__info { padding-top: 2rem; } .form-row-2 { grid-template-columns: 1fr; gap: 2.4rem; } .form-group--third { max-width: none; } }
.trabalhe { padding: 2rem 0 6rem; }

/* Associação, texto, mapa do site, erro -------------------------------------------------------- */
.assoc-logo { margin: 0 0 4rem; text-align: center; line-height: 0; }
.assoc-logo img { width: 923px; max-width: 100%; }
.texto-page .rich-text { max-width: none; }
.sitemap-cols { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 2rem; }
.sitemap-cols h2 { font-size: var(--h5); color: var(--azul); }
.sitemap-cols ul { padding-left: 1.2rem; }
.error-page { padding: 4rem 0 4rem; }
.error-title { font-size: var(--h2); margin-bottom: .5rem; }
.error-text { margin-bottom: 1rem; }

/* Informações (IA Generator) -------------------------------------------------------------------- */
.crumbs { list-style: none; display: flex; flex-wrap: wrap; gap: .4rem; margin: 0 0 1.5rem; padding: 0; font-size: .85rem; color: var(--apagado); }
.crumbs li + li::before { content: "/"; margin-right: .4rem; opacity: .6; }
.info-list__intro { max-width: 760px; margin-bottom: 3rem; }
.info-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 2rem; }
.info-card { background: var(--fundo-alt); border-radius: 0 40px 0 40px; overflow: hidden; display: flex; flex-direction: column; }
.info-card__cover img { display: block; width: 100%; aspect-ratio: 16 / 9; object-fit: cover; }
.info-card__body { padding: 1.5rem; display: flex; flex-direction: column; flex: 1; }
.info-card__title { font-size: 1.25rem; }
.info-card__excerpt { font-size: .95rem; color: var(--apagado); }
.info-card__link { margin-top: auto; font-weight: 600; }
.info-layout { display: grid; grid-template-columns: minmax(0, 1fr) 320px; gap: 3rem; align-items: start; }
.info-article__cover img { display: block; width: 100%; border-radius: 0 60px 0 60px; margin-bottom: 2rem; }
.info-article__lead { font-size: 1.15rem; color: var(--azul); }
.info-gallery { display: grid; grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)); gap: .75rem; margin: 2rem 0; }
.info-gallery img { display: block; width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }
.info-article__back { margin-top: 2rem; }
.info-aside { position: sticky; top: calc(var(--header-sticky-h) + 1.5rem); display: grid; gap: 1.5rem; }
.info-aside__cta { background: var(--azul); color: #fff; border-radius: 1.6rem; padding: 2rem; }
.info-aside__cta h2 { color: #fff; font-size: var(--h5); }
.info-aside__box { border: 1px solid var(--borda); border-radius: 1.6rem; padding: 1.5rem; }
.info-aside__box h2 { font-size: 1.1rem; }
.info-aside__box ul { padding-left: 1.1rem; margin: 0; }
@media (max-width: 1024px) { .info-layout { grid-template-columns: 1fr; } .info-aside { position: static; } }
.pager { display: flex; justify-content: center; align-items: center; gap: .4rem; margin-top: 3rem; }
.pager a, .pager span { display: inline-flex; align-items: center; justify-content: center; min-width: 2.5rem; height: 2.5rem; border-radius: 100px; color: var(--azul); }
.pager a:hover { background: var(--azul-50); }
.pager [aria-current] { background: var(--azul); color: #fff; }
.pager .is-disabled { opacity: .35; }
.pager .icon { width: 16px; height: 16px; }
@media (max-width: 600px) { .pager-num:not(.is-near), .pager .is-gap { display: none; } }

/* Rodapé ---------------------------------------------------------------------------------------------- */
.site-footer { color: #e7e9fd; }
.footer-main-wrap { background: var(--azul); padding: 4rem 0 var(--sec); }
.site-footer a { color: #fff; }
.site-footer a:hover { color: var(--laranja); }
.footer-small { font-size: .8rem; line-height: 1.6; margin: 0; color: #e7e9fd; }
.footer-registro { margin-bottom: .8rem; }
.footer-top-mobile { display: none; margin-bottom: 2.5rem; }
.footer-main { display: grid; grid-template-columns: 2fr 1fr 1.2fr 1fr; gap: 1.5rem; margin-bottom: 2.5rem; }
.footer-col--brand { margin-right: 10%; }
.footer-brand { display: inline-block; margin-bottom: 1.5rem; }
.footer-brand img { width: 280px; max-width: 100%; height: auto; }
.footer-brand .brand-invert { filter: brightness(0) invert(1); }
.footer-col:not(.footer-col--brand) { padding-top: 56px; }
.footer-title { color: #fff; font-size: var(--h6); font-weight: 500; margin-bottom: 1.2rem; }
.footer-links { list-style: none; margin: 0; padding: 0; display: grid; gap: .4rem; font-size: .8rem; line-height: 1.4; }
.footer-phone { margin: 0 0 .3rem; }
.footer-phone a { display: inline-flex; align-items: baseline; gap: .6rem; }
.footer-phone small { font-size: .8rem; }
.footer-phone span { font-size: 1.6rem; line-height: 1; }
.footer-socials { list-style: none; margin: 0; padding: 0; display: flex; gap: .5em; font-size: 1rem; }
.footer-socials a { display: inline-flex; width: 1.6em; height: 1.6em; align-items: center; }
.footer-group { padding-left: 2rem; }
.footer-group img { display: block; height: 35px; width: auto; }
@media (max-width: 1024px) { .footer-group { padding-top: 1rem; padding-bottom: 1rem; } }
@media (max-width: 600px) { .footer-group { padding-left: 0; } }
.footer-bottom { background: var(--azul-escuro); padding: 1.5rem 0; font-size: 14px; }
.footer-legal { list-style: none; margin: 0 0 4.5px; padding: 0 0 4.5px; display: flex; flex-wrap: wrap; gap: .4rem 1.5rem; border-bottom: 1px solid #0d3573; }
.footer-bottom-row { display: flex; flex-wrap: wrap; justify-content: space-between; gap: .5rem 2rem; }
.footer-bottom-row p { margin: 0; }
.credit a { font-weight: 600; }
@media (max-width: 1024px) {
  .footer-top-mobile { display: block; }
  .footer-col--brand { display: none; }
  .footer-col:not(.footer-col--brand) { padding-top: 0; }
}
@media (max-width: 768px) { .footer-main { grid-template-columns: 1fr 1.5fr 1fr; } }
@media (max-width: 660px) { .footer-main { grid-template-columns: 1fr; gap: 2.5rem; } }
@media (max-width: 600px) {
  .footer-top-mobile { text-align: center; }
  .footer-top-mobile .footer-brand img { margin: 0 auto; }
  .footer-bottom { padding-bottom: 3.5rem; }
}

/* Botões flutuantes e aviso de cookies ------------------------------------------------------------ */
.float-stack { position: fixed; right: 1.25rem; bottom: 1.25rem; z-index: 1040; display: flex; flex-direction: column; align-items: center; gap: .75rem; }
.float-btn { width: 56px; height: 56px; display: inline-flex; align-items: center; justify-content: center; border-radius: 50%; color: #fff; box-shadow: 0 4px 14px rgba(0, 0, 0, .25); transition: transform .2s, opacity .3s, visibility .3s; }
.float-btn:hover { color: #fff; transform: scale(1.06); }
.float-whatsapp { background: #25d366; font-size: 30px; }
.float-top { background: var(--azul); font-size: 1.1rem; opacity: 0; visibility: hidden; }
.float-top.show { opacity: 1; visibility: visible; }
.cookie-bar { position: fixed; left: 0; right: 0; bottom: 0; z-index: 1035; display: flex; align-items: center; justify-content: center;
  background: #fff; box-shadow: 0 -5px 15px rgba(0, 0, 0, .15); padding: 10px 5px; font-size: 13px; line-height: 20px; }
.cookie-bar p { margin: 0 5px; }
.cookie-bar .fs-btn { flex: none; margin: 0 5px; font-size: 13px; padding: .56em .8em; }
.cookie-bar[hidden] { display: none; }
body.has-cookie-bar .float-stack { bottom: calc(1.25rem + var(--cookie-h, 0px)); }

/* Entrada ao rolar (site.js) */
.rv { opacity: 0; transform: translateY(24px); transition: opacity .6s ease var(--rv-d, 0ms), transform .6s ease var(--rv-d, 0ms); }
.rv.is-in { opacity: 1; transform: none; }

/* Fancybox: legenda do mapa e das fotos */
.fancybox__caption { font-family: "Bricolage Grotesque", system-ui, sans-serif; }
