/* ============================================================
   Escuela LUBA — estilos compartidos de la maqueta
   Tokens + base + header + footer + botones + componentes comunes.
   Cada página enlaza este archivo y añade <style> propio para
   lo específico de su pantalla. Derivado de mockups/home.html (Katy).
   ============================================================ */

/* ============ TOKENS ============ */
:root{
  --wine-900:#5e1741; --wine-700:#7a2456; --wine-600:#993366; --wine-500:#ad4d7d;
  --mauve-400:#b07ca0; --mauve-300:#c9a3bd; --mauve-100:#f3e7ee;
  --cream:#faf6f1; --sand-100:#f1e9e1; --sand-200:#e4d8cd;
  --ink-900:#2b1f25; --ink-600:#6b5a62; --ink-400:#9a8a92;
  --peach-400:#e8a87c; --peach-100:#fbeee3;
  --success:#5b8a72; --star:#d9a441; --white:#fff;

  --font-display:"Fraunces",Georgia,serif;
  --font-body:"Hanken Grotesk",system-ui,sans-serif;

  --fs-display:clamp(2.5rem,7vw,4.5rem);
  --fs-h1:clamp(2rem,5vw,3rem);
  --fs-h2:clamp(1.5rem,3.5vw,2rem);
  --fs-h3:clamp(1.25rem,2.5vw,1.5rem);
  --fs-lead:clamp(1.125rem,2vw,1.375rem);
  --fs-body:1.0625rem; --fs-sm:.9375rem; --fs-xs:.8125rem;

  --space-2:.5rem; --space-3:.75rem; --space-4:1rem; --space-5:1.5rem;
  --space-6:2rem; --space-8:3rem; --space-10:4rem; --space-12:6rem;

  --container:1140px; --container-narrow:760px; --gutter:clamp(1.25rem,5vw,3rem);

  --radius-md:14px; --radius-lg:24px; --radius-xl:36px; --radius-pill:999px;
  --shadow-sm:0 1px 2px rgba(94,23,65,.06),0 2px 8px rgba(94,23,65,.05);
  --shadow-md:0 6px 20px rgba(94,23,65,.08),0 2px 6px rgba(94,23,65,.05);
  --shadow-lg:0 16px 48px rgba(94,23,65,.12);
  --shadow-focus:0 0 0 3px rgba(153,51,102,.35);
}

