:root{
  --ink: #443B34;
  --paper: #FBF7EF;
  --paper-soft: #FEFDFA;
  --thesis: #6FA39D;
  --thesis-soft: #EAF2F1;
  --antithesis: #D89A78;
  --antithesis-soft: #F8ECE4;
  --synthesis: #E0B75D;
  --thesis-deep: #3E7A73;
  --line: rgba(68,59,52,0.12);
  --muted: rgba(68,59,52,0.58);
}
*{ box-sizing: border-box; }
html{ scroll-behavior: smooth; }
body{
  margin:0; background: var(--paper); color: var(--ink);
  font-family: 'Karla', sans-serif; font-weight: 400; line-height: 1.6;
}
h1,h2,h3, .display{ font-family: 'Fraunces', serif; font-weight: 500; letter-spacing: -0.01em; margin: 0; }
.eyebrow{ font-family:'Karla',sans-serif; font-size: 0.72rem; letter-spacing: 0.16em; text-transform: uppercase; color: var(--muted); font-weight: 600; }
a{ color: inherit; }
section{ padding: 5.5rem 1.5rem; }
.wrap{ max-width: 980px; margin: 0 auto; }
.wrap-narrow{ max-width: 620px; margin: 0 auto; }

/* NAV */
nav{ display:flex; align-items:center; justify-content: space-between; max-width: 980px; margin: 0 auto; padding: 2rem 1.5rem 0; }
.nav-mark{ display:flex; align-items:center; gap:0.6rem; }
.nav-mark span{ font-family:'Fraunces',serif; font-weight:600; font-size:1.05rem; }
.nav-links{ display:flex; gap:2rem; font-size:0.9rem; color:var(--muted); }
.nav-links a{ text-decoration:none; }
.nav-links a:hover, .nav-links a.active{ color:var(--ink); }
.nav-links a.active{ font-weight: 700; }
@media (max-width:640px){ .nav-links{ gap:1.1rem; font-size:0.8rem; } }

/* PAGE HEADER (páginas internas) */
.page-header{ text-align:center; padding: 4rem 1.5rem 1rem; }
.page-header .eyebrow{ margin-bottom: 0.8rem; display:block; }
.page-header h1{ font-size: clamp(1.9rem, 4vw, 2.6rem); }

/* HERO (home) */
.hero{ padding: 4.5rem 1.5rem 3rem; text-align:center; position: relative; }
.mark-hero{ width: 132px; height: auto; margin: 0 auto 2.4rem; display:block; }
.hero h1{ font-size: clamp(2.1rem, 5vw, 3.4rem); line-height: 1.12; max-width: 780px; margin: 0 auto; }
.hero h1 em{ font-style: italic; color: var(--thesis); }
.hero p.lede{ max-width: 560px; margin: 1.6rem auto 0; color: var(--muted); font-size: 1.08rem; }

/* TEASER LINKS (home) */
.teasers{ display:grid; grid-template-columns: repeat(3, 1fr); gap: 1.5rem; max-width: 980px; margin: 3rem auto 0; padding: 0 1.5rem; }
@media (max-width: 780px){ .teasers{ grid-template-columns: 1fr; } }
.teaser-card{
  display:block; text-decoration:none; background: var(--paper-soft); border: 1px solid var(--line);
  border-radius: 14px; padding: 1.8rem; transition: transform 0.15s ease;
}
.teaser-card:hover{ transform: translateY(-2px); }
.teaser-card .num{ font-family:'Fraunces',serif; font-style:italic; color: var(--muted); font-size:0.85rem; display:block; margin-bottom:0.6rem; }
.teaser-card h3{ font-size: 1.1rem; margin-bottom: 0.5rem; }
.teaser-card p{ color: var(--muted); font-size: 0.9rem; margin:0; }
.teaser-card .go{ display:inline-block; margin-top:0.9rem; font-size:0.82rem; font-weight:700; color: var(--thesis-deep); }

