/* ═══════════════════════════════════════════════════════════════════
   CUERVO NEGRO — Tattoo & Piercing Studio
   Hoja de estilos única. Todo se controla desde :root (abajo).
   Para cambiar la paleta entera, tocá solo el bloque "TINTAS".
   ═══════════════════════════════════════════════════════════════════ */

/* ───────────────────────── 1 · VARIABLES ───────────────────────── */
:root{
  /* ── TINTAS · cambiá acá y cambia todo el sitio ── */
  --ink:      #0B0B0C;   /* negro base */
  --ink-2:    #131317;   /* negro un tono arriba */
  --ink-3:    #1B1B20;   /* superficies */
  --ink-4:    #26262C;   /* bordes fuertes */
  --bone:     #EFE9DE;   /* papel hueso */
  --bone-2:   #E2DACB;   /* papel sombra */
  --bone-3:   #CFC5B2;   /* papel borde */
  --sheen:    #3E8C84;   /* reflejo verde del ala del cuervo (acento) */
  --sheen-2:  #7E6CA8;   /* reflejo violeta (acento secundario) */
  --ember:    #C2502F;   /* alertas y avisos */

  /* ── Semánticas: se invierten solas en las secciones claras ── */
  --bg:   var(--ink);
  --bg-2: var(--ink-2);
  --bg-3: var(--ink-3);
  --fg:   var(--bone);
  --fg-2: #A8A29A;
  --fg-3: #6D6961;
  --line:   rgba(239,233,222,.13);
  --line-2: rgba(239,233,222,.30);
  --accent: var(--sheen);

  /* ── Tipografías ── */
  --f-disp: "Bodoni Moda", "Times New Roman", Times, serif;
  --f-sans: "Archivo", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  --f-mono: "Space Mono", ui-monospace, SFMono-Regular, Menlo, monospace;

  /* ── Escala tipográfica ── */
  --t-hero: clamp(3.5rem, min(13.2vw, 21vh), 11.5rem);  /* respeta pantallas bajas */
  --t-h2:   clamp(2.4rem, 6.2vw, 5.2rem);
  --t-h3:   clamp(1.35rem, 2.4vw, 1.9rem);
  --t-lead: clamp(1.05rem, 1.5vw, 1.3rem);
  --t-body: clamp(.98rem, 1.05vw, 1.06rem);
  --t-mono: clamp(.66rem, .78vw, .76rem);

  /* ── Ritmo y medidas ── */
  --wrap: 1280px;
  --pad:  clamp(1.25rem, 5vw, 4.5rem);
  --sp:   clamp(4.5rem, 11vw, 10rem);
  --r:    2px;              /* radio: casi recto, estética de imprenta */
  --r-lg: 3px;

  /* ── Curvas ── */
  --e:    cubic-bezier(.22,1,.36,1);
  --e-in: cubic-bezier(.62,.05,.36,1);
  --dur:  .55s;
}

/* ───────────────────────── 2 · RESET ───────────────────────── */
*,*::before,*::after{ box-sizing:border-box; }
*{ margin:0; }
html{
  -webkit-text-size-adjust:100%;
  scroll-behavior:smooth;
  scroll-padding-top:5.5rem;
}
body{
  background:var(--ink);
  color:var(--bone);
  font-family:var(--f-sans);
  font-size:var(--t-body);
  font-variation-settings:"wdth" 100,"wght" 400;
  line-height:1.62;
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
  overflow-x:hidden;
  text-rendering:optimizeLegibility;
}
[hidden]{ display:none !important; }   /* gana siempre sobre display:grid/flex */
img,svg,video{ display:block; max-width:100%; }
button,input,select,textarea{ font:inherit; color:inherit; }
button{ background:none; border:0; cursor:pointer; }
a{ color:inherit; text-decoration:none; }
ul,ol{ list-style:none; padding:0; }
h1,h2,h3,h4{ font-weight:inherit; line-height:1.02; }
fieldset{ border:0; padding:0; }
legend{ padding:0; }
::selection{ background:var(--sheen); color:var(--ink); }
:focus-visible{
  outline:2px solid var(--sheen);
  outline-offset:3px;
  border-radius:var(--r);
}
:focus:not(:focus-visible){ outline:none; }

/* ───────────────────────── 3 · UTILIDADES ───────────────────────── */
.wrap{ width:100%; max-width:var(--wrap); margin-inline:auto; padding-inline:var(--pad); }
.mono{
  font-family:var(--f-mono);
  font-size:var(--t-mono);
  letter-spacing:.16em;
  text-transform:uppercase;
  line-height:1.5;
}
.skip{
  position:fixed; top:.75rem; left:.75rem; z-index:999;
  background:var(--sheen); color:var(--ink);
  padding:.7rem 1.1rem; font-weight:600; letter-spacing:.02em;
  transform:translateY(-160%);
  transition:transform .3s var(--e);
}
.skip:focus{ transform:none; }

/* Grano de papel sobre todo el sitio */
.grain{
  position:fixed; inset:-50%;
  z-index:1; pointer-events:none;
  opacity:.045;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='220' height='220'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.82' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='220' height='220' filter='url(%23n)'/%3E%3C/svg%3E");
  animation:grain 6s steps(6) infinite;
}
@keyframes grain{
  0%{transform:translate(0,0)}    20%{transform:translate(-3%,2%)}
  40%{transform:translate(2%,-3%)} 60%{transform:translate(-2%,-2%)}
  80%{transform:translate(3%,1%)}  100%{transform:translate(0,0)}
}

/* Barra de progreso de lectura */
.scrollbar{
  position:fixed; inset:0 0 auto 0; height:2px; z-index:120;
  background:transparent; pointer-events:none;
}
.scrollbar i{
  display:block; height:100%; width:100%;
  transform:scaleX(0); transform-origin:0 50%;
  background:linear-gradient(90deg,var(--sheen),var(--sheen-2));
}

/* ───────────────────────── 4 · CURSOR ───────────────────────── */
.cursor{ display:none; }
@media (hover:hover) and (pointer:fine){
  .js body{ cursor:none; }
  .js a,.js button,.js label,.js summary{ cursor:none; }
  .js input,.js textarea,.js select{ cursor:auto; }
  .cursor{
    display:block; position:fixed; top:0; left:0; z-index:900;
    pointer-events:none; mix-blend-mode:difference;
    will-change:transform;
  }
  .cursor__dot,.cursor__ring{
    position:absolute; border-radius:50%; translate:-50% -50%;
    background:var(--bone);
  }
  .cursor__dot{ width:6px; height:6px; }
  .cursor__ring{
    width:38px; height:38px; background:none;
    border:1px solid var(--bone); opacity:.55;
    transition:width .3s var(--e),height .3s var(--e),opacity .3s var(--e);
  }
  .cursor__label{
    position:absolute; translate:-50% -50%;
    font-family:var(--f-mono); font-size:.6rem; letter-spacing:.14em;
    text-transform:uppercase; color:var(--bone); white-space:nowrap;
    opacity:0; scale:.7; transition:opacity .25s var(--e),scale .25s var(--e);
  }
  .cursor.is-hot .cursor__ring{ width:64px; height:64px; opacity:.9; }
  .cursor.is-lbl .cursor__ring{ width:82px; height:82px; opacity:1; }
  .cursor.is-lbl .cursor__label{ opacity:1; scale:1; }
  .cursor.is-lbl .cursor__dot{ opacity:0; }
  .cursor.is-down .cursor__ring{ width:26px; height:26px; }
}

