/* ═══════════════════════════════════════════════════════
   inner-page-v2.css  —  Todos Al Agua
   Nova proposta de header / hero. Requer: ../styles.css
   ──────────────────────────────────────────────────────
   Arquitetura do header
   ┌── LANG BAR (fixed top:0, 28px) ──────────────────┐
   │  🇧🇷 PT  🇪🇸  🇫🇷  🇬🇧  🇩🇪         right-aligned   │
   └──────────────────────────────────────────────────┘
   ┌── NAV (fixed top:28px, 100px) ───────────────────┐
   │  [Logo 84px] [──── pill links ────] [💬 WA btn]  │
   │  ← todos no mesmo eixo vertical (align-center) → │
   └──────────────────────────────────────────────────┘
   Hero com imagem → min-height: 80vh  (classe .has-bg)
   Hero sem imagem → min-height: 380px (padrão)
═══════════════════════════════════════════════════════ */

/* ── CSS VARIABLES ── */
:root {
  --lang-h:   28px;
  --nav-h:   128px;   /* logo 111px + ~17px clearance */
  --hdr-h:   156px;   /* lang(28) + nav(128) */
}

/* ── BODY ── */
body {
  background: linear-gradient(
    to bottom,
    #ffffff  0%,
    #d4f3f3 22%,
    #8fd3d3 48%,
    #5cbdbd 70%,
    #3ba9ac 100%
  ) !important;
  background-attachment: fixed !important;
}
.topbar { display: none !important; }

/* ══════════════════════════════════════════════════════
   LANG BAR — faixa superior com seletor de idioma
══════════════════════════════════════════════════════ */
.lang-bar {
  position: fixed;
  top: 0; left: 0; right: 0;
  height: var(--lang-h);
  z-index: 1100;
  background: rgba(10,46,56,0.30);
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
  display: flex;
  align-items: center;
  justify-content: flex-end;
  padding: 0 28px;
  gap: 0;
  transition: transform .32s cubic-bezier(.4,0,.2,1);
  border-bottom: 1px solid rgba(255,255,255,.08);
}
/* esconde na rolagem */
.lang-bar.bar-hidden {
  transform: translateY(-100%);
}
.lang-bar-sep {
  color: rgba(255,255,255,.15);
  font-size: .55rem;
  padding: 0 4px;
  user-select: none;
}
.lang-bar a {
  font-family: 'Montserrat', sans-serif;
  font-size: .6rem; font-weight: 700; letter-spacing: .06em;
  color: rgba(255,255,255,.42);
  text-decoration: none;
  padding: 3px 7px; border-radius: 4px;
  transition: color .2s, background .2s;
}
.lang-bar a:hover { color: rgba(255,255,255,.9); }
.lang-bar a.active {
  color: var(--accent);
  background: rgba(244,199,36,.1);
  border-radius: 4px;
}

/* ══════════════════════════════════════════════════════
   NAV — barra principal
══════════════════════════════════════════════════════ */
nav {
  position: fixed !important;
  top: var(--lang-h) !important;    /* logo abaixo da lang bar */
  left: 0; right: 0;
  height: var(--nav-h) !important;  /* 100px > logo 84px ✓ */
  z-index: 1000;
  display: flex;
  align-items: center;
  justify-content: space-between !important;
  gap: 0 !important;
  padding: 0 28px !important;
  background: transparent !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
  box-shadow: none;
  transition: top .32s cubic-bezier(.4,0,.2,1),
              height .32s cubic-bezier(.4,0,.2,1),
              background .35s,
              box-shadow .35s;
}
nav.scrolled {
  top: 0 !important;
  height: 64px !important;
  background: #3ba9ac !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
  box-shadow: 0 2px 20px rgba(10,46,56,.28);
}

/* Logo — 84px encaixa perfeitamente na barra de 100px */
.nav-logo {
  flex-shrink: 0;
  display: flex;
  align-items: center;
}
.nav-logo img {
  height: 111px !important;
  width:  111px !important;
  transition: height .32s, width .32s;
  filter: drop-shadow(0 2px 8px rgba(10,46,56,.25));
}
nav.scrolled .nav-logo img {
  height: 50px !important;
  width:  50px !important;
}

/* Pill de links — centrado, flex:1 entre logo e WA */
.nav-links {
  flex: 1 !important;
  margin: 0 20px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  background: rgba(10,46,56,.55) !important;
  backdrop-filter: blur(12px) !important;
  -webkit-backdrop-filter: blur(12px) !important;
  border-radius: 30px !important;
  border: 1px solid rgba(255,255,255,.1) !important;
  padding: 5px 6px !important;
  gap: 0 !important;
}
.nav-links a {
  font-size: .76rem !important;
  font-weight: 600 !important;
  padding: 7px 12px !important;
  border-radius: 24px !important;
  color: rgba(255,255,255,.88) !important;
  text-shadow: none !important;
  transition: background .2s, color .2s !important;
  white-space: nowrap;
}
.nav-links a:hover {
  background: rgba(255,255,255,.12) !important;
  color: #fff !important;
}
.nav-links a.active {
  background: rgba(244,199,36,.2) !important;
  color: var(--accent) !important;
}

/* Grupo direito — WA alinhado com pill (mesmo eixo) */
.nav-right {
  display: flex;
  flex-direction: row !important;
  align-items: center !important;
  gap: 0;
  flex-shrink: 0;
}
/* Langs strip dentro do nav-right: oculto (estão na lang-bar) */
.nav-right .nav-langs-strip { display: none !important; }

/* WA button */
.nav-cta {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  background: var(--wa) !important;
  color: #fff !important;
  font-family: 'Montserrat', sans-serif;
  font-size: .78rem !important;
  font-weight: 800 !important;
  padding: 10px 20px !important;
  border-radius: 26px !important;
  text-decoration: none;
  box-shadow: 0 4px 16px rgba(37,211,102,.35);
  transition: transform .2s, box-shadow .2s;
  white-space: nowrap;
}
.nav-cta:hover {
  transform: translateY(-2px);
  box-shadow: 0 7px 22px rgba(37,211,102,.5);
}
.nav-cta svg { width: 14px; height: 14px; fill: currentColor; }

/* Burger mobile */
@media (max-width: 940px) {
  .nav-links { display: none !important; }
  .nav-burger { display: flex !important; }
  nav { padding: 0 18px !important; }
}
@media (max-width: 520px) {
  :root { --nav-h: 104px; --lang-h: 24px; --hdr-h: 128px; }
  .nav-logo img { height: 92px !important; width: 92px !important; }
  nav.scrolled .nav-logo img { height: 46px !important; width: 46px !important; }
  nav.scrolled { height: 60px !important; }
  .nav-cta { padding: 8px 14px !important; font-size: .72rem !important; }
  .lang-bar { padding: 0 16px; }
  .lang-bar a { font-size: .57rem; padding: 2px 5px; }
}

/* Menu mobile */
.nav-mobile {
  top: var(--hdr-h) !important;
  transition: top .32s cubic-bezier(.4,0,.2,1);
  /* JS script updates this on scroll via .nav.scrolled ~ .nav-mobile */
}
nav.scrolled ~ .nav-mobile {
  top: 66px !important;
}

/* ══════════════════════════════════════════════════════
   HERO — flexível: com ou sem imagem de fundo
══════════════════════════════════════════════════════ */
.site-hero {
  position: relative;
  padding-top: var(--hdr-h);     /* empurra conteúdo abaixo do header fixo */
  min-height: calc(var(--hdr-h) + 340px);
  overflow: hidden;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
}

