/* Carrera Nocturna "El Torreón de Isar" — tema retro (cartel de pueblo) */

:root{
  --paper:#f3ead3; --paper2:#ece0c2; --ink:#211a12;
  --terra:#a83a17; --navy:#1d2c4d; --forest:#2a5138; --gold:#c98a1e;
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  background:var(--paper);color:var(--ink);font-family:'Bitter',Georgia,serif;line-height:1.6;
  background-image:
    radial-gradient(rgba(33,26,18,.035) 1px, transparent 1px),
    radial-gradient(rgba(33,26,18,.025) 1px, transparent 1px);
  background-size:5px 5px, 7px 7px; background-position:0 0, 2px 3px;
}
a{color:inherit;text-decoration:none}
img{max-width:100%;height:auto}
.wrap{max-width:900px;margin:0 auto;padding:0 22px}

/* ---- top bar / nav ---- */
.topbar{background:var(--navy);color:var(--paper);position:sticky;top:0;z-index:50;
  font-size:12.5px;letter-spacing:.14em;text-transform:uppercase}
.topbar .wrap{display:flex;justify-content:space-between;align-items:center;min-height:44px;
  gap:10px;flex-wrap:wrap;padding-top:6px;padding-bottom:6px}
.topbar .brand{font-family:'Alfa Slab One';letter-spacing:.06em}
.topbar .links{display:flex;gap:20px;flex-wrap:wrap}
.topbar a{border-bottom:2px solid transparent;padding-bottom:2px}
.topbar .links a:hover,.topbar .links a.active{border-color:var(--terra)}
@media(max-width:640px){
  .topbar .wrap{justify-content:center}
  .topbar .links{gap:14px;justify-content:center}
}

/* ---- poster (home hero) ---- */
.poster{max-width:820px;margin:26px auto;background:var(--paper);
  border:3px solid var(--ink);box-shadow:12px 12px 0 rgba(29,44,77,.9);position:relative;padding:34px 30px 40px}
.poster::after{content:"";position:absolute;inset:9px;border:1px solid rgba(33,26,18,.35);pointer-events:none}
.stars{text-align:center;color:var(--terra);letter-spacing:.5em;font-size:14px}
.ed{text-align:center;font-family:'Alfa Slab One';color:var(--navy);letter-spacing:.06em;font-size:15px;text-transform:uppercase;margin:10px 0 2px}
.place{text-align:center;text-transform:uppercase;letter-spacing:.3em;font-size:12px;color:var(--forest);font-weight:600}

h1.poster-title{font-family:'Alfa Slab One';color:var(--terra);text-align:center;text-transform:uppercase;
  line-height:.94;font-size:clamp(46px,10vw,96px);margin:14px 0 6px;text-shadow:3px 3px 0 var(--navy)}
.sub-t{text-align:center;font-family:'Alfa Slab One';color:var(--navy);text-transform:uppercase;font-size:clamp(16px,3.4vw,26px);letter-spacing:.04em}
.sub-place{text-align:center;text-transform:uppercase;letter-spacing:.24em;font-size:12px;color:var(--forest);font-weight:700;margin-top:4px}

.scene-row{display:flex;justify-content:center;align-items:flex-end;gap:16px;margin:22px auto 8px}
.scene-row .church{width:170px;height:auto}
.scene-row .fountain{width:160px;height:auto}
@media(max-width:480px){.scene-row{gap:10px}.scene-row .church{width:140px}.scene-row .fountain{width:130px}}

.rule{height:3px;background:var(--ink);position:relative;margin:26px 0}
.rule::before{content:"★";position:absolute;top:-11px;left:50%;transform:translateX(-50%);color:var(--terra);background:var(--paper);padding:0 8px}

.details{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;text-align:center;margin-top:6px}
.det .lbl{text-transform:uppercase;letter-spacing:.18em;font-size:12px;color:var(--forest);font-weight:700}
.det .big{font-family:'Alfa Slab One';font-size:24px;color:var(--navy);line-height:1.1;margin-top:6px}
.det small{display:block;font-size:12px;color:var(--ink);opacity:.7}
@media(max-width:640px){.details{grid-template-columns:1fr;gap:14px}}