/* ───────────────────────── 5 · CARGA ───────────────────────── */
.loader{ display:none; }
.js .loader{
  display:grid; place-content:center; gap:1.6rem; justify-items:center;
  position:fixed; inset:0; z-index:800; background:var(--ink);
  transition:opacity .6s var(--e),visibility .6s;
}
.js .loader.is-off{ opacity:0; visibility:hidden; }
.loader__feather{
  width:clamp(42px,6.5vw,64px); color:var(--bone);
  overflow:visible;
}
.loader__feather path{
  stroke-dasharray:var(--len,300); stroke-dashoffset:var(--len,300);
  animation:draw 1.5s var(--e) forwards;
}
@keyframes draw{ to{ stroke-dashoffset:0; } }
.loader__bar{
  width:min(240px,44vw); height:1px; background:var(--line-2); overflow:hidden;
}
.loader__bar i{
  display:block; height:100%; width:100%; background:var(--bone);
  transform:scaleX(0); transform-origin:0 50%;
}
.loader__txt{ color:var(--fg-3); }
.loader__txt .mono:first-child{ color:var(--bone); }

/* ───────────────────────── 6 · BOTONES ───────────────────────── */
.btn{
  --b-bg:transparent; --b-fg:var(--fg); --b-bd:var(--line-2);
  position:relative; display:inline-flex; align-items:center; gap:.7rem;
  padding:1.02rem 1.7rem;
  font-family:var(--f-mono); font-size:.72rem; letter-spacing:.18em;
  text-transform:uppercase; font-weight:700;
  color:var(--b-fg); background:var(--b-bg);
  border:1px solid var(--b-bd); border-radius:var(--r);
  overflow:hidden; isolation:isolate;
  transition:color .4s var(--e),border-color .4s var(--e),transform .5s var(--e);
}
.btn svg{ width:1.05em; height:1.05em; flex:none; transition:transform .45s var(--e); }
.btn::before{
  content:""; position:absolute; inset:0; z-index:-1;
  background:var(--fg); transform:scaleY(0); transform-origin:50% 100%;
  transition:transform .45s var(--e);
}
.btn:hover::before,.btn:focus-visible::before{ transform:scaleY(1); }
.btn:hover,.btn:focus-visible{ color:var(--bg); border-color:var(--fg); }
.btn:hover svg{ transform:translateX(4px); }
.btn:active{ transform:scale(.975); }

.btn--solid{ --b-bg:var(--fg); --b-fg:var(--bg); --b-bd:var(--fg); }
.btn--solid::before{ background:var(--accent); }
.btn--solid:hover,.btn--solid:focus-visible{ color:var(--ink); border-color:var(--accent); }
.btn--ghost::before{ background:var(--fg); }
.btn--sm{ padding:.72rem 1.15rem; font-size:.66rem; }
.btn--lg{ padding:1.2rem 2.1rem; }

.lnk{
  display:inline-flex; align-items:center; gap:.5rem;
  font-family:var(--f-mono); font-size:.72rem; letter-spacing:.16em;
  text-transform:uppercase; font-weight:700;
  padding-bottom:.35rem; position:relative; color:var(--fg);
}
.lnk svg{ width:1em; height:1em; transition:transform .4s var(--e); }
.lnk::after{
  content:""; position:absolute; left:0; bottom:0; height:1px; width:100%;
  background:currentColor; transform:scaleX(0); transform-origin:100% 50%;
  transition:transform .5s var(--e);
}
.lnk:hover::after,.lnk:focus-visible::after{ transform:scaleX(1); transform-origin:0 50%; }
.lnk:hover svg{ transform:translateX(4px); }
.lnk--sm{ font-size:.62rem; }
.linkbtn{ text-decoration:underline; text-underline-offset:3px; color:var(--accent); }

/* ───────────────────────── 7 · NAVEGACIÓN ───────────────────────── */
.nav{
  position:fixed; inset:0 0 auto 0; z-index:110;
  transition:transform .5s var(--e),background .4s ease,border-color .4s ease;
  border-bottom:1px solid transparent;
}
.nav.is-stuck{
  background:rgba(11,11,12,.82);
  backdrop-filter:blur(14px) saturate(1.3);
  -webkit-backdrop-filter:blur(14px) saturate(1.3);
  border-bottom-color:var(--line);
}
.nav.is-hidden{ transform:translateY(-102%); }
.nav__in{
  max-width:var(--wrap); margin-inline:auto; padding:1.05rem var(--pad);
  display:flex; align-items:center; gap:2rem;
}
.brand{ display:flex; align-items:center; gap:.7rem; margin-right:auto; }
.brand__mark{ width:30px; height:30px; color:var(--bone); transition:color .4s var(--e),transform .6s var(--e); }
.brand:hover .brand__mark{ color:var(--sheen); transform:rotate(-14deg); }
.brand__txt{ display:grid; line-height:1.1; }
.brand__txt b{ white-space:nowrap;
  font-family:var(--f-disp); font-weight:600; font-size:1.16rem;
  letter-spacing:.005em; font-variation-settings:"opsz" 18;
}
.brand__txt i{ font-style:normal; color:var(--fg-3); font-size:.56rem; white-space:nowrap; }

.nav__links{ display:flex; gap:.35rem; }
.nav__links a{
  position:relative; padding:.5rem .85rem;
  font-family:var(--f-mono); font-size:.68rem; letter-spacing:.15em;
  text-transform:uppercase; color:var(--fg-2);
  transition:color .35s var(--e);
}
.nav__links a::after{
  content:""; position:absolute; left:.85rem; right:.85rem; bottom:.25rem; height:1px;
  background:var(--sheen); transform:scaleX(0); transform-origin:0 50%;
  transition:transform .45s var(--e);
}
.nav__links a:hover,.nav__links a:focus-visible,.nav__links a.is-on{ color:var(--bone); }
.nav__links a:hover::after,.nav__links a:focus-visible::after,.nav__links a.is-on::after{ transform:scaleX(1); }

.nav__end{ display:flex; align-items:center; gap:.8rem; }
.burger{
  display:none; width:46px; height:46px; border:1px solid var(--line-2);
  border-radius:var(--r); place-content:center; gap:6px;
  transition:border-color .3s var(--e);
}
.burger span{
  display:block; width:19px; height:1.5px; background:var(--bone);
  transition:transform .45s var(--e),opacity .3s var(--e),width .45s var(--e);
}
.burger[aria-expanded="true"] span:first-child{ transform:translateY(3.75px) rotate(45deg); }
.burger[aria-expanded="true"] span:last-child{ transform:translateY(-3.75px) rotate(-45deg); }

/* ── Menú móvil ── */
.menu{
  position:fixed; inset:0; z-index:105;
  background:var(--ink-2);
  display:grid; grid-template-rows:1fr auto;
  padding:6.5rem var(--pad) 2.5rem;
  clip-path:inset(0 0 100% 0);
  transition:clip-path .7s var(--e);
}
.menu.is-open{ clip-path:inset(0 0 0 0); }
.menu__nav{ display:grid; align-content:center; gap:.1rem; }
.menu__nav a{
  display:flex; align-items:baseline; gap:1rem;
  font-family:var(--f-disp); font-weight:500;
  font-size:clamp(1.9rem,8.5vw,3rem); font-variation-settings:"opsz" 40;
  padding:.28rem 0; border-bottom:1px solid var(--line);
  opacity:0; transform:translateY(24px);
  transition:opacity .5s var(--e),transform .5s var(--e),color .3s ease;
}
.menu.is-open .menu__nav a{ opacity:1; transform:none; transition-delay:calc(.08s * var(--i,0) + .18s); }
.menu__nav a .mono{ color:var(--sheen); font-size:.62rem; }
.menu__nav a:hover{ color:var(--sheen); }
.menu__foot{ display:grid; gap:.7rem; padding-top:1.5rem; border-top:1px solid var(--line); }
.menu__foot .mono{ color:var(--fg-3); }
.menu__wa{ display:inline-flex; align-items:center; gap:.6rem; font-weight:600; font-size:1.1rem; }
.menu__wa svg{ width:1.2em; height:1.2em; stroke-width:1.5; color:var(--sheen); }

