/* ==========================================================================
   REEF FACILITA — main.css
   Portado do app Base44 (Tailwind) para CSS puro.
   Paleta e fontes idênticas ao index.css original.
   ========================================================================== */

@import url('https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:ital,wght@0,300;0,400;0,500;0,600;0,700;0,800&family=Playfair+Display:ital,wght@0,400;0,500;0,600;0,700;1,400;1,500&display=swap');

:root {
  --font-heading: 'Plus Jakarta Sans', sans-serif;
  --font-body: 'Plus Jakarta Sans', sans-serif;
  --font-accent: 'Playfair Display', serif;

  /* Cores da marca (mesmos hex do tailwind.config original) */
  --reef-navy: #1A2B6B;
  --reef-teal: #1BA5C4;
  --reef-teal-light: #3DBDD8;
  --reef-coral: #E8503A;
  --reef-sand: #F5F0E8;

  --foreground: #1e293b;      /* slate-800 aprox (213 33% 17%) */
  --muted-foreground: #64748b; /* slate-500 */
  --border: #dbe0e8;
  --white: #ffffff;

  --radius: 0.75rem;
  --maxw: 80rem; /* max-w-7xl */
}

/* ---------- Reset leve ---------- */
*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }
body {
  margin: 0;
  font-family: var(--font-body);
  color: var(--foreground);
  background: var(--white);
  line-height: 1.5;
  -webkit-font-smoothing: antialiased;
}
img { max-width: 100%; height: auto; display: block; }
a { color: inherit; text-decoration: none; }
button { font-family: inherit; cursor: pointer; }
h1, h2, h3, h4, h5 { margin: 0; font-family: var(--font-heading); }
p { margin: 0; }
ul { margin: 0; padding: 0; list-style: none; }

.font-accent { font-family: var(--font-accent); }
.italic { font-style: italic; }

/* WP admin bar spacing */
body.admin-bar .site-header { top: 32px; }
@media (max-width: 782px){ body.admin-bar .site-header { top: 46px; } }

/* ---------- Container ---------- */
.container {
  max-width: var(--maxw);
  margin: 0 auto;
  padding: 0 1rem;
  width: 100%;
}
@media (min-width: 640px){ .container { padding: 0 1.5rem; } }
@media (min-width: 1024px){ .container { padding: 0 2rem; } }

.container-narrow { max-width: 48rem; margin: 0 auto; padding: 0 1rem; }
.container-mid { max-width: 64rem; margin: 0 auto; padding: 0 1rem; }

/* ---------- Botões ---------- */
.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  font-family: var(--font-heading);
  font-weight: 600;
  font-size: 0.875rem;
  line-height: 1;
  padding: 0.75rem 1.25rem;
  border-radius: var(--radius);
  border: 1px solid transparent;
  transition: background-color .2s, color .2s, border-color .2s, transform .2s, box-shadow .2s;
  text-align: center;
}
.btn svg { width: 1rem; height: 1rem; }
.btn-lg { padding: 1.1rem 2rem; font-size: 1rem; }
.btn-block { width: 100%; }