/* ============ BASE ============ */
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{
  font-family:var(--font-body); font-size:var(--fs-body);
  color:var(--ink-900); background:var(--cream); line-height:1.6;
  -webkit-font-smoothing:antialiased;
}
img{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
h1,h2,h3{font-family:var(--font-display);line-height:1.1;letter-spacing:-.01em;font-weight:500}
:focus-visible{outline:none;box-shadow:var(--shadow-focus);border-radius:6px}

.container{max-width:var(--container);margin-inline:auto;padding-inline:var(--gutter)}
.overline{font-size:var(--fs-xs);font-weight:600;text-transform:uppercase;letter-spacing:.12em;color:var(--wine-600)}
.lead{font-size:var(--fs-lead);color:var(--ink-600);max-width:48ch}
.bg-sand{background:var(--sand-100)}
.skip-link{position:absolute;left:-9999px;top:0;background:var(--wine-600);color:#fff;
  padding:.6rem 1rem;border-radius:0 0 var(--radius-md) 0;z-index:100;font-weight:600}
.skip-link:focus{left:0}

/* ============ BUTTONS ============ */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:.5rem;
  font-family:var(--font-body);font-size:var(--fs-body);font-weight:600;
  padding:.875rem 1.75rem;border-radius:var(--radius-md);border:none;cursor:pointer;
  min-height:48px;transition:transform .15s ease,box-shadow .15s ease,background .15s ease;
}
.btn-primary{background:var(--wine-600);color:#fff}
.btn-primary:hover{background:var(--wine-700);transform:translateY(-1px);box-shadow:var(--shadow-md)}
.btn-ghost{background:transparent;color:var(--wine-600);border:1.5px solid var(--wine-600)}
.btn-ghost:hover{background:var(--mauve-100)}
.btn-block{width:100%}
.btn-sm{padding:.6rem 1.15rem;min-height:42px;font-size:var(--fs-sm)}

/* ============ HEADER ============ */
.site-header{
  position:sticky;top:0;z-index:50;
  background:rgba(250,246,241,.85);backdrop-filter:saturate(180%) blur(12px);
  border-bottom:1px solid var(--sand-200);
}
.header-inner{display:flex;align-items:center;justify-content:space-between;gap:var(--space-5);padding-block:.75rem}
.logo img{height:38px;width:auto}
.nav{display:none;gap:var(--space-6);font-size:var(--fs-sm);font-weight:500}
.nav a{color:var(--ink-600);transition:color .15s}
.nav a:hover,.nav a[aria-current="page"]{color:var(--wine-600)}
.nav a[aria-current="page"]{font-weight:600}
.header-cta{display:flex;align-items:center;gap:var(--space-3)}
.link-login{display:none;font-size:var(--fs-sm);font-weight:600;color:var(--wine-600)}

/* botón hamburguesa (solo móvil) */
.nav-toggle{
  display:inline-flex;align-items:center;justify-content:center;
  width:44px;height:44px;border:none;background:transparent;cursor:pointer;
  color:var(--wine-700);border-radius:var(--radius-md);flex:none;
}
.nav-toggle:hover{background:var(--mauve-100)}
.nav-toggle svg{width:24px;height:24px}
.nav-toggle .icon-close{display:none}
.nav-toggle[aria-expanded="true"] .icon-open{display:none}
.nav-toggle[aria-expanded="true"] .icon-close{display:block}

/* panel de navegación móvil desplegable */
.mobile-nav{
  display:none;border-bottom:1px solid var(--sand-200);background:var(--cream);
}
.mobile-nav.open{display:block}
.mobile-nav ul{list-style:none;display:flex;flex-direction:column;padding-block:.5rem}
.mobile-nav a{
  display:block;padding:.9rem var(--gutter);font-size:var(--fs-body);font-weight:500;
  color:var(--ink-900);min-height:48px;
}
.mobile-nav a:hover,.mobile-nav a[aria-current="page"]{color:var(--wine-600);background:var(--mauve-100)}

@media(min-width:860px){
  .nav{display:flex}
  .link-login{display:inline}
  .nav-toggle{display:none}
  .mobile-nav{display:none!important}
}

/* ============ SECTION SCAFFOLD ============ */
section.block{padding-block:var(--space-12)}
.section-head{max-width:var(--container-narrow);margin-bottom:var(--space-8)}
.section-head.center{margin-inline:auto;text-align:center}
.section-head h2{font-size:var(--fs-h1);margin-block:.5rem .75rem;color:var(--wine-900)}
.section-head p{color:var(--ink-600);font-size:var(--fs-lead)}

/* ============ PRICE ============ */
.price{font-family:var(--font-display);font-weight:600;font-size:1.5rem;color:var(--wine-900)}
.price small{font-family:var(--font-body);font-size:var(--fs-xs);font-weight:500;color:var(--ink-400);display:block;margin-top:-2px}

/* ============ VALUE STRIP ============ */
.value-strip{background:var(--wine-900);color:#fff}
.value-strip .container{display:flex;flex-wrap:wrap;gap:var(--space-5) var(--space-8);
  justify-content:center;text-align:center;padding-block:var(--space-5)}
.value-strip .item{display:flex;align-items:center;gap:.6rem;font-size:var(--fs-sm);font-weight:500}
.value-strip .item span:first-child{font-size:1.25rem}

/* ============ STARS ============ */
.stars{color:var(--star);letter-spacing:2px}

/* ============ FOOTER ============ */
.site-footer{background:var(--ink-900);color:rgba(255,255,255,.72);font-size:var(--fs-sm)}
.footer-grid{display:grid;gap:var(--space-8);padding-block:var(--space-10)}
.footer-grid h4{font-family:var(--font-body);font-weight:700;color:#fff;font-size:var(--fs-sm);
  text-transform:uppercase;letter-spacing:.1em;margin-bottom:var(--space-4)}
.footer-grid a{display:block;padding:.25rem 0;transition:color .15s}
.footer-grid a:hover{color:#fff}
.footer-brand img{height:34px;filter:brightness(0) invert(1);opacity:.95;margin-bottom:var(--space-4)}
.footer-brand p{max-width:34ch}
.footer-bottom{border-top:1px solid rgba(255,255,255,.12);padding-block:var(--space-5);
  display:flex;flex-wrap:wrap;gap:var(--space-4);justify-content:space-between;font-size:var(--fs-xs);color:rgba(255,255,255,.5)}
@media(min-width:760px){.footer-grid{grid-template-columns:2fr 1fr 1fr 1fr}}

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