/* ───────────────────────── 8 · HERO ───────────────────────── */
.hero{
  position:relative; z-index:2;
  min-height:100svh; display:flex; flex-direction:column; justify-content:flex-end;
  padding:clamp(5.5rem, 11vh, 8rem) 0 clamp(1.6rem, 3.5vh, 2.8rem); overflow:hidden;
}
.hero::after{  /* viñeta de imprenta */
  content:""; position:absolute; inset:0; pointer-events:none;
  background:radial-gradient(120% 90% at 50% 8%,transparent 40%,rgba(0,0,0,.55) 100%);
}
.hero__in{ position:relative; z-index:3; width:100%; max-width:var(--wrap); margin-inline:auto; padding-inline:var(--pad); }

.hero__art{
  position:absolute; z-index:1; top:50%; right:4%;
  translate:0 -50%; rotate:13deg;
  width:min(33vw,430px); opacity:.17; pointer-events:none;
}
.hero__feather{ width:100%; height:auto; color:var(--bone); overflow:visible; }
.hero__feather path{
  stroke-dasharray:var(--len,320); stroke-dashoffset:var(--len,320);
  animation:draw 2.6s var(--e) .5s forwards;
}

.hero__eyebrow{
  display:inline-flex; align-items:center; gap:.7rem;
  color:var(--fg-2); margin-bottom:clamp(.7rem, 2.2vh, 1.8rem);
}
.hero__eyebrow em{ font-style:normal; color:var(--fg-3); }
.dot{
  width:6px; height:6px; border-radius:50%; background:var(--sheen);
  box-shadow:0 0 0 0 rgba(62,140,132,.7); animation:pulse 2.6s infinite;
}
@keyframes pulse{
  0%{box-shadow:0 0 0 0 rgba(62,140,132,.65)}
  70%{box-shadow:0 0 0 12px rgba(62,140,132,0)}
  100%{box-shadow:0 0 0 0 rgba(62,140,132,0)}
}

.hero__title{
  font-family:var(--f-disp); font-size:var(--t-hero);
  font-weight:500; font-variation-settings:"opsz" 96;
  line-height:.85; letter-spacing:-.025em;
  margin-bottom:clamp(1.1rem, 3.4vh, 3rem);
}
.hero__title .line{ display:block; overflow:hidden; padding-block:.02em; }
.hero__title .w{ display:block; }
.js .hero__title .w{ transform:translateY(108%); }
.js .hero__title.is-in .w{
  transform:none;
  transition:transform 1.15s var(--e);
}
.js .hero__title.is-in .line:nth-child(2) .w{ transition-delay:.1s; }
.hero__title .w--it{
  font-style:italic; font-weight:400;
  color:transparent; -webkit-text-stroke:1.2px var(--bone);
  padding-left:.06em;
}
@supports not (-webkit-text-stroke:1px black){
  .hero__title .w--it{ color:var(--bone); }
}

.hero__grid{
  display:grid; grid-template-columns:minmax(0,42ch) auto;
  gap:clamp(1.6rem,4vw,3.5rem); align-items:end;
  padding-bottom:clamp(1.1rem, 3vh, 3rem);
  border-bottom:1px solid var(--line);
}
.hero__lead{ font-size:var(--t-lead); color:var(--fg-2); text-wrap:pretty; max-width:44ch; }
.hero__cta{ display:flex; flex-wrap:wrap; gap:.7rem; }

.hero__meta{
  display:grid; grid-template-columns:repeat(4,1fr); gap:1.2rem;
  padding-top:clamp(.85rem, 2.2vh, 1.9rem);
}
.hero__meta li{ display:grid; gap:.3rem; }
.hero__meta .mono{ color:var(--fg-3); }
.hero__meta b{ font-weight:500; font-size:.94rem; line-height:1.35; }
.hero__meta a{ border-bottom:1px solid var(--line-2); transition:border-color .3s ease,color .3s ease; }
.hero__meta a:hover{ color:var(--sheen); border-color:var(--sheen); }
.is-warn{ color:var(--ember); }

.hero__scroll{
  position:absolute; z-index:3; right:.55rem; top:50%; translate:0 -50%;
  writing-mode:vertical-rl;
  display:flex; align-items:center; gap:.8rem; color:var(--fg-3);
  transition:color .3s ease;
}
.hero__scroll:hover{ color:var(--bone); }
.hero__scroll i{ display:block; width:1px; height:56px; background:var(--line-2); overflow:hidden; position:relative; }
.hero__scroll i::after{
  content:""; position:absolute; inset:0; background:var(--bone);
  animation:trickle 2.1s var(--e-in) infinite;
}
@keyframes trickle{ 0%{transform:translateY(-100%)} 55%,100%{transform:translateY(100%)} }

/* ───────────────────────── 9 · CINTA ───────────────────────── */
.ticker{
  position:relative; z-index:2; overflow:hidden;
  border-block:1px solid var(--line); background:var(--ink-2);
  padding-block:.95rem;
}
.ticker__row{ display:flex; width:max-content; will-change:transform; }
.ticker__set{ display:flex; align-items:center; gap:1.6rem; padding-right:1.6rem; }
.ticker__set b{
  font-family:var(--f-disp); font-weight:400; font-style:italic;
  font-size:clamp(1.1rem,2vw,1.55rem); font-variation-settings:"opsz" 28;
  white-space:nowrap; color:var(--fg-2);
}
.ticker__set i{ color:var(--sheen); font-style:normal; font-size:.7rem; }

/* ───────────────────────── 10 · SECCIONES ───────────────────────── */
.sec{
  position:relative; z-index:2;
  padding-block:var(--sp);
  background:var(--bg); color:var(--fg);
}
.sec--tight{ padding-block:clamp(3.5rem,8vw,6rem); }
.sec--bone{
  --bg:var(--bone); --bg-2:var(--bone-2); --bg-3:var(--bone-3);
  --fg:var(--ink); --fg-2:#4B4842; --fg-3:#7E786E;
  --line:rgba(11,11,12,.14); --line-2:rgba(11,11,12,.32);
  --accent:#1E645E;
}
.sec--dark{ --bg:var(--ink-2); }

.sec__head{ max-width:62ch; margin-bottom:clamp(2.4rem,5vw,4rem); }
.sec__head--row{
  max-width:none; display:flex; flex-wrap:wrap; align-items:flex-end;
  justify-content:space-between; gap:1.2rem;
}
.sec__idx{
  display:flex; align-items:center; gap:.85rem;
  color:var(--accent); margin-bottom:clamp(.9rem,2vw,1.4rem);
}
.sec__idx i{ display:block; width:clamp(28px,5vw,64px); height:1px; background:currentColor; opacity:.6; }
.sec__title{
  font-family:var(--f-disp); font-size:var(--t-h2); font-weight:500;
  font-variation-settings:"opsz" 72; letter-spacing:-.02em; line-height:.95;
  text-wrap:balance;
}
.sec__title em{ font-style:italic; font-weight:400; color:var(--accent); }
.sec__lead{
  margin-top:clamp(.9rem,2vw,1.4rem);
  font-size:var(--t-lead); color:var(--fg-2); max-width:52ch; text-wrap:pretty;
}
.sec__note{ color:var(--fg-3); }