/* Variante COM imagem/video de fundo → hero alto e imersivo */
.site-hero.has-bg {
  min-height: 82vh;
  max-height: 960px;
}
.site-hero.has-bg .hero-bg {
  position: absolute;
  inset: 0;
  background-size: cover;
  background-position: center 35%;
  transform-origin: center;
  animation: heroKenBurns 14s ease-out forwards;
}
@keyframes heroKenBurns {
  from { transform: scale(1.06); }
  to   { transform: scale(1); }
}
/* Overlay: topo escuro (para nav), diagonal lateral, base escura */
.site-hero.has-bg .hero-overlay {
  position: absolute; inset: 0;
  background:
    linear-gradient(to bottom,
      rgba(10,46,56,.62) 0%,
      transparent 28%),
    linear-gradient(110deg,
      rgba(10,46,56,.84) 0%,
      rgba(18,86,104,.52) 40%,
      transparent 70%),
    linear-gradient(to top,
      rgba(10,46,56,.80) 0%,
      transparent 52%);
}

/* Variante SEM imagem → hero compacto com gradiente CSS */
.site-hero:not(.has-bg) .hero-bg,
.site-hero:not(.has-bg) .hero-overlay {
  display: none;
}
.site-hero:not(.has-bg) {
  background: linear-gradient(145deg,
    #0a2e38 0%,
    #125668 35%,
    #1e6e75 65%,
    #3ba9ac 100%
  );
  min-height: calc(var(--hdr-h) + 260px);
}

/* Área de conteúdo do hero */
.hero-content {
  position: relative; z-index: 2;
  width: 100%;
  max-width: 1200px;
  margin: 0 auto;
  padding: 48px 5vw 60px;
}

/* Breadcrumb */
.hero-breadcrumb {
  display: flex; align-items: center; gap: 8px;
  font-family: 'Montserrat', sans-serif;
  font-size: .67rem; font-weight: 600; letter-spacing: .08em;
  color: rgba(255,255,255,.5);
  text-transform: uppercase;
  margin-bottom: 20px;
  animation: heroFadeUp .6s ease both;
}
.hero-breadcrumb a {
  color: rgba(255,255,255,.5); text-decoration: none; transition: color .2s;
}
.hero-breadcrumb a:hover { color: var(--accent); }
.hero-breadcrumb span { color: rgba(255,255,255,.22); }
.hero-breadcrumb strong { color: rgba(255,255,255,.88); }

/* Badge */
.hero-badge {
  display: inline-flex; align-items: center; gap: 7px;
  background: var(--accent); color: var(--dark);
  font-family: 'Montserrat', sans-serif;
  font-size: .65rem; font-weight: 800; letter-spacing: .14em;
  text-transform: uppercase;
  padding: 5px 14px; border-radius: 20px;
  margin-bottom: 20px;
  animation: heroFadeUp .6s .08s ease both;
}

/* H1 — grande, impacto, linha de acento */
.hero-h1 {
  font-family: 'Montserrat', sans-serif;
  font-weight: 800;
  font-size: clamp(2rem, 5.5vw, 4rem);
  line-height: 1.05;
  letter-spacing: -.03em;
  color: #ffffff;
  max-width: 760px;
  margin: 0 0 28px;
  text-shadow:
    0 2px 12px rgba(0,0,0,.5),
    0 0 40px rgba(10,46,56,.6);
  animation: heroFadeUp .7s .16s ease both;
  /* linha acento sob H1 */
  position: relative;
  padding-bottom: 22px;
}
.hero-h1::after {
  content: '';
  position: absolute;
  bottom: 0; left: 0;
  width: 72px; height: 3px;
  background: var(--accent);
  border-radius: 2px;
  animation: heroLineGrow .6s .6s ease both;
}
@keyframes heroLineGrow {
  from { width: 0; opacity: 0; }
  to   { width: 72px; opacity: 1; }
}

/* Chips de info dentro do hero */
.hero-chips {
  display: flex; gap: 10px; flex-wrap: wrap;
  animation: heroFadeUp .6s .32s ease both;
}
.hero-chip {
  display: inline-flex; align-items: center; gap: 6px;
  background: rgba(255,255,255,.12);
  border: 1px solid rgba(255,255,255,.2);
  backdrop-filter: blur(8px);
  color: rgba(255,255,255,.9);
  font-family: 'Montserrat', sans-serif;
  font-size: .72rem; font-weight: 700;
  padding: 6px 14px; border-radius: 20px;
}
.hero-chip svg { width: 13px; height: 13px; fill: var(--accent); }

/* Animação de entrada */
@keyframes heroFadeUp {
  from { opacity: 0; transform: translateY(20px); }
  to   { opacity: 1; transform: translateY(0); }
}

/* Responsivo */
@media (max-width:700px) {
  /* Hero: conteúdo parte do topo e tem margem explícita abaixo da barra fixa */
  .site-hero {
    justify-content: flex-start;
    padding-top: 0;                       /* retira o padding do container */
    min-height: calc(var(--hdr-h) + 320px);
  }
  .site-hero.has-bg { min-height: calc(var(--hdr-h) + 320px); }

  /* hero-content: margin-top empurra todo o bloco para baixo do nav + folga */
  .hero-content {
    margin-top: calc(var(--hdr-h) + 40px); /* nav height + 40px de respiro */
    padding-top: 0;
    padding-bottom: 48px;
  }
  .hero-h1 { font-size: clamp(1.7rem, 7vw, 2.6rem); }
}

/* ── PAGE BODY (mantém todos os estilos de componentes) ── */
.page-body {
  background: transparent;  /* herda do body gradient */
  padding: 44px 5vw 72px;
}

/* ── TYPOGRAPHY ── */
.page-main h2 {
  font-family: 'Montserrat', sans-serif; font-weight: 700;
  font-size: clamp(1.68rem, 3.36vw, 2.4rem);  /* +20% */
  font-style: normal !important;
  letter-spacing: -.02em; margin-bottom: 14px;
  color: var(--dark);
}
.page-main p,
.page-main ul li {
  color: #125668;
  font-weight: 400;
}
.page-main ul li::before {
  background: var(--primary);
}
.page-main h3 {
  font-family: 'Montserrat', sans-serif; font-weight: 700;
  font-size: 1.1rem; letter-spacing: -.01em;
  color: var(--accent); margin: 28px 0 8px;
}
.page-main p {
  font-size: .95rem;
  color: #125668;
  font-weight: 400;
  line-height: 1.78;
  margin-bottom: 14px;
}
.page-main ul {
  margin: 0 0 18px 0; padding: 0;
  list-style: none;
}
.page-main ul li {
  font-size: .93rem;
  color: #125668;
  font-weight: 400;
  line-height: 1.6;
  padding: 5px 0 5px 22px;
  position: relative;
}
.page-main ul li::before {
  content: '';
  position: absolute; left: 0; top: 13px;
  width: 8px; height: 8px; border-radius: 50%;
  background: var(--accent);
}
.page-divider {
  border: none; border-top: 1px solid rgba(59,169,172,.2);
  margin: 36px 0;
}

/* ── PRICING TABLE ── */
.pricing-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(200px,1fr));
  gap: 16px;
  margin: 28px 0;
}
.pricing-card {
  background: var(--surface);
  border-radius: var(--r);
  padding: 26px 22px;
  border: 1px solid rgba(59,169,172,.2);
  transition: border-color .3s, transform .3s;
  display: flex;
  flex-direction: column;
}
.pricing-card:hover { border-color: var(--accent); transform: translateY(-3px); }
.pricing-card .pricing-desc { flex: 1; }
.pricing-card.featured {
  border-color: var(--accent);
  background: linear-gradient(135deg, var(--surface), var(--primary));
}

