/* ============================================================
   Eli Kafea — base de marca de la portada (index.html y eu/index.html)
   Colores del manual, League Spartan + Lato, la flor calcada, botones,
   formulario, animaciones y visor de fotos. La estructura de la
   portada está en index.css. Las páginas secundarias (aviso legal,
   404, gracias) siguen con styles.css, que lleva su propia copia de
   estos tokens.
   ============================================================ */

:root {
  --arena:        #FFF6E7;
  --arena-clara:  #FFFBF4;
  --arena-honda:  #F5E9D4;
  --negro:        #000000;
  --verde:        #36604D;
  --verde-claro:  #A9CCB8;   /* solo sobre marrón, verde o negro */
  --marron:       #432818;
  --texto:        #3B3129;
  --texto-mudo:   #6B5A4C;
  --linea:        #E3D3B8;
  --hair:         color-mix(in srgb, var(--linea) 70%, transparent);

  --font-display: "League Spartan", "League Spartan Reserva", "Futura", "Century Gothic", "Helvetica Neue", Arial, sans-serif;
  --font-text:    "Lato", "Lato Reserva", -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif;

  --flor: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'%3E%3Cpath d='M79.1 52.7C79.8 53.2 80.5 53.7 81.2 54.2C81.9 54.7 82.6 55.3 83.3 55.9C84.0 56.5 84.6 57.2 85.2 57.8C85.8 58.5 86.4 59.2 87.0 60.0C87.6 60.7 88.2 61.5 88.7 62.3C89.2 63.1 89.7 64.0 90.2 64.8C90.6 65.7 91.0 66.6 91.4 67.5C91.8 68.4 92.2 69.4 92.5 70.3C92.8 71.3 93.0 72.3 93.2 73.2C93.4 74.2 93.5 75.2 93.5 76.1C93.6 77.1 93.5 78.1 93.4 79.0C93.3 79.9 93.2 80.9 92.9 81.8C92.7 82.6 92.3 83.5 91.9 84.2C91.5 85.0 90.9 85.7 90.4 86.4C89.8 87.0 89.1 87.7 88.4 88.2C87.7 88.7 86.9 89.1 86.0 89.4C85.2 89.8 84.2 90.0 83.3 90.2C82.3 90.3 81.4 90.4 80.4 90.4C79.4 90.4 78.3 90.3 77.3 90.2C76.2 90.0 75.2 89.7 74.1 89.3C73.0 88.9 71.9 88.4 70.8 87.8C69.7 87.1 68.6 86.3 67.5 85.4C66.4 84.4 65.3 83.4 64.3 82.3C63.3 81.1 62.3 79.7 61.4 78.5C60.5 77.3 59.7 76.1 59.0 75.0C58.2 74.0 57.6 72.5 57.1 72.3C56.7 72.2 56.6 73.4 56.4 74.3C56.1 75.2 55.9 76.5 55.6 77.7C55.3 78.9 54.9 80.3 54.5 81.6C54.0 82.9 53.5 84.3 53.0 85.5C52.4 86.8 51.8 88.0 51.1 89.1C50.4 90.2 49.6 91.2 48.8 92.1C48.1 93.0 47.2 93.8 46.4 94.4C45.5 95.1 44.6 95.6 43.8 96.1C42.9 96.6 41.9 97.0 41.0 97.3C40.1 97.6 39.2 97.8 38.3 97.9C37.4 98.0 36.5 98.0 35.6 98.0C34.7 98.0 33.8 97.8 33.0 97.6C32.2 97.4 31.4 97.0 30.6 96.6C29.9 96.2 29.2 95.6 28.5 95.0C27.9 94.4 27.3 93.7 26.8 93.0C26.3 92.2 25.9 91.4 25.5 90.5C25.1 89.7 24.9 88.7 24.7 87.7C24.4 86.7 24.3 85.7 24.3 84.6C24.2 83.5 24.2 82.5 24.4 81.3C24.6 80.1 24.9 78.9 25.3 77.7C25.7 76.4 26.1 75.2 26.8 73.9C27.4 72.7 28.2 71.3 29.0 70.1C29.8 68.9 30.7 67.7 31.5 66.7C32.3 65.6 33.4 64.5 33.6 63.9C33.8 63.3 33.8 63.0 32.6 63.1C31.5 63.1 28.8 64.0 27.0 64.3C25.1 64.6 23.2 64.8 21.5 64.8C19.9 64.8 18.4 64.6 17.0 64.4C15.7 64.2 14.4 63.8 13.3 63.4C12.1 62.9 11.1 62.4 10.2 61.8C9.3 61.2 8.6 60.6 7.9 59.9C7.2 59.2 6.6 58.4 6.1 57.6C5.7 56.9 5.3 56.1 5.0 55.2C4.7 54.4 4.6 53.6 4.5 52.7C4.4 51.9 4.3 51.0 4.3 50.2C4.4 49.3 4.4 48.5 4.6 47.6C4.8 46.8 5.0 46.0 5.3 45.2C5.6 44.4 5.9 43.6 6.3 42.8C6.7 42.0 7.2 41.3 7.7 40.6C8.2 39.9 8.9 39.2 9.5 38.6C10.2 38.0 10.9 37.4 11.7 36.9C12.4 36.3 13.3 35.9 14.2 35.5C15.2 35.1 16.1 34.7 17.1 34.5C18.1 34.2 19.1 33.9 20.2 33.8C21.3 33.7 22.5 33.6 23.7 33.7C24.9 33.8 26.1 33.8 27.7 34.4C29.3 34.9 31.8 36.2 33.3 36.8C34.8 37.4 36.3 38.3 36.7 38.0C37.0 37.8 35.8 36.2 35.6 35.3C35.3 34.4 35.1 33.6 35.0 32.7C34.8 31.8 34.7 31.0 34.6 30.1C34.5 29.1 34.5 28.2 34.4 27.2C34.4 26.2 34.3 25.1 34.3 24.0C34.3 22.9 34.4 21.8 34.4 20.6C34.5 19.4 34.5 18.1 34.7 16.9C34.8 15.6 35.0 14.3 35.3 13.1C35.6 11.9 36.0 10.8 36.5 9.7C36.9 8.7 37.5 7.7 38.1 6.9C38.7 6.0 39.3 5.2 40.0 4.5C40.8 3.8 41.6 3.3 42.4 2.8C43.2 2.4 44.1 2.1 44.9 2.0C45.8 1.9 46.7 1.9 47.6 2.1C48.6 2.2 49.5 2.6 50.4 3.1C51.3 3.6 52.2 4.3 53.0 5.2C53.8 6.1 54.6 7.1 55.3 8.5C56.0 9.9 56.7 11.2 57.1 13.5C57.5 15.8 57.6 19.8 57.8 22.2C58.0 24.7 58.0 26.6 58.2 28.1C58.4 29.6 58.5 30.4 58.8 31.1C59.0 31.8 59.1 32.4 59.6 32.3C60.1 32.1 60.9 31.0 61.6 30.2C62.4 29.4 63.2 28.6 64.1 27.7C65.0 26.8 66.0 25.9 67.1 25.0C68.1 24.2 69.3 23.3 70.4 22.6C71.5 21.8 72.7 21.1 73.8 20.6C74.9 20.1 76.0 19.7 77.1 19.5C78.2 19.2 79.3 19.0 80.4 18.9C81.4 18.8 82.5 18.8 83.5 18.9C84.5 18.9 85.4 19.1 86.4 19.3C87.3 19.6 88.1 19.9 88.9 20.3C89.7 20.7 90.5 21.2 91.2 21.7C91.9 22.3 92.6 22.9 93.2 23.5C93.7 24.2 94.2 24.9 94.5 25.7C94.9 26.5 95.3 27.3 95.4 28.2C95.6 29.1 95.7 30.0 95.7 31.0C95.6 31.9 95.5 32.9 95.3 33.9C95.0 34.9 94.7 35.9 94.2 36.9C93.8 37.9 93.4 38.8 92.7 39.8C92.0 40.8 91.1 41.8 90.1 42.8C89.1 43.7 88.0 44.7 86.8 45.5C85.5 46.4 84.0 47.3 82.7 48.0C81.3 48.8 79.7 49.4 78.7 50.0C77.8 50.6 76.9 51.0 77.0 51.5C77.0 51.9 78.4 52.3 79.1 52.7Z'/%3E%3C/svg%3E");

  --wrap: 1240px;
  --gut: clamp(1.25rem, 4.5vw, 3.5rem);
  --barra: 4.25rem;
  --r: 4px;
  --ease: cubic-bezier(.2, .7, .3, 1);
  --ease-out: cubic-bezier(.22, 1, .3, 1);
}