/* ───────────────────────── 11 · MANIFIESTO ───────────────────────── */
.manif{
  display:grid; grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);
  gap:clamp(2rem,5vw,4.5rem); align-items:start;
}
.manif__col{ display:grid; gap:1.1rem; color:var(--fg-2); max-width:56ch; }
.manif__col .lead{
  font-family:var(--f-disp); font-size:clamp(1.3rem,2.4vw,1.8rem);
  font-variation-settings:"opsz" 32; font-weight:400; line-height:1.32;
  color:var(--fg); letter-spacing:-.01em;
}
.manif__side{ display:grid; gap:clamp(1.6rem,3vw,2.4rem); }

.quote{
  position:relative; padding:clamp(1.6rem,3vw,2.2rem);
  border:1px solid var(--line); background:var(--bg-2); border-radius:var(--r-lg);
}
.quote::before{
  content:"“"; position:absolute; top:-.28em; left:.28em;
  font-family:var(--f-disp); font-size:6rem; color:var(--accent); opacity:.28;
  line-height:1;
}
.quote blockquote{
  position:relative; font-family:var(--f-disp); font-style:italic; font-weight:400;
  font-size:clamp(1.15rem,2.1vw,1.5rem); font-variation-settings:"opsz" 30;
  line-height:1.35; letter-spacing:-.01em;
}
.quote figcaption{ margin-top:1.1rem; color:var(--fg-3); }
.quote figcaption i{ font-style:normal; }

.facts{ display:grid; grid-template-columns:repeat(2,1fr); gap:1px; background:var(--line); border:1px solid var(--line); }
.facts>div{ background:var(--bg); padding:clamp(1rem,2vw,1.4rem); display:grid; gap:.3rem; }
.facts dt{ color:var(--fg-3); }
.facts dd{
  font-family:var(--f-disp); font-size:clamp(1.9rem,4vw,2.7rem); font-weight:500;
  font-variation-settings:"opsz" 48; line-height:1; letter-spacing:-.02em;
}

.pills{
  display:flex; flex-wrap:wrap; gap:.5rem;
  margin-top:clamp(2.2rem,5vw,3.5rem);
  padding-top:clamp(1.6rem,3vw,2.2rem); border-top:1px solid var(--line);
}
.pills li{
  font-family:var(--f-mono); font-size:.66rem; letter-spacing:.13em; text-transform:uppercase;
  padding:.5rem .85rem; border:1px solid var(--line); border-radius:100px; color:var(--fg-2);
  transition:border-color .35s var(--e),color .35s var(--e),transform .35s var(--e);
}
.pills li:hover{ border-color:var(--accent); color:var(--accent); transform:translateY(-2px); }

/* ───────────────────────── 12 · SERVICIOS ───────────────────────── */
.svc{ border-top:1px solid var(--line); }
.svc__it{
  position:relative; display:grid;
  grid-template-columns:auto minmax(0,22ch) minmax(0,1fr) auto;
  gap:clamp(1rem,3vw,3rem); align-items:baseline;
  padding:clamp(1.5rem,3.2vw,2.4rem) 0;
  border-bottom:1px solid var(--line);
  transition:padding-inline .5s var(--e),color .4s var(--e);
}
.svc__it::before{
  content:""; position:absolute; inset:0 -1.5rem; z-index:-1;
  background:var(--bg-2); opacity:0; transition:opacity .45s var(--e);
  border-radius:var(--r-lg);
}
.svc__it:hover{ padding-inline:1.5rem; }
.svc__it:hover::before{ opacity:1; }
.svc__n{ color:var(--accent); }
.svc__it h3{
  font-family:var(--f-disp); font-size:var(--t-h3); font-weight:500;
  font-variation-settings:"opsz" 28; letter-spacing:-.015em; line-height:1.1;
}
.svc__it>p{ color:var(--fg-2); font-size:.96rem; max-width:56ch; }
.svc__tag{ color:var(--fg-3); white-space:nowrap; }

/* ───────────────────────── 13 · GALERÍA ───────────────────────── */
.filters{ display:flex; flex-wrap:wrap; gap:.45rem; margin-bottom:1.4rem; }
.filter{
  display:inline-flex; align-items:center; gap:.5rem;
  font-family:var(--f-mono); font-size:.66rem; letter-spacing:.14em; text-transform:uppercase;
  padding:.62rem 1rem; border:1px solid var(--line); border-radius:100px;
  color:var(--fg-2);
  transition:background .35s var(--e),color .35s var(--e),border-color .35s var(--e);
}
.filter span{ color:var(--fg-3); font-size:.58rem; }
.filter:hover{ border-color:var(--line-2); color:var(--fg); }
.filter.is-on{ background:var(--fg); color:var(--bg); border-color:var(--fg); }
.filter.is-on span{ color:var(--bg); opacity:.6; }

.gal{
  display:grid; grid-template-columns:repeat(12,1fr);
  grid-auto-rows:clamp(4.6rem,10.9vw,11.4rem); grid-auto-flow:dense; gap:.7rem;
}
.gal__it{
  grid-column:span 4; grid-row:span 3;
  position:relative; overflow:hidden; border-radius:var(--r-lg);
  background:var(--bg-2); border:1px solid var(--line);
  cursor:pointer;
}
.gal__it--wide{ grid-column:span 8; }
.gal__plate{
  position:absolute; inset:0; width:100%; height:100%;
  transition:transform 1.05s var(--e),filter .6s var(--e);
}
.gal__it:hover .gal__plate,.gal__it:focus-visible .gal__plate{ transform:scale(1.055); }
.gal__it img{
  position:absolute; inset:0; width:100%; height:100%; object-fit:cover;
  transition:transform 1.05s var(--e);
}
.gal__it:hover img{ transform:scale(1.055); }
.gal__cap{
  position:absolute; inset:auto 0 0 0; z-index:2;
  padding:clamp(.9rem,2vw,1.3rem);
  background:linear-gradient(to top,rgba(11,11,12,.94) 8%,rgba(11,11,12,.65) 55%,transparent);
  color:var(--bone);
  transform:translateY(28%); opacity:0;
  transition:transform .6s var(--e),opacity .5s var(--e);
}
.gal__it:hover .gal__cap,.gal__it:focus-within .gal__cap{ transform:none; opacity:1; }
.gal__cap h3{
  font-family:var(--f-disp); font-weight:500; font-size:1.12rem;
  font-variation-settings:"opsz" 20; letter-spacing:-.01em; margin-bottom:.2rem;
}
.gal__cap p{ color:rgba(239,233,222,.62); }
.gal__it button{
  position:absolute; inset:0; z-index:3; width:100%; height:100%;
  border:0; background:none; color:transparent; font-size:0;
}
.gal__it button:focus-visible{ outline-offset:-4px; }
.gal__badge{
  position:absolute; top:.7rem; left:.7rem; z-index:2;
  font-family:var(--f-mono); font-size:.56rem; letter-spacing:.16em; text-transform:uppercase;
  padding:.32rem .55rem; background:rgba(11,11,12,.6); color:var(--bone);
  border:1px solid rgba(239,233,222,.16); border-radius:100px;
  backdrop-filter:blur(6px);
}
.gal__it.is-off{ display:none; }
.gal__empty{ text-align:center; padding:3rem 0; color:var(--fg-3); }

