/* =========================================================
   Tribu Alma — hoja de estilos
   El color identifica al grupo: coral Body · cyan Run ·
   dorado Elite · menta Flow. Se mantiene en pestaña, panel,
   botón y formulario.
   ========================================================= */

:root{
  /* paleta de marca */
  --coral:#FF646C;
  --cyan:#39C1E7;
  --mint:#59CD90;
  --gold:#F0C862;
  --ink:#131313;
  --ink-2:#333333;
  --paper:#FFFFFF;

  /* derivados */
  /* color activo del tablón; el JS lo va cambiando */
  --accent:var(--coral);

  --ink-3:#1D1D1D;
  --ink-4:#2A2A2A;
  --mute:#6B6B6B;
  --mute-light:#A8A8A8;
  --hair:#E4E4E4;

  /* tipografía */
  --sans:"Poppins", system-ui, sans-serif;
  --grot:"Archivo", "Poppins", system-ui, sans-serif;
  --black:"Archivo Black", "Archivo", system-ui, sans-serif;

  --t-xs:.8125rem;
  --t-sm:.9375rem;
  --t-base:1.0625rem;
  --t-md:1.1875rem;
  --t-lg:1.5rem;

  /* medidas */
  --wrap:1240px;
  --gut:clamp(1.25rem, 5vw, 4rem);
  --rhythm:clamp(4.5rem, 10vw, 8.5rem);
}

*,*::before,*::after{ box-sizing:border-box; }

html{ -webkit-text-size-adjust:100%; scroll-behavior:smooth; }

body{
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font:400 var(--t-base)/1.62 var(--sans);
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}

img{ max-width:100%; display:block; }

a{ color:inherit; }

.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{
  position:absolute; left:-9999px; top:0; z-index:200;
  background:var(--ink); color:#fff; padding:.85rem 1.25rem;
  font:500 var(--t-sm)/1 var(--sans); text-decoration:none;
}
.skip:focus{ left:0; }

/* Aviso temporal de web en construcción. Quitar junto con su <p class="wip"> del HTML. */
.wip{
  position:fixed; left:1rem; bottom:1rem; z-index:90; margin:0;
  display:flex; align-items:center; gap:.5rem;
  background:var(--paper); color:var(--ink); border-radius:999px;
  padding:.45rem .9rem; font:500 var(--t-xs)/1 var(--grot);
  pointer-events:none;
}
.wip::before{
  content:""; width:.5rem; height:.5rem; border-radius:999px; background:var(--gold);
}

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

/* ---------- titulares ---------- */

.h2{
  margin:0 0 1rem;
  font:600 clamp(1.9rem, 4.4vw, 3rem)/1.08 var(--sans);
  letter-spacing:-.025em;
  text-wrap:balance;
}
.h2--light{ color:var(--paper); }

/* =========================================================
   Botones
   ========================================================= */

.btn{
  --btn-bg:var(--ink);
  --btn-fg:var(--paper);
  display:inline-flex; align-items:center; justify-content:center;
  padding:.9rem 1.6rem;
  border:2px solid transparent; border-radius:999px;
  font:500 var(--t-sm)/1 var(--sans);
  letter-spacing:.01em;
  text-decoration:none; cursor:pointer;
  transition:transform .12s ease, background-color .18s ease, color .18s ease, border-color .18s ease;
}
.btn:active{ transform:translateY(1px); }

.btn--solid{ background:var(--btn-bg); color:var(--btn-fg); }
.btn--solid:hover{ background:var(--ink-2); }

.btn--line{
  background:transparent; color:var(--ink); border-color:currentColor;
}
.btn--line:hover{ background:var(--ink); color:var(--paper); border-color:var(--ink); }

.btn--ghost{
  background:transparent; color:var(--paper); border-color:rgba(255,255,255,.55);
}
.btn--ghost:hover{ border-color:var(--paper); background:rgba(255,255,255,.1); }

.btn--full{ width:100%; padding-block:1.05rem; }

/* =========================================================
   Cabecera
   ========================================================= */

.nav{
  position:fixed; inset:0 0 auto 0; z-index:100;
  transition:background-color .25s ease, border-color .25s ease;
  border-bottom:1px solid transparent;
}
.nav.is-scrolled{
  background:var(--paper);
  border-bottom-color:var(--hair);
}

.nav__inner{
  max-width:var(--wrap); margin-inline:auto;
  padding:1rem var(--gut);
  display:flex; align-items:center; gap:1rem;
}

