/*
 * ═══════════════════════════════════════════════════════════════════════════
 *  LA ÚLTIMA PISTA — lup.css
 *  Base compartida: tokens, reset, tipografía, layout, nav, botones,
 *  footer, lang-switcher, formularios, toast, FAQ items, utilidades.
 *
 *  Usado por: index.html, precios.html, legal.html, briefing.html,
 *             pedido-confirmado.html, valoracion.html, demo-*.html
 *
 *  Fuentes requeridas en <head>:
 *  <link href="https://fonts.googleapis.com/css2?family=Cormorant+Garamond:
 *    ital,wght@0,300;0,400;0,600;1,300;1,400;1,600&family=IBM+Plex+Mono:
 *    wght@300;400;500&display=swap" rel="stylesheet">
 * ═══════════════════════════════════════════════════════════════════════════
 */

/* ══════════════════════════════════════════════════════
   1. RESET
══════════════════════════════════════════════════════ */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
img,video,svg{display:block;max-width:100%}
ul,ol{list-style:none}
button{cursor:pointer;font:inherit;border:none;background:none}
input,textarea,select{font:inherit;outline:none}
a{text-decoration:none}
[hidden]{display:none!important}

/* ══════════════════════════════════════════════════════
   2. DESIGN TOKENS
══════════════════════════════════════════════════════ */
:root{
  /* ── Paleta oscura (hero, secciones dark) ── */
  --d-bg:    #0a0806;
  --d-mid:   #130f0a;
  --d-lift:  #1c1610;
  --d-veil:  rgba(10,8,6,.93);
  --d-paper: #f0e8dc;
  --d-cream: #c8bba8;
  --d-muted: #9a8d7e;   /* AA pass on #0a0806: ~5.1:1 */
  --d-faint: #5a4e42;
  --d-brd:   rgba(200,168,72,.18);
  --d-brd2:  rgba(255,255,255,.09);

  /* ── Paleta clara (secciones body) ── */
  --l-bg:    #faf8f4;
  --l-warm:  #f4efea;
  --l-card:  #ffffff;
  --l-ink:   #1a1410;
  --l-mid:   #4a3f34;
  --l-muted: #6b5d50;   /* AA pass on #faf8f4: ~5.2:1 */
  --l-faint: #a89888;
  --l-brd:   rgba(180,150,100,.18);
  --l-brd2:  rgba(180,150,100,.08);

  /* ── Marca — color exacto del logo ── */
  --gold:    #c8a848;
  --gold-lt: #d8bc6a;
  --gold-dk: #9a7e30;
  --gold-bg: rgba(200,168,72,.08);

  /* ── Estado ── */
  --ok:      #5a9e7a;
  --ok-bg:   rgba(90,158,122,.08);
  --ok-brd:  rgba(90,158,122,.25);
  --err:     #c05858;
  --err-bg:  rgba(192,88,88,.08);
  --err-brd: rgba(192,88,88,.25);

  /* ── Tipografía — fuentes del logo ── */
  --serif: 'Cormorant Garamond', Georgia, serif;
  --mono:  'IBM Plex Mono', 'Courier New', monospace;

  /* ── Radios ── */
  --r:  4px;
  --r2: 8px;
  --r3: 14px;
  --r4: 22px;
}

/* ══════════════════════════════════════════════════════
   3. BASE
══════════════════════════════════════════════════════ */
html{
  scroll-behavior:smooth;
  font-size:16px;
  -webkit-text-size-adjust:100%;
}
body{
  background:var(--l-bg);
  color:var(--l-mid);
  font-family:var(--mono);
  font-weight:300;
  line-height:1.7;
  overflow-x:hidden;
  min-height:100svh;
}
/* Grain texture overlay */
body::before{
  content:'';
  position:fixed;inset:0;z-index:0;pointer-events:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='250' height='250'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.018'/%3E%3C/svg%3E");
  background-size:200px 200px;
}

/* ══════════════════════════════════════════════════════
   4. TIPOGRAFÍA
══════════════════════════════════════════════════════ */
h1{font-family:var(--serif);line-height:1.03;letter-spacing:-.015em;font-weight:300}
h2{font-family:var(--serif);font-size:clamp(2.2rem,5vw,4.8rem);line-height:1.06;letter-spacing:-.01em;font-weight:300}
h3{font-family:var(--serif);font-size:clamp(1.4rem,2.5vw,2.2rem);line-height:1.18;font-weight:400}
h4{font-family:var(--mono);font-size:.65rem;font-weight:500;letter-spacing:.22em;text-transform:uppercase;color:var(--gold)}
h5{font-size:.6rem;font-weight:500;letter-spacing:.2em;text-transform:uppercase;color:var(--gold)}
p{line-height:1.85}
.lead{font-size:1.05rem;line-height:1.9}
strong{font-weight:500}
em{font-style:italic}

