/* gonzalopediatra.com · estilos
   Paleta propia de Gonzalo (verde bosque + sol + arcilla) sobre papel cálido.
   Tipografías alojadas aquí (sin Google Fonts: RGPD). */
@font-face { font-family:"Source Serif 4"; src:url("/fonts/source-serif-4.woff2") format("woff2"); font-weight:200 900; font-display:swap; }
@font-face { font-family:"Manrope"; src:url("/fonts/manrope.woff2") format("woff2"); font-weight:200 800; font-display:swap; }

:root { --ink:#143b3d; --forest:#1d5351; --mint:#dcefe4; --paper:#f8f6f0; --sand:#f0eee6; --sun:#f5ca67; --clay:#c9543b; --muted:#566866; --line:rgba(20,59,61,.16); --serif:"Source Serif 4", Georgia, "Times New Roman", serif; --sans:"Manrope", ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; scroll-padding-top:5rem; }
body { margin:0; color:var(--ink); background:var(--paper); font-family:var(--sans); line-height:1.6; -webkit-font-smoothing:antialiased; }
img { max-width:100%; height:auto; display:block; }
a { color:inherit; text-decoration-thickness:1px; text-underline-offset:4px; }
.wrap { width:min(1120px, calc(100% - 40px)); margin:auto; }
.skip { position:absolute; left:-999px; top:0; z-index:99; background:#fff; padding:.6rem 1rem; }
.skip:focus { left:1rem; top:1rem; }
h1,h2,h3,p { margin-top:0; }
h1,h2 { font-family:var(--serif); font-weight:600; letter-spacing:-.035em; line-height:1.02; }
h1 { max-width:11ch; margin-bottom:1.4rem; font-size:clamp(3rem, 7vw, 6rem); }
h2 { font-size:clamp(2.1rem, 4.6vw, 3.8rem); margin-bottom:1.3rem; }
h3 { font-size:1.08rem; margin-bottom:.35rem; }
.eyebrow { display:inline-flex; align-items:center; gap:.55rem; margin:0 0 1rem; color:var(--forest); font-size:.74rem; font-weight:800; letter-spacing:.14em; text-transform:uppercase; }
.eyebrow::before { content:""; width:1.6rem; height:2px; background:var(--clay); }

/* Botones */
.button { display:inline-flex; align-items:center; justify-content:center; gap:.55rem; min-height:48px; padding:.75rem 1.2rem; border-radius:99px; font-size:.92rem; font-weight:800; text-decoration:none; border:1.5px solid transparent; transition:background .2s, color .2s, border-color .2s, transform .2s; }
.button:hover { transform:translateY(-1px); }
.button-primary { background:var(--sun); color:var(--ink); }
.button-primary:hover { background:#fff; }
.button-ghost { border-color:rgba(255,255,255,.4); color:#fff; }
.button-ghost:hover { background:#fff; color:var(--ink); }
.button-dark { background:var(--ink); color:#fff; }
.button-dark:hover { background:var(--forest); }
.button-line { border-color:var(--ink); color:var(--ink); }
.button-line:hover { background:var(--ink); color:#fff; }
.wa-ico { flex:none; }
.arrow-link { font-weight:800; text-decoration:none; border-bottom:2px solid var(--sun); padding-bottom:2px; }
.arrow-link:hover { border-color:var(--clay); }

/* Cabecera */
.site-header { position:absolute; z-index:5; width:100%; padding:1.2rem 0; color:#fff; }
.nav { display:flex; align-items:center; justify-content:space-between; gap:1rem; }
.brand { text-decoration:none; line-height:1.15; }
.brand strong { display:block; font-size:1.05rem; letter-spacing:-.02em; }
.brand small { display:block; color:#c5ddd1; font-size:.68rem; font-weight:700; letter-spacing:.1em; text-transform:uppercase; }
.nav-links { display:flex; align-items:center; gap:1.4rem; font-size:.9rem; font-weight:700; }
.nav-links a { text-decoration:none; }
.nav-links a:not(.button):hover { text-decoration:underline; }
.menu-cta { display:none; }
.nav-tools { display:flex; align-items:center; gap:.6rem; }
.nav-cta { min-height:42px; padding:.55rem 1rem; }
.menu-toggle { display:none; min-height:42px; padding:.5rem .95rem; border:1.5px solid rgba(255,255,255,.45); border-radius:99px; background:transparent; color:#fff; font:inherit; font-weight:800; font-size:.88rem; cursor:pointer; }

/* Hero */
.hero { position:relative; overflow:hidden; background:var(--ink); color:#fff; }
.hero::before { content:""; position:absolute; width:52vw; max-width:700px; aspect-ratio:1; border-radius:50%; background:var(--sun); right:-8vw; top:12%; }
.hero::after { content:""; position:absolute; width:30vw; max-width:410px; aspect-ratio:1; border-radius:50%; background:var(--clay); opacity:.9; right:25vw; bottom:-22vw; }
.hero-grid { min-height:720px; position:relative; z-index:1; display:grid; grid-template-columns:1.1fr .9fr; gap:2rem; align-items:center; }
.hero-copy { padding:8.5rem 0 4.5rem; }
.hero .eyebrow { color:#d7eadf; }
.hero .eyebrow::before { background:var(--sun); }
.intro { max-width:36rem; margin-bottom:2rem; font-size:clamp(1.05rem, 1.6vw, 1.25rem); color:#dce8e2; }
.hero-actions { display:flex; flex-wrap:wrap; gap:.75rem; }
.hero-note { margin-top:1.6rem; color:#b8cfc6; font-size:.82rem; font-weight:700; }
.hero-photo { position:relative; margin:7rem 0 0; justify-self:end; width:min(100%, 440px); }
.hero-photo img { width:100%; height:auto; aspect-ratio:1100/1375; object-fit:cover; border-radius:220px 220px 22px 22px; box-shadow:0 30px 60px rgba(4,25,26,.35); }
.photo-stamp { position:absolute; left:-1.6rem; bottom:2.2rem; max-width:13.5rem; padding:.95rem 1.05rem; transform:rotate(-4deg); background:#fff; color:var(--ink); box-shadow:0 15px 30px rgba(4,25,26,.25); font-size:.82rem; font-weight:700; line-height:1.35; }
.photo-stamp strong { display:block; margin-bottom:.25rem; color:var(--clay); font-family:var(--serif); font-size:1.45rem; line-height:1; }
.photo-stamp a { text-decoration:underline; }

/* Banda de datos */
.band { background:var(--mint); padding:1.6rem 0; }
.facts { display:grid; grid-template-columns:repeat(4,1fr); gap:1.5rem; }
.fact { display:flex; gap:.75rem; align-items:baseline; }
.fact strong { color:var(--clay); font-family:var(--serif); font-size:2.1rem; line-height:1; letter-spacing:-.04em; }
.fact span { font-size:.86rem; font-weight:700; line-height:1.28; }

section { padding:6.5rem 0; }

/* Perfil */
.about { display:grid; grid-template-columns:.85fr 1.15fr; gap:6vw; align-items:start; }
.about-photo img { border-radius:22px; width:100%; aspect-ratio:1100/2004; max-height:640px; object-fit:cover; object-position:50% 20%; }
.emphasis { color:var(--forest); font-family:var(--serif); font-size:1.6rem; line-height:1.2; }
.about-copy p { font-size:1.06rem; max-width:40rem; }
.values { display:grid; gap:0; margin-top:2rem; border-top:1px solid var(--line); }
.value { display:grid; grid-template-columns:3rem 1fr; gap:1rem; padding:1.1rem 0; border-bottom:1px solid var(--line); }
.value-no { color:var(--clay); font-family:var(--serif); font-size:1.4rem; font-weight:600; }
.value p { margin:0; color:var(--muted); font-size:.95rem; }

/* Trayectoria */
.timeline-section { background:var(--sand); }
.timeline-head { display:flex; align-items:end; justify-content:space-between; gap:2rem; margin-bottom:2.4rem; }
.timeline-head p { max-width:30rem; color:var(--muted); }
.timeline { border-top:1px solid var(--line); }
.entry { display:grid; grid-template-columns:170px 1fr 1.4fr; gap:2rem; padding:1.4rem 0; border-bottom:1px solid var(--line); }
.entry time { color:var(--clay); font-weight:800; font-size:.84rem; letter-spacing:.05em; }
.entry h3 { margin:0; }
.entry p { color:var(--muted); margin:0; font-size:.94rem; }
.credentials { display:grid; grid-template-columns:repeat(3,1fr); gap:1.1rem; margin-top:3rem; }
.credential { padding:1.4rem; border:1px solid var(--line); border-radius:1rem; background:#fff; }
.credential svg { width:1.6rem; height:1.6rem; margin-bottom:1.3rem; fill:var(--clay); }
.credential h3 { font-family:var(--serif); font-size:1.2rem; }
.credential p, .credential li { margin:0; color:var(--muted); font-size:.9rem; }
.credential ul { margin:0; padding-left:1.1rem; }

/* Divulgación */
.work { background:var(--forest); color:#fff; overflow:hidden; position:relative; }
.work::before { content:""; width:42rem; height:42rem; border-radius:50%; position:absolute; top:-27rem; right:-12rem; border:1px solid rgba(255,255,255,.25); box-shadow:0 0 0 50px rgba(255,255,255,.04), 0 0 0 100px rgba(255,255,255,.035); }
.work-grid { position:relative; display:grid; grid-template-columns:1fr 1fr; gap:6vw; align-items:start; }
.work .eyebrow { color:#cbe5d6; }
.work .eyebrow::before { background:var(--sun); }
.work-copy { color:#d9e8df; font-size:1.05rem; }
.work-copy a { color:#fff; font-weight:800; }
.work-photo { margin:2rem 0 0; max-width:360px; }
.work-photo img { border-radius:22px; aspect-ratio:3/4; object-fit:cover; object-position:70% 30%; width:100%; }
.work-photo figcaption { margin-top:.6rem; color:#b8cfc6; font-size:.8rem; }
.books { list-style:none; padding:0; margin:1.8rem 0 0; }
.books li { padding:1rem 0; border-top:1px solid rgba(255,255,255,.28); }
.books strong { display:block; color:#fff; }
.books span { font-size:.92rem; }
.press-title { margin:2.4rem 0 .6rem; color:var(--sun); font-size:.74rem; font-weight:800; letter-spacing:.14em; text-transform:uppercase; }
.press { list-style:none; padding:0; margin:0; display:grid; grid-template-columns:1fr 1fr; gap:.2rem 1.2rem; }
.press a { display:block; padding:.55rem 0; border-bottom:1px solid rgba(255,255,255,.18); text-decoration:none; font-size:.92rem; }
.press a:hover { color:var(--sun); }
.press b { color:#fff; }

/* ADÚO */
.aduo-card { display:grid; grid-template-columns:1.3fr .7fr; gap:3rem; padding:clamp(1.8rem, 4vw, 3.2rem); border-radius:28px; background:#fff; border:1px solid var(--line); box-shadow:0 20px 50px rgba(20,59,61,.08); }
.aduo-logo img { width:150px; height:auto; margin-bottom:1.6rem; }
.aduo-copy p { color:var(--muted); max-width:36rem; }
.aduo-links { display:flex; flex-wrap:wrap; gap:1rem 1.6rem; margin-top:1.6rem; }
.aduo-place { align-self:stretch; display:flex; flex-direction:column; align-items:flex-start; gap:.3rem; padding:1.6rem; border-radius:20px; background:var(--mint); }
.soon { display:inline-block; margin-bottom:.8rem; padding:.3rem .7rem; border-radius:99px; background:var(--sun); font-size:.72rem; font-weight:800; letter-spacing:.08em; text-transform:uppercase; }
.place-label { margin:0; color:var(--forest); font-size:.72rem; font-weight:800; letter-spacing:.12em; text-transform:uppercase; }
.place-addr { font-size:1.05rem; }
.place-venue { color:var(--muted); font-size:.9rem; margin-bottom:1.2rem; }
.aduo-place .button { margin-top:auto; }

/* Cierre / contacto */
.closing { padding:6rem 0; background:var(--sun); text-align:center; }
.closing h2 { max-width:15ch; margin:0 auto 1.2rem; }
.closing p { max-width:38rem; margin:0 auto 2rem; font-size:1.05rem; }
.closing .hero-actions { justify-content:center; }
.contact-note { margin-top:1.6rem !important; font-size:.86rem !important; }

footer { padding:2rem 0; background:var(--ink); color:#c7d8d1; font-size:.8rem; }
.footer-inner { display:flex; justify-content:space-between; gap:2rem; }
.footer-inner p { margin:0 0 .4rem; max-width:44rem; }
.footer-small { opacity:.75; }
.footer-links { display:flex; flex-wrap:wrap; gap:.6rem 1.2rem; align-content:flex-start; justify-content:flex-end; }
.footer-links a { color:#fff; font-weight:700; text-decoration:none; }
.footer-links a:hover { text-decoration:underline; }

.notfound { min-height:80vh; display:flex; flex-direction:column; justify-content:center; padding:4rem 0; }

@media (max-width:960px) {
  .facts { grid-template-columns:repeat(2,1fr); }
  .credentials { grid-template-columns:1fr; }
  .aduo-card { grid-template-columns:1fr; gap:2rem; }
}
@media (max-width:820px) {
  .wrap { width:min(100% - 32px, 1120px); }
  .site-header { padding:.9rem 0; }
  .nav-links { display:none; position:absolute; top:calc(100% + .2rem); left:16px; right:16px; flex-direction:column; align-items:stretch; gap:0; padding:.6rem 1rem 1rem; border-radius:18px; background:#fff; color:var(--ink); box-shadow:0 20px 40px rgba(4,25,26,.25); }
  .nav-links.is-open { display:flex; }
  .nav-links a:not(.button) { padding:.85rem .2rem; border-bottom:1px solid var(--line); }
  .nav-links .menu-cta { display:flex; margin-top:.9rem; }
  .nav { position:relative; }
  .nav-cta { display:none; }
  .menu-toggle { display:inline-flex; align-items:center; }
  .hero::before { width:90vw; right:-35vw; top:auto; bottom:170px; }
  .hero::after { width:55vw; right:30vw; bottom:-28vw; }
  .hero-grid { display:block; min-height:0; }
  .hero-copy { padding:7.5rem 0 2rem; }
  .hero-photo { margin:0 auto 3rem; width:min(78%, 360px); justify-self:center; }
  .photo-stamp { left:-1rem; bottom:1.4rem; font-size:.76rem; max-width:11.5rem; }
  .facts { grid-template-columns:1fr; gap:1rem; }
  section { padding:4.5rem 0; }
  .about, .work-grid { grid-template-columns:1fr; gap:2.2rem; }
  .about-photo img { max-height:460px; aspect-ratio:4/5; }
  .timeline-head { display:block; }
  .entry { grid-template-columns:1fr; gap:.35rem; }
  .press { grid-template-columns:1fr; }
  .work-photo { max-width:100%; }
  .work-photo img { aspect-ratio:4/3; }
  .closing { padding:4.5rem 0; }
  .footer-inner { flex-direction:column; }
  .footer-links { justify-content:flex-start; }
}
@media (prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } .button { transition:none; } .button:hover { transform:none; } }
