@font-face {
  font-family: "Alfabet";
  src: url("../fonts/Alfabet-Regular.woff2") format("woff2");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "Alfabet";
  src: url("../fonts/Alfabet-SemiBold.woff2") format("woff2");
  font-weight: 700;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "Good Karma";
  src: url("../fonts/GoodKarma.woff2") format("woff2");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}

:root {
  --blue: #0098c3;
  --blue-dark: #007da4;
  --navy: #123f59;
  --green: #5a9d3c;
  --gold: #e2ad43;
  --warm-gray: #b8b3ad;
  --dark-gray: #756f6a;
  --text: #3d4548;
  --muted: #77736f;
  --soft: #f2f2f0;
  --footer-soft: #e9e9e6;
  --line: #d7d6d3;
  --white: #fff;
  --shadow: 0 20px 38px rgba(45, 45, 42, .16);
  --shadow-soft: 0 14px 28px rgba(35, 45, 55, .12);
  --radius-xl: 42px;
  --radius-lg: 28px;
  --radius-md: 18px;
  --wide: min(1400px, calc(100vw - 64px));
  --narrow: min(1150px, calc(100vw - 64px));
  /* Padrão do site público. Para voltar à Alfabet: coloque os .woff2 em
     assets/fonts/ e prefixe "Alfabet", antes de "Albert Sans" nesta lista. */
  --font-base: "Albert Sans", "Inter", Arial, sans-serif;
  --font-script: "Good Karma", "Great Vibes", "Segoe Script", cursive;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  font-family: var(--font-base);
  color: var(--text);
  background: #fff;
  overflow-x: hidden;
  -webkit-font-smoothing: antialiased;
}
a { color: inherit; text-decoration: none; }
img, video { display: block; max-width: 100%; }
button, input { font: inherit; }
.icon {
  width: 1em;
  height: 1em;
  fill: none;
  stroke: currentColor;
  stroke-width: 4;
  stroke-linecap: round;
  stroke-linejoin: round;
  flex: 0 0 auto;
}
.material-symbols-rounded {
  font-family: "Material Symbols Rounded";
  font-weight: normal;
  font-style: normal;
  font-size: 20px;
  line-height: 1;
  letter-spacing: 0;
  text-transform: none;
  display: inline-flex;
  white-space: nowrap;
  direction: ltr;
  font-feature-settings: "liga";
  -webkit-font-feature-settings: "liga";
  -webkit-font-smoothing: antialiased;
}
.icon-down {
  font-variation-settings: "FILL" 0, "wght" 500, "GRAD" 0, "opsz" 24;
  transition: transform .22s ease;
}
.wide-shell { width: var(--wide); margin-inline: auto; }
.content-narrow { width: var(--narrow); margin-inline: auto; }
.block-spacing { margin-top: clamp(62px, 7vw, 112px); }
.centered-action { display: flex; justify-content: center; margin-top: 34px; }

/* HEADER 100% COM CONTEÚDO 1400 */
.site-header {
  position: fixed;
  inset: 0 0 auto 0;
  z-index: 1000;
  pointer-events: none;
  --header-height: 132px;
  --header-logo: 70px;
  --header-radius: 0 0 34px 34px;
  --header-shadow: 0 15px 42px rgba(44, 48, 52, .13);
  --header-gap: 22px;
}
.site-header.is-compact {
  --header-height: 96px;
  --header-logo: 60px;
  --header-radius: 0;
  --header-shadow: 0 10px 28px rgba(44, 48, 52, .12);
  --header-gap: 14px;
}
.header-canvas {
  width: 100%;
  min-height: var(--header-height);
  background: rgba(255,255,255,.96);
  border-radius: var(--header-radius);
  box-shadow: var(--header-shadow);
  backdrop-filter: blur(18px);
  pointer-events: auto;
  transition: min-height .34s ease, border-radius .34s ease, box-shadow .34s ease, background-color .34s ease;
}
.header-inner {
  width: var(--wide);
  height: var(--header-height);
  margin-inline: auto;
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  align-items: center;
  gap: 30px;
  transition: height .34s ease, grid-template-columns .34s ease, gap .34s ease;
}
.brand {
  width: auto;
  height: var(--header-logo);
  display: block;
  justify-self: start;
  transition: height .34s ease;
}
.brand img { width: auto; height: 100%; max-width: 100%; object-fit: contain; }
.header-right {
  min-width: 0;
  display: grid;
  align-content: center;
  gap: var(--header-gap);
  transition: gap .34s ease;
}
.header-tools {
  position: relative;
  z-index: 4;
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 16px;
  min-height: 36px;
  color: var(--muted);
}
.tool-pill,
.language-pill {
  border: 0;
  height: 28px;
  padding: 0 14px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  border-radius: 999px;
  background: #f4f4f3;
  color: #7c7773;
  font-size: 16px;
  line-height: 1;
  white-space: nowrap;
  transition: background-color .18s ease, color .18s ease, box-shadow .18s ease;
}
.tool-pill .icon { font-size: 20px; stroke-width: 3.5; color: var(--warm-gray); }
.weather-pill .weather-ic { font-size: 22px; line-height: 1; color: var(--warm-gray); }
.weather-pill { min-width: 240px; }
.weather-pill strong { font-weight: 500; font-size: 16px; min-width: 54px; }
.weather-pill span { overflow: hidden; text-overflow: ellipsis; }
.weather-pill.loading { opacity: .65; }
.header-social { display: inline-flex; align-items: center; gap: 12px; margin-left: 4px; }
.header-social a { color: var(--warm-gray); display: inline-flex; font-size: 17px; }
.header-social a:hover { color: var(--blue); }
.header-social .icon { stroke-width: 3.7; }
.language-pill { cursor: pointer; font-weight: 700; padding-inline: 13px; }
.language-switcher { position: relative; z-index: 10; }
.language-switcher:hover .language-pill,
.language-switcher:focus-within .language-pill {
  background: #ededeb;
  color: #5c5753;
}
.language-switcher:hover .language-pill .icon-down,
.language-switcher:focus-within .language-pill .icon-down { transform: rotate(180deg); }
.language-menu {
  position: absolute;
  z-index: 20;
  top: calc(100% + 10px);
  right: 0;
  width: 188px;
  padding: 8px;
  display: grid;
  gap: 2px;
  background: #fff;
  border-radius: 8px;
  box-shadow: 0 18px 36px rgba(47, 48, 47, .16);
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transform: translateY(8px);
  transition: opacity .18s ease, transform .18s ease, visibility .18s ease;
}
.language-switcher:hover .language-menu,
.language-switcher:focus-within .language-menu {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transform: translateY(0);
}
.language-menu a {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 10px 12px;
  border-radius: 6px;
  color: #77736f;
  font-size: 13px;
  line-height: 1;
  transition: background-color .18s ease, color .18s ease;
}
.language-menu a:hover,
.language-menu a:focus,
.language-menu a.is-active {
  background: #f4f4f3;
  color: #5c5753;
}
.language-menu small {
  font-size: 12px;
  color: var(--warm-gray);
}