/* ENFOQUE */
.enfoque{ background: var(--paper-soft); border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.enfoque-grid{ display:grid; grid-template-columns: 1fr 1fr; gap: 3rem; align-items: center; }
@media (max-width: 780px){ .enfoque-grid{ grid-template-columns: 1fr; } }
.enfoque h2{ font-size: 1.9rem; margin-bottom: 1.1rem; }
.enfoque p{ color: var(--muted); font-size: 1.02rem; }
.polos{ display:flex; flex-direction:column; gap: 0.9rem; }
.polo{ display:flex; gap: 1rem; align-items:flex-start; padding: 1.1rem 1.3rem; border-radius: 10px; background: var(--paper); border: 1px solid var(--line); }
.polo .tag{ font-family:'Fraunces',serif; font-style:italic; font-size:1.4rem; width: 2.2rem; flex-shrink:0; }
.polo.t .tag{ color: var(--thesis); }
.polo.a .tag{ color: var(--antithesis); }
.polo.s .tag{ color: var(--synthesis); }
.polo strong{ display:block; font-family:'Karla',sans-serif; font-weight:700; font-size:0.95rem;}
.polo p{ margin: 0.15rem 0 0; font-size:0.92rem; }

/* SERVICIOS */
.servicios h2{ text-align:center; font-size: 2rem; margin-bottom:0.6rem; }
.servicios > .wrap > p{ text-align:center; color:var(--muted); max-width:560px; margin: 0 auto 3rem; }
.servicios-grid{ display:grid; grid-template-columns: repeat(3, 1fr); gap: 1.5rem; }
@media (max-width: 820px){ .servicios-grid{ grid-template-columns: 1fr; } }
.servicio-card{ background: var(--paper-soft); border: 1px solid var(--line); border-radius: 14px; padding: 2rem 1.6rem; position: relative; overflow: hidden; }
.servicio-card::before{ content:''; position:absolute; top:0; left:0; right:0; height: 4px; }
.servicio-card.s1::before{ background: var(--thesis); }
.servicio-card.s2::before{ background: var(--synthesis); }
.servicio-card.s3::before{ background: var(--antithesis); }
.servicio-card h3{ font-size: 1.25rem; margin-bottom: 0.7rem; }
.servicio-card p{ color: var(--muted); font-size: 0.95rem; }
.servicio-num{ font-family:'Fraunces',serif; font-style:italic; color: var(--muted); font-size:0.85rem; margin-bottom: 0.8rem; display:block; }

/* EQUIPO */
.equipo{ background: var(--paper-soft); border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.equipo h2{ text-align:center; font-size:2rem; margin-bottom:0.6rem; }
.equipo > .wrap > p.sub{ text-align:center; color:var(--muted); max-width:560px; margin:0 auto 3rem; }
.equipo-grid{ display:grid; grid-template-columns: 1fr 1fr; gap: 1.5rem; }
@media (max-width: 780px){ .equipo-grid{ grid-template-columns: 1fr; } }
.persona{ background: var(--paper); border: 1px solid var(--line); border-radius: 14px; padding: 2rem; }
.persona .avatar{ width:52px; height:52px; border-radius:50%; margin-bottom:1.1rem; }
.persona h3{ font-size: 1.15rem; margin-bottom: 0.4rem; }
.persona p{ color: var(--muted); font-size: 0.92rem; }

/* CTA */
.cta{ text-align:center; background: var(--thesis-deep); color: var(--paper-soft); border-radius: 20px; max-width: 980px; margin: 0 auto; padding: 3.5rem 2rem; }
.cta h2{ color: var(--paper-soft); font-size: 1.8rem; margin-bottom:0.8rem; }
.cta p{ color: rgba(253,250,244,0.78); max-width: 480px; margin: 0 auto 1.6rem; }
.cta a.cta-btn{
  display:inline-block; background: var(--paper-soft); color: var(--thesis-deep); text-decoration:none;
  font-weight:700; font-size:0.9rem; padding: 0.8rem 1.7rem; border-radius: 8px;
}

/* CONTACTO */
.contacto{ background: var(--paper-soft); border-top: 1px solid var(--line); }
.contacto h2{ text-align:center; font-size: 2rem; margin-bottom: 0.6rem; }
.contacto > .wrap > p.sub{ text-align:center; color:var(--muted); max-width:520px; margin:0 auto 2.8rem; }
.contacto-grid{ display:grid; grid-template-columns: 1fr 1fr; gap: 3rem; align-items:flex-start; }
@media (max-width: 780px){ .contacto-grid{ grid-template-columns: 1fr; } }
.info-list{ display:flex; flex-direction:column; gap:1.3rem; }
.info-item{ display:flex; gap: 0.9rem; align-items:flex-start; }
.info-item .dot{ width:8px; height:8px; border-radius:50%; margin-top:0.45rem; flex-shrink:0; }
.info-item strong{ display:block; font-size:0.95rem; }
.info-item span{ color: var(--muted); font-size:0.92rem; }

form{ display:flex; flex-direction:column; gap: 1rem; }
label{ font-size:0.82rem; font-weight:700; margin-bottom:0.3rem; display:block; }
input, textarea{
  width:100%; padding: 0.75rem 0.9rem; border-radius: 8px; border: 1px solid var(--line);
  background: var(--paper); font-family:'Karla',sans-serif; font-size: 0.95rem; color: var(--ink);
}
input:focus, textarea:focus{ outline: 2px solid var(--thesis); outline-offset: 1px; }
textarea{ resize: vertical; min-height: 110px; }
button[type="submit"]{
  margin-top:0.4rem; align-self:flex-start; background: var(--thesis-deep); color: var(--paper-soft);
  border:none; padding: 0.85rem 1.6rem; border-radius: 8px; font-family:'Karla',sans-serif;
  font-weight:700; font-size:0.92rem; cursor:pointer;
}
button[type="submit"]:hover{ opacity:0.9; }

footer{ text-align:center; padding: 3rem 1.5rem 3.5rem; color: var(--muted); font-size: 0.85rem; }
footer .foot-brand{ font-family:'Fraunces',serif; font-size:1rem; color: var(--ink); margin-bottom:0.4rem; }
footer a{ text-decoration: none; }
