/* =====================================================================
   L+ INTELIGENCIA TRIBUTARIA — hoja de estilos
   ---------------------------------------------------------------------
   TOKENS DE COLOR — regla de uso:
     Sobre fondo OSCURO (--carbon-deep) ....... --gold      / --warm-gray
     Sobre fondo CLARO  (--bone, --bone-dim) .. --gold-ink  / --ink-soft
   Los tokens "-ink" son la misma familia cromática (tono 33 grados)
   oscurecida hasta cumplir WCAG AA 4.5:1. No usar --gold ni --warm-gray
   sobre fondo claro.
   ===================================================================== */

:root{
  --carbon-deep:#171513;
  --carbon:#3F3A37;

  --gold:#CA9E67;        /* solo sobre oscuro — 7.46:1 */
  --gold-ink:#826642;    /* solo sobre claro  — 4.91:1 / 4.53:1 */
  --gold-soft:#CA9E6733;

  --bone:#F7F5F1;
  --bone-dim:#EFECE5;

  --warm-gray:#8A8378;   /* solo sobre oscuro — 4.86:1 */
  --ink-soft:#686159;    /* solo sobre claro  — 5.60:1 / 5.17:1 */

  --line:#DDD7CC;
  --max:1180px;
  --header-h:120px;
}

*{ box-sizing:border-box; margin:0; padding:0; }

html{
  scroll-behavior:smooth;
  /* evita que el header fijo tape el titulo al saltar a un ancla */
  scroll-padding-top:var(--header-h);
}

body{
  font-family:'Inter', system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif;
  color:var(--carbon);
  background:var(--bone);
  -webkit-font-smoothing:antialiased;
  font-weight:400;
}

h1,h2,h3,.serif{
  font-family:'Fraunces', Georgia, 'Times New Roman', serif;
  font-weight:500; letter-spacing:-0.01em;
}
a{ color:inherit; text-decoration:none; }
img{ max-width:100%; }

.wrap{ max-width:var(--max); margin:0 auto; padding:0 40px; }

.eyebrow{
  font-size:12px; letter-spacing:0.18em; text-transform:uppercase;
  color:var(--gold-ink); font-weight:600; display:block; margin-bottom:18px;
}
/* secciones de fondo oscuro recuperan el dorado original */
.nosotros .eyebrow, .archive-hero .eyebrow, .legal-hero .eyebrow{ color:var(--gold); }

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

/* SALTAR AL CONTENIDO */
.skip-link{
  position:absolute; left:-9999px; top:0; z-index:200;
  background:var(--carbon-deep); color:var(--bone);
  padding:14px 22px; font-size:13px; letter-spacing:0.08em;
  text-transform:uppercase; border:1px solid var(--gold);
}
.skip-link:focus{ left:16px; top:16px; }

/* ============================ HEADER ============================ */
header{
  position:fixed; top:0; left:0; right:0; z-index:100;
  padding:26px 0; transition:background .4s ease, padding .4s ease, box-shadow .4s ease;
  background:transparent;
}
header.scrolled{
  background:rgba(23,21,19,0.94); backdrop-filter:blur(8px);
  padding:16px 0; box-shadow:0 1px 0 var(--gold-soft);
}
/* paginas interiores: header en flujo normal, siempre solido */
header.static{ position:relative; background:var(--carbon-deep); padding:16px 0; }

header .wrap{ display:flex; align-items:center; justify-content:space-between; gap:24px; }

.brand-mark{
  font-family:'Fraunces', Georgia, serif; font-size:24px; font-weight:600;
  color:var(--bone); letter-spacing:0.02em;
  display:flex; align-items:center; gap:18px;
}
.logo-mark{ height:58px; width:auto; display:block; }
.brand-wordmark-img{
  height:46px; width:auto; display:block;
  border-left:1px solid rgba(202,158,103,0.4); padding-left:16px;
}
.foot-brand .logo-mark{ height:190px; margin-bottom:8px; }

