@import url('https://fonts.googleapis.com/css2?family=Lato:wght@300;400;700&display=swap');

* { box-sizing: border-box; }
html, body { margin: 0; min-height: 100%; font-family: 'Lato', sans-serif; font-weight: 300; }
body { background: #2c241f; }
.hero {
  min-height: 100vh;
  position: relative;
  overflow: hidden;
  color: #fff;
  background-image: url("imagens/capa.png");
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
}
.overlay { position: absolute; inset: 0; background: rgba(26,18,13,.48); }
.topbar {
  position: relative; z-index: 2; height: 72px; padding: 10px 34px;
  display: flex; align-items: flex-start; justify-content: space-between;
}
.brand { display: flex; align-items: center; gap: 18px; color: #fff; text-decoration: none; }
.logo {
  width: 48px; height: 48px; display: grid; place-items: center;
  background: rgba(0,0,0,.86); border: 1px solid rgba(255,255,255,.18);
  font-family: 'Lato', sans-serif; font-size: 40px; font-weight: 300; line-height: 1;
}
.brand-name { font-size: 23px; font-weight: 300; margin-top: 2px; }
.nav { display: flex; align-items: center; gap: 34px; padding-top: 14px; }
.nav a { color: rgba(255,255,255,.76); text-decoration: none; font-size: 19px; }
.nav a:hover, .nav a.active { color: #fff; }
.nav a.active { font-weight: 700; }
.search { background: none; border: 0; color: #fff; font-size: 35px; line-height: 16px; cursor: pointer; transform: rotate(-20deg); padding: 0; }
.hero-content {
  position: relative; z-index: 1; min-height: calc(100vh - 72px);
  display: flex; flex-direction: column; justify-content: center; align-items: center;
  padding: 0 24px 115px;
}
h1 { margin: 0 0 18px; font-size: clamp(64px, 7.1vw, 110px); font-weight: 300; letter-spacing: -2px; }
.intro { width: min(74%, 1368px); }
.intro p { font-size: 20px; line-height: 1.55; text-shadow: 0 1px 2px rgba(0,0,0,.35); }
.intro .welcome { font-weight: 700; margin-bottom: 40px; }
.menu-button { display: none; }
@media (max-width: 760px) {
  .topbar { padding: 14px 18px; align-items: flex-start; }
  .logo { width: 43px; height: 43px; font-size: 34px; }
  .brand-name { font-size: 19px; }
  .menu-button { display: block; z-index: 4; color: #fff; background: rgba(0,0,0,.35); border: 1px solid rgba(255,255,255,.35); padding: 7px 10px; font-size: 22px; }
  .nav { display: none; position: absolute; top: 68px; right: 18px; flex-direction: column; align-items: flex-end; gap: 18px; background: rgba(20,16,13,.92); padding: 20px 22px; }
  .nav.open { display: flex; }
  .hero-content { align-items: flex-start; justify-content: center; padding: 20px 24px 70px; }
  h1 { font-size: clamp(52px, 17vw, 78px); letter-spacing: -1px; }
  .intro { width: 100%; }
  .intro p { font-size: 17px; }
  .intro .welcome { margin-bottom: 24px; }
  .hero { background-position: 44% center; }
}


/* Página História */
.history-page { background: #f4f4f4; color: #111; }
.history-hero { min-height: 370px; position: relative; color: #fff; background: url("imagens/historia-capa.png") center 44% / cover no-repeat; }
.history-overlay { position: absolute; inset: 0; background: rgba(20,16,12,.40); }
.history-hero .topbar { position: relative; z-index: 2; }
.history-hero h1 { position: absolute; z-index: 1; inset: 0; margin: 0; display: grid; place-items: center; padding-top: 40px; font-size: clamp(64px, 6.2vw, 98px); font-weight: 300; }
.history-intro { background: #f4f4f4; padding: 50px 24px 44px; }
.history-text { width: min(820px, 88vw); margin: 0 auto; }
.history-text p, .parents-copy p { margin: 0 0 20px; font-size: 17px; line-height: 1.48; font-weight: 300; }
.parents-section { background: #303030; color: #fff; padding: 26px 24px; }
.parents-wrap { width: min(1260px, 92vw); margin: auto; display: grid; grid-template-columns: minmax(360px, 506px) minmax(0, 1fr); gap: 40px; align-items: center; }
.parents-photo { display: block; width: 100%; max-height: 520px; object-fit: cover; }
.parents-copy h2, .birth-section h2 { margin: 0 0 48px; text-align: center; font-size: 50px; line-height: 1; font-weight: 300; }
.parents-copy { max-width: 700px; }
.birth-section { background: #f4f4f4; padding: 50px 24px 30px; }
.birth-section h2 { color: #34434b; margin-bottom: 48px; }
.map-wrap { width: min(836px, 90vw); height: 470px; margin: 0 auto; }
.map-wrap iframe { width: 100%; height: 100%; border: 0; display: block; }
.site-footer { background: #fff; padding: 30px 24px; text-align: center; font-size: 16px; font-weight: 300; }
@media (max-width: 760px) {
  .history-hero { min-height: 300px; }
  .history-hero h1 { font-size: 58px; padding-top: 35px; }
  .history-intro { padding: 38px 22px; }
  .history-text { width: 100%; }
  .history-text p, .parents-copy p { font-size: 16px; }
  .parents-section { padding: 30px 22px 38px; }
  .parents-wrap { width: 100%; grid-template-columns: 1fr; gap: 28px; }
  .parents-photo { max-height: none; }
  .parents-copy h2, .birth-section h2 { font-size: 42px; margin-bottom: 30px; }
  .map-wrap { width: 100%; height: 380px; }
  .site-footer { font-size: 14px; }
}

/* Pagina Fotos */
.photos-page { background:#f4f4f4; color:#111; }
.photo-heading { background:#f4f4f4; padding:36px 24px 30px; text-align:center; }
.photo-heading h2 { margin:0; font-size:42px; font-weight:300; color:#26343b; }
.prenatal { background:#303030; padding:42px 24px 48px; }
.prenatal-grid { width:min(1080px,92vw); margin:auto; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:22px; }
.prenatal-grid img { width:100%; height:340px; object-fit:cover; background:#222; }
.prenatal-third { grid-column:1/-1; width:min(620px,100%) !important; justify-self:center; margin-top:4px; }
.family-section { background:#303030; padding:42px 24px 52px; color:#fff; }
.carousel { width:min(900px,92vw); margin:auto; position:relative; }
.carousel-viewport { overflow:hidden; }
.carousel-track { display:flex; transition:transform .45s ease; }
.carousel-slide { min-width:100%; margin:0; text-align:center; }
.carousel-slide img { width:100%; height:590px; display:block; object-fit:contain; background:#303030; }
.carousel-slide figcaption { padding-top:12px; font-size:16px; }
.carousel-arrow { position:absolute; z-index:2; top:46%; transform:translateY(-50%); width:46px; height:46px; border:1px solid rgba(255,255,255,.5); border-radius:50%; color:#fff; background:rgba(0,0,0,.38); font-size:29px; cursor:pointer; }
.carousel-arrow.prev { left:-64px; }
.carousel-arrow.next { right:-64px; }
.carousel-dots { display:flex; justify-content:center; gap:9px; margin-top:14px; }
.carousel-dot { width:10px; height:10px; border:0; border-radius:50%; padding:0; background:#888; cursor:pointer; }
.carousel-dot.active { background:#fff; transform:scale(1.18); }
.tribute { background:#303030; color:#fff; padding:18px 24px 54px; }
.tribute-wrap { width:min(1080px,92vw); margin:auto; display:grid; grid-template-columns:minmax(320px,465px) minmax(0,1fr); gap:42px; align-items:center; }
.tribute img { width:100%; display:block; max-height:510px; object-fit:cover; }
.tribute h2 { font-size:34px; font-weight:300; margin:0 0 42px; }
.tribute p { font-size:17px; line-height:1.5; font-weight:300; margin:0 0 20px; }
.photos-placeholder { background:#2f2f2f; padding:42px 24px 60px; color:#fff; text-align:center; }
.photos-placeholder p { opacity:.75; }
@media (max-width:760px) {
 .photo-heading h2 { font-size:36px; }
 .prenatal-grid { grid-template-columns:1fr; width:100%; }
 .prenatal-grid img { height:auto; max-height:420px; object-fit:contain; }
 .prenatal-third { grid-column:auto; width:100% !important; margin-top:0; }
 .family-section { padding-left:18px; padding-right:18px; }
 .carousel { width:100%; padding:0 36px; }
 .carousel-slide img { height:430px; }
 .carousel-arrow { width:38px; height:38px; font-size:23px; }
 .carousel-arrow.prev { left:0; } .carousel-arrow.next { right:0; }
 .tribute-wrap { width:100%; grid-template-columns:1fr; gap:28px; }
 .tribute h2 { font-size:30px; margin-bottom:25px; }
 .tribute p { font-size:16px; }
}

.timeline-carousel-section { border-bottom: 1px solid rgba(255,255,255,.08); }
.timeline-carousel-section .carousel-slide img { height: 560px; }
@media (max-width:760px) { .timeline-carousel-section .carousel-slide img { height: 420px; } }

.carousel:has(.carousel-slide:only-child) .carousel-arrow,
.carousel:has(.carousel-slide:only-child) .carousel-dots { display:none; }

/* Fotos usa o MESMO history-hero de Historia; muda somente a imagem. */
.photos-page .history-hero {
  background-image: url("imagens/fotos-capa.png");
}
