:root{
  --paper:#FFFFFF; --ink:#4D051A; --text:#2E2729; --muted:#6E6568;
  --line:#EADFE2; --accent:#73172B; --accent-hover:#4D051A; --accent-ink:#FFFFFF; --soft:#F7EEF0;
  --serif:"Newsreader", "Iowan Old Style", "Palatino Linotype", Georgia, serif;
  --sans:"Montserrat", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  --measure:36rem;
}
*,*::before,*::after{box-sizing:border-box}
html{
  -webkit-text-size-adjust:100%; text-size-adjust:100%;
  scroll-behavior:smooth; scroll-padding-top:calc(env(safe-area-inset-top,0px) + 6.5rem);
}
@media (prefers-reduced-motion: reduce){ html{scroll-behavior:auto} }
body{
  margin:0; background:var(--paper); color:var(--text);
  font-family:var(--serif); font-size:1.1875rem; line-height:1.6;
  font-optical-sizing:auto;
  padding-bottom:env(safe-area-inset-bottom,0px);
}
.wrap{width:100%; max-width:62rem; margin:0 auto; padding-left:max(1.25rem, env(safe-area-inset-left,0px)); padding-right:max(1.25rem, env(safe-area-inset-right,0px))}
a{color:var(--accent); text-underline-offset:.18em; text-decoration-thickness:1px}
a:hover{text-decoration-thickness:2px}
:focus-visible{outline:2px solid var(--accent); outline-offset:3px; border-radius:2px}

.skip{position:absolute; left:-999px; top:0; background:var(--ink); color:var(--paper); padding:.5rem 1rem; font-family:var(--sans); z-index:10}
.skip:focus{left:1rem; top:calc(env(safe-area-inset-top,0px) + .5rem)}

/* Cabecera */
.top{
  position:sticky; top:0; z-index:5; background:var(--paper);
  padding-top:env(safe-area-inset-top,0px);
  border-bottom:1px solid var(--line);
}
.top-inner{display:flex; align-items:center; justify-content:space-between; gap:1rem; padding-top:.9rem}
.mark{display:block; line-height:0}
.mark img{display:block; height:40px; width:auto}
@media (min-width:48rem){ .mark img{height:48px} }
.langs{display:flex; gap:.15rem; font-family:var(--sans); font-size:.8125rem}
.langs a{color:var(--muted); text-decoration:none; padding:.35rem .45rem; border-radius:3px; letter-spacing:.02em}
.langs a:hover{color:var(--ink)}
.langs a[aria-current="page"]{color:var(--ink); background:var(--soft); font-weight:600}
.sections{display:flex; gap:1.4rem; font-family:var(--sans); font-size:.875rem; padding-top:.35rem; padding-bottom:.7rem; overflow-x:auto; scrollbar-width:none}
.sections::-webkit-scrollbar{display:none}
.sections a{color:var(--muted); text-decoration:none; white-space:nowrap}
.sections a:hover{color:var(--ink)}

/* Portada */
.hero{padding-top:clamp(3rem, 10vw, 7rem); padding-bottom:clamp(2.5rem, 7vw, 5rem)}
.hero h1{
  font-family:var(--serif); font-weight:500; color:var(--ink);
  font-size:clamp(2.35rem, 7.2vw, 4.6rem); line-height:1.04; letter-spacing:-.022em;
  max-width:16ch; margin:0 0 1.6rem;
  text-wrap:balance;
}
.lead{max-width:var(--measure); font-size:clamp(1.15rem, 2.3vw, 1.35rem); line-height:1.55; margin:0 0 2rem; color:var(--text)}
.actions{display:flex; flex-wrap:wrap; align-items:center; gap:1.1rem 1.6rem; margin:0}
.btn{
  display:inline-block; font-family:var(--sans); font-weight:600; font-size:1rem;
  background:var(--accent); color:var(--accent-ink); text-decoration:none;
  padding:.85rem 1.35rem; border-radius:4px; min-height:44px;
}
.btn:hover{background:var(--accent-hover)}
.quiet{font-family:var(--sans); font-size:1rem; font-weight:600}

/* Bloques */
.block{padding-top:clamp(2.5rem, 6vw, 4rem); padding-bottom:clamp(.5rem, 2vw, 1rem)}
.block h2{
  font-family:var(--sans); font-weight:600; color:var(--ink);
  font-size:1rem; letter-spacing:.01em; margin:0 0 1.25rem;
  padding-top:1rem; border-top:2px solid var(--accent); max-width:var(--measure);
}
.prose{max-width:var(--measure); margin:0}

.svcs{margin:0; display:grid; gap:1.6rem; max-width:52rem}
.svc dt{letter-spacing:-.005em; font-family:var(--sans); font-weight:600; font-size:1.05rem; color:var(--ink); line-height:1.25; margin-bottom:.3rem}
.svc dd{margin:0; max-width:var(--measure)}
@media (min-width:48rem){
  .svcs{grid-template-columns:1fr 1fr; gap:2.2rem 3rem}
}

.people{margin:1.75rem 0 0; display:grid; gap:1.25rem}
.person dt{font-family:var(--sans); font-weight:600; font-size:1.05rem; color:var(--ink)}
.person dd{margin:0; color:var(--muted); font-size:1.0625rem}
@media (min-width:48rem){ .people{grid-template-columns:1fr 1fr; max-width:52rem; gap:3rem} }

.subscribe .prose{margin-bottom:1.5rem}
.contact{margin:0; font-size:1.25rem; line-height:1.5}
.contact a{font-family:var(--sans); font-size:1.0625rem; font-weight:600}

.privacy p{max-width:var(--measure); font-size:1rem; color:var(--muted); margin:0 0 .9rem}

.foot{margin-top:clamp(3rem, 8vw, 5rem); border-top:1px solid var(--line); padding:1.5rem 0 2rem; font-family:var(--sans); font-size:.8125rem; color:var(--muted)}
