
:root {
  --ink:     #0f0f0f;
  --ink2:    #3d3d3d;
  --ink3:    #888;
  --paper:   #f9f8f5;
  --white:   #ffffff;
  --cream:   #f1efe8;
  --green:   #1b6b3a;
  --green2:  #2e9a56;
  --green-lt:#e7f3ec;
  --line:    rgba(15,15,15,.09);
  --line2:   rgba(15,15,15,.05);
}
*, *::before, *::after { margin:0; padding:0; box-sizing:border-box; }
html { scroll-behavior:smooth; }
body {
  font-family:'Epilogue', sans-serif;
  background:var(--paper);
  color:var(--ink);
  -webkit-font-smoothing:antialiased;
}
a { text-decoration:none; color:inherit; }

/* UTILS */
.tag {
  display:inline-flex; align-items:center; gap:8px;
  background:var(--green-lt); color:var(--green);
  font-size:11px; font-weight:600; letter-spacing:.12em; text-transform:uppercase;
  padding:5px 12px; border-radius:3px;
}
.tag-dot { width:5px; height:5px; background:var(--green2); border-radius:50%; flex-shrink:0; }
.section-label {
  font-size:11px; font-weight:600; letter-spacing:.14em; text-transform:uppercase;
  color:var(--ink3); margin-bottom:20px; display:flex; align-items:center; gap:10px;
}
.section-label::after { content:''; flex:1; height:1px; background:var(--line); }
.serif { font-family:'Playfair Display', serif; }

