/* ============================================================
   MATAS FISIO — sistema de diseño
   Estética: editorial deportivo / póster de box
   Tinta + hueso + volt. Anton (display) · Archivo (texto)
   · Instrument Serif itálica (acentos)
   ============================================================ */
:root{
  --ink: #161814;
  --ink-soft: #3d423a;
  --bone: #efece4;
  --bone-deep: #e4e0d4;
  --volt: #d8f24b;
  --line: #161814;
  --font-display: "Anton", "Arial Narrow", sans-serif;
  --font-body: "Archivo", system-ui, sans-serif;
  --font-accent: "Instrument Serif", Georgia, serif;
  --pad: clamp(1.25rem, 4vw, 3rem);
  --max: 1280px;
  --ease-out: cubic-bezier(.22, 1, .36, 1);
}

*,*::before,*::after{ box-sizing:border-box; margin:0; padding:0; }
html{ scroll-behavior:smooth; }
@media (prefers-reduced-motion: reduce){
  html{ scroll-behavior:auto; }
  *,*::before,*::after{ animation:none !important; transition:none !important; }
}
body{
  font-family:var(--font-body);
  font-size:1.02rem; line-height:1.6;
  background:var(--bone); color:var(--ink);
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
img{ max-width:100%; display:block; }
a{ color:inherit; }
:focus-visible{ outline:3px solid var(--ink); outline-offset:3px; }
::selection{ background:var(--volt); color:var(--ink); }

/* grano de película sutil sobre toda la página */
body::after{
  content:""; position:fixed; inset:-50%; z-index:250; pointer-events:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='300' height='300'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2'/%3E%3C/filter%3E%3Crect width='300' height='300' filter='url(%23n)' opacity='0.5'/%3E%3C/svg%3E");
  opacity:.05;
}

.wrap{ max-width:var(--max); margin-inline:auto; padding-inline:var(--pad); }

.skip-link{
  position:absolute; left:-9999px; top:0; z-index:700;
  background:var(--ink); color:var(--bone); padding:.75rem 1.25rem;
}
.skip-link:focus{ left:0; }

/* ---------- tipografía ---------- */
.display{
  font-family:var(--font-display);
  font-weight:400; text-transform:uppercase;
  line-height:.92; letter-spacing:.01em;
}
.label{
  font-size:.72rem; font-weight:600; letter-spacing:.18em;
  text-transform:uppercase;
}
.outline{
  color:transparent;
  -webkit-text-stroke:2.5px var(--ink);
  text-stroke:2.5px var(--ink);
}
@media (max-width:640px){ .outline{ -webkit-text-stroke-width:1.6px; } }

/* ---------- intro curtain (solo 1ª visita de la sesión) ---------- */
.intro{ display:none; }
.show-intro .intro{
  position:fixed; inset:0; z-index:500;
  background:var(--ink);
  display:grid; place-items:center;
  animation:introOut .65s var(--ease-out) 1.3s forwards;
}
.show-intro .intro .intro-word{ overflow:hidden; text-align:center; }
.show-intro .intro .intro-word > span{
  display:block;
  font-family:var(--font-display); text-transform:uppercase; line-height:1;
  font-size:clamp(2.6rem,8vw,5rem); color:var(--bone);
  animation:riseUp .75s var(--ease-out) .12s both;
}
.show-intro .intro .intro-sub{
  margin-top:.9rem; text-align:center;
  font-size:.72rem; font-weight:700; letter-spacing:.26em; text-transform:uppercase;
  color:var(--volt);
  animation:fadeUp .5s var(--ease-out) .55s both;
}
@keyframes introOut{ to{ transform:translateY(-101%); visibility:hidden; } }

/* ---------- botones ---------- */
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:.65rem;
  min-height:54px; padding:1rem 1.9rem;
  font-family:var(--font-body); font-size:.85rem; font-weight:700;
  letter-spacing:.14em; text-transform:uppercase; text-decoration:none;
  border:1.5px solid var(--ink); background:var(--ink); color:var(--bone);
  cursor:pointer; touch-action:manipulation;
  transition:background-color .18s ease, color .18s ease, box-shadow .18s ease, transform .25s var(--ease-out);
  will-change:transform;
}
.btn:hover{ background:var(--volt); color:var(--ink); box-shadow:4px 4px 0 var(--ink); }
.btn:active{ box-shadow:none; }
.btn-line{ background:transparent; color:var(--ink); }
.btn-line:hover{ background:var(--volt); }
.btn-volt{ background:var(--volt); color:var(--ink); }
.btn-volt:hover{ background:var(--ink); color:var(--volt); }
.btn svg{ flex:none; }