nav{ display:flex; gap:44px; align-items:center; }
nav a{
  font-size:13px; letter-spacing:0.08em; text-transform:uppercase;
  color:var(--bone); opacity:0.85; transition:opacity .25s, color .25s;
}
nav a:hover{ opacity:1; color:var(--gold); }
nav a[aria-current="page"]{ opacity:1; color:var(--gold); }
nav .btn{ padding:10px 22px; }

/* ---------- BOTON HAMBURGUESA ---------- */
.nav-toggle{
  display:none;
  width:48px; height:48px; padding:0;
  background:transparent; border:1px solid rgba(202,158,103,0.45);
  cursor:pointer; position:relative; flex-shrink:0;
}
.nav-toggle span{
  display:block; position:absolute; left:13px; width:22px; height:1.5px;
  background:var(--bone); transition:transform .3s ease, opacity .2s ease;
}
.nav-toggle span:nth-child(1){ top:16px; }
.nav-toggle span:nth-child(2){ top:23px; }
.nav-toggle span:nth-child(3){ top:30px; }
.nav-toggle[aria-expanded="true"] span:nth-child(1){ transform:translateY(7px) rotate(45deg); }
.nav-toggle[aria-expanded="true"] span:nth-child(2){ opacity:0; }
.nav-toggle[aria-expanded="true"] span:nth-child(3){ transform:translateY(-7px) rotate(-45deg); }

/* ---------- PANEL MOVIL ---------- */
.nav-panel{
  display:none;
  position:fixed; inset:0; z-index:99;
  background:var(--carbon-deep);
  padding:104px 24px 48px;
  overflow-y:auto;
}
.nav-panel.open{ display:block; }
.nav-panel nav{ display:block; }
.nav-panel a{
  display:block; font-size:15px; letter-spacing:0.1em; text-transform:uppercase;
  color:var(--bone); padding:20px 0; border-bottom:1px solid rgba(202,158,103,0.18);
}
.nav-panel .panel-contact{ margin-top:36px; }
.nav-panel .panel-contact .label{
  font-size:11px; letter-spacing:0.14em; text-transform:uppercase;
  color:var(--gold); margin-bottom:18px;
}
.nav-panel .panel-contact a{
  border:1px solid var(--gold); text-align:center; padding:16px;
  margin-bottom:12px; font-size:13px; font-weight:600;
}
body.nav-open{ overflow:hidden; }

/* ============================= HERO ============================= */
.hero{
  min-height:100vh; display:flex; align-items:center;
  background:
    radial-gradient(ellipse 900px 600px at 78% 15%, rgba(202,158,103,0.14), transparent 60%),
    linear-gradient(180deg, var(--carbon-deep) 0%, #1d1a17 100%);
  position:relative; overflow:hidden;
  padding-top:120px;
}
.hero::after{
  content:''; position:absolute; right:-10%; top:10%; bottom:10%; width:1px;
  background:linear-gradient(180deg, transparent, var(--gold), transparent);
  opacity:0.35;
}
.watermark{ position:absolute; pointer-events:none; z-index:1; opacity:0.07; }
.watermark img{ width:100%; height:auto; display:block; }
.hero .watermark{ width:780px; right:-160px; top:-120px; transform:rotate(14deg); }
footer .watermark{ width:520px; left:-100px; bottom:-140px; transform:rotate(-10deg); opacity:0.06; }
.hero .wrap{ position:relative; z-index:2; }

.hero-eyebrow{
  font-size:12px; letter-spacing:0.22em; text-transform:uppercase;
  color:var(--gold); margin-bottom:28px; display:flex; align-items:center; gap:14px;
}
.hero-eyebrow::before{ content:''; width:32px; height:1px; background:var(--gold); display:inline-block; }
.hero h1{
  font-size:clamp(38px, 6vw, 74px); line-height:1.05; color:var(--bone);
  max-width:820px; margin-bottom:32px;
}
.hero h1 em{ font-style:italic; color:var(--gold); }
.hero p.lead{
  font-size:18px; line-height:1.7; color:#C9C4BB; max-width:520px; margin-bottom:44px;
  font-weight:300;
}
.hero-actions{ display:flex; flex-wrap:wrap; gap:16px; align-items:center; }

.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:12px;
  font-size:13px; letter-spacing:0.1em; text-transform:uppercase; font-weight:600;
  padding:17px 34px; border:1px solid var(--gold); color:var(--bone);
  transition:background .3s ease, color .3s ease; background:transparent;
}
.btn:hover{ background:var(--gold); color:var(--carbon-deep); }
.btn-arrow{ transition:transform .3s ease; }
.btn:hover .btn-arrow{ transform:translateX(4px); }
/* variante sobre fondo claro */
.btn-ink{ border-color:var(--gold-ink); color:var(--carbon-deep); }
.btn-ink:hover{ background:var(--gold-ink); color:var(--bone); }

