@font-face{font-family:'Amiri';src:url("../fonts/amiri-regular.15e8b94c7d6c.woff2") format('woff2');font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:'Amiri';src:url("../fonts/amiri-bold.7a42657ed858.woff2") format('woff2');font-weight:700;font-style:normal;font-display:swap}
@font-face{font-family:'Source Sans 3';src:url("../fonts/sourcesans3-var.e88bd4cb05ba.woff2") format('woff2');font-weight:100 900;font-style:normal;font-display:swap}
:root {
  --wine: #64172a;
  --wine-deep: #3f0d1b;
  --terracotta: #b84f35;
  --terracotta-dark: #913722;
  --picantero: #d5372f;
  --gold: #d8a13b;
  --gold-light: #f4d58f;
  --sillar: #f4ecdc;
  --cream: #fffaf0;
  --white: #fff;
  --ink: #271a19;
  --muted: #6b5955;
  --border: #dfcfb7;
  --shadow-sm: 0 8px 24px rgba(63, 13, 27, .08);
  --shadow-lg: 0 24px 60px rgba(63, 13, 27, .16);
  --radius: 1.1rem;
  --serif: "Amiri", Georgia, "Times New Roman", serif;
  --sans: "Source Sans 3", system-ui, -apple-system, "Segoe UI", sans-serif;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; overflow-x: hidden; background: var(--cream); color: var(--ink); font-family: var(--sans); line-height: 1.6; }
img { display: block; max-width: 100%; }
a { color: inherit; }
.container { width: min(calc(100% - 2rem), 72rem); margin-inline: auto; }
.skip-link { position: fixed; z-index: 100; top: .5rem; left: .5rem; padding: .7rem 1rem; transform: translateY(-150%); border-radius: .4rem; background: var(--white); color: var(--wine); font-weight: 800; }
.skip-link:focus { transform: translateY(0); }
a:focus-visible, .button:focus-visible { outline: 3px solid var(--gold); outline-offset: 4px; }

.site-header { position: sticky; z-index: 30; top: 0; border-bottom: 1px solid rgba(255,255,255,.14); background: rgba(63,13,27,.94); color: var(--white); backdrop-filter: blur(12px); }
.header-content { display: flex; min-height: 4.5rem; align-items: center; justify-content: space-between; gap: 1rem; }
.brand { display: inline-flex; align-items: center; gap: .65rem; max-width: 14rem; font-family: var(--serif); font-size: .94rem; line-height: 1.1; text-decoration: none; }
.brand strong { display: block; color: var(--gold-light); font-size: 1.07em; }
.brand-mark { display: grid; width: 2.35rem; height: 2.35rem; flex: 0 0 auto; place-items: center; border: 1px solid var(--gold); border-radius: 50%; color: var(--gold-light); font: 700 1.15rem var(--serif); }
.site-nav { display: flex; align-items: center; gap: .4rem; }
.site-nav a { min-height: 2.75rem; padding: .65rem .75rem; border-radius: .5rem; font-size: .88rem; font-weight: 750; text-decoration: none; transition: color .2s, background-color .2s; }
.site-nav a:hover { background: rgba(255,255,255,.1); color: var(--gold-light); }
.nav-access { border: 1px solid rgba(244,213,143,.55); }
/* CTA principal del turista en el header del marketing */
.nav-create { background: var(--gold); color: var(--wine-deep) !important; }
.nav-create:hover { background: var(--gold-light); color: var(--wine-deep) !important; }
/* Selector de idioma ES | EN */
.site-lang { display: inline-flex; margin: 0; border: 1px solid rgba(244,213,143,.45); border-radius: 999px; overflow: hidden; }
.site-lang form { margin: 0; display: flex; }
.site-lang button { background: none; border: 0; color: var(--white); padding: .45rem .6rem; font: 800 .74rem/1 var(--sans); letter-spacing: .03em; cursor: pointer; opacity: .6; }
.site-lang button.is-active { background: var(--gold); color: var(--wine-deep); opacity: 1; }
.site-lang button:not(.is-active):hover { opacity: 1; }