.nav__brand{
  display:flex; align-items:center; gap:.6rem;
  margin-right:auto;
  font:600 1.0625rem/1 var(--sans); letter-spacing:-.01em;
  color:var(--paper); text-decoration:none;
  transition:color .25s ease;
}
.nav.is-scrolled .nav__brand{ color:var(--ink); }

.nav__mark{
  width:14px; height:14px; border-radius:50%;
  background:var(--accent, var(--coral));
  transition:background-color .5s ease;
}

.nav__menu{ display:flex; align-items:center; gap:2rem; }

.nav__menu a{
  font:400 var(--t-sm)/1 var(--sans);
  color:var(--paper); text-decoration:none;
  transition:color .25s ease, opacity .2s ease;
}
.nav__menu a:hover{ opacity:.7; }
.nav.is-scrolled .nav__menu a{ color:var(--ink); }

.nav__cta.btn--wa{
  background:var(--coral); color:var(--ink);
  padding:.75rem 1.3rem;
}
.nav__cta.btn--wa:hover{ background:var(--ink); color:var(--paper); opacity:1; }
.nav.is-scrolled .nav__menu .nav__cta{ color:var(--ink); }
.nav.is-scrolled .nav__menu .nav__cta:hover{ color:var(--paper); }

/* En el hero ya hay un botón de reserva bien visible: el de la cabecera
   sobra hasta que se pierde de vista. Aparece al bajar. */
@media (min-width:761px){
  .nav__cta{
    opacity:0; visibility:hidden; transform:translateY(-6px);
    transition:opacity .25s ease, transform .25s ease, visibility .25s ease;
  }
  .nav.is-scrolled .nav__cta{
    opacity:1; visibility:visible; transform:none;
  }
}

.nav__toggle{
  display:none;
  width:44px; height:44px; padding:0;
  background:none; border:0; cursor:pointer;
}
.nav__burger,
.nav__burger::before,
.nav__burger::after{
  display:block; width:22px; height:2px; background:var(--paper);
  transition:background-color .25s ease, transform .2s ease, opacity .2s ease;
}
.nav__burger{ margin-inline:auto; position:relative; }
.nav__burger::before,
.nav__burger::after{ content:""; position:absolute; left:0; }
.nav__burger::before{ top:-7px; }
.nav__burger::after{ top:7px; }
.nav.is-scrolled .nav__burger,
.nav.is-scrolled .nav__burger::before,
.nav.is-scrolled .nav__burger::after{ background:var(--ink); }
.nav__toggle[aria-expanded="true"] .nav__burger{ background:transparent; }
.nav__toggle[aria-expanded="true"] .nav__burger::before{ transform:translateY(7px) rotate(45deg); }
.nav__toggle[aria-expanded="true"] .nav__burger::after{ transform:translateY(-7px) rotate(-45deg); }

/* =========================================================
   Hero — vídeo en bucle + tablón de salidas
   ========================================================= */

.hero{
  position:relative;
  min-height:640px; height:100svh;
  display:flex; flex-direction:column; justify-content:flex-end;
  padding:7rem var(--gut) 4.5rem;
  background:var(--ink);
  overflow:hidden;
}

.hero__media{ position:absolute; inset:0; }

/* fondo de reserva: se ve si aún no hay vídeo cargado */
.hero__media::before{
  content:"";
  position:absolute; inset:0;
  background:
    repeating-linear-gradient(115deg, rgba(255,255,255,.045) 0 2px, transparent 2px 46px),
    radial-gradient(120% 90% at 78% 12%, rgba(57,193,231,.30), transparent 60%),
    radial-gradient(110% 80% at 12% 92%, rgba(255,100,108,.32), transparent 62%),
    var(--ink);
}

/* Los clips de la cabecera van apilados: el que toca está a 1 y el resto
   a 0, así el relevo es un fundido y no un salto en negro. */
.hero__video{
  position:absolute; inset:0;
  width:100%; height:100%;
  object-fit:cover;
  opacity:0;
  transition:opacity .8s linear;
}

.hero__video.is-on{ opacity:1; }

.hero__scrim{
  position:absolute; inset:0;
  background:linear-gradient(to top, rgba(19,19,19,.94) 6%, rgba(19,19,19,.55) 46%, rgba(19,19,19,.35) 100%);
}

.hero__body{
  position:relative;
  max-width:var(--wrap); width:100%;
  margin-inline:auto;
}

.hero__title{ margin:0 0 1.5rem; }

/* — tablón — */
.board{ display:block; }

