:root{
  --teal-900:#0E5E73; --teal-700:#136E85; --teal-600:#1E8AA3; --teal-500:#2CA8C4;
  --lime-500:#A6CE39;
  --purple-500:#9B6BB5; --purple-700:#7A4E92;
  --cream-50:#FBFAF6; --cream-100:#F3EFE6;
  --ink-900:#1F2937; --ink-600:#5B6672;
}
*{box-sizing:border-box; margin:0; padding:0;}
html{scroll-behavior:smooth;}
body{font-family:'Plus Jakarta Sans', sans-serif; background:var(--cream-50); color:var(--ink-900); line-height:1.55;}
img{max-width:100%; display:block;}
a{color:inherit;}
.section-label{color:var(--teal-600); font-weight:700; font-size:14px; margin-bottom:10px; letter-spacing:.02em;}
.section-label.center{text-align:center;}
.center{text-align:center;}

/* Header */
#site-header{position:sticky; top:0; background:rgba(251,250,246,.94); backdrop-filter:blur(6px); z-index:50; border-bottom:1px solid var(--cream-100);}
.nav-wrap{display:flex; align-items:center; justify-content:space-between; padding:18px 6%; max-width:1300px; margin:0 auto;}
.logo{display:flex; align-items:center; gap:10px; font-weight:800; font-size:20px; color:var(--purple-700); text-decoration:none;}
.logo-mark{width:34px; height:34px; border-radius:50% 50% 50% 4px; background:linear-gradient(135deg, var(--teal-500), var(--teal-900)); display:flex; align-items:center; justify-content:center; color:#fff; font-size:16px;}
nav#mainNav{display:flex; gap:30px;}
nav#mainNav a{color:var(--ink-600); text-decoration:none; font-weight:600; font-size:14.5px;}
nav#mainNav a:hover{color:var(--teal-600);}
.cta-btn{background:var(--purple-500); color:#fff; padding:10px 22px; border-radius:24px; font-weight:700; font-size:14px; text-decoration:none; white-space:nowrap;}
.menu-toggle{display:none; background:none; border:none; font-size:24px; cursor:pointer; color:var(--ink-900);}

/* Hero */
.hero{display:grid; grid-template-columns:1.1fr .9fr; gap:40px; padding:70px 6% 90px; align-items:center; max-width:1300px; margin:0 auto;}
.hero-eyebrow{color:var(--teal-600); font-weight:700; font-size:14.5px;}
.hero h1{font-family:'Fraunces', serif; font-weight:600; font-size:clamp(32px,4.2vw,52px); line-height:1.1; margin:14px 0 20px;}
.hero h1 em{color:var(--purple-500); font-style:italic;}
.hero p{color:var(--ink-600); font-size:17px; max-width:460px; margin-bottom:30px;}
.hero-actions{display:flex; gap:16px; flex-wrap:wrap;}
.btn-primary{background:var(--teal-600); color:#fff; padding:14px 26px; border-radius:26px; text-decoration:none; font-weight:700;}
.btn-ghost{border:2px solid var(--ink-900); color:var(--ink-900); padding:12px 24px; border-radius:26px; text-decoration:none; font-weight:700;}
.hero-photo{display:flex; justify-content:center;}
.blob-frame{width:320px; height:380px; border-radius:48% 52% 42% 58% / 55% 45% 55% 45%; overflow:hidden; box-shadow:0 30px 50px rgba(14,94,115,.25);}
.blob-frame img{width:100%; height:100%; object-fit:cover;}

/* About */
.about{padding:70px 6%; background:#fff; max-width:1300px; margin:0 auto;}
.about-intro h2{font-family:'Fraunces', serif; font-size:34px; font-weight:600; margin-bottom:18px;}
.about-intro p{color:var(--ink-600); font-size:15.5px; max-width:760px; margin-bottom:20px;}
.badges{display:flex; flex-wrap:wrap; gap:10px; margin-bottom:40px;}
.badge{background:var(--cream-100); padding:8px 16px; border-radius:20px; font-size:13.5px; font-weight:600; color:var(--purple-700);}
.cert-strip{display:grid; grid-template-columns:repeat(4,1fr); gap:20px;}
.cert-strip figure{margin:0;}
.cert-strip img{border-radius:14px; border:1px solid var(--cream-100); box-shadow:0 10px 24px rgba(14,94,115,.08);}
.cert-strip figcaption{margin-top:10px; font-size:13px; color:var(--ink-600); text-align:center;}

/* Personal */
.personal{padding:70px 6%; max-width:1300px; margin:0 auto;}
.personal h2{font-family:'Fraunces', serif; font-size:32px; font-weight:600; margin-bottom:36px;}
.personal-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:22px;}
.personal-card{background:#fff; border:1.5px solid var(--cream-100); border-radius:18px; padding:26px; text-align:center;}
.p-icon{font-size:34px; margin-bottom:12px;}
.personal-card h3{font-size:17px; margin-bottom:10px;}
.personal-card p{color:var(--ink-600); font-size:14px;}
.sudadera-block{margin-top:44px; display:grid; grid-template-columns:220px 1fr; gap:26px; align-items:center; background:var(--teal-900); color:#fff; border-radius:22px; padding:26px 34px;}
.sudadera-block img{border-radius:14px;}
.sudadera-block p{font-size:15px; opacity:.92; font-style:italic;}

/* Gallery */
.gallery-sec{padding:70px 6%; max-width:1300px; margin:0 auto;}
.gallery-sec h2{font-family:'Fraunces', serif; font-size:32px; font-weight:600; margin-bottom:30px;}
.gallery{display:grid; grid-template-columns:repeat(3,1fr); gap:18px;}
.gallery img{border-radius:16px; aspect-ratio:1; object-fit:cover;}

/* Huellitas */
.huellitas-sec{padding:70px 6%; background:var(--cream-100); }
.huellitas-sec h2{font-family:'Fraunces', serif; font-size:32px; font-weight:600; margin:10px 0 14px;}
.intro-p{color:var(--ink-600); max-width:560px; margin:0 auto 34px;}
.huellitas-grid{display:grid; gap:18px; max-width:1200px; margin:0 auto;}
.huellitas-grid img{border-radius:16px; box-shadow:0 12px 26px rgba(14,94,115,.1);}

/* Contact */
.contact-sec{padding:70px 6% 90px; max-width:1300px; margin:0 auto;}
.contact{background:var(--teal-900); color:#fff; border-radius:28px; padding:50px; display:grid; grid-template-columns:1fr 1fr; gap:40px;}
.contact h2{font-family:'Fraunces', serif; font-size:30px; font-weight:600; margin-bottom:10px;}
.contact p.lead{opacity:.85; margin-bottom:24px; font-size:15px;}
.contact-item{display:flex; gap:14px; margin-bottom:16px; font-size:14.5px; align-items:flex-start;}
.contact-item .ic{width:34px; height:34px; border-radius:50%; background:rgba(255,255,255,.15); display:flex; align-items:center; justify-content:center; flex-shrink:0;}
.emergency-box{background:rgba(217,83,79,.16); border:1.5px solid rgba(217,83,79,.55); border-radius:14px; padding:18px 20px; margin:22px 0 6px;}
.emergency-title{font-weight:800; font-size:15px; margin-bottom:6px;}
.emergency-number{font-family:'Fraunces', serif; font-size:24px; font-weight:600; margin-bottom:10px; letter-spacing:.02em;}
.emergency-box p{font-size:13px; opacity:.92; line-height:1.5;}

.map-embed{border-radius:18px; overflow:hidden; min-height:320px;}
.map-embed iframe{width:100%; height:100%; min-height:320px; border:0;}

footer{text-align:center; padding:26px; color:var(--ink-600); font-size:13px;}

/* Responsive */
@media (max-width: 860px){
  nav#mainNav{position:fixed; top:66px; left:0; right:0; background:var(--cream-50); flex-direction:column; padding:20px 6%; gap:16px; display:none; border-bottom:1px solid var(--cream-100);}
  nav#mainNav.open{display:flex;}
  .menu-toggle{display:block;}
  .hero{grid-template-columns:1fr; text-align:center;}
  .hero p{margin-left:auto; margin-right:auto;}
  .hero-actions{justify-content:center;}
  .cert-strip{grid-template-columns:repeat(2,1fr);}
  .personal-grid, .gallery{grid-template-columns:1fr;}
  .sudadera-block, .contact{grid-template-columns:1fr;}
}