/* NAV */
nav {
  display:flex; justify-content:space-between; align-items:center;
  padding:18px 52px;
  background:rgba(249,248,245,.94);
  backdrop-filter:blur(16px);
  -webkit-backdrop-filter:blur(16px);
  border-bottom:1px solid var(--line);
  position:sticky; top:0; z-index:200;
}
.logo { font-family:'Playfair Display', serif; font-weight:900; font-size:19px; color:var(--ink); }
.logo span { color:var(--green); }
.nav-links { display:flex; gap:32px; list-style:none; }
.nav-links a { font-size:13px; font-weight:500; color:var(--ink3); transition:color .2s; }
.nav-links a:hover, .nav-links a.active { color:var(--ink); }
.btn-nav {
  background:var(--ink); color:var(--white);
  padding:10px 22px; border-radius:4px;
  font-size:12px; font-weight:600; letter-spacing:.03em;
  display:inline-flex; align-items:center; gap:7px;
  transition:background .2s;
}
.btn-nav:hover { background:var(--ink2); }
.btn-nav svg { width:12px; height:12px; stroke:currentColor; fill:none; stroke-width:2.5; }
.nav-ham { display:none; background:none; border:none; cursor:pointer; padding:4px; }
.nav-ham span { display:block; width:22px; height:2px; background:var(--ink); margin:5px 0; border-radius:2px; }
.mobile-menu {
  display:none; flex-direction:column;
  position:fixed; top:57px; left:0; right:0; bottom:0;
  background:var(--paper); z-index:190; padding:24px;
  border-top:1px solid var(--line); overflow-y:auto;
}
.mobile-menu.open { display:flex; }
.mobile-menu a { font-size:18px; font-weight:500; color:var(--ink); padding:14px 0; border-bottom:1px solid var(--line); }
.mobile-menu .btn-wp-m {
  margin-top:24px; background:var(--green); color:#fff;
  padding:16px; border-radius:6px; text-align:center;
  font-size:15px; font-weight:600; display:flex; align-items:center; justify-content:center; gap:10px; border-bottom:none;
}
.mobile-menu .btn-wp-m svg { width:18px; height:18px; fill:#fff; }

/* HERO */
.hero {
  max-width:1200px; margin:0 auto;
  padding:80px 52px 0;
  display:grid; grid-template-columns:1fr 400px;
  gap:56px; align-items:start;
}
.hero h1 {
  font-family:'Playfair Display', serif;
  font-size:70px; font-weight:900;
  line-height:.97; letter-spacing:-.04em;
  color:var(--ink); margin-bottom:26px; margin-top:20px;
}
.hero h1 i { font-style:italic; color:var(--green); }
.hero-desc { font-size:17px; font-weight:300; color:var(--ink2); line-height:1.75; max-width:460px; margin-bottom:34px; }
.hero-btns { display:flex; gap:12px; align-items:center; flex-wrap:wrap; margin-bottom:52px; }
.btn-green {
  background:var(--green); color:#fff;
  padding:15px 28px; border-radius:4px;
  font-size:14px; font-weight:600; letter-spacing:.02em;
  display:inline-flex; align-items:center; gap:9px;
  transition:background .2s, transform .15s;
}
.btn-green:hover { background:var(--green2); transform:translateY(-1px); }
.btn-green svg { width:16px; height:16px; fill:#fff; flex-shrink:0; }
.btn-ghost-dark {
  border:1.5px solid var(--line); color:var(--ink2);
  padding:14px 22px; border-radius:4px;
  font-size:13px; font-weight:500;
  display:inline-flex; align-items:center; gap:7px;
  transition:border-color .2s, color .2s;
}
.btn-ghost-dark:hover { border-color:var(--ink2); color:var(--ink); }

/* Hero card */
.hero-card {
  background:var(--white); border:1px solid var(--line); border-radius:10px; overflow:hidden; margin-top:12px;
}
.hc-top { background:var(--green); padding:28px; color:#fff; }
.hc-big { font-family:'Playfair Display', serif; font-size:56px; font-weight:900; letter-spacing:-.04em; line-height:1; margin-bottom:4px; }
.hc-sub { font-size:12px; font-weight:500; letter-spacing:.1em; text-transform:uppercase; opacity:.7; }
.hc-body { padding:22px 24px; }
.hc-row {
  display:flex; align-items:flex-start; gap:11px;
  padding:11px 0; border-bottom:1px solid var(--line2);
  font-size:13px; color:var(--ink2); font-weight:400; line-height:1.5;
}
.hc-row:last-child { border-bottom:none; padding-bottom:0; }
.hc-row:first-child { padding-top:0; }
.hc-ck {
  width:18px; height:18px; background:var(--green-lt); border-radius:4px;
  display:flex; align-items:center; justify-content:center; flex-shrink:0; margin-top:1px;
}
.hc-ck svg { width:10px; height:10px; stroke:var(--green); fill:none; stroke-width:3; }
.hc-row b { font-weight:600; color:var(--ink); display:block; }

/* METRICS BAND */
.metrics-band { border-top:1px solid var(--line); border-bottom:1px solid var(--line); background:var(--white); }
.metrics-inner {
  max-width:1200px; margin:0 auto; padding:0 52px;
  display:grid; grid-template-columns:repeat(4,1fr);
}
.met {
  padding:30px 0 30px 28px; border-right:1px solid var(--line);
}
.met:first-child { padding-left:0; }
.met:last-child { border-right:none; }
.met-num {
  font-family:'Playfair Display', serif;
  font-size:44px; font-weight:900; letter-spacing:-.04em; color:var(--ink); line-height:1; margin-bottom:4px;
}
.met-num em { font-style:normal; color:var(--green); }
.met-lbl { font-size:13px; color:var(--ink3); }
.met-detail { font-size:11px; color:var(--ink3); margin-top:2px; }

/* SECTION */
.section { max-width:1200px; margin:0 auto; padding:80px 52px; }
.section-head { margin-bottom:36px; }
.section-head h2 {
  font-family:'Playfair Display', serif;
  font-size:38px; font-weight:900; letter-spacing:-.03em; line-height:1.1; margin-bottom:10px;
}
.section-head h2 i { font-style:italic; color:var(--green); }
.section-head p { font-size:15px; color:var(--ink2); font-weight:300; max-width:480px; line-height:1.7; }

/* FEATS */
.feats-grid {
  display:grid; grid-template-columns:repeat(3,1fr); gap:2px;
  background:var(--line); border:1px solid var(--line); border-radius:10px; overflow:hidden;
}
.feat-card { background:var(--white); padding:34px 28px; transition:background .2s; }
.feat-card:hover { background:var(--paper); }
.feat-n { font-size:10px; font-weight:700; letter-spacing:.14em; text-transform:uppercase; color:var(--ink3); margin-bottom:18px; }
.feat-ico {
  width:42px; height:42px; background:var(--green-lt); border-radius:8px;
  display:flex; align-items:center; justify-content:center; margin-bottom:16px;
}
.feat-ico svg { width:20px; height:20px; stroke:var(--green); fill:none; stroke-width:1.8; }
.feat-card h3 { font-family:'Playfair Display', serif; font-size:19px; font-weight:700; color:var(--ink); margin-bottom:10px; line-height:1.2; }
.feat-card p { font-size:13px; color:var(--ink2); line-height:1.75; font-weight:300; }
.feat-card ul { margin-top:14px; padding:0; list-style:none; display:flex; flex-direction:column; gap:7px; }
.feat-card li { font-size:13px; color:var(--ink2); padding-left:14px; position:relative; line-height:1.5; }
.feat-card li::before { content:''; position:absolute; left:0; top:7px; width:5px; height:5px; background:var(--green2); border-radius:50%; }

/* SEO CONTENT */
.seo-content { display:grid; grid-template-columns:1.15fr .85fr; gap:52px; align-items:start; }
.seo-copy h2 { font-family:'Playfair Display', serif; font-size:38px; font-weight:900; letter-spacing:-.03em; line-height:1.1; margin-bottom:18px; }
.seo-copy h2 i { font-style:italic; color:var(--green); }
.seo-copy h3 { font-family:'Playfair Display', serif; font-size:22px; margin:28px 0 10px; }
.seo-copy p { font-size:14px; color:var(--ink2); line-height:1.85; font-weight:300; margin-bottom:14px; }
.seo-copy strong { color:var(--ink); font-weight:600; }
.seo-points { background:var(--white); border:1px solid var(--line); border-radius:10px; padding:28px; position:sticky; top:90px; }
.seo-points h3 { font-family:'Playfair Display', serif; font-size:20px; margin-bottom:16px; }
.seo-points ul { list-style:none; display:flex; flex-direction:column; gap:12px; }
.seo-points li { font-size:13px; color:var(--ink2); line-height:1.55; padding-left:20px; position:relative; }
.seo-points li::before { content:'✓'; position:absolute; left:0; color:var(--green); font-weight:700; }
.seo-links { display:flex; gap:10px; flex-wrap:wrap; margin-top:24px; }
.seo-links a { font-size:13px; font-weight:600; color:var(--green); border-bottom:1px solid rgba(27,107,58,.25); padding-bottom:2px; }

/* HOW */
.how-wrap { background:var(--cream); border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.how-inner { max-width:1200px; margin:0 auto; padding:80px 52px; }
.how-grid {
  display:grid; grid-template-columns:repeat(4,1fr); gap:36px; margin-top:36px; position:relative;
}
.how-grid::before {
  content:''; position:absolute;
  top:21px; left:calc(12.5% + 10px); right:calc(12.5% + 10px);
  height:1px; background:var(--line); z-index:0;
}
.how-step { text-align:center; position:relative; z-index:1; }
.how-num {
  width:42px; height:42px; border-radius:50%;
  background:var(--green); color:#fff;
  font-family:'Playfair Display', serif; font-size:18px; font-weight:900;
  display:flex; align-items:center; justify-content:center; margin:0 auto 16px;
}
.how-step h4 { font-family:'Playfair Display', serif; font-size:16px; font-weight:700; color:var(--ink); margin-bottom:8px; }
.how-step p { font-size:13px; color:var(--ink2); line-height:1.65; font-weight:300; }

/* WHO */
.who-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:14px; }
.who-card {
  background:var(--white); border:1px solid var(--line); border-radius:10px; padding:28px 24px;
  transition:border-color .2s, transform .2s;
}
.who-card:hover { border-color:var(--green2); transform:translateY(-3px); }
.who-e { font-size:26px; margin-bottom:12px; }
.who-card h4 { font-family:'Playfair Display', serif; font-size:16px; font-weight:700; color:var(--ink); margin-bottom:8px; }
.who-card p { font-size:13px; color:var(--ink2); line-height:1.7; font-weight:300; }
.campus-card-image {
  display:block; width:100%; aspect-ratio:1; object-fit:cover;
  margin-bottom:14px; border-radius:6px; background:var(--paper);
}
.campus-card-logo { object-fit:contain; padding:12px; }
.campus-card-placeholder {
  display:grid; place-items:center; background:var(--green-lt); color:var(--green);
  font-family:'Playfair Display',serif; font-size:clamp(48px, 8vw, 96px); font-weight:700;
}

/* TESTIMONIOS */
.testi-bg { background:var(--white); border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.testi-inner { max-width:1200px; margin:0 auto; padding:80px 52px; }
.testi-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:14px; margin-top:32px; }
.testi-card { background:var(--paper); border:1px solid var(--line); border-radius:10px; padding:26px; }
.testi-stars { color:#d97706; font-size:13px; margin-bottom:12px; letter-spacing:2px; }
.testi-card blockquote {
  font-size:14px; color:var(--ink2); line-height:1.75; font-weight:300; font-style:italic;
  margin-bottom:16px; border-left:2px solid var(--green-lt); padding-left:14px;
}
.testi-name { font-size:13px; font-weight:600; color:var(--ink); }
.testi-rol { font-size:11px; color:var(--ink3); margin-top:2px; }

/* FAQ */
.faq-bg { background:var(--cream); border-top:1px solid var(--line); }
.faq-inner { max-width:1200px; margin:0 auto; padding:80px 52px; }
.faq-grid { display:grid; grid-template-columns:1fr 1fr; gap:12px; margin-top:32px; }
.faq-item { border:1px solid var(--line); border-radius:8px; overflow:hidden; background:var(--white); }
.faq-q {
  width:100%; background:none; border:none; cursor:pointer;
  padding:18px 20px; display:flex; justify-content:space-between; align-items:center;
  text-align:left; gap:14px;
}
.faq-q span { font-size:14px; font-weight:600; color:var(--ink); line-height:1.4; }
.faq-ico {
  width:22px; height:22px; border-radius:50%; background:var(--cream);
  display:flex; align-items:center; justify-content:center; flex-shrink:0;
  transition:background .2s;
}
.faq-ico svg { width:11px; height:11px; stroke:var(--ink); fill:none; stroke-width:2.5; transition:transform .3s; }
.faq-item.open .faq-ico { background:var(--green-lt); }
.faq-item.open .faq-ico svg { transform:rotate(45deg); stroke:var(--green); }
.faq-a {
  max-height:0; overflow:hidden; transition:max-height .3s ease, padding .3s;
  font-size:13px; color:var(--ink2); line-height:1.75; font-weight:300; padding:0 20px;
}
.faq-item.open .faq-a { max-height:220px; padding:0 20px 18px; }

/* CTA */
.cta-wrap { max-width:1200px; margin:0 auto; padding:80px 52px; }
.cta-box {
  background:var(--ink); border-radius:12px;
  display:grid; grid-template-columns:1fr auto;
  gap:40px; align-items:center; padding:56px;
  position:relative; overflow:hidden;
}
.cta-box::before {
  content:''; position:absolute; right:-80px; top:-80px;
  width:360px; height:360px;
  background:radial-gradient(circle, rgba(27,107,58,.3), transparent 70%);
  pointer-events:none;
}
.cta-lbl { font-size:10px; font-weight:600; letter-spacing:.15em; text-transform:uppercase; color:var(--green2); margin-bottom:12px; }
.cta-box h2 {
  font-family:'Playfair Display', serif;
  font-size:36px; font-weight:900; letter-spacing:-.03em; line-height:1.05;
  color:#fff; margin-bottom:12px;
}
.cta-box h2 i { font-style:italic; color:#86efac; }
.cta-box p { font-size:15px; color:rgba(255,255,255,.55); line-height:1.7; font-weight:300; max-width:400px; }
.cta-right { display:flex; flex-direction:column; gap:10px; align-items:flex-end; min-width:230px; }
.btn-wp {
  background:#25d366; color:#fff;
  padding:15px 26px; border-radius:5px;
  font-size:14px; font-weight:600;
  display:inline-flex; align-items:center; gap:9px; white-space:nowrap;
  transition:background .2s, transform .15s;
}
.btn-wp:hover { background:#1db954; transform:translateY(-1px); }
.btn-wp svg { width:17px; height:17px; fill:#fff; flex-shrink:0; }
.cta-meta { font-size:12px; color:rgba(255,255,255,.38); text-align:right; line-height:1.6; }
.cta-meta strong { color:rgba(255,255,255,.65); font-weight:500; }

/* FOOTER */
footer { background:var(--white); border-top:1px solid var(--line); padding:40px 52px 28px; }
.footer-top {
  display:grid; grid-template-columns:1.6fr 1fr 1fr 1fr;
  gap:48px; padding-bottom:36px; border-bottom:1px solid var(--line); margin-bottom:24px;
}
.footer-brand .logo { font-size:17px; display:block; margin-bottom:10px; }
.footer-brand p { font-size:13px; color:var(--ink3); line-height:1.7; font-weight:300; max-width:240px; }
.fc h5 { font-size:10px; font-weight:700; letter-spacing:.13em; text-transform:uppercase; color:var(--ink); margin-bottom:14px; }
.fc ul { list-style:none; display:flex; flex-direction:column; gap:9px; }
.fc ul li a { font-size:13px; color:var(--ink3); transition:color .2s; }
.fc ul li a:hover { color:var(--ink); }
.footer-bottom { display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:10px; }
.footer-copy { font-size:12px; color:var(--ink3); }
.footer-legal { display:flex; gap:18px; }
.footer-legal a { font-size:12px; color:var(--ink3); transition:color .2s; }
.footer-legal a:hover { color:var(--ink); }

/* WP SVG path helper */
.wp-path1 { d:path("M17.472 14.382c-.297-.149-1.758-.867-2.03-.967-.273-.099-.471-.148-.67.15-.197.297-.767.966-.94 1.164-.173.199-.347.223-.644.075-.297-.15-1.255-.463-2.39-1.475-.883-.788-1.48-1.761-1.653-2.059-.173-.297-.018-.458.13-.606.134-.133.298-.347.446-.52.149-.174.198-.298.298-.497.099-.198.05-.371-.025-.52-.075-.149-.669-1.612-.916-2.207-.242-.579-.487-.5-.669-.51-.173-.008-.371-.01-.57-.01-.198 0-.52.074-.792.372-.272.297-1.04 1.016-1.04 2.479 0 1.462 1.065 2.875 1.213 3.074.149.198 2.096 3.2 5.077 4.487.709.306 1.262.489 1.694.625.712.227 1.36.195 1.871.118.571-.085 1.758-.719 2.006-1.413.248-.694.248-1.289.173-1.413-.074-.124-.272-.198-.57-.347z"); }

/* RESPONSIVE */
@media(max-width:1024px){
  .hero { grid-template-columns:1fr; padding:60px 28px 0; gap:36px; }
  .hero h1 { font-size:52px; }
  .hero-card { max-width:460px; }
  .metrics-inner { grid-template-columns:repeat(2,1fr); padding:0 28px; }
  .met { padding:22px 0 22px 20px; }
  .met:nth-child(2) { border-right:none; }
  .met:nth-child(3) { padding-left:0; }
  .section { padding:60px 28px; }
  .feats-grid { grid-template-columns:1fr 1fr; }
  .seo-content { grid-template-columns:1fr; gap:28px; }
  .seo-points { position:static; }
  .how-inner { padding:60px 28px; }
  .how-grid { grid-template-columns:repeat(2,1fr); }
  .how-grid::before { display:none; }
  .who-grid { grid-template-columns:1fr 1fr; }
  .testi-inner { padding:60px 28px; }
  .testi-grid { grid-template-columns:1fr 1fr; }
  .faq-inner { padding:60px 28px; }
  .cta-wrap { padding:60px 28px; }
  .cta-box { padding:40px 36px; }
  footer { padding:36px 28px 22px; }
  .footer-top { grid-template-columns:1fr 1fr; gap:28px; }
}
@media(max-width:768px){
  nav { padding:14px 20px; }
  .nav-links, .btn-nav { display:none; }
  .nav-ham { display:block; }
  .hero { padding:44px 20px 0; }
  .hero h1 { font-size:40px; }
  .hero-desc { font-size:15px; }
  .metrics-inner { padding:0 20px; }
  .met-num { font-size:36px; }
  .section { padding:52px 20px; }
  .feats-grid { grid-template-columns:1fr; }
  .how-grid { grid-template-columns:1fr 1fr; gap:24px; }
  .who-grid { grid-template-columns:1fr 1fr; }
  .testi-inner { padding:52px 20px; }
  .testi-grid { grid-template-columns:1fr; }
  .faq-inner { padding:52px 20px; }
  .faq-grid { grid-template-columns:1fr; }
  .cta-wrap { padding:52px 20px; }
  .cta-box { grid-template-columns:1fr; padding:32px 24px; }
  .cta-box h2 { font-size:28px; }
  .cta-right { align-items:stretch; }
  footer { padding:28px 20px 18px; }
  .footer-top { grid-template-columns:1fr; gap:24px; }
  .footer-bottom { flex-direction:column; align-items:flex-start; }
}
@media(max-width:480px){
  .hero h1 { font-size:34px; }
  .hero-btns { flex-direction:column; align-items:flex-start; }
  .btn-green, .btn-ghost-dark { width:100%; justify-content:center; }
  .metrics-inner { grid-template-columns:1fr 1fr; }
  .how-grid { grid-template-columns:1fr; }
  .who-grid { grid-template-columns:1fr; }
  .section-head h2 { font-size:30px; }
}
/* COBERTURA */
.coverage .section-head { margin-bottom:28px; }
.coverage .section-head p { max-width:620px; }
.coverage-grid {
  display:grid; grid-template-columns:repeat(4,minmax(0,1fr));
  gap:0 28px; list-style:none; padding:0; margin:0;
}
.coverage-grid li { min-width:0; border-bottom:1px solid var(--line); }
.coverage-grid a {
  display:flex; align-items:center; justify-content:space-between; gap:12px;
  min-height:66px; height:100%; padding:16px 4px;
  font-size:14px; font-weight:500; line-height:1.5; color:var(--ink2);
  transition:color .15s,background .15s;
}
.coverage-grid a::after { content:'↗'; flex-shrink:0; font-size:16px; color:var(--ink3); }
.coverage-grid a:hover, .coverage-grid a[aria-current="page"] { color:var(--green); background:var(--green-lt); }
.coverage-grid a:hover::after, .coverage-grid a[aria-current="page"]::after { color:var(--green); }
.coverage-grid a:focus-visible { outline:2px solid var(--green); outline-offset:3px; border-radius:2px; }
@media(max-width:1024px) { .coverage-grid { grid-template-columns:repeat(3,minmax(0,1fr)); gap:0 24px; } }
@media(max-width:768px) { .coverage-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:0 20px; } }
@media(max-width:380px) { .coverage-grid { grid-template-columns:1fr; } }

.btn-wp.whatsapp-float {
  position:fixed;
  right:calc(16px + env(safe-area-inset-right, 0px));
  bottom:calc(16px + env(safe-area-inset-bottom, 0px));
  z-index:180;
  width:54px;
  height:54px;
  padding:0;
  border-radius:50%;
  justify-content:center;
  box-shadow:0 3px 12px rgba(0,0,0,.2);
}
.whatsapp-float svg { width:25px; height:25px; }