/* ── Secondary cards: Lagoa, Fotos e Oferta — fundo mais escuro / distinto ── */
.pricing-card.lagoa-card,
.pricing-card.photo-card,
.pricing-card.promo-card {
  background: linear-gradient(145deg, #0d3d48 0%, #0a2e38 100%);
  border: 1px solid rgba(59,169,172,.38);
}
.pricing-card.lagoa-card { border-color: var(--secondary); }
.pricing-card.photo-card { border-color: var(--secondary); }
.pricing-card.promo-card { border-color: var(--accent); }
.pricing-cta-btn {
  display: inline-flex; align-items: center; gap: 6px;
  background: var(--wa); color: #fff;
  font-family: 'Montserrat', sans-serif; font-size: .72rem; font-weight: 700;
  padding: 8px 16px; border-radius: 20px; text-decoration: none;
  margin-top: 14px; transition: .2s;
}
.pricing-cta-btn:hover { box-shadow: 0 4px 16px rgba(37,211,102,.4); transform: translateY(-1px); }
.pricing-tag {
  font-family: 'Montserrat', sans-serif; font-size: .6rem;
  font-weight: 800; letter-spacing: .14em; text-transform: uppercase;
  color: var(--accent); margin-bottom: 8px;
}
.pricing-name {
  font-family: 'Montserrat', sans-serif; font-weight: 700;
  font-size: 1.05rem; color: var(--white); margin-bottom: 6px;
}
.pricing-price {
  font-family: 'Montserrat', sans-serif; font-weight: 800;
  font-size: 1.6rem; color: var(--accent); margin-bottom: 10px;
}
.pricing-price small {
  font-size: .7rem; font-weight: 600;
  color: rgba(255,255,255,.55);
}
.pricing-desc {
  font-size: .8rem; color: rgba(255,255,255,.65);
  line-height: 1.55;
}
.pricing-note {
  font-size: .78rem; color: rgba(255,255,255,.45);
  font-style: italic; margin-top: 6px;
}

/* ── INFO CHIPS ── */
.info-chips {
  display: flex; gap: 10px; flex-wrap: wrap;
  margin: 20px 0;
}
.chip {
  display: inline-flex; align-items: center; gap: 6px;
  background: rgba(42,122,136,.25);
  border: 1px solid rgba(59,169,172,.3);
  color: rgba(255,255,255,.85);
  font-family: 'Montserrat', sans-serif; font-size: .73rem; font-weight: 700;
  padding: 6px 14px; border-radius: 20px;
}
.chip svg { width: 14px; height: 14px; fill: var(--accent); }

/* ── SPOTS LIST ── */
.spot-list { display: flex; flex-direction: column; gap: 14px; margin: 20px 0; }
.spot-item {
  background: var(--surface);
  border-radius: var(--r);
  padding: 20px 22px;
  border-left: 4px solid var(--accent);
}
.spot-item-name {
  font-family: 'Montserrat', sans-serif; font-weight: 700;
  font-size: 1rem; color: var(--white); margin-bottom: 4px;
}
.spot-item-text { font-size: .84rem; color: rgba(255,255,255,.68); line-height: 1.6; }

/* ── SIDEBAR ── */
.sidebar-cta {
  background: var(--surface);
  border-radius: 18px;
  padding: 30px 26px;
  border: 1px solid rgba(59,169,172,.25);
  margin-bottom: 20px;
}
.sidebar-cta-title {
  font-family: 'Montserrat', sans-serif; font-weight: 700;
  font-size: 1.1rem; color: var(--white); margin-bottom: 8px;
}
.sidebar-cta-sub {
  font-size: .83rem; color: rgba(255,255,255,.62);
  margin-bottom: 20px; line-height: 1.6;
}
.btn-wa-full {
  display: flex; align-items: center; justify-content: center; gap: 9px;
  background: var(--wa); color: #fff;
  font-family: 'Montserrat', sans-serif; font-weight: 800; font-size: .88rem;
  padding: 13px 20px; border-radius: 28px; text-decoration: none;
  box-shadow: 0 4px 18px rgba(37,211,102,.35);
  transition: .2s; width: 100%;
}
.btn-wa-full:hover { transform: translateY(-2px); box-shadow: 0 7px 24px rgba(37,211,102,.5); }
.btn-wa-full svg { width: 18px; height: 18px; fill: currentColor; }

.sidebar-info {
  background: var(--dark);
  border-radius: var(--r);
  padding: 22px 22px;
  border: 1px solid rgba(59,169,172,.15);
  margin-bottom: 20px;
}
.sidebar-info-title {
  font-family: 'Montserrat', sans-serif; font-size: .67rem;
  font-weight: 800; letter-spacing: .16em; text-transform: uppercase;
  color: var(--accent); margin-bottom: 14px;
}
.sidebar-info-row {
  display: flex; justify-content: space-between;
  font-size: .83rem; padding: 7px 0;
  border-bottom: 1px solid rgba(255,255,255,.06);
  color: rgba(255,255,255,.65);
}
.sidebar-info-row:last-child { border-bottom: none; }
.sidebar-info-row strong { color: var(--white); font-weight: 700; }

.sidebar-links { display: flex; flex-direction: column; gap: 8px; }
.sidebar-link {
  display: flex; align-items: center; gap: 9px;
  background: var(--surface);
  border-radius: 10px; padding: 13px 16px;
  color: rgba(255,255,255,.75); text-decoration: none;
  font-family: 'Montserrat', sans-serif; font-size: .8rem; font-weight: 700;
  transition: .2s; border: 1px solid rgba(59,169,172,.15);
}
.sidebar-link:hover { background: var(--primary); color: var(--accent); border-color: var(--accent); }
.sidebar-link svg { width: 16px; height: 16px; fill: var(--accent); flex-shrink: 0; }

/* ── PHOTO GRID ── */
.photo-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 10px;
  margin: 28px 0;
}
.photo-grid-item {
  border-radius: 10px; overflow: hidden;
  aspect-ratio: 4/3;
}
.photo-grid-item img {
  width: 100%; height: 100%; object-fit: cover;
  transition: transform .4s;
  display: block;
}
.photo-grid-item:hover img { transform: scale(1.06); }
.photo-grid-item.tall { grid-row: span 2; aspect-ratio: unset; }

/* ── FAQ (herda do base, só ajuste de cor) ── */
.page-faq .faq-list { margin-top: 24px; }

/* ── CTA BAND (herda do base) ── */

/* ── RESPONSIVE ── */
@media (max-width: 900px) {
  .page-body .container {
    grid-template-columns: 1fr;
  }
  .page-sidebar { position: static; }
  .photo-grid { grid-template-columns: repeat(2,1fr); }
  .photo-grid-item.tall { grid-row: span 1; aspect-ratio: 4/3; }
}
@media (max-width: 600px) {
  .page-hero { height: 38vh; min-height: 270px; }
  .pricing-grid { grid-template-columns: 1fr; }
  .photo-grid { grid-template-columns: 1fr 1fr; }
}

/* ═══════════════════════════════════════════════════════
   COMPONENTES ADICIONAIS — Icaraizinho & Escola pages
═══════════════════════════════════════════════════════ */

/* ── SPOT CARDS WITH PHOTO ── */
.spot-cards {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px,1fr));
  gap: 20px;
  margin: 28px 0;
}
.spot-photo-card {
  border-radius: var(--r);
  overflow: hidden;
  background: var(--surface);
  border: 1px solid rgba(59,169,172,.2);
  transition: transform .3s, box-shadow .3s;
}
.spot-photo-card:hover { transform: translateY(-4px); box-shadow: 0 14px 36px rgba(0,0,0,.35); }
.spot-photo-card img {
  width: 100%; height: 180px; object-fit: cover; display: block;
  transition: transform .5s;
}
.spot-photo-card:hover img { transform: scale(1.05); }
.spot-photo-body { padding: 20px 18px; }
.spot-photo-label {
  font-family: 'Montserrat', sans-serif; font-size: .6rem; font-weight: 800;
  letter-spacing: .14em; text-transform: uppercase;
  color: var(--accent); margin-bottom: 6px;
}
.spot-photo-name {
  font-family: 'Montserrat', sans-serif; font-weight: 700;
  font-size: 1.05rem; color: var(--white); margin-bottom: 6px;
}
.spot-photo-text {
  font-size: .82rem; color: rgba(255,255,255,.65); line-height: 1.58;
}
.spot-photo-pills {
  display: flex; gap: 6px; flex-wrap: wrap; margin-top: 10px;
}
.spot-pill-sm {
  font-family: 'Montserrat', sans-serif; font-size: .62rem; font-weight: 700;
  background: rgba(244,199,36,.12); color: var(--accent);
  border: 1px solid rgba(244,199,36,.25); padding: 3px 10px; border-radius: 12px;
}