.prices{display:flex;justify-content:center;gap:14px;flex-wrap:wrap;margin:26px 0 4px}
.chip{border:2px solid var(--ink);border-radius:2px;padding:12px 20px;background:var(--paper2)}
.chip b{font-family:'Alfa Slab One';color:var(--navy)}
.chip span{display:block;text-transform:uppercase;letter-spacing:.12em;font-size:12px;color:var(--navy)}

.badge-cta{display:block;width:max-content;max-width:90%;margin:30px auto 6px;background:var(--terra);color:var(--paper);
  font-family:'Alfa Slab One';text-transform:uppercase;letter-spacing:.06em;font-size:22px;padding:18px 44px;
  text-align:center;border:3px solid var(--ink);box-shadow:6px 6px 0 var(--navy);transition:.15s}
.badge-cta:hover{transform:translate(2px,2px);box-shadow:3px 3px 0 var(--navy)}
.foot-note{text-align:center;font-style:italic;color:var(--ink);opacity:.85;margin-top:12px;font-size:14px}

/* ---- sections (content) ---- */
.section{padding:44px 0}
.section.alt{background:var(--paper2)}
.section-head{text-align:center;margin-bottom:26px}
.section-head .kicker{text-transform:uppercase;letter-spacing:.3em;font-size:12px;color:var(--forest);font-weight:700}
.section-head h2{font-family:'Alfa Slab One';color:var(--terra);text-transform:uppercase;
  font-size:clamp(26px,5vw,44px);line-height:1;margin-top:8px;text-shadow:2px 2px 0 var(--navy)}
.section p{max-width:720px;margin:0 auto 14px}
.lead{text-align:center}

/* paper "sheet" card for inner-page bodies */
.sheet{max-width:820px;margin:26px auto;background:var(--paper);border:3px solid var(--ink);
  box-shadow:10px 10px 0 rgba(29,44,77,.9);position:relative;padding:34px 30px 40px}
.sheet::after{content:"";position:absolute;inset:9px;border:1px solid rgba(33,26,18,.35);pointer-events:none}

/* ---- access cards (home) ---- */
.cards{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;max-width:900px;margin:0 auto}
.card{display:block;text-align:center;background:var(--paper);border:2px solid var(--ink);
  box-shadow:6px 6px 0 var(--navy);padding:26px 14px;transition:.15s}
.card:hover{transform:translate(2px,2px);box-shadow:3px 3px 0 var(--navy)}
.card .ico{font-size:30px}
.card h3{font-family:'Alfa Slab One';color:var(--navy);text-transform:uppercase;font-size:16px;margin-top:10px;letter-spacing:.04em}
@media(max-width:820px){.cards{grid-template-columns:repeat(2,1fr)}}
@media(max-width:440px){.cards{grid-template-columns:1fr}}

/* ---- media: gallery (scroll-snap + arrow controls) ---- */
/* Todas las fotos comparten el mismo marco (aspect-ratio fijo + cover),
   así el carrusel es uniforme aunque el original sea apaisado o vertical. */
.gallery-wrap{position:relative;max-width:820px;margin:0 auto}
.gallery{display:flex;gap:14px;overflow-x:auto;scroll-snap-type:x proximity;
  padding:8px 4px 18px;-webkit-overflow-scrolling:touch}
.gallery figure{flex:0 0 100%;scroll-snap-align:center;
  aspect-ratio:3/2;overflow:hidden;background:var(--ink);
  border:3px solid var(--ink);box-shadow:6px 6px 0 var(--navy)}
