/* Layout: biblioteca de estudio jurídico. Columna de lectura 68ch, foto a sangre en el hero, verde oliva de la corbata como único acento sobre azul marino del traje. */
:root{
  --bg:#f6f4ee; --paper:#fdfcf9; --fg:#1c2335; --muted:#5b6274; --line:#d9d4c7;
  --navy:#1f2d4d; --navy-ink:#ffffff; --olive:#4f6a3d; --olive-soft:#e7ecdf;
  --display:"Cormorant Garamond",Georgia,"Times New Roman",serif;
  --body:"Source Sans 3","Segoe UI",Helvetica,Arial,sans-serif;
}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){
  --bg:#141925; --paper:#1b2130; --fg:#ece9e0; --muted:#a7adbb; --line:#2f3850;
  --navy:#0f1626; --navy-ink:#ece9e0; --olive:#9ab97f; --olive-soft:#26301f; color-scheme:dark}}
:root[data-theme="dark"]{
  --bg:#141925; --paper:#1b2130; --fg:#ece9e0; --muted:#a7adbb; --line:#2f3850;
  --navy:#0f1626; --navy-ink:#ece9e0; --olive:#9ab97f; --olive-soft:#26301f; color-scheme:dark}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--fg);font-family:var(--body);font-size:17px;line-height:1.55}
a{color:var(--olive)}
h1,h2,h3{font-family:var(--display);font-weight:600;line-height:1.1;text-wrap:balance;margin:0}
.eyebrow{font-size:.78rem;letter-spacing:.14em;text-transform:uppercase;color:var(--olive);font-weight:600}
.wrap{max-width:1080px;margin:0 auto;padding-inline:20px}
nav{position:sticky;top:env(safe-area-inset-top,0px);background:var(--navy);color:var(--navy-ink);z-index:5;border-bottom:1px solid rgba(255,255,255,.08)}
nav .wrap{display:flex;align-items:center;justify-content:space-between;gap:16px;padding-block:14px;flex-wrap:wrap}
nav .brand{font-family:var(--display);font-size:1.25rem;font-weight:600;color:var(--navy-ink);text-decoration:none}
nav ul{list-style:none;margin:0;padding:0;display:flex;gap:22px;flex-wrap:wrap}
nav li a{color:var(--navy-ink);text-decoration:none;font-size:.92rem;opacity:.85}
nav li a:hover,nav li a:focus-visible{opacity:1;text-decoration:underline;text-underline-offset:4px;text-decoration-color:var(--olive)}
.hero{background:var(--navy);color:var(--navy-ink)}
.hero .wrap{display:grid;grid-template-columns:1.1fr .9fr;gap:40px;align-items:end;padding-block:56px 0}
.hero h1{font-size:clamp(2.4rem,5.5vw,4rem);color:var(--navy-ink)}
.hero h1 em{font-style:italic;font-weight:500;color:var(--olive);font-size:.62em;display:block;margin-top:.35em;line-height:1.2}
.hero p.lead{font-size:1.15rem;max-width:34em;opacity:.9;margin:20px 0 28px}
.hero .cred{display:flex;flex-wrap:wrap;gap:8px 18px;font-size:.9rem;opacity:.85;margin-bottom:40px;padding:0;list-style:none}
.hero .cred li::before{content:"·";color:var(--olive);margin-right:8px}
.hero figure{margin:0;align-self:end;line-height:0}
.hero img{width:100%;height:auto;max-width:440px;aspect-ratio:720/900;object-fit:cover;display:block;margin-inline:auto;border-radius:6px 6px 0 0;box-shadow:0 -10px 40px rgba(0,0,0,.35)}
.hero .cta{display:inline-block;background:var(--olive);color:#fff;text-decoration:none;padding:12px 22px;border-radius:4px;font-weight:600}
.hero .cta:focus-visible{outline:3px solid #fff;outline-offset:2px}
section{padding-block:64px;border-bottom:1px solid var(--line)}
section .wrap>h2{font-size:clamp(1.9rem,3.5vw,2.6rem);margin:8px 0 14px}
.intro{max-width:68ch;color:var(--muted);font-size:1.05rem}
.areas{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:18px;margin-top:34px}
.area{background:var(--paper);border:1px solid var(--line);border-top:3px solid var(--olive);padding:22px 22px 20px;min-width:0}
.area h3{font-size:1.45rem;margin-bottom:8px}
.area p{margin:0;color:var(--muted);font-size:.97rem}
.area.main{grid-column:1/-1;background:var(--olive-soft);border-color:var(--olive)}
.area.main p{color:var(--fg)}
.two{display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:start}
.two>*{min-width:0}
.quote{font-family:var(--display);font-size:1.7rem;font-style:italic;font-weight:500;line-height:1.3;border-left:3px solid var(--olive);padding-left:20px;margin:26px 0}
.faq{list-style:none;padding:0;margin:0;display:grid;gap:6px}
.faq li{font-family:var(--display);font-size:1.3rem;font-weight:500;padding:8px 0;border-bottom:1px dashed var(--line)}
.steps{list-style:none;padding:0;margin:26px 0 0;display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px;counter-reset:s}
.steps li{counter-increment:s;background:var(--paper);border:1px solid var(--line);padding:18px}
.steps li::before{content:counter(s);display:inline-block;font-family:var(--display);font-size:2rem;color:var(--olive);line-height:1;margin-bottom:6px}
.steps strong{display:block;margin-bottom:4px}
.steps p{margin:0;color:var(--muted);font-size:.95rem}
.team{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:18px;margin-top:30px}
.person{background:var(--paper);border:1px solid var(--line);padding:22px}
.person h3{font-size:1.4rem}
.person .role{color:var(--olive);font-weight:600;font-size:.9rem;margin:4px 0 10px}
.person p{margin:0;color:var(--muted);font-size:.95rem}
.offices{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:18px;margin-top:30px}
.office{border-left:3px solid var(--olive);padding-left:16px}
.office h3{font-size:1.35rem}
.office p{margin:4px 0 0;color:var(--muted);font-size:.95rem}
.contact{background:var(--navy);color:var(--navy-ink);border:0}
.contact h2,.contact .eyebrow{color:var(--navy-ink)}
.contact .eyebrow{color:var(--olive)}
form{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:28px;max-width:720px}
form label{display:grid;gap:6px;font-size:.9rem;min-width:0}
form label.full{grid-column:1/-1}
input,textarea,select{font:inherit;padding:10px 12px;border:1px solid rgba(255,255,255,.25);background:rgba(255,255,255,.07);color:var(--navy-ink);border-radius:4px;width:100%}
input:focus-visible,textarea:focus-visible,select:focus-visible{outline:2px solid var(--olive);outline-offset:1px}
textarea{min-height:130px;resize:vertical}
button{font:inherit;font-weight:600;background:var(--olive);color:#fff;border:0;padding:12px 24px;border-radius:4px;cursor:pointer;justify-self:start}
button:focus-visible{outline:3px solid #fff;outline-offset:2px}
.note{font-size:.88rem;opacity:.8;margin:10px 0 0}
#ok{margin-top:14px;padding:12px 14px;background:var(--olive-soft);color:var(--fg);border-radius:4px}
.channels{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:14px;margin-top:26px;max-width:960px}
.ch{display:grid;grid-template-columns:1fr auto;gap:2px 12px;align-items:center;background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.18);border-radius:4px;padding:12px 14px;min-width:0}
.ch .lbl{grid-column:1/-1;font-size:.75rem;letter-spacing:.12em;text-transform:uppercase;color:var(--olive);font-weight:600}
.ch .val{font-family:var(--display);font-size:1.25rem;user-select:all;overflow-wrap:anywhere;min-width:0}
.ch .copy{padding:6px 12px;font-size:.85rem;background:transparent;color:var(--navy-ink);border:1px solid rgba(255,255,255,.35)}
.ch .copy:hover{border-color:var(--olive)}
.ch .val.tel{display:inline-flex;align-items:center;gap:10px}.ch .flag{flex:none;border-radius:2px;box-shadow:0 0 0 1px rgba(0,0,0,.25)}
footer{padding-block:28px;font-size:.85rem;color:var(--muted)}
footer .wrap{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap}
@media (max-width:760px){
  .hero .wrap{grid-template-columns:1fr;padding-top:40px}
  .hero figure{order:-1}
  .hero img{max-width:320px;border-radius:6px}
  .two{grid-template-columns:1fr}
  form{grid-template-columns:1fr}
  section{padding-block:48px}
}
@media (prefers-reduced-motion:no-preference){.area,.person{transition:transform .2s}.area:hover,.person:hover{transform:translateY(-2px)}}
/* Páginas interiores */
.page-hero{background:var(--navy);color:var(--navy-ink);padding-block:56px 48px;border:0}
.page-hero h1{font-size:clamp(2.2rem,5vw,3.4rem);color:var(--navy-ink)}
.page-hero p.lead{font-size:1.12rem;max-width:40em;opacity:.9;margin:18px 0 0}
.page-hero .crumb{font-size:.85rem;margin:0 0 14px}
.page-hero .crumb a{color:var(--navy-ink);opacity:.8}
.prose{max-width:72ch}
.prose h2{font-size:clamp(1.7rem,3vw,2.2rem);margin:0 0 12px}
.prose h3{font-size:1.35rem;margin:22px 0 6px}
.prose p,.prose li{color:var(--fg)}
.prose ul{padding-left:1.2em}
.countries{display:flex;flex-wrap:wrap;gap:8px;list-style:none;padding:0;margin:18px 0 0}
.countries li{background:var(--paper);border:1px solid var(--line);border-radius:999px;padding:4px 12px;font-size:.92rem}
details{border-bottom:1px solid var(--line);padding:12px 0}
details summary{font-family:var(--display);font-size:1.3rem;font-weight:500;cursor:pointer}
details p{margin:8px 0 0;color:var(--muted)}
.legal-note{font-size:.88rem;color:var(--muted);max-width:72ch}
.consent{display:flex!important;gap:10px;align-items:flex-start;grid-column:1/-1;font-size:.88rem}
.consent input{width:auto;margin-top:4px}
.consent a{color:var(--olive)}
.extranjero{background:var(--olive-soft)}
.extranjero .cta{display:inline-block;background:var(--olive);color:#fff;text-decoration:none;padding:12px 22px;border-radius:4px;font-weight:600;margin-top:10px}
.page-hero .countries li{background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.28);color:var(--navy-ink)}
.contact .consent a{color:inherit;text-decoration:underline;text-underline-offset:3px}
/* Contraste del verde sobre azul marino en modo claro */
.hero h1 em,.hero .eyebrow,.page-hero .eyebrow,.contact .eyebrow,.contact .ch .lbl{color:#a9c48f}
.hero .cta-sec{display:inline-block;color:var(--navy-ink);margin:14px 0 0 16px;text-underline-offset:4px;white-space:nowrap}
@media (max-width:760px){.hero .cta-sec{display:block;margin:14px 0 0}}

fieldset#extra{grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr;gap:14px;border:1px solid rgba(255,255,255,.25);border-radius:4px;padding:14px;margin:0}
fieldset#extra[hidden]{display:none}
fieldset#extra legend{padding:0 6px;font-size:.85rem;color:#a9c48f;font-weight:600}
fieldset#extra label:first-of-type{grid-column:1/-1}
optgroup{font-style:normal;font-weight:600}
@media (max-width:760px){fieldset#extra{grid-template-columns:1fr}}

.field-msg{font-size:.85rem;min-height:0}
.field-msg.err{color:#ffb4a8}
.field-msg.warn{color:#ffe08a}
.field-msg .sug{background:none;border:0;padding:0;color:inherit;font:inherit;font-weight:600;text-decoration:underline;cursor:pointer}
input:user-invalid{border-color:#ffb4a8}

/* Teléfono con prefijo por país */
.phone-field{display:grid;gap:6px;font-size:.9rem;min-width:0}
.phone{position:relative;display:flex;gap:8px;min-width:0}
.cc-btn{display:inline-flex;align-items:center;gap:8px;flex:none;justify-self:auto;padding:10px 10px;background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.25);color:var(--navy-ink);border-radius:4px;font-weight:600}
.cc-btn img,.cc-list img{border-radius:2px;box-shadow:0 0 0 1px rgba(0,0,0,.25);flex:none}
.cc-caret{opacity:.7;font-size:.8em}
.phone input[type=tel]{flex:1;min-width:0}
.cc-pop{position:absolute;top:calc(100% + 6px);left:0;z-index:20;width:min(320px,100%);background:var(--paper);color:var(--fg);border:1px solid var(--line);border-radius:6px;box-shadow:0 12px 32px rgba(0,0,0,.35);padding:8px}
.cc-pop[hidden]{display:none}
.cc-q{width:100%;padding:8px 10px;border:1px solid var(--line);border-radius:4px;background:var(--bg);color:var(--fg);margin-bottom:6px}
.cc-list{list-style:none;margin:0;padding:0;max-height:260px;overflow-y:auto}
.cc-list li[role=option]{display:flex;align-items:center;gap:10px;padding:8px 8px;border-radius:4px;cursor:pointer}
.cc-list li[role=option]:hover,.cc-list li.act{background:var(--olive-soft)}
.cc-list li[aria-selected=true]{font-weight:600}
.cc-name{flex:1}
.cc-code{color:var(--muted);font-variant-numeric:tabular-nums}
.cc-sep{border-top:1px solid var(--line);margin:6px 0}
.cc-empty{padding:8px;color:var(--muted)}

button[aria-disabled="true"]{opacity:.55;cursor:not-allowed}
.consent-msg{grid-column:1/-1}
.consent-msg.err{font-weight:600}

.hp{position:absolute!important;left:-10000px!important;width:1px;height:1px;overflow:hidden}
#ok.bad{background:#fde2de;color:#7a1d12}