/* ---------- reset ---------- */
*, *::before, *::after { box-sizing: border-box; }
html {
  -webkit-text-size-adjust: 100%;
  scroll-behavior: smooth;
  scroll-padding-top: calc(var(--barra) + 1rem);
}
section[id], main[id] { scroll-margin-top: calc(var(--barra) + 1rem); }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }

body {
  margin: 0;
  background: var(--arena);
  color: var(--negro);
  font-family: var(--font-text);
  font-size: clamp(1rem, .96rem + .2vw, 1.0625rem);
  line-height: 1.65;
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
}
body::after {
  content: "";
  position: fixed; inset: 0;
  pointer-events: none; z-index: 9999;
  opacity: .022;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='200'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3'/%3E%3C/filter%3E%3Crect width='200' height='200' filter='url(%23n)'/%3E%3C/svg%3E");
}

img, iframe { max-width: 100%; display: block; }
[hidden] { display: none !important; }
h1, h2, h3 { margin: 0; font-weight: 700; }
p { margin: 0 0 1.1em; }
a { color: inherit; }
ul { margin: 0; padding: 0; list-style: none; }
button { font: inherit; }
::selection { background: var(--verde); color: var(--arena); }
a, button { -webkit-tap-highlight-color: transparent; }

:focus-visible {
  outline: 2px solid var(--negro);
  outline-offset: 3px;
  box-shadow: 0 0 0 5px var(--arena), 0 0 0 7px var(--negro);
  border-radius: 2px;
}
.oscuro :focus-visible, .visor :focus-visible {
  outline-color: var(--verde-claro);
  box-shadow: 0 0 0 5px rgba(0,0,0,.85), 0 0 0 7px var(--verde-claro);
}