section{ padding:140px 0; }
.section-head{ max-width:640px; margin-bottom:80px; }
.section-head h2{ font-size:clamp(30px,4vw,46px); line-height:1.15; }
.section-head-row{
  display:flex; justify-content:space-between; align-items:center;
  gap:48px; margin-bottom:80px;
}
.section-head-row .section-head{ margin-bottom:0; }
.section-head-logo{ flex-shrink:0; }
.section-head-logo img{ height:180px; width:auto; display:block; }

/* =========================== SERVICIOS =========================== */
.servicios{ background:var(--bone); }
.serv-grid{ display:grid; grid-template-columns:repeat(2,1fr); gap:0; border-top:1px solid var(--line); }
.serv-item{ padding:44px 44px 44px 0; border-bottom:1px solid var(--line); position:relative; }
.serv-item:nth-child(odd){ padding-right:56px; border-right:1px solid var(--line); padding-left:0; }
.serv-item:nth-child(even){ padding-left:56px; }
.serv-item .cat{
  font-size:11px; letter-spacing:0.14em; text-transform:uppercase;
  color:var(--ink-soft); margin-bottom:14px; display:block;
}
.serv-item h3{ font-size:23px; margin-bottom:14px; color:var(--carbon-deep); }
.serv-item p{ font-size:15px; line-height:1.65; color:var(--ink-soft); font-weight:300; max-width:420px; }

/* =========================== NOSOTROS ============================ */
.nosotros{ background:var(--carbon-deep); color:var(--bone); }
.nos-grid{ display:grid; grid-template-columns:1fr 1fr; gap:80px; align-items:center; }
.nos-visuals{ display:grid; grid-template-columns:1fr 1fr; gap:16px; }
.nos-text h2{ font-size:clamp(30px,4vw,44px); color:var(--bone); margin-bottom:28px; line-height:1.2; }
.nos-text p{ font-size:16px; line-height:1.8; color:#C9C4BB; font-weight:300; margin-bottom:20px; }
.nos-signature{ margin-top:40px; padding-top:28px; border-top:1px solid rgba(202,158,103,0.3); }
.nos-signature .name{ font-family:'Fraunces', Georgia, serif; font-size:20px; color:var(--gold); }
.nos-signature .role{ font-size:12px; letter-spacing:0.1em; text-transform:uppercase; color:var(--warm-gray); margin-top:6px; }
.nos-photo{
  aspect-ratio:4/5; position:relative; overflow:hidden;
  background:var(--carbon-deep); border:1px solid var(--gold-soft);
}
.nos-photo img{ width:100%; height:100%; object-fit:cover; display:block; }

/* ============================ INSIGHTS =========================== */
.insights{ background:var(--bone-dim); }
.ins-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--line); border:1px solid var(--line); }
.ins-card{ background:var(--bone-dim); padding:40px; display:flex; flex-direction:column; min-height:280px; }
.ins-card .date{ font-size:11px; letter-spacing:0.1em; text-transform:uppercase; color:var(--gold-ink); margin-bottom:18px; }
.ins-card h3{ font-size:19px; line-height:1.35; margin-bottom:16px; color:var(--carbon-deep); }
.ins-card p{ font-size:14px; line-height:1.6; color:var(--ink-soft); font-weight:300; flex:1; }
.ins-card .tag{ margin-top:20px; font-size:12px; color:var(--ink-soft); }
.ins-note{ margin-top:32px; font-size:13px; color:var(--ink-soft); }
.ins-note a{ color:var(--gold-ink); text-decoration:underline; }