/* ── Visor ── */
.box{
  position:fixed; inset:0; z-index:400;
  display:grid; place-items:center; padding:clamp(1rem,4vw,3rem);
  background:rgba(8,8,9,.94); backdrop-filter:blur(10px);
  opacity:0; transition:opacity .4s var(--e);
}
.box.is-open{ opacity:1; }
.box__fig{ display:grid; gap:1.2rem; justify-items:center; max-width:min(92vw,900px); width:100%; }
.box__media{
  width:100%; aspect-ratio:4/3.1; max-height:66svh;
  border:1px solid rgba(239,233,222,.14); border-radius:var(--r-lg); overflow:hidden;
  background:var(--ink-2); position:relative;
}
.box__media svg,.box__media img{ width:100%; height:100%; object-fit:cover; }
.box__cap{ text-align:center; color:var(--bone); display:grid; gap:.35rem; }
.box__cap .mono{ color:var(--sheen); }
.box__cap h2{
  font-family:var(--f-disp); font-weight:500; font-size:clamp(1.4rem,3vw,2.1rem);
  font-variation-settings:"opsz" 36; letter-spacing:-.015em;
}
.box__meta{ color:rgba(239,233,222,.6); font-size:.9rem; }
.box__close,.box__nav{
  position:absolute; z-index:5; display:grid; place-content:center;
  width:52px; height:52px; border:1px solid rgba(239,233,222,.2); border-radius:50%;
  color:var(--bone); background:rgba(11,11,12,.5);
  transition:background .3s var(--e),border-color .3s var(--e),transform .3s var(--e);
}
.box__close svg,.box__nav svg{ width:20px; height:20px; }
.box__close:hover,.box__nav:hover{ background:var(--bone); color:var(--ink); border-color:var(--bone); }
.box__close{ top:clamp(1rem,3vw,2rem); right:clamp(1rem,3vw,2rem); }
.box__nav{ top:50%; translate:0 -50%; }
.box__nav--prev{ left:clamp(.6rem,2.5vw,2rem); }
.box__nav--prev svg{ transform:rotate(180deg); }
.box__nav--next{ right:clamp(.6rem,2.5vw,2rem); }
.box__nav:hover{ transform:translateY(-50%) scale(1.06); }

/* ───────────────────────── 14 · ARTISTAS ───────────────────────── */
.crew{ display:grid; grid-template-columns:repeat(2,1fr); gap:1px; background:var(--line); border:1px solid var(--line); }
.crew__it{
  background:var(--bg); padding:clamp(1.4rem,3vw,2.2rem);
  display:grid; grid-template-columns:auto minmax(0,1fr); gap:clamp(1.1rem,2.5vw,1.8rem);
  align-items:start; transition:background .45s var(--e);
}
.crew__it:hover{ background:var(--bg-2); }
.crew__ph{
  width:clamp(84px,11vw,132px); aspect-ratio:3/4; overflow:hidden;
  border-radius:var(--r-lg); border:1px solid var(--line); background:var(--bg-2);
}
.crew__ph svg{ width:100%; height:100%; }
.crew__body{ display:grid; gap:.5rem; align-content:start; }
.crew__role{ color:var(--accent); }
.crew__body h3{
  font-family:var(--f-disp); font-size:clamp(1.5rem,2.8vw,2.1rem); font-weight:500;
  font-variation-settings:"opsz" 36; letter-spacing:-.02em; line-height:1;
}
.crew__spec{ font-family:var(--f-mono); font-size:.66rem; letter-spacing:.1em; text-transform:uppercase; color:var(--fg-3); }
.crew__body>p:not(.crew__spec):not(.crew__role){ color:var(--fg-2); font-size:.95rem; }
.crew__body .lnk{ margin-top:.5rem; justify-self:start; }

/* ───────────────────────── 15 · PROCESO ───────────────────────── */
.step{
  position:relative; display:grid; grid-template-columns:repeat(5,1fr);
  gap:clamp(1rem,2.4vw,2.2rem);
}
.step__rail{ position:absolute; top:0; left:0; right:0; height:1px; background:var(--line); }
.step__rail i{
  display:block; height:100%; background:var(--accent);
  transform:scaleX(var(--p,0)); transform-origin:0 50%;
  transition:transform .35s linear;
}
.step__it{
  position:relative; display:grid; gap:.55rem; align-content:start;
  padding-top:clamp(1.5rem,3vw,2.2rem);
}
.step__it::before{
  content:""; position:absolute; top:-3.5px; left:0;
  width:8px; height:8px; border-radius:50%;
  background:var(--bg); border:1px solid var(--line-2);
  transition:background .4s var(--e),border-color .4s var(--e),transform .4s var(--e);
}
.step__it.is-in::before{ background:var(--accent); border-color:var(--accent); transform:scale(1.15); }
.step__n{ color:var(--accent); }
.step__it h3{
  font-family:var(--f-disp); font-size:clamp(1.25rem,2.1vw,1.65rem); font-weight:500;
  font-variation-settings:"opsz" 26; letter-spacing:-.015em;
}
.step__it p{ color:var(--fg-2); font-size:.93rem; }
.step__t{
  justify-self:start; margin-top:.3rem; color:var(--fg-3);
  padding:.3rem .6rem; border:1px solid var(--line); border-radius:100px;
}

/* ───────────────────────── 16 · PRECIOS ───────────────────────── */
.price{ display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(1rem,2vw,1.6rem); }
.price__card{
  display:grid; align-content:start;
  padding:clamp(1.5rem,3vw,2.2rem);
  border:1px solid var(--line); border-radius:var(--r-lg); background:var(--bg-2);
  transition:border-color .45s var(--e),transform .45s var(--e);
}
.price__card:hover{ border-color:var(--line-2); transform:translateY(-4px); }
.price__card--alt{ background:var(--fg); color:var(--bg); border-color:var(--fg); }
.price__card--alt .price__note{ color:rgba(239,233,222,.6); }
.sec--bone .price__card--alt .price__note{ color:rgba(239,233,222,.62); }
.price__h{
  font-family:var(--f-disp); font-size:clamp(1.4rem,2.6vw,1.95rem); font-weight:500;
  font-variation-settings:"opsz" 32; letter-spacing:-.02em;
  padding-bottom:1rem; margin-bottom:.4rem; border-bottom:1px solid var(--line);
}
.price__card--alt .price__h{ border-color:rgba(239,233,222,.2); }
.price__list{ display:grid; }
.price__list li{
  display:flex; align-items:baseline; justify-content:space-between; gap:1rem;
  padding:.78rem 0; border-bottom:1px dashed var(--line); font-size:.95rem;
}
.price__card--alt .price__list li{ border-color:rgba(239,233,222,.14); }
.price__list li:last-child{ border-bottom:0; }
.price__list b{ font-weight:500; letter-spacing:.02em; white-space:nowrap; }
.price__list .is-free{ color:var(--accent); }
.price__card--alt .is-free{ color:var(--sheen); }
.price__list--plain li{ display:flex; align-items:flex-start; gap:.7rem; justify-content:flex-start; }
.price__list--plain svg{ width:16px; height:16px; flex:none; margin-top:.35em; color:var(--sheen); }
.price__note{ margin-top:1.1rem; font-size:.85rem; color:var(--fg-3); line-height:1.55; }