.board__row{
  display:flex; gap:.32rem;
  margin-bottom:.32rem;
}

.cell{
  --size:clamp(3.1rem, 11vw, 6.6rem);
  width:var(--size); height:calc(var(--size) * 1.22);
  display:flex; align-items:center; justify-content:center;
  background:var(--ink-3);
  border:1px solid rgba(255,255,255,.14);
  border-radius:3px;
  box-shadow:inset 0 -1px 0 rgba(255,255,255,.08);
  color:var(--paper);
  font:400 calc(var(--size) * .62)/1 var(--black);
  perspective:420px;
  position:relative;
}
/* ranura central del panel mecánico */
.cell::after{
  content:"";
  position:absolute; left:0; right:0; top:50%;
  height:1px; background:rgba(0,0,0,.55);
}

.board__row--fixed .cell{
  background:var(--accent);
  color:var(--ink);
  border-color:rgba(0,0,0,.18);
  transition:background-color .5s ease;
}

.cell__char{ display:block; }

/* las casillas sin letra no se ven: la palabra termina limpia */
.cell.is-blank{
  background:transparent;
  border-color:transparent;
  box-shadow:none;
}
.cell.is-blank::after{ display:none; }

.cell.is-flip .cell__char{
  animation:flip 440ms cubic-bezier(.45,.05,.25,1) both;
}

@keyframes flip{
  0%   { transform:rotateX(0deg); }
  49%  { transform:rotateX(90deg); }
  50%  { transform:rotateX(-90deg); }
  100% { transform:rotateX(0deg); }
}

.hero__lede{
  max-width:46ch;
  margin:0 0 2rem;
  color:rgba(255,255,255,.86);
  font-size:var(--t-md);
}

.hero__actions{ display:flex; flex-wrap:wrap; gap:.75rem; }

.hero .btn--solid{
  background:var(--accent); color:var(--ink);
  transition:background-color .5s ease, transform .12s ease;
}
.hero .btn--solid:hover{ background:var(--paper); }

/* calles de tartán en el borde inferior */
.hero__lanes{
  position:absolute; inset:auto 0 0 0;
  display:flex; height:7px;
}
.hero__lanes span{ flex:1; background:var(--lane); }

/* aviso de material pendiente (lo añade el JS si no hay vídeo) */
.hero__badge{
  position:absolute; z-index:2;
  right:var(--gut); top:6.5rem;
  max-width:15rem;
  padding:.7rem .9rem;
  border:1px dashed rgba(255,255,255,.45);
  border-radius:4px;
  color:rgba(255,255,255,.82);
  font:400 var(--t-xs)/1.45 var(--grot);
}

/* =========================================================
   Grupos — solapas que inundan el fondo de color
   ========================================================= */

.groups{ padding-block:var(--rhythm) 0; }

.groups__head{
  max-width:var(--wrap); margin-inline:auto;
  padding-inline:var(--gut);
}
.groups__intro{
  max-width:52ch; margin:0 0 2.5rem;
  color:var(--mute); font-size:var(--t-md);
}

.tabs{
  max-width:var(--wrap); margin-inline:auto;
  padding-inline:var(--gut);
  display:flex; flex-wrap:wrap; gap:.5rem;
}

.tab{
  padding:.85rem 1.4rem;
  background:transparent;
  border:2px solid var(--hair);
  border-radius:999px;
  font:500 var(--t-sm)/1 var(--sans);
  color:var(--mute);
  cursor:pointer;
  transition:background-color .2s ease, color .2s ease, border-color .2s ease;
}
.tab:hover{ border-color:var(--ink); color:var(--ink); }

.tab[data-color="coral"].is-active{ background:var(--coral); border-color:var(--coral); }
.tab[data-color="cyan"].is-active { background:var(--cyan);  border-color:var(--cyan); }
.tab[data-color="gold"].is-active { background:var(--gold);  border-color:var(--gold); }
.tab[data-color="mint"].is-active { background:var(--mint);  border-color:var(--mint); }
.tab.is-active{ color:var(--ink); }

.panel{
  --c:var(--coral);
  margin-top:2.5rem;
  background:var(--c);
  display:grid;
  grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);
  align-items:stretch;
}
.panel[hidden]{ display:none; }
.panel[data-color="coral"]{ --c:var(--coral); }
.panel[data-color="cyan"] { --c:var(--cyan); }
.panel[data-color="gold"] { --c:var(--gold); }
.panel[data-color="mint"] { --c:var(--mint); }

