:root{
  --bg: #EEF1EE;
  --paper: #F5F6F3;
  --ink: #10222B;
  --ink-soft: #3C4D53;
  --navy: #0E2733;
  --navy-2: #123244;
  --accent: #B8823D;
  --accent-soft: #E4CFA7;
  --teal: #4C7A6E;
  --line: #CBD2CC;
  --line-dark: #2A424D;
  --leaf-green: #4C8C3C;
  --leaf-green-dark: #1F5C33;
  --leaf-blue: #2678A8;
  --leaf-blue-light: #5FA9D8;
}
*{box-sizing:border-box; margin:0; padding:0;}
html{scroll-behavior:smooth;}
body{
  background:var(--bg);
  color:var(--ink);
  font-family:'Inter', sans-serif;
  line-height:1.6;
  text-align:justify;
  text-justify:inter-word;
  -webkit-font-smoothing:antialiased;
}
h1{
  font-family:'Newsreader', serif;
  font-weight:500;
  letter-spacing:-0.01em;
  color:var(--ink);
  text-align:left;
}
h2,h3{
  font-family:'Fraunces', serif;
  font-weight:560;
  letter-spacing:-0.01em;
  color:var(--ink);
  text-align:left;
}
h2{ font-size:clamp(2.1rem, 3.8vw, 3rem); }
h3{ font-size:clamp(1.35rem, 2.2vw, 1.7rem); }
.eyebrow, nav.links, .brand, .btn, .hero-stats, .footer-row, .field label, .idx, .avatar, .avatar-note{
  text-align:left;
}
.eyebrow{
  font-family:'IBM Plex Mono', monospace;
  font-size:0.72rem;
  letter-spacing:0.14em;
  text-transform:uppercase;
  color:var(--accent);
  display:flex;
  align-items:center;
  gap:0.6rem;
}
.eyebrow::before{
  content:'';
  width:22px; height:1px;
  background:var(--accent);
  display:inline-block;
}
a{color:inherit; text-decoration:none;}
img{max-width:100%; display:block;}
.wrap{max-width:1120px; margin:0 auto; padding:0 24px;}
.btn{
  font-family:'IBM Plex Mono', monospace;
  font-size:0.78rem;
  letter-spacing:0.04em;
  text-transform:uppercase;
  padding:14px 26px;
  border:1px solid var(--ink);
  display:inline-block;
  transition:background .2s ease, color .2s ease, border-color .2s ease;
}
.btn-solid{ background:var(--ink); color:var(--paper); }
.btn-solid:hover{ background:var(--accent); border-color:var(--accent); }
.btn-ghost{ border-color:var(--line-dark); color:var(--paper); }
.btn-ghost:hover{ border-color:var(--paper); }
.btn-ghost-light{ border-color:var(--ink); color:var(--ink); }
.btn-ghost-light:hover{ background:var(--ink); color:var(--paper); }

.contour{ position:absolute; inset:0; pointer-events:none; opacity:0.35; }

/* onda decorativa de marca */
.wave-divider{ width:100%; height:56px; object-fit:cover; display:block; }
.wave-divider.flip{ transform:scaleY(-1); }

/* header */
header{
  position:sticky; top:0; z-index:50;
  background:rgba(238,241,238,0.92);
  backdrop-filter:blur(6px);
  border-bottom:1px solid var(--line);
}
.nav{ display:grid; grid-template-columns:auto 1fr auto; align-items:center; height:84px; column-gap:16px; }
.brand{ display:flex; flex-direction:row; align-items:center; gap:12px; font-family:'Newsreader', serif; font-size:1.15rem; font-weight:600; text-align:left; justify-self:start; }
.brand-mark{ width:44px; height:44px; position:relative; flex-shrink:0; }
.brand-mark svg{width:100%; height:100%;}
.brand small{
  display:block; font-family:'IBM Plex Mono', monospace;
  font-size:0.6rem; letter-spacing:0.1em; color:var(--ink-soft);
  text-transform:uppercase; font-weight:400; margin-top:1px;
}
nav.links{display:flex; gap:34px; align-items:center; justify-self:center;}
nav.links a{ font-size:0.86rem; color:var(--ink-soft); position:relative; }
nav.links a:hover, nav.links a.active{color:var(--ink);}
nav.links a.active{ border-bottom:1px solid var(--accent); padding-bottom:4px; }
.nav-right{ display:flex; align-items:center; gap:16px; justify-self:end; }
.nav-cta{display:none;}
@media(min-width:860px){ .nav-cta{display:inline-block;} }
.menu-toggle{ display:flex; flex-direction:column; gap:5px; cursor:pointer; background:none; border:none; }
.menu-toggle span{width:24px; height:1px; background:var(--ink);}
@media(min-width:860px){ .menu-toggle{display:none;} }
@media(max-width:859px){ nav.links{display:none;} .nav{grid-template-columns:auto 1fr auto;} }