/* ───────────────────────── 17 · ACORDEÓN ───────────────────────── */
.two{ display:grid; grid-template-columns:repeat(2,1fr); gap:clamp(2.4rem,6vw,5rem); align-items:start; }
.acc{ border-top:1px solid var(--line); }
.acc__it{ border-bottom:1px solid var(--line); }
.acc__btn{
  width:100%; display:flex; align-items:center; justify-content:space-between; gap:1.2rem;
  padding:1.15rem 0; text-align:left;
  font-family:var(--f-sans); font-size:1.02rem; font-weight:500; line-height:1.35;
  color:var(--fg); transition:color .35s var(--e);
}
.acc__btn:hover{ color:var(--accent); }
.acc__btn svg{
  width:19px; height:19px; flex:none; color:var(--accent);
  transition:transform .45s var(--e);
}
.acc__btn[aria-expanded="true"] svg{ transform:rotate(135deg); }
.acc__panel{
  display:grid; grid-template-rows:0fr;
  transition:grid-template-rows .55s var(--e);
}
.acc__panel>div{ overflow:hidden; }
.acc__it.is-open .acc__panel{ grid-template-rows:1fr; }
.acc__panel p{
  color:var(--fg-2); font-size:.94rem; max-width:60ch;
  padding-bottom:1rem;
}
.acc__panel>div>p:first-child{ padding-top:.15rem; }

/* ───────────────────────── 18 · AVISO LEGAL ───────────────────────── */
.legal{ position:relative; z-index:2; background:var(--ink); padding-block:clamp(2.5rem,6vw,4.5rem); }
.legal__box{
  display:grid; grid-template-columns:auto minmax(0,1fr);
  gap:clamp(1.4rem,3.5vw,2.8rem); align-items:start;
  padding:clamp(1.6rem,4vw,2.8rem);
  border:1px solid rgba(194,80,47,.42); border-radius:var(--r-lg);
  background:linear-gradient(180deg,rgba(194,80,47,.1),rgba(194,80,47,.02));
}
.legal__badge{
  display:grid; place-content:center;
  width:clamp(72px,10vw,104px); aspect-ratio:1;
  border:1.5px solid var(--ember); border-radius:50%;
}
.legal__badge span{
  font-family:var(--f-disp); font-weight:700; font-size:clamp(1.5rem,3vw,2.1rem);
  font-variation-settings:"opsz" 40; color:var(--ember); letter-spacing:-.02em;
}
.legal__kicker{ display:flex; align-items:center; gap:.5rem; color:var(--ember); margin-bottom:.7rem; }
.legal__kicker svg{ width:15px; height:15px; }
.legal__body h2{
  font-family:var(--f-disp); font-size:clamp(1.6rem,3.6vw,2.6rem); font-weight:500;
  font-variation-settings:"opsz" 40; letter-spacing:-.02em; margin-bottom:.9rem;
}
.legal__body p{ color:var(--fg-2); max-width:74ch; }
.legal__body p+p{ margin-top:.7rem; }
.legal__body b{ color:var(--bone); font-weight:600; }

/* ───────────────────────── 19 · RESERVA ───────────────────────── */
.book{ display:grid; grid-template-columns:minmax(0,1.25fr) minmax(0,.9fr); gap:clamp(1.6rem,4vw,3.5rem); align-items:start; }

.form{ display:grid; gap:clamp(1rem,2vw,1.4rem); }
.form__row{ display:grid; grid-template-columns:repeat(2,1fr); gap:clamp(1rem,2vw,1.4rem); }
.field{ display:grid; gap:.45rem; position:relative; }
.field label,.field legend{
  font-family:var(--f-mono); font-size:.64rem; letter-spacing:.15em; text-transform:uppercase;
  color:var(--fg-2);
}
.field label span[aria-hidden]{ color:var(--ember); }
.field__opt{ color:var(--fg-3); text-transform:none; letter-spacing:.06em; }
.field input,.field textarea,.select select{
  width:100%; padding:.92rem 1rem;
  background:var(--bg); color:var(--fg);
  border:1px solid var(--line); border-radius:var(--r);
  transition:border-color .3s var(--e),background .3s var(--e);
  font-size:.97rem;
}
.field textarea{ resize:vertical; min-height:7rem; line-height:1.6; }
.field input::placeholder,.field textarea::placeholder{ color:var(--fg-3); }
.field input:hover,.field textarea:hover,.select select:hover{ border-color:var(--line-2); }
.field input:focus,.field textarea:focus,.select select:focus{
  outline:none; border-color:var(--sheen); background:var(--bg-2);
  box-shadow:0 0 0 3px rgba(62,140,132,.18);
}
.select{ position:relative; }
.select select{ appearance:none; padding-right:2.6rem; cursor:pointer; }
.select svg{
  position:absolute; right:1rem; top:50%; translate:0 -50%;
  width:15px; height:15px; rotate:90deg; color:var(--fg-3); pointer-events:none;
}
.field__hint{ justify-self:end; color:var(--fg-3); margin-top:-.15rem; }
.field__err{
  color:var(--ember); font-family:var(--f-mono); font-size:.62rem;
  letter-spacing:.1em; text-transform:uppercase; min-height:0;
}
.field__err--block{ margin-top:-.6rem; }
.field.is-bad input,.field.is-bad textarea,.field.is-bad .select select{
  border-color:var(--ember); box-shadow:0 0 0 3px rgba(194,80,47,.14);
}
.field.is-bad{ animation:shake .4s var(--e); }
@keyframes shake{ 25%{transform:translateX(-5px)} 55%{transform:translateX(4px)} 80%{transform:translateX(-2px)} 100%{transform:none} }

.field--chips{ gap:.7rem; }
.chips{ display:flex; flex-wrap:wrap; gap:.45rem; }
.chip{ position:relative; }
.chip input{ position:absolute; opacity:0; width:0; height:0; }
.chip span{
  display:block; padding:.58rem .95rem;
  font-family:var(--f-mono); font-size:.64rem; letter-spacing:.13em; text-transform:uppercase;
  border:1px solid var(--line); border-radius:100px; color:var(--fg-2); cursor:pointer;
  transition:all .3s var(--e);
}
.chip span:hover{ border-color:var(--line-2); color:var(--fg); }
.chip input:checked+span{ background:var(--fg); color:var(--bg); border-color:var(--fg); }
.chip input:focus-visible+span{ outline:2px solid var(--sheen); outline-offset:3px; }

.check{ display:flex; align-items:flex-start; gap:.8rem; cursor:pointer; padding:.3rem 0; }
.check input{ position:absolute; opacity:0; width:0; height:0; }
.check__box{
  flex:none; display:grid; place-content:center;
  width:22px; height:22px; margin-top:.1rem;
  border:1px solid var(--line-2); border-radius:var(--r);
  transition:background .3s var(--e),border-color .3s var(--e);
}
.check__box svg{ width:13px; height:13px; color:var(--ink); opacity:0; transform:scale(.5); transition:all .3s var(--e); }
.check input:checked+.check__box{ background:var(--sheen); border-color:var(--sheen); }
.check input:checked+.check__box svg{ opacity:1; transform:none; }
.check input:focus-visible+.check__box{ outline:2px solid var(--sheen); outline-offset:3px; }
.check__txt{ font-size:.92rem; color:var(--fg-2); }
.check__txt b{ color:var(--fg); font-weight:600; }
.check.is-bad .check__box{ border-color:var(--ember); }