.panel.is-active{ animation:panel-in .34s ease both; }

@keyframes panel-in{
  from{ opacity:0; transform:translateY(10px); }
  to  { opacity:1; transform:none; }
}

.panel__media{ position:relative; min-height:22rem; background:var(--ink); }
.panel__media img,
.panel__media video{
  position:absolute; inset:0;
  width:100%; height:100%; object-fit:cover;
  background:var(--ink);
}

.panel__body{
  padding:clamp(2.25rem, 5vw, 4.25rem) clamp(1.5rem, 5vw, 4.5rem);
  display:flex; flex-direction:column; justify-content:center;
}

.panel__claim{
  margin:0 0 1rem;
  font:600 clamp(1.5rem, 2.9vw, 2.25rem)/1.16 var(--sans);
  letter-spacing:-.02em;
  max-width:20ch;
}

.panel__text{
  margin:0 0 1.75rem;
  max-width:52ch;
  color:rgba(19,19,19,.82);
}

.facts{ margin:0 0 2rem; }
.facts > div{
  display:grid; grid-template-columns:8rem 1fr; gap:1.25rem;
  padding:.75rem 0;
  border-top:1px solid rgba(19,19,19,.22);
}
.facts > div:last-child{ border-bottom:1px solid rgba(19,19,19,.22); }
.facts dt{
  font:500 var(--t-sm)/1.4 var(--grot);
  color:rgba(19,19,19,.66);
}
.facts dd{ margin:0; font-size:var(--t-sm); }

/* — horarios, pintados desde horarios.json — */

.schedule{ margin:0 0 2rem; }

.schedule__title{
  margin:0 0 .6rem;
  font:500 var(--t-sm)/1.4 var(--grot);
  color:rgba(19,19,19,.66);
}

.schedule__fallback{
  margin:0; max-width:46ch;
  font-size:var(--t-sm);
  color:rgba(19,19,19,.82);
}

.schedule__rows{ list-style:none; margin:0; padding:0; }

.schedule__row{
  padding:.7rem 0;
  border-top:1px solid rgba(19,19,19,.22);
}
.schedule__row:last-child{ border-bottom:1px solid rgba(19,19,19,.22); }

.schedule__days{
  display:block; margin-bottom:.5rem;
  font:500 var(--t-sm)/1.4 var(--sans);
}

.schedule__times{ display:flex; flex-wrap:wrap; gap:.35rem; }

/* La hora se lee como en el tablón del hero: misma familia, misma celda. */
.slot{
  display:inline-flex; align-items:center;
  padding:.32rem .5rem;
  background:rgba(255,255,255,.3);
  border:1px solid rgba(19,19,19,.3);
  border-radius:3px;
  font:400 var(--t-xs)/1 var(--black);
  letter-spacing:.02em;
}

.schedule__note{
  display:block; margin-top:.55rem;
  font:400 var(--t-xs)/1.4 var(--grot);
  color:rgba(19,19,19,.6);
}

.schedule__meta{
  margin:.7rem 0 0;
  font:400 var(--t-xs)/1.4 var(--grot);
  color:rgba(19,19,19,.6);
}

.panel__actions{ display:flex; flex-wrap:wrap; gap:.75rem; }

/* =========================================================
   Nosotros
   ========================================================= */

.about{ padding:var(--rhythm) 0; }

.about__grid{
  max-width:var(--wrap); margin-inline:auto;
  padding-inline:var(--gut);
  display:grid; grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);
  gap:clamp(2.5rem, 6vw, 5.5rem);
  align-items:start;
}

.about__text p{
  margin:0 0 1.15rem;
  max-width:60ch;
  color:var(--ink-2);
}

.tally{ list-style:none; margin:0; padding:0; }
.tally li{ padding:1.5rem 0; border-top:2px solid var(--ink); }
.tally li:last-child{ border-bottom:2px solid var(--ink); }

.tally__num{ display:flex; gap:.3rem; margin-bottom:.6rem; }
.tally__num span{
  min-width:2.6rem; padding:.35rem .1rem;
  display:flex; align-items:center; justify-content:center;
  background:var(--ink); color:var(--paper);
  border-radius:3px;
  font:400 1.9rem/1 var(--black);
}
.tally li:nth-child(1) .tally__num span{ background:var(--coral); color:var(--ink); }
.tally li:nth-child(2) .tally__num span{ background:var(--cyan);  color:var(--ink); }
.tally li:nth-child(3) .tally__num span{ background:var(--gold);  color:var(--ink); }

