/* ── Law Consulting — landing ───────────────────────────────────────────── */

:root{
  --navy:#1b2456;
  --navy-deep:#121a3f;
  --orange:#e5501a;
  --orange-light:#f08a5d;
  --bone:#f6f5f2;
  --ink:#1c1f2b;
  --body:#444;
  --muted:#6b6b6b;
  --muted-2:#8a8a8a;
  --line:#e6e4df;
  --line-bone:#d9d6cf;
  --on-navy:#c3c9e3;
  --on-navy-dim:#8f97bd;

  --serif:'Playfair Display',Georgia,'Times New Roman',serif;
  --sans:'Work Sans',system-ui,-apple-system,'Segoe UI',sans-serif;

  --gutter:64px;
  --label-col:280px;
  --gap:64px;
  --section-y:120px;
  --content:1312px;                                  /* 1440 del artboard - 2 x 64 de margen */
  --edge:max(var(--gutter), (100% - var(--content)) / 2);
}

*,*::before,*::after{box-sizing:border-box}

html{scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important}
}

body{
  margin:0;
  background:#fff;
  font-family:var(--sans);
  font-size:16px;
  line-height:1.5;
  color:var(--ink);
  -webkit-font-smoothing:antialiased;
  overflow-x:clip;
}

a{color:var(--navy);text-decoration:none;transition:color .2s}
a:hover{color:var(--orange)}
img{max-width:100%;display:block}

:focus-visible{outline:2px solid var(--orange);outline-offset:3px}

.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}