/* ---------- header (se oculta al bajar, vuelve al subir) ---------- */
.topbar{
  position:sticky; top:0; z-index:100;
  background:var(--bone);
  border-bottom:1.5px solid var(--line);
  transition:transform .4s var(--ease-out);
}
.topbar.hide{ transform:translateY(-101%); }
.topbar-in{
  display:flex; align-items:center; justify-content:space-between; gap:1.25rem;
  min-height:68px;
}
.brand{ text-decoration:none; display:flex; align-items:baseline; gap:.5rem; }
.brand b{ font-family:var(--font-display); font-weight:400; font-size:1.35rem; text-transform:uppercase; letter-spacing:.02em; }
.brand span{ font-size:.7rem; font-weight:600; letter-spacing:.16em; text-transform:uppercase; color:var(--ink-soft); }
@media (max-width:480px){ .brand span{ display:none; } }

.mainnav{ display:flex; align-items:center; gap:1.6rem; list-style:none; }
.mainnav a:not(.btn){
  text-decoration:none; font-size:.8rem; font-weight:600;
  letter-spacing:.12em; text-transform:uppercase; color:var(--ink-soft);
  position:relative;
}
.mainnav a:not(.btn)::after{
  content:""; position:absolute; left:0; bottom:-5px; height:1.5px; width:100%;
  background:var(--ink); transform:scaleX(0); transform-origin:right;
  transition:transform .3s var(--ease-out);
}
.mainnav a:not(.btn):hover{ color:var(--ink); }
.mainnav a:not(.btn):hover::after{ transform:scaleX(1); transform-origin:left; }
.mainnav .btn{ min-height:42px; padding:.5rem 1.1rem; font-size:.74rem; }

.lang{ display:flex; align-items:center; gap:.45rem; font-size:.8rem; font-weight:700; letter-spacing:.1em; }
.lang a{ text-decoration:none; color:var(--ink-soft); padding:.35rem .25rem; }
.lang a:hover{ color:var(--ink); }
.lang .on{ color:var(--ink); text-decoration:underline; text-underline-offset:5px; }
.lang .sep{ color:var(--ink-soft); }

.nav-toggle{
  display:none; width:48px; height:48px; border:1.5px solid var(--ink);
  background:none; cursor:pointer; color:var(--ink); place-items:center;
}
@media (max-width:920px){
  .nav-toggle{ display:grid; }
  .mainnav{
    position:absolute; top:100%; left:0; right:0; display:none;
    flex-direction:column; align-items:stretch; gap:0;
    background:var(--bone); border-bottom:1.5px solid var(--line);
    padding:.5rem var(--pad) 1.5rem;
  }
  .mainnav.open{ display:flex; }
  .mainnav li{ border-bottom:1px solid var(--bone-deep); }
  .mainnav li:last-child{ border:none; padding-top:1rem; }
  .mainnav a:not(.btn){ display:block; padding:1rem 0; font-size:.95rem; }
  .mainnav a:not(.btn)::after{ display:none; }
}

/* ---------- hero ---------- */
.hero{ padding-block:clamp(3rem,7vw,5.5rem) 0; }
.hero .wrap{ position:relative; }
.hero-kicker{
  display:flex; align-items:center; gap:1rem; margin-bottom:1.6rem;
  color:var(--ink-soft);
  animation:fadeDown .7s var(--ease-out) .05s both;
}
.hero-kicker::after{ content:""; flex:1; height:1.5px; background:var(--line); transform-origin:left; animation:growX 1s var(--ease-out) .4s both; }
.hero h1{ font-size:clamp(3.2rem, 11.5vw, 9.5rem); }
/* reveal por líneas con máscara */
.hero h1 .row{ display:block; overflow:hidden; padding-bottom:.06em; margin-bottom:-.06em; }
.hero h1 .row-in{ display:inline-block; animation:riseUp 1s var(--ease-out) both; }
.hero h1 .row:nth-child(1) .row-in{ animation-delay:.1s; }
.hero h1 .row:nth-child(2) .row-in{ animation-delay:.22s; }
.hero-foot{
  display:grid; grid-template-columns:1.1fr .9fr; gap:clamp(2rem,5vw,4rem);
  align-items:end; margin-top:clamp(1.8rem,4vw,3rem); padding-bottom:clamp(2.5rem,5vw,4rem);
  animation:fadeUp .8s var(--ease-out) .45s both;
}
@media (max-width:820px){ .hero-foot{ grid-template-columns:1fr; } }
.hero-foot p{ max-width:54ch; font-size:1.08rem; color:var(--ink-soft); }
.hero-foot p strong{ color:var(--ink); }
.hero-ctas{ display:flex; flex-wrap:wrap; gap:.8rem; justify-content:flex-end; }
@media (max-width:820px){ .hero-ctas{ justify-content:flex-start; } }