.skip-link {
  position: absolute; left: -9999px; top: 0; z-index: 10000;
  background: var(--negro); color: var(--arena);
  padding: .75rem 1.25rem; font-size: .9rem;
}
.skip-link:focus { left: 1rem; top: 1rem; }

.wrap { width: 100%; max-width: var(--wrap); margin-inline: auto; padding-inline: var(--gut); }
.muted { color: var(--texto-mudo); }
.stars { color: var(--verde); letter-spacing: -.05em; }

/* ---------- la flor y el logotipo ---------- */
.flor {
  display: block;
  background: var(--verde);
  -webkit-mask: var(--flor) center / contain no-repeat;
          mask: var(--flor) center / contain no-repeat;
}
.logotipo {
  font-family: var(--font-display);
  font-weight: 700;
  letter-spacing: -.055em;
  line-height: .9;
  display: inline-block;
  white-space: nowrap;
}
.logotipo::after {
  content: "";
  display: inline-block;
  width: .38em; height: .38em;
  margin-left: -.02em;
  vertical-align: .5em;
  background: var(--verde);
  -webkit-mask: var(--flor) center / contain no-repeat;
          mask: var(--flor) center / contain no-repeat;
}
.logotipo--sm { font-size: 1.3rem; }
.dot { color: inherit; }