/* ── ACTIVITY LIST ── */
.activity-list {
  display: flex; flex-direction: column; gap: 12px;
  margin: 20px 0;
}
.activity-item {
  display: flex; align-items: flex-start; gap: 14px;
  background: var(--surface);
  border-radius: var(--r); padding: 16px 18px;
  border: 1px solid rgba(59,169,172,.18);
  transition: border-color .3s;
}
.activity-item:hover { border-color: var(--accent); }
.activity-item.wellness {
  border-color: var(--secondary);
  background: linear-gradient(135deg, rgba(59,169,172,.18), var(--surface));
}
.activity-icon {
  font-size: 1.5rem; flex-shrink: 0;
  width: 36px; text-align: center;
}
.activity-body {}
.activity-name {
  font-family: 'Montserrat', sans-serif; font-weight: 700;
  font-size: .9rem; color: var(--white); margin-bottom: 3px;
}
.activity-desc {
  font-size: .8rem; color: rgba(255,255,255,.62); line-height: 1.55;
}
.wellness-badge {
  display: inline-block;
  font-family: 'Montserrat', sans-serif; font-size: .58rem; font-weight: 800;
  letter-spacing: .1em; text-transform: uppercase;
  background: var(--secondary); color: var(--dark);
  padding: 2px 8px; border-radius: 8px; margin-left: 8px;
  vertical-align: middle;
}

/* ── HIGHLIGHT BOX (transport / quadricycle) ── */
.highlight-box {
  background: linear-gradient(135deg, rgba(42,122,136,.35), rgba(10,46,56,.9));
  border: 2px solid var(--secondary);
  border-radius: 18px;
  padding: 32px 28px;
  margin: 28px 0;
  display: flex; gap: 22px; align-items: flex-start;
}
.highlight-box-icon {
  font-size: 2.8rem; flex-shrink: 0;
}
.highlight-box-title {
  font-family: 'Montserrat', sans-serif; font-weight: 700;
  font-size: 1.15rem; color: var(--white); margin-bottom: 8px;
}
.highlight-box-text {
  font-size: .88rem; color: rgba(255,255,255,.72); line-height: 1.7;
}
.highlight-box-tags {
  display: flex; gap: 8px; flex-wrap: wrap; margin-top: 12px;
}
.highlight-tag {
  font-family: 'Montserrat', sans-serif; font-size: .67rem; font-weight: 700;
  background: rgba(59,169,172,.25); color: var(--secondary);
  border: 1px solid rgba(59,169,172,.35); padding: 4px 12px; border-radius: 12px;
}

/* ── TIMELINE ── */
.timeline {
  position: relative;
  margin: 32px 0;
  padding-left: 32px;
}
.timeline::before {
  content: '';
  position: absolute; left: 10px; top: 8px; bottom: 8px;
  width: 2px;
  background: linear-gradient(to bottom, var(--accent), var(--secondary), transparent);
  border-radius: 2px;
}
.tl-item {
  position: relative;
  margin-bottom: 28px;
  padding-left: 18px;
}
.tl-item:last-child { margin-bottom: 0; }
.tl-dot {
  position: absolute; left: -32px; top: 4px;
  width: 18px; height: 18px; border-radius: 50%;
  background: var(--accent);
  border: 3px solid var(--dark);
  box-shadow: 0 0 0 2px var(--accent);
  flex-shrink: 0;
}
.tl-item.secondary .tl-dot { background: var(--secondary); box-shadow: 0 0 0 2px var(--secondary); }
.tl-year {
  font-family: 'Montserrat', sans-serif; font-weight: 800;
  font-size: .72rem; letter-spacing: .12em;
  color: var(--accent); margin-bottom: 4px; text-transform: uppercase;
}
.tl-item.secondary .tl-year { color: var(--secondary); }
.tl-title {
  font-family: 'Montserrat', sans-serif; font-weight: 700;
  font-size: .98rem; color: var(--white); margin-bottom: 4px;
}
.tl-text {
  font-size: .82rem; color: rgba(255,255,255,.62); line-height: 1.6;
}

/* ── TEAM ── */
.team-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(160px,1fr));
  gap: 16px;
  margin: 24px 0;
}
.team-card {
  background: var(--surface);
  border-radius: var(--r); padding: 22px 16px;
  text-align: center;
  border: 1px solid rgba(59,169,172,.18);
  transition: .3s;
}
.team-card:hover { border-color: var(--accent); transform: translateY(-3px); }
.team-avatar {
  width: 64px; height: 64px; border-radius: 50%;
  background: linear-gradient(135deg, var(--secondary), var(--primary));
  margin: 0 auto 12px;
  display: flex; align-items: center; justify-content: center;
  font-size: 1.6rem;
  border: 2px solid rgba(59,169,172,.35);
  overflow: hidden;
}
.team-avatar img { width: 100%; height: 100%; object-fit: cover; }
.team-name {
  font-family: 'Montserrat', sans-serif; font-weight: 800;
  font-size: .9rem; color: var(--accent); margin-bottom: 4px;
}
.team-role {
  font-size: .76rem; color: rgba(255,255,255,.62); line-height: 1.45;
}