/* Contexto oscuro */
.on-dark h1,.on-dark h2,.on-dark h3{color:var(--d-paper)}
.on-dark h4{color:var(--gold)}
.on-dark p,.on-dark .lead{color:var(--d-cream)}
.on-dark a:not(.btn){color:var(--gold)}
.on-dark a:not(.btn):hover{color:var(--gold-lt)}

/* Contexto claro */
.on-light h2,.on-light h3{color:var(--l-ink)}
.on-light p{color:var(--l-muted)}
.on-light .lead{color:var(--l-mid)}
.on-light a:not(.btn){color:var(--gold-dk)}
.on-light a:not(.btn):hover{color:var(--gold)}

/* ══════════════════════════════════════════════════════
   5. LAYOUT
══════════════════════════════════════════════════════ */
.wrap{
  max-width:1160px;margin:0 auto;
  padding:0 clamp(1.25rem,5vw,3rem);
  position:relative;z-index:1;
}
.section{padding:clamp(5rem,10vw,10rem) 0;position:relative}

/* Separador entre secciones claras */
.section+.section::before{
  content:'';
  position:absolute;top:0;
  left:clamp(1.25rem,5vw,3rem);right:clamp(1.25rem,5vw,3rem);
  height:1px;
  background:linear-gradient(90deg,transparent,var(--l-brd),transparent);
}
/* Nunca separador entre/hacia secciones oscuras */
.section--dk+.section::before,
.section+.section--dk::before,
.on-dark+.section::before,
.section+.on-dark::before{display:none}

/* Variantes de sección */
.section--dk{background:var(--d-mid)}
.section--warm{background:var(--l-warm)}
.section--light{background:var(--l-bg)}

.eyebrow{display:block;margin-bottom:.9rem}
.section-head{margin-bottom:clamp(3rem,6vw,6rem)}
.section-head h2{margin-top:.6rem}
.section-head p{margin-top:.85rem;font-size:.9rem;max-width:560px;color:var(--l-muted)}
.section-head--center{text-align:center;max-width:640px;margin-left:auto;margin-right:auto}

.text-center{text-align:center}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}

/* ══════════════════════════════════════════════════════
   6. ANIMACIÓN — REVEAL ON SCROLL
══════════════════════════════════════════════════════ */
[data-reveal]{
  opacity:0;
  transform:translateY(22px);
  transition:opacity .7s cubic-bezier(.22,1,.36,1),transform .7s cubic-bezier(.22,1,.36,1);
}
[data-reveal].vis{opacity:1;transform:none}

/* ══════════════════════════════════════════════════════
   7. BOTONES
══════════════════════════════════════════════════════ */
.btn{
  display:inline-flex;align-items:center;gap:.5rem;
  font-family:var(--mono);font-size:.67rem;font-weight:500;
  letter-spacing:.14em;text-transform:uppercase;
  padding:.9rem 1.9rem;border-radius:var(--r2);
  transition:background .2s,border-color .2s,color .2s,transform .15s,box-shadow .2s;
  cursor:pointer;border:1px solid transparent;white-space:nowrap;line-height:1;
}