.btn-teal { background: var(--reef-teal); color: #fff; }
.btn-teal:hover { background: var(--reef-teal-light); }
.btn-coral { background: var(--reef-coral); color: #fff; }
.btn-coral:hover { background: rgba(232,80,58,.9); }
.btn-navy { background: var(--reef-navy); color: #fff; }
.btn-navy:hover { background: rgba(26,43,107,.9); }
.btn-white { background: #fff; color: var(--reef-teal); }
.btn-white:hover { background: var(--reef-sand); }
.btn-amber { background: #f59e0b; color: #fff; }
.btn-amber:hover { background: rgba(245,158,11,.9); }
.btn-outline-teal { border-color: var(--reef-teal); color: var(--reef-teal); background: transparent; }
.btn-outline-teal:hover { background: var(--reef-teal); color: #fff; }
.btn-outline-white { border-color: rgba(255,255,255,.2); color: #fff; background: transparent; }
.btn-outline-white:hover { background: rgba(255,255,255,.1); }
.btn-ghost-teal { background: transparent; color: var(--reef-teal); }
.btn-ghost-teal:hover { color: var(--reef-teal-light); }
.shadow-coral { box-shadow: 0 10px 25px -5px rgba(232,80,58,.3); }

/* ---------- Eyebrow / labels ---------- */
.eyebrow {
  display: inline-block;
  font-family: var(--font-heading);
  font-weight: 600;
  font-size: 0.75rem;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--reef-teal);
  margin-bottom: 0.75rem;
}
.eyebrow-coral { color: var(--reef-coral); }
.eyebrow-light { color: var(--reef-teal-light); }

/* ---------- Section headings ---------- */
.section { position: relative; }
.section-pad { padding: 5rem 0; }
@media (min-width: 1024px){ .section-pad { padding: 7rem 0; } }
.section-pad-sm { padding: 5rem 0; }
@media (min-width: 1024px){ .section-pad-sm { padding: 6rem 0; } }

.bg-sand { background: var(--reef-sand); }
.bg-white { background: #fff; }
.bg-navy { background: var(--reef-navy); }
.bg-teal { background: var(--reef-teal); }

.h-section {
  font-family: var(--font-heading);
  font-weight: 700;
  font-size: 1.875rem;
  color: var(--reef-navy);
  line-height: 1.15;
}
@media (min-width: 640px){ .h-section { font-size: 2.25rem; } }
.text-center { text-align: center; }
.text-teal { color: var(--reef-teal); }
.text-coral { color: var(--reef-coral); }
.text-navy { color: var(--reef-navy); }
.text-muted { color: var(--muted-foreground); }
.mb-14 { margin-bottom: 3.5rem; }

/* ==========================================================================
   HEADER
   ========================================================================== */
.site-header {
  position: fixed;
  top: 0; left: 0; right: 0;
  z-index: 50;
  background: rgba(26,43,107,.95);
  backdrop-filter: blur(12px);
}
.header-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  height: 4rem;
}
@media (min-width: 1024px){ .header-inner { height: 5rem; } }
.header-logo img { height: 2.5rem; width: auto; object-fit: contain; }

.nav-desktop { display: none; align-items: center; gap: 0.25rem; }
@media (min-width: 1024px){ .nav-desktop { display: flex; } }
.nav-link {
  padding: 0.5rem 0.75rem;
  font-size: 0.875rem;
  font-weight: 500;
  border-radius: 0.375rem;
  color: rgba(255,255,255,.8);
  transition: color .2s, background-color .2s;
}
.nav-link:hover { color: #fff; background: rgba(255,255,255,.05); }
.nav-link.current { color: var(--reef-teal-light); background: rgba(255,255,255,.1); }

.header-actions { display: flex; align-items: center; gap: 0.75rem; }
.header-cta { display: none; }
@media (min-width: 640px){ .header-cta { display: inline-flex; } }

.menu-toggle { display: inline-flex; color: #fff; padding: 0.5rem; background: none; border: none; }
@media (min-width: 1024px){ .menu-toggle { display: none; } }
.menu-toggle svg { width: 1.5rem; height: 1.5rem; }

.nav-mobile { display: none; background: var(--reef-navy); border-top: 1px solid rgba(255,255,255,.1); }
.nav-mobile.open { display: block; animation: fadeIn .3s ease-out; }
.nav-mobile nav { padding: 1rem; display: flex; flex-direction: column; gap: 0.25rem; }
.nav-mobile a.nav-link { display: block; padding: 0.75rem 1rem; border-radius: 0.5rem; }
.nav-mobile .btn { margin-top: 0.75rem; }

/* Spacer para o header fixo */
.header-spacer { height: 4rem; }
@media (min-width: 1024px){ .header-spacer { height: 5rem; } }

/* ==========================================================================
   FOOTER
   ========================================================================== */
.site-footer { background: var(--reef-navy); color: #fff; }
.footer-inner { padding: 4rem 0; }
.footer-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 3rem;
}
@media (min-width: 768px){ .footer-grid { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1024px){ .footer-grid { grid-template-columns: repeat(5, 1fr); } }
.footer-brand { }
@media (min-width: 1024px){ .footer-brand { grid-column: span 2; } }
.footer-brand img { height: 2.5rem; width: auto; object-fit: contain; margin-bottom: 1rem; }
.footer-brand p.desc { color: rgba(255,255,255,.6); font-size: 0.875rem; line-height: 1.6; margin-bottom: 1rem; max-width: 20rem; }
.footer-loc { color: rgba(255,255,255,.3); font-size: 0.75rem; margin-bottom: 1.5rem; }
.footer-social { display: flex; align-items: center; gap: 0.75rem; }
.footer-social a {
  width: 2.5rem; height: 2.5rem; border-radius: 9999px;
  background: rgba(255,255,255,.1);
  display: flex; align-items: center; justify-content: center;
  transition: background-color .2s;
}
.footer-social a:hover { background: var(--reef-teal); }
.footer-social svg { width: 1rem; height: 1rem; }

.footer-col h4 { font-weight: 600; font-size: 0.875rem; margin-bottom: 1rem; color: rgba(255,255,255,.9); }
.footer-col ul li { margin-bottom: 0.625rem; }
.footer-col ul a { color: rgba(255,255,255,.5); font-size: 0.875rem; transition: color .2s; }
.footer-col ul a:hover { color: var(--reef-teal-light); }

.footer-newsletter {
  margin-top: 3rem; padding-top: 2rem;
  border-top: 1px solid rgba(255,255,255,.1);
  display: flex; flex-direction: column; gap: 1.5rem;
  align-items: flex-start;
}

.grecaptcha-badge {
    visibility: hidden;
}


@media (min-width: 768px){ .footer-newsletter { flex-direction: row; align-items: center; justify-content: space-between; } }
.footer-newsletter h4 { font-weight: 600; font-size: 0.875rem; margin-bottom: 0.25rem; }
.footer-newsletter p { color: rgba(255,255,255,.5); font-size: 0.875rem; }
.footer-newsletter .nl-form { width: 100%; }
@media (min-width: 768px){ .footer-newsletter .nl-form { width: auto; } }


/* ==========================================================================
   Newsletter CF7 (footer)
   ========================================================================== */

/* O form é uma COLUNA: linha 1 = pílula (input + botão), linha 2 = mensagem */
.cf7-newsletter form,
.cf7-newsletter .wpcf7-form {
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.5rem;
  position: relative;
  max-width: 420px;
  width: 100%;
}

.cf7-newsletter .hidden-fields-container,
.cf7-newsletter .wpcf7-form fieldset {
  display: none;
}

.cf7-newsletter .wpcf7-form-control-wrap {
  flex: 1 1 auto;
  min-width: 0;
  position: relative;
}

/* Botão não encolhe */
.cf7-newsletter .wpcf7-form input.wpcf7-submit {
  flex: 0 0 auto;
}

/* Mensagem ocupa 100% → força quebra para a linha de baixo */
.cf7-newsletter .wpcf7-response-output {
  flex: 0 0 100%;
  width: 100%;
  order: 2;
}

/* Input */
.cf7-newsletter .wpcf7-form input[type="email"] {
  width: 100%;
  background-color: rgba(255,255,255,.1);
  border: 1px solid rgba(255,255,255,.2);
  border-radius: 0.6rem;
  outline: none;
  padding: 0.7rem 1rem;
  color: #fff;
  font-size: 0.95rem;
  font-family: var(--font-body);
}
.cf7-newsletter .wpcf7-form input[type="email"]:focus {
  border-color: var(--reef-teal);
}
.cf7-newsletter .wpcf7-form input[type="email"]::placeholder {
  color: rgba(255,255,255,.4);
}

/* Botão redondo com a seta */
.cf7-newsletter .wpcf7-form input.wpcf7-submit,
.cf7-newsletter .wpcf7-form .wpcf7-submit {
  width: 44px;
  height: 44px;
  min-width: 44px;
  flex-shrink: 0;
  padding: 0;
  border: none;
  border-radius: 0.6rem;
  background: var(--reef-teal);
  color: #fff;
  font-size: 1.1rem;
  font-weight: 600;
  line-height: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: background-color .2s;
}
.cf7-newsletter .wpcf7-form input.wpcf7-submit:hover {
  background: var(--reef-teal-light);
}

/* Spinner do CF7 não pode empurrar o layout */
.cf7-newsletter .wpcf7-spinner {
  display: none !important;
}

/* Mensagem de retorno (sucesso/erro) — sempre na linha de baixo, largura total */
.cf7-newsletter .wpcf7-response-output {
  order: 2;                 /* garante que fique depois da pílula */
  width: 100%;
  margin: 0.75rem 0 0 !important;
  padding: 0.5rem 0.85rem !important;
  border-width: 1px !important;
  border-radius: 0.5rem;
  font-size: 0.75rem;
  line-height: 1.4;
  background: rgba(255,255,255,.08);
  border-color: rgba(255,255,255,.2) !important;
  color: rgba(255,255,255,.85);
}
.cf7-newsletter form.sent .wpcf7-response-output {
  background: rgba(27,165,196,.15);
  border-color: var(--reef-teal) !important;
  color: #fff;
}
.cf7-newsletter form.invalid .wpcf7-response-output,
.cf7-newsletter form.failed .wpcf7-response-output,
.cf7-newsletter form.spam .wpcf7-response-output {
  background: rgba(239,68,68,.15);
  border-color: rgba(239,68,68,.6) !important;
  color: #fecaca;
}

/* Erro de validação do campo — abaixo da pílula, sem deslocar nada */
.cf7-newsletter .wpcf7-not-valid-tip {
 display: none;
}


.footer-copy {
  margin-top: 2rem; padding-top: 1.5rem;
  border-top: 1px solid rgba(255,255,255,.1);
  text-align: center;
}
.footer-copy p { color: rgba(255,255,255,.4); font-size: 0.75rem; }

/* WhatsApp float */
.wa-float {
  position: fixed; bottom: 1.5rem; right: 1.5rem; z-index: 40;
  width: 3.5rem; height: 3.5rem; border-radius: 9999px;
  background: #22c55e; color: #fff;
  display: flex; align-items: center; justify-content: center;
  box-shadow: 0 10px 15px -3px rgba(0,0,0,.2);
  transition: transform .2s, box-shadow .2s, background-color .2s;
}
.wa-float:hover { background: #16a34a; transform: scale(1.05); box-shadow: 0 20px 25px -5px rgba(0,0,0,.25); }
.wa-float svg { width: 1.5rem; height: 1.5rem; }

/* ---------- Animações ---------- */
@keyframes fadeIn { from { opacity: 0; } to { opacity: 1; } }
@keyframes fadeInUp { from { opacity: 0; transform: translateY(24px); } to { opacity: 1; transform: translateY(0); } }
@keyframes pulse { 0%, 100% { opacity: 1; } 50% { opacity: .4; } }
.animate-pulse-dot { animation: pulse 2s cubic-bezier(.4,0,.6,1) infinite; }

@media (prefers-reduced-motion: reduce) {
  * { animation-duration: .001ms !important; transition-duration: .001ms !important; scroll-behavior: auto !important; }
}

/* ---------- Utilidades genéricas usadas nas seções ---------- */
.grid { display: grid; }
.gap-6 { gap: 1.5rem; }
.gap-8 { gap: 2rem; }
.mx-auto { margin-left: auto; margin-right: auto; }
.mt-8 { margin-top: 2rem; }
.hidden-mobile { display: none; }
@media (min-width: 640px){ .hidden-mobile { display: inline-flex; } }
.show-mobile { }
@media (min-width: 640px){ .show-mobile { display: none; } }

/* ==========================================================================
   HERO (home)
   ========================================================================== */
.hero {
  position: relative;
  background: var(--reef-navy);
  min-height: 90vh;
  display: flex;
  align-items: center;
  overflow: hidden;
}
.hero-bg { position: absolute; inset: 0; }
.hero-bg img { width: 100%; height: 100%; object-fit: cover; opacity: .15; }
.hero-bg .overlay {
  position: absolute; inset: 0;
  background: linear-gradient(to right, var(--reef-navy), rgba(26,43,107,.95) 50%, rgba(26,43,107,.7));
}
.hero-waves { position: absolute; inset: 0; overflow: hidden; pointer-events: none; }
.hero-waves .wave { position: absolute; bottom: 0; left: 0; right: 0; width: 100%; opacity: .1; }
.hero-inner { position: relative; padding: 6rem 0; width: 100%; }
@media (min-width: 1024px){ .hero-inner { padding: 8rem 0; } }
.hero-grid {
  display: grid; grid-template-columns: 1fr; gap: 3rem; align-items: center;
}
@media (min-width: 1024px){ .hero-grid { grid-template-columns: repeat(2, 1fr); gap: 4rem; } }

.hero-badge {
  display: inline-flex; align-items: center; gap: 0.5rem;
  padding: 0.625rem 1.25rem; border-radius: 9999px;
  background: rgba(232,80,58,.2); border: 1px solid rgba(232,80,58,.5);
  margin-bottom: 2rem; box-shadow: 0 10px 15px -3px rgba(0,0,0,.2);
}
.hero-badge .dot { width: 0.625rem; height: 0.625rem; border-radius: 9999px; background: var(--reef-coral); }
.hero-badge span { color: #fff; font-family: var(--font-heading); font-weight: 700; font-size: 0.875rem; letter-spacing: .025em; text-transform: uppercase; }

.hero h1 {
  font-weight: 800; font-size: 3rem; color: #fff; line-height: 1.1; margin-bottom: 1.5rem;
}
@media (min-width: 640px){ .hero h1 { font-size: 3.75rem; } }
.hero h1 .accent { color: var(--reef-teal-light); }
.hero p.lead {
    color: rgba(255,255,255,.7);
    font-size: 1.125rem;
    line-height: 1.5;
    margin-bottom: 2.5rem;
    max-width: 36rem;
}
@media (min-width: 640px){ .hero p.lead { font-size: 1.25rem; } }
.hero-cta-row { display: flex; flex-direction: column; gap: 1rem; }
@media (min-width: 640px){ .hero-cta-row { flex-direction: row; } }

.hero-collage { display: none; }
@media (min-width: 1024px){
  .hero-collage { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1rem; height: 520px; }
}
.hero-collage .col { display: flex; flex-direction: column; gap: 1rem; }
.hero-collage .col.offset { padding-top: 2rem; }
.hero-collage .tile { border-radius: 1rem; overflow: hidden; }
.hero-collage .tile.flex1 { flex: 1; }
.hero-collage .tile.h40 { height: 10rem; }
.hero-collage .tile img { width: 100%; height: 100%; object-fit: cover; }

/* ==========================================================================
   PAGE HERO (páginas internas)
   ========================================================================== */
.page-hero {
  background: var(--reef-navy); position: relative; overflow: hidden;
  min-height: 420px; display: flex; align-items: center;
}
.page-hero .ph-bg { position: absolute; inset: 0; }
.page-hero .ph-bg img { width: 100%; height: 100%; object-fit: cover; opacity: .2; }
.page-hero .ph-bg .overlay {
  position: absolute; inset: 0;
  background: linear-gradient(to right, var(--reef-navy), rgba(26,43,107,.9) 50%, rgba(26,43,107,.6));
}
.page-hero .ph-inner { position: relative; padding: 6rem 0; width: 100%; }
@media (min-width: 1024px){ .page-hero .ph-inner { padding: 8rem 0; } }
.page-hero .ph-grid { display: grid; grid-template-columns: 1fr; gap: 3rem; align-items: center; }
@media (min-width: 1024px){ .page-hero .ph-grid { grid-template-columns: repeat(2, 1fr); } }
.page-hero h1 {
  font-weight: 800; font-size: 2.25rem; color: #fff; line-height: 1.15; margin-bottom: 1.5rem;
}
@media (min-width: 640px){ .page-hero h1 { font-size: 3rem; } }
@media (min-width: 1024px){ .page-hero h1 { font-size: 3.75rem; } }
.page-hero h1 .accent { color: var(--reef-teal-light); }
.page-hero p.sub { color: rgba(255,255,255,.7); font-size: 1.125rem; line-height: 1.6; max-width: 36rem; }
.page-hero .ph-image { display: none; }
@media (min-width: 1024px){ .page-hero .ph-image { display: block; } }
.page-hero .ph-image .frame { border-radius: 1rem; overflow: hidden; box-shadow: 0 25px 50px -12px rgba(0,0,0,.4); border: 1px solid rgba(255,255,255,.1); height: 18rem; }
.page-hero .ph-image .frame img { width: 100%; height: 100%; object-fit: cover; }

/* ==========================================================================
   CARDS GENÉRICOS
   ========================================================================== */
.card-grid-3 { display: grid; grid-template-columns: 1fr; gap: 1.5rem; }
@media (min-width: 768px){ .card-grid-3 { grid-template-columns: repeat(3, 1fr); gap: 2rem; } }
.card-grid-2 { display: grid; grid-template-columns: 1fr; gap: 1.5rem; }
@media (min-width: 640px){ .card-grid-2 { grid-template-columns: repeat(2, 1fr); gap: 2rem; } }

.icon-box {
  width: 3rem; height: 3rem; border-radius: 0.75rem;
  background: rgba(27,165,196,.1); color: var(--reef-teal);
  display: flex; align-items: center; justify-content: center;
  margin-bottom: 1.25rem; transition: background-color .2s;
}
.icon-box svg { width: 1.5rem; height: 1.5rem; }

/* Ecosystem */
.eco-card {
  background: #fff; border-radius: 1rem; padding: 2rem;
  box-shadow: 0 1px 3px rgba(0,0,0,.06); border: 1px solid rgba(26,43,107,.05);
  transition: box-shadow .2s;
}
.eco-card:hover { box-shadow: 0 4px 12px rgba(0,0,0,.08); }
.eco-card:hover .icon-box { background: rgba(27,165,196,.2); }
.eco-card h3 { font-weight: 700; font-size: 1.25rem; color: var(--reef-navy); margin-bottom: 0.75rem; }
.eco-card p { color: var(--muted-foreground); font-size: 0.875rem; line-height: 1.6; }

.eco-quote {
  position: relative; background: var(--reef-navy); border-radius: 1rem;
  padding: 3rem 2.5rem; max-width: 48rem; margin: 0 auto; text-align: center;
  box-shadow: 0 20px 25px -5px rgba(0,0,0,.2); overflow: hidden;
}
@media (min-width: 640px){ .eco-quote { padding: 3.5rem 4rem; } }
.eco-quote .qmark { position: absolute; color: rgba(27,165,196,.3); font-family: var(--font-accent); font-size: 6rem; line-height: 1; user-select: none; }
.eco-quote .qmark.tl { top: 1rem; left: 2rem; }
.eco-quote .qmark.br { bottom: 0; right: 2rem; }
.eco-quote p {
    position: relative;
    font-family: var(--font-accent);
    font-size: 1.25rem;
    font-weight: 500;
    font-style: italic;
    color: rgba(255,255,255,.95);
    line-height: 1.2;
}
@media (min-width: 640px){ .eco-quote p { font-size: 1.5rem; } }
@media (min-width: 1024px){ .eco-quote p { font-size: 1.875rem; } }
.eco-quote .rule { margin: 1.5rem auto 0; width: 3rem; height: 2px; background: var(--reef-teal); }

/* Why facilitation — stats */
.stats-grid {
  display: grid; grid-template-columns: 1fr; gap: 1px;
  background: var(--border); border-radius: 1rem; overflow: hidden;
  box-shadow: 0 1px 3px rgba(0,0,0,.05); margin-bottom: 5rem;
}
@media (min-width: 640px){ .stats-grid { grid-template-columns: repeat(3, 1fr); } }
.stat-cell { background: #fff; padding: 2rem; }
@media (min-width: 1024px){ .stat-cell { padding: 2.5rem; } }
.stat-cell .num { font-weight: 800; font-size: 3rem; color: var(--reef-navy); margin-bottom: 0.75rem; font-variant-numeric: tabular-nums; }
@media (min-width: 1024px){ .stat-cell .num { font-size: 3.75rem; } }
.stat-cell .lbl { color: #475569; font-size: 0.875rem; line-height: 1.6; margin-bottom: 0.75rem; }
.stat-cell .src { font-size: 0.75rem; color: #94a3b8; font-weight: 600; }

.section-lead { color: var(--muted-foreground); font-size: 1.125rem; line-height: 1.6; }
.max-3xl { max-width: 48rem; }
.mb-16 { margin-bottom: 4rem; }
.mb-5 { margin-bottom: 1.25rem; }

/* Quando usar — cards com imagem */
.quando-grid { display: grid; grid-template-columns: 1fr; gap: 1.25rem; }
@media (min-width: 640px){ .quando-grid { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1024px){ .quando-grid { grid-template-columns: repeat(3, 1fr); } }
.quando-card {
  border: 1px solid var(--border); border-radius: 1rem; overflow: hidden;
  transition: box-shadow .2s;
}
.quando-card:hover { box-shadow: 0 10px 15px -3px rgba(0,0,0,.1); }
.quando-card .img { height: 11rem; overflow: hidden; }
.quando-card .img img { width: 100%; height: 100%; object-fit: cover; transition: transform .3s; }
.quando-card:hover .img img { transform: scale(1.05); }
.quando-card .body { padding: 1.5rem; }
.quando-card h4 { font-weight: 700; color: var(--reef-navy); font-size: 1rem; margin-bottom: 0.5rem; line-height: 1.3; }
.quando-card p { color: var(--muted-foreground); font-size: 0.875rem; line-height: 1.6; }

/* CTA strip */
.cta-strip {
  background: var(--reef-navy); border-radius: 1rem; padding: 2rem;
  display: flex; flex-direction: column; align-items: center; justify-content: space-between; gap: 1.5rem;
}
@media (min-width: 640px){ .cta-strip { flex-direction: row; padding: 2.5rem; } }
.cta-strip .t { font-weight: 700; color: #fff; font-size: 1.25rem; margin-bottom: 0.25rem; }
.cta-strip .s { color: rgba(255,255,255,.6); font-size: 0.875rem; }

/* Audience */
.aud-grid { display: grid; grid-template-columns: 1fr; gap: 1.5rem; max-width: 56rem; margin: 0 auto; }
@media (min-width: 640px){ .aud-grid { grid-template-columns: repeat(2, 1fr); gap: 2rem; } }
.aud-card {
  position: relative; background: #fff; border-radius: 1rem; padding: 1.75rem;
  border: 1px solid var(--border); transition: box-shadow .2s, border-color .2s;
}
.aud-card:hover { box-shadow: 0 10px 15px -3px rgba(0,0,0,.1); }
.aud-card .bar { position: absolute; top: 0; left: 2rem; width: 3rem; height: 4px; border-radius: 0 0 9999px 9999px; }
.aud-card .ic { width: 2.5rem; height: 2.5rem; border-radius: 0.5rem; display: flex; align-items: center; justify-content: center; margin-bottom: 1rem; }
.aud-card .ic svg { width: 1.25rem; height: 1.25rem; }
.aud-card h3 { font-weight: 700; font-size: 1.125rem; color: var(--reef-navy); margin-bottom: 0.5rem; }
.aud-card p { color: var(--muted-foreground); font-size: 0.875rem; line-height: 1.6; margin-bottom: 1rem; }
.aud-card .lnk { margin-top: 0.5rem; display: inline-flex; align-items: center; gap: 0.5rem; padding: 0.5rem 1rem; border-radius: 0.75rem; font-family: var(--font-heading); font-weight: 600; font-size: 0.875rem; color: #fff; box-shadow: 0 1px 2px rgba(0,0,0,.05); }
.bar-coral { background: var(--reef-coral); } .ic-coral { background: rgba(232,80,58,.1); color: var(--reef-coral); } .lnk-coral { background: var(--reef-coral); }
.bar-teal { background: var(--reef-teal); } .ic-teal { background: rgba(27,165,196,.1); color: var(--reef-teal); } .lnk-teal { background: var(--reef-teal); }
.bar-navy { background: var(--reef-navy); } .ic-navy { background: rgba(26,43,107,.1); color: var(--reef-navy); } .lnk-navy { background: var(--reef-navy); }
.bar-amber { background: #f59e0b; } .ic-amber { background: #fef3c7; color: #d97706; } .lnk-amber { background: #f59e0b; }

.aud-card.card-coral:hover{
  border-color: var(--reef-coral);
}
.aud-card.card-teal:hover{
  border-color: var(--reef-teal);
}
.aud-card.card-navy:hover{
  border-color: var(--reef-navy);
}
.aud-card.card-amber:hover{
  border-color: #f59e0b;
}



/* ==========================================================================
   METODOLOGIA RECIFE
   ========================================================================== */
.method { background: var(--reef-navy); position: relative; overflow: hidden; }
.method-decor { position: absolute; inset: 0; pointer-events: none; overflow: hidden; }
.method-decor .wave { position: absolute; left: 0; right: 0; width: 100%; opacity: .1; }
.method-decor .ring { position: absolute; top: 50%; left: 50%; transform: translate(-50%,-50%); border-radius: 9999px; border: 1px solid rgba(27,165,196,.05); }
.method-decor .ring.r1 { width: 600px; height: 600px; }
.method-decor .ring.r2 { width: 900px; height: 900px; }
.method-head { text-align: center; margin-bottom: 3.5rem; }
.method-head h2 { font-weight: 700; font-size: 1.875rem; color: #fff; margin-bottom: 1rem; }
@media (min-width: 640px){ .method-head h2 { font-size: 2.25rem; } }
.method-grid { display: grid; grid-template-columns: 1fr; gap: 1.25rem; margin-bottom: 3.5rem; }
@media (min-width: 640px){ .method-grid { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1024px){ .method-grid { grid-template-columns: repeat(3, 1fr); } }
.method-card {
  position: relative; background: rgba(255,255,255,.1); border: 1px solid rgba(255,255,255,.2);
  border-radius: 1rem; padding: 1.5rem; transition: background-color .2s, transform .2s;
}
.method-card:hover { background: rgba(255,255,255,.15); transform: translateY(-4px); }
.method-card .row { display: flex; align-items: flex-start; gap: 1rem; }
.method-card .mic { width: 3rem; height: 3rem; border-radius: 0.75rem; display: flex; align-items: center; justify-content: center; flex-shrink: 0; color: #fff; }
.method-card .mic svg { width: 1.25rem; height: 1.25rem; }
.method-card .num { color: rgba(255,255,255,.4); font-size: 0.75rem; font-weight: 700; letter-spacing: .1em; }
.method-card h3 { font-weight: 700; font-size: 1rem; color: #fff; margin: 0.125rem 0 0.5rem; }
.method-card p { color: rgba(255,255,255,.7); font-size: 0.75rem; line-height: 1.6; }
.mic-teal { background: var(--reef-teal); } .mic-coral { background: var(--reef-coral); } .mic-amber { background: #fbbf24; }
.method-note { color: rgba(255,255,255,.6); text-align: center; font-size: 0.875rem; line-height: 1.6; max-width: 42rem; margin: 0 auto 2.5rem; }
@media (min-width: 1024px){ .method-note { font-size: 1rem; } }

/* ==========================================================================
   EVENTOS / MATERIAIS (previews e páginas)
   ========================================================================== */
.sec-head-row { display: flex; align-items: flex-end; justify-content: space-between; margin-bottom: 3rem; }
.event-grid { display: grid; grid-template-columns: 1fr; gap: 1.5rem; }
@media (min-width: 768px){ .event-grid { grid-template-columns: repeat(3, 1fr); } }
.event-card {
  background: #fff; border-radius: 1rem; overflow: hidden;
  box-shadow: 0 1px 3px rgba(0,0,0,.06); border: 1px solid rgba(26,43,107,.05);
  transition: box-shadow .2s; display: flex; flex-direction: column;
}
.event-card:hover { box-shadow: 0 4px 12px rgba(0,0,0,.1); }
.event-card .topbar { height: 0.5rem; background: var(--reef-teal); }
.event-card .body { padding: 1.5rem; flex: 1; display: flex; flex-direction: column; }
.event-card .tags { display: flex; align-items: center; gap: 0.5rem; margin-bottom: 1rem; }
.event-card h3 { font-weight: 700; font-size: 1.125rem; color: var(--reef-navy); margin-bottom: 0.75rem; line-height: 1.25; }
.event-card .meta { display: flex; flex-direction: column; gap: 0.5rem; margin-bottom: 1.25rem; }
.event-card .meta div { display: flex; align-items: center; gap: 0.5rem; color: var(--muted-foreground); font-size: 0.875rem; }
.event-card .meta svg { width: 1rem; height: 1rem; color: var(--reef-teal); }
.event-card p.desc { color: var(--muted-foreground); font-size: 0.875rem; line-height: 1.5; margin-bottom: 1.25rem; }
.event-card .btn { margin-top: auto; }

.pill { font-size: 0.75rem; font-family: var(--font-heading); font-weight: 600; padding: 0.25rem 0.625rem; border-radius: 9999px; }
.pill-teal { background: var(--reef-teal); color: #fff; }
.pill-navy { background: var(--reef-navy); color: #fff; }
.pill-green { background: #16a34a; color: #fff; }
.pill-coral { background: var(--reef-coral); color: #fff; }
.pill-price { color: var(--muted-foreground); font-size: 0.75rem; font-weight: 500; }

/* Filtros */
.filter-row { display: flex; flex-wrap: wrap; gap: 0.5rem; margin-bottom: 2.5rem; }
.filter-btn {
  padding: 0.5rem 1rem; border-radius: 9999px; font-size: 0.875rem;
  font-family: var(--font-heading); font-weight: 600;
  background: #fff; color: var(--reef-navy); border: 1px solid var(--border);
  transition: background-color .2s, color .2s;
}
.filter-btn:hover { background: rgba(26,43,107,.05); }
.filter-btn.active { background: var(--reef-navy); color: #fff; border-color: var(--reef-navy); }

/* Materiais */
.mat-grid { display: grid; grid-template-columns: 1fr; gap: 1.5rem; max-width: 56rem; margin: 0 auto; }
@media (min-width: 768px){ .mat-grid { grid-template-columns: repeat(3, 1fr); } }
.mat-card {
  background: rgba(245,240,232,.5); border-radius: 1rem; padding: 1.75rem;
  border: 1px solid var(--border); transition: border-color .2s, box-shadow .2s;
  display: flex; flex-direction: column;
}
#mat-list .mat-card {
    background: #fff;
    flex-direction: row;
    gap: 1.2rem;
}
#mat-list .mat-card .mat-content{
  flex: 1;
}
.mat-card:hover { border-color: rgba(27,165,196,.3); box-shadow: 0 4px 12px rgba(0,0,0,.08); }
.mat-card h3 { font-weight: 700; font-size: 1rem; color: var(--reef-navy); margin-bottom: 0.5rem; }
.mat-card p { color: var(--muted-foreground); font-size: 0.875rem; line-height: 1.6; margin-bottom: 1.25rem; flex: 1; }

/* ==========================================================================
   BLOG
   ========================================================================== */
.blog-grid { display: grid; grid-template-columns: 1fr; gap: 1.5rem; }
@media (min-width: 768px){ .blog-grid { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1024px){ .blog-grid { grid-template-columns: repeat(3, 1fr); } }

.post-card {
  background: #fff; border-radius: 1rem; overflow: hidden; border: 1px solid var(--border);
  transition: box-shadow .2s; display: flex; flex-direction: column;
}
.post-card:hover { box-shadow: 0 10px 15px -3px rgba(0,0,0,.1); }

.post-card .img { height: 12rem; overflow: hidden; }
.post-card .img img { width: 100%; height: 100%; object-fit: cover; transition: transform .3s; }
.post-card:hover .img img { transform: scale(1.05); }

.post-card .body { padding: 1.5rem; flex: 1; display: flex; flex-direction: column; }

.post-card .meta { display: flex; align-items: center; gap: 0.5rem; margin-bottom: 0.75rem; }
.post-card .cat { align-self: auto; font-size: 0.75rem; font-weight: 600; padding: 0.25rem 0.625rem; border-radius: 9999px; margin-bottom: 0; }
.post-card .post-date { font-size: 0.75rem; color: #94a3b8; }

.post-card h3 { font-weight: 700; font-size: 1.05rem; color: var(--reef-navy); margin-bottom: 0.5rem; line-height: 1.3; transition: color .2s; }
.post-card:hover h3 { color: var(--reef-teal); }

.post-card p { color: var(--muted-foreground); font-size: 0.875rem; line-height: 1.6; margin-bottom: 1rem; flex: 1; }

.post-card .foot { display: flex; align-items: center; justify-content: space-between; color: #94a3b8; font-size: 0.75rem; }
.post-card .foot svg { width: 0.875rem; height: 0.875rem; }

.post-card .read-time { display: flex; align-items: center; gap: 0.375rem; }

.post-card .read-more {
  display: inline-flex; align-items: center; gap: 0.25rem;
  font-weight: 600; font-size: 0.875rem; color: var(--reef-teal);
  transition: transform .2s;
}
.post-card:hover .read-more { transform: translateX(4px); }

.cat-teal { background: rgba(27,165,196,.1); color: var(--reef-teal); }
.cat-navy { background: rgba(26,43,107,.1); color: var(--reef-navy); }
.cat-coral { background: rgba(232,80,58,.1); color: var(--reef-coral); }
.cat-amber { background: #fef3c7; color: #b45309; }
.cat-green { background: #dcfce7; color: #15803d; }

/* Single post */
.single-hero { background: var(--reef-navy); padding: 8rem 0 4rem; }
.single-hero .cat { display: inline-block; font-size: 0.75rem; font-weight: 600; padding: 0.25rem 0.75rem; border-radius: 9999px; background: rgba(27,165,196,.2); color: var(--reef-teal-light); margin-bottom: 1.5rem; }
.single-hero h1 { font-weight: 800; font-size: 2rem; color: #fff; line-height: 1.2; margin-bottom: 1.5rem; max-width: 48rem; }
@media (min-width: 768px){ .single-hero h1 { font-size: 2.75rem; } }
.single-hero .meta { display: flex; flex-wrap: wrap; gap: 1.5rem; color: rgba(255,255,255,.6); font-size: 0.875rem; }
.single-hero .meta div { display: flex; align-items: center; gap: 0.5rem; }
.single-hero .meta svg { width: 1rem; height: 1rem; }
.single-feat { max-width: 56rem; margin: -3rem auto 0; padding: 0 1rem; position: relative; z-index: 1; }
.single-feat img { width: 100%; border-radius: 1rem; box-shadow: 0 20px 25px -5px rgba(0,0,0,.2); }

.post-content { max-width: 44rem; margin: 3rem auto; padding: 0 1rem; }
.post-content h2 { font-weight: 700; font-size: 1.5rem; color: var(--reef-navy); margin: 2.5rem 0 1rem; }
.post-content h3 { font-weight: 700; font-size: 1.25rem; color: var(--reef-navy); margin: 2rem 0 0.75rem; }
.post-content p { color: #334155; line-height: 1.8; margin-bottom: 1.25rem; }
.post-content ul, .post-content ol { margin: 0 0 1.25rem 1.25rem; color: #334155; line-height: 1.8; }
.post-content ul { list-style: disc; } .post-content ol { list-style: decimal; }
.post-content li { margin-bottom: 0.5rem; }
.post-content blockquote {
  border-left: 4px solid var(--reef-teal); padding: 0.5rem 0 0.5rem 1.5rem;
  margin: 2rem 0; font-family: var(--font-accent); font-style: italic;
  font-size: 1.25rem; color: var(--reef-navy);
}
.post-content strong { color: var(--reef-navy); }
.post-content img { border-radius: 0.75rem; margin: 1.5rem 0; }
.post-content a { color: var(--reef-teal); text-decoration: underline; }

/* ==========================================================================
   FORMULÁRIOS (Contact Form 7)
   ========================================================================== */
.form-panel { background: #fff; border-radius: 1rem; padding: 2rem; border: 1px solid var(--border); box-shadow: 0 1px 3px rgba(0,0,0,.05); }
@media (min-width: 1024px){ .form-panel { padding: 2.5rem; } }
.form-panel.sand { background: var(--reef-sand); }
.form-panel h3 { font-weight: 700; font-size: 1.125rem; color: var(--reef-navy); margin-bottom: 0.25rem; }
.form-panel .form-sub { color: var(--muted-foreground); font-size: 0.875rem; margin-bottom: 1.5rem; }

/* Estilização dos campos CF7 */
.wpcf7-form p { margin: 0 0 1rem; }
.reef-form label, .wpcf7-form label { display: block; font-family: var(--font-heading); font-size: 0.875rem; font-weight: 500; color: var(--foreground); margin-bottom: 0.375rem; }
.wpcf7-form input[type="text"],
.wpcf7-form input[type="email"],
.wpcf7-form input[type="tel"],
.wpcf7-form input[type="url"],
.wpcf7-form select,
.wpcf7-form textarea {
  width: 100%; padding: 0.625rem 0.875rem;
  border: 1px solid var(--border); border-radius: 0.75rem;
  font-family: var(--font-body); font-size: 0.9rem; color: var(--foreground);
  background: #fff; transition: border-color .2s, box-shadow .2s;
}
.wpcf7-form input:focus, .wpcf7-form select:focus, .wpcf7-form textarea:focus {
  outline: none; border-color: var(--reef-teal); box-shadow: 0 0 0 3px rgba(27,165,196,.15);
}
.wpcf7-form textarea { min-height: 6rem; resize: vertical; }
.wpcf7-form .row-2 { display: grid; grid-template-columns: 1fr; gap: 1rem; }
@media (min-width: 640px){ .wpcf7-form .row-2 { grid-template-columns: repeat(2, 1fr); } }
.wpcf7-form .field { margin-bottom: 1rem; }
.wpcf7-form input.wpcf7-submit,
.wpcf7-form .wpcf7-submit {
  width: 100%; background: var(--reef-coral); color: #fff; border: none;
  font-family: var(--font-heading); font-weight: 600; font-size: 1rem;
  padding: 1rem; border-radius: 0.75rem; cursor: pointer; transition: background-color .2s;
}
.wpcf7-form .wpcf7-submit:hover { background: rgba(232,80,58,.9); }
.wpcf7-form.teal-submit .wpcf7-submit { background: var(--reef-teal); }
.wpcf7-form.teal-submit .wpcf7-submit:hover { background: var(--reef-teal-light); }
.wpcf7-not-valid-tip { color: #dc2626; font-size: 0.8rem; margin-top: 0.25rem; }
.wpcf7-response-output { border-radius: 0.5rem; padding: 0.75rem 1rem !important; margin: 1rem 0 0 !important; font-size: 0.875rem; }
.wpcf7 form.sent .wpcf7-response-output { border-color: var(--reef-teal); background: rgba(27,165,196,.08); color: var(--reef-navy); }

.site-footer .wpcf7 form.sent .wpcf7-response-output { color: white; }


.form-panel.sand .wpcf7-form input[type="text"],
.form-panel.sand .wpcf7-form input[type="email"],
.form-panel.sand .wpcf7-form input[type="tel"],
.form-panel.sand .wpcf7-form input[type="url"],
.form-panel.sand .wpcf7-form select,
.form-panel.sand .wpcf7-form textarea {
  background: var(--reef-sand); border-color: var(--reef-sand); color: var(--reef-navy);
  border: 1px solid var(--border);
}







/* Contato info */
.contact-grid { display: grid; grid-template-columns: 1fr; gap: 4rem; align-items: flex-start; }
@media (min-width: 1024px){ .contact-grid { grid-template-columns: repeat(2, 1fr); } }
.contact-item { display: flex; align-items: center; gap: 1rem; margin-bottom: 1.25rem; }
.contact-item .ic { width: 3rem; height: 3rem; border-radius: 0.75rem; background: var(--reef-sand); display: flex; align-items: center; justify-content: center; flex-shrink: 0; transition: background-color .2s; }
.contact-item:hover .ic { background: var(--reef-teal); }
.contact-item .ic svg { width: 1.25rem; height: 1.25rem; color: var(--reef-teal); transition: color .2s; }
.contact-item:hover .ic svg { color: #fff; }
.contact-item .lbl { font-size: 0.75rem; font-weight: 600; text-transform: uppercase; letter-spacing: .1em; color: #94a3b8; margin-bottom: 0.125rem; }
.contact-item .val { font-family: var(--font-heading); font-weight: 600; color: var(--reef-navy); font-size: 0.875rem; }

/* Success box */
.form-success { text-align: center; padding: 2.5rem 0; }
.form-success .circle { width: 4rem; height: 4rem; margin: 0 auto 1rem; border-radius: 9999px; background: rgba(27,165,196,.1); display: flex; align-items: center; justify-content: center; }
.form-success .circle svg { width: 1.75rem; height: 1.75rem; color: var(--reef-teal); }
.form-success h3 { font-weight: 700; font-size: 1.25rem; color: var(--reef-navy); margin-bottom: 0.5rem; }
.form-success p { color: #64748b; font-size: 0.875rem; }

/* Chips */
.chip-row {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 0.95rem;
}
.chip { padding: 0.5rem 1rem; border-radius: 9999px; background: rgba(27,165,196,.1); color: var(--reef-teal); font-size: 0.875rem; font-family: var(--font-heading); font-weight: 500; }

/* Empty state */
.empty-state { text-align: center; padding: 5rem 0; }
.empty-state p { color: var(--muted-foreground); font-size: 1.125rem; }
.empty-state p.sm { font-size: 0.875rem; margin-top: 0.5rem; }

/* Genéricos de espaçamento usados em várias páginas */
.mb-6 { margin-bottom: 1.5rem; } .mb-8 { margin-bottom: 2rem; } .mb-10 { margin-bottom: 2.5rem; }
.mb-12 { margin-bottom: 3rem; } .mb-4 { margin-bottom: 1rem; } .mb-3 { margin-bottom: 0.75rem; } .mb-2 { margin-bottom: 0.5rem; }
.mt-2 { margin-top: 0.5rem; } .mt-4 { margin-top: 1rem; }

/* ==========================================================================
   EMPRESAS — serviços, sessões, passos
   ========================================================================== */
.svc-card {
  background: #fff; border-radius: 1rem; padding: 1.75rem;
  border: 1px solid var(--border); transition: border-color .2s, box-shadow .2s;
  display: flex; flex-direction: column;
}
.svc-card:hover { border-color: rgba(26,43,107,.3); box-shadow: 0 4px 12px rgba(0,0,0,.08); }
.svc-tag { align-self: flex-start; margin-bottom: 1rem; font-size: 0.75rem; font-family: var(--font-heading); font-weight: 700; padding: 0.25rem 0.75rem; border-radius: 9999px; background: var(--reef-navy); color: #fff; }
.svc-head { display: flex; align-items: flex-start; gap: 1rem; margin-bottom: 1rem; }
.svc-ic { width: 3rem; height: 3rem; border-radius: 0.75rem; background: rgba(26,43,107,.1); color: var(--reef-navy); display: flex; align-items: center; justify-content: center; flex-shrink: 0; transition: background-color .2s; }
.svc-card:hover .svc-ic { background: rgba(26,43,107,.2); }
.svc-ic svg { width: 1.5rem; height: 1.5rem; }
.svc-head h3 { font-weight: 700; font-size: 1.125rem; color: var(--reef-navy); margin-bottom: 0.25rem; }
.svc-head p { color: var(--muted-foreground); font-size: 0.875rem; line-height: 1.6; }
.svc-list { margin-bottom: 1.25rem; flex: 1; }
.svc-list li { display: flex; align-items: center; gap: 0.5rem; font-size: 0.875rem; color: rgba(30,41,59,.8); margin-bottom: 0.5rem; }
.svc-list svg { width: 0.875rem; height: 0.875rem; color: var(--reef-teal); flex-shrink: 0; }
.svc-price { color: var(--reef-navy); font-family: var(--font-heading); font-weight: 700; font-size: 0.875rem; border-top: 1px solid var(--border); padding-top: 1rem; display: block; }

.sessions-grid { display: grid; grid-template-columns: 1fr; gap: 3rem; align-items: center; }
@media (min-width: 1024px){ .sessions-grid { grid-template-columns: repeat(2, 1fr); gap: 5rem; } }
.sessions-list { display: grid; grid-template-columns: 1fr; gap: 0.75rem; }
@media (min-width: 640px){ .sessions-list { grid-template-columns: repeat(2, 1fr); } }
.session-item { display: flex; align-items: center; gap: 0.75rem; padding: 0.75rem; border-radius: 0.75rem; border: 1px solid var(--border); transition: border-color .2s, background-color .2s; }
.session-item:hover { border-color: rgba(27,165,196,.4); background: rgba(27,165,196,.05); }
.session-ic { width: 2rem; height: 2rem; border-radius: 0.5rem; background: rgba(27,165,196,.1); color: var(--reef-teal); display: flex; align-items: center; justify-content: center; flex-shrink: 0; transition: background-color .2s; }
.session-ic svg { width: 1rem; height: 1rem; }
.session-item span { font-size: 0.875rem; font-family: var(--font-heading); font-weight: 500; color: var(--reef-navy); }
.sessions-photo { position: relative; }
.sessions-photo .frame { border-radius: 1rem; overflow: hidden; box-shadow: 0 20px 25px -5px rgba(0,0,0,.2); }
.sessions-photo .frame img { width: 100%; height: 500px; object-fit: cover; }
.sessions-badge { position: absolute; bottom: -1.25rem; left: -1.25rem; background: #fff; border-radius: 1rem; box-shadow: 0 10px 15px -3px rgba(0,0,0,.15); padding: 1rem; border: 1px solid var(--border); }
.sessions-badge .lbl { font-size: 0.75rem; color: var(--muted-foreground); font-family: var(--font-heading); text-transform: uppercase; letter-spacing: .05em; margin-bottom: 0.25rem; }
.sessions-badge .num { font-size: 1.5rem; font-family: var(--font-heading); font-weight: 700; color: var(--reef-navy); }
.sessions-badge .sub { font-size: 0.875rem; color: var(--reef-teal); font-family: var(--font-heading); font-weight: 600; }

.steps-grid { display: grid; grid-template-columns: 1fr; gap: 2rem; max-width: 56rem; margin: 0 auto; }
@media (min-width: 768px){ .steps-grid { grid-template-columns: repeat(3, 1fr); } }
.step-item { text-align: center; }
.step-ic { width: 4rem; height: 4rem; margin: 0 auto 1rem; border-radius: 1rem; background: var(--reef-navy); color: var(--reef-teal-light); display: flex; align-items: center; justify-content: center; }
.step-ic svg { width: 1.75rem; height: 1.75rem; }
.step-item h3 { font-weight: 700; font-size: 1rem; color: var(--reef-navy); margin-bottom: 0.5rem; }
.step-item p { color: var(--muted-foreground); font-size: 0.875rem; line-height: 1.6; }



/* ==========================================================================
   Clients Logo Strip
   ========================================================================== */
.clients-strip { background: #fff; padding: 3.5rem 0; overflow: hidden; border-top: 1px solid var(--border); border-bottom: 1px solid var(--border); }
.clients-strip-head { max-width: 80rem; margin: 0 auto; padding: 0 1rem; text-align: center; margin-bottom: 2rem; }
@media (min-width: 640px) { .clients-strip-head { padding: 0 1.5rem; } }
@media (min-width: 1024px) { .clients-strip-head { padding: 0 2rem; } }
.clients-strip-head .eyebrow { color: var(--reef-teal); font-size: 0.875rem; font-family: var(--font-heading); font-weight: 600; letter-spacing: .05em; text-transform: uppercase; margin-bottom: 0.5rem; }
.clients-strip-head h2 { font-family: var(--font-heading); font-weight: 700; font-size: 1.5rem; color: var(--reef-navy); }
@media (min-width: 640px) { .clients-strip-head h2 { font-size: 1.875rem; } }

.clients-strip-viewport { position: relative; }
.clients-strip-track { display: flex; width: max-content; animation: 90s linear 0s infinite normal none running clients-marquee; }
.clients-strip-track:hover { animation-play-state: paused; }

.client-logo { flex-shrink: 0; margin: 0 1.5rem; padding: 1rem 2rem; background: #fff; border-radius: 1rem; border: 1px solid var(--border); display: flex; align-items: center; justify-content: center; min-width: 140px; height: 4rem; }
.client-logo img { max-height: 2rem; max-width: 110px; object-fit: contain; filter: grayscale(1); transition: filter .2s; }
.client-logo:hover img { filter: grayscale(0); }
.client-logo-fallback { font-family: var(--font-heading); font-weight: 700; color: var(--reef-navy); font-size: 0.875rem; text-align: center; align-items: center; justify-content: center; }

@keyframes clients-marquee {
	0% { transform: translateX(0); }
	100% { transform: translateX(-50%); }
}





/* ==========================================================================
   SEJA PARCEIRO — benefícios, perfis, form em seções
   ========================================================================== */
.benefit-card {
  background: #fff; border-radius: 1rem; padding: 1.75rem;
  border: 1px solid var(--border); transition: border-color .2s, box-shadow .2s;
}
.benefit-card:hover { border-color: rgba(27,165,196,.3); box-shadow: 0 4px 12px rgba(0,0,0,.08); }
.benefit-card h3 { font-weight: 700; font-size: 1.125rem; color: var(--reef-navy); margin-bottom: 0.5rem; }
.benefit-card p { color: var(--muted-foreground); font-size: 0.875rem; line-height: 1.6; }


.benefit-card:hover .icon-box{
  background-color: #1ba5c433;
}

.form-section-title {
  font-family: var(--font-heading); font-weight: 600; font-size: 0.875rem;
  color: var(--reef-teal); text-transform: uppercase; letter-spacing: .05em;
  margin-bottom: 1rem; display: flex; align-items: center; gap: 0.5rem;
}
.form-section-title .n { width: 1.5rem; height: 1.5rem; border-radius: 9999px; background: var(--reef-teal); color: #fff; display: inline-flex; align-items: center; justify-content: center; font-size: 0.75rem; }

/* ==========================================================================
   FACILITADORES — badge, resultados, dias (accordion), FAQ, metodologias
   ========================================================================== */
.fac-badge { display: inline-flex; align-items: center; gap: 0.5rem; background: #ecfdf5; color: #065f46; border-radius: 9999px; padding: 0.375rem 1rem; font-size: 0.75rem; font-family: var(--font-heading); font-weight: 600; text-transform: uppercase; letter-spacing: .1em; margin-bottom: 2rem; }
.fac-badge .dot { width: 0.5rem; height: 0.5rem; border-radius: 9999px; background: var(--reef-teal); }
.fac-chips { display: flex; flex-wrap: wrap; justify-content: center; gap: 0.85rem; margin-bottom: 2.5rem; }
.fac-chip { font-size: 0.75rem; color: var(--muted-foreground); background: var(--reef-sand); border: 1px solid var(--border); border-radius: 9999px; padding: 0.375rem 1rem; }
.fac-intro { background: var(--reef-sand); border-left: 4px solid var(--reef-teal); border-radius: 0 0.75rem 0.75rem 0; padding: 1.25rem 1.5rem; text-align: left; font-family: var(--font-heading); font-weight: 500; color: #334155; line-height: 1.7; }

.result-grid { display: grid; grid-template-columns: 1fr; gap: 1rem; }
@media (min-width: 640px){ .result-grid { grid-template-columns: repeat(2, 1fr); } }
.result-card { background: #fff; border: 1px solid var(--border); border-radius: 0.75rem; padding: 1.5rem; }
.result-card .verb { font-size: 0.75rem; font-family: var(--font-heading); font-weight: 600; text-transform: uppercase; letter-spacing: .1em; color: var(--reef-teal); margin-bottom: 0.5rem; }
.result-card .t { font-family: var(--font-heading); font-weight: 600; color: var(--reef-navy); font-size: 1rem; margin-bottom: 0.5rem; }
.result-card .s { font-size: 0.875rem; color: #94a3b8; line-height: 1.6; }

.perfil-grid { display: grid; grid-template-columns: 1fr; gap: 0.75rem; margin-bottom: 1rem; }
@media (min-width: 640px){ .perfil-grid { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1024px){ .perfil-grid { grid-template-columns: repeat(3, 1fr); } }
.perfil-card { background: #fff; border: 1px solid var(--border); border-radius: 0.75rem; padding: 1.25rem; }
.perfil-card.dest { border: 2px solid var(--reef-teal); }
.perfil-card .t { font-family: var(--font-heading); font-weight: 600; color: var(--reef-navy); font-size: 0.875rem; margin-bottom: 0.5rem; }
.perfil-card .d { font-size: 0.875rem; color: var(--muted-foreground); line-height: 1.6; }

.quote-box { background: var(--reef-navy); border-radius: 0.75rem; padding: 1.5rem; margin-bottom: 1.25rem; }
.quote-box .q { font-family: var(--font-heading); font-weight: 500; color: #d1fae5; font-size: 1.125rem; line-height: 1.6; margin-bottom: 0.75rem; }
.quote-box .qs { color: rgba(167,243,208,.7); font-size: 0.875rem; line-height: 1.6; }

.cta-band { background: var(--reef-teal); padding: 3rem 0; text-align: center; }
.cta-band .eyebrow { color: rgba(255,255,255,.8); }
.cta-band h2 { font-weight: 700; font-size: 1.5rem; color: #fff; margin-bottom: 1rem; }
@media (min-width: 640px){ .cta-band h2 { font-size: 1.875rem; } }
.cta-band p { color: rgba(255,255,255,.7); margin-bottom: 1.5rem; }

.dif-grid { display: grid; grid-template-columns: 1fr; gap: 1.25rem; }
@media (min-width: 768px){ .dif-grid { grid-template-columns: repeat(2, 1fr); } }
.dif-card { border: 1px solid var(--border); border-radius: 1rem; overflow: hidden; }
.dif-card.span2 { grid-column: 1 / -1; }
.dif-card .img { height: 12rem; overflow: hidden; }
.dif-card .img img { width: 100%; height: 100%; object-fit: cover; transition: transform .3s; }
.dif-card .body { padding: 1.5rem; }
.dif-card h4 { font-weight: 700; color: var(--reef-navy); font-size: 1.05rem; margin-bottom: 0.5rem; }
.dif-card p { color: var(--muted-foreground); font-size: 0.875rem; line-height: 1.6; }
.dif-card:hover img { transform: scale(1.05); }
.acc-list {
	border-top: 1px solid var(--border);
	border: 1px solid var(--border);
	border-radius: 15px;
}
.acc-item { border-bottom: 1px solid var(--border); }
.acc-trigger {
	width: 100%;
	display: flex;
	align-items: flex-start;
	gap: 1rem;
	padding: 1.25rem 20px;
	text-align: left;
	background: none;
	border: none;
}
.acc-daybadge { border-radius: 0.5rem; padding: 0.375rem 0.75rem; font-size: 0.75rem; font-weight: 600; text-transform: uppercase; letter-spacing: .05em; white-space: nowrap; flex-shrink: 0; margin-top: 0.125rem; }

/* Variações de cor por dia */
.acc-daybadge-emerald { background: #ecfdf5; color: #065f46; }
.acc-daybadge-blue    { background: #eff6ff; color: #1e40af; }
.acc-daybadge-amber   { background: #fffbeb; color: #92400e; }

.acc-trigger .grow { flex: 1; min-width: 0; }
.acc-trigger .t { font-family: var(--font-heading); font-weight: 600; color: var(--reef-navy); font-size: 1rem; }
.acc-trigger .st { font-family: var(--font-heading); font-weight: 500; color: var(--reef-teal); font-size: 0.875rem; }
.acc-trigger .meta { color: #94a3b8; font-size: 0.75rem; margin-top: 0.25rem; }
.acc-chevron { color: #94a3b8; flex-shrink: 0; margin-top: 0.25rem; transition: transform .2s; }
.acc-chevron svg { width: 1rem; height: 1rem; }
.acc-item.open .acc-chevron { transform: rotate(180deg); }
.acc-body { display: none; padding-bottom: 1.5rem; }
.acc-item.open .acc-body {
	display: block;
	padding: 1rem 1.5rem;
}
.acc-body ul { margin-bottom: 1rem; }
.acc-body li { display: flex; gap: 0.75rem; align-items: flex-start; font-size: 0.875rem; color: #475569; line-height: 1.6; margin-bottom: 0.5rem; }
.acc-body li .b { width: 0.375rem; height: 0.375rem; border-radius: 9999px; background: var(--reef-teal); flex-shrink: 0; margin-top: 0.5rem; }

.acc-outcome { border-radius: 0.5rem; padding: 0.75rem 1rem; font-size: 0.875rem; font-style: italic; line-height: 1.6; }

/* Variações de cor por dia (outcome usa a mesma cor do badge, igual ao React) */
.acc-outcome-emerald { background: #ecfdf5; color: #065f46; }
.acc-outcome-blue    { background: #eff6ff; color: #1e40af; }
.acc-outcome-amber   { background: #fffbeb; color: #92400e; }

.faq-item .acc-trigger { justify-content: space-between; align-items: center; }
.faq-item .acc-trigger .q { font-family: var(--font-heading); font-weight: 600; color: var(--reef-navy); font-size: 0.9rem; line-height: 1.4; }
.faq-plus { color: #94a3b8; font-size: 1.25rem; font-weight: 300; flex-shrink: 0; transition: transform .2s; }
.faq-item.open .faq-plus { transform: rotate(45deg); }
.faq-answer { display: none; padding-bottom: 1.25rem; font-size: 0.875rem; color: var(--muted-foreground); line-height: 1.7; }
.faq-item.open .faq-answer { display: block !important; }

.meto-grid { display: grid; grid-template-columns: 1fr; gap: 1rem; }
@media (min-width: 640px){ .meto-grid { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1024px){ .meto-grid { grid-template-columns: repeat(3, 1fr); } }
.meto-card { background: #fff; border: 1px solid var(--border); border-radius: 0.75rem; padding: 1.25rem; }
.meto-card .n { font-family: var(--font-heading); font-weight: 700; color: var(--reef-navy); font-size: 0.95rem; margin-bottom: 0.5rem; }
.meto-card .d { font-size: 0.8rem; color: var(--muted-foreground); line-height: 1.6; }

.incluso-grid { display: grid; grid-template-columns: 1fr; gap: 1rem; }
@media (min-width: 640px){ .incluso-grid { grid-template-columns: repeat(2, 1fr); } }
.incluso-item { display: flex; gap: 0.75rem; align-items: flex-start; }
.incluso-item .ic { width: 1.5rem; height: 1.5rem; border-radius: 9999px; background: rgba(27,165,196,.1); color: var(--reef-teal); display: flex; align-items: center; justify-content: center; flex-shrink: 0; margin-top: 0.125rem; }
.incluso-item .ic svg { width: 0.875rem; height: 0.875rem; }
.incluso-item .t { font-family: var(--font-heading); font-weight: 600; color: var(--reef-navy); margin-bottom: 0.125rem; }
.incluso-item .d {  color: var(--muted-foreground); line-height: 1.5; }

.download-btn { display: inline-flex; align-items: center; gap: 0.625rem; border: 2px solid var(--reef-teal); color: var(--reef-teal); border-radius: 0.75rem; padding: 0.75rem 1.5rem; font-family: var(--font-heading); font-weight: 600; font-size: 0.875rem; transition: background-color .2s, color .2s; }
.download-btn:hover { background: var(--reef-teal); color: #fff; }
.download-btn svg { width: 1rem; height: 1rem; }

/* ==========================================================================
   QUEM SOMOS
   ========================================================================== */
.qs-lead { font-size: 1.125rem; line-height: 1.8; color: #334155; }
.qs-lead p { margin-bottom: 1.25rem; }
.value-grid { display: grid; grid-template-columns: 1fr; gap: 1.5rem; }
@media (min-width: 768px){ .value-grid { grid-template-columns: repeat(3, 1fr); } }
.value-card { background: #fff; border: 1px solid var(--border); border-radius: 1rem; padding: 1.75rem; }
.value-card h3 { font-weight: 700; color: var(--reef-navy); font-size: 1.05rem; margin-bottom: 0.5rem; }
.value-card p { color: var(--muted-foreground); font-size: 0.875rem; line-height: 1.6; }

/* Utilidade hidden-sm usada no methodology h2 */
@media (max-width: 639px){ .hidden-sm { display: none; } }

/* Card da Carla — foto ao lado do texto no desktop */
@media (min-width: 640px){
  .carla-card > div { flex-direction: row !important; }
}


/* ==========================================================================
   Single Post
   ========================================================================== */
.single-wrap { background: var(--reef-sand); min-height: 100vh; }

.single-topbar { background: var(--reef-navy); padding: 1.5rem 0; }
.single-back { display: inline-flex; align-items: center; gap: .5rem; color: rgba(255,255,255,.7); font-size: .875rem; transition: color .2s; }
.single-back:hover { color: #fff; }
.single-back svg { width: 1rem; height: 1rem; }

.single-layout { display: flex; gap: 2rem; align-items: flex-start; padding: 3rem 1rem; max-width: 80rem; }
@media (min-width: 640px) { .single-layout { padding: 3rem 1.5rem; } }
@media (min-width: 1024px) { .single-layout { padding: 3rem 2rem; } }

.single-article { flex: 1; min-width: 0; }
.single-card { background: #fff; border-radius: 1rem; padding: 2rem; border: 1px solid var(--border); box-shadow: 0 1px 3px rgba(0,0,0,.05); }
@media (min-width: 1024px) { .single-card { padding: 3rem; } }

.single-meta { display: flex; flex-wrap: wrap; align-items: center; gap: .75rem; margin-bottom: 1.5rem; }
.single-meta .cat { font-size: .75rem; font-family: var(--font-heading); font-weight: 600; padding: .3rem .65rem; border-radius: 9999px; background: rgba(27,165,196,.1); color: var(--reef-teal); }
.single-meta .meta-item { display: flex; align-items: center; gap: .35rem; color: #64748b; font-size: .75rem; }
.single-meta .meta-item svg { width: .875rem; height: .875rem; }

.single-title { font-family: var(--font-heading); font-weight: 800; font-size: 1.875rem; color: var(--reef-navy); line-height: 1.2; margin-bottom: 2rem; }
@media (min-width: 640px) { .single-title { font-size: 2.25rem; } }

.single-feat { border-radius: .75rem; overflow: hidden; margin-bottom: 2rem; }
.single-feat img { width: 100%; height: auto; display: block; }

/* Conteúdo do post */
.prose { font-size: 1rem; color: var(--foreground); line-height: 1.75; }
.prose h1 { font-family: var(--font-heading); font-weight: 800; font-size: 1.875rem; color: var(--reef-navy); margin: 2rem 0 1rem; line-height: 1.25; }
.prose h2 { font-family: var(--font-heading); font-weight: 700; font-size: 1.5rem; color: var(--reef-navy); margin: 2rem 0 1rem; line-height: 1.25; }
.prose h3 { font-family: var(--font-heading); font-weight: 700; font-size: 1.25rem; color: var(--reef-navy); margin: 1.5rem 0 .75rem; }
.prose h4 { font-family: var(--font-heading); font-weight: 600; font-size: 1.125rem; color: var(--reef-navy); margin: 1rem 0 .5rem; }
.prose p { margin-bottom: 1rem; }
.prose strong { font-weight: 600; color: var(--reef-navy); }
.prose em { font-style: italic; color: #64748b; }
.prose ul {
    list-style: disc;
    margin: 0 0 1rem 1.2rem;
}
.prose ol {
    list-style: decimal;
    margin: 0 0 1rem 1.2rem;
    padding: 0;
}
.prose li { margin-bottom: .5rem; }
.prose blockquote { border-left: 4px solid var(--reef-teal); background: rgba(27,165,196,.05); padding: .75rem 1.25rem; border-radius: 0 .5rem .5rem 0; margin: 1.5rem 0; font-style: italic; color: #64748b; font-size: 1.125rem; }
.prose a { color: var(--reef-teal); text-decoration: underline; text-underline-offset: 2px; }
.prose a:hover { color: var(--reef-teal-light); }
.prose hr { border: none; border-top: 1px solid var(--border); margin: 2rem 0; }
.prose code { background: var(--muted); padding: .15rem .4rem; border-radius: .25rem; font-size: .875rem; color: var(--reef-navy); }
.prose pre { background: var(--reef-navy); color: #fff; border-radius: .75rem; padding: 1.25rem; overflow-x: auto; font-size: .875rem; margin: 1.5rem 0; }
.prose pre code { background: none; padding: 0; color: inherit; }
.prose img { border-radius: .75rem; margin: 1.5rem 0; max-width: 100%; height: auto; }

/* Compartilhar */
.single-share { margin-top: 3rem; padding-top: 2rem; border-top: 1px solid var(--border); display: flex; align-items: center; gap: .75rem; }
.single-share .lbl { font-size: .875rem; color: #64748b; font-family: var(--font-heading); font-weight: 500; }
.share-btn { width: 2.25rem; height: 2.25rem; border-radius: 9999px; border: none; cursor: pointer; display: flex; align-items: center; justify-content: center; transition: background-color .2s; }
.share-linkedin { background: rgba(15,42,67,.1); color: var(--reef-navy); }
.share-linkedin:hover { background: rgba(15,42,67,.2); }
.share-whatsapp { background: #dcfce7; color: #15803d; }
.share-whatsapp:hover { background: #bbf7d0; }
.share-copy { background: var(--muted); color: #64748b; }
.share-copy:hover { background: #e2e8f0; }
.share-copy.copied { background: var(--reef-teal); color: #fff; }

/* CTA */
.single-cta { margin-top: 2rem; background: var(--reef-navy); border-radius: 1rem; padding: 2rem; text-align: center; }
.single-cta h3 { font-family: var(--font-heading); font-weight: 700; font-size: 1.25rem; color: #fff; margin-bottom: .75rem; }
.single-cta p { color: rgba(255,255,255,.6); font-size: .875rem; margin-bottom: 1.25rem; }
.single-cta .btn-teal { display: inline-flex; align-items: center; gap: .4rem; background: var(--reef-teal); color: #fff; font-family: var(--font-heading); font-weight: 600; padding: .7rem 1.5rem; border-radius: .6rem; transition: background-color .2s; }
.single-cta .btn-teal:hover { background: var(--reef-teal-light); }

/* Sidebar */
.single-sidebar { width: 18rem; flex-shrink: 0; position: sticky; top: 2rem; display: none; }
@media (min-width: 1024px) { .single-sidebar { display: block; } }
.sidebar-card { background: #fff; border-radius: 1rem; border: 1px solid var(--border); box-shadow: 0 1px 3px rgba(0,0,0,.05); padding: 1.5rem; }
.sidebar-card h3 { font-family: var(--font-heading); font-weight: 700; color: var(--reef-navy); font-size: 1rem; margin-bottom: 1rem; }
.sidebar-list { display: flex; flex-direction: column; gap: 1rem; }
.sidebar-item { display: flex; gap: .75rem; }
.sidebar-item .thumb { width: 4rem; height: 4rem; border-radius: .5rem; object-fit: cover; flex-shrink: 0; transition: opacity .2s; }
.sidebar-item:hover .thumb { opacity: .8; }
.sidebar-item .info { flex: 1; min-width: 0; }
.sidebar-item .cat { display: block; font-size: .75rem; font-family: var(--font-heading); font-weight: 600; color: var(--reef-teal); margin-bottom: .25rem; }
.sidebar-item .title { font-size: .875rem; font-family: var(--font-heading); font-weight: 500; color: var(--reef-navy); line-height: 1.3; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; transition: color .2s; }
.sidebar-item:hover .title { color: var(--reef-teal); }
.sidebar-item .post-read-time { font-size: .75rem; color: #94a3b8; margin-top: .25rem; display: block; }
.sidebar-viewall { display: flex; align-items: center; gap: .3rem; margin-top: 1.25rem; padding-top: 1.25rem; border-top: 1px solid var(--border); font-size: .875rem; font-family: var(--font-heading); font-weight: 600; color: var(--reef-teal); transition: color .2s; }
.sidebar-viewall:hover { color: var(--reef-teal-light); }

/* ==========================================================================
   Material Download Modal
   ========================================================================== */
.reef-modal-overlay { position: fixed; inset: 0; background: rgba(15,42,67,.5); display: flex; align-items: center; justify-content: center; padding: 1.5rem; z-index: 1000; opacity: 0; pointer-events: none; transition: opacity .2s; }
.reef-modal-overlay.open { opacity: 1; pointer-events: auto; }

.reef-modal { background: #fff; border-radius: 1rem; padding: 2rem; width: 100%; max-width: 28rem; position: relative; transform: translateY(10px); transition: transform .2s; box-shadow: 0 20px 50px rgba(0,0,0,.2); }
.reef-modal-overlay.open .reef-modal { transform: translateY(0); }

.reef-modal-close { position: absolute; top: 1rem; right: 1rem; width: 2rem; height: 2rem; border: none; background: var(--muted); border-radius: 9999px; font-size: 1.25rem; line-height: 1; color: #64748b; cursor: pointer; display: flex; align-items: center; justify-content: center; }
.reef-modal-close:hover { background: #e2e8f0; }

.reef-modal-title { font-family: var(--font-heading); font-weight: 700; font-size: 1.125rem; color: var(--reef-navy); margin-bottom: .5rem; padding-right: 2rem; }
.reef-modal-sub { color: #64748b; font-size: .875rem; margin-bottom: 1.25rem; }
.reef-modal-form .wpcf7-form p { margin-bottom: 1rem; }

.reef-modal form input[type="submit"] { background: var(--reef-teal); color: #fff; border: none; border-radius: .6rem; padding: .7rem 1.25rem; font-family: var(--font-heading); font-weight: 600; font-size: .875rem; cursor: pointer; transition: background-color .2s; }


/* ==========================================================================
   Post-its decorativos (hero Quem Somos)
   ========================================================================== */
.page-hero { position: relative; }

.postit {
	position: absolute;
	opacity: .88;
	border-radius: .325rem;
	box-shadow: 3px 4px 12px rgba(0,0,0,.25);
	pointer-events: none;
	user-select: none;
	display: flex;
	flex-direction: column;
	z-index: 2;
}
.postit-top {
    width: 100%;
    height: 18%;
    filter: brightness(.88);
    border-radius: 0.325rem 0.325rem 0 0;
}
.postit-label {
	flex: 1;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 0 .5rem;
}
.postit-label span {
	font-weight: 700;
	color: #1A2B6B;
	text-align: center;
	line-height: 1.2;
	font-family: var(--font-heading);
}

/* ==========================================================================
   Highlight de texto (marca-texto) — "facilitadores estratégicos"
   ========================================================================== */
.highlight-wrap {
	position: relative;
	display: inline;
}
.highlight-text {
	position: relative;
	z-index: 1;
	font-weight: 600;
	color: #fff;
}
.highlight-bg {
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	height: 16px;
	background: rgba(255, 111, 97, .65); /* reef-coral a 65% de opacidade — ajuste o hex se seu --reef-coral for diferente */
	z-index: 0;
	border-radius: 2px;
	transform: skewX(-2deg);
}

#waitlist form textarea{
  height: 80px;
}

.wpcf7-spinner,
.wpcf7-not-valid-tip{
  display: none !important;
}
input.wpcf7-not-valid,
textarea.wpcf7-not-valid{
  border: 1px solid red !important;
}

/* ==========================================================================
   Notify box (Eventos) — "Quer saber primeiro sobre os próximos eventos?"
   ========================================================================== */
.notify-box {
	margin-top: 4rem;
	background: #fff;
	border-radius: 1rem;
	padding: 2rem;
	border: 1px solid var(--border);
	text-align: center;
	max-width: 32rem;
	margin-left: auto;
	margin-right: auto;
}
.notify-box .reef-ico {
	display: block;
	width: 2rem;
	height: 2rem;
	color: var(--reef-teal);
	margin: 0 auto 0.75rem;
}
.notify-box h3 {
	font-family: var(--font-heading);
	font-weight: 700;
	font-size: 1.125rem;
	color: var(--reef-navy);
	margin-bottom: 0.5rem;
}

/* Formulário CF7 */
.cf7-notify { margin-top: 1rem; }

.cf7-notify .hidden-fields-container {
	display: none;
}

.cf7-notify form,
.cf7-notify .wpcf7-form {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0;
	position: relative;
	max-width: 26rem;
	margin: 0 auto;
	width: 100%;
}

/* Linha com input + botão */
.cf7-notify .nl-row {
	display: flex;
	align-items: center;
	gap: 0.5rem;
	width: 100%;
}

.cf7-notify .wpcf7-form-control-wrap {
	flex: 1 1 auto;
	min-width: 0;
	position: relative;
}

.cf7-notify input[type="email"] {
	width: 100%;
	background: var(--reef-sand);
	border: 1px solid var(--border);
	border-radius: 0.6rem;
	outline: none;
	padding: 0.7rem 1rem;
	color: var(--reef-navy);
	font-size: 0.9rem;
	font-family: var(--font-body);
}
.cf7-notify input[type="email"]:focus { border-color: var(--reef-teal); }
.cf7-notify input[type="email"]::placeholder { color: #94a3b8; }

.cf7-notify input.wpcf7-submit {
    flex: 0 0 auto;
    background: var(--reef-teal);
    color: #fff;
    border: none;
    border-radius: 0.6rem;
    padding: 0.7rem 1.25rem;
    font-family: var(--font-heading);
    font-weight: 600;
    font-size: 0.875rem;
    cursor: pointer;
    transition: background-color .2s;
    white-space: nowrap;
    width: unset;
}
.cf7-notify input.wpcf7-submit:hover { background: var(--reef-teal-light); }

.cf7-notify .wpcf7-spinner { display: none !important; }

/* Mensagem de retorno — sempre na linha de baixo, largura total */
.cf7-notify .wpcf7-response-output {
	flex: 0 0 100%;
	width: 100%;
	order: 2;
	margin: 0.75rem 0 0 !important;
	padding: 0.5rem 0.85rem !important;
	border-radius: 0.5rem;
	font-size: 0.75rem;
	line-height: 1.4;
}
.cf7-notify form.sent .wpcf7-response-output {
	background: rgba(27,165,196,.1);
	border-color: var(--reef-teal) !important;
	color: var(--reef-navy);
}
.cf7-notify form.invalid .wpcf7-response-output,
.cf7-notify form.failed .wpcf7-response-output {
	background: rgba(239,68,68,.1);
	border-color: rgba(239,68,68,.5) !important;
	color: #991b1b;
}


.wpcf7 input[type="submit"]:disabled,
.wpcf7 button[type="submit"]:disabled {
  opacity: 0.6;
  cursor: not-allowed;
}





.btn-cf7-submit {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	height: 48px;
	background: var(--reef-coral);
	color: #fff;
	font-family: var(--font-heading);
	font-weight: 600;
	border: none;
	border-radius: 0.75rem;
	cursor: pointer;
	transition: background-color .2s ease;
}
.btn-cf7-submit:hover {
	background: color-mix(in srgb, var(--reef-coral) 90%, black);
}
.btn-cf7-submit:disabled {
	opacity: .6;
	cursor: not-allowed;
}
.icon-send {
	width: 16px;
	height: 16px;
	margin-left: 8px;
}


/* estrutura base do .page-hero, .ph-bg, .ph-inner, .ph-grid, .ph-image
   já existe no site e continua igual em todas as páginas — não mexi nisso */

/* --- só a página de Contato daqui pra baixo --- */

.page-hero--contato .ph-bg-img {
	opacity: 0.2;
}

.page-hero--contato .ph-overlay {
	position: absolute;
	inset: 0;
	background: linear-gradient(
		to right,
		var(--reef-navy) 0%,
		color-mix(in srgb, var(--reef-navy) 90%, transparent) 50%,
		color-mix(in srgb, var(--reef-navy) 60%, transparent) 100%
	);
}

.page-hero--contato .ph-decor {
	position: absolute;
	inset: 0;
	pointer-events: none;
}
.page-hero--contato .ph-blob {
	position: absolute;
	border-radius: 9999px;
}
.page-hero--contato .ph-blob-teal {
	top: -80px;
	right: 40px;
	width: 288px;
	height: 288px;
	background: color-mix(in srgb, var(--reef-teal) 5%, transparent);
}
.page-hero--contato .ph-blob-coral {
	bottom: 40px;
	left: -64px;
	width: 224px;
	height: 224px;
	background: color-mix(in srgb, var(--reef-coral) 5%, transparent);
}

.contact-grid form textarea {
  height: 100px;
}




.agenda-home .btn-ghost-teal:hover {
    background: var(--reef-coral);
    color: var(--reef-teal);
}

.mat-card:hover .icon-box {
    background-color: #1ba5c433;
}


.form-empresas .wpcf7-form textarea {
    height: 100px;
}


.form-parceiro .wpcf7-form textarea {
    height: 80px;
    min-height: 80px;
}

.form-parceiro .btn-cf7-submit {
    background: var(--reef-teal);
}
.form-parceiro .btn-cf7-submit:hover {
    background: var(--reef-teal-light);
}

p.text-spam {
    text-align: center;
    font-size: 12px;
    margin-top: 1rem;
    margin-bottom: 0;
    color: #94a3b8;
}




@media(max-width: 1280px){
  .hero-inner {
      padding: 4rem 2rem;
  }
  .page-hero .ph-inner {
      padding: 4rem 2rem;
  }
  .footer-inner {
      padding: 4rem 2rem;
  }
}

@media(max-width: 1024px){

  .hero-inner {
      padding: 4rem 1.5rem;
  } 
  .page-hero .ph-inner {
      padding: 4rem 1.5rem;
  }
  .footer-inner {
      padding: 3rem 1.5rem;
  }

}

@media(max-width: 991px){


  .page-template-page-empresas .page-hero h1 br,
  .page-template-page-eventos .page-hero h1 br {
      display: none;
  }
  .mat-grid {
      grid-template-columns: repeat(2, 1fr);
  }
  .event-grid {
      grid-template-columns: repeat(2, 1fr);
  }
  .hero-inner {
      padding: 3rem 1rem;
  }
  .page-hero .ph-inner {
      padding: 3rem 1rem;
  }
  
  .container {
    padding: 0 1rem;
  }
  .footer-inner {
      padding: 3rem 1rem;
  }
  .page-hero .ph-inner {
      padding: 6rem 1rem;
  }
  .event-card .body {
      padding: 1rem;
  }
  .cf7-newsletter .wpcf7-form-control-wrap {
      max-width: 75%;
  }
  .single-layout {
    padding: 3rem 1.5rem;
  }


  
.event-grid > *:last-child:nth-child(odd),
.mat-grid > *:last-child:nth-child(odd){
	grid-column: 1 / -1;       /* ocupa as 2 colunas */
	max-width: calc(50% - 0.75rem); /* metade da largura, descontando meio gap */
	margin-inline: auto;       /* centraliza dentro do espaço das 2 colunas */
}

.postit {
    z-index: 0;
}




}

@media(max-width: 575px){

  p.text-spam {
      font-size: 11px;
  }

  .event-grid > *:last-child:nth-child(odd),
  .mat-grid > *:last-child:nth-child(odd) {
      grid-column: 1 / -1;
      max-width: 100%;
      margin-inline: auto;
  }
  .cf7-newsletter .wpcf7-form-control-wrap {
      max-width: 100%;
  }
  .event-grid {
      grid-template-columns: repeat(1, 1fr);
  }
  .mat-grid {
      grid-template-columns: repeat(1, 1fr);
  }
  .single-layout {
      padding: 1rem 1rem;
  }
}