.tally__label{
  display:block; max-width:26ch;
  font:400 var(--t-sm)/1.5 var(--grot);
  color:var(--mute);
}

/* =========================================================
   Instagram
   ========================================================= */

.feed{
  padding:0 0 var(--rhythm);
}
.feed__head,
.feed__grid,
.feed__note{
  max-width:var(--wrap);
  margin-block:0; margin-inline:auto;
  padding-inline:var(--gut);
}

.feed__head{
  display:flex; flex-wrap:wrap; align-items:baseline; gap:1rem;
  margin-bottom:2rem;
}
.feed__head .h2{ margin:0; }

.feed__handle{
  font:500 var(--t-sm)/1 var(--grot);
  color:var(--mute); text-decoration:none;
  border-bottom:2px solid var(--coral);
  padding-bottom:2px;
}
.feed__handle:hover{ color:var(--ink); }

.feed__grid{
  list-style:none;
  display:grid; grid-template-columns:repeat(4, minmax(0,1fr));
  gap:1.25rem;
}

.post{ display:flex; flex-direction:column; gap:.85rem; }
.post a{ text-decoration:none; display:block; }
.post img{
  width:100%; aspect-ratio:1; object-fit:cover;
  background:var(--hair);
}
.post__text{
  margin:0;
  font-size:var(--t-sm); line-height:1.5;
  color:var(--ink-2);
}
.post__meta{
  margin:0;
  font:400 var(--t-xs)/1 var(--grot);
  color:var(--mute);
}

.feed__note{
  margin:1.75rem auto 0;
  font:400 var(--t-xs)/1.5 var(--grot);
  color:var(--mute);
}

/* =========================================================
   Contacto
   ========================================================= */

.contact{
  background:var(--ink); color:var(--paper);
  padding:var(--rhythm) 0;
}

.contact__grid{
  max-width:var(--wrap); margin-inline:auto;
  padding-inline:var(--gut);
  display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  gap:clamp(2.5rem, 6vw, 5rem);
  align-items:start;
}

.contact__intro p{
  max-width:44ch; margin:0 0 2.25rem;
  color:rgba(255,255,255,.78);
}

.contact__direct{ list-style:none; margin:0; padding:0; }
.contact__direct li{
  display:grid; grid-template-columns:9rem 1fr; gap:1rem;
  padding:1rem 0; border-top:1px solid var(--ink-4);
}
.contact__direct li:last-child{ border-bottom:1px solid var(--ink-4); }
.contact__direct span{
  font:400 var(--t-sm)/1.5 var(--grot);
  color:var(--mute-light);
}
.contact__direct a{
  color:var(--paper); text-decoration:none;
  border-bottom:1px solid var(--ink-4);
  justify-self:start;
}
.contact__direct a:hover{ border-bottom-color:var(--cyan); }

/* — formulario — */

.form{
  --sel:var(--coral);
  background:var(--ink-3);
  border:1px solid var(--ink-4);
  border-radius:6px;
  padding:clamp(1.5rem, 3.5vw, 2.5rem);
}

.field{ margin-bottom:1.5rem; border:0; padding:0; }

.field label,
.field legend{
  display:block; margin-bottom:.55rem; padding:0;
  font:500 var(--t-sm)/1.4 var(--sans);
  color:var(--paper);
}

.field__opt{ color:var(--mute-light); font-weight:400; }