/* Variantes */
.btn--primary{background:var(--gold);color:#0a0806;border-color:var(--gold);font-weight:600}
.btn--primary:hover{background:var(--gold-lt);color:#0a0806;transform:translateY(-2px);box-shadow:0 8px 28px rgba(200,168,72,.28)}
.btn--ghost-dk{background:transparent;color:var(--d-paper);border-color:rgba(200,168,72,.4)}
.btn--ghost-dk:hover{border-color:var(--gold);color:var(--gold)}
.btn--ghost-lt{background:transparent;color:var(--l-ink);border-color:var(--l-brd)}
.btn--ghost-lt:hover{border-color:var(--gold);color:var(--gold-dk)}

/* Tamaños */
.btn--lg{padding:1.05rem 2.2rem;font-size:.73rem}
.btn--sm{padding:.6rem 1.25rem;font-size:.63rem}
.btn--full{width:100%;justify-content:center}

/* ══════════════════════════════════════════════════════
   8. NAVEGACIÓN
══════════════════════════════════════════════════════ */
.nav{
  position:fixed;top:0;left:0;right:0;z-index:100;
  padding:1.5rem 0;
  transition:background .4s,padding .3s,border-color .4s;
  border-bottom:1px solid transparent;
}
.nav.scrolled{
  background:var(--d-veil);
  backdrop-filter:blur(24px);
  -webkit-backdrop-filter:blur(24px);
  padding:.85rem 0;
  border-color:var(--d-brd);
}
.nav__inner{display:flex;align-items:center;justify-content:space-between;gap:2rem}

/* Links de nav */
.nav__links{display:flex;align-items:center;gap:2rem}
.nav__links a{
  font-size:.65rem;font-weight:400;letter-spacing:.14em;text-transform:uppercase;
  color:rgba(240,232,220,.72);transition:color .2s;
}
.nav__links a:hover,
.nav__links a[aria-current="page"]{color:var(--d-paper)}
.nav__links a[aria-current="page"]{color:var(--gold)}

/* Burger — oculto en desktop */
.nav__burger{
  display:none;
  font-size:1.1rem;color:var(--d-paper);padding:.35rem;
}

/* CTA desktop */
.nav__cta-desk{/* visible en desktop, oculto en mobile via media query */}

/* Menú móvil */
.nav__mobile{
  position:fixed;inset:0;z-index:200;
  background:rgba(10,8,6,.97);
  display:flex;flex-direction:column;
  align-items:center;justify-content:center;
  gap:1.4rem;
  padding:5rem 2rem 3rem;
  overflow-y:auto;
  transform:translateX(100%);
  transition:transform .4s cubic-bezier(.77,0,.18,1);
}
.nav__mobile.open{transform:none}
.nav__mobile a{
  font-family:var(--serif);font-size:clamp(2.4rem,7vw,4.5rem);
  color:var(--d-paper);line-height:1;font-weight:300;transition:color .2s;
}
.nav__mobile a:hover{color:var(--gold)}

/* Botón cerrar */
.nav__close{
  position:absolute;top:2rem;right:2rem;
  font-size:1rem;color:var(--d-muted);transition:color .2s;
}
.nav__close:hover{color:var(--d-paper)}

/* ══════════════════════════════════════════════════════
   9. FORMULARIOS (compartidos por index, briefing, etc.)
══════════════════════════════════════════════════════ */
.form-card{
  background:var(--l-card);border:1px solid var(--l-brd);
  border-radius:var(--r4);padding:2.5rem;
  position:relative;overflow:hidden;
}
.form-card::before{
  content:'';position:absolute;top:0;left:15%;right:15%;height:1px;
  background:linear-gradient(90deg,transparent,var(--gold),transparent);opacity:.25;
}
.form-group{margin-bottom:1.25rem}
.form-lbl{
  display:block;font-size:.62rem;font-weight:500;
  letter-spacing:.16em;text-transform:uppercase;
  color:var(--l-muted);margin-bottom:.45rem;
}
.form-inp{
  width:100%;padding:.8rem 1rem;
  background:var(--l-warm);border:1px solid var(--l-brd);
  border-radius:var(--r2);color:var(--l-ink);
  font-size:.88rem;transition:border-color .2s;appearance:none;
}
.form-inp:focus{border-color:rgba(200,168,72,.4)}
.form-inp::placeholder{color:var(--l-faint)}
.form-inp--error{border-color:var(--err-brd)}

/* Form OK state */
.form-ok{display:none;text-align:center;padding:3rem 1.5rem}
.form-ok__icon{font-size:2.5rem;margin-bottom:1rem}
.form-ok h3{font-family:var(--serif);font-weight:300;font-size:2rem;color:var(--l-ink);margin-bottom:.5rem}
.form-ok p{font-size:.88rem;color:var(--l-muted)}

/* ══════════════════════════════════════════════════════
   10. FAQ ITEMS (compartido por index y precios)
══════════════════════════════════════════════════════ */
.faq-list{display:flex;flex-direction:column}
.faq-item{border-bottom:1px solid var(--l-brd2)}
.faq-item summary{
  list-style:none;
  display:flex;align-items:center;justify-content:space-between;
  padding:1.4rem 0;cursor:pointer;gap:1rem;
  font-family:var(--serif);font-size:clamp(1rem,1.8vw,1.35rem);
  color:var(--l-ink);line-height:1.3;font-weight:300;transition:color .18s;
}
.faq-item summary:hover{color:var(--gold-dk)}
.faq-item summary::-webkit-details-marker{display:none}
.faq-item summary::after{
  content:'+';font-family:var(--mono);font-size:1.1rem;
  color:var(--gold);flex-shrink:0;transition:transform .3s;font-weight:300;
}
.faq-item[open] summary::after{transform:rotate(45deg)}
.faq-ans{
  padding:.2rem 0 1.4rem;
  font-size:.86rem;line-height:1.9;color:var(--l-muted);max-width:560px;
}

/* ══════════════════════════════════════════════════════
   11. FOOTER
══════════════════════════════════════════════════════ */
.footer{
  background:var(--d-bg);
  border-top:1px solid var(--d-brd);
  padding:4.5rem 0 2.5rem;
}
.footer__grid{
  display:grid;
  grid-template-columns:2fr 1fr 1fr 1fr;
  gap:3rem;margin-bottom:3rem;
}
.footer__desc{
  font-size:.8rem;line-height:1.8;
  color:var(--d-muted);max-width:260px;margin-top:.85rem;
}
.footer__col h5{
  font-size:.6rem;font-weight:500;letter-spacing:.2em;
  text-transform:uppercase;color:var(--gold);margin-bottom:1rem;
}
.footer__col a{
  display:block;font-size:.8rem;color:var(--d-muted);
  margin-bottom:.55rem;transition:color .2s;
}
.footer__col a:hover{color:var(--d-cream)}
.footer__bot{
  padding-top:2rem;border-top:1px solid var(--d-brd2);
  display:flex;justify-content:space-between;align-items:center;
  flex-wrap:wrap;gap:1rem;
}
.footer__bot small{font-size:.7rem;color:var(--d-faint)}

/* ══════════════════════════════════════════════════════
   12. LANG SWITCHER
══════════════════════════════════════════════════════ */
.lang-switcher{display:flex;align-items:center;gap:.2rem;margin-left:.5rem}
.lang-btn{
  font-family:var(--mono);font-size:.58rem;font-weight:500;
  letter-spacing:.1em;padding:.3rem .5rem;border-radius:var(--r);
  border:1px solid transparent;color:rgba(240,232,220,.45);
  background:none;cursor:pointer;transition:color .2s,border-color .2s;
}
.lang-btn:hover{color:var(--d-paper)}
.lang-btn.active{color:var(--gold);border-color:rgba(200,168,72,.35)}

/* ══════════════════════════════════════════════════════
   13. TOAST
══════════════════════════════════════════════════════ */
.toast{
  position:fixed;bottom:2rem;right:2rem;z-index:999;
  background:var(--d-mid);border:1px solid var(--d-brd);
  color:var(--d-cream);padding:.9rem 1.5rem;border-radius:var(--r2);
  font-size:.82rem;transform:translateY(100px);opacity:0;
  transition:all .3s;pointer-events:none;max-width:320px;
}
.toast.show{transform:none;opacity:1}

/* ══════════════════════════════════════════════════════
   14. IMAGEN PLACEHOLDER
══════════════════════════════════════════════════════ */
.img-ph{
  background:var(--l-warm);
  border:1.5px dashed var(--l-faint);
  border-radius:var(--r3);
  display:flex;flex-direction:column;align-items:center;
  justify-content:center;gap:.5rem;
  color:var(--l-faint);font-size:.62rem;letter-spacing:.12em;
  text-transform:uppercase;font-family:var(--mono);
  position:relative;overflow:hidden;
}
.img-ph::before{
  content:'';position:absolute;inset:0;
  background:repeating-linear-gradient(45deg,transparent,transparent 10px,rgba(180,150,100,.04) 10px,rgba(180,150,100,.04) 11px);
}
.img-ph__icon{font-size:1.5rem;z-index:1}
.img-ph__txt{z-index:1;text-align:center;line-height:1.7}

/* ══════════════════════════════════════════════════════
   15. RESPONSIVE — BASE (afecta a nav y footer en todas las páginas)
══════════════════════════════════════════════════════ */
@media(max-width:640px){
  /* Nav mobile */
  .nav__links,.nav__cta-desk{display:none}
  .nav__burger{display:inline-flex;align-items:center;justify-content:center;min-width:44px;min-height:44px}
  .lang-switcher{display:none} /* mostrado dentro del menú móvil */
  .nav__close{min-width:44px;min-height:44px;display:flex;align-items:center;justify-content:center}

  /* Footer */
  .footer__grid{grid-template-columns:1fr}
  .footer__col a{padding:.4rem 0;margin-bottom:.25rem}
  .footer__col h5{margin-bottom:.75rem}
  .footer__bot{flex-direction:column;align-items:flex-start;gap:.5rem}

  /* Secciones */
  .section{padding:clamp(3rem,8vw,5rem) 0}
  .section-head{margin-bottom:clamp(2rem,5vw,3rem)}

  /* Tipografía base en móvil */
  h4,.eyebrow{font-size:.7rem}
  .section-head p{font-size:.85rem}

  /* Formularios — iOS zoom fix */
  .form-inp{font-size:1rem!important}

  /* FAQ touch targets */
  .faq-item summary{padding:1.2rem 0;font-size:1rem}
  .faq-ans{font-size:.88rem}
}

@media(max-width:860px){
  .footer__grid{grid-template-columns:1fr 1fr}
}