/* badge circular giratorio */
.orbit{
  position:absolute; right:calc(var(--pad) + .5rem); top:clamp(5.5rem,13vw,9rem);
  width:clamp(116px,12vw,152px); aspect-ratio:1; z-index:5;
  display:grid; place-items:center; text-decoration:none;
  animation:fadeUp .8s var(--ease-out) .65s both;
}
.orbit svg{ position:absolute; inset:0; width:100%; height:100%; animation:spin 18s linear infinite; }
.orbit text{
  font-family:var(--font-body); font-weight:700; font-size:10px;
  letter-spacing:.2em; text-transform:uppercase; fill:var(--ink);
}
.orbit-core{ font-size:1.5rem; line-height:1; transition:transform .3s var(--ease-out); }
.orbit:hover .orbit-core{ transform:translateY(5px); }
@keyframes spin{ to{ transform:rotate(360deg); } }
@media (max-width:860px){ .orbit{ display:none; } }

@keyframes riseUp{ from{ transform:translateY(110%); } to{ transform:none; } }
@keyframes fadeDown{ from{ opacity:0; transform:translateY(-14px); } to{ opacity:1; transform:none; } }
@keyframes fadeUp{ from{ opacity:0; transform:translateY(18px); } to{ opacity:1; transform:none; } }
@keyframes growX{ from{ transform:scaleX(0); } to{ transform:scaleX(1); } }

/* si hay intro, el hero espera a que suba el telón */
.show-intro .hero-kicker{ animation-delay:1.35s; }
.show-intro .hero-kicker::after{ animation-delay:1.7s; }
.show-intro .hero h1 .row:nth-child(1) .row-in{ animation-delay:1.4s; }
.show-intro .hero h1 .row:nth-child(2) .row-in{ animation-delay:1.52s; }
.show-intro .hero-foot{ animation-delay:1.75s; }
.show-intro .orbit{ animation-delay:1.95s; }
.show-intro .datastrip > div:nth-child(1){ animation-delay:1.85s; }
.show-intro .datastrip > div:nth-child(2){ animation-delay:1.95s; }
.show-intro .datastrip > div:nth-child(3){ animation-delay:2.05s; }
.show-intro .datastrip > div:nth-child(4){ animation-delay:2.15s; }

/* ---------- franja de datos ---------- */
.datastrip{
  border-block:1.5px solid var(--line);
  display:grid; grid-template-columns:repeat(4,1fr);
}
@media (max-width:820px){ .datastrip{ grid-template-columns:1fr 1fr; } }
.datastrip > div{
  padding:1.3rem var(--pad) 1.4rem; border-right:1.5px solid var(--line);
  animation:fadeUp .7s var(--ease-out) both;
}
.datastrip > div:nth-child(1){ animation-delay:.55s; }
.datastrip > div:nth-child(2){ animation-delay:.65s; }
.datastrip > div:nth-child(3){ animation-delay:.75s; }
.datastrip > div:nth-child(4){ animation-delay:.85s; }
.datastrip > div:last-child{ border-right:none; }
@media (max-width:820px){
  .datastrip > div:nth-child(2){ border-right:none; }
  .datastrip > div:nth-child(-n+2){ border-bottom:1.5px solid var(--line); }
}
.datastrip .label{ color:var(--ink-soft); display:block; margin-bottom:.35rem; }
.datastrip strong{ font-size:1rem; font-weight:600; }

/* ---------- reveals al hacer scroll (blur-fade) ----------
   Solo si JS añade .anim al <html>: respeta reduced-motion
   y deja todo visible sin JS. */
.anim .rv{
  opacity:0; transform:translateY(28px); filter:blur(7px);
  transition:opacity .7s var(--ease-out), transform .7s var(--ease-out), filter .7s var(--ease-out);
}
.anim .rv.is-in{ opacity:1; transform:none; filter:none; }