.form__foot{ display:flex; flex-wrap:wrap; align-items:center; gap:1rem 1.4rem; margin-top:.4rem; }
.form__note{ color:var(--fg-3); max-width:34ch; }
.form__ok{
  display:flex; align-items:flex-start; gap:.9rem;
  padding:1.1rem 1.2rem; border:1px solid var(--sheen); border-radius:var(--r-lg);
  background:rgba(62,140,132,.1);
}
.form__ok svg{ width:20px; height:20px; flex:none; color:var(--sheen); margin-top:.15rem; }
.form__ok b{ display:block; font-weight:600; }
.form__ok p{ font-size:.9rem; color:var(--fg-2); margin-top:.15rem; }
.form__ok a{ color:var(--sheen); text-decoration:underline; text-underline-offset:3px; }

/* ── Ficha del estudio ── */
.info{ display:grid; gap:clamp(1rem,2vw,1.4rem); position:sticky; top:6rem; }
.info__card{ padding:clamp(1.4rem,3vw,2rem); border:1px solid var(--line); border-radius:var(--r-lg); background:var(--bg); }
.info__h{ color:var(--accent); padding-bottom:1rem; border-bottom:1px solid var(--line); margin-bottom:.4rem; }
.info__list li{ display:flex; gap:.9rem; padding:.95rem 0; border-bottom:1px dashed var(--line); }
.info__list li:last-child{ border-bottom:0; }
.info__list svg{ width:19px; height:19px; flex:none; color:var(--fg-3); margin-top:.2rem; }
.info__list b{ display:block; font-weight:500; font-size:.98rem; }
.info__list span{ display:block; color:var(--fg-3); font-size:.84rem; line-height:1.5; margin-top:.1rem; }
.info__list a{ border-bottom:1px solid var(--line-2); transition:color .3s ease,border-color .3s ease; }
.info__list a:hover{ color:var(--sheen); border-color:var(--sheen); }
.info__status{
  display:flex; align-items:center; gap:.6rem; margin-top:1.1rem;
  padding:.7rem .9rem; border:1px solid var(--line); border-radius:100px;
}
.info__dot{ width:7px; height:7px; border-radius:50%; background:var(--fg-3); flex:none; }
.info__status.is-open .info__dot{ background:#4FBF7A; box-shadow:0 0 0 0 rgba(79,191,122,.6); animation:pulse 2.4s infinite; }
.info__status.is-shut .info__dot{ background:var(--ember); }
.info__status .mono{ color:var(--fg-2); }

/* ── Plano ── */
.map{ border:1px solid var(--line); border-radius:var(--r-lg); overflow:hidden; background:var(--bg); }
.map__svg{ width:100%; height:auto; display:block; }
.map__bg{ fill:var(--bg-2); }
.map__blocks rect{ fill:var(--bg-3); opacity:.5; }
.sec--dark .map__blocks rect{ fill:var(--ink-3); opacity:1; }
.map__lines path{ fill:none; stroke:var(--line); stroke-width:1; }
.map__streets path{ fill:none; stroke:var(--bg); stroke-width:46; }
.sec--dark .map__streets path{ stroke:var(--ink); }
.map__dash path{ fill:none; stroke:var(--line-2); stroke-width:1; stroke-dasharray:9 11; opacity:.5; }
.map__st{
  font-family:var(--f-mono); font-size:12px; letter-spacing:.22em;
  fill:var(--fg-3); text-transform:uppercase;
}
.map__core{ fill:var(--sheen); }
.map__stem{ stroke:var(--sheen); stroke-width:1.5; stroke-dasharray:3 4; }
.map__pulse{ fill:none; stroke:var(--sheen); stroke-width:1; opacity:0; animation:ping 3s var(--e) infinite; }
.map__pulse--2{ animation-delay:1.5s; }
@keyframes ping{ 0%{transform:scale(.3);opacity:.85} 100%{transform:scale(1.5);opacity:0} }
.map__you{ font-family:var(--f-mono); font-size:13px; font-weight:700; fill:var(--fg); text-anchor:middle; letter-spacing:.1em; }
.map__compass circle{ fill:none; stroke:var(--line); }
.map__compass path{ fill:var(--fg-3); }
.map__compass text{ font-family:var(--f-mono); font-size:10px; fill:var(--fg-3); text-anchor:middle; letter-spacing:.1em; }
.map__scale path{ stroke:var(--fg-3); stroke-width:1; fill:none; }
.map__scale text{ font-family:var(--f-mono); font-size:9px; fill:var(--fg-3); text-anchor:middle; letter-spacing:.12em; }
.map figcaption{
  display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:.8rem;
  padding:.9rem 1.1rem; border-top:1px solid var(--line);
}
.map figcaption .mono{ color:var(--fg-3); }

/* ───────────────────────── 20 · PIE ───────────────────────── */
.foot{ position:relative; z-index:2; background:var(--ink); border-top:1px solid var(--line); padding-top:clamp(3rem,7vw,5.5rem); }
.foot__top{ display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.4fr); gap:clamp(2rem,5vw,4rem); padding-bottom:clamp(2.2rem,5vw,3.5rem); }
.foot__mark{ width:40px; height:40px; color:var(--bone); margin-bottom:1rem; }
.foot__name{ font-family:var(--f-disp); font-size:clamp(1.8rem,3.4vw,2.5rem); font-weight:500; font-variation-settings:"opsz" 40; letter-spacing:-.02em; line-height:1; }
.foot__sub{ color:var(--sheen); margin-top:.45rem; }
.foot__claim{ margin-top:1.1rem; color:var(--fg-3); font-size:.92rem; }
.foot__nav{ display:grid; grid-template-columns:repeat(3,1fr); gap:1.6rem; }
.foot__nav h2{ color:var(--fg-3); margin-bottom:1rem; font-weight:400; }
.foot__nav li{ padding:.28rem 0; }
.foot__nav a,.foot__nav span{ color:var(--fg-2); font-size:.92rem; transition:color .3s ease; }
.foot__nav a{ position:relative; }
.foot__nav a:hover{ color:var(--bone); }
.foot__mid{
  display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:1.2rem;
  padding-block:1.5rem; border-top:1px solid var(--line);
}
.foot__legal{ font-size:.85rem; color:var(--fg-3); max-width:66ch; }
.foot__legal b{ color:var(--ember); font-weight:600; }
.social{ display:flex; gap:.5rem; }
.social a{
  display:grid; place-content:center; width:42px; height:42px;
  border:1px solid var(--line); border-radius:50%; color:var(--fg-2);
  transition:all .35s var(--e);
}
.social svg{ width:18px; height:18px; }
.social a:hover{ background:var(--bone); color:var(--ink); border-color:var(--bone); transform:translateY(-3px); }
.foot__bot{
  display:flex; flex-wrap:wrap; gap:.6rem 1.5rem; justify-content:space-between;
  padding-block:1.3rem; border-top:1px solid var(--line); color:var(--fg-3);
}
.foot__bot a{ color:var(--fg-2); border-bottom:1px solid var(--line-2); }
.foot__bot a:hover{ color:var(--bone); }

/* ── Botón flotante ── */
.fab{
  display:none; position:fixed; right:1rem; bottom:1rem; z-index:100;
  width:54px; height:54px; place-content:center; border-radius:50%;
  background:var(--sheen); color:var(--ink);
  box-shadow:0 10px 28px rgba(0,0,0,.5);
  transition:transform .35s var(--e);
}
.fab svg{ width:24px; height:24px; stroke-width:1.6; }
.fab:active{ transform:scale(.93); }

