/* ================= Educar Hoje · estilos partilhados ================= */
:root{
  --cream:#fdf7f4;
  --green:#7d9e77;
  --green-dark:#3e603b;
  --green-light:#8eb486;
  --pink:#f5d9df;
  --pink-band:#ffd5d6;   /* igual ao fundo da imagem cta-partilha.jpg */
  --pink-hot:#e5389a;
  --ink:#1e1e1c;
  --muted:#6b6b66;
  --maxw:1180px;
  --display:'Amatic SC', cursive;
  --body:'Lato', system-ui, sans-serif;
  --mono:'Fragment Mono', ui-monospace, monospace;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:var(--body);color:var(--ink);background:var(--cream);line-height:1.65;-webkit-font-smoothing:antialiased}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 24px}
.eyebrow{font-family:var(--mono);font-size:.72rem;letter-spacing:.22em;text-transform:uppercase;color:var(--green-dark)}
h1,h2,h3{font-family:var(--display);font-weight:700;line-height:.95;letter-spacing:.01em}
.btn{display:inline-block;font-family:var(--body);font-weight:700;font-size:.95rem;background:var(--green);color:#fff;padding:15px 28px;border-radius:999px;transition:transform .18s ease,background .18s ease}
.btn:hover{background:var(--green-dark);transform:translateY(-2px)}
.btn.light{background:#fff;color:var(--green-dark);border:1.5px solid var(--green-dark)}
.btn.light:hover{background:var(--green-dark);color:#fff}

/* Header */
header{position:sticky;top:0;z-index:50;background:rgba(253,247,244,.9);backdrop-filter:blur(10px);border-bottom:1px solid rgba(62,96,59,.10)}
.nav{display:flex;align-items:center;justify-content:space-between;height:74px}
.brand{display:flex;align-items:center;gap:12px;font-family:var(--display);font-size:1.9rem;color:var(--green-dark)}
.brand img{width:46px;height:46px;border-radius:50%}
.menu{display:flex;gap:30px;align-items:center}
.menu a{font-size:.9rem;font-weight:700;color:var(--ink);opacity:.82;transition:opacity .15s,color .15s}
.menu a:hover,.menu a.active{opacity:1;color:var(--green-dark)}
.menu .btn{color:#fff;opacity:1}
.burger{display:none;background:none;border:0;font-size:1.6rem;color:var(--green-dark);cursor:pointer}

/* Section helpers */
.section-head{text-align:center;margin-bottom:50px}
.section-head h2{font-size:clamp(3rem,7vw,5rem);color:var(--green-dark)}
.section-head p{max-width:640px;margin:.4em auto 0;color:#4a4c45}

/* ===== HERO (home) · texto + cluster de retratos ===== */
.hero{position:relative;overflow:hidden;background:var(--cream)}
.hero-bg{position:absolute;inset:0;background:url('hero.webp') center/cover no-repeat;opacity:.16}
.hero-bg::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(253,247,244,.4),var(--cream) 90%)}
.hero .inner{position:relative;display:grid;grid-template-columns:1fr 1.08fr;gap:40px;align-items:center;padding:60px 0 70px}
.hero .lead-col{max-width:480px}
.hero .kicker{font-weight:700;font-size:1.05rem;color:var(--ink);line-height:1.3;margin-bottom:.4em}
.hero h1{font-size:clamp(4rem,9vw,7.5rem);color:var(--green-dark);margin:.05em 0 .3em}
.hero .lead-col p{font-size:1.02rem;color:#4a4c45;margin-bottom:1em}
.hero .btn{margin-top:10px}
/* portrait cluster */
/* Equipa: composição única, tal como desenhada no Canva */
.people{display:flex;align-items:center;justify-content:center}
.people img{width:100%;height:auto;display:block}

/* ===== Page hero (interior pages) ===== */
.page-hero{position:relative;padding:96px 0 46px;text-align:center;overflow:hidden}
.page-hero.img{padding:150px 0 120px}
.page-hero .ph-bg{position:absolute;inset:0;background-size:cover;background-position:center}
.page-hero .ph-bg::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(253,247,244,.72),rgba(253,247,244,.9) 80%,var(--cream))}
.page-hero .wrap{position:relative}
.page-hero h1{font-size:clamp(3.5rem,10vw,7rem);color:var(--green-dark);margin:.1em 0 .25em}
.page-hero p{max-width:760px;margin:0 auto;font-size:1.1rem;color:#3c3e38}

/* ===== Parcerias (linha estática de logos) ===== */
.partners{padding:60px 0 66px;background:var(--cream)}
.partners .logos{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));align-items:center;justify-items:center;gap:30px 26px;max-width:1000px;margin:0 auto}
.partners .logos img{width:100%;max-width:140px;height:62px;object-fit:contain;filter:grayscale(1);opacity:.6;transition:opacity .2s,filter .2s}
.logos-nota{text-align:center;font-size:.95rem;color:var(--muted);max-width:60ch;margin:0 auto 38px}
.partners .logos img:hover{filter:grayscale(0);opacity:1}

/* ===== Serviços (ícones, sem caixas, 2×2) ===== */
.servicos{padding:80px 0 90px;background:var(--cream)}
.serv-grid{display:grid;grid-template-columns:1fr 1fr;gap:56px 60px;max-width:940px;margin:0 auto;text-align:center}
.serv{padding:0 6px}
.serv .ic{width:52px;height:52px;margin:0 auto 16px;color:var(--green)}
.serv .ic svg{width:100%;height:100%;stroke:var(--green);fill:none;stroke-width:1.7}
.serv h3{font-size:1.9rem;color:var(--green-dark);margin-bottom:.2em;display:inline-block;border-bottom:2px solid var(--green-light);padding-bottom:6px}
.serv p{font-size:.98rem;color:#4a4c45;margin-top:14px}

/* ===== Testemunhos (cartões com estrelas) ===== */
.testemunhos{padding:80px 0 90px;background:linear-gradient(180deg,#fff,var(--cream))}
.t-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:24px;align-items:start}
.quote{background:#fff;border:1px solid rgba(62,96,59,.10);border-radius:20px;padding:26px 26px 28px;box-shadow:0 8px 24px rgba(62,96,59,.06)}
.stars{color:#e9b949;font-size:1rem;letter-spacing:2px;margin-bottom:12px}
.quote p{font-size:.97rem;color:#3c3e38}
.quote .who{display:block;margin-top:14px;font-weight:700;font-size:.85rem;color:var(--green-dark)}

/* Team grid (sobre) */
.team-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:34px}
.member{text-align:center}
.member img{width:180px;height:180px;border-radius:50%;object-fit:cover;margin:0 auto 6px;box-shadow:0 10px 26px rgba(229,56,154,.20)}
.member .nm{width:200px;max-height:44px;object-fit:contain;margin:0 auto 8px}
.member h3{font-size:2rem;color:var(--green-dark);margin-bottom:.3em}
.member p{font-size:.95rem;color:#4a4c45}

/* Missão / Visão / Valores */
.mvv{padding:84px 0;background:#fff}
.mvv-grid{display:grid;grid-template-columns:1fr 1fr;gap:26px;margin-bottom:26px}
.mvv-card{background:var(--cream);border-radius:22px;padding:38px 34px;border:1px solid rgba(62,96,59,.08)}
.mvv-card h3{font-size:2.4rem;color:var(--green-dark);margin-bottom:.3em}
.mvv-card p{color:#4a4c45}
.valores{background:var(--green-dark);border-radius:22px;padding:44px 40px;color:#fff}
.valores h3{font-size:2.6rem;margin-bottom:1em;text-align:center}
.valores-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:30px}
.valor h4{font-family:var(--display);font-size:1.9rem;color:var(--pink);margin-bottom:.3em}
.valor p{font-size:.95rem;color:rgba(255,255,255,.9)}

/* ===== Conversas de Mães (fundo claro) ===== */
.conversas{padding:80px 0 90px;background:var(--cream)}
.conversas .grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:56px;align-items:center}
.conversas img{border-radius:20px}
.conversas .badge{font-family:var(--mono);font-size:.74rem;letter-spacing:.2em;text-transform:uppercase;color:var(--green);line-height:1.4;margin-bottom:10px}
.conversas h2{font-size:clamp(2.6rem,6vw,4.4rem);color:var(--green-dark);margin:.05em 0 .35em}
.conversas .lead{font-size:1.04rem;color:#3c3e38;margin-bottom:.9em}
.conversas ul{list-style:none;margin:.6em 0 1.1em;padding:0}
.conversas li{font-size:1rem;color:#3c3e38;padding:3px 0 3px 22px;position:relative}
.conversas li::before{content:"•";position:absolute;left:4px;color:var(--green)}
.conversas .when{font-family:var(--mono);font-size:.86rem;color:var(--green-dark);margin:14px 0 20px}

/* Agenda */
.agenda-progs{padding:80px 0}
.prog-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:26px}
.prog{background:#fff;border-radius:22px;overflow:hidden;box-shadow:0 10px 30px rgba(62,96,59,.08);border:1px solid rgba(62,96,59,.06)}
.prog img{width:100%;height:200px;object-fit:cover}
.prog .body{padding:26px 26px 30px}
.prog h3{font-size:1.9rem;color:var(--green-dark);margin-bottom:.4em;line-height:1}
.prog p{font-size:.95rem;color:#4a4c45}
.timeline{padding:84px 0;background:#fff}
.tl{max-width:760px;margin:0 auto;position:relative;padding-left:34px}
.tl::before{content:"";position:absolute;left:8px;top:6px;bottom:6px;width:2px;background:var(--green-light)}
.tl-item{position:relative;padding:0 0 32px 8px}
.tl-item::before{content:"";position:absolute;left:-34px;top:4px;width:16px;height:16px;border-radius:50%;background:var(--green-dark);border:3px solid var(--cream)}
.tl-item .yr{font-family:var(--mono);font-size:.8rem;color:var(--pink-hot);letter-spacing:.05em}
.tl-item h4{font-family:var(--body);font-weight:700;font-size:1.05rem;color:var(--green-dark);margin:.15em 0 .1em}
.tl-item p{font-size:.95rem;color:#4a4c45}

/* CTA band */
.cta-band{padding:0;background:var(--pink-band)}
.cta-band .inner{display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:0}
.cta-band .txt{padding:70px 6% 70px 0}
.cta-band .txt h2{font-size:clamp(3rem,6vw,4.6rem);color:var(--green-dark);line-height:.9;margin-bottom:.4em}
.cta-band .txt p{color:#4a4c45;margin-bottom:1.4em;max-width:38ch}
.cta-band img{width:100%;height:100%;object-fit:cover;max-height:520px}

/* Contact form */
.contact{padding:84px 0}
.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:start}
.form label{display:block;font-weight:700;font-size:.9rem;color:var(--green-dark);margin:0 0 6px}
.form input,.form textarea{width:100%;padding:14px 16px;border:1.5px solid rgba(62,96,59,.2);border-radius:14px;background:#fff;font-family:var(--body);font-size:1rem;margin-bottom:20px;transition:border .15s}
.form input:focus,.form textarea:focus{outline:none;border-color:var(--green-dark)}
.form textarea{min-height:150px;resize:vertical}
.contact-side{background:var(--green-dark);color:#fff;border-radius:22px;padding:44px 40px}
.contact-side h3{font-size:2.4rem;margin-bottom:.4em}
.contact-side p{color:rgba(255,255,255,.9);margin-bottom:1.2em}
.contact-side a{display:flex;align-items:center;gap:10px;color:#fff;font-weight:700;margin-bottom:12px}
.contact-side a:hover{color:var(--pink)}

/* ===== Footer (verde) ===== */
footer{background:var(--green);padding:60px 0 26px;color:#fff}
.f-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:40px}
.f-brand{display:flex;align-items:center;gap:12px;font-family:var(--display);font-size:1.8rem;color:#fff;margin-bottom:14px}
.f-brand img{width:52px;height:52px;border-radius:50%;background:#fff}
footer .f-grid>div>p{max-width:34ch;color:rgba(255,255,255,.9);font-size:.95rem}
.f-col h4{font-family:var(--mono);text-transform:uppercase;letter-spacing:.18em;font-size:.7rem;color:rgba(255,255,255,.85);margin-bottom:16px}
.f-col a{display:block;font-size:.92rem;color:rgba(255,255,255,.9);margin-bottom:10px;transition:color .15s}
.f-col a:hover{color:#fff;text-decoration:underline}
.f-bottom{text-align:center;margin-top:48px;font-size:.8rem;color:rgba(255,255,255,.8)}

/* ===== Responsive ===== */
@media(max-width:900px){
  .team-grid{grid-template-columns:repeat(2,1fr)}
  .prog-grid{grid-template-columns:1fr}
}
@media(max-width:820px){
  .menu{position:fixed;inset:74px 0 auto 0;flex-direction:column;background:var(--cream);padding:24px;gap:18px;border-bottom:1px solid rgba(62,96,59,.12);display:none}
  .menu.open{display:flex}
  .burger{display:block}
  .hero .inner{grid-template-columns:1fr;gap:20px;padding:44px 0 56px;text-align:center}
  .hero .lead-col{max-width:none;margin:0 auto}
  .serv-grid,.mvv-grid{grid-template-columns:1fr}
  .valores-grid{grid-template-columns:1fr;gap:22px}
  .conversas .grid,.contact-grid{grid-template-columns:1fr;gap:32px}
  .conversas .img-wrap{order:-1}
  .cta-band .inner{grid-template-columns:1fr}
  .cta-band .txt{padding:54px 24px}
  .cta-band img{max-height:340px;order:-1}
  .f-grid{grid-template-columns:1fr;gap:28px}
}
@media(max-width:520px){
  .team-grid{grid-template-columns:1fr}
}

/* ===== CTA duplo no hero (mães | organizações) ===== */
.cta-duplo{display:flex;flex-wrap:wrap;gap:12px;margin-top:6px}
.cta-duplo .btn{padding:14px 24px;font-size:.9rem}

/* ===== Junta o grupo (secção para mães) ===== */
.grupos{padding:82px 0 90px;background:linear-gradient(180deg,#fff,var(--cream))}
.grupos-lead{max-width:72ch;margin:-18px auto 52px;text-align:center;font-size:1.06rem;color:#4a4c45}
.grupos .serv-grid{gap:46px 60px}
.grupos .serv h3{font-size:1.75rem}
.grupos-nota{max-width:70ch;margin:54px auto 0;text-align:center;background:#fff;border:1px solid rgba(62,96,59,.12);border-radius:22px;padding:32px 34px;box-shadow:0 8px 24px rgba(62,96,59,.06)}
.grupos-nota p{color:#4a4c45}
.grupos-nota .preco{margin-top:14px;font-size:.95rem;color:var(--muted)}
@media(max-width:760px){
  .grupos-nota{padding:26px 22px}
  .cta-duplo .btn{width:100%;text-align:center}
}

/* Encosta a primeira secção ao cabeçalho da página, evita o vazio a meio */
.page-hero + .servicos,
.page-hero + .testemunhos,
.page-hero + .partners{padding-top:26px}
.cta-duplo.cta-centro{justify-content:center;margin-top:46px}

/* Evita palavras órfãs sozinhas na última linha (títulos e frases curtas) */
h1,h2,h3,h4,
.page-hero p,.section-head p,.grupos-lead,.logos-nota,
.grupos-nota p,.serv p,.hero .lead-col p,.quote p{
  text-wrap:balance;
}

/* Parcerias ativas: menos logos, maiores, a cores */
.partners-ativos{padding:70px 0 10px}
.partners .logos.logos-destaque{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));max-width:760px;gap:34px}
.partners .logos.logos-destaque img{max-width:190px;height:78px;filter:none;opacity:1}

/* Fecho da Visão: linha final em tom mais discreto */
.mvv-card .visao-fecho{margin-top:.9em;color:var(--green-dark);font-weight:700;font-size:1.05rem}
.mvv-card p+p{margin-top:.7em}

/* ===== Galeria "Como é estar connosco" ===== */
.galeria{padding:74px 0 84px;background:var(--green-dark)}
.galeria .section-head h2{color:#fff}
.galeria-nota{text-align:center;max-width:64ch;margin:0 auto 42px;color:rgba(255,255,255,.86);font-size:1.04rem}
.galeria-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;max-width:1080px;margin:0 auto}
.galeria-grid figure{margin:0;overflow:hidden;border-radius:16px;aspect-ratio:4/3;background:rgba(255,255,255,.06)}
.galeria-grid img{width:100%;height:100%;object-fit:cover;transition:transform .5s ease}
.galeria-grid figure:hover img{transform:scale(1.05)}
.galeria-grid .g-grande{grid-column:span 2;grid-row:span 2;aspect-ratio:auto}
.galeria-grid .g-largo{grid-column:span 2;aspect-ratio:8/3}  /* duas colunas à altura de uma normal 4/3 */
@media(max-width:860px){
  .galeria-grid{grid-template-columns:repeat(2,1fr);grid-auto-flow:dense}
  .galeria-grid .g-grande{grid-column:span 2;grid-row:auto;aspect-ratio:16/10}
  .galeria-grid .g-largo{grid-column:span 2;aspect-ratio:16/10}
}
@media(max-width:520px){
  .galeria{padding:52px 0 60px}
  .galeria-grid{gap:9px}
  .galeria-nota{margin-bottom:30px;font-size:.98rem}
}

/* ===== Precaução contra transbordo horizontal =====
   Filhos de grid e flex têm min-width:auto por omissão, o que os impede de
   encolher abaixo do tamanho natural do conteúdo. Hoje nenhuma secção
   transborda, mas basta trocar uma fotografia por outra mais larga (a da
   equipa tem 1788px) para o hero sair fora do ecrã no telemóvel. Isto evita-o. */
.hero .inner > *,
.conversas .grid > *,
.cta-band .inner > *,
.contact-grid > *,
.serv-grid > *,
.t-grid > *{min-width:0}
.people{min-width:0;max-width:100%}
.people img{min-width:0;max-width:100%;height:auto}