/* ---------- tipografía ---------- */
h1, h2 { font-family: var(--font-display); }
h2 {
  font-size: clamp(2.6rem, 1.3rem + 4.6vw, 4.8rem);
  line-height: .95;
  letter-spacing: -.04em;
  margin-bottom: .6em;
}
h1 em, h2 em { font-style: normal; color: var(--verde); }
.hero__stroke { color: var(--verde); }
.hero__stroke em { color: var(--negro); font-style: normal; }

main { counter-reset: sec; }
.section { counter-increment: sec; }
.eyebrow {
  display: flex; align-items: center; gap: .85rem;
  font-family: var(--font-display);
  font-size: .74rem; font-weight: 600;
  letter-spacing: .2em; text-transform: uppercase;
  color: var(--texto-mudo);
  margin: 0 0 1.5rem;
}
.section .eyebrow::before {
  content: counter(sec, decimal-leading-zero);
  font-weight: 700; font-size: .95rem; letter-spacing: 0;
  color: var(--verde);
}
.eyebrow::after { content: ""; flex: 0 0 2rem; height: 1px; background: var(--linea); }
.oscuro .eyebrow { color: rgba(255,246,231,.62); }
.oscuro .eyebrow::before { color: var(--verde-claro); }
.oscuro .eyebrow::after { background: rgba(255,246,231,.25); }

/* ---------- botones y enlaces ---------- */
.btn {
  display: inline-flex; align-items: center; justify-content: center;
  gap: .6rem;
  padding: 1.05rem 1.8rem .95rem;
  font-family: var(--font-display);
  font-size: .8rem; font-weight: 600;
  letter-spacing: .1em; text-transform: uppercase;
  line-height: 1;
  text-decoration: none;
  border: 1.5px solid var(--negro);
  border-radius: 100px;
  transition: color .3s var(--ease), border-color .3s var(--ease), background-color .3s var(--ease);
  white-space: nowrap;
  position: relative; overflow: hidden; isolation: isolate;
  cursor: pointer;
}
.btn::before {
  content: "";
  position: absolute; inset: 0; z-index: -1;
  transform: scaleY(0); transform-origin: 50% 100%;
  transition: transform .45s var(--ease-out);
}
.btn:hover::before, .btn:focus-visible::before { transform: scaleY(1); }
@media (hover: none) {
  .btn::before { display: none; }
  .btn:active { transform: scale(.97); }
}
.btn--primary { background: var(--negro); color: var(--arena); }
.btn--primary::before { background: var(--verde); }
.btn--primary:hover { border-color: var(--verde); }
.btn--verde { background: var(--verde); border-color: var(--verde); color: var(--arena); }
.btn--verde::before { background: var(--negro); }
.btn--verde:hover { border-color: var(--negro); }
.btn--ghost { background: transparent; color: var(--negro); }
.btn--ghost::before { background: var(--negro); }
.btn--ghost:hover { color: var(--arena); }
.btn--claro { background: var(--arena); border-color: var(--arena); color: var(--negro); }
.btn--claro::before { background: var(--verde-claro); }
.btn--claro:hover { border-color: var(--verde-claro); }
.btn--outline { background: transparent; border-color: rgba(255,246,231,.45); color: var(--arena); }
.btn--outline::before { background: rgba(255,246,231,.12); }
.btn--outline:hover { border-color: var(--arena); }
.btn--sm { padding: .75rem 1.25rem .68rem; font-size: .72rem; }

.link-arrow {
  display: inline-flex; align-items: center; gap: .55rem;
  text-decoration: none;
  font-family: var(--font-display);
  font-size: .78rem; font-weight: 600;
  letter-spacing: .12em; text-transform: uppercase;
  padding-bottom: .3rem;
  border-bottom: 1.5px solid currentColor;
  transition: gap .3s var(--ease), color .3s var(--ease);
}
.link-arrow:hover { gap: .95rem; color: var(--verde); }
.oscuro .link-arrow:hover { color: var(--verde-claro); }