/* ───────────────────────── 21 · APARICIONES ───────────────────────── */
.js .reveal{
  opacity:0; transform:translateY(26px);
  transition:opacity .85s var(--e) var(--d,0s),transform .85s var(--e) var(--d,0s);
}
.js .reveal.is-in{ opacity:1; transform:none; }

/* ───────────────────────── 22 · RESPONSIVE ───────────────────────── */
@media (max-width:1100px){
  .hero__meta{ grid-template-columns:repeat(2,1fr); }
  .step{ grid-template-columns:repeat(3,1fr); row-gap:2rem; }
  .price{ grid-template-columns:1fr 1fr; }
  .price__card--alt{ grid-column:span 2; }
  .gal__it{ grid-column:span 6; }
  .gal__it--wide{ grid-column:span 12; }
}
@media (max-width:980px){
  .hero__scroll{ display:none; }   /* sin margen lateral no entra */
  .nav__links{ display:none; }
  .burger{ display:grid; }
  .manif{ grid-template-columns:1fr; }
  .book{ grid-template-columns:1fr; }
  .info{ position:static; }
  .two{ grid-template-columns:1fr; }
  .crew{ grid-template-columns:1fr; }
  .foot__top{ grid-template-columns:1fr; }
  .hero__grid{ grid-template-columns:1fr; align-items:start; }
}
@media (max-width:760px){
  html{ scroll-padding-top:4.5rem; }
  .hero{ min-height:92svh; padding-top:7rem; }
  .hero__art{ top:31%; right:-20%; opacity:.07; width:60vw; rotate:9deg; }
  .hero__scroll{ display:none; }
  .nav__end .btn{ display:none; }        /* en móvil manda el menú y el botón flotante */
  .brand__mark{ width:26px; height:26px; }
  .brand__txt b{ font-size:1.02rem; }
  .hero__eyebrow{ gap:.5rem; }
  .hero__meta{ grid-template-columns:1fr 1fr; gap:.9rem 1rem; }
  .svc__it{ grid-template-columns:auto 1fr; row-gap:.5rem; }
  .svc__it .svc__n{ grid-row:1; }
  .svc__it h3{ grid-row:1; }
  .svc__it>p{ grid-column:1/-1; }
  .svc__tag{ grid-column:1/-1; }
  .svc__it:hover{ padding-inline:0; }
  .svc__it::before{ inset:0 -1rem; }
  .step{ grid-template-columns:1fr; padding-left:1.6rem; row-gap:1.6rem; }
  .step__rail{ top:0; bottom:0; left:0; right:auto; width:1px; height:auto; }
  .step__rail i{ width:100%; height:100%; transform:scaleY(var(--p,0)); transform-origin:50% 0; }
  .step__it{ padding-top:0; }
  .step__it::before{ top:.35rem; left:-1.6rem; translate:-50% 0; }
  .price{ grid-template-columns:1fr; }
  .price__card--alt{ grid-column:span 1; }
  .form__row{ grid-template-columns:1fr; }
  .gal{ grid-auto-rows:clamp(4rem,13vw,9rem); }
  .gal__it{ grid-column:span 6; grid-row:span 3; }
  .gal__cap{ transform:none; opacity:1; }
  .legal__box{ grid-template-columns:1fr; }
  .foot__nav{ grid-template-columns:1fr 1fr; }
  .fab{ display:grid; }
  .box__nav{ top:auto; bottom:1rem; translate:0; }
  .box__nav:hover{ transform:none; }
  .box__nav--prev{ left:calc(50% - 62px); }
  .box__nav--next{ right:calc(50% - 62px); }
  .box__media{ max-height:52svh; }
}
@media (max-width:520px){
  .hide-xs{ display:none; }
  .hero__meta{ grid-template-columns:1fr 1fr; gap:.8rem .9rem; }
  .hero__meta b{ font-size:.86rem; }
  .gal__it,.gal__it--wide{ grid-column:span 12; grid-row:span 3; }
  .crew__it{ grid-template-columns:1fr; }
  .crew__ph{ width:100%; max-width:150px; }
  .facts{ grid-template-columns:1fr; }
  .foot__nav{ grid-template-columns:1fr; }
  .btn{ width:100%; justify-content:center; }
  .hero__cta{ width:100%; }
}

/* ───────────────────────── 23 · MOVIMIENTO REDUCIDO ───────────────────────── */
@media (prefers-reduced-motion:reduce){
  html{ scroll-behavior:auto; }
  *,*::before,*::after{
    animation-duration:.001ms !important; animation-iteration-count:1 !important;
    transition-duration:.001ms !important; scroll-behavior:auto !important;
  }
  .js .reveal{ opacity:1; transform:none; }
  .js .hero__title .w{ transform:none; }
  .grain{ animation:none; }
  .ticker__row{ transform:none !important; }
  .loader__crow path,.hero__feather path{ stroke-dashoffset:0; }
  .cursor{ display:none; }
  .js body,.js a,.js button,.js label{ cursor:auto; }
}

/* ───────────────────────── 24 · IMPRESIÓN ───────────────────────── */
@media print{
  .nav,.menu,.fab,.cursor,.grain,.loader,.scrollbar,.hero__scroll,.box,.filters{ display:none !important; }
  body{ background:#fff; color:#000; }
  .sec,.legal,.foot{ background:#fff !important; color:#000 !important; padding-block:1.2rem; }
  .acc__panel{ grid-template-rows:1fr !important; }
  a[href^="http"]::after{ content:" (" attr(href) ")"; font-size:.7em; }
}

/* ───────────────────────── 25 · LÁMINAS GENERADAS ─────────────────────────
   Estilo de las piezas de "flash" que dibuja js/main.js. Heredan los colores
   de la sección, así que funcionan igual sobre negro que sobre papel hueso. */
.pl-bg   { fill:var(--bg-2); }
.pl-hatch{ fill:none; stroke:var(--fg); stroke-width:.5; opacity:.055; }
.pl-dim  { fill:none; stroke:var(--fg); stroke-width:calc(var(--w,1.6) * .55); opacity:.2; }
.pl-ln   { fill:none; stroke:var(--fg); stroke-width:var(--w,1.6); stroke-linecap:round; stroke-linejoin:round; opacity:.88; }
.pl-fl   { fill:var(--fg); stroke:none; opacity:.9; }
.pl-ac   { fill:none; stroke:var(--accent); stroke-width:var(--w,1.6); stroke-linecap:round; opacity:.95; }
.pl-cut  { fill:none; stroke:var(--bg-2); stroke-width:var(--w,2); stroke-linecap:round; }
.pl-tx   { font-family:var(--f-mono); font-size:9px; letter-spacing:.16em; fill:var(--fg); opacity:.3; }

.crew__ph{ position:relative; }
.crew__ph .gal__plate{ position:absolute; inset:0; }
.box__media .gal__plate{ position:absolute; inset:0; }

/* Los elementos internos de un SVG escalan desde su propio centro */
.map__pulse{ transform-box:fill-box; transform-origin:center; }
.pl-script{ font-family:var(--f-disp); font-style:italic; font-weight:500; fill:var(--fg); text-anchor:middle; opacity:.92; }
.nojs-msg{ display:none; }   /* solo se muestra si el navegador no ejecuta JavaScript */