.gallery img{width:100%;height:100%;object-fit:contain;display:block}
.hint{text-align:center;font-style:italic;opacity:.85;font-size:14px}
.gnav{position:absolute;top:calc(50% - 5px);transform:translateY(-50%);z-index:10;
  background:var(--navy);color:var(--paper);border:2px solid var(--ink);cursor:pointer;
  font-family:'Alfa Slab One';font-size:24px;line-height:1;width:48px;height:48px;
  display:flex;align-items:center;justify-content:center;box-shadow:3px 3px 0 var(--terra);transition:.12s}
.gnav:hover{background:var(--terra)}
.gnav:active{box-shadow:1px 1px 0 var(--terra)}
.gnav.prev{left:-14px}
.gnav.next{right:-14px}
@media(max-width:520px){.gnav{width:40px;height:40px;font-size:20px}.gnav.prev{left:-6px}.gnav.next{right:-6px}}

/* ---- video ---- */
.video-frame{max-width:820px;margin:0 auto;border:3px solid var(--ink);box-shadow:10px 10px 0 var(--navy);background:#000}
.video-frame video{display:block;width:100%}

/* ---- maps ---- */
.maps{display:grid;grid-template-columns:1fr 1fr;gap:22px;max-width:900px;margin:0 auto}
.maps h3{font-family:'Alfa Slab One';color:var(--navy);font-size:17px;text-transform:uppercase;margin-bottom:10px;text-align:center}
.maps a{color:var(--navy);text-decoration:underline}
.maps iframe{width:100%;height:300px;border:3px solid var(--ink);box-shadow:6px 6px 0 var(--navy)}
@media(max-width:720px){.maps{grid-template-columns:1fr}}

/* ---- reglamento ---- */
.reglamento{counter-reset:art}
.reglamento .art{margin:0 0 18px;padding-left:2px}
.reglamento .art h3{font-family:'Alfa Slab One';color:var(--navy);font-size:15px;text-transform:uppercase;
  letter-spacing:.04em;margin-bottom:4px}
.reglamento ul{margin:8px 0 8px 22px}
.reglamento .cat{background:var(--paper2);border:2px solid var(--ink);padding:16px 18px;margin:10px 0}
.reglamento .cat b{color:var(--navy)}
.dl-row{display:flex;gap:14px;flex-wrap:wrap;justify-content:center;margin:8px 0 6px}
.btn-retro{display:inline-block;background:var(--navy);color:var(--paper);font-family:'Alfa Slab One';
  text-transform:uppercase;letter-spacing:.04em;font-size:14px;padding:12px 24px;border:2px solid var(--ink);
  box-shadow:4px 4px 0 var(--terra);transition:.15s}
.btn-retro:hover{transform:translate(2px,2px);box-shadow:2px 2px 0 var(--terra)}

/* ---- contact ---- */
.contact{display:grid;grid-template-columns:1fr 1fr;gap:26px;max-width:820px;margin:0 auto;text-align:center}
.contact h3{font-family:'Alfa Slab One';color:var(--navy);text-transform:uppercase;font-size:18px;margin-bottom:12px}
.contact a{color:var(--navy);text-decoration:underline}
@media(max-width:640px){.contact{grid-template-columns:1fr;gap:20px}}

/* ---- footer / emblems ---- */
.emblems{display:flex;justify-content:center;align-items:center;gap:30px;flex-wrap:wrap;
  padding:36px 20px;background:var(--navy)}
.emblems figure{text-align:center}
.emblems img{height:56px;width:auto;background:var(--paper);padding:6px;border-radius:3px}
.emblems figcaption{font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--paper);margin-top:8px}
.copyright{text-align:center;background:var(--ink);color:var(--paper);font-size:12px;padding:12px;letter-spacing:.06em}

/* ---- impresión (PDF del reglamento) ---- */
@media print{
  .topbar,.emblems,.copyright,.dl-row,.no-print{display:none!important}
  body{background:#fff}
  .section{padding:14px 0}
  .sheet{box-shadow:none;border:2px solid #211a12;margin:0 auto}
  .sheet::after{display:none}
  .section-head h2,.section-head .kicker,.reglamento .art h3{color:#211a12!important;text-shadow:none!important}
  a{color:#211a12;text-decoration:none}
}