.hero-home { position: relative; isolation: isolate; overflow: hidden; background: radial-gradient(circle at 85% 15%, rgba(216,161,59,.22), transparent 25rem), linear-gradient(135deg, var(--wine-deep), var(--wine) 55%, #861f2e); color: var(--white); }
.hero-home::before { position: absolute; inset: 0; z-index: -1; background-image: linear-gradient(30deg, rgba(255,255,255,.025) 12%, transparent 12.5%, transparent 87%, rgba(255,255,255,.025) 87.5%), linear-gradient(150deg, rgba(255,255,255,.025) 12%, transparent 12.5%, transparent 87%, rgba(255,255,255,.025) 87.5%); background-size: 48px 84px; content: ""; }
.hero-grid { display: grid; min-height: calc(100svh - 4.5rem); align-items: center; gap: 2.5rem; padding-block: 4rem; }
.hero-copy { position: relative; z-index: 2; }
.eyebrow { margin: 0 0 .7rem; color: var(--terracotta-dark); font-size: .74rem; font-weight: 850; letter-spacing: .14em; text-transform: uppercase; }
.hero-copy .eyebrow, .final-cta .eyebrow { color: var(--gold-light); }
h1, h2, h3 { font-family: var(--serif); line-height: 1.08; }
.hero-copy h1 { max-width: 12ch; margin: 0; font-size: clamp(2.8rem, 13vw, 5.9rem); letter-spacing: -.045em; }
/* El eyebrow vive dentro del h1 (SEO: el término de búsqueda en el encabezado) */
.hero-copy h1 .eyebrow { display: block; max-width: 34ch; font-size: .74rem; letter-spacing: .14em; }
.hero-copy h1 em { color: var(--gold-light); font-weight: inherit; }
.hero-description { max-width: 38rem; margin: 1.35rem 0; color: #f8eadd; font-size: clamp(1rem, 3vw, 1.2rem); }
.challenge { display: grid; grid-template-columns: auto 1fr; max-width: 29rem; margin: 1.5rem 0; padding: .9rem 1rem; border-left: 3px solid var(--gold); background: rgba(255,255,255,.08); }
.challenge > span:first-child { grid-row: span 2; align-self: center; margin-right: .8rem; color: var(--gold-light); font-size: 1.4rem; }
.challenge strong { line-height: 1.2; }.challenge > span:last-child { color: #ead9cf; font-size: .9rem; }
.hero-actions { display: flex; flex-direction: column; gap: .75rem; }
.button { display: inline-flex; min-height: 3.25rem; align-items: center; justify-content: center; gap: .7rem; padding: .75rem 1.25rem; border: 2px solid transparent; border-radius: .65rem; font-weight: 850; text-align: center; text-decoration: none; transition: transform .2s ease, box-shadow .2s ease, background-color .2s ease; }
.button:hover { transform: translateY(-2px); }
.button-primary { background: var(--gold); color: var(--wine-deep); box-shadow: 0 10px 25px rgba(0,0,0,.2); }.button-primary:hover { background: var(--gold-light); box-shadow: 0 14px 30px rgba(0,0,0,.25); }
.button-ghost { border-color: rgba(255,255,255,.5); color: var(--white); }.button-ghost:hover { background: rgba(255,255,255,.1); }
.passport-art { position: relative; display: grid; min-height: 23rem; place-items: center; }
.passport-cover { position: relative; z-index: 2; display: flex; width: min(72vw, 17rem); aspect-ratio: .72; flex-direction: column; align-items: center; justify-content: center; padding: 1.25rem; transform: rotate(5deg); border: 1px solid rgba(244,213,143,.7); border-radius: .75rem; background: linear-gradient(145deg, #7b1c31, #4a0e20); box-shadow: var(--shadow-lg); text-align: center; }
.passport-cover::before { position: absolute; inset: .65rem; border: 1px solid rgba(244,213,143,.45); border-radius: .4rem; content: ""; }
.cover-kicker { color: var(--gold-light); font-size: .6rem; letter-spacing: .17em; text-transform: uppercase; }.cover-symbol { margin: 1.2rem 0 .6rem; color: var(--gold); font-size: 3.4rem; }.passport-cover strong { color: var(--gold-light); font: 700 1.55rem var(--serif); letter-spacing: .13em; }.passport-cover > span:nth-last-of-type(1) { color: #f6e7d8; font-size: .7rem; letter-spacing: .12em; text-transform: uppercase; }
.cover-stamp { position: absolute; right: -1.5rem; bottom: 1.4rem; display: grid; width: 5rem; height: 5rem; place-items: center; transform: rotate(-14deg); border: 3px double var(--gold); border-radius: 50%; background: var(--cream); color: var(--wine); font: 800 1.5rem/1 var(--serif); }.cover-stamp small { font: 700 .55rem var(--sans); letter-spacing: .08em; }
.art-orbit { position: absolute; border: 1px solid rgba(244,213,143,.25); border-radius: 50%; }.orbit-one { width: 20rem; height: 20rem; }.orbit-two { width: 15rem; height: 15rem; border-style: dashed; animation: spin 28s linear infinite; }.floating-stamp { position: absolute; padding: .35rem .55rem; border: 1px solid rgba(244,213,143,.55); border-radius: 50%; color: var(--gold-light); font-size: .57rem; font-weight: 800; letter-spacing: .12em; }.stamp-a { top: 12%; left: 3%; transform: rotate(-15deg); }.stamp-b { right: 2%; bottom: 15%; transform: rotate(12deg); }
.hero-pattern { height: .55rem; background: repeating-linear-gradient(90deg, var(--gold) 0 1.5rem, var(--terracotta) 1.5rem 3rem, var(--cream) 3rem 4.5rem); }

.how-section, .picanterias-section, .faq-section { padding-block: 4.5rem; }.how-section { background: var(--sillar); }.section-intro { max-width: 38rem; margin-bottom: 2.2rem; }.section-intro h2, .section-heading h2, .final-cta h2 { margin: 0; color: var(--wine); font-size: clamp(2rem, 8vw, 3.6rem); }.section-intro > p:last-child, .section-heading > p { color: var(--muted); }
.journey-steps { position: relative; display: grid; gap: 1rem; margin: 0; padding: 0; list-style: none; }.journey-steps::before { position: absolute; top: 0; bottom: 0; left: 1.47rem; width: 2px; transform: scaleY(0); transform-origin: top; background: linear-gradient(var(--gold), var(--terracotta)); content: ""; transition: transform 1.1s ease; }.is-visible .journey-steps::before { transform: scaleY(1); }
.journey-step { position: relative; padding: 1.3rem 1.2rem 1.3rem 4rem; border: 1px solid var(--border); border-radius: var(--radius); background: rgba(255,255,255,.68); }.step-number { position: absolute; top: 1rem; left: .75rem; display: grid; width: 2.9rem; height: 2.9rem; place-items: center; border: 2px solid var(--gold); border-radius: 50%; background: var(--sillar); color: var(--wine); font-size: .72rem; font-weight: 900; }.step-icon { color: var(--terracotta); font-size: 1.7rem; }.journey-step h3 { margin: .25rem 0 .4rem; color: var(--wine); font-size: 1.3rem; }.journey-step p { margin: 0; color: var(--muted); }
.section-heading { display: grid; gap: .5rem; margin-bottom: 2rem; }.card-grid { display: grid; gap: 1.25rem; }.place-card { overflow: hidden; border: 1px solid var(--border); border-radius: var(--radius); background: var(--white); box-shadow: var(--shadow-sm); transition: transform .25s ease, box-shadow .25s ease; }.place-card:hover { transform: translateY(-5px); box-shadow: var(--shadow-lg); }.place-media { position: relative; overflow: hidden; aspect-ratio: 16/10; background: var(--wine); }.place-media img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s ease; }.place-card:hover .place-media img { transform: scale(1.035); }.place-fallback { display: grid; width: 100%; height: 100%; place-items: center; background: radial-gradient(circle, rgba(216,161,59,.2), transparent 35%), repeating-linear-gradient(45deg, transparent 0 18px, rgba(255,255,255,.035) 18px 19px), linear-gradient(135deg, var(--wine), var(--terracotta-dark)); color: var(--gold-light); }.place-fallback span { grid-area: 1/1; font-size: 3.5rem; }.place-fallback small { grid-area: 1/1; margin-top: 6rem; font-weight: 850; letter-spacing: .18em; }.participant-badge { position: absolute; right: .75rem; bottom: .75rem; padding: .35rem .65rem; border-radius: 999px; background: var(--cream); color: var(--wine); font-size: .72rem; font-weight: 850; box-shadow: var(--shadow-sm); }.participant-badge span { color: #23714a; }.place-body { padding: 1.25rem; }.place-body h3 { margin: 0; color: var(--wine); font-size: 1.55rem; }.place-address { margin: .55rem 0; color: var(--terracotta-dark); font-size: .9rem; font-weight: 750; }.place-description { display: -webkit-box; overflow: hidden; margin: .8rem 0; color: var(--muted); -webkit-box-orient: vertical; -webkit-line-clamp: 3; }.place-body a { display: inline-flex; min-height: 2.75rem; align-items: center; gap: .5rem; margin-top: .35rem; color: var(--wine); font-weight: 850; text-underline-offset: .25rem; }.empty-state { padding: 2.5rem 1.25rem; border: 2px dashed var(--border); border-radius: var(--radius); background: var(--white); text-align: center; }.empty-state > span { color: var(--gold); font-size: 2rem; }.empty-state h3 { margin: .4rem 0; color: var(--wine); }.empty-state p { margin: 0; color: var(--muted); }
.final-cta { padding: 0 0 4.5rem; }.cta-panel { position: relative; overflow: hidden; display: grid; gap: 1.5rem; padding: 2rem 1.4rem; border-radius: 1.4rem; background: linear-gradient(135deg, var(--wine-deep), var(--wine)); color: var(--white); box-shadow: var(--shadow-lg); }.cta-panel h2 { max-width: 18ch; color: var(--white); }.cta-panel p:not(.eyebrow) { max-width: 38rem; color: #ead9cf; }.button-light { align-self: center; background: var(--cream); color: var(--wine); }.cta-seal { position: absolute; right: -1rem; bottom: -2rem; color: rgba(244,213,143,.1); font: 800 11rem/1 var(--serif); }
.site-footer { padding-block: 2rem; background: var(--wine-deep); color: var(--white); }.footer-content { display: grid; gap: 1rem; }.footer-content strong { color: var(--gold-light); font-family: var(--serif); }.footer-content p { margin: .3rem 0 0; color: #d9c8c2; font-size: .9rem; }.footer-content a { align-self: center; font-weight: 750; text-underline-offset: .25rem; }

/* Pasaporte público compartido */
.sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; clip-path: inset(50%); }
.passport-page { padding-block: 2rem 4rem; background: radial-gradient(circle at 15% 8%, rgba(216,161,59,.13), transparent 20rem), var(--sillar); }
.passport-layout { display: grid; max-width: 68rem; gap: 1.5rem; }
.passport-book { position: relative; isolation: isolate; overflow: hidden; padding: 1rem; border: 1px solid #d8c29f; border-radius: 1.35rem; background: var(--cream); box-shadow: 0 1px 0 var(--white) inset, 0 24px 65px rgba(63,13,27,.16); }
.passport-book::before { position: absolute; z-index: -1; inset: .45rem; border: 1px solid rgba(100,23,42,.14); border-radius: 1rem; content: ""; pointer-events: none; }
.passport-book::after { position: absolute; z-index: -2; inset: 0; opacity: .34; background-image: radial-gradient(rgba(100,23,42,.12) .6px, transparent .7px); background-size: 7px 7px; content: ""; pointer-events: none; }
.passport-texture { position: absolute; z-index: -1; top: 0; right: 0; width: 8rem; height: 8rem; border: 1.8rem double rgba(216,161,59,.08); border-radius: 50%; transform: translate(35%,-35%); }
.passport-heading { padding: 1.7rem .6rem 1.5rem; border-bottom: 1px solid var(--border); text-align: center; }
.passport-label { display: inline-flex; align-items: center; gap: .45rem; color: var(--terracotta-dark); font-size: .7rem; font-weight: 900; letter-spacing: .14em; text-transform: uppercase; }
.passport-label span { color: var(--gold); }
.passport-heading h1 { max-width: 14ch; margin: .55rem auto 1.3rem; color: var(--wine); font-size: clamp(2.15rem,10vw,4rem); letter-spacing: -.035em; }
.traveler-label { margin: 0; color: var(--muted); font-size: .66rem; font-weight: 850; letter-spacing: .13em; text-transform: uppercase; }
.traveler-name { margin: .15rem 0 1.2rem; font: 700 clamp(1.15rem,5vw,1.55rem) var(--serif); }
.passport-meta { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: .65rem; max-width: 28rem; margin-inline: auto; }
.passport-meta p { display: flex; min-width: 0; flex-direction: column; align-items: center; justify-content: center; margin: 0; padding: .65rem; border: 1px solid var(--border); border-radius: .65rem; background: rgba(255,255,255,.62); }
.passport-meta p > span { color: var(--muted); font-size: .62rem; font-weight: 850; letter-spacing: .1em; text-transform: uppercase; }
.public-code { color: var(--wine); font-family: ui-monospace,Consolas,monospace; font-size: .9rem; font-weight: 850; letter-spacing: .12em; }
.status-badge { display: inline-block; color: var(--terracotta-dark); font-size: .78rem; font-weight: 900; text-transform: uppercase; }
.status-badge::before { margin-right: .35rem; content: "●"; }
.status-completado { color: #276548; }.status-bloqueado { color: var(--wine); }
.progress-card { margin-block: 1.25rem; padding: 1.25rem; border: 1px solid var(--border); border-radius: 1rem; background: var(--white); box-shadow: var(--shadow-sm); }
.progress-copy { display: flex; align-items: end; justify-content: space-between; gap: 1rem; }
.progress-kicker { margin: 0; color: var(--muted); font-size: .68rem; font-weight: 850; letter-spacing: .1em; text-transform: uppercase; }
.progress-copy h2 { margin: .15rem 0 0; color: var(--wine); font-size: 1.6rem; }
.progress-value { color: var(--terracotta-dark); font: 800 1.5rem var(--serif); }
.progress-track { height: .7rem; margin-top: 1rem; overflow: hidden; border-radius: 999px; background: var(--border); }
.progress-fill { width: var(--progress); height: 100%; transform-origin: left; border-radius: inherit; background: linear-gradient(90deg,var(--gold),var(--terracotta),var(--wine)); animation: progress-grow .9s .25s both ease-out; }
.progress-dots { display: flex; justify-content: space-between; margin: .9rem 0 0; padding: 0; list-style: none; }
.progress-dots li { position: relative; display: grid; width: 1.8rem; height: 1.8rem; place-items: center; border: 1px dashed #aa9478; border-radius: 50%; background: var(--cream); color: var(--muted); font-size: .7rem; font-weight: 850; }
.progress-dots li.is-done { border-style: solid; border-color: var(--terracotta); background: var(--terracotta); color: var(--white); }
.progress-message { margin: .85rem 0 0; color: var(--wine); font-weight: 800; text-align: center; }
.stamps-section { padding-block: 1rem; }.passport-section-heading { margin-bottom: 1rem; }.passport-section-heading h2, .qr-card h2, .passport-help h2 { margin: 0; color: var(--wine); font-size: clamp(1.65rem,7vw,2.25rem); }
.stamp-list { display: grid; gap: .85rem; margin: 0; padding: 0; list-style: none; }
.stamp-slot { display: grid; grid-template-columns: 5.2rem minmax(0,1fr); align-items: center; gap: 1rem; min-height: 7rem; padding: .85rem; border: 1px dashed #bca789; border-radius: .9rem; background: rgba(255,255,255,.48); animation: stamp-row .45s calc(.12s + var(--stamp-index) * .08s) both ease-out; }
.stamp-emblem { display: grid; width: 5rem; height: 5rem; place-items: center; align-content: center; border: 2px dashed #a89273; border-radius: 50%; color: var(--muted); text-align: center; }
.stamp-emblem span { font: 800 1.6rem/1 var(--serif); }.stamp-emblem small { margin-top: .25rem; font-size: .48rem; font-weight: 900; letter-spacing: .08em; }
.stamp-copy { display: flex; min-width: 0; flex-direction: column; }.stamp-copy strong { overflow-wrap: anywhere; color: var(--wine); font: 700 1.2rem var(--serif); }.stamp-copy time, .stamp-copy > span:last-child { color: var(--muted); font-size: .82rem; }.stamp-status { color: var(--terracotta-dark); font-size: .62rem; font-weight: 900; letter-spacing: .08em; text-transform: uppercase; }
.stamp-earned { border-style: solid; border-color: rgba(184,79,53,.45); background: rgba(255,255,255,.8); }.stamp-earned .stamp-emblem { transform: rotate(-6deg); border: 3px double var(--terracotta); color: var(--terracotta-dark); box-shadow: 0 0 0 3px rgba(184,79,53,.08) inset; animation: stamp-in .5s calc(.18s + var(--stamp-index) * .09s) both cubic-bezier(.2,.8,.3,1.35); }.stamp-pending .stamp-status { color: var(--muted); }
.qr-card { display: grid; gap: 1.25rem; margin-top: 1.4rem; padding: 1.25rem; border: 1px solid var(--border); border-radius: 1rem; background: linear-gradient(135deg,rgba(255,255,255,.9),rgba(244,236,220,.7)); }.qr-copy p:last-child { margin-bottom: 0; color: var(--muted); }.qr-copy strong { color: var(--ink); }
.qr-frame { position: relative; width: min(100%,18.25rem); justify-self: center; padding: 1rem; background: var(--white); box-shadow: 0 10px 30px rgba(63,13,27,.12); }.qr-frame img { width: 100%; height: auto; background: var(--white); }.qr-corner { position: absolute; width: 1.2rem; height: 1.2rem; border-color: var(--gold); }.corner-tl { top: .4rem; left: .4rem; border-top: 2px solid; border-left: 2px solid; }.corner-tr { top: .4rem; right: .4rem; border-top: 2px solid; border-right: 2px solid; }.corner-bl { bottom: .4rem; left: .4rem; border-bottom: 2px solid; border-left: 2px solid; }.corner-br { right: .4rem; bottom: .4rem; border-right: 2px solid; border-bottom: 2px solid; }
.passport-help { padding: 1.4rem; border: 1px solid var(--border); border-radius: 1rem; background: var(--white); box-shadow: var(--shadow-sm); }.help-steps { display: grid; gap: .8rem; margin: 1.1rem 0 1.4rem; padding: 0; list-style: none; }.help-steps li { display: grid; grid-template-columns: 2rem 1fr; gap: .75rem; }.help-steps li > span { display: grid; width: 2rem; height: 2rem; place-items: center; border-radius: 50%; background: var(--sillar); color: var(--wine); font-weight: 900; }.help-steps p { margin: .1rem 0 0; color: var(--muted); font-size: .88rem; }.passport-actions { display: grid; gap: .65rem; }.button-outline { border-color: var(--wine); color: var(--wine); }.button-outline:hover { background: var(--sillar); }
.passport-enter { animation: passport-enter .65s both ease-out; }
@keyframes passport-enter { from { opacity: 0; transform: translateY(1.5rem); } }
@keyframes progress-grow { from { transform: scaleX(0); } to { transform: scaleX(1); } }
@keyframes stamp-in { from { opacity: 0; transform: scale(.7) rotate(-14deg); } }
@keyframes stamp-row { from { opacity: 0; transform: translateY(.7rem); } }
.js .reveal { opacity: 0; transform: translateY(1.5rem); transition: opacity .65s ease, transform .65s ease; }.js .reveal.is-visible { opacity: 1; transform: none; }.js .reveal-item:nth-child(2) { transition-delay: .08s; }.js .reveal-item:nth-child(3) { transition-delay: .16s; }
@keyframes spin { to { transform: rotate(360deg); } }

@media (min-width: 40rem) {
  .passport-book { padding: 1.75rem; } .qr-card { grid-template-columns: minmax(0,1fr) auto; align-items: center; padding: 1.75rem; } .stamp-list { grid-template-columns: repeat(2,minmax(0,1fr)); } .passport-book .stamp-slot:last-child:nth-child(odd) { grid-column: auto; } .stamp-slot { grid-template-columns: 4.4rem minmax(0,1fr); } .stamp-emblem { width: 4.2rem; height: 4.2rem; } .passport-actions { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .container { width: min(calc(100% - 3rem),72rem); }.brand { max-width: none; font-size: 1rem; }.brand strong { display: inline; }.site-nav > a:first-child { display: inline-flex; }.hero-actions { flex-direction: row; }.button { width: auto; }.journey-steps, .card-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }.journey-steps::before { display: none; }.section-heading, .footer-content { grid-template-columns: 1fr auto; align-items: end; }.section-heading > p { max-width: 25rem; text-align: right; }.cta-panel { grid-template-columns: 1fr auto; align-items: center; padding: 3rem; }.progress-card, .qr-card { padding: 1.75rem; }.stamp-list { grid-template-columns: repeat(2,minmax(0,1fr)); }.stamp-slot:last-child:nth-child(odd) { grid-column: 1/-1; }
}
@media (min-width: 56rem) {
  .passport-layout { grid-template-columns: minmax(0,1fr) 20rem; align-items: start; } .passport-help { position: sticky; top: 6rem; }
  .hero-grid { grid-template-columns: minmax(0,1.12fr) minmax(19rem,.88fr); min-height: min(49rem,calc(100svh - 4.5rem)); padding-block: 5rem; }.passport-art { min-height: 32rem; }.passport-cover { width: 19rem; }.journey-steps { grid-template-columns: repeat(3,minmax(0,1fr)); }.journey-step { padding: 1.5rem; }.step-number { position: static; margin-bottom: 1.5rem; }.journey-steps::after { position: absolute; z-index: -1; top: 1.45rem; right: 12%; left: 12%; height: 2px; background: linear-gradient(90deg,var(--gold),var(--terracotta)); content: ""; }.card-grid { grid-template-columns: repeat(3,minmax(0,1fr)); }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; } *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; scroll-behavior: auto !important; transition-duration: .01ms !important; }.js .reveal { opacity: 1; transform: none; }
}
@media print {
  .js .reveal { opacity: 1 !important; transform: none !important; }
}

/* Acceso y panel de picanterías */
.nav-logout { margin: 0; }.nav-logout button { min-height: 2.75rem; padding: .65rem .75rem; border: 1px solid rgba(244,213,143,.55); border-radius: .5rem; background: transparent; color: var(--white); font: 750 .88rem var(--sans); cursor: pointer; transition: color .2s,background-color .2s; }.nav-logout button:hover { background: rgba(255,255,255,.1); color: var(--gold-light); }.nav-logout button:focus-visible { outline: 3px solid var(--gold); outline-offset: 4px; }
.auth-page { min-height: calc(100svh - 4.5rem); padding-block: 2.5rem 4rem; background: radial-gradient(circle at 20% 10%,rgba(216,161,59,.16),transparent 22rem),var(--sillar); }.auth-shell { display: grid; place-items: center; }.auth-card { width: min(100%,29rem); padding: 1.5rem; border: 1px solid var(--border); border-radius: 1.25rem; background: var(--white); box-shadow: var(--shadow-lg); }.auth-mark { display: grid; width: 3.5rem; height: 3.5rem; margin-bottom: 1.2rem; place-items: center; border: 2px double var(--gold); border-radius: 50%; background: var(--wine); color: var(--gold-light); font: 800 1.5rem var(--serif); }.auth-card h1 { margin: 0; color: var(--wine); font-size: clamp(2rem,9vw,3rem); }.auth-intro { color: var(--muted); }.auth-form { display: grid; gap: 1rem; margin-top: 1.4rem; }.form-field { display: grid; gap: .4rem; }.form-field label { color: var(--wine); font-size: .88rem; font-weight: 850; }.form-field input { width: 100%; min-height: 3.15rem; padding: .7rem .85rem; border: 1px solid #aa967b; border-radius: .55rem; background: var(--cream); color: var(--ink); font: inherit; }.form-field input:focus { border-color: var(--gold); outline: 3px solid rgba(216,161,59,.25); }.form-errors { padding: .75rem 1rem; border-left: 4px solid var(--picantero); border-radius: .4rem; background: #fff0ed; color: #761d20; }.form-errors p { margin: 0; }.field-error { color: #8a2024; font-size: .82rem; }.auth-form .button { width: 100%; border: 0; cursor: pointer; }.auth-back { display: inline-flex; min-height: 2.75rem; align-items: center; margin-top: 1rem; color: var(--wine); font-weight: 800; text-underline-offset: .25rem; }
.dashboard-page { min-height: calc(100svh - 4.5rem); padding-block: 2.5rem 4rem; background: var(--sillar); }.dashboard-shell { max-width: 70rem; }.dashboard-heading { display: grid; gap: 1rem; margin-bottom: 1.2rem; }.dashboard-heading h1 { margin: 0; color: var(--wine); font-size: clamp(2.2rem,9vw,4rem); }.dashboard-address { margin: .45rem 0 0; color: var(--muted); }.dashboard-identity { align-self: center; }.dashboard-identity p { margin: .5rem 0 0; color: var(--muted); }.active-badge { display: inline-flex; align-items: center; gap: .4rem; padding: .35rem .7rem; border: 1px solid #75a68b; border-radius: 999px; background: #eff9f2; color: #245c3f; font-size: .76rem; font-weight: 850; }.dashboard-actions { display: flex; flex-direction: column; gap: .7rem; margin-bottom: 1.5rem; }.dashboard-actions form,.dashboard-actions button { width: 100%; }.metrics-grid { display: grid; gap: .8rem; margin-bottom: 1.5rem; }.metrics-grid article { display: grid; padding: 1.2rem; border: 1px solid var(--border); border-radius: .85rem; background: var(--white); box-shadow: var(--shadow-sm); }.metrics-grid span { color: var(--muted); font-size: .72rem; font-weight: 850; letter-spacing: .08em; text-transform: uppercase; }.metrics-grid strong { color: var(--wine); font: 800 2.3rem var(--serif); }.metrics-grid small { color: var(--muted); }.history-card { overflow: hidden; border: 1px solid var(--border); border-radius: 1rem; background: var(--white); box-shadow: var(--shadow-sm); }.history-heading { display: flex; align-items: end; justify-content: space-between; gap: 1rem; padding: 1.2rem; border-bottom: 1px solid var(--border); }.history-heading h2 { margin: 0; color: var(--wine); font-size: 1.8rem; }.history-heading > span { color: var(--muted); font-size: .75rem; }.history-list { display: grid; }.history-item { display: grid; gap: .8rem; padding: 1rem 1.2rem; border-bottom: 1px solid var(--border); }.history-item:last-child { border: 0; }.history-item > div { display: flex; flex-direction: column; }.history-item span { color: var(--muted); font-size: .68rem; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }.history-code strong { color: var(--wine); font-family: ui-monospace,Consolas,monospace; letter-spacing: .08em; }.sello-state { display: inline-flex; align-self: flex-start; padding: .15rem .5rem; border-radius: 999px; color: var(--wine); font-size: .78rem; }.state-confirmado { background: #e6f5eb; color: #245c3f; }.state-pendiente { background: #fff4d8; color: #72520d; }.state-error { background: #ffebe8; color: #822323; }.dashboard-empty { padding: 2.5rem 1rem; text-align: center; }.dashboard-empty > span { color: var(--gold); font-size: 2rem; }.dashboard-empty h3 { margin: .3rem 0; color: var(--wine); }.dashboard-empty p { margin: 0; color: var(--muted); }
@media (min-width:40rem) { .auth-card { padding: 2.2rem; } .dashboard-heading { grid-template-columns: 1fr auto; align-items: end; } .dashboard-actions { flex-direction: row; }.dashboard-actions form,.dashboard-actions button { width: auto; }.metrics-grid { grid-template-columns: repeat(3,minmax(0,1fr)); }.history-item { grid-template-columns: 1.1fr 1fr .75fr; align-items: center; } }

/* Registro de visitas */
.messages { position: relative; z-index: 20; display: grid; gap: .5rem; padding-top: .75rem; }.message { padding: .75rem 1rem; border: 1px solid var(--border); border-radius: .6rem; background: var(--white); box-shadow: var(--shadow-sm); }.message-success { border-color: #75a68b; color: #245c3f; }.message-warning { border-color: #d6a84d; color: #72520d; }.message-error { border-color: #c96c67; color: #822323; }.message-info { border-color: #789bb3; color: #24536d; }
.scan-page,.result-page { min-height: calc(100svh - 4.5rem); padding-block: 2.5rem 4rem; background: var(--sillar); }.scan-layout { display: grid; gap: 1.25rem; max-width: 62rem; }.scan-card,.scanner-placeholder,.result-card { padding: 1.4rem; border: 1px solid var(--border); border-radius: 1rem; background: var(--white); box-shadow: var(--shadow-sm); }.scan-card h1,.result-card h1 { margin: 0; color: var(--wine); font-size: clamp(2rem,9vw,3.5rem); }.scan-intro { color: var(--muted); }.scan-form { display: grid; gap: 1rem; margin-top: 1.5rem; }.scan-form .button { border: 0; cursor: pointer; }.single-stamp-note { display: flex; gap: .7rem; align-items: center; margin-top: 1rem; padding: .7rem; border-radius: .5rem; background: var(--sillar); }.single-stamp-note > span { display: grid; width: 1.6rem; height: 1.6rem; flex: 0 0 auto; place-items: center; border-radius: 50%; background: var(--gold); color: var(--wine); font-weight: 900; }.single-stamp-note p { margin: 0; font-size: .85rem; }.scanner-placeholder { align-self: start; text-align: center; }.scanner-placeholder h2 { color: var(--wine); }.scanner-placeholder p { color: var(--muted); }.scanner-visual { position: relative; display: grid; width: 10rem; height: 10rem; margin: 1rem auto; place-items: center; border: 1px dashed var(--terracotta); color: var(--wine); font-weight: 900; }.scanner-visual > span { position: absolute; width: 1.7rem; height: 1.7rem; border-color: var(--gold); }.scanner-visual > span:nth-child(1) { top: 0; left: 0; border-top: 3px solid; border-left: 3px solid; }.scanner-visual > span:nth-child(2) { top: 0; right: 0; border-top: 3px solid; border-right: 3px solid; }.scanner-visual > span:nth-child(3) { bottom: 0; left: 0; border-bottom: 3px solid; border-left: 3px solid; }.scanner-visual > span:nth-child(4) { right: 0; bottom: 0; border-right: 3px solid; border-bottom: 3px solid; }.result-shell { max-width: 48rem; }.result-card { text-align: center; }.result-check { display: grid; width: 4rem; height: 4rem; margin: 0 auto 1rem; place-items: center; border-radius: 50%; background: #e6f5eb; color: #245c3f; font-size: 2rem; }.result-details { display: grid; margin: 1.5rem 0; border: 1px solid var(--border); border-radius: .75rem; text-align: left; }.result-details div { display: grid; gap: .2rem; padding: .8rem 1rem; border-bottom: 1px solid var(--border); }.result-details div:last-child { border: 0; }.result-details dt { color: var(--muted); font-size: .68rem; font-weight: 850; letter-spacing: .07em; text-transform: uppercase; }.result-details dd { margin: 0; overflow-wrap: anywhere; font-weight: 800; }.technical-value { font-family: ui-monospace,Consolas,monospace; font-size: .82rem; }.result-progress { padding: 1rem; border-radius: .7rem; background: var(--sillar); text-align: left; }.result-progress > div:first-child { display: flex; justify-content: space-between; gap: 1rem; }.result-progress h2 { margin: 0; color: var(--wine); font-size: 1.15rem; }.result-actions { display: grid; gap: .65rem; margin-top: 1.4rem; }.public-passport-link { display: inline-flex; min-height: 2.75rem; align-items: center; justify-content: center; color: var(--wine); font-weight: 800; text-underline-offset: .25rem; }
@media(min-width:48rem) { .scan-layout { grid-template-columns: minmax(0,1.3fr) minmax(16rem,.7fr); align-items: start; }.scan-card,.scanner-placeholder,.result-card { padding: 2rem; }.result-details { grid-template-columns: repeat(2,minmax(0,1fr)); }.result-details div:nth-last-child(2) { border-bottom: 0; }.result-actions { grid-template-columns: repeat(2,minmax(0,1fr)); }.public-passport-link { grid-column: 1/-1; } }
/* Lector QR con cámara */
.manual-entry-note { margin: -.35rem 0 0; color: var(--muted); font-size: .82rem; }.scanner-heading { display: flex; align-items: start; justify-content: space-between; gap: .75rem; text-align: left; }.scanner-heading h2 { margin: 0; }.camera-active-badge { display: none; align-items: center; gap: .35rem; flex: 0 0 auto; padding: .3rem .55rem; border-radius: 999px; background: #e6f5eb; color: #245c3f; font-size: .66rem; font-weight: 850; }.camera-active-badge i { width: .45rem; height: .45rem; border-radius: 50%; background: #2b8a57; }.reader-active .camera-active-badge { display: inline-flex; }.camera-frame { position: relative; overflow: hidden; width: 100%; aspect-ratio: 1; margin: 1rem auto; border: 1px solid var(--border); border-radius: .85rem; background: linear-gradient(145deg,#271a19,#3f2a27); }.camera-frame > video { display: none; width: 100%; height: 100%; object-fit: cover; background: #111; }.reader-active:not(.reader-fallback) .camera-frame > video { display: block; }.html5-qrcode-reader { position: absolute; inset: 0; display: none; overflow: hidden; background: #111; }.reader-fallback .html5-qrcode-reader { display: block; }.html5-qrcode-reader video { width: 100% !important; height: 100% !important; object-fit: cover; }.camera-placeholder { position: absolute; inset: 0; display: grid; place-items: center; align-content: center; gap: .35rem; color: #e9d9c9; }.camera-placeholder strong { font: 800 2rem var(--serif); }.camera-placeholder span { max-width: 13rem; font-size: .78rem; }.reader-active .camera-placeholder { display: none; }.scan-guide { position: absolute; z-index: 2; inset: 14%; pointer-events: none; }.scan-guide span { position: absolute; width: 2rem; height: 2rem; border-color: var(--gold-light); }.scan-guide span:nth-child(1) { top: 0; left: 0; border-top: 3px solid; border-left: 3px solid; }.scan-guide span:nth-child(2) { top: 0; right: 0; border-top: 3px solid; border-right: 3px solid; }.scan-guide span:nth-child(3) { bottom: 0; left: 0; border-bottom: 3px solid; border-left: 3px solid; }.scan-guide span:nth-child(4) { right: 0; bottom: 0; border-right: 3px solid; border-bottom: 3px solid; }.camera-controls { display: grid; gap: .6rem; }.camera-controls .button { width: 100%; border: 0; cursor: pointer; }.camera-controls .button-outline { border: 2px solid var(--wine); background: transparent; }.camera-controls button:disabled { cursor: not-allowed; opacity: .55; }.camera-status { min-height: 3rem; margin: .85rem 0 .4rem; padding: .65rem; border-radius: .5rem; background: var(--sillar); color: var(--wine); font-size: .84rem; text-align: left; }.camera-security-note { margin: 0; color: var(--muted); font-size: .72rem; text-align: left; }
@media(min-width:30rem) { .camera-controls { grid-template-columns: repeat(2,minmax(0,1fr)); } }

/* Historial y certificado */
.history-filters{display:flex;gap:.5rem;overflow-x:auto;margin:1rem 0;padding-bottom:.35rem}.history-filters a{padding:.5rem .8rem;border:1px solid var(--border);border-radius:999px;background:var(--white);font-weight:750;text-decoration:none;white-space:nowrap}.history-filters a.active{background:var(--wine);color:var(--white)}.full-history-item{display:grid;gap:.75rem;padding:1rem 1.2rem;border-bottom:1px solid var(--border)}.full-history-item>div{display:flex;flex-direction:column}.full-history-item span{color:var(--muted);font-size:.68rem;font-weight:800;text-transform:uppercase}.full-history-item code{overflow-wrap:anywhere}.full-history-item>a{align-self:center;color:var(--wine);font-weight:800}.pagination{display:flex;align-items:center;justify-content:center;gap:1rem;padding:1.2rem}.pagination a{font-weight:800}.certificate-page{padding:2rem 0 4rem;background:var(--sillar)}.certificate{position:relative;max-width:56rem;padding:2rem 1.2rem;border:1px solid var(--gold);border-radius:1rem;background:var(--cream);box-shadow:var(--shadow-lg);text-align:center}.certificate h1{max-width:17ch;margin:.4rem auto;color:var(--wine);font-size:clamp(2.2rem,9vw,4rem)}.certificate-lead{max-width:40rem;margin:1rem auto;font-size:1.1rem}.certificate-seal{display:grid;width:5rem;height:5rem;margin:0 auto;place-items:center;align-content:center;border:3px double var(--terracotta);border-radius:50%;color:var(--terracotta);font-size:2rem}.certificate-seal small{font-size:.55rem}.certificate-visits{display:grid;gap:.6rem;max-width:38rem;margin:1rem auto;padding:0;list-style:none;text-align:left}.certificate-visits li{display:flex;align-items:center;gap:.8rem;padding:.75rem;border:1px solid var(--border);border-radius:.6rem;background:var(--white)}.certificate-visits li>span{display:grid;width:2rem;height:2rem;place-items:center;border-radius:50%;background:var(--wine);color:white}.certificate-visits li div{display:flex;flex-direction:column}.benefit-card{max-width:38rem;margin:1.5rem auto;padding:1rem;border-left:4px solid var(--gold);background:var(--white);text-align:left}.benefit-card h2{margin-top:0;color:var(--wine)}.certificate-footer{display:grid;gap:.8rem;margin:1.5rem 0;padding-top:1rem;border-top:1px solid var(--border)}.certificate-footer div{display:flex;flex-direction:column}.certificate-footer span{color:var(--muted);font-size:.7rem;text-transform:uppercase}.certificate-footer code{overflow-wrap:anywhere}.certificate-actions{display:grid;gap:.7rem}.passport-certificate-card{display:grid;gap:1rem;margin:1.5rem 0;padding:1.2rem;border:1px solid var(--gold);border-radius:1rem;background:#fff7df}.passport-certificate-card h2{margin:0;color:var(--wine)}.visits-remaining{padding:.8rem;border-radius:.6rem;background:var(--sillar);color:var(--wine);font-weight:800;text-align:center}@media(min-width:48rem){.full-history-item{grid-template-columns:.8fr .7fr 1fr .8fr 1.2fr auto;align-items:center}.certificate{padding:3rem}.certificate-footer,.certificate-actions{grid-template-columns:repeat(2,minmax(0,1fr))}.passport-certificate-card{grid-template-columns:1fr auto;align-items:center}}
@media print{.site-header,.site-footer,.certificate-actions,.skip-link{display:none!important}.certificate-page{padding:0;background:white}.certificate{max-width:none;border:2px solid #64172a;box-shadow:none}.certificate-page{color:#000}}

/* Arte generado: íconos de "¿cómo funciona?" + hero en el CTA final */
img.step-icon{width:3.6rem;height:3.6rem;display:block;margin:.1rem 0 .3rem;filter:drop-shadow(0 3px 6px rgba(69,16,28,.18))}
.cta-panel::after{content:"";position:absolute;inset:0;z-index:0;background:url("../img/hero-arequipa.db38557b9795.webp") center/cover no-repeat;opacity:.16;mix-blend-mode:luminosity;pointer-events:none}
.cta-panel>*{position:relative;z-index:1}

/* Hero imponente: foto real de picantería a pantalla completa con velo vino */
.hero-home{background:linear-gradient(107deg,rgba(50,10,19,.94) 0%,rgba(62,13,24,.88) 34%,rgba(74,17,30,.66) 64%,rgba(74,17,30,.40) 100%),url("../img/picanteria-hero.ff3a1fdea50e.webp") center/cover no-repeat}
@media(max-width:47.99rem){.hero-home{background:linear-gradient(180deg,rgba(52,11,20,.82) 0%,rgba(60,13,24,.9) 55%,rgba(60,13,24,.96) 100%),url("../img/picanteria-hero-sm.1e88c5b949d3.webp") center/cover no-repeat}}

/* ── Rediseño home: pasaporte real, pasos alineados, buscador y cards ── */
/* Pasaporte real en el hero (reemplaza el de vectores) */
.passport-photo{position:relative;z-index:2;width:min(74%,20rem);height:auto;transform:rotate(4deg);filter:drop-shadow(0 26px 44px rgba(20,4,9,.5))}

/* "¿Cómo funciona?": número + ícono en una fila, sin hueco */
.step-head{display:flex;align-items:center;gap:.85rem;margin-bottom:1.1rem}
.step-head .step-number{position:static;margin:0}
.step-head img.step-icon{margin:0;width:3.2rem;height:3.2rem}

/* Buscador de picanterías */
.picanteria-search{position:relative;max-width:32rem;margin:0 0 1.75rem}
.picanteria-search .search-icon{position:absolute;top:50%;left:1.05rem;transform:translateY(-50%);font-size:1rem;opacity:.6;pointer-events:none}
#buscar-picanteria{width:100%;padding:.85rem 1.1rem .85rem 2.8rem;border:1px solid var(--border);border-radius:999px;background:var(--white);color:var(--wine);font-size:1rem;box-shadow:var(--shadow-sm)}
#buscar-picanteria:focus{outline:none;border-color:var(--gold);box-shadow:0 0 0 3px rgba(200,150,47,.25)}
.search-empty{margin:1.5rem 0;color:var(--muted);text-align:center}

/* Cards de picantería: emblema con monograma, alturas parejas, buen espaciado */
.place-card{display:flex;flex-direction:column;gap:.85rem;padding:1.4rem;overflow:visible;border:1px solid var(--border);border-radius:var(--radius);background:var(--white);box-shadow:var(--shadow-sm);transition:transform .25s ease,box-shadow .25s ease}
.place-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg)}
.place-top{display:flex;align-items:center;justify-content:space-between;gap:.75rem}
.place-emblem{display:grid;width:3.4rem;height:3.4rem;flex:none;place-items:center;border:2px solid var(--gold);border-radius:50%;background:radial-gradient(circle at 30% 25%,#7b1c31,#4a0e20);box-shadow:inset 0 0 0 1px rgba(244,213,143,.35)}
.place-emblem span{color:var(--gold-light);font:800 1.5rem var(--serif)}
.place-thumb{width:3.4rem;height:3.4rem;flex:none;object-fit:cover;border-radius:50%;border:2px solid var(--gold)}
.place-top .participant-badge{position:static;padding:.3rem .62rem;border-radius:999px;background:var(--sillar);color:var(--wine);font-size:.68rem;font-weight:850;white-space:nowrap;box-shadow:none}
.place-top .participant-badge span{color:#23714a}
.place-card h3{display:-webkit-box;overflow:hidden;min-height:2.6em;margin:0;color:var(--wine);font-size:1.25rem;line-height:1.3;-webkit-box-orient:vertical;-webkit-line-clamp:2}
.place-card .place-address{display:flex;gap:.4rem;margin:0;color:var(--terracotta-dark);font-size:.88rem;font-weight:750}
.place-card[hidden]{display:none}

/* Bloque de patrimonio cultural en el hero (reemplaza el reto "5 visitas") */
.heritage{display:flex;align-items:center;gap:.9rem;max-width:31rem;margin:1.6rem 0;padding:.95rem 1.15rem;border-left:3px solid var(--gold);border-radius:.45rem;background:rgba(255,255,255,.08)}
.heritage-seal{display:grid;width:2.9rem;height:2.9rem;flex:none;place-items:center;border:2px solid var(--gold);border-radius:50%;color:var(--gold-light);font-size:1.15rem}
.heritage strong{display:block;margin-bottom:.15rem;color:var(--gold-light);font-size:.95rem;letter-spacing:.02em}
.heritage > div > span{color:#ead9cf;font-size:.85rem;line-height:1.45}

/* FAQ: acordeón con aire (antes usaba los defaults del navegador, muy pegado) */
.faq-list{display:grid;gap:.85rem;align-items:start}
@media(min-width:48rem){.faq-list{grid-template-columns:repeat(2,1fr);gap:1rem}}
.faq-list details{overflow:hidden;border:1px solid var(--border);border-radius:.75rem;background:var(--white);box-shadow:var(--shadow-sm)}
.faq-list summary{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1.15rem 1.35rem;color:var(--wine);font-size:1.05rem;font-weight:800;list-style:none;cursor:pointer}
.faq-list summary::-webkit-details-marker{display:none}
.faq-list summary::after{content:"+";flex:none;color:var(--gold);font-size:1.6rem;font-weight:400;line-height:1;transition:transform .2s ease}
.faq-list details[open] summary{border-bottom:1px solid var(--border)}
.faq-list details[open] summary::after{transform:rotate(45deg)}
.faq-list details p{margin:0;padding:1.15rem 1.35rem;color:var(--muted);line-height:1.65}

/* Filtros de picanterías: buscador + "Cerca de mí" + chips de distrito */
.picanteria-filtros{display:flex;flex-wrap:wrap;gap:.75rem;align-items:center;margin-bottom:1rem}
.picanteria-filtros .picanteria-search{flex:1 1 18rem;margin:0}
.btn-cerca{display:inline-flex;align-items:center;gap:.4rem;min-height:3rem;padding:.7rem 1.15rem;border:1px solid var(--gold);border-radius:999px;background:var(--white);color:var(--wine);font-weight:800;font-size:.95rem;white-space:nowrap;cursor:pointer;transition:background-color .2s,color .2s}
.btn-cerca:hover{background:var(--sillar)}
.btn-cerca.is-active{background:var(--wine);color:var(--gold-light);border-color:var(--wine)}
.btn-cerca:disabled{opacity:.6;cursor:default}
.distrito-chips{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1.75rem}
.distrito-chips .chip{padding:.45rem .9rem;border:1px solid var(--border);border-radius:999px;background:var(--white);color:var(--wine);font-size:.85rem;font-weight:750;cursor:pointer;transition:background-color .2s,color .2s,border-color .2s}
.distrito-chips .chip:hover{border-color:var(--gold)}
.distrito-chips .chip.is-active{background:var(--wine);color:var(--white);border-color:var(--wine)}
.place-distance{margin:.15rem 0 0;color:var(--terracotta-dark);font-size:.82rem;font-weight:800}

/* ── Vista móvil: menú hamburguesa + ajustes responsive ── */
.nav-toggle{display:none;align-items:center;justify-content:center;width:2.75rem;height:2.75rem;padding:0;border:1px solid rgba(244,213,143,.5);border-radius:.5rem;background:transparent;cursor:pointer}
.nav-toggle-bars,.nav-toggle-bars::before,.nav-toggle-bars::after{display:block;width:1.3rem;height:2px;border-radius:2px;background:var(--gold-light);transition:transform .25s ease,opacity .2s ease}
.nav-toggle-bars{position:relative}
.nav-toggle-bars::before,.nav-toggle-bars::after{content:"";position:absolute;left:0}
.nav-toggle-bars::before{top:-6px}
.nav-toggle-bars::after{top:6px}
.nav-toggle[aria-expanded="true"] .nav-toggle-bars{background:transparent}
.nav-toggle[aria-expanded="true"] .nav-toggle-bars::before{transform:translateY(6px) rotate(45deg)}
.nav-toggle[aria-expanded="true"] .nav-toggle-bars::after{transform:translateY(-6px) rotate(-45deg)}
/* La línea guía de "¿Cómo funciona?" ya no aplica: los números viven dentro de la card */
.journey-steps::before{display:none}

@media (max-width:39.99rem){
  .nav-toggle{display:inline-flex}
  .site-nav{position:absolute;top:100%;left:0;right:0;z-index:40;display:none;flex-direction:column;align-items:stretch;gap:.6rem;padding:1rem;background:rgba(63,13,27,.99);border-top:1px solid rgba(255,255,255,.14);box-shadow:var(--shadow-lg)}
  .site-nav.is-open{display:flex}
  .site-nav a{width:100%;justify-content:center;text-align:center}
  .site-nav .nav-logout,.site-nav .nav-logout button{width:100%}
  .site-lang{align-self:center}
  .site-lang button{padding:.6rem .9rem}
  /* Pasos: sin la sangría izquierda que sobró al mover el número a la fila */
  .journey-step{padding:1.4rem}
  /* Chips de distrito: tira horizontal deslizable en vez de bloque alto */
  .distrito-chips{flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch;padding-bottom:.45rem}
  .distrito-chips .chip{flex:0 0 auto;padding:.6rem 1rem}
}

/* Botón "Cómo llegar" (Google Maps) en cada card de picantería */
.place-maps{display:inline-flex;align-items:center;gap:.4rem;align-self:flex-start;margin-top:auto;padding:.55rem 1rem;border:1px solid var(--gold);border-radius:999px;color:var(--wine);font-size:.84rem;font-weight:800;text-decoration:none;transition:background-color .2s,color .2s,border-color .2s}
.place-maps:hover{background:var(--wine);color:var(--gold-light);border-color:var(--wine)}