/* ---------- abierto / cerrado ---------- */
.status {
  display: inline-flex; align-items: center; gap: .5rem;
  font-family: var(--font-display);
  font-size: .72rem; font-weight: 600;
  letter-spacing: .12em; text-transform: uppercase;
  color: var(--texto);
}
.status__dot { width: 7px; height: 7px; border-radius: 50%; background: var(--texto-mudo); flex: 0 0 auto; }
.status.is-open .status__dot { background: var(--verde); animation: pulse 2.4s infinite; }
.status.is-closed .status__dot { background: #B0463A; }
@keyframes pulse {
  0%   { box-shadow: 0 0 0 0 rgba(54,96,77,.5); }
  70%  { box-shadow: 0 0 0 7px rgba(54,96,77,0); }
  100% { box-shadow: 0 0 0 0 rgba(54,96,77,0); }
}

.idiomas {
  display: flex; align-items: center; gap: .4rem;
  margin: 0;
  font-family: var(--font-display);
  font-size: .74rem; font-weight: 600; letter-spacing: .14em;
}
.idiomas__actual { color: var(--negro); }
.idiomas__sep { color: var(--linea); font-weight: 400; }
.idiomas a { color: var(--texto-mudo); text-decoration: none; }
.idiomas a:hover { color: var(--verde); }

/* ---------- botón del menú móvil (hamburguesa) ---------- */
.nav__toggle {
  display: none;
  width: 44px; height: 44px; flex: 0 0 44px;
  background: none; border: 1.5px solid var(--linea); border-radius: 50%;
  cursor: pointer; padding: 0;
  align-items: center; justify-content: center;
  flex-direction: column; gap: 5px;
}
.nav__toggle span {
  display: block; width: 16px; height: 1.5px; background: var(--negro);
  transition: transform .3s var(--ease), opacity .3s var(--ease);
}
.nav__toggle[aria-expanded="true"] span:first-child { transform: translateY(3.25px) rotate(45deg); }
.nav__toggle[aria-expanded="true"] span:last-child  { transform: translateY(-3.25px) rotate(-45deg); }

/* ---------- marcos de foto ---------- */
.ph {
  position: relative; margin: 0; overflow: hidden;
  border-radius: var(--r);
  background: linear-gradient(140deg, #EADBC2 0%, #DCC7A6 45%, #CDB692 100%);
  isolation: isolate;
}
.ph::before {
  content: "Eli kafea.";
  position: absolute; inset: 0;
  display: grid; place-items: center;
  font-family: var(--font-display); font-weight: 700;
  font-size: clamp(.9rem, 2vw, 1.3rem);
  letter-spacing: -.05em;
  color: rgba(67,40,24,.28);
  z-index: 0;
}
.ph img {
  position: relative; z-index: 1;
  width: 100%; height: 100%;
  object-fit: cover;
  transition: transform 1s var(--ease-out), opacity .4s var(--ease);
}
.ph img.img-missing { opacity: 0; }
.ph:hover img { transform: scale(1.03); }
@media (hover: none) { .ph:hover img { transform: none; } }

/* ---------- horario: la fila de hoy ---------- */
.horario { width: 100%; border-collapse: collapse; font-size: .95rem; }
.horario th, .horario td {
  padding: .6rem 0; text-align: left; font-weight: 400; vertical-align: top;
  border-bottom: 1px solid var(--hair);
}
.horario th { color: var(--texto); width: 8.5rem; }
.horario td { font-variant-numeric: tabular-nums; }
.horario tr.is-today th, .horario tr.is-today td { font-weight: 700; color: var(--negro); }
.horario tr.is-today th::after {
  content: "hoy";
  font-family: var(--font-display);
  font-size: .6rem; letter-spacing: .14em; text-transform: uppercase;
  background: var(--verde); color: var(--arena);
  padding: .22rem .5rem .12rem;
  border-radius: 100px;
  margin-left: .6rem; font-weight: 700;
  vertical-align: middle;
}
:lang(eu) .horario tr.is-today th::after { content: "gaur"; }

/* ---------- el mapa: no carga hasta que se pulsa ---------- */
.mapa {
  height: clamp(400px, 56vh, 600px);
  display: grid; place-items: center;
  padding: 2rem 1.5rem;
  text-align: center;
  position: relative;
  background-color: var(--arena-honda);
  background-image:
    linear-gradient(var(--linea) 1px, transparent 1px),
    linear-gradient(90deg, var(--linea) 1px, transparent 1px);
  background-size: 48px 48px, 48px 48px;
}
.mapa::after {
  content: "";
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at center, transparent 30%, var(--arena-honda) 100%);
  pointer-events: none;
}
.mapa.is-loaded { display: block; padding: 0; height: auto; background: none; }
.mapa.is-loaded::after { display: none; }
.mapa iframe { width: 100%; height: clamp(400px, 56vh, 600px); border: 0; filter: grayscale(.45) sepia(.12) contrast(1.02); }
.mapa__contenido { position: relative; z-index: 1; }
.mapa__pin {
  display: block; width: 34px; height: 34px; margin: 0 auto 1.1rem;
  background: var(--verde);
  -webkit-mask: var(--flor) center / contain no-repeat;
          mask: var(--flor) center / contain no-repeat;
}
.mapa__dir {
  font-family: var(--font-display); font-weight: 600;
  font-size: 1.35rem; line-height: 1.25; letter-spacing: -.015em;
  margin-bottom: 1.5rem; color: var(--negro);
}
.mapa__btn { cursor: pointer; }
.mapa__aviso { margin: 1.1rem auto 0; font-size: .8rem; line-height: 1.5; color: var(--texto-mudo); max-width: 30ch; }

/* ---------- entrada progresiva (fail-open: sin JS se ve todo) ---------- */
.js .reveal {
  opacity: 0;
  transform: translateY(16px);
  transition: opacity .9s var(--ease), transform .9s var(--ease-out);
}
.js .reveal.is-in { opacity: 1; transform: none; }
.palabra { display: inline-block; overflow: hidden; vertical-align: bottom; padding-bottom: .1em; margin-bottom: -.1em; }
.js .palabra > span {
  display: inline-block;
  transform: translateY(110%);
  transition: transform 1s var(--ease-out);
  transition-delay: var(--retardo, 0ms);
}
.titular-listo .palabra > span { transform: translateY(0); }
@keyframes destapar { from { clip-path: inset(0 0 100% 0); } to { clip-path: inset(0 0 0 0); } }
@keyframes acercar { from { transform: scale(1.12); } to { transform: scale(1); } }
.js .ph.reveal.is-in { animation: destapar 1.2s var(--ease-out) both; }
.js .ph.reveal.is-in img { animation: acercar 1.4s var(--ease-out) both; }
.rating__score { font-variant-numeric: tabular-nums; }

/* ---------- visor de fotos ---------- */
.visor {
  position: fixed; inset: 0; z-index: 500;
  background: rgba(10, 7, 5, .95);
  display: flex; align-items: center; justify-content: center;
  opacity: 0; visibility: hidden;
  transition: opacity .35s var(--ease), visibility .35s;
  padding: env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left);
}
.visor.is-abierto { opacity: 1; visibility: visible; }
.visor__figura {
  margin: 0; max-width: min(94vw, 520px);
  max-height: 84vh; max-height: 84dvh;
  display: flex; flex-direction: column; gap: 1rem;
  transform: scale(.97); transition: transform .4s var(--ease-out);
}
.visor.is-abierto .visor__figura { transform: scale(1); }
.visor__figura img { width: 100%; height: auto; max-height: 74vh; max-height: 74dvh; object-fit: contain; border-radius: var(--r); background: var(--marron); }
.visor__pie { color: rgba(255,246,231,.82); font-size: .9rem; line-height: 1.5; text-align: center; margin: 0; max-width: 46ch; margin-inline: auto; }
.visor__btn {
  position: absolute; width: 48px; height: 48px; border-radius: 50%;
  border: 1px solid rgba(255,246,231,.3); background: rgba(10,7,5,.5); color: var(--arena);
  font-size: 1.2rem; line-height: 1; display: grid; place-items: center; cursor: pointer;
  -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px);
}
.visor__btn:hover { background: rgba(255,246,231,.16); border-color: var(--arena); }
.visor__cerrar { top: 1rem; right: 1rem; }
.visor__ant { left: 1rem; top: 50%; margin-top: -24px; }
.visor__sig { right: 1rem; top: 50%; margin-top: -24px; }
.visor__cuenta { position: absolute; bottom: 1.25rem; left: 50%; transform: translateX(-50%); color: rgba(255,246,231,.62); font-family: var(--font-display); font-size: .74rem; letter-spacing: .16em; }
@media (max-width: 620px) {
  .visor__ant, .visor__sig { display: none; }
  .visor__figura { max-width: 92vw; }
  .visor__cerrar { top: .75rem; right: .75rem; }
}
.sin-scroll { overflow: hidden; }


