/* ==========================================================================
   SOLVENTIA — style.css
   Base, reset, design tokens, tipografía, layout general.
   ========================================================================== */

/* ---------- Fonts ---------- */
@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,300;0,400;0,500;0,600;1,400&family=Inter:wght@300;400;500;600;700&family=IBM+Plex+Mono:wght@400;500&display=swap');

/* ---------- Design tokens ---------- */
:root{
  /* Color */
  --c-ink-900:#070B14;
  --c-ink-800:#0B1220;
  --c-ink-700:#121B2E;
  --c-ink-600:#1B2540;
  --c-paper-100:#F6F2E9;
  --c-paper-50:#FBF9F4;
  --c-brass-500:#B8924A;
  --c-brass-300:#D9BD86;
  --c-brass-700:#8A6E3B;
  --c-line-dark:rgba(184,146,74,.16);
  --c-line-light:rgba(18,20,28,.10);
  --c-muted-on-dark:#93A0BA;
  --c-muted-on-light:#5A6072;
  --c-text-dark:#0E1220;
  --c-white:#ffffff;
  --c-success:#7FC29B;

  /* Type */
  --f-display:'Cormorant Garamond', serif;
  --f-body:'Inter', sans-serif;
  --f-mono:'IBM Plex Mono', monospace;

  /* Scale */
  --fs-hero: clamp(3.4rem, 7vw, 7.4rem);
  --fs-h1: clamp(2.6rem, 4.4vw, 4.6rem);
  --fs-h2: clamp(2.1rem, 3.2vw, 3.2rem);
  --fs-h3: clamp(1.4rem, 1.8vw, 1.9rem);
  --fs-body: 1.05rem;
  --fs-small: .875rem;
  --fs-micro: .75rem;

  /* Spacing */
  --sp-section: clamp(6rem, 12vw, 11rem);
  --sp-gutter: clamp(1.5rem, 5vw, 4rem);
  --max-w: 1360px;

  /* Motion */
  --ease-premium: cubic-bezier(.16,.84,.44,1);
  --dur-fast:.3s;
  --dur-mid:.6s;
  --dur-slow:1.1s;

  /* Radius / shadow */
  --r-sm:2px;
  --r-md:6px;
  --r-lg:18px;
  --shadow-soft: 0 30px 80px -30px rgba(7,11,20,.35);
  --shadow-card: 0 20px 50px -25px rgba(7,11,20,.25);
}

/* ---------- Reset ---------- */
*, *::before, *::after{ box-sizing:border-box; margin:0; padding:0; }
html{ scroll-behavior:auto; overflow-x:hidden; max-width:100%; }
html.has-lenis{ scroll-behavior:auto; }
body{
  font-family:var(--f-body);
  background:var(--c-paper-100);
  color:var(--c-text-dark);
  font-size:var(--fs-body);
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
  overflow-x:hidden;
}
img, video, svg{ display:block; max-width:100%; }
a{ color:inherit; text-decoration:none; }
ul, ol{ list-style:none; }
button, input, textarea, select{ font:inherit; color:inherit; background:none; border:none; }
button{ cursor:pointer; }
h1,h2,h3,h4,h5{ font-family:var(--f-display); font-weight:500; line-height:1.08; letter-spacing:-.01em; }

/* ---------- Accessibility ---------- */
.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:fixed; top:-100px; left:16px; z-index:1000;
  background:var(--c-brass-500); color:var(--c-ink-900);
  padding:14px 22px; border-radius:var(--r-sm); font-weight:600; font-size:var(--fs-small);
  transition:top var(--dur-fast) var(--ease-premium);
}
.skip-link:focus{ top:16px; }

:focus-visible{
  outline:2px solid var(--c-brass-500);
  outline-offset:3px;
  border-radius:2px;
}

@media (prefers-reduced-motion: reduce){
  *, *::before, *::after{
    animation-duration:.001ms !important;
    animation-iteration-count:1 !important;
    transition-duration:.001ms !important;
    scroll-behavior:auto !important;
  }
}

/* ---------- Layout helpers ---------- */
.container{
  max-width:var(--max-w);
  margin-inline:auto;
  padding-inline:var(--sp-gutter);
}
.section{ padding-block:var(--sp-section); position:relative; scroll-margin-top:110px; }
.section--dark{ background:var(--c-ink-900); color:var(--c-paper-50); }
.section--paper{ background:var(--c-paper-100); }
.section--white{ background:var(--c-paper-50); }

.eyebrow{
  display:inline-flex; align-items:center; gap:12px;
  font-family:var(--f-mono); font-size:var(--fs-micro);
  letter-spacing:.18em; text-transform:uppercase;
  color:var(--c-brass-700); margin-bottom:20px;
}
.section--dark .eyebrow{ color:var(--c-brass-300); }
.eyebrow::before{ content:""; width:30px; height:1px; background:var(--c-brass-500); }

.section-head{
  display:flex; justify-content:space-between; align-items:flex-end;
  gap:40px; margin-bottom:clamp(3rem,6vw,5.5rem); flex-wrap:wrap;
}
.section-head p{ max-width:380px; color:var(--c-muted-on-light); font-size:.98rem; line-height:1.75; }
.section--dark .section-head p{ color:var(--c-muted-on-dark); }

.section-title{ font-size:var(--fs-h2); line-height:1.14; letter-spacing:-.01em; max-width:640px; }
.text-muted{ color:var(--c-muted-on-light); }
.section--dark .text-muted{ color:var(--c-muted-on-dark); }

.visually-hidden-mobile{ }
@media (max-width:720px){
  .section{ padding-block:clamp(4rem,14vw,6rem); }
}