/* ── SERVICE LINK CARDS (escola page) ── */
.service-links-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(200px,1fr));
  gap: 16px;
  margin: 24px 0;
}
.service-link-card {
  background: var(--surface);
  border-radius: var(--r); padding: 24px 20px;
  text-decoration: none;
  border: 1px solid rgba(59,169,172,.2);
  transition: .3s;
  display: flex; flex-direction: column; gap: 8px;
}
.service-link-card:hover {
  border-color: var(--accent);
  transform: translateY(-4px);
  box-shadow: 0 12px 32px rgba(0,0,0,.3);
}
/* Service cards: icon white, centered */
.service-link-card {
  align-items: center !important;
  text-align: center !important;
}
.service-link-icon {
  font-size: 1.8rem;
  display: flex;
  justify-content: center;
  align-items: center;
  width: 52px;
  height: 52px;
  border-radius: 14px;
  background: rgba(255,255,255,.12);
  margin-bottom: 4px;
}
.service-link-icon svg {
  width: 1.9rem;
  height: 1.9rem;
  fill: #ffffff;
  flex-shrink: 0;
}
.service-link-card:hover .service-link-icon {
  background: rgba(244,199,36,.18);
}
.service-link-card:hover .service-link-icon svg { fill: #ffffff; }
.service-link-card.active-service .service-link-icon { background: rgba(244,199,36,.2); }
.service-link-name {
  font-family: 'Montserrat', sans-serif; font-weight: 700;
  font-size: 1rem; color: var(--white);
}
.service-link-desc {
  font-size: .78rem; color: rgba(255,255,255,.58); line-height: 1.5;
}
.service-link-cta {
  font-family: 'Montserrat', sans-serif; font-size: .7rem; font-weight: 800;
  color: var(--accent); letter-spacing: .06em; margin-top: 4px;
}

/* ── RESPONSIVE ADDITIONS ── */
@media (max-width:900px) {
  .spot-cards { grid-template-columns: 1fr; }
  .team-grid { grid-template-columns: repeat(3,1fr); }
  .highlight-box { flex-direction: column; gap: 12px; }
}
@media (max-width:600px) {
  .team-grid { grid-template-columns: repeat(2,1fr); }
  .service-links-grid { grid-template-columns: 1fr 1fr; }
}

/* ═══════════════════════════════════════════════════════
   LAYOUT CENTRALIZADO — sem sidebar (.page-centered)
═══════════════════════════════════════════════════════ */

/* ── Hero centralizado ── */
.page-hero.hero-centered .page-hero-content {
  text-align: center;
  display: flex;
  flex-direction: column;
  align-items: center;
}
.page-hero.hero-centered .page-breadcrumb {
  justify-content: center;
}
.page-hero.hero-centered .page-hero-badge {
  align-self: center;
}
.page-hero.hero-centered h1 {
  max-width: 860px;
  margin-left: auto;
  margin-right: auto;
}
/* Hero um pouco mais alto para mais impacto sem sidebar */
.page-hero.hero-centered {
  height: 54vh;
  min-height: 360px;
  max-height: 580px;
}

/* ── Body layout centralizado ── */
.page-centered .container {
  display: block;
  max-width: 860px;
  margin: 0 auto;
}
.page-centered .page-main {
  max-width: 100%;
}

/* ── Texto escuro para fundo claro (gradient branco → verde) ── */
.page-centered .page-main h2,
.page-centered .page-main h3 {
  color: var(--dark);
  text-align: center;
  font-style: normal !important;
}
.page-centered .page-main p,
.page-centered .page-main ul li {
  color: #125668;
  font-weight: 400;
}
.page-centered .page-main ul li::before {
  background: var(--primary);
}
.page-centered .section-intro {
  color: rgba(10,46,56,0.82) !important;
}
.page-centered .page-divider {
  border-color: rgba(18,86,104,0.18);
}

/* ── Chips e títulos centralizados ── */
.page-centered .info-chips {
  justify-content: center;
}
.page-centered .info-chips .chip {
  background: #ffffff;
  border-color: rgba(18,86,104,0.18);
  color: var(--dark);
  box-shadow: 0 2px 8px rgba(18,86,104,.12);
}
.page-centered .info-chips .chip svg { fill: var(--primary); }

.page-centered .section-intro {
  text-align: center;
  max-width: 680px;
  margin-left: auto;
  margin-right: auto;
}

/* ── Booking strip: adapt para fundo claro ── */
.page-centered .booking-strip {
  background: rgba(18,86,104,0.12);
  border-color: rgba(18,86,104,0.22);
}
.page-centered .booking-strip-label { color: rgba(10,46,56,0.55); }
.page-centered .booking-strip-value { color: var(--dark); }
.page-centered .booking-strip-divider { background: rgba(18,86,104,0.2); }

/* ── Nota de rodapé: cor escura ── */
.page-centered .pricing-note-text { color: rgba(10,46,56,0.45); }

/* ── Spot items: adaptar para fundo claro/médio ── */
.page-centered .spot-item {
  background: rgba(255,255,255,0.55);
  border-left-color: var(--primary);
}
.page-centered .spot-item-name { color: var(--dark); }
.page-centered .spot-item-text { color: rgba(10,46,56,0.72); }

/* ── FAQ: fundo semi-transparente adaptado ── */
.page-centered .faq-item {
  background: rgba(255,255,255,0.45);
  border-color: rgba(18,86,104,0.18);
}
.page-centered .faq-q { color: var(--dark); }
.page-centered .faq-a { color: rgba(10,46,56,0.75); }

/* ── Related services: adaptar ── */
.page-centered .related-service-link {
  background: rgba(255,255,255,0.5);
  border-color: rgba(18,86,104,0.2);
  color: var(--dark);
}
.page-centered .related-service-link:hover {
  background: rgba(18,86,104,0.12);
  color: var(--primary);
  border-color: var(--primary);
}

/* ── Inline booking strip (substitui sidebar) ── */
.booking-strip {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  background: var(--surface);
  border: 1px solid rgba(59,169,172,.28);
  border-radius: 16px;
  padding: 20px 28px;
  margin: 32px 0;
  flex-wrap: wrap;
}
.booking-strip-info {
  display: flex;
  gap: 28px;
  flex-wrap: wrap;
}
.booking-strip-item {
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.booking-strip-label {
  font-family: 'Montserrat', sans-serif;
  font-size: .6rem; font-weight: 800;
  letter-spacing: .12em; text-transform: uppercase;
  color: rgba(255,255,255,.45);
}
.booking-strip-value {
  font-family: 'Montserrat', sans-serif;
  font-size: .88rem; font-weight: 700;
  color: var(--white);
}
.booking-strip-divider {
  width: 1px; height: 36px;
  background: rgba(59,169,172,.25);
  align-self: center;
  flex-shrink: 0;
}
.btn-wa-strip {
  display: inline-flex; align-items: center; gap: 8px;
  background: var(--wa); color: #fff;
  font-family: 'Montserrat', sans-serif; font-weight: 800; font-size: .86rem;
  padding: 12px 22px; border-radius: 28px; text-decoration: none;
  white-space: nowrap;
  box-shadow: 0 4px 16px rgba(37,211,102,.32);
  transition: .2s; flex-shrink: 0;
}
.btn-wa-strip:hover { transform: translateY(-2px); box-shadow: 0 7px 22px rgba(37,211,102,.48); }
.btn-wa-strip svg { width: 17px; height: 17px; fill: currentColor; }

/* ── Pricing grid: fixo 3 colunas × 2 linhas ── */
.page-centered .pricing-grid {
  grid-template-columns: repeat(3, 1fr);
}
.page-centered .pricing-card.promo-card {
  grid-column: span 1 !important;
}
/* Spot cards: 3 colunas no layout centralizado */
.page-centered .spot-cards { grid-template-columns: repeat(3,1fr) !important; }
@media (max-width: 700px) {
  /* Spots: 1 coluna no mobile — cards empilhados */
  .spot-cards,
  .page-centered .spot-cards {
    grid-template-columns: 1fr !important;
  }
}

/* Service links grid: fixo 3 colunas × 2 linhas */
.page-centered .service-links-grid {
  grid-template-columns: repeat(3, 1fr) !important;
}

/* ── Photo grid: 4 cols on wide centered layout ── */
.page-centered .photo-grid {
  grid-template-columns: repeat(4, 1fr);
}
.page-centered .photo-grid-item.tall {
  grid-row: span 2;
}

/* ── Related services row at bottom ── */
.related-services {
  display: flex;
  gap: 12px;
  flex-wrap: wrap;
  justify-content: center;
  margin: 20px 0;
}
.related-service-link {
  display: inline-flex; align-items: center; gap: 8px;
  background: var(--surface);
  border: 1px solid rgba(59,169,172,.18);
  border-radius: 10px; padding: 11px 18px;
  color: rgba(255,255,255,.75); text-decoration: none;
  font-family: 'Montserrat', sans-serif; font-size: .78rem; font-weight: 700;
  transition: .2s;
}
.related-service-link:hover {
  border-color: var(--accent); color: var(--accent);
  background: rgba(244,199,36,.06);
}
.related-service-link svg { width: 15px; height: 15px; fill: var(--accent); }

/* ── Responsive adjustments ── */
@media (max-width:860px) {
  .page-centered .pricing-grid { grid-template-columns: repeat(2,1fr); }
  .page-centered .pricing-card.promo-card { grid-column: span 1 !important; }
  .page-centered .service-links-grid { grid-template-columns: repeat(2,1fr) !important; }
  .page-centered .photo-grid { grid-template-columns: repeat(3,1fr); }
  .booking-strip { flex-direction: column; align-items: flex-start; gap: 16px; }
  .booking-strip-divider { display: none; }
  .btn-wa-strip { width: 100%; justify-content: center; }
}
@media (max-width:600px) {
  .page-centered .pricing-grid { grid-template-columns: 1fr 1fr; }
  .page-centered .service-links-grid { grid-template-columns: 1fr 1fr !important; }
  .page-centered .photo-grid { grid-template-columns: 1fr 1fr; }
  .page-hero.hero-centered { height: 42vh; }
}

/* ═══════════════════════════════════════════════════════
   LAYOUT CENTRALIZADO — sem sidebar (.page-centered)
   Aplique a classe page-centered no <main class="page-body">
═══════════════════════════════════════════════════════ */

/* ── HERO CENTRADO ── */
.hero-centered .page-hero-content {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
}
.hero-centered .page-breadcrumb {
  justify-content: center;
}
.hero-centered .page-hero h1 {
  font-size: clamp(2rem, 5vw, 3.8rem);
  max-width: 820px;
}
/* Overlay mais rico para hero centrado */
.hero-centered .page-hero-overlay {
  background: linear-gradient(
    to bottom,
    rgba(10,46,56,0.45)  0%,
    rgba(18,86,104,0.30) 40%,
    rgba(42,122,136,0.55) 72%,
    rgba(10,46,56,0.92)  100%
  );
}
.hero-centered.page-hero {
  height: 54vh;
  min-height: 360px;
}

/* ── CONTAINER CENTRALIZADO ── */
.page-centered .container {
  display: block;           /* cancela o grid de 2 colunas */
  max-width: 860px;
  margin: 0 auto;
}

/* Tipografia um pouco maior sem sidebar */
.page-centered .page-main h2 {
  font-size: clamp(1.8rem, 3.84vw, 2.64rem)  /* +20% */;
}
.page-centered .page-main p {
  font-size: .98rem;
  line-height: 1.82;
}
.section-intro {
  text-align: center !important;
  font-size: 1.05rem !important;
  color: #125668 !important;
  font-weight: 400 !important;
  color: rgba(255,255,255,.82) !important;
  line-height: 1.84 !important;
  max-width: 720px;
}

/* ── BOOKING STRIP ── */
/* Barra horizontal que substitui a sidebar — visível logo após a intro */
.booking-strip {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  background: var(--surface);
  border: 1px solid rgba(59,169,172,.3);
  border-radius: 14px;
  padding: 18px 24px;
  margin: 28px 0 32px;
  flex-wrap: wrap;
}
.booking-strip-info {
  display: flex;
  align-items: center;
  gap: 0;
  flex-wrap: wrap;
  flex: 1;
}
.booking-strip-item {
  display: flex;
  flex-direction: column;
  padding: 0 20px;
}
.booking-strip-item:first-child { padding-left: 0; }
.booking-strip-label {
  font-family: 'Montserrat', sans-serif;
  font-size: .6rem; font-weight: 800; letter-spacing: .12em;
  text-transform: uppercase;
  color: rgba(255,255,255,.5);
  margin-bottom: 3px;
}
.booking-strip-value {
  font-family: 'Montserrat', sans-serif;
  font-size: .92rem; font-weight: 700;
  color: var(--white);
}
.booking-strip-divider {
  width: 1px; height: 32px;
  background: rgba(59,169,172,.25);
  flex-shrink: 0;
}
.btn-wa-strip {
  display: inline-flex; align-items: center; gap: 8px;
  background: var(--wa); color: #fff;
  font-family: 'Montserrat', sans-serif; font-weight: 800; font-size: .85rem;
  padding: 11px 22px; border-radius: 26px; text-decoration: none;
  white-space: nowrap;
  box-shadow: 0 3px 14px rgba(37,211,102,.35);
  transition: .2s; flex-shrink: 0;
}
.btn-wa-strip:hover { transform: translateY(-1px); box-shadow: 0 6px 20px rgba(37,211,102,.5); }
.btn-wa-strip svg { width: 16px; height: 16px; fill: currentColor; }

/* ── LINKS DE SERVIÇOS RELACIONADOS ── */
.related-services {
  display: flex;
  gap: 12px;
  flex-wrap: wrap;
  margin: 20px 0;
}
.related-service-link {
  display: inline-flex; align-items: center; gap: 7px;
  background: var(--surface);
  border: 1px solid rgba(59,169,172,.22);
  color: rgba(255,255,255,.78);
  font-family: 'Montserrat', sans-serif; font-size: .8rem; font-weight: 700;
  padding: 10px 18px; border-radius: 24px;
  text-decoration: none; transition: .2s;
}
.related-service-link:hover {
  border-color: var(--accent);
  color: var(--accent);
  background: rgba(244,199,36,.06);
}
.related-service-link svg { width: 15px; height: 15px; fill: var(--accent); }

/* ── RESPONSIVE ── */
@media (max-width:640px) {
  .booking-strip { flex-direction: column; align-items: flex-start; }
  .booking-strip-info { gap: 16px 0; }
  .booking-strip-divider { display: none; }
  .booking-strip-item { padding: 0; }
  .btn-wa-strip { width: 100%; justify-content: center; }
}

/* ── Service card: página atual destacada ── */
.service-link-card.active-service {
  border-color: var(--accent);
  background: linear-gradient(135deg, rgba(244,199,36,.1), var(--surface));
}
.service-link-card.active-service .service-link-name { color: var(--accent); }

/* ── Service card: Yoga → WA ── */
.service-link-card.yoga-service {
  border-color: rgba(37,211,102,.35);
  background: linear-gradient(135deg, rgba(37,211,102,.08), var(--surface));
}
.service-link-card.yoga-service .service-link-cta { color: var(--wa); }

/* ── INCLUDES CARDS (O que está incluído) ── */
.includes-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 16px;
  margin: 24px 0;
}
.include-card {
  background: var(--surface);
  border-radius: var(--r);
  padding: 26px 22px;
  text-align: center;
  border: 1px solid rgba(59,169,172,.2);
  transition: border-color .3s, transform .3s;
  display: flex;
  flex-direction: column;
  align-items: center;
}
.include-card:hover { border-color: var(--accent); transform: translateY(-3px); }
.include-icon {
  width: 44px; height: 44px;
  margin: 0 auto 14px;
  color: var(--white);         /* ícone branco */
}
.include-icon svg { width: 44px; height: 44px; fill: currentColor; }
.include-title {
  font-family: 'Montserrat', sans-serif;
  font-weight: 700; font-size: .82rem;
  color: var(--accent);        /* título amarelo */
  text-transform: uppercase; letter-spacing: .05em;
  margin-bottom: 8px;
  flex: 0;
}
.include-desc {
  font-size: .8rem;
  color: rgba(255,255,255,.72); /* texto branco */
  line-height: 1.6;
  flex: 1;
}
@media (max-width:860px) { .includes-grid { grid-template-columns: repeat(2,1fr); } }
@media (max-width:480px) { .includes-grid { grid-template-columns: 1fr 1fr; } }

/* ── H2 global: no italic ── */
h2 { font-style: normal !important; }

/* ═══════════════════════════════════════════════════════
   ESCOLA PAGE — componentes específicos
═══════════════════════════════════════════════════════ */

/* ── TEAM 5-col com fotos retrato ── */
.team-grid.escola-team {
  grid-template-columns: repeat(5, 1fr) !important;
  gap: 14px;
}
.team-grid.escola-team .team-card {
  padding: 0;
  overflow: hidden;
  border-radius: var(--r);
  text-align: center;
  background: var(--surface);
  border: 1px solid rgba(59,169,172,.2);
  transition: transform .3s, box-shadow .3s;
}
.team-grid.escola-team .team-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 12px 32px rgba(10,46,56,.3);
  border-color: var(--accent);
}
.team-grid.escola-team .team-avatar {
  width: 100%;
  height: 220px;
  border-radius: 0;
  overflow: hidden;
  background: var(--primary);
}
.team-grid.escola-team .team-avatar img {
  width: 100%; height: 100%;
  object-fit: cover;
  object-position: top center;
  border-radius: 0;
}
.team-grid.escola-team .team-name {
  margin-top: 14px;
  padding: 0 12px;
  font-size: .92rem;
}
.team-grid.escola-team .team-role {
  padding: 0 12px 16px;
  font-size: .74rem;
  color: rgba(255,255,255,.6);
}
@media (max-width: 900px) {
  .team-grid.escola-team { grid-template-columns: repeat(3, 1fr) !important; }
}
@media (max-width: 560px) {
  .team-grid.escola-team { grid-template-columns: repeat(2, 1fr) !important; }
}