/* ---------- secciones ---------- */
.section{ padding-block:clamp(3.5rem,8vw,6.5rem); }
.sec-head{
  display:flex; align-items:baseline; gap:1.2rem;
  border-bottom:1.5px solid var(--line); padding-bottom:1.1rem;
  margin-bottom:clamp(2rem,5vw,3.5rem);
}
.sec-head .num{ font-family:var(--font-display); font-size:1.1rem; color:var(--ink-soft); }
.sec-head h2{ font-size:clamp(2rem,5vw,3.6rem); }
.sec-head .side{ margin-left:auto; max-width:34ch; font-size:.92rem; color:var(--ink-soft); }
@media (max-width:720px){ .sec-head{ flex-wrap:wrap; } .sec-head .side{ margin-left:0; } }

/* ---------- servicios (filas con relleno deslizante) ---------- */
.svc{ list-style:none; border-bottom:1.5px solid var(--line); }
.svc li{ border-top:1.5px solid var(--line); }
.svc-row{
  position:relative; isolation:isolate;
  display:grid; grid-template-columns:70px 1fr 1.15fr 50px;
  gap:1.5rem; align-items:center;
  padding:1.6rem .9rem;
  margin-inline:-.9rem;
}
.svc-row::before{
  content:""; position:absolute; inset:0; z-index:-1;
  background:var(--volt);
  transform:scaleX(0); transform-origin:left;
  transition:transform .42s var(--ease-out);
}
.svc-row:hover::before{ transform:scaleX(1); }
.svc-row:hover .svc-desc{ color:var(--ink); }
@media (max-width:820px){
  .svc-row{ grid-template-columns:50px 1fr; grid-template-rows:auto auto; gap:.4rem 1rem; }
  .svc-row .svc-desc{ grid-column:2; }
  .svc-row .svc-arrow{ display:none; }
}
.svc-num{ font-family:var(--font-display); font-size:1rem; color:var(--ink-soft); }
.svc-name{ font-family:var(--font-display); font-weight:400; text-transform:uppercase; font-size:clamp(1.3rem,2.6vw,1.9rem); line-height:1; }
.svc-desc{ font-size:.95rem; color:var(--ink-soft); max-width:52ch; transition:color .3s ease; }
.svc-arrow{
  justify-self:end; color:var(--ink); font-size:1.3rem;
  transition:transform .35s var(--ease-out);
}
.svc-row:hover .svc-arrow{ transform:translateX(8px); }