.skip-link{position:absolute;left:-9999px;top:0;z-index:100;background:var(--navy);color:#fff;padding:12px 20px;font-size:14px}
.skip-link:focus{left:0;color:#fff}

/* ── Header ─────────────────────────────────────────────────────────────── */

.site-header{
  position:sticky;top:0;z-index:20;
  display:flex;align-items:center;gap:40px;
  padding-inline:var(--edge);height:88px;
  background:#fff;
}
.site-header[data-sticky="false"]{position:relative}
.site-header--scrolled{box-shadow:0 1px 0 var(--line)}

.site-header__logo img{height:44px;width:auto}

.site-nav{
  display:flex;gap:36px;margin-left:auto;
  font-size:14px;font-weight:400;color:var(--navy);
}
.site-nav a{position:relative;padding-block:4px}
.site-nav a::after{
  content:"";position:absolute;left:0;right:0;bottom:0;height:1px;
  background:var(--orange);transform:scaleX(0);transform-origin:left;
  transition:transform .2s;
}
.site-nav a:hover::after,.site-nav a:focus-visible::after{transform:scaleX(1)}

.lang-switch{
  display:flex;gap:10px;font-size:13px;color:var(--muted-2);
  padding-left:28px;border-left:1px solid var(--line);
}
.lang-switch a{color:var(--muted-2)}
.lang-switch a[aria-current]{color:var(--navy);font-weight:600}

.nav-toggle{
  display:none;margin-left:auto;
  width:44px;height:44px;padding:11px 9px;
  background:none;border:0;cursor:pointer;
  flex-direction:column;justify-content:space-between;
}
.nav-toggle span{display:block;height:1.5px;background:var(--navy);transition:transform .25s,opacity .2s}
.nav-toggle[aria-expanded="true"] span:nth-child(1){transform:translateY(9.75px) rotate(45deg)}
.nav-toggle[aria-expanded="true"] span:nth-child(2){opacity:0}
.nav-toggle[aria-expanded="true"] span:nth-child(3){transform:translateY(-9.75px) rotate(-45deg)}

/* ── Hero ───────────────────────────────────────────────────────────────── */

.hero{position:relative;height:720px;max-height:88vh;overflow:hidden;background:var(--navy-deep)}
.hero__img{
  position:absolute;inset:0;width:100%;height:100%;
  object-fit:cover;object-position:center;filter:saturate(.75);
}
.hero__scrim{
  position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(180deg,rgba(18,26,63,0) 30%,rgba(18,26,63,.85) 100%);
}
.hero__content{
  position:absolute;left:0;right:0;bottom:var(--gutter);
  padding-inline:var(--edge);
  display:flex;justify-content:space-between;align-items:flex-end;gap:60px;color:#fff;
}
.hero h1{
  font-family:var(--serif);font-weight:400;font-size:clamp(30px,3.6vw,52px);
  line-height:1.12;margin:0;max-width:760px;text-wrap:balance;
}

/* ── Buttons & links ────────────────────────────────────────────────────── */

.btn{
  display:inline-block;flex:none;
  font-size:14px;font-weight:500;letter-spacing:.04em;
  cursor:pointer;transition:background-color .2s,color .2s,border-color .2s;
}
.btn--ghost{border:1px solid rgba(255,255,255,.6);color:#fff;padding:16px 28px}
.btn--ghost:hover,.btn--ghost:focus-visible{background:#fff;color:var(--navy)}
.btn--solid{
  align-self:flex-start;margin-top:28px;
  background:var(--navy);color:#fff;border:0;padding:16px 36px;
  font-family:inherit;font-weight:600;
}
.btn--solid:hover{background:var(--orange)}

.link-underline{
  font-size:14px;font-weight:600;letter-spacing:.04em;color:var(--navy);
  border-bottom:1px solid var(--orange);padding-bottom:4px;align-self:flex-start;
}

/* ── Layout primitives ──────────────────────────────────────────────────── */

.section{padding:var(--section-y) var(--edge)}
.section--bone{background:var(--bone)}
.section--split{display:grid;grid-template-columns:var(--label-col) 1fr;gap:var(--gap)}
.section--split > *{min-width:0}   /* si no, la marquesina desborda la página */

.stack{display:flex;flex-direction:column;gap:20px;align-items:flex-start}
.stack--lg{gap:32px}

.eyebrow{
  margin:0;padding-top:14px;
  font-size:12px;letter-spacing:.2em;text-transform:uppercase;
  color:var(--orange);font-weight:600;
}
.eyebrow--light{color:var(--orange-light);padding-top:0}

.display{
  font-family:var(--serif);font-weight:400;
  font-size:clamp(30px,3.1vw,44px);line-height:1.1;margin:0;color:var(--navy);
}
.display--md{font-size:clamp(26px,2.7vw,38px);line-height:1.15;color:#fff;text-wrap:balance}

.lede{
  margin:0;font-family:var(--serif);font-size:clamp(23px,2.3vw,32px);
  line-height:1.35;color:var(--navy);text-wrap:pretty;
}
.prose{margin:0;font-size:17px;line-height:1.75;color:var(--body);max-width:720px;text-wrap:pretty}
.prose--lg{font-size:18px;line-height:1.7;color:#333}
.prose--invert{color:var(--on-navy);max-width:none}

.firma__body{max-width:880px}

/* ── Stats ──────────────────────────────────────────────────────────────── */

.stats{
  margin-inline:var(--edge);border-top:1px solid var(--line);
  display:grid;grid-template-columns:repeat(4,1fr);
}
.stat{padding:40px 32px;border-left:1px solid var(--line)}
.stat:first-child{padding-left:0;border-left:0}
.stat:last-child{padding-right:0}
.stat__num{display:block;font-family:var(--serif);font-size:clamp(32px,3.1vw,44px);color:var(--navy);line-height:1}
.stat__label{display:block;font-size:14px;color:var(--muted);margin-top:10px}

/* ── Prácticas ──────────────────────────────────────────────────────────── */

.practices{margin-top:96px}
.practices__grid{
  display:grid;grid-template-columns:1fr 1fr;gap:80px;
  margin-top:64px;border-top:1px solid var(--line-bone);
}
.practices__list{display:flex;flex-direction:column}

.practice{
  display:flex;justify-content:space-between;align-items:center;gap:24px;
  width:100%;padding:26px 0;
  background:none;border:0;border-bottom:1px solid var(--line-bone);
  font-family:inherit;text-align:left;cursor:pointer;
  color:var(--navy);transition:color .2s;
}
.practice__name{font-family:var(--serif);font-size:clamp(21px,1.9vw,26px)}
.practice__arrow{font-size:20px;opacity:0;transition:opacity .2s}
.practice[aria-selected="true"]{color:var(--orange)}
.practice[aria-selected="true"] .practice__arrow{opacity:1}
.practice:hover{color:var(--orange)}

.practices__detail{padding-top:26px;display:flex;flex-direction:column;gap:24px;align-items:flex-start}
.practices__counter{margin:0;font-size:12px;letter-spacing:.2em;text-transform:uppercase;color:var(--muted-2)}
.practices__detail .link-underline{margin-top:8px}

.tick-list{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:10px;font-size:15px;color:#555}
.tick-list li{display:flex;gap:14px;align-items:baseline}
.tick-list li::before{
  content:"";width:18px;height:1px;background:var(--orange);
  flex:none;transform:translateY(-4px);
}

/* ── Enfoque ────────────────────────────────────────────────────────────── */

.approach{display:grid;grid-template-columns:1fr 1fr;min-height:560px}
.approach__media{position:relative}
.approach__body{
  background:var(--navy);color:#fff;
  padding:96px clamp(48px,6.2vw,120px);
  display:flex;flex-direction:column;justify-content:center;gap:28px;
}

/* ── Image slots (rellenar con fotografía real) ─────────────────────────── */

.img-slot{
  position:absolute;inset:0;
  display:flex;align-items:center;justify-content:center;padding:24px;
  background:var(--bone);border:1px dashed var(--line-bone);
  color:var(--muted-2);font-size:13px;text-align:center;line-height:1.5;
}
.member__photo .img-slot,.approach__media .img-slot{position:absolute}

/* ── Equipo ─────────────────────────────────────────────────────────────── */

.team{
  margin:0;padding:0;list-style:none;
  display:grid;grid-template-columns:repeat(4,1fr);gap:28px;
}
.member{display:flex;flex-direction:column;gap:14px}
.member__photo{position:relative;aspect-ratio:3/4}
.member__name{margin:0;font-family:var(--serif);font-size:20px;color:var(--navy);line-height:1.25}
.member__role{margin:4px 0 0;font-size:13px;color:var(--muted)}

/* ── Clientes ───────────────────────────────────────────────────────────── */

.clients{
  margin-inline:var(--edge);padding:72px 0;
  border-top:1px solid var(--line);border-bottom:1px solid var(--line);
}
.clients .eyebrow{padding-top:0}
.marquee{
  overflow:hidden;min-width:0;
  /* Desvanece los extremos para que los logos no aparezcan cortados de golpe. */
  -webkit-mask-image:linear-gradient(90deg,transparent,#000 5%,#000 95%,transparent);
          mask-image:linear-gradient(90deg,transparent,#000 5%,#000 95%,transparent);
}
.clients__list{
  margin:0;padding:0;list-style:none;
  display:flex;align-items:center;width:max-content;
  animation:marquee 48s linear infinite;
}
.marquee:hover .clients__list,
.marquee:focus-within .clients__list{animation-play-state:paused}

@keyframes marquee{
  from{transform:translateX(0)}
  to{transform:translateX(-50%)}      /* la pista lleva dos copias idénticas */
}

.client{
  flex:none;
  display:flex;align-items:center;justify-content:center;
  width:200px;min-height:112px;padding:20px 24px;
}
.client img{
  max-width:100%;max-height:56px;width:auto;height:auto;object-fit:contain;
}
/* Marcas cuadradas o con caja: pesan más ópticamente, se muestran más chicas. */
.client img[src*="didi"],
.client img[src*="vinedos"],
.client img[src*="emotiom"],
.client img[src*="volkswagen"]{max-height:46px}
.client img[src*="mtv"]{max-height:44px}

.client--wordmark{
  font-family:var(--serif);font-size:16px;line-height:1.35;
  color:var(--muted);text-align:center;
}

/* ── Noticias ───────────────────────────────────────────────────────────── */

.posts{display:flex;flex-direction:column;border-top:1px solid var(--line)}
.post{
  display:grid;grid-template-columns:160px 1fr auto;gap:32px;align-items:baseline;
  padding:28px 0;border-bottom:1px solid var(--line);color:var(--ink);
}
.post:hover{color:var(--orange)}
.post__meta{font-size:13px;color:var(--muted-2)}
.post__title{font-family:var(--serif);font-size:22px;color:inherit;line-height:1.35}
.post__arrow{transition:transform .2s}
.post:hover .post__arrow{transform:translateX(4px)}

/* ── Contacto ───────────────────────────────────────────────────────────── */

.contact{grid-template-columns:var(--label-col) 1fr 1fr;display:grid;gap:var(--gap)}
.contact__intro{max-width:420px;line-height:1.7}
.contact__details{
  display:flex;flex-direction:column;gap:20px;
  font-size:15px;line-height:1.7;color:#333;margin-top:12px;
}
.contact__details p{margin:0}
.contact__label{
  font-size:12px;letter-spacing:.14em;text-transform:uppercase;
  color:var(--muted-2);margin-bottom:4px!important;
}

.form{display:flex;flex-direction:column;gap:0;align-self:start}
.field{display:block}
.form input:not([type=checkbox]),.form select,.form textarea{
  width:100%;background:transparent;border:0;border-bottom:1px solid #b9b5ab;
  color:var(--ink);padding:18px 0;font:inherit;font-size:16px;outline:none;
  border-radius:0;transition:border-color .2s;
}
.form select{color:var(--muted);appearance:none;cursor:pointer}
.form select:valid{color:var(--ink)}
.form textarea{resize:vertical}
.form input::placeholder,.form textarea::placeholder{color:var(--muted)}
.form input:focus,.form select:focus,.form textarea:focus{border-color:var(--navy)}
.form :focus-visible{outline:none}
.form input:focus-visible,.form select:focus-visible,.form textarea:focus-visible{border-color:var(--orange)}

.checkbox{display:flex;gap:10px;align-items:center;font-size:13px;color:var(--muted);margin-top:22px}
.checkbox input{accent-color:var(--navy)}
.checkbox a{color:var(--muted);border-bottom:1px solid var(--orange)}

.form__status{margin:16px 0 0;font-size:14px;color:var(--navy);min-height:1.2em}

/* ── Footer ─────────────────────────────────────────────────────────────── */

.site-footer{
  background:var(--navy-deep);color:var(--on-navy-dim);
  padding:64px var(--edge) 40px;
  display:flex;flex-direction:column;gap:48px;font-size:14px;
}
.site-footer__top{display:grid;grid-template-columns:var(--label-col) repeat(3,1fr);gap:var(--gap)}
.site-footer__logo{height:40px;width:auto;background:#fff;padding:4px 8px;align-self:start;justify-self:start}
.site-footer nav{display:flex;flex-direction:column;gap:10px}
.site-footer__heading{color:#fff;font-weight:600;margin:0 0 6px}
.site-footer a{color:var(--on-navy-dim)}
.site-footer a:hover{color:#fff}
.site-footer__top > div p{margin:0;line-height:1.6}
.site-footer__top > div p + p{margin-top:10px}
.site-footer__bottom{
  display:flex;justify-content:space-between;flex-wrap:wrap;gap:16px;
  border-top:1px solid rgba(255,255,255,.12);padding-top:24px;font-size:13px;
}
.site-footer__legal{display:flex;gap:28px}
.site-footer__legal a{color:var(--on-navy)}

/* ── Responsive ─────────────────────────────────────────────────────────── */

@media (max-width:1180px){
  :root{--gutter:40px;--label-col:200px;--gap:40px;--section-y:96px}
  .practices__grid{gap:48px}
  .approach__body{padding:72px 48px}
}

@media (max-width:900px){
  :root{--section-y:72px}
  .nav-toggle{display:flex}
  .site-header{gap:20px;height:72px}
  .site-header__logo img{height:36px}
  .site-nav{
    position:absolute;top:100%;left:0;right:0;
    flex-direction:column;gap:0;margin:0;
    background:#fff;border-top:1px solid var(--line);
    box-shadow:0 12px 24px rgba(18,26,63,.08);
    display:none;
  }
  .site-nav[data-open="true"]{display:flex}
  .site-nav a{padding:16px var(--gutter);border-bottom:1px solid var(--line);font-size:16px}
  .site-nav a::after{display:none}
  .lang-switch{padding-left:16px;order:2}

  .hero{height:auto;min-height:520px;max-height:none}
  .hero__content{position:static;padding:200px var(--edge) 48px;flex-direction:column;align-items:flex-start;gap:32px}
  .hero__img,.hero__scrim{height:100%}
  .hero__scrim{background:linear-gradient(180deg,rgba(18,26,63,.35) 0%,rgba(18,26,63,.9) 100%)}

  .section--split,.contact,.site-footer__top{grid-template-columns:1fr;gap:24px}
  .eyebrow{padding-top:0}
  .practices__grid{grid-template-columns:1fr;gap:40px;margin-top:40px}
  .practices__detail{padding-top:0}
  .approach{grid-template-columns:1fr}
  .approach__media{min-height:320px}
  .stats{grid-template-columns:1fr 1fr}
  .stat{padding:28px 24px}
  .stat:nth-child(odd){padding-left:0;border-left:0}
  .stat:nth-child(n+3){border-top:1px solid var(--line)}
  .team{grid-template-columns:1fr 1fr}
  .post{grid-template-columns:1fr auto;gap:8px 24px}
  .post__meta{grid-column:1/-1}
  .site-footer__top{gap:36px}
}

@media (max-width:560px){
  :root{--gutter:24px}
  .stats{grid-template-columns:1fr}
  .stat{padding:24px 0;border-left:0;border-top:1px solid var(--line)}
  .stat:first-child{border-top:0}
  .team{grid-template-columns:1fr}
  .clients__list{animation-duration:34s}
  .client{width:150px;min-height:92px;padding:14px}
  .client img{max-height:44px}
  .approach__body{padding:56px 24px}
  .btn--ghost{width:100%;text-align:center}
}

/* Estado sin fotografía en el hero (assets/justicia.png ausente). */
.hero--no-photo{
  background:
    radial-gradient(120% 90% at 70% 15%, rgba(229,80,26,.20) 0%, rgba(18,26,63,0) 60%),
    linear-gradient(160deg,#1b2456 0%,#121a3f 70%);
}

/* Fotografías (sustituyen a los .img-slot del wireframe). */
.member__photo img,
.approach__media img{
  position:absolute;inset:0;
  width:100%;height:100%;object-fit:cover;
}
.member__photo img{object-position:center top}

.clients__note{
  margin:28px 0 0;font-family:var(--sans);font-size:12px;color:var(--muted-2);
}


/* ── Aparición en scroll ────────────────────────────────────────────────── */

/* El estado oculto sólo existe si el JS corre: sin él, todo se ve normal. */
.js-reveal [data-reveal]{
  opacity:0;transform:translateY(18px);
  transition:opacity .7s cubic-bezier(.22,.61,.36,1) var(--d,0s),
             transform .7s cubic-bezier(.22,.61,.36,1) var(--d,0s);
  will-change:opacity,transform;
}
.js-reveal [data-reveal].is-visible{opacity:1;transform:none;will-change:auto}

@media (prefers-reduced-motion:reduce){
  .js-reveal [data-reveal]{opacity:1;transform:none;transition:none}
  .clients__list{animation:none;justify-content:flex-start;flex-wrap:wrap;width:auto}
}

.form__status[data-kind="ok"]{color:var(--navy)}
.form__status[data-kind="error"]{color:var(--orange)}
.btn--solid:disabled{opacity:.6;cursor:progress}