.field input[type="text"],
.field textarea{
  width:100%;
  padding:.85rem 1rem;
  background:var(--ink);
  border:1px solid var(--ink-4);
  border-radius:4px;
  color:var(--paper);
  font:400 var(--t-base)/1.5 var(--sans);
  transition:border-color .18s ease;
}
.field input[type="text"]::placeholder,
.field textarea::placeholder{ color:#5E5E5E; }

.field input[type="text"]:focus,
.field textarea:focus{
  border-color:var(--sel);
  outline:2px solid transparent;
  outline-offset:2px;
}

.field textarea{ resize:vertical; min-height:6rem; }

.field__error{
  margin:.5rem 0 0;
  font:400 var(--t-xs)/1.4 var(--grot);
  color:var(--coral);
}

.chips{ display:flex; flex-wrap:wrap; gap:.5rem; }

.chip{ position:relative; cursor:pointer; }
.chip input{
  position:absolute; opacity:0; width:0; height:0;
}
.chip span{
  display:inline-flex;
  padding:.6rem 1.05rem;
  border:1px solid var(--ink-4); border-radius:999px;
  font:400 var(--t-sm)/1 var(--sans);
  color:var(--mute-light);
  transition:background-color .18s ease, color .18s ease, border-color .18s ease;
}
.chip:hover span{ border-color:var(--mute-light); color:var(--paper); }
.chip input:focus-visible + span{ outline:3px solid var(--cyan); outline-offset:3px; }

.chip[data-color="coral"] input:checked + span{ background:var(--coral); border-color:var(--coral); color:var(--ink); }
.chip[data-color="cyan"]  input:checked + span{ background:var(--cyan);  border-color:var(--cyan);  color:var(--ink); }
.chip[data-color="gold"]  input:checked + span{ background:var(--gold);  border-color:var(--gold);  color:var(--ink); }
.chip[data-color="mint"]  input:checked + span{ background:var(--mint);  border-color:var(--mint);  color:var(--ink); }
.chip[data-color="none"]  input:checked + span{ background:var(--paper); border-color:var(--paper); color:var(--ink); }

.preview{
  margin:0 0 1.25rem;
  padding:1rem 1.1rem;
  background:var(--ink);
  border:1px dashed var(--ink-4);
  border-left:3px solid var(--sel);
  border-radius:4px;
  transition:border-left-color .25s ease;
}
.preview__label{
  margin:0 0 .4rem;
  font:400 var(--t-xs)/1 var(--grot);
  color:var(--mute-light);
}
.preview__text{
  margin:0;
  font:400 var(--t-sm)/1.55 var(--grot);
  color:rgba(255,255,255,.9);
}

.form .btn--solid{
  background:var(--sel); color:var(--ink);
  transition:background-color .25s ease, transform .12s ease;
}
.form .btn--solid:hover{ background:var(--paper); }

.form__alt{
  margin:1rem 0 0; text-align:center;
  font:400 var(--t-xs)/1.5 var(--grot);
  color:var(--mute-light);
}
.form__alt a{ color:var(--paper); }

/* =========================================================
   Pie
   ========================================================= */

.foot{
  background:var(--ink); color:var(--mute-light);
  border-top:1px solid var(--ink-4);
  padding:2.5rem 0;
}
.foot__inner{
  max-width:var(--wrap); margin-inline:auto;
  padding-inline:var(--gut);
  display:flex; flex-wrap:wrap; align-items:center; gap:1rem 2rem;
}
.foot__brand{
  margin:0; color:var(--paper);
  font:600 var(--t-base)/1 var(--sans);
}
.foot__brand span{
  color:var(--coral); font-weight:400; font-size:var(--t-sm);
  margin-left:.5rem;
}
.foot__links{ display:flex; flex-wrap:wrap; gap:1.5rem; margin-inline:auto; }
.foot__links a{
  font:400 var(--t-sm)/1 var(--sans);
  text-decoration:none;
}
.foot__links a:hover{ color:var(--paper); }
.foot__addr{
  margin:0;
  font:400 var(--t-xs)/1.5 var(--grot);
}

/* =========================================================
   Responsive
   ========================================================= */

@media (max-width:1000px){
  .panel{ grid-template-columns:1fr; }
  .panel__media{ min-height:16rem; max-height:26rem; }
  .panel__body--first{ order:2; }
  .about__grid{ grid-template-columns:1fr; }
  .contact__grid{ grid-template-columns:1fr; }
  .feed__grid{ grid-template-columns:repeat(2, minmax(0,1fr)); }
}

@media (max-width:760px){
  .nav__toggle{ display:block; }

  .nav__menu{
    position:absolute; inset:100% 0 auto 0;
    flex-direction:column; align-items:stretch; gap:0;
    background:var(--paper);
    border-bottom:1px solid var(--hair);
    padding:.5rem var(--gut) 1.5rem;
    display:none;
  }
  .nav__menu.is-open{ display:flex; }
  .nav__menu a{
    color:var(--ink);
    padding:.9rem 0;
    border-bottom:1px solid var(--hair);
  }
  .nav__menu .nav__cta{
    margin-top:1rem; border-bottom:0; justify-content:center;
  }

  .hero{ padding-bottom:3.5rem; }
  .hero__badge{ display:none; }

  .facts > div{ grid-template-columns:1fr; gap:.15rem; }

  .foot__inner{ flex-direction:column; align-items:flex-start; }
  .foot__links{ margin-inline:0; }
}

@media (max-width:420px){
  .feed__grid{ grid-template-columns:1fr; }
}

/* =========================================================
   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;
  }
}