/* ---------- manifiesto (texto que se rellena al hacer scroll) ---------- */
.manifesto{ padding-block:clamp(4.5rem,10vw,8rem); }
.manifesto .label{ display:block; color:var(--ink-soft); margin-bottom:1.8rem; }
.manifesto-text{
  font-size:clamp(1.7rem,4.2vw,3.2rem); font-weight:700;
  line-height:1.2; letter-spacing:-.015em;
  max-width:30ch;
  background:linear-gradient(90deg, var(--ink) 50%, #c6c1af 50%);
  background-size:200% 100%;
  background-position:calc((1 - var(--fill, 1)) * 100%) 0;
  -webkit-background-clip:text; background-clip:text;
  color:transparent;
}
.anim .manifesto-text{ --fill:0; }
.manifesto-text em{
  font-family:var(--font-accent); font-style:italic; font-weight:400;
  letter-spacing:0; font-size:1.1em;
}

/* ---------- método (3 pasos) ---------- */
.steps{
  display:grid; grid-template-columns:repeat(3,1fr);
  border:1.5px solid var(--line);
}
@media (max-width:820px){ .steps{ grid-template-columns:1fr; } }
.stepc{
  padding:2.1rem 1.7rem 2.3rem;
  border-right:1.5px solid var(--line);
  transition:background-color .25s ease;
}
.stepc:last-child{ border-right:none; }
@media (max-width:820px){
  .stepc{ border-right:none; border-bottom:1.5px solid var(--line); }
  .stepc:last-child{ border-bottom:none; }
}
.stepc:hover{ background:var(--bone-deep); }
.stepc .n{
  font-family:var(--font-display); font-size:3.2rem; line-height:1;
  color:transparent; -webkit-text-stroke:1.5px var(--ink);
  display:block; margin-bottom:1.1rem;
}
.stepc h3{
  font-family:var(--font-display); font-weight:400; text-transform:uppercase;
  font-size:1.35rem; margin-bottom:.6rem;
}
.stepc p{ font-size:.94rem; color:var(--ink-soft); max-width:36ch; }

/* ---------- sobre mí ---------- */
.about{ background:var(--bone); }
.about-grid{ display:grid; grid-template-columns:.85fr 1.15fr; gap:clamp(2.5rem,6vw,5rem); align-items:start; }
@media (max-width:860px){ .about-grid{ grid-template-columns:1fr; } }
.photo-frame{
  border:1.5px solid var(--line);
  background:
    repeating-linear-gradient(45deg, transparent 0 14px, rgba(22,24,20,.07) 14px 15px),
    var(--bone-deep);
  aspect-ratio:4/4.8;
  display:grid; place-items:center;
  box-shadow:10px 10px 0 var(--volt), 10px 10px 0 1.5px var(--ink);
  margin-bottom:14px; margin-right:14px;
}
.photo-frame img{ width:100%; height:100%; object-fit:cover; }
.photo-frame .ph{
  text-align:center; font-size:.78rem; font-weight:600; letter-spacing:.16em;
  text-transform:uppercase; color:var(--ink-soft); padding:1rem;
}
.about-body h3{
  font-family:var(--font-display); font-weight:400; text-transform:uppercase;
  font-size:clamp(1.5rem,3vw,2.1rem); line-height:1.05; margin-bottom:1.2rem;
}
.about-body p{ color:var(--ink-soft); margin-bottom:1.05rem; }
.about-body p strong{ color:var(--ink); }
.cred{ list-style:none; margin-top:1.6rem; border-top:1.5px solid var(--line); }
.cred li{
  display:flex; gap:.9rem; align-items:baseline;
  padding:.85rem 0; border-bottom:1px solid var(--bone-deep);
  font-weight:600; font-size:.95rem;
}
.cred li::before{ content:"→"; font-weight:700; }

/* ---------- ubicación (sección oscura + spotlight) ---------- */
.where{ background:var(--ink); color:var(--bone); position:relative; overflow:hidden; }
.where :focus-visible{ outline-color:var(--volt); }
.where .spot{
  position:absolute; inset:0; pointer-events:none; z-index:0;
  background:radial-gradient(480px circle at var(--mx,70%) var(--my,30%), rgba(216,242,75,.09), transparent 65%);
}
.where .wrap{ position:relative; z-index:1; }
.where .sec-head{ border-color:var(--bone); }
.where .sec-head .num{ color:var(--volt); }
.where .sec-head .side{ color:#b9bcae; }
.where-grid{ display:grid; grid-template-columns:1.1fr .9fr; gap:clamp(2.5rem,6vw,5rem); }
@media (max-width:860px){ .where-grid{ grid-template-columns:1fr; } }
.where-big{
  font-family:var(--font-display); text-transform:uppercase;
  font-size:clamp(1.9rem,4.5vw,3.2rem); line-height:1;
}
.where-big em{
  font-family:var(--font-accent); font-style:italic; font-weight:400;
  text-transform:none; color:var(--volt); font-size:1.06em;
}
.where p.lead{ margin-top:1.4rem; color:#c9ccbd; max-width:50ch; }
.where-card{ border:1.5px solid var(--bone); background:rgba(239,236,228,.02); }
.where-card > div{ padding:1.4rem 1.6rem; border-bottom:1px solid rgba(239,236,228,.25); }
.where-card > div:last-child{ border-bottom:none; }
.where-card .label{ color:#a7ab9b; display:block; margin-bottom:.3rem; }
.where-card strong{ font-size:1.05rem; font-weight:600; }
.where-card a.maplink{
  display:inline-flex; align-items:center; gap:.5rem; margin-top:.4rem;
  color:var(--volt); font-weight:700; font-size:.85rem; letter-spacing:.1em; text-transform:uppercase;
  text-decoration:none; border-bottom:1.5px solid var(--volt); padding-bottom:.15rem;
}
.where-card a.maplink:hover{ color:var(--bone); border-color:var(--bone); }

/* ---------- FAQ ---------- */
.faq-list{ border-bottom:1.5px solid var(--line); max-width:860px; }
.faq-item{ border-top:1.5px solid var(--line); }
.faq-item summary{
  list-style:none; cursor:pointer;
  display:flex; justify-content:space-between; align-items:center; gap:1.5rem;
  padding:1.4rem 0; min-height:56px;
  font-weight:700; font-size:1.05rem;
  transition:padding-left .3s var(--ease-out);
}
.faq-item summary:hover{ padding-left:.6rem; }
.faq-item summary::-webkit-details-marker{ display:none; }
.faq-item summary .x{
  flex:none; font-family:var(--font-display); font-size:1.5rem; line-height:1;
  transition:transform .25s var(--ease-out);
}
.faq-item[open] summary .x{ transform:rotate(45deg); }
.faq-item .faq-body{ padding:0 0 1.5rem; color:var(--ink-soft); max-width:64ch; }
.faq-item .faq-body a{ font-weight:600; }

/* ---------- CTA final (magnético vía JS) ---------- */
.bigcta{ border-top:1.5px solid var(--line); }
.bigcta a.giant{
  display:block; text-decoration:none; text-align:center;
  padding:clamp(2.5rem,6vw,4.5rem) var(--pad);
  background:var(--volt); color:var(--ink);
  border-bottom:1.5px solid var(--line);
  transition:background-color .25s ease, color .25s ease;
  overflow:hidden;
}
.bigcta .giant-in{
  display:block;
  font-family:var(--font-display); text-transform:uppercase;
  font-size:clamp(2.6rem,9.5vw,7.5rem); line-height:1;
  transition:transform .3s var(--ease-out);
  will-change:transform;
}
.bigcta .giant-in small{
  display:block; font-family:var(--font-body); font-size:.8rem; font-weight:700;
  letter-spacing:.2em; margin-bottom:.8rem;
}
.bigcta .arr{ display:inline-block; transition:transform .3s var(--ease-out); }
.bigcta a.giant:hover{ background:var(--ink); color:var(--volt); }
.bigcta a.giant:hover .arr{ transform:translate(.12em,-.12em); }
.contact-row{
  display:flex; flex-wrap:wrap; gap:1rem 3rem; justify-content:center;
  padding:1.6rem var(--pad);
  font-size:.92rem; font-weight:600;
}
.contact-row a{ text-decoration:none; }
.contact-row a:hover{ text-decoration:underline; text-underline-offset:4px; }
.contact-row .label{ color:var(--ink-soft); margin-right:.5rem; }

/* ---------- footer: wordmark sobre hueso + barra de info oscura ---------- */
.footer{ background:var(--ink); color:var(--bone); border-top:1.5px solid var(--line); overflow:hidden; }
.footer :focus-visible{ outline-color:var(--volt); }
.foot-mark{
  display:block; text-align:center; white-space:nowrap;
  font-size:clamp(3.4rem,13.5vw,10.8rem); line-height:.95;
  padding-top:clamp(1.8rem,4vw,3rem); padding-bottom:clamp(.9rem,2.5vw,1.6rem);
  background:var(--bone);                 /* el wordmark se queda sobre hueso */
  color:transparent; -webkit-text-stroke:1.5px var(--ink);
  user-select:none;
  transition:color .4s ease;
}
.foot-mark:hover{ color:var(--volt); }
@media (max-width:640px){ .foot-mark{ -webkit-text-stroke-width:1px; } }
.footer-in{
  display:flex; flex-wrap:wrap; gap:1rem 2rem; align-items:center; justify-content:space-between;
  padding-block:1.4rem; font-size:.82rem; color:#a7ab9b;
}
.footer-in a{ color:var(--bone); font-weight:600; }
.footer-in a:not(.fluxuaa-credit):hover{ color:var(--volt); }

/* ---------- crédito FluxuAA (snippet made-by · html.html) ---------- */
.fluxuaa-credit{
  display:inline-flex; align-items:baseline;
  font:500 0.8125rem/1.4 system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  color:inherit;            /* hereda el color del footer (currentColor) */
  opacity:0.7;              /* gris apagado / discreto */
  text-decoration:none;
  letter-spacing:0.01em;
  transition:opacity 0.15s ease;
}
.fluxuaa-credit:hover,
.fluxuaa-credit:focus-visible{ opacity:1; }
.fluxuaa-credit__accent{ color:#29B6D8; font-weight:700; }  /* "AA" en cian */

/* ---------- WhatsApp flotante ---------- */
.wa-float{
  position:fixed; right:max(1rem, env(safe-area-inset-right)); bottom:max(1rem, env(safe-area-inset-bottom));
  z-index:90; width:58px; height:58px;
  background:var(--ink); color:var(--volt);
  border:1.5px solid var(--ink);
  display:grid; place-items:center;
  transition:background-color .18s ease, color .18s ease, transform .25s var(--ease-out);
}
.wa-float:hover{ background:var(--volt); color:var(--ink); transform:translateY(-3px); }