/* page hero (small, used on inner pages) */
.page-hero{
  position:relative; background:var(--navy); color:var(--paper);
  overflow:hidden; padding:70px 0 60px; text-align:center;
}
.page-hero .wrap{position:relative; z-index:2; display:flex; flex-direction:column; align-items:center;}
.page-hero .eyebrow{ justify-content:center; }
.page-hero .eyebrow::before{ display:none; }
.page-hero h1{
  color:var(--paper); font-size:clamp(2.1rem, 4.4vw, 3.2rem);
  line-height:1.08; max-width:760px; margin:18px 0 16px; text-align:center;
}
.page-hero p.lead{ max-width:560px; font-size:1rem; color:#C7D3D3; text-align:center; }

/* hero (home, large) */
.hero{ position:relative; background:var(--navy); color:var(--paper); overflow:hidden; padding:110px 0 90px; text-align:center; }
.hero .wrap{position:relative; z-index:2; display:flex; flex-direction:column; align-items:center;}
.hero h1{ color:var(--paper); font-size:clamp(2.4rem, 5.4vw, 4.1rem); line-height:1.06; max-width:820px; margin:22px 0 26px; text-align:center; }
.hero h1 em{ font-style:italic; color:var(--accent-soft); }
.hero .eyebrow{ justify-content:center; }
.hero .eyebrow::before{ display:none; }
.hero p.lead{ max-width:560px; font-size:1.05rem; color:#C7D3D3; margin-bottom:40px; text-align:center; }
.hero-actions{display:flex; gap:16px; flex-wrap:wrap; margin-bottom:64px; justify-content:center;}
.hero-stats{ display:grid; grid-template-columns:repeat(3,1fr); border-top:1px solid var(--line-dark); max-width:640px; text-align:center; }
.hero-stats div{padding:20px 20px 0 20px;}
.hero-stats .num{ font-family:'Newsreader', serif; font-size:1.9rem; color:var(--accent-soft); }
.hero-stats .cap{ font-family:'IBM Plex Mono', monospace; font-size:0.68rem; letter-spacing:0.06em; text-transform:uppercase; color:#8FA3A3; margin-top:6px; }

/* sections */
section{padding:96px 0;}
section.tight{padding:72px 0;}
.section-head{ display:flex; flex-direction:column; align-items:center; text-align:center; gap:14px; margin-bottom:56px; }
.section-head h2{font-size:clamp(1.9rem,3.2vw,2.6rem); position:relative; padding-top:14px; text-align:center;}
.section-head h2::before{
  content:''; position:absolute; top:0; left:50%; transform:translateX(-50%); width:46px; height:3px;
  background:linear-gradient(90deg, var(--leaf-green), var(--leaf-blue));
}
.section-head p{max-width:420px; color:var(--ink-soft); font-size:0.95rem; text-align:center;}

/* contexto */
.contexto{ display:grid; grid-template-columns:1fr 1fr; gap:64px; align-items:start; position:relative; }
#contexto{ position:relative; overflow:hidden; }
.bg-watermark{
  position:absolute; right:-60px; bottom:-40px; width:480px; height:auto;
  opacity:0.08; pointer-events:none; z-index:0;
}
@media(max-width:800px){ .contexto{grid-template-columns:1fr;} }
.contexto p{color:var(--ink-soft); margin-bottom:16px; font-size:1rem;}
.contexto .callout{
  font-family:'Newsreader', serif; font-style:italic; font-size:1.25rem;
  color:var(--ink); border-left:2px solid var(--accent); padding-left:20px; margin-top:24px;
}

/* servicios */
.services-grid{ display:grid; grid-template-columns:repeat(3, 1fr); gap:1px; background:var(--line); border:1px solid var(--line); }
@media(max-width:900px){ .services-grid{grid-template-columns:repeat(2,1fr);} }
@media(max-width:560px){ .services-grid{grid-template-columns:1fr;} }
.service-card{ background:var(--paper); padding:28px; display:flex; flex-direction:column; border-top:3px solid var(--accent); }
.service-card:nth-child(3n+2){ border-top-color:var(--leaf-green); }
.service-card:nth-child(3n+3){ border-top-color:var(--leaf-blue); }
.service-card .idx{ font-family:'IBM Plex Mono', monospace; font-size:0.72rem; color:var(--accent); margin-bottom:18px; }
.service-card:nth-child(3n+2) .idx{ color:var(--leaf-green); }
.service-card:nth-child(3n+3) .idx{ color:var(--leaf-blue); }
.service-card h3{font-size:1.15rem; margin-bottom:12px; font-weight:600;}
.service-card ul{list-style:none; font-size:0.9rem; color:var(--ink-soft);}
.service-card li{position:relative; padding-left:16px; margin-bottom:8px;}
.service-card li::before{ content:'—'; position:absolute; left:0; color:var(--teal); }

/* about */
.about{
  background:linear-gradient(135deg, rgba(76,140,60,0.10), rgba(38,120,168,0.10)), var(--paper);
  border-top:1px solid var(--line); border-bottom:1px solid var(--line);
}
.about-grid{display:grid; grid-template-columns:1fr 1fr; gap:64px;}
@media(max-width:800px){ .about-grid{grid-template-columns:1fr;} }
.mv-block{margin-bottom:36px;}
.mv-block h3{font-size:1.3rem; margin-bottom:10px;}
.mv-block p{color:var(--ink-soft);}
.about-copy p{color:var(--ink-soft); margin-bottom:16px;}

/* equipo */
.team-intro{max-width:640px; margin-bottom:56px;}
.team-intro p{color:var(--ink-soft); font-size:1.02rem;}

/* imágenes editoriales */
.feature-img{
  width:100%; height:340px; object-fit:cover; border:1px solid var(--line);
}
.feature-img.dark{ border-color:var(--line-dark); }
.img-caption{
  font-family:'IBM Plex Mono', monospace; font-size:0.68rem; letter-spacing:0.05em;
  text-transform:uppercase; color:var(--ink-soft); margin-top:10px; text-align:left;
}
.cap-grid{display:grid; grid-template-columns:repeat(2,1fr); gap:2px; background:var(--line-dark);}
@media(max-width:760px){ .cap-grid{grid-template-columns:1fr;} }
.cap-card{background:var(--navy); color:#C7D3D3; padding:30px 28px;}
.cap-card h4{
  font-family:'IBM Plex Mono', monospace; font-size:0.78rem; letter-spacing:0.06em;
  text-transform:uppercase; color:var(--accent-soft); margin-bottom:16px;
}
.cap-card ul{list-style:none; font-size:0.88rem;}
.cap-card li{padding:7px 0; border-top:1px solid var(--line-dark);}
.cap-card li:first-child{border-top:none;}

/* contacto */
.contact{ background:var(--navy); color:var(--paper); position:relative; overflow:hidden; }
.contact .wrap{position:relative; z-index:2;}
.contact-grid{display:grid; grid-template-columns:1.1fr 0.9fr; gap:64px;}
@media(max-width:800px){ .contact-grid{grid-template-columns:1fr;} }
.contact h2{color:var(--paper); font-size:clamp(2rem,4vw,3rem); margin-bottom:20px;}
.contact p.lead{color:#C7D3D3; max-width:460px; margin-bottom:36px;}
.contact-fields{display:flex; flex-direction:column; gap:0;}
.field{ border-bottom:1px solid var(--line-dark); padding:16px 0; }
.field label{
  display:block; font-family:'IBM Plex Mono', monospace; font-size:0.68rem;
  letter-spacing:0.08em; text-transform:uppercase; color:#8FA3A3; margin-bottom:6px;
}
.field input, .field textarea{
  width:100%; background:transparent; border:none; color:var(--paper);
  font-family:'Inter',sans-serif; font-size:0.98rem; outline:none; resize:none;
}
.field input::placeholder, .field textarea::placeholder{color:#5C7378;}
.contact-info{display:flex; flex-direction:column; gap:26px;}
.contact-info .item{border-top:1px solid var(--line-dark); padding-top:16px;}
.contact-info .eyebrow{color:var(--accent-soft);}
.contact-info .eyebrow::before{background:var(--accent-soft);}
.contact-info .val{margin-top:8px; font-size:1rem;}
.send-btn{margin-top:28px;}

footer{ background:var(--navy); border-top:1px solid var(--line-dark); color:#8FA3A3; font-size:0.82rem; }
.footer-row{ display:flex; justify-content:space-between; align-items:center; padding:26px 0; flex-wrap:wrap; gap:12px; }

/* simple page banner (servicios/equipo/contacto pages use compact hero above) */