/* ── SERVICES com imagem de fundo ── */
.service-link-card {
  position: relative;
  overflow: hidden;
  min-height: 180px;
}
.service-link-card::before {
  content: '';
  position: absolute; inset: 0;
  background-image: var(--svc-bg, none);
  background-size: cover;
  background-position: center;
  opacity: 0.22;
  transition: opacity .35s;
  z-index: 0;
  border-radius: var(--r);
}
.service-link-card:hover::before { opacity: 0.35; }
.service-link-card > * { position: relative; z-index: 1; }
/* Oculta ícone se não houver SVG (apenas emoji) */
.service-link-card .service-link-icon svg { display: none; }
.service-link-card .service-link-icon:empty,
.service-link-card .service-link-icon:not(:has(svg)) { display: none; }

/* ── TIMELINE — cores da paleta ── */
.tl-year  { color: var(--accent) !important; }
.tl-title { color: #125668 !important; font-weight: 700; }
.tl-text  { color: #125668 !important; font-weight: 400; }

/* ── FROTA — 2 imagens lado a lado ── */
.fleet-images {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 18px;
  margin: 24px 0;
}
.fleet-item { text-align: center; }
.fleet-item-img {
  border-radius: var(--r);
  overflow: hidden;
  aspect-ratio: 4/3;
}
.fleet-item-img img {
  width: 100%; height: 100%;
  object-fit: cover;
  display: block;
  transition: transform .4s;
}
.fleet-item-img:hover img { transform: scale(1.04); }
.fleet-item-caption {
  margin-top: 10px;
  font-family: 'Montserrat', sans-serif;
  font-size: .8rem; font-weight: 700;
  color: var(--accent);
  letter-spacing: .06em;
  text-transform: uppercase;
}

@media (max-width: 560px) {
  .fleet-images { grid-template-columns: 1fr; }
}

/* ── TESTIMONIALS (mesmo componente base) ── */
.escola-testi-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 18px;
  margin: 28px 0;
}
@media (max-width: 720px) {
  .escola-testi-grid { grid-template-columns: 1fr; }
}

/* ── ESCOLA SERVICES — cards com foto no topo (estilo instrutor) ── */
.escola-svc-grid {
  grid-template-columns: repeat(3, 1fr) !important;
  gap: 16px;
}
.service-link-card.escola-svc {
  padding: 0 !important;
  overflow: hidden;
  background: var(--surface);
  border: 1px solid rgba(59,169,172,.2);
  border-radius: var(--r);
  display: flex;
  flex-direction: column;
  text-decoration: none;
  transition: transform .3s, box-shadow .3s, border-color .3s;
  align-items: stretch !important;     /* override centrado da v. anterior */
}
.service-link-card.escola-svc:hover {
  transform: translateY(-4px);
  box-shadow: 0 12px 32px rgba(10,46,56,.3);
  border-color: var(--accent);
}
/* Área da foto — topo do card */
.service-link-card.escola-svc .service-img {
  width: 100%;
  height: 180px;
  overflow: hidden;
  flex-shrink: 0;
}
.service-link-card.escola-svc .service-img img {
  width: 100%; height: 100%;
  object-fit: cover;
  object-position: center;
  display: block;
  transition: transform .45s;
}
.service-link-card.escola-svc:hover .service-img img { transform: scale(1.06); }
/* Texto abaixo da foto */
.service-link-card.escola-svc .service-link-icon { display: none !important; }
.service-link-card.escola-svc .service-link-name {
  padding: 14px 16px 4px;
  font-size: 1rem;
  color: var(--white);
  text-align: left !important;
}
.service-link-card.escola-svc .service-link-desc {
  padding: 0 16px 10px;
  font-size: .8rem;
  color: rgba(255,255,255,.65);
  line-height: 1.5;
  flex: 1;
  text-align: left !important;
}
.service-link-card.escola-svc .service-link-cta {
  padding: 0 16px 16px;
  font-size: .72rem;
  color: var(--accent);
  font-weight: 800;
  text-align: left !important;
}
/* Cancel the CSS ::before background (replaced by real img) */
.service-link-card.escola-svc::before { display: none !important; }

/* Mobile: 2 colunas */
@media (max-width: 720px) {
  .escola-svc-grid { grid-template-columns: repeat(2, 1fr) !important; }
}
@media (max-width: 420px) {
  .escola-svc-grid { grid-template-columns: 1fr !important; }
}

/* ══════════════════════════════════════════════════════
   NAV PAGE TITLE — oculto no estado inicial (transparente)
   Aparece após scroll (nav.scrolled)
══════════════════════════════════════════════════════ */
.nav-page-title {
  font-family: 'Montserrat', sans-serif;
  font-size: .78rem;
  font-weight: 700;
  letter-spacing: .03em;
  color: #ffffff;
  white-space: nowrap;
  opacity: 0;
  transform: translateY(-6px);
  pointer-events: none;
  transition:
    opacity  .35s cubic-bezier(.4,0,.2,1),
    transform .35s cubic-bezier(.4,0,.2,1);
  flex-shrink: 0;
  margin-right: 16px;
}
nav.scrolled .nav-page-title {
  opacity: 1;
  transform: translateY(0);
  pointer-events: auto;
}
@media (min-width: 941px) {
  .nav-page-title { font-size: .8rem; }
}
@media (max-width: 940px) {
  .nav-page-title {
    flex: 1;
    text-align: right;
    margin-right: 14px;
    font-size: .74rem;
  }
}

/* ══════════════════════════════════════════════════════
   TESTIMONIAL CARDS (testi-card)
   Requer: .testi-grid wrapper (display:grid)
══════════════════════════════════════════════════════ */
.testi-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 20px;
  margin: 24px 0;
}
.testi-card {
  background: var(--surface);
  border-radius: var(--r);
  padding: 28px 24px 24px;
  position: relative;
  overflow: hidden;
  border: 1px solid rgba(59,169,172,.18);
  transition: transform .3s, box-shadow .3s;
}
.testi-card:hover {
  transform: translateY(-3px);
  box-shadow: 0 10px 28px rgba(10,46,56,.3);
  border-color: var(--secondary);
}
.testi-stars {
  color: var(--accent);
  font-size: 1rem;
  letter-spacing: 2px;
  margin-bottom: 12px;
}
.testi-text {
  font-size: .88rem;
  color: rgba(255,255,255,.78);
  line-height: 1.7;
  margin-bottom: 16px;
  font-style: italic;
  font-weight: 400;
  position: relative;
  z-index: 1;
}
.testi-author {
  font-family: 'Montserrat', sans-serif;
  font-size: .78rem;
  font-weight: 700;
  color: var(--accent);
  letter-spacing: .06em;
  text-transform: uppercase;
  position: relative;
  z-index: 1;
}
.testi-big-q {
  position: absolute;
  top: 8px;
  right: 16px;
  font-size: 5rem;
  line-height: 1;
  color: rgba(59,169,172,.12);
  font-family: Georgia, serif;
  pointer-events: none;
  user-select: none;
}
@media (max-width: 600px) {
  .testi-grid { grid-template-columns: 1fr; }
}