/* ============================= FOOTER ============================ */
footer{ background:var(--carbon-deep); color:var(--bone); padding:56px 0 36px; position:relative; overflow:hidden; }
footer .wrap{ position:relative; z-index:2; }
.foot-grid{
  display:flex; justify-content:space-between; align-items:flex-start;
  flex-wrap:wrap; gap:36px; padding-bottom:36px; border-bottom:1px solid rgba(202,158,103,0.2);
}
.foot-brand p{ font-size:13px; color:var(--warm-gray); max-width:280px; line-height:1.6; }
.foot-info{ display:flex; gap:56px; flex-wrap:wrap; }
.foot-col .label{ font-size:11px; letter-spacing:0.1em; text-transform:uppercase; color:var(--gold); margin-bottom:10px; }
.foot-col .val{ font-size:14px; color:var(--bone); line-height:1.6; font-weight:300; }
.foot-col a{ color:var(--bone); border-bottom:1px solid rgba(202,158,103,0.35); padding-bottom:1px; transition:color .25s, border-color .25s; }
.foot-col a:hover{ color:var(--gold); border-color:var(--gold); }
.foot-actions{ display:flex; flex-wrap:wrap; gap:12px; margin-top:28px; }
.foot-actions .btn{ padding:14px 26px; font-size:12px; }
.foot-bottom{
  display:flex; justify-content:space-between; align-items:center; padding-top:28px;
  font-size:12px; color:var(--warm-gray); flex-wrap:wrap; gap:12px 24px;
}
.foot-bottom nav{ gap:24px; }
.foot-bottom nav a{ font-size:12px; text-transform:none; letter-spacing:normal; color:var(--warm-gray); opacity:1; }
.foot-bottom nav a:hover{ color:var(--gold); }