.main-nav > ul {
  position: relative;
  z-index: 2;
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: clamp(30px, 4.2vw, 78px);
}
.nav-item { position: relative; --menu-color: var(--blue); }
.nav-item--sanctuary { --menu-color: var(--dark-gray); }
.nav-item--celebrations { --menu-color: var(--gold); }
.nav-item--news { --menu-color: var(--blue); }
.nav-item--tourism { --menu-color: var(--navy); }
.nav-item--social { --menu-color: var(--green); }
.nav-item--projects { --menu-color: #6f756e; }
.main-nav a {
  color: #77736f;
  font-size: 17px;
  font-weight: 400;
  letter-spacing: 0;
  line-height: 1;
  display: inline-flex;
  align-items: center;
  gap: 5px;
  transition: color .18s ease;
}
.main-nav > ul > li > a {
  padding: 12px 0 15px;
  border-bottom: 2px solid transparent;
}
.main-nav > ul > li:hover > a,
.main-nav > ul > li:focus-within > a {
  color: #5c5753;
  border-bottom-color: var(--menu-color);
}
.caret { font-size: 20px; opacity: .72; margin-left: -2px; }
.has-submenu:hover > a .caret,
.has-submenu:focus-within > a .caret,
.has-submenu.open > a .caret { transform: rotate(180deg); }
.submenu {
  position: absolute;
  left: 50%;
  top: calc(100% - 6px);
  min-width: 164px;
  padding: 20px 22px 22px;
  background: #fff;
  border-radius: 0 0 32px 32px;
  box-shadow: 0 24px 38px rgba(47, 48, 47, .16);
  display: grid;
  gap: 14px;
  transform: translate(-50%, 12px);
  opacity: 0;
  visibility: hidden;
  transition: .18s ease;
}
/* Ponte invisível: mantém o hover ativo entre o link e o submenu */
.submenu::before {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: 100%;
  height: 16px;
}
.submenu a {
  color: #7a7672;
  font-size: 17px;
  line-height: 1;
  font-weight: 400;
  padding: 0;
  white-space: nowrap;
}
.submenu a:hover { color: var(--menu-color); font-weight: 700; }
.has-submenu:hover .submenu,
.has-submenu:focus-within .submenu {
  opacity: 1;
  visibility: visible;
  transform: translate(-50%, 0);
}
.nav-toggle { display: none; }

/* HERO 100% */
.hero-slider {
  position: relative;
  width: 100%;
  min-height: clamp(640px, 63vw, 860px);
  overflow: hidden;
  background: #0ca6c3;
  isolation: isolate;
}
.hero-track,
.hero-slide { position: absolute; inset: 0; }
.hero-slide {
  opacity: 0;
  pointer-events: none;
  transition: opacity .7s ease, transform 1.1s ease;
  transform: scale(1.01);
}
.hero-slide.is-active {
  opacity: 1;
  pointer-events: auto;
  transform: scale(1);
}
.hero-media,
.hero-poster {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center top;
}
.hero-slide[data-type="video"] .hero-poster {
  position: absolute;
  inset: 0;
  z-index: -1;
}
.hero-slide[data-type="video"] video:not([src]) + .hero-poster,
.hero-slide[data-type="video"] video { background: transparent; }
.hero-wash {
  position: absolute;
  inset: 0;
  background:
    radial-gradient(circle at 50% 32%, rgba(0, 150, 185, .2), transparent 44%),
    linear-gradient(180deg, rgba(0, 160, 191, .63) 0%, rgba(0, 174, 203, .4) 32%, rgba(255,255,255,.38) 72%, #fff 100%),
    linear-gradient(90deg, rgba(0, 125, 161, .44), rgba(255,255,255,.05) 50%, rgba(0, 112, 147, .38));
}
.hero-content {
  position: absolute;
  left: 50%;
  bottom: clamp(122px, 12vw, 184px);
  width: min(980px, calc(100vw - 40px));
  transform: translateX(-50%);
  text-align: center;
  color: #fff;
  text-shadow: 0 7px 24px rgba(0, 83, 103, .28);
}
.hero-eyebrow {
  margin: 0;
  font-size: clamp(37px, 5vw, 76px);
  line-height: .9;
  font-weight: 800;
  letter-spacing: -.055em;
}
.hero-content h1 {
  margin: -2px 0 22px;
  font-family: var(--font-script);
  font-size: clamp(84px, 10vw, 160px);
  line-height: .74;
  font-weight: 400;
  letter-spacing: -.045em;
}
.hero-caption {
  margin: 0;
  color: #0c4e65;
  text-shadow: none;
  font-size: clamp(16px, 1.5vw, 22px);
  line-height: 1.1;
  font-weight: 500;
}
.hero-arrow {
  position: absolute;
  z-index: 4;
  top: 50%;
  width: 48px;
  height: 48px;
  border: 0;
  border-radius: 50%;
  background: rgba(255,255,255,.88);
  color: var(--blue-dark);
  box-shadow: 0 12px 25px rgba(0,0,0,.12);
  display: grid;
  place-items: center;
  font-size: 26px;
  line-height: 1;
  cursor: pointer;
  transform: translateY(-50%);
  opacity: 0;
  transition: .2s ease;
}
.hero-prev { left: 24px; }
.hero-next { right: 24px; }
.hero-slider:hover .hero-arrow { opacity: 1; }
.hero-arrow:hover { background: #fff; transform: translateY(-50%) scale(1.05); }
.hero-dots {
  position: absolute;
  z-index: 5;
  bottom: 38px;
  left: 50%;
  transform: translateX(-50%);
  display: flex;
  gap: 10px;
}
.hero-dots button {
  width: 7px;
  height: 7px;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: rgba(118, 113, 109, .38);
  cursor: pointer;
}
.hero-dots button.is-active { background-color: var(--blue); transform: scale(1.25); }

/* CONTEÚDO */
.section-rise { margin-top: -126px; position: relative; z-index: 8; }
.quick-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 22px;
  max-width: 990px;
}
.quick-card {
  height: 282px;
  border-radius: 34px;
  background: #fff;
  box-shadow: 0 24px 42px rgba(51, 52, 50, .18);
  position: relative;
  overflow: hidden;
  transition: transform .2s ease, box-shadow .2s ease;
}
.quick-card:hover { transform: translateY(-6px); box-shadow: 0 32px 52px rgba(51, 52, 50, .22); }
.quick-card > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; border-radius: 34px; }
.quick-card::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: 42%;
  border-radius: 0 0 34px 34px;
  background: linear-gradient(180deg, rgba(255,255,255,0), rgba(255,255,255,.8) 54%, #fff 92%);
  pointer-events: none;
}
.quick-card span {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 2;
  min-height: 62px;
  padding: 0 14px;
  border-radius: 999px; /* arredonda 50% da altura (formato pílula) */
  background: rgba(255,255,255,.96);
  box-shadow: 0 12px 24px rgba(60, 61, 57, .12);
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  color: var(--blue);
  font-size: 18px;
  font-weight: 700;
  letter-spacing: -.035em;
  white-space: nowrap;
}
.quick-card .icon { font-size: 22px; color: #b9b5b0; stroke-width: 3.2; }
.quick-card span i.ph { font-size: 21px; color: #b9b5b0; vertical-align: -3px; }
.quick-card span .quick-ic { width: 22px; height: 22px; object-fit: contain; vertical-align: -5px; flex-shrink: 0; }

.prayer-grid {
  display: grid;
  grid-template-columns: 2fr 1fr;
  gap: 22px;
  max-width: 760px;
}
.prayer-card,
.small-image-card {
  min-height: 198px;
  border-radius: 20px;
  overflow: hidden;
  box-shadow: var(--shadow);
  position: relative;
  color: #fff;
}
.prayer-card { display: grid; grid-template-columns: 48% 52%; background: #9c3c19; }
.prayer-card img { width: 100%; height: 100%; object-fit: cover; }
.prayer-card > div {
  padding: 36px 28px;
  display: grid;
  align-content: center;
  justify-items: start;
}
.prayer-card h2 { margin: 0 0 22px; font-size: 36px; line-height: 1.02; font-weight: 500; }
.small-image-card img { width: 100%; height: 100%; object-fit: cover; }
.small-image-card::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, transparent 48%, rgba(0,0,0,.35)); }

/* Banner secundário: dois blocos só de imagem, lado a lado, na largura dos atalhos */
/* linha "justificada": ambos a mesma altura, largura proporcional à imagem (flex-grow = aspect) */
.sec-ban-grid { display: flex; gap: 22px; max-width: 990px; margin-inline: auto; align-items: stretch; }
.sec-ban { flex-grow: 1; flex-shrink: 1; flex-basis: 0; min-width: 0; border-radius: 24px; overflow: hidden; box-shadow: var(--shadow); transition: transform .2s ease, box-shadow .2s ease; }
.sec-ban img { width: 100%; height: auto; display: block; }
.sec-ban:hover { transform: translateY(-4px); box-shadow: 0 32px 52px rgba(51, 52, 50, .22); }
@media (max-width: 640px){ .sec-ban-grid { flex-direction: column; max-width: 520px; } .sec-ban { flex-basis: auto; } }
.small-image-card span { position: absolute; z-index: 1; right: 16px; bottom: 15px; font-size: 13px; color: #fff; }
.btn {
  min-height: 36px;
  padding: 0 18px;
  border-radius: 999px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
  border: 0;
  font-size: 12px;
  font-weight: 700;
  box-shadow: 0 12px 20px rgba(0, 124, 164, .22);
}
.btn .icon { font-size: 16px; stroke-width: 3.5; }
.btn-blue { background: var(--blue); color: #fff; }
.btn-blue:hover { background: var(--blue-dark); }
.btn.compact { min-height: 32px; padding-inline: 21px; }
.section-title {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  gap: 18px;
  margin-bottom: 34px;
}
.section-title span { height: 1px; background: var(--line); }
.section-title h2,
.simple-title {
  margin: 0;
  color: var(--blue);
  font-size: clamp(42px, 4.8vw, 64px);
  line-height: 1;
  font-weight: 400;
  letter-spacing: -.055em;
  text-align: center;
}
.green-title h2 { color: var(--green); }
.news-heading { display: block; margin-bottom: 54px; }
.news-heading span { display: none; }
.news-heading h2 { font-size: clamp(46px, 5vw, 66px); }
.news-section { margin-top: clamp(74px, 8vw, 118px); }
.news-layout {
  max-width: 1040px;
  margin-inline: auto;
  display: grid;
  grid-template-columns: 1fr 1fr 1.35fr;
  grid-template-rows: 340px 430px;
  gap: 24px;
  align-items: stretch;
}
.news-feature {
  grid-column: 1 / 4;
  grid-row: 1;
  position: relative;
  min-height: 340px;
  border-radius: 50px;
  overflow: hidden;
  background: #fff;
  box-shadow: none;
  isolation: isolate;
}
.news-feature img {
  position: absolute;
  inset: 0 auto 0 0;
  width: 72%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  border-radius: 50px;
  z-index: 0;
}
.news-feature::before {
  content: "";
  position: absolute;
  top: -6%;
  right: 0;
  bottom: -6%;
  width: 64%;
  z-index: 1;
  background: #000000;
  background: linear-gradient(90deg, rgba(0, 0, 0, 0) 0%, rgba(244, 244, 244, 1) 36%, rgba(244, 244, 244, 1) 100%);
}
.news-feature::after {
  content: "";
  position: absolute;
  top: 0;
  left: 50%;
  bottom: 0;
  width: 20%;
  z-index: 2;
  background: linear-gradient(90deg, rgba(255,255,255,0), rgba(255,255,255,.83), #fff);
  filter: blur(18px);
  transform: translateX(-18%);
  pointer-events: none;
}
.news-text {
  position: absolute;
  z-index: 3;
  top: 50%;
  right: 36px;
  width: 44%;
  transform: translateY(-50%);
  padding: 0 14px;
}
.tag,
.news-text small,
.news-list small,
.news-card small {
  display: inline-flex;
  align-items: center;
  min-height: 28px;
  padding: 3px 12px;
  border-radius: 999px;
  color: var(--blue);
  background: #eaf6fa;
  font-size: 17px;
  line-height: 1;
  font-weight: 700;
  letter-spacing: -.035em;
}
.tag-green { color: var(--green) !important; background: #edf6eb !important; }
.tag-gold { color: var(--gold) !important; background: #fff5df !important; }
.news-text h3 {
  margin: 16px 0 0;
  max-width: 500px;
  color: #77736f;
  font-size: 25px;
  line-height: 1.12;
  font-weight: 500;
  letter-spacing: -.035em;
}
.news-text p { display: none; }
.news-cards {
  grid-column: 1 / 3;
  grid-row: 2;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 24px;
}
.news-card {
  min-height: 430px;
  position: relative;
  color: #fff;
  border-radius: 28px;
  overflow: hidden;
  box-shadow: 0 28px 48px rgba(50, 51, 48, .2);
  background: #111;
}
.news-card img { width: 100%; height: 100%; object-fit: cover; }
/* Cartões de notícia agora são links: o <a> é transparente ao layout (grid/absolutos intactos) */
.news-feature > a,
.news-card > a,
.news-list article > a { display: contents; color: inherit; text-decoration: none; }
.news-card::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(0,0,0,.02) 30%, rgba(0,0,0,.88) 100%);
  pointer-events: none; /* gradiente decorativo não pode interceptar o clique do card-link */
}
.news-card div { position: absolute; z-index: 1; left: 28px; right: 26px; bottom: 30px; }
.news-card h3 { margin: 12px 0 0; font-size: 23px; line-height: 1.13; font-weight: 700; letter-spacing: -.04em; }
.news-list {
  grid-column: 3;
  grid-row: 2;
  display: grid;
  align-content: center;
  gap: 28px;
  padding-left: 4px;
}
.news-list article {
  display: grid;
  grid-template-columns: 132px 1fr;
  gap: 22px;
  align-items: center;
}
.news-list img {
  width: 132px;
  height: 120px;
  border-radius: 24px;
  object-fit: cover;
  box-shadow: 0 20px 38px rgba(50, 51, 48, .16);
}
.news-list p { margin: 10px 0 0; color: #77736f; font-size: 16px; line-height: 1.18; letter-spacing: -.035em; }

.sanctuary-panel {
  min-height: 314px;
  border-radius: 42px;
  background: #123f59 center/cover no-repeat; /* a imagem vem do banner cadastrado (inline) */
  display: flex;
  align-items: center;
  padding: clamp(32px, 5vw, 62px);
}
.sanctuary-copy { width: min(470px, 90%); }
.sanctuary-copy .btn { font-size: 14px; } /* +2px no CTA deste banner */
.sanctuary-copy p { margin: 0 0 26px; font-size: clamp(19px, 2.1vw, 27px); line-height: 1.16; color: #174457; }
.history-grid { display: grid; grid-template-columns: 1fr 1fr; align-items: center; gap: clamp(34px, 7vw, 92px); }
.history-collage { position: relative; min-height: 360px; }
.history-collage img { position: absolute; object-fit: cover; box-shadow: var(--shadow); filter: grayscale(.82); }
.collage-one { width: 280px; height: 142px; border-radius: 13px; left: 0; top: 8px; }
.collage-two { width: 340px; height: 230px; border-radius: 0 0 18px 18px; left: 90px; top: 86px; }
.collage-three { width: 195px; height: 125px; border-radius: 15px; right: 0; bottom: 0; }
.history-copy p { margin: 0 0 18px; color: #50585c; font-size: 16px; line-height: 1.72; }
.near-panel {
  position: relative;
  min-height: 320px;
  display: flex;
  align-items: center;
  padding: clamp(34px, 5vw, 64px);
  border-radius: 44px 0 44px 44px;
  background: #123f59 center/cover no-repeat; /* imagem do banner vem inline, cobrindo todo o banner */
  overflow: hidden;
}
.near-panel::before {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, rgba(255,255,255,.95) 0%, rgba(255,255,255,.82) 40%, rgba(255,255,255,.32) 72%, rgba(255,255,255,0) 100%);
  pointer-events: none;
}
.near-copy { position: relative; z-index: 1; width: min(560px, 94%); }
.near-copy h2 { margin: 0 0 16px; color: var(--blue); font-size: clamp(32px, 4vw, 48px); line-height: .92; font-weight: 400; letter-spacing: -.055em; }
.near-intro { margin: 0 0 24px; max-width: 480px; color: #174457; font-size: clamp(16px, 1.9vw, 21px); line-height: 1.42; font-weight: 500; }
.routes-section .simple-title { margin-bottom: 70px; font-size: clamp(44px, 5vw, 66px); }
.routes-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 54px;
  max-width: 1060px; /* deixa margem p/ a imagem do 1º card (left:-42px) não passar da área útil */
  margin-inline: auto;
}
.route-card {
  position: relative;
  min-height: 236px;
  padding: 34px 30px 76px 112px;
  border-radius: 30px;
  background: #e7e7e3;
  box-shadow: none;
  color: #77736f;
}
.route-card img {
  position: absolute;
  width: 118px;
  height: 118px;
  left: -42px;
  top: 74px;
  border-radius: 27px;
  object-fit: cover;
  box-shadow: 0 24px 38px rgba(54, 55, 52, .18);
}
.route-card h3 {
  margin: 0 0 18px;
  color: #77736f;
  font-size: 23px;
  line-height: .92;
  font-weight: 700;
  letter-spacing: -.035em;
  text-align: center;
}
.route-card p { margin: 0; color: #77736f; font-size: 16px; line-height: 1.14; letter-spacing: -.03em; }
.route-card .btn {
  position: absolute;
  left: 50%;
  bottom: -30px;
  transform: translateX(-50%);
  width: 206px;
  min-height: 58px;
  font-size: 17px;
  font-weight: 500;
  box-shadow: 0 18px 28px rgba(0, 124, 164, .24);
}
/* CTAs da home no mesmo padrão de tamanho/fonte do CTA do route-card */
.news-section .btn.btn-blue,
.sanctuary-copy .btn,
.history-copy .btn,
.near-copy .btn,
.flex-form > button[type=submit],
.contato-form-card .flex-form > button[type=submit] {
  min-height: 58px;
  padding: 0 34px;
  font-size: 17px;
  font-weight: 500;
  box-shadow: 0 18px 28px rgba(0, 124, 164, .24);
}
.support-section { margin-top: clamp(110px, 10vw, 160px); }
.support-section .section-title { margin-bottom: 86px; }
.support-section .section-title h2 { font-size: clamp(46px, 5vw, 66px); letter-spacing: -.05em; }
.support-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 28px;
  max-width: none; /* ocupa toda a largura útil (.content-narrow) */
  margin-inline: auto;
}
.support-card {
  position: relative;
  min-height: 166px;
  padding: 78px 18px 28px;
  border-radius: 30px;
  background: #e8e8e4;
  box-shadow: 0 24px 42px rgba(52, 53, 50, .18);
  display: flex;
  align-items: center;
  justify-content: center;
  color: #77736f;
  font-size: 22px;
  line-height: .92;
  font-weight: 400;
  text-align: center;
  letter-spacing: -.035em;
}
.support-card .icon {
  position: absolute;
  top: -52px;
  left: 50%;
  transform: translateX(-50%);
  width: 112px;
  height: 112px;
  padding: 27px;
  border-radius: 28px;
  color: #fff;
  background: #2d9635;
  stroke-width: 3.4;
  box-shadow: 0 18px 28px rgba(45, 150, 53, .25);
}
/* Ícone da biblioteca (Phosphor) no card de apoio: mesmo badge verde flutuante */
.support-card i.ph {
  position: absolute;
  top: -52px;
  left: 50%;
  transform: translateX(-50%);
  width: 112px;
  height: 112px;
  border-radius: 28px;
  color: #fff;
  background: #2d9635;
  box-shadow: 0 18px 28px rgba(45, 150, 53, .25);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 52px;
}

/* FOOTER 100% COM CONTEÚDO 1400 */
.site-footer { margin-top: clamp(82px, 10vw, 150px); }
.footer-menu-canvas {
  width: 100%;
  min-height: 382px;
  background: var(--footer-soft);
  border-radius: 70px 70px 0 0;
  display: flex;
  align-items: flex-start;
  padding: 78px 0 70px;
}
.footer-menu-inner {
  width: var(--wide);
  margin-inline: auto;
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  gap: clamp(24px, 4vw, 82px);
}
.footer-col h3 {
  margin: 0 0 24px;
  color: #77736f;
  font-size: 27px;
  line-height: 1;
  font-weight: 400;
  display: inline-block;
  border-bottom: 2px solid var(--menu-color, #77736f);
}
.footer-col--sanctuary { --menu-color: var(--dark-gray); }
.footer-col--celebrations { --menu-color: var(--gold); }
.footer-col--news { --menu-color: var(--blue); }
.footer-col--tourism { --menu-color: var(--navy); }
.footer-col--social { --menu-color: var(--green); }
.footer-col--projects { --menu-color: #6f756e; }
.footer-col a {
  display: block;
  margin: 0 0 10px;
  color: #77736f;
  font-size: 17px;
  line-height: 1.15;
}
.footer-col a:hover { color: var(--menu-color); }
.footer-contact-canvas {
  width: 100%;
  background: #fff;
  border-radius: 68px 68px 0 0;
  margin-top: -1px;
  box-shadow: 0 -8px 24px rgba(0,0,0,.04);
}
.footer-contact-inner {
  width: var(--wide);
  min-height: 230px;
  margin-inline: auto;
  display: grid;
  grid-template-columns: 230px 1fr 360px;
  align-items: center;
  gap: 62px;
}
.footer-logo { width: auto; height: auto; display: block; justify-self: center; }
.footer-logo img { height: 60px; width: auto; max-width: 210px; object-fit: contain; display: block; }
.footer-address { display: flex; align-items: center; justify-content: center; gap: 24px; color: #77736f; }
.footer-address .icon { font-size: 32px; color: var(--warm-gray); stroke-width: 3.2; }
.footer-address p { margin: 0; font-size: 24px; line-height: 1.14; letter-spacing: -.03em; }
.footer-social-block { justify-self: center; text-align: center; color: #77736f; }
.footer-social-block h3 { margin: 0 0 12px; font-size: 28px; line-height: .92; font-weight: 400; letter-spacing: -.03em; }
.footer-social-links { display: flex; justify-content: center; gap: 21px; margin-bottom: 18px; }
.footer-social-links a { color: var(--warm-gray); font-size: 30px; display: inline-flex; }
.footer-social-links a:hover { color: var(--blue); }
.footer-social-links .icon { stroke-width: 3.2; }
.footer-legal { margin: 0; display: flex; justify-content: center; gap: 14px; flex-wrap: wrap; font-size: 12px; color: #77736f; }
.footer-legal a:hover { color: var(--blue); }

@media (max-width: 1180px) {
  :root { --wide: min(1150px, calc(100vw - 42px)); --narrow: min(1050px, calc(100vw - 42px)); }
  .site-header {
    --header-height: 122px;
    --header-logo: 84px;
    --header-radius: 0 0 28px 28px;
  }
  .site-header.is-compact {
    --header-height: 92px;
    --header-logo: 64px;
    --header-radius: 0;
  }
  .header-inner { grid-template-columns: auto 1fr; gap: 24px; }
  .main-nav > ul { gap: 28px; }
  .main-nav a { font-size: 16px; }
  .weather-pill { min-width: 214px; }
  .footer-menu-inner { gap: 30px; }
  .footer-col h3 { font-size: 24px; }
  .footer-col a { font-size: 15px; }
  .footer-contact-inner { grid-template-columns: 160px 1fr 320px; gap: 32px; }
  .footer-address p { font-size: 24px; }
}

@media (max-width: 960px) {
  :root { --wide: min(100%, calc(100vw - 28px)); --narrow: min(100%, calc(100vw - 28px)); }
  .site-header {
    --header-height: 86px;
    --header-logo: 62px;
    --header-radius: 0 0 18px 18px;
  }
  .site-header.is-compact {
    --header-height: 76px;
    --header-logo: 54px;
    --header-radius: 0;
  }
  .header-inner { display: flex; justify-content: space-between; gap: 16px; }
  .nav-toggle {
    display: grid;
    gap: 5px;
    width: 45px;
    height: 45px;
    padding: 12px;
    border: 0;
    border-radius: 50%;
    background: #f2f2f0;
    cursor: pointer;
  }
  .nav-toggle span { display: block; height: 2px; background: #77736f; border-radius: 99px; transition: .2s ease; }
  .nav-toggle.active span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
  .nav-toggle.active span:nth-child(2) { opacity: 0; }
  .nav-toggle.active span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }
  .header-right {
    position: fixed;
    top: calc(var(--header-height) + 8px);
    left: 14px;
    right: 14px;
    max-height: calc(100vh - var(--header-height) - 22px);
    overflow: auto;
    padding: 22px;
    border-radius: 8px;
    background: rgba(255,255,255,.98);
    box-shadow: var(--shadow);
    opacity: 0;
    visibility: hidden;
    transform: translateY(-8px);
    transition: .2s ease;
  }
  .header-right.open { opacity: 1; visibility: visible; transform: translateY(0); }
  .header-tools { justify-content: flex-start; flex-wrap: wrap; gap: 10px; }
  .tool-pill { font-size: 14px; }
  .language-menu { left: 0; right: auto; }
  .weather-pill { min-width: 0; flex: 1 1 210px; }
  .main-nav > ul { display: grid; gap: 0; justify-content: stretch; }
  .main-nav > ul > li { border-top: 1px solid #ececea; }
  .main-nav > ul > li > a { width: 100%; justify-content: space-between; padding: 17px 0; }
  .submenu {
    position: static;
    min-width: 0;
    padding: 0 0 16px 18px;
    box-shadow: none;
    border-radius: 0;
    background: transparent;
    transform: none;
    opacity: 1;
    visibility: visible;
    display: none;
  }
  .has-submenu.open .submenu { display: grid; }
  /* No mobile o submenu é estático: anula o deslocamento (-50%) e o negrito do hover
     do desktop, que empurravam os itens para fora da área visível do menu. */
  .has-submenu:hover .submenu,
  .has-submenu:focus-within .submenu { transform: none; }
  .submenu::before { display: none; }
  .submenu a:hover { font-weight: 400; }
  .has-submenu:hover > a .caret,
  .has-submenu:focus-within > a .caret { transform: none; }
  .has-submenu.open > a .caret { transform: rotate(180deg); }
  .submenu a { font-size: 15px; }
  .hero-slider { min-height: 680px; }
  .hero-content { bottom: 138px; }
  .quick-grid { grid-template-columns: repeat(2, 1fr); max-width: 520px; }
  .prayer-grid, .news-layout, .history-grid, .near-panel { grid-template-columns: 1fr; }
  .prayer-grid { max-width: 640px; }
  .news-layout { max-width: 720px; margin-inline: auto; }
  .routes-grid { grid-template-columns: 1fr; max-width: 540px; gap: 38px; }
  .support-grid { grid-template-columns: repeat(2, 1fr); max-width: 460px; }
  .footer-menu-inner { grid-template-columns: repeat(2, 1fr); }
  .footer-contact-inner { grid-template-columns: 1fr; gap: 22px; padding: 42px 0; text-align: center; }
  .footer-address { flex-direction: column; gap: 10px; }
}

@media (max-width: 560px) {
  :root { --wide: calc(100vw - 22px); --narrow: calc(100vw - 22px); }
  .site-header {
    --header-height: 78px;
    --header-logo: 54px;
    --header-radius: 0 0 14px 14px;
  }
  .site-header.is-compact {
    --header-height: 70px;
    --header-logo: 48px;
    --header-radius: 0;
  }
  .hero-slider { min-height: 610px; }
  .hero-content { bottom: 118px; }
  .hero-eyebrow { font-size: 37px; }
  .hero-content h1 { font-size: 82px; margin-top: 4px; }
  .section-rise { margin-top: -95px; }
  .quick-grid { gap: 12px; }
  .quick-card { height: 132px; }
  .prayer-card { grid-template-columns: 1fr; }
  .prayer-card img { height: 165px; }
  .prayer-card h2 { font-size: 30px; }
  .news-feature img { height: 220px; }
  .news-list article { grid-template-columns: 80px 1fr; }
  .news-list img { width: 80px; height: 72px; }
  .sanctuary-panel { border-radius: 28px; min-height: 290px; }
  .history-collage { min-height: 300px; }
  .collage-one { width: 210px; height: 112px; }
  .collage-two { width: 255px; height: 185px; left: 50px; }
  .collage-three { width: 155px; height: 104px; }
  .near-panel { padding: 18px; border-radius: 32px 0 32px 32px; }
  .support-grid { grid-template-columns: 1fr 1fr; gap: 14px; }
  .footer-menu-canvas { border-radius: 42px 42px 0 0; padding: 50px 0 48px; }
  .footer-menu-inner { grid-template-columns: 1fr; gap: 28px; text-align: center; }
  .footer-contact-canvas { border-radius: 42px 42px 0 0; }
  .footer-address p { font-size: 20px; }
  .footer-social-block h3 { font-size: 24px; }
  .hero-arrow { width: 40px; height: 40px; font-size: 22px; opacity: .85; }
  .hero-prev { left: 12px; }
  .hero-next { right: 12px; }
}

/* Ajustes finais de fidelidade dos blocos enviados */
@media (max-width: 1180px) {
  .quick-grid { max-width: 900px; gap: 18px; }
  .quick-card { height: 252px; }
  .quick-card span { font-size: 16px; min-height: 56px; }
  .news-layout { max-width: 980px; grid-template-rows: 320px 400px; gap: 20px; }
  .news-card { min-height: 400px; }
  .news-list article { grid-template-columns: 112px 1fr; gap: 18px; }
  .news-list img { width: 112px; height: 106px; }
  .news-list p { font-size: 15px; }
  .routes-grid { gap: 46px; max-width: 990px; }
  .route-card { padding-left: 96px; }
  .route-card img { width: 105px; height: 105px; left: -34px; }
}

@media (max-width: 960px) {
  .section-rise { margin-top: -112px; }
  .quick-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); max-width: 600px; gap: 22px; }
  .quick-card { height: 245px; }
  .news-heading { margin-bottom: 34px; }
  .news-layout {
    grid-template-columns: 1fr;
    grid-template-rows: none;
    max-width: 720px;
    gap: 24px;
  }
  .news-feature,
  .news-cards,
  .news-list {
    grid-column: auto;
    grid-row: auto;
  }
  .news-feature {
    min-height: 0;
    border-radius: 44px;
    box-shadow: var(--shadow-soft);
    overflow: hidden;
  }
  .news-feature img {
    position: static;
    width: 100%;
    height: 310px;
    border-radius: 44px 44px 0 0;
  }
  .news-feature::before,
  .news-feature::after { display: none; }
  .news-text {
    position: static;
    width: auto;
    transform: none;
    padding: 24px 26px 28px;
  }
  .news-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .news-card { min-height: 330px; }
  .news-list { padding-left: 0; }
  .routes-grid { grid-template-columns: 1fr; max-width: 480px; gap: 72px; }
  .route-card { min-height: 230px; padding: 36px 34px 74px 118px; }
  .support-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); max-width: 520px; gap: 78px 24px; }
}

@media (max-width: 560px) {
  .quick-grid { grid-template-columns: 1fr 1fr; gap: 14px; }
  .quick-card { height: 190px; border-radius: 24px; }
  .quick-card > img { border-radius: 24px; }
  .quick-card::after { border-radius: 0 0 24px 24px; }
  .quick-card span { left: 0; right: 0; min-height: 48px; font-size: 13px; gap: 5px; border-radius: 999px; }
  .quick-card .icon { font-size: 16px; }
  .news-heading h2,
  .routes-section .simple-title,
  .support-section .section-title h2 { font-size: 42px; }
  .news-feature img { height: 230px; }
  .news-text { padding: 20px; }
  .news-text h3 { font-size: 20px; }
  .news-cards { grid-template-columns: 1fr; }
  .news-card { min-height: 310px; }
  .news-card h3 { font-size: 20px; }
  .news-list article { grid-template-columns: 96px 1fr; gap: 14px; }
  .news-list img { width: 96px; height: 90px; border-radius: 18px; }
  .news-list p { font-size: 14px; }
  .route-card { padding: 132px 24px 76px; text-align: center; }
  .route-card img { left: 50%; top: -42px; transform: translateX(-50%); }
  .route-card .btn { width: 188px; min-height: 52px; }
  .support-grid { grid-template-columns: 1fr; max-width: 250px; gap: 82px; }
  .support-card { min-height: 154px; font-size: 21px; }
}

/* ============================================================================
   PÁGINAS FLEXÍVEIS (construtor por blocos) — visual alinhado ao site
   ============================================================================ */
.flex-hero { padding: 180px 0 60px; background: linear-gradient(135deg, var(--navy), #0a2836); background-size: cover; background-position: center; color: #fff; text-align: center; }
/* Com imagem de fundo o hero fica ~40% mais alto, para a foto aparecer melhor */
.flex-hero[style*="url("] { padding: 250px 0 130px; }
.flex-hero h1 { margin: 0; font-size: clamp(30px, 5vw, 52px); line-height: 1.05; }
.flex-hero-eyebrow { display: inline-block; margin-bottom: 14px; font-size: 13px; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; color: var(--sky, #7fd0e6); }
.flex-hero-sub { margin: 18px auto 0; max-width: 720px; font-size: 18px; line-height: 1.55; opacity: .92; }

.flex-block:first-child { margin-top: clamp(48px, 6vw, 90px); }
/* Página flexível SEM hero: garante que o 1º bloco não fique atrás do header fixo. */
main.pg-nohero { padding-top: calc(var(--header-height, 132px) + clamp(10px, 2vw, 26px)); }
main.pg-nohero > .flex-block:first-child { margin-top: 0; }
.flex-sec-title { margin: 0 0 34px; font-size: clamp(28px, 4vw, 44px); font-weight: 700; color: var(--navy); letter-spacing: -.02em; text-align: center; }

/* Texto rico */
.flex-rich { font-size: 17px; line-height: 1.75; color: var(--text, #3d4548); }
.flex-rich h2 { color: var(--navy); font-size: clamp(24px, 3vw, 34px); margin: 1.2em 0 .5em; }
.flex-rich h3 { color: var(--navy); font-size: 22px; margin: 1.1em 0 .4em; }
.flex-rich p { margin: 0 0 1.1em; }
.flex-rich a { color: var(--blue); text-decoration: underline; text-underline-offset: 2px; }
.flex-rich ul, .flex-rich ol { margin: 0 0 1.1em; padding-left: 1.4em; }
.flex-rich img { max-width: 100%; border-radius: 16px; }

/* Imagem + Texto */
.flex-imgtxt { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(30px, 5vw, 70px); align-items: center; }
.flex-imgtxt.inv .flex-it-img { order: 2; }
.flex-it-img img { width: 100%; border-radius: 22px; box-shadow: var(--shadow); display: block; object-fit: cover; }
.flex-it-txt h2 { margin: 0 0 18px; color: var(--navy); font-size: clamp(26px, 3.4vw, 40px); line-height: 1.08; letter-spacing: -.02em; }
.flex-it-txt .btn { margin-top: 22px; }

/* Cards / Destaques (e blocos dinâmicos) */
.flex-cards { display: grid; grid-template-columns: repeat(var(--cols, 3), minmax(0, 1fr)); gap: 26px; }
.flex-card { display: flex; flex-direction: column; background: #fff; border-radius: 20px; overflow: hidden; box-shadow: 0 16px 34px rgba(51, 52, 50, .1); transition: transform .2s ease, box-shadow .2s ease; }
a.flex-card:hover { transform: translateY(-5px); box-shadow: 0 26px 46px rgba(51, 52, 50, .16); }
.flex-card-img { aspect-ratio: 16 / 10; overflow: hidden; background: var(--mist, #eef3f6); }
.flex-card-img img { width: 100%; height: 100%; object-fit: cover; transition: transform .4s; }
a.flex-card:hover .flex-card-img img { transform: scale(1.05); }
.flex-card h3 { margin: 16px 18px 0; font-size: 18px; font-weight: 700; color: var(--navy); line-height: 1.25; }
.flex-card p { margin: 8px 18px 18px; font-size: 14px; color: #6b7075; line-height: 1.5; }
.flex-card h3:last-child { margin-bottom: 18px; }
.flex-eyebrow { display: inline-block; margin: 14px 18px 0; font-size: 12px; font-weight: 800; letter-spacing: .07em; text-transform: uppercase; color: var(--blue); }
.flex-card.center { align-items: center; text-align: center; padding: 26px 16px 20px; gap: 12px; }
.flex-card.center h3 { margin: 0; }
.flex-proj-ic { width: 54px; height: 54px; object-fit: contain; }

/* Faixa CTA */
.flex-cta { border-radius: 26px; padding: clamp(38px, 5vw, 66px); text-align: center; color: #fff; }
.flex-cta h2 { margin: 0 0 12px; font-size: clamp(26px, 3.4vw, 40px); font-weight: 800; letter-spacing: -.02em; }
.flex-cta p { margin: 0 auto 24px; max-width: 640px; font-size: 17px; line-height: 1.55; opacity: .94; }
.flex-cta-btn { display: inline-block; background: #fff; color: var(--navy); font-weight: 800; font-size: 15px; padding: 14px 30px; border-radius: 999px; transition: transform .18s, background .18s; }
.flex-cta-btn:hover { transform: translateY(-2px); background: var(--orange, #e2a53c); color: #fff; }

/* Galeria */
.flex-galeria { display: grid; grid-template-columns: repeat(var(--cols, 3), minmax(0, 1fr)); gap: 16px; }
.flex-galeria a { border-radius: 14px; overflow: hidden; aspect-ratio: 1 / 1; background: var(--mist, #eef3f6); }
.flex-galeria img { width: 100%; height: 100%; object-fit: cover; transition: transform .4s; }
.flex-galeria a:hover img { transform: scale(1.06); }

@media (max-width: 860px) {
  .flex-imgtxt { grid-template-columns: 1fr; }
  .flex-imgtxt.inv .flex-it-img { order: 0; }
  .flex-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .flex-galeria { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 540px) {
  .flex-cards, .flex-galeria { grid-template-columns: 1fr 1fr; }
}

/* Páginas flexíveis — larguras/fundos por bloco + blocos vídeo/colunistas/depoimentos */
.flex-block.w-narrow > div { width: min(820px, calc(100% - 48px)); }
.flex-block.w-wide > div { width: var(--wide); }
.flex-block.w-full > div { width: auto; max-width: none; margin-inline: clamp(16px, 3vw, 40px); }
.flex-block.has-bg { padding-block: clamp(46px, 6vw, 86px); }
.flex-block.has-bg + .flex-block.has-bg { margin-top: 0; }

.flex-video { position: relative; aspect-ratio: 16 / 9; border-radius: 22px; overflow: hidden; background: #000; box-shadow: var(--shadow); }
.flex-video iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }

.flex-colunistas { display: flex; flex-wrap: wrap; gap: 30px; justify-content: center; }
.flex-col { width: 128px; text-align: center; }
.flex-col img, .flex-col-ini { width: 100px; height: 100px; border-radius: 50%; object-fit: cover; margin: 0 auto 10px; display: flex; align-items: center; justify-content: center; background: var(--soft, #eef3f6); color: var(--navy); font-weight: 800; font-size: 30px; }
.flex-col b { display: block; font-size: 14px; color: var(--navy); }
.flex-col span { display: block; font-size: 12px; color: var(--muted); }

.flex-depo { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 24px; }
.flex-depo-card { margin: 0; background: #fff; border-radius: 22px; padding: 30px; box-shadow: 0 16px 34px rgba(51, 52, 50, .1); }
.flex-depo-card blockquote { margin: 0 0 20px; font-size: 17px; line-height: 1.62; color: var(--text); font-style: italic; }
.flex-depo-card blockquote::before { content: "\201C"; color: var(--blue); font-size: 40px; line-height: 0; vertical-align: -18px; margin-right: 4px; }
.flex-depo-card figcaption { display: flex; align-items: center; gap: 14px; }
.flex-depo-card figcaption img { width: 54px; height: 54px; border-radius: 50%; object-fit: cover; }
.flex-depo-card figcaption b { display: block; color: var(--navy); font-size: 15px; }
.flex-depo-card figcaption small { color: var(--muted); font-size: 13px; }

/* Bloco Formulário (páginas flexíveis) */
.flex-form-wrap { max-width: 760px; margin-inline: auto; }
.flex-form-intro { text-align: center; color: var(--muted); font-size: 16px; line-height: 1.55; margin: -6px 0 26px; }
.flex-form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 16px 18px; }
.flex-field.full { grid-column: 1 / -1; }
.flex-field label { display: block; font-size: 13px; font-weight: 700; color: var(--navy); margin-bottom: 6px; }
.flex-field input, .flex-field textarea, .flex-field select { width: 100%; border: 1px solid var(--line); border-radius: 12px; padding: 12px 14px; font: inherit; color: var(--text); background: #fff; }
.flex-field textarea { resize: vertical; min-height: 110px; }
.flex-field input:focus, .flex-field textarea:focus, .flex-field select:focus { outline: none; border-color: var(--blue); box-shadow: 0 0 0 3px rgba(0,152,195,.14); }
.flex-field input.is-invalid { border-color: #c0392b; box-shadow: 0 0 0 3px rgba(192,57,43,.12); }
.flex-field-err { display: block; min-height: 0; margin-top: 5px; font-size: 12px; font-weight: 600; color: #c0392b; }
.flex-field-err:empty { display: none; }
.flex-check { display: flex; align-items: center; gap: 10px; font-size: 14px; color: var(--text); font-weight: 500; margin: 0; cursor: pointer; }
.flex-check input { width: 19px; height: 19px; flex-shrink: 0; }
.flex-lgpd { align-items: flex-start; margin-top: 16px; font-size: 13px; color: var(--muted, #6b7075); line-height: 1.45; cursor: pointer; }
.flex-lgpd input { margin-top: 2px; }
.flex-lgpd a { color: var(--blue); text-decoration: underline; }
.flex-form > button[type=submit] { margin-top: 22px; }
.flex-form .flex-hp { position: absolute; left: -9999px; width: 1px; height: 1px; opacity: 0; }
.flex-form-msg { margin-top: 14px; font-size: 14px; font-weight: 600; }
.flex-form-msg.ok { color: var(--green); }
.flex-form-msg.err { color: #c0392b; }

/* Bloco Doação (Asaas) — info à esquerda + cartão de doação à direita */
.flex-doar { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(34px, 5vw, 64px); align-items: center; }
.flex-doar-eyebrow { display: inline-block; margin-bottom: 16px; font-size: 13px; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; color: var(--blue); }
.flex-doar-info h2 { margin: 0 0 18px; font-size: clamp(28px, 3.6vw, 44px); line-height: 1.08; letter-spacing: -.02em; color: var(--navy); font-weight: 700; }
.flex-doar-intro { margin: 0 0 28px; max-width: 480px; font-size: 17px; line-height: 1.65; color: var(--text, #42525f); }
.flex-doar-uses { display: grid; gap: 15px; max-width: 480px; }
.flex-doar-use { display: flex; gap: 14px; align-items: flex-start; font-size: 16px; line-height: 1.5; color: #54636f; }
.flex-doar-use b { color: var(--navy); font-weight: 700; }
.flex-doar-dot { width: 9px; height: 9px; border-radius: 50%; background: linear-gradient(135deg, var(--blue), var(--gold)); margin-top: 7px; flex: none; }

.flex-doar-card { background: #fff; border: 1px solid rgba(18, 63, 89, .1); border-radius: 22px; padding: clamp(24px, 3vw, 34px); box-shadow: 0 24px 60px -30px rgba(18, 63, 89, .4); }
.flex-doar-tabs { display: flex; gap: 4px; background: var(--mist, #eef3f6); border-radius: 999px; padding: 5px; margin-bottom: 22px; }
.flex-doar-tabs button { flex: 1; border: 0; background: transparent; padding: 11px; border-radius: 999px; font: inherit; font-weight: 700; font-size: 14px; color: #6b7075; cursor: pointer; transition: .18s; }
.flex-doar-tabs button.on { background: #fff; color: var(--navy); box-shadow: 0 4px 12px rgba(18, 63, 89, .12); }
.flex-doar-pick { font-size: 13px; font-weight: 700; color: #54636f; margin-bottom: 12px; }
.flex-doar-chips { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; margin-bottom: 16px; }
.flex-doar-chips button { border: 1px solid rgba(18, 63, 89, .16); background: #fff; padding: 13px 6px; border-radius: 12px; font: inherit; font-weight: 700; font-size: 15px; color: var(--navy); cursor: pointer; transition: .15s; }
.flex-doar-chips button:hover { border-color: var(--blue); }
.flex-doar-chips button.on { border-color: var(--blue); background: rgba(0, 152, 195, .08); box-shadow: inset 0 0 0 1px var(--blue); }
.flex-doar-amount { display: flex; align-items: center; gap: 10px; border: 1px solid rgba(18, 63, 89, .16); border-radius: 12px; padding: 0 16px; margin-bottom: 20px; background: var(--mist, #f7fafb); }
.flex-doar-cur { font-weight: 700; color: var(--navy); }
.flex-doar-input { flex: 1; border: 0; outline: 0; background: transparent; padding: 15px 0; font: inherit; font-size: 18px; font-weight: 700; color: var(--navy); width: 100%; }
.flex-doar-per { font-size: 13px; color: #8a97a1; white-space: nowrap; }
.flex-doar-btn { display: block; width: 100%; text-align: center; border: 0; cursor: pointer; background: var(--blue); color: #fff; font: inherit; font-weight: 800; font-size: 16px; padding: 17px; border-radius: 14px; box-shadow: 0 14px 30px rgba(0, 152, 195, .32); transition: background .18s, transform .18s; }
.flex-doar-btn:hover { background: var(--blue-dark); transform: translateY(-2px); }
.flex-doar-btn:disabled { opacity: .7; cursor: default; transform: none; }
.flex-doar-secure { display: flex; align-items: center; justify-content: center; gap: 8px; margin-top: 16px; font-size: 12.5px; color: #8a97a1; }
.flex-doar-secure span { width: 6px; height: 6px; border-radius: 50%; background: var(--green, #38c172); }
.flex-doar-msg { margin-top: 12px; font-size: 13.5px; font-weight: 600; text-align: center; color: #54636f; }
.flex-doar-msg.err { color: #c0392b; }
@media (max-width: 860px) { .flex-doar { grid-template-columns: 1fr; } }

/* Página de Contato (/contato) */
.contato-grid { display: grid; grid-template-columns: 1fr 1.05fr; gap: clamp(28px, 5vw, 60px); align-items: start; }
.contato-h2 { margin: 0 0 20px; font-size: clamp(24px, 3vw, 34px); font-weight: 800; color: var(--navy); letter-spacing: -.02em; }
.contato-list { list-style: none; margin: 0 0 26px; padding: 0; display: grid; gap: 16px; }
.contato-list li { display: flex; gap: 14px; align-items: flex-start; }
.contato-ic { flex: 0 0 auto; width: 48px; height: 48px; border-radius: 14px; display: grid; place-items: center; font-size: 22px; color: var(--blue); background: rgba(0, 152, 195, .1); }
.contato-list h3 { margin: 0 0 3px; font-size: 15px; font-weight: 800; color: var(--navy); }
.contato-list p, .contato-list a { margin: 0; font-size: 15px; line-height: 1.5; color: #56606a; }
.contato-list a { color: var(--blue); text-decoration: none; }
.contato-list a:hover { text-decoration: underline; }
.contato-wpp { display: inline-flex; align-items: center; gap: 10px; background: #25d366; color: #fff; font-weight: 800; font-size: 16px; padding: 14px 28px; border-radius: 999px; box-shadow: 0 14px 30px rgba(37, 211, 102, .3); transition: transform .18s, background .18s; }
.contato-wpp:hover { transform: translateY(-2px); background: #1fbe5a; }
.contato-wpp i { font-size: 22px; }
.contato-form-card { background: #fff; border: 1px solid var(--line, #e6e7e3); border-radius: 24px; padding: clamp(24px, 3vw, 38px); box-shadow: 0 20px 48px rgba(18, 63, 89, .08); }
.contato-form-intro { margin: -8px 0 22px; color: var(--muted, #6b7075); font-size: 15px; line-height: 1.55; }
.contato-form-card .flex-form-grid { grid-template-columns: 1fr 1fr; }
.contato-form-card .flex-form > button[type=submit] { margin-top: 20px; }
@media (max-width: 820px) { .contato-grid { grid-template-columns: 1fr; } }
@media (max-width: 520px) { .contato-form-card .flex-form-grid { grid-template-columns: 1fr; } }

/* Bloco Tour 360° (páginas flexíveis) */
.flex-tour-row { display: flex; flex-wrap: wrap; margin-inline: -12px; row-gap: 24px; }
.flex-tour-col { padding-inline: 12px; box-sizing: border-box; flex: 0 0 100%; max-width: 100%; }
.flex-tour-col.w-1-3 { flex-basis: 33.333%; max-width: 33.333%; }
.flex-tour-col.w-1-2 { flex-basis: 50%; max-width: 50%; }
.flex-tour-col.w-2-3 { flex-basis: 66.666%; max-width: 66.666%; }
.flex-tour-col.w-3-3 { flex-basis: 100%; max-width: 100%; }
.flex-tour { display: flex; flex-direction: column; height: 100%; background: #fff; border-radius: 20px; overflow: hidden; box-shadow: 0 16px 38px rgba(18, 63, 89, .12); cursor: pointer; transition: transform .2s, box-shadow .2s; box-sizing: border-box; }
.flex-tour:not(.no-embed):hover { transform: translateY(-5px); box-shadow: 0 28px 54px rgba(18, 63, 89, .2); }
.flex-tour.no-embed { cursor: default; }
.flex-tour-media { position: relative; aspect-ratio: 16 / 10; background: linear-gradient(135deg, var(--navy), #0a2836); overflow: hidden; }
.flex-tour-media img { width: 100%; height: 100%; object-fit: cover; transition: transform .4s; }
.flex-tour:hover .flex-tour-media img { transform: scale(1.05); }
.flex-tour-ph { position: absolute; inset: 0; display: grid; place-items: center; color: rgba(255, 255, 255, .5); font-size: 64px; }
.flex-tour-badge { position: absolute; top: 14px; left: 14px; display: inline-flex; align-items: center; gap: 6px; background: rgba(10, 40, 55, .72); color: #fff; font-size: 12px; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; padding: 6px 12px; border-radius: 999px; backdrop-filter: blur(6px); }
.flex-tour-badge i { font-size: 15px; }
.flex-tour-play { position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%); width: 66px; height: 66px; border-radius: 50%; background: rgba(255, 255, 255, .92); color: var(--blue); display: grid; place-items: center; font-size: 28px; box-shadow: 0 10px 30px rgba(0, 0, 0, .35); transition: transform .2s, background .2s; }
.flex-tour:hover .flex-tour-play { transform: translate(-50%, -50%) scale(1.08); background: #fff; }
.flex-tour-body { padding: 22px 22px 24px; display: flex; flex-direction: column; gap: 8px; flex: 1; }
.flex-tour-body h3 { margin: 0; font-size: clamp(18px, 2.2vw, 24px); font-weight: 800; color: var(--navy); line-height: 1.2; }
.flex-tour-body p { margin: 0; font-size: 15px; line-height: 1.55; color: #56606a; }
.flex-tour-cta { margin-top: auto; padding-top: 8px; display: inline-flex; align-items: center; gap: 7px; color: var(--blue); font-weight: 800; font-size: 14.5px; }
.flex-tour:hover .flex-tour-cta i { transform: translateX(3px); }
.flex-tour-cta i { transition: transform .2s; }
@media (max-width: 760px) { .flex-tour-col.w-1-3, .flex-tour-col.w-1-2, .flex-tour-col.w-2-3 { flex-basis: 100%; max-width: 100%; } }

/* Modal / lightbox do Tour 360° */
.flex-tour-modal { position: fixed; inset: 0; z-index: 9500; background: rgba(6, 18, 26, .92); display: none; flex-direction: column; }
.flex-tour-modal.show { display: flex; }
.flex-tour-modal-bar { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 14px clamp(16px, 4vw, 40px); color: #fff; }
.flex-tour-modal-bar b { font-size: 16px; font-weight: 800; }
.flex-tour-modal-bar button { background: rgba(255, 255, 255, .14); border: 0; color: #fff; width: 42px; height: 42px; border-radius: 50%; font-size: 26px; line-height: 1; cursor: pointer; transition: background .18s; }
.flex-tour-modal-bar button:hover { background: rgba(255, 255, 255, .28); }
.flex-tour-frame { flex: 1; margin: 0 clamp(12px, 4vw, 40px) clamp(16px, 4vw, 34px); border-radius: 16px; overflow: hidden; background: #000; }
.flex-tour-frame iframe { width: 100%; height: 100%; border: 0; display: block; }

/* Responsivo das páginas flexíveis (100%) */
@media (max-width: 900px) {
  .flex-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 620px) {
  .flex-hero { padding: 140px 0 46px; }
  .flex-hero[style*="url("] { padding: 198px 0 104px; }
  .flex-sec-title { font-size: clamp(24px, 7vw, 32px); margin-bottom: 26px; }
  .flex-cards, .flex-galeria { grid-template-columns: 1fr; }
  .flex-galeria { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .flex-form-grid { grid-template-columns: 1fr; }
  .flex-depo { grid-template-columns: 1fr; }
  .flex-colunistas { gap: 20px; }
  .flex-col { width: 104px; }
  .flex-col img, .flex-col-ini { width: 84px; height: 84px; }
}

/* ---------- Bloco Acordeão / Tópicos ---------- */
.flex-acc { display: flex; flex-direction: column; gap: 12px; }
.flex-acc-item { background: #fff; border: 1px solid #e3e8ea; border-radius: 14px; overflow: hidden; transition: box-shadow .2s; }
.flex-acc-item[open] { box-shadow: 0 10px 30px rgba(10,40,55,.08); }
.flex-acc-item > summary { list-style: none; cursor: pointer; padding: 20px 56px 20px 24px; position: relative; font-weight: 700; font-size: 18px; color: var(--navy, #123f59); }
.flex-acc-item > summary::-webkit-details-marker { display: none; }
.flex-acc-item > summary::after { content: '+'; position: absolute; right: 22px; top: 50%; transform: translateY(-50%); width: 28px; height: 28px; border-radius: 50%; background: var(--navy, #123f59); color: #fff; display: grid; place-items: center; font-size: 20px; line-height: 1; transition: transform .2s; }
.flex-acc-item[open] > summary::after { content: '–'; }
.flex-acc-body { padding: 0 24px 22px; }
.flex-acc-body img { max-width: 100%; height: auto; border-radius: 10px; }

/* ---------- Bloco Botões / Downloads ---------- */
.flex-botoes { display: flex; flex-wrap: wrap; gap: 12px; }
.flex-rich img { max-width: 100%; height: auto; }
.flex-rich iframe { max-width: 100%; }

/* ---------- Notícias no layout padrão ---------- */
.news-search { display: flex; max-width: 520px; margin: 26px auto 0; background: #fff; border-radius: 999px; overflow: hidden; box-shadow: 0 10px 30px rgba(0,0,0,.18); }
.news-search input { flex: 1; min-width: 0; border: 0; padding: 14px 22px; font-size: 16px; outline: none; color: var(--navy, #123f59); }
.news-search button { border: 0; background: var(--blue, #0096c7); color: #fff; padding: 0 22px; font-size: 20px; cursor: pointer; }
.news-grid .flex-card { padding-bottom: 22px; }
.news-grid .flex-card h3, .news-grid .flex-card p, .news-grid .news-date { padding: 0 22px; }
.news-grid .flex-card h3 { font-size: 19px; line-height: 1.3; margin: 6px 0 8px; color: var(--navy, #123f59); }
.news-grid .flex-card p { font-size: 15px; color: var(--text, #3d4548); margin: 0; }
.news-date { display: block; margin-top: 18px; font-size: 13px; font-weight: 600; letter-spacing: .02em; color: var(--blue, #0096c7); }
.news-pager { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px; margin-top: 44px; }
.news-pager a, .news-pager span { min-width: 42px; height: 42px; padding: 0 12px; border-radius: 999px; display: grid; place-items: center; font-weight: 700; border: 1px solid #d8e0e3; color: var(--navy, #123f59); background: #fff; }
.news-pager .is-active { background: var(--navy, #123f59); border-color: var(--navy, #123f59); color: #fff; }
.news-pager a:hover { border-color: var(--blue, #0096c7); color: var(--blue, #0096c7); }
.news-back { color: #fff; opacity: .85; font-weight: 600; display: inline-flex; gap: 6px; align-items: center; }
.news-back:hover { opacity: 1; }
.news-meta { display: flex; flex-wrap: wrap; gap: 18px; align-items: center; font-size: 15px; opacity: .9; }
.news-meta span { display: inline-flex; gap: 6px; align-items: center; }
.news-share a { color: #fff; font-size: 22px; opacity: .85; }
.news-share a:hover { opacity: 1; }
.news-cover { margin: 0 0 34px; }
.news-cover img { width: 100%; border-radius: 20px; display: block; }
.news-cover figcaption { font-size: 13px; color: #6b7679; margin-top: 10px; }
.news-tags { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 30px; }
.news-tags a { background: #eef3f5; color: var(--navy, #123f59); border-radius: 999px; padding: 6px 14px; font-size: 14px; }
@media (max-width: 900px) { .news-grid { --cols: 2 !important; } }
@media (max-width: 600px) { .news-grid { --cols: 1 !important; } }

/* ---------- Bloco Incorporar (iframe) — ex.: Tour 360° ---------- */
.flex-embed { position: relative; width: 100%; min-height: 420px; border-radius: 18px; overflow: hidden; background: #0a2836; }
.flex-embed-sec.w-full .flex-embed { border-radius: 0; }
.flex-embed iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
main.pg-nohero > .flex-embed-sec.w-full:first-child { margin-top: 0; }

/* ===================== HOME (réplica do site atual) ===================== */
/* Banner principal na proporção das imagens (2000×493), abaixo do header fixo,
   sem máscara de cor e com texto na fonte padrão, alinhado à esquerda. */
#inicio { --hero-top: 132px; }
@media (max-width: 1180px) { #inicio { --hero-top: 122px; } }
@media (max-width: 960px)  { #inicio { --hero-top: 86px; } }
#inicio > .hero-slider {
  min-height: 0;
  margin-top: var(--hero-top);
  aspect-ratio: 2000 / 493;
  background: #e9eef0;
}
#inicio .hero-media, #inicio .hero-poster { object-position: center center; }
#inicio .hero-wash { display: none; }
#inicio .hero-content {
  top: 20%; bottom: auto; left: 50%; /* textos e CTA a 20% do topo, como no padrão visual dos banners */
  width: min(1400px, calc(100% - 2 * clamp(20px, 6vw, 90px)));
  transform: translateX(-50%);
  text-align: left;
  text-shadow: 0 2px 14px rgba(0, 0, 0, .35);
}
#inicio .hero-eyebrow {
  font-size: clamp(14px, 1.5vw, 24px); line-height: 1.2; font-weight: 600; letter-spacing: 0;
  max-width: 46%;
}
#inicio .hero-content h1 {
  margin: 4px 0 clamp(10px, 1.4vw, 20px);
  font-family: inherit;
  font-size: clamp(20px, 2.9vw, 46px); line-height: 1.08; font-weight: 800; letter-spacing: -.02em;
  max-width: 46%;
}
#inicio .hero-caption { color: #fff; max-width: 46%; }
#inicio .hero-content .btn { min-height: 0; padding: clamp(8px, .9vw, 14px) clamp(16px, 1.8vw, 28px); font-size: clamp(13px, 1.1vw, 17px); }
#inicio .hero-dots { bottom: 12px; }
@media (max-width: 700px) {
  /* no celular o banner 4:1 ficaria baixo demais: altura mínima com recorte central */
  #inicio > .hero-slider { aspect-ratio: auto; height: clamp(190px, 56vw, 300px); }
  #inicio .hero-eyebrow, #inicio .hero-content h1, #inicio .hero-caption { max-width: 72%; }
  #inicio .hero-arrow { display: none; }
}

/* Atalhos: 4 ou 5 por linha (--cols vem do index.php), tamanho proporcional */
#inicio .quick-links.section-rise { margin-top: clamp(28px, 4vw, 56px); }
#inicio .quick-grid {
  grid-template-columns: repeat(var(--cols, 4), minmax(0, 1fr));
  max-width: calc(var(--cols, 4) * 238px);
  gap: clamp(14px, 1.8vw, 22px);
}
#inicio .quick-card { height: auto; aspect-ratio: 4 / 5; }
#inicio .quick-grid[style*="--cols:5"] .quick-card span { font-size: 16px; min-height: 52px; }
@media (max-width: 900px) {
  #inicio .quick-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); max-width: 680px; }
}
@media (max-width: 560px) {
  #inicio .quick-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  #inicio .quick-card span { font-size: 14px; min-height: 44px; }
}

/* Saiba mais: 3 ou 4 por linha (--cols vem do index.php), cards proporcionais
   com a imagem no topo (o layout com imagem "pendurada" só cabia em 3 colunas). */
#inicio .routes-section .simple-title { margin-bottom: clamp(30px, 4vw, 54px); }
#inicio .routes-grid {
  grid-template-columns: repeat(var(--cols, 3), minmax(0, 1fr));
  max-width: calc(var(--cols, 3) * 320px);
  gap: clamp(22px, 2.6vw, 36px);
  row-gap: clamp(50px, 5vw, 64px);
}
#inicio .route-card {
  min-height: 0;
  padding: 0 0 54px;
  display: flex; flex-direction: column;
  overflow: visible;
}
#inicio .route-card img {
  position: static; width: 100%; height: auto; aspect-ratio: 16 / 10;
  border-radius: 30px 30px 0 0; box-shadow: none; object-fit: cover;
  transform: none; left: auto; top: auto; /* anula o layout antigo do celular (imagem centralizada por translate) */
}
#inicio .route-card h3 { margin: 22px 20px 10px; font-size: clamp(19px, 1.6vw, 23px); line-height: 1.05; }
#inicio .route-card p { margin: 0 20px; text-align: center; font-size: 15px; line-height: 1.3; }
#inicio .route-card .btn { width: auto; min-width: 150px; min-height: 50px; padding: 0 26px; font-size: 16px; }
@media (max-width: 1100px) { #inicio .routes-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); max-width: 700px; } }
@media (max-width: 600px)  { #inicio .routes-grid { grid-template-columns: 1fr; max-width: 420px; } }

/* Faixa de localização (sanctuary-banner): máscara em degradê da esquerda para a
   direita para dar legibilidade ao texto sem esconder a foto de fundo. */
#inicio .sanctuary-panel { position: relative; overflow: hidden; isolation: isolate; }
#inicio .sanctuary-panel::before {
  content: "";
  position: absolute; inset: 0; z-index: -1;
  background: linear-gradient(90deg,
    rgba(10, 40, 54, .88) 0%,
    rgba(10, 40, 54, .72) 32%,
    rgba(10, 40, 54, .30) 62%,
    rgba(10, 40, 54, 0) 85%);
  pointer-events: none;
}
#inicio .sanctuary-copy { position: relative; }
#inicio .sanctuary-copy p { color: #fff; font-weight: 700; text-shadow: 0 2px 12px rgba(0, 0, 0, .25); }
#inicio .sanctuary-copy .btn { font-weight: 700; gap: 8px; }
#inicio .sanctuary-copy .btn .ph-fill { font-size: 1.25em; line-height: 1; display: inline-block; }
@media (max-width: 700px) {
  #inicio .sanctuary-panel::before { background: linear-gradient(90deg, rgba(10, 40, 54, .86) 0%, rgba(10, 40, 54, .62) 100%); }
  #inicio .sanctuary-copy { width: 100%; }
}

/* Largura padronizada na home: notícias e "Saiba mais" seguem a largura da grade
   de atalhos (--home-w = colunas × 238px, definido no index.php). */
#inicio .quick-grid,
#inicio .news-section > .content-narrow,
#inicio .routes-section > .content-narrow { max-width: var(--home-w, 990px); }
#inicio .routes-grid { max-width: none; }
#inicio .news-layout { max-width: none; }
/* O hover global (.btn:hover → translateY(-2px), em enhance.css) sobrescrevia o
   translateX(-50%) que centraliza o CTA do card e o jogava para a direita. */
#inicio .route-card .btn:hover { transform: translate(-50%, -2px); }

/* Seletor de idioma — hover estável.
   1) ponte invisível cobre o vão de 10px entre o botão e a lista (o mouse não "sai" do seletor);
   2) fechar tem tolerância (~0,4s): roçar o item "Turismo" no caminho não derruba o menu;
      abrir continua instantâneo. A lista oculta usa visibility (não recebe eventos);
   3) .open (clique/toque, aplicado pelo main.js) também abre — em celular não há hover. */
.language-menu {
  pointer-events: auto;
  transition: opacity .18s ease .22s, transform .18s ease .22s, visibility 0s linear .4s;
}
.language-menu::before { content: ""; position: absolute; left: -8px; right: -8px; top: -22px; height: 22px; }
.language-switcher:hover .language-menu,
.language-switcher:focus-within .language-menu,
.language-switcher.open .language-menu {
  opacity: 1; visibility: visible; transform: translateY(0);
  transition-delay: 0s;
}
.language-switcher.open .language-pill { background: #ededeb; color: #5c5753; }
.language-switcher.open .language-pill .icon-down { transform: rotate(180deg); }

/* Bloco Texto — opção "Imagens do texto em largura total" */
.flex-rich--imgfull img { display: block; width: 100%; height: auto; margin: 1.6em 0; border-radius: 18px; box-shadow: 0 14px 34px rgba(18, 63, 89, .10); }
.flex-rich--imgfull p:has(> img:only-child) { margin: 0; }

/* Bloco Logos / Parceiros — faixa de logos pequenos e alinhados */
.flex-logos-title { font-size: clamp(22px, 2.6vw, 30px); margin-bottom: 26px; }
.flex-logos { display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: clamp(28px, 5vw, 64px); padding: clamp(22px, 3vw, 34px) 0; border-top: 1px solid #e6ebee; }
.flex-logo { display: inline-flex; align-items: center; justify-content: center; height: var(--logo-h, 80px); }
.flex-logo img { height: 100%; width: auto; max-width: 200px; object-fit: contain; filter: grayscale(1); opacity: .78; transition: filter .2s, opacity .2s, transform .2s; }
.flex-logo:hover img, a.flex-logo:focus img { filter: none; opacity: 1; transform: translateY(-2px); }
@media (max-width: 600px) { .flex-logos { gap: 26px; } .flex-logo { height: calc(var(--logo-h, 80px) * .8); } }

/* Acordeão — imagem do tópico ao lado do texto (campo próprio) */
.flex-acc-com-img { display: grid; grid-template-columns: minmax(0, 200px) minmax(0, 1fr); gap: clamp(18px, 2.4vw, 30px); align-items: start; }
.flex-acc-com-img.img-direita { grid-template-columns: minmax(0, 1fr) minmax(0, 200px); }
.flex-acc-com-img.img-direita .flex-acc-img { order: 2; }
.flex-acc-img img { display: block; width: 100%; height: auto; border-radius: 12px; box-shadow: 0 10px 24px rgba(18, 63, 89, .12); }
.flex-acc-txt > :first-child { margin-top: 0; }
@media (max-width: 640px) {
  .flex-acc-com-img, .flex-acc-com-img.img-direita { grid-template-columns: 1fr; }
  .flex-acc-com-img.img-direita .flex-acc-img { order: 0; }
  .flex-acc-img { max-width: 260px; }
}

/* Protocolo exibido após o envio do formulário */
.flex-proto { display: grid; justify-items: center; gap: 4px; margin-top: 14px; padding: 18px 20px; border-radius: 14px; background: #eef8f4; border: 1px solid #b9e3d3; text-align: center; color: #1f5c46; }
.flex-proto-rot { font-size: 12px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.flex-proto-num { font-size: clamp(26px, 4vw, 34px); letter-spacing: .04em; color: #12735a; }
.flex-proto-info { font-size: 14px; color: #3d6b5a; max-width: 460px; }

/* Imagem + Texto — ícone opcional acima do título */
.flex-it-ic { display: block; width: 56px; height: 56px; object-fit: contain; margin: 0 0 14px; }

/* Bloco Endereço + Mapa */
.flex-mapa { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: clamp(20px, 3vw, 36px); align-items: stretch; }
.flex-mapa.sem-mapa { grid-template-columns: 1fr; max-width: 720px; margin-inline: auto; }
.flex-mapa-info { background: #f3f6f8; border-radius: 22px; padding: clamp(24px, 3vw, 40px); display: flex; flex-direction: column; align-items: flex-start; }
.flex-mapa-info h2 { margin: 0 0 14px; color: var(--navy); font-size: clamp(24px, 2.6vw, 32px); }
.flex-mapa-info .flex-rich { font-size: 16px; }
.flex-mapa-info .flex-rich ul { padding-left: 1.1em; }
.flex-mapa-info .btn { margin-top: auto; display: inline-flex; align-items: center; gap: 8px; }
.flex-mapa-frame { border-radius: 22px; overflow: hidden; min-height: 380px; background: #e7eef2; box-shadow: 0 16px 34px rgba(18, 63, 89, .10); }
.flex-mapa-frame iframe { display: block; width: 100%; height: 100%; min-height: 380px; border: 0; }
@media (max-width: 860px) { .flex-mapa { grid-template-columns: 1fr; } .flex-mapa-info .btn { margin-top: 18px; } }

/* Âncoras de bloco: rolagem suave sem esconder o título atrás do header fixo */
html { scroll-behavior: smooth; }
.flex-block[id] { scroll-margin-top: calc(var(--hero-top, 132px) + 24px); }

/* Botões: alinhamento centralizado (opção do bloco) */
.flex-botoes.centro { justify-content: center; }

/* Imagem + Texto: imagem alinhada ao topo e fixa enquanto o texto (longo) rola */
.flex-imgtxt { align-items: start; }
.flex-it-img { position: sticky; top: calc(var(--hero-top, 132px) + 20px); }
@media (max-width: 900px) { .flex-it-img { position: static; } }

/* ===================== Responsivo: toque confortável e sem rolagem lateral ===================== */
/* Tabelas largas (ex.: tabela de cookies) rolam dentro de si no celular, sem empurrar a página */
@media (max-width: 760px) {
  .legal-body table, .flex-rich table { display: block; max-width: 100%; overflow-x: auto; -webkit-overflow-scrolling: touch; }
}
/* Bolinhas do banner: visual igual, área de toque de 28px */
.hero-dots button { width: 28px; height: 28px; padding: 10px; background-clip: content-box; box-sizing: border-box; }
.hero-dots button.is-active { transform: scale(1.1); }
/* Notícia: link "voltar" e ícones de compartilhar com alvo de 40px */
.news-back { display: inline-flex; align-items: center; min-height: 40px; }
.news-share { display: inline-flex; gap: 4px; flex-wrap: wrap; }
.news-share a { display: inline-grid; place-items: center; width: 40px; height: 40px; border-radius: 50%; }
.news-share a:hover { background: rgba(255,255,255,.12); }
/* Formulários: caixas de seleção maiores */
.flex-check input[type="checkbox"] { width: 24px; height: 24px; flex: 0 0 24px; margin-top: 0; }

/* Formulários no celular/tablet: botão de envio, captcha e mensagem centralizados */
@media (max-width: 1024px) {
  .flex-form > button[type=submit] { display: flex; margin-left: auto; margin-right: auto; }
  .flex-form .flex-captcha { display: flex; justify-content: center; }
  .flex-form-msg { text-align: center; }
}