/* ---------- zonas de toque en móvil (auditoría 13/9/2026) ----------
   Los enlaces de texto medían 18-26 px de alto: se les da aire arriba y
   abajo para que pasen de 32 px sin cambiar el aspecto. */
.link-arrow { padding-top: .45rem; }
.visita__contacto li { padding-block: .5rem; }
.visita__contacto a, .encargo__tel a, .footer__legal a { display: inline-block; padding-block: .2rem; }


/* ---------- formulario de encargos (Netlify Forms, sin JavaScript) ---------- */
.encargo__form { display: grid; grid-template-columns: 1fr 1fr; gap: .9rem 1rem; margin-top: .25rem; }
.encargo__form .campo { display: grid; gap: .35rem; }
.encargo__form .campo--ancho { grid-column: 1 / -1; }
.encargo__form label {
  font-family: var(--font-display); font-size: .7rem; font-weight: 600;
  letter-spacing: .16em; text-transform: uppercase;
  color: rgba(255,246,231,.75);
}
.encargo__form input, .encargo__form textarea {
  width: 100%; padding: .8rem .9rem;
  font: inherit; font-size: 1rem; line-height: 1.4;
  color: var(--arena);
  background: rgba(255,246,231,.08);
  border: 1px solid rgba(255,246,231,.35); border-radius: 6px;
  color-scheme: dark;
}
.encargo__form textarea { resize: vertical; min-height: 5.5rem; }
.encargo__form input::placeholder, .encargo__form textarea::placeholder { color: rgba(255,246,231,.45); }
.encargo__form input:focus-visible, .encargo__form textarea:focus-visible {
  outline: 2px solid var(--verde-claro); outline-offset: 2px; border-color: var(--arena); box-shadow: none;
}
.encargo__form .btn { grid-column: 1 / -1; justify-self: start; margin-top: .25rem; }
.encargo__nota { grid-column: 1 / -1; margin: 0; font-size: .84rem; line-height: 1.5; color: rgba(255,246,231,.72); }
.encargo__nota a { color: var(--arena); }
.oculto { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
/* la casilla de fecha en iOS trae ancho propio: que quepa */
.encargo__form .campo { min-width: 0; }
.encargo__form input, .encargo__form textarea { max-width: 100%; min-width: 0; box-sizing: border-box; -webkit-appearance: none; appearance: none; }
.encargo__form input[type="date"] { display: block; min-height: 3.1rem; text-align: left; }
.encargo__form input[type="date"]::-webkit-date-and-time-value { text-align: left; }

@media (max-width: 560px) {
  .encargo__form { grid-template-columns: 1fr; }
  .encargo__form .btn { width: 100%; justify-self: stretch; }
}

@media (prefers-reduced-motion: reduce) {
  .js .reveal { opacity: 1; transform: none; transition: none; }
  .js .ph.reveal.is-in, .js .ph.reveal.is-in img { animation: none; }
  .js .palabra > span { transform: none !important; transition: none; }
  .visor, .visor__figura, .btn::before { transition: none; }
  .status.is-open .status__dot { animation: none; }
}