/* =============== ARCHIVO DE INSIGHTS + PAGINAS LEGALES =========== */
.archive-hero, .legal-hero{
  background:var(--carbon-deep); color:var(--bone);
  padding:100px 0 80px; position:relative; overflow:hidden;
}
.archive-hero .wrap, .legal-hero .wrap{ position:relative; z-index:2; }
.archive-hero h1, .legal-hero h1{ font-size:clamp(32px,5vw,54px); color:var(--bone); margin-bottom:20px; }
.archive-hero p, .legal-hero p{ font-size:16px; color:#C9C4BB; font-weight:300; max-width:600px; }
.back-link{
  display:inline-flex; align-items:center; gap:8px; font-size:13px;
  letter-spacing:0.08em; text-transform:uppercase; color:var(--gold); margin-bottom:32px;
}
.back-link:hover{ text-decoration:underline; }

.archive-list{ background:var(--bone); padding:100px 0 140px; }
.archive-year{
  font-family:'Fraunces', Georgia, serif; font-size:22px; color:var(--ink-soft);
  margin:0 0 28px; padding-top:48px; border-top:1px solid var(--line);
}
.archive-year:first-child{ padding-top:0; border-top:none; }
.archive-item{ display:grid; grid-template-columns:140px 1fr; gap:32px; padding:28px 0; border-bottom:1px solid var(--line); }
.archive-item .date{ font-size:12px; letter-spacing:0.08em; text-transform:uppercase; color:var(--gold-ink); }
.archive-item h3{ font-size:20px; margin-bottom:8px; color:var(--carbon-deep); }
.archive-item p{ font-size:14px; line-height:1.6; color:var(--ink-soft); font-weight:300; max-width:600px; }
.archive-item .tag{ font-size:12px; color:var(--ink-soft); margin-top:8px; display:inline-block; }
.archive-empty{ padding:60px 0; color:var(--ink-soft); font-size:15px; border-bottom:1px solid var(--line); }

/* cuerpo de texto legal */
.legal-body{ background:var(--bone); padding:80px 0 120px; }
.legal-body .wrap{ max-width:820px; }
.legal-body h2{ font-size:24px; color:var(--carbon-deep); margin:48px 0 16px; }
.legal-body h2:first-child{ margin-top:0; }
.legal-body h3{ font-size:18px; color:var(--carbon-deep); margin:28px 0 12px; }
.legal-body p, .legal-body li{ font-size:15px; line-height:1.75; color:var(--ink-soft); margin-bottom:14px; }
.legal-body ul, .legal-body ol{ padding-left:22px; margin-bottom:20px; }
.legal-body a{ color:var(--gold-ink); text-decoration:underline; }
.legal-body .updated{ font-size:13px; color:var(--ink-soft); font-style:italic; margin-bottom:40px; }

/* ============================== 404 ============================== */
.error-page{
  min-height:100vh; display:flex; align-items:center;
  background:linear-gradient(180deg, var(--carbon-deep) 0%, #1d1a17 100%);
  position:relative; overflow:hidden; padding:140px 0 100px;
}
.error-page .wrap{ position:relative; z-index:2; }
.error-page h1{ font-size:clamp(34px,5vw,58px); color:var(--bone); margin-bottom:20px; max-width:700px; }
.error-page p{ font-size:17px; color:#C9C4BB; font-weight:300; max-width:520px; margin-bottom:36px; }

/* ============================ RESPONSIVE ========================= */
@media (max-width:1024px){
  .section-head-row{ flex-direction:column; align-items:flex-start; gap:32px; }
  .section-head-logo img{ height:110px; }
}

@media (max-width:860px){
  :root{ --header-h:92px; }
  .wrap{ padding:0 24px; }

  header nav{ display:none; }        /* nav de escritorio */
  .nav-toggle{ display:block; }      /* hamburguesa */
  .foot-bottom nav{ display:flex; }  /* el nav legal del pie si se muestra */

  .logo-mark{ height:44px; }
  .brand-wordmark-img{ height:35px; padding-left:12px; }
  header{ padding:16px 0; background:rgba(23,21,19,0.94); backdrop-filter:blur(8px); }

  .hero{ padding-top:100px; min-height:auto; padding-bottom:90px; }
  .hero-actions .btn{ width:100%; }

  .serv-grid{ grid-template-columns:1fr; }
  .serv-item:nth-child(odd), .serv-item:nth-child(even){ padding:36px 0; border-right:none; border-left:none; }
  .nos-grid{ grid-template-columns:1fr; gap:44px; }
  .nos-visuals{ grid-template-columns:1fr 1fr; gap:12px; }
  .ins-grid{ grid-template-columns:1fr; }
  section{ padding:90px 0; }
  .foot-info{ gap:32px; }
  .foot-brand .logo-mark{ height:140px; }
  .foot-actions .btn{ flex:1 1 100%; }
  .archive-item{ grid-template-columns:1fr; gap:8px; }
  .archive-hero, .legal-hero{ padding:70px 0 60px; }
  .foot-bottom{ flex-direction:column; align-items:flex-start; }
}

@media (prefers-reduced-motion: reduce){
  html{ scroll-behavior:auto; }
  *{ transition:none !important; animation:none !important; }
}

@media print{
  header, .nav-panel, .nav-toggle, .watermark, .hero-actions, .foot-actions{ display:none !important; }
  body{ background:#fff; color:#000; }
}