/* ══════════════════════════════════════════════════════
   BLOG — listagem de artigos
══════════════════════════════════════════════════════ */
.blog-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
  margin: 28px 0 48px;
}
.blog-card {
  background: var(--surface, #2A7A88);
  border-radius: 14px;
  overflow: hidden;
  border: 1px solid rgba(59,169,172,.2);
  display: flex;
  flex-direction: column;
  transition: transform .3s, box-shadow .3s;
}
.blog-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 12px 32px rgba(10,46,56,.35);
  border-color: var(--accent, #F4C724);
}
.blog-card-img { height: 200px; overflow: hidden; background: var(--primary, #125668); }
.blog-card-img img { width:100%; height:100%; object-fit:cover; transition: transform .4s; }
.blog-card:hover .blog-card-img img { transform: scale(1.04); }
.blog-card-img-placeholder {
  display: flex; align-items: center; justify-content: center;
  color: rgba(255,255,255,.5);
}
.blog-card-body {
  padding: 20px 20px 24px;
  display: flex; flex-direction: column; gap: 10px; flex: 1;
}
.blog-card-meta { display: flex; align-items: center; gap: 10px; }
.blog-tag {
  font-family: 'Montserrat', sans-serif;
  font-size: .65rem; font-weight: 800;
  letter-spacing: .08em; text-transform: uppercase;
  background: var(--accent, #F4C724); color: #0a2e38;
  padding: 3px 9px; border-radius: 20px;
}
.blog-read-time { font-size: .72rem; color: rgba(255,255,255,.5); }
.blog-card-title { margin: 0; }
.blog-card-title a {
  font-family: 'Montserrat', sans-serif;
  font-size: 1rem; font-weight: 700;
  color: #ffffff; text-decoration: none; line-height: 1.4;
}
.blog-card-title a:hover { color: var(--accent, #F4C724); }
.blog-card-excerpt {
  font-size: .84rem; color: rgba(255,255,255,.68);
  line-height: 1.65; margin: 0; flex: 1;
}
.blog-card-cta {
  font-family: 'Montserrat', sans-serif;
  font-size: .78rem; font-weight: 800;
  color: var(--accent, #F4C724); text-decoration: none;
  margin-top: auto;
}
.blog-card-cta:hover { text-decoration: underline; }
.blog-card-soon {
  font-family: 'Montserrat', sans-serif;
  font-size: .72rem; font-weight: 700;
  color: rgba(255,255,255,.35); letter-spacing: .06em; text-transform: uppercase;
}
.blog-card-img-link { display: block; }
.blog-card-coming { opacity: .7; }
@media (max-width: 800px) { .blog-grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 520px) { .blog-grid { grid-template-columns: 1fr; } }

/* ══════════════════════════════════════════════════════
   BLOG — página de artigo (layout editorial)
══════════════════════════════════════════════════════ */
/* ── ARTICLE LAYOUT ── */
.art-layout {
  display: grid;
  grid-template-columns: 1fr 260px;
  gap: 48px;
  align-items: start;
  margin-top: 40px;
}
.art-body { min-width: 0; }
/* Sticky TOC */
.art-sidebar {
  position: sticky;
  top: calc(var(--hdr-h, 156px) + 24px);
}
.art-toc {
  background: var(--surface, #2A7A88);
  border-radius: 12px;
  padding: 20px 20px 16px;
  border: 1px solid rgba(59,169,172,.2);
}
.art-toc-label {
  font-family: 'Montserrat', sans-serif;
  font-size: .68rem; font-weight: 800;
  letter-spacing: .1em; text-transform: uppercase;
  color: var(--accent, #F4C724); margin: 0 0 12px;
}
.art-toc ul {
  list-style: none; margin: 0; padding: 0;
  display: flex; flex-direction: column; gap: 8px;
}
.art-toc li a {
  font-size: .78rem; color: rgba(255,255,255,.7);
  text-decoration: none; font-weight: 500;
  line-height: 1.4; display: block;
  transition: color .2s;
}
.art-toc li a:hover { color: #fff; }
/* Article meta bar */
.art-meta {
  display: flex; align-items: center; gap: 16px; flex-wrap: wrap;
  margin-bottom: 28px;
  padding-bottom: 20px;
  border-bottom: 1px solid rgba(59,169,172,.2);
}
.art-tag {
  font-family: 'Montserrat', sans-serif;
  font-size: .65rem; font-weight: 800;
  letter-spacing: .08em; text-transform: uppercase;
  background: var(--accent, #F4C724); color: #0a2e38;
  padding: 3px 10px; border-radius: 20px;
}
.art-meta-item { font-size: .78rem; color: rgba(255,255,255,.55); }
/* Article typography */
.art-h1 {
  font-family: 'Montserrat', sans-serif;
  font-size: clamp(1.6rem, 3.5vw, 2.4rem);
  font-weight: 800; color: #ffffff;
  line-height: 1.25; margin: 0 0 20px;
  letter-spacing: -.02em;
}
.art-h2 {
  font-family: 'Montserrat', sans-serif;
  font-size: clamp(1.1rem, 2.4vw, 1.45rem);
  font-weight: 700; color: #125668;
  margin: 40px 0 14px; letter-spacing: -.01em;
  padding-top: 8px;
}
.art-p {
  font-size: .96rem; color: #125668;
  line-height: 1.82; margin: 0 0 16px;
  font-weight: 400; font-family: 'Nunito', sans-serif;
}
.art-figure { margin: 24px 0 32px; }
.art-img {
  width: 100%; border-radius: 12px;
  object-fit: cover; max-height: 420px;
  display: block;
}
.art-caption {
  font-size: .72rem; color: rgba(255,255,255,.45);
  text-align: center; margin-top: 8px;
  font-style: italic;
}
/* Breadcrumb */
.art-breadcrumb {
  font-size: .78rem; color: rgba(255,255,255,.55);
  margin-bottom: 20px;
  font-family: 'Montserrat', sans-serif;
}
.art-breadcrumb a { color: rgba(255,255,255,.55); text-decoration: none; }
.art-breadcrumb a:hover { color: var(--accent, #F4C724); }
.art-breadcrumb span { margin: 0 6px; }
/* FAQ */
.art-faq-h2 {
  font-family: 'Montserrat', sans-serif;
  font-size: clamp(1.1rem, 2.4vw, 1.45rem);
  font-weight: 700; color: #125668;
  margin: 48px 0 20px;
}
/* CTA box */
.art-cta-box {
  background: var(--primary, #125668);
  border-radius: 14px; padding: 28px 28px 24px;
  margin: 48px 0 32px;
  border: 1px solid rgba(244,199,36,.25);
  text-align: center;
}
.art-cta-box h3 {
  font-family: 'Montserrat', sans-serif;
  font-size: 1.1rem; font-weight: 800;
  color: #ffffff; margin: 0 0 8px;
}
.art-cta-box p {
  font-size: .88rem; color: rgba(255,255,255,.72);
  margin: 0 0 18px; font-family: 'Nunito', sans-serif;
}
.art-cta-btn {
  display: inline-flex; align-items: center; gap: 8px;
  background: var(--accent, #F4C724); color: #0a2e38;
  font-family: 'Montserrat', sans-serif;
  font-size: .84rem; font-weight: 800;
  padding: 12px 24px; border-radius: 50px;
  text-decoration: none; transition: opacity .2s;
}
.art-cta-btn:hover { opacity: .88; }
@media (max-width: 860px) {
  .art-layout { grid-template-columns: 1fr; }
  .art-sidebar { position: static; display: none; }
}