.prp-root {
  --prp-ink: #0b3427;
  --prp-cream: #f4ead5;
  --prp-paper: #fffaf0;
  --prp-rust: #c54719;
  --prp-rust-dark: #9e3311;
  --prp-gold: #d99b26;
  --prp-sage: #b7c8a5;
  --prp-line: rgba(11, 52, 39, 0.17);
  background: radial-gradient(circle at 18% 4%, rgba(217,155,38,.12), transparent 28rem), repeating-linear-gradient(0deg, rgba(64,41,15,.017) 0, rgba(64,41,15,.017) 1px, transparent 1px, transparent 4px), var(--prp-cream);
  color: var(--prp-ink);
  font-family: "Trebuchet MS", "Segoe UI", sans-serif;
  font-size: 16px;
  line-height: 1.5;
  margin: 0 calc(50% - 50vw);
  overflow: hidden;
  width: 100vw;
}
.prp-root *, .prp-root *::before, .prp-root *::after { box-sizing: border-box; }
.prp-root a { color: inherit; text-decoration: none; }
.prp-root button { color: inherit; font: inherit; }
.prp-root [hidden] { display: none !important; }
.prp-eyebrow { color: var(--prp-rust); font-size: 12px; font-weight: 900; letter-spacing: .17em; margin: 0 0 15px; text-transform: uppercase; }
.prp-hero h1, .prp-section-heading h2, .prp-reservation h2, .prp-experience h2, .prp-faq h2, .prp-closing h2 {
  font-family: "Arial Black", Impact, Haettenschweiler, "Arial Narrow Bold", sans-serif;
  font-weight: 900; letter-spacing: -.035em; text-transform: uppercase;
}
.prp-button {
  align-items: center; background: var(--prp-rust); border: 0; box-shadow: 5px 5px 0 var(--prp-ink); color: #fff !important;
  display: inline-flex; font-family: Impact, Haettenschweiler, "Arial Narrow Bold", sans-serif; font-size: 18px; gap: 12px;
  justify-content: center; letter-spacing: .05em; min-height: 54px; padding: 13px 24px; text-transform: uppercase; transition: .16s ease;
}
.prp-button:hover { background: var(--prp-rust-dark); box-shadow: 2px 2px 0 var(--prp-ink); transform: translate(3px,3px); }
.prp-button:focus-visible, .prp-root button:focus-visible, .prp-root summary:focus-visible, .prp-root a:focus-visible { outline: 3px solid var(--prp-gold); outline-offset: 4px; }
.prp-text-link { border-bottom: 2px solid currentColor; font-size: 14px; font-weight: 900; padding: 6px 0; }
.prp-text-link:hover { color: var(--prp-rust); }
.prp-hero { display: grid; gap: clamp(38px,7vw,110px); grid-template-columns: minmax(0,1.03fr) minmax(360px,.97fr); margin: 0 auto; max-width: 1440px; min-height: 720px; padding: clamp(60px,8vw,112px) clamp(22px,5vw,76px) 70px; position: relative; }
.prp-hero-copy { align-self: center; position: relative; z-index: 2; }
.prp-hero h1 { font-size: clamp(64px,8.2vw,126px); line-height: .78; margin: 0; max-width: 860px; }
.prp-hero h1 span { color: var(--prp-rust); display: block; font-family: Georgia, serif; font-size: .44em; font-style: italic; letter-spacing: -.045em; line-height: 1; margin: 18px 0 0 3px; text-transform: none; }
.prp-intro { font-size: clamp(17px,1.4vw,21px); line-height: 1.7; margin: 32px 0 28px; max-width: 650px; }
.prp-actions { align-items: center; display: flex; flex-wrap: wrap; gap: 25px; }
.prp-starting { align-items: baseline; border-left: 4px solid var(--prp-rust); display: flex; gap: 12px; margin-top: 38px; padding-left: 18px; }
.prp-starting span { font-size: 12px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.prp-starting strong { font-family: Impact, sans-serif; font-size: 37px; font-weight: 400; line-height: 1; }
.prp-hero-art { align-self: center; aspect-ratio: .88; background: repeating-linear-gradient(90deg,transparent 0,transparent 22px,rgba(11,52,39,.025) 22px,rgba(11,52,39,.025) 23px), var(--prp-paper); border: 2px solid var(--prp-ink); box-shadow: 14px 14px 0 var(--prp-ink); isolation: isolate; max-height: 680px; overflow: hidden; position: relative; transform: rotate(1.5deg); }
.prp-stamp { align-items: center; background: var(--prp-gold); border: 3px solid var(--prp-ink); border-radius: 50%; display: flex; flex-direction: column; height: 104px; justify-content: center; position: absolute; right: 7%; top: 7%; transform: rotate(8deg); width: 104px; z-index: 8; }
.prp-stamp strong { font-family: Impact,sans-serif; font-size: 41px; font-weight: 400; line-height: .9; }
.prp-stamp span { font-size: 9px; font-weight: 900; letter-spacing: .08em; }
.prp-sun { background: var(--prp-rust); border-radius: 50%; height: 40%; left: 32%; opacity: .94; position: absolute; top: 19%; width: 46%; z-index: -1; }
.prp-note { font-family: Georgia,serif; font-size: clamp(74px,8vw,128px); left: 11%; position: absolute; top: 7%; transform: rotate(-11deg); }
.prp-mountain { bottom: 23%; clip-path: polygon(0 100%,19% 50%,32% 71%,52% 4%,67% 63%,78% 42%,100% 100%); left: 0; position: absolute; width: 100%; }
.prp-mountain-back { background: var(--prp-sage); height: 56%; opacity: .8; transform: translateX(6%); }
.prp-mountain-front { background: var(--prp-ink); height: 48%; transform: translateX(-11%); width: 116%; z-index: 2; }
.prp-camp-row { align-items: center; background: var(--prp-cream); border-block: 2px solid var(--prp-ink); bottom: 10%; display: flex; font-size: clamp(28px,3.2vw,48px); gap: 8%; height: 18%; justify-content: center; left: 0; position: absolute; width: 100%; z-index: 5; }
.prp-art-caption { align-items: center; background: var(--prp-ink); bottom: 0; color: var(--prp-cream); display: flex; height: 10%; justify-content: space-between; left: 0; padding: 0 6%; position: absolute; width: 100%; z-index: 6; }
.prp-art-caption span, .prp-art-caption strong { font-size: 10px; font-weight: 800; letter-spacing: .1em; }
.prp-art-caption strong { color: var(--prp-gold); }
.prp-benefit-strip { align-items: center; background: var(--prp-ink); color: var(--prp-cream); display: flex; gap: clamp(30px,8vw,120px); justify-content: center; padding: 27px clamp(22px,6vw,90px); }
.prp-benefit-strip > p { color: var(--prp-gold); flex: 0 0 auto; font-family: Impact,sans-serif; font-size: 20px; letter-spacing: .06em; margin: 0; }
.prp-included { display: grid; flex: 1; gap: 12px; grid-template-columns: repeat(4,1fr); list-style: none; margin: 0; max-width: 780px; padding: 0; }
.prp-included li { align-items: center; border-left: 1px solid rgba(244,234,213,.25); display: flex; font-size: 12px; font-weight: 800; gap: 10px; justify-content: center; min-height: 36px; text-transform: uppercase; }
.prp-included li span { color: var(--prp-gold); font-size: 24px; }
.prp-packs-section { margin: 0 auto; max-width: 1440px; padding: clamp(80px,9vw,130px) clamp(22px,5vw,76px) 85px; }
.prp-section-heading { align-items: end; display: grid; gap: 70px; grid-template-columns: 1fr minmax(280px,450px); }
.prp-section-heading h2, .prp-experience h2, .prp-faq h2, .prp-closing h2 { font-size: clamp(39px,5vw,70px); line-height: .96; margin: 0; }
.prp-section-heading > p { font-size: 15px; line-height: 1.75; margin: 0; }
.prp-filters { border-bottom: 1px solid var(--prp-line); display: flex; gap: 7px; margin: 47px 0 35px; overflow-x: auto; padding-bottom: 13px; }
.prp-filters button { background: rgba(255,250,240,.45); border: 1px solid var(--prp-line); cursor: pointer; flex: 0 0 auto; font-size: 13px; font-weight: 900; min-height: 45px; padding: 10px 22px; text-transform: uppercase; }
.prp-filters button.is-active { background: var(--prp-ink); color: var(--prp-cream); }
.prp-grid { display: grid; gap: 20px; grid-template-columns: repeat(3,minmax(0,1fr)); }
.prp-card { background: linear-gradient(150deg,rgba(255,255,255,.52),transparent 45%),var(--prp-paper); border: 1px solid var(--prp-line); display: flex; flex-direction: column; min-height: 525px; padding: 27px; position: relative; transition: .18s ease; }
.prp-card:hover { border-color: rgba(11,52,39,.48); box-shadow: 0 20px 60px rgba(40,30,14,.12); transform: translateY(-5px); }
.prp-card.is-selected { border: 3px solid var(--prp-ink); padding: 25px; }
.prp-card.is-featured { background: linear-gradient(150deg,rgba(217,155,38,.2),transparent 42%),var(--prp-paper); }
.prp-recommended { background: var(--prp-rust); color: #fff; font-size: 9px; font-weight: 900; letter-spacing: .1em; padding: 7px 11px; position: absolute; right: 22px; text-transform: uppercase; top: -12px; transform: rotate(2deg); }
.prp-card-top { border-bottom: 1px solid var(--prp-line); display: flex; font-size: 10px; font-weight: 900; justify-content: space-between; letter-spacing: .1em; padding-bottom: 13px; text-transform: uppercase; }
.prp-card-top span:last-child { color: var(--prp-rust); }
.prp-pack-icon { align-items: center; display: flex; font-size: 59px; height: 92px; justify-content: center; line-height: 1; margin-top: 12px; }
.prp-card h3 { font-family: "Arial Black",Impact,sans-serif; font-size: 36px; font-weight: 900; letter-spacing: -.025em; line-height: 1; margin: 5px 0 8px; text-align: center; text-transform: uppercase; }
.prp-people { color: var(--prp-rust); font-size: 11px; font-weight: 900; letter-spacing: .1em; margin: 0; text-align: center; }
.prp-note-copy { font-size: 13px; line-height: 1.55; margin: 18px auto; max-width: 280px; min-height: 41px; text-align: center; }
.prp-price-box { display: grid; grid-template-columns: 1.1fr .9fr; margin-top: auto; }
.prp-price-box > div { align-items: center; background: var(--prp-rust); color: #fff; display: flex; flex-direction: column; justify-content: center; min-height: 83px; padding: 10px; text-align: center; }
.prp-price-box > div:last-child { background: rgba(183,200,165,.48); border: 1px solid var(--prp-line); color: var(--prp-ink); }
.prp-price-box strong { font-family: Impact,sans-serif; font-size: 31px; font-weight: 400; line-height: 1; }
.prp-price-box span { font-size: 9px; font-weight: 900; letter-spacing: .07em; margin-top: 7px; text-transform: uppercase; }
.prp-mini-includes { display: flex; font-size: 10px; font-weight: 800; justify-content: space-between; list-style: none; margin: 18px 0; padding: 0; text-transform: uppercase; }
.prp-mini-includes li + li::before { color: var(--prp-rust); content: "★"; font-size: 7px; margin-right: 10px; }
.prp-select { background: var(--prp-ink); border: 0; color: var(--prp-cream) !important; cursor: pointer; font-family: Impact,sans-serif; font-size: 16px; letter-spacing: .05em; min-height: 48px; padding: 11px; text-transform: uppercase; }
.prp-select:hover { background: var(--prp-rust); }
.prp-reservation { align-items: center; background: var(--prp-gold); border: 2px solid var(--prp-ink); box-shadow: 10px 10px 0 var(--prp-ink); display: grid; gap: 35px; grid-template-columns: 1.2fr auto auto; margin: 0 auto 110px; max-width: min(1296px,90vw); padding: 29px 34px; }
.prp-reservation .prp-eyebrow { color: var(--prp-ink); margin-bottom: 7px; }
.prp-reservation h2 { font-size: clamp(30px,4vw,52px); line-height: 1; margin: 0; }
.prp-reservation p { font-size: 13px; font-weight: 700; margin: 7px 0 0; }
.prp-reservation-price { border-left: 1px solid rgba(11,52,39,.35); display: flex; flex-direction: column; min-width: 144px; padding-left: 30px; }
.prp-reservation-price span, .prp-reservation-price small { font-size: 10px; font-weight: 900; letter-spacing: .07em; text-transform: uppercase; }
.prp-reservation-price strong { font-family: Impact,sans-serif; font-size: 38px; font-weight: 400; line-height: 1.1; }
.prp-whatsapp { background: var(--prp-ink); box-shadow: 5px 5px 0 var(--prp-rust-dark); white-space: nowrap; }
.prp-experience { display: grid; grid-template-columns: 1.05fr .95fr; }
.prp-experience-card { background: var(--prp-ink); color: var(--prp-cream); padding: clamp(70px,8vw,125px) clamp(28px,7vw,105px); }
.prp-experience-card .prp-eyebrow { color: var(--prp-gold); }
.prp-experience-card > p:not(.prp-eyebrow) { color: rgba(244,234,213,.78); font-size: 17px; line-height: 1.75; max-width: 640px; }
.prp-facts { border-block: 1px solid rgba(244,234,213,.2); display: grid; gap: 15px; grid-template-columns: repeat(3,1fr); margin: 42px 0 30px; padding: 26px 0; }
.prp-facts div { display: flex; flex-direction: column; }
.prp-facts strong { color: var(--prp-gold); font-family: Impact,sans-serif; font-size: 29px; font-weight: 400; }
.prp-facts span { font-size: 10px; font-weight: 800; margin-top: 4px; text-transform: uppercase; }
.prp-text-link.prp-light { color: var(--prp-cream); }
.prp-steps { background: var(--prp-paper); padding: clamp(70px,8vw,125px) clamp(28px,7vw,105px); }
.prp-steps ol { list-style: none; margin: 24px 0 0; padding: 0; }
.prp-steps li { align-items: start; border-top: 1px solid var(--prp-line); display: grid; gap: 25px; grid-template-columns: 60px 1fr; padding: 28px 0; }
.prp-steps li > span { color: var(--prp-rust); font-family: Impact,sans-serif; font-size: 33px; }
.prp-steps li strong { font-size: 18px; text-transform: uppercase; }
.prp-steps li p { font-size: 13px; line-height: 1.65; margin: 7px 0 0; }
.prp-faq { display: grid; gap: clamp(50px,9vw,150px); grid-template-columns: .75fr 1.25fr; margin: 0 auto; max-width: 1280px; padding: clamp(85px,10vw,145px) clamp(22px,5vw,76px); }
.prp-faq-list { border-top: 2px solid var(--prp-ink); }
.prp-faq-list details { border-bottom: 1px solid var(--prp-line); }
.prp-faq-list summary { cursor: pointer; font-size: 16px; font-weight: 900; list-style: none; padding: 24px 45px 24px 0; position: relative; text-transform: uppercase; }
.prp-faq-list summary::-webkit-details-marker { display: none; }
.prp-faq-list summary::after { color: var(--prp-rust); content: "+"; font-size: 30px; position: absolute; right: 5px; top: 16px; }
.prp-faq-list details[open] summary::after { content: "−"; }
.prp-faq-list details p { font-size: 14px; line-height: 1.75; margin: -4px 45px 24px 0; }
.prp-closing { align-items: center; background: var(--prp-rust); color: #fff; display: flex; justify-content: space-between; padding: clamp(60px,7vw,100px) clamp(24px,8vw,120px); }
.prp-closing .prp-eyebrow { color: var(--prp-gold); }
.prp-closing h2 { max-width: 780px; }
.prp-button-light { background: var(--prp-cream); color: var(--prp-ink) !important; flex: 0 0 auto; }
.prp-mobile-cta { display: none; }
@media (max-width:1050px) {
  .prp-hero { grid-template-columns: 1fr .8fr; }
  .prp-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .prp-reservation { grid-template-columns: 1fr auto; }
  .prp-reservation .prp-whatsapp { grid-column: 1/-1; }
  .prp-experience { grid-template-columns: 1fr; }
}
@media (max-width:760px) {
  .prp-root { padding-bottom: 72px; }
  .prp-hero { display: flex; flex-direction: column; gap: 58px; min-height: 0; padding-block: 62px 60px; }
  .prp-hero h1 { font-size: clamp(58px,19vw,84px); }
  .prp-actions { align-items: stretch; flex-direction: column; }
  .prp-actions .prp-text-link { align-self: flex-start; }
  .prp-hero-art { aspect-ratio: .95; max-height: none; width: calc(100% - 13px); }
  .prp-benefit-strip { align-items: stretch; flex-direction: column; gap: 18px; }
  .prp-benefit-strip > p { text-align: center; }
  .prp-included { gap: 7px; grid-template-columns: repeat(2,1fr); }
  .prp-included li { border: 1px solid rgba(244,234,213,.18); flex-direction: column; min-height: 82px; }
  .prp-section-heading { display: block; }
  .prp-section-heading > p { margin-top: 23px; }
  .prp-grid { grid-template-columns: 1fr; }
  .prp-reservation { display: flex; flex-direction: column; margin: 0 22px 85px; max-width: none; padding: 27px 24px; text-align: center; }
  .prp-reservation-price { border-left: 0; border-top: 1px solid rgba(11,52,39,.35); padding: 17px 0 0; }
  .prp-reservation .prp-whatsapp { width: 100%; }
  .prp-experience-card, .prp-steps { padding-inline: 24px; }
  .prp-facts { grid-template-columns: 1fr; }
  .prp-faq { grid-template-columns: 1fr; }
  .prp-closing { align-items: flex-start; flex-direction: column; gap: 35px; }
  .prp-mobile-cta { align-items: center; background: var(--prp-ink); bottom: 0; color: #fff; display: flex; height: 72px; justify-content: space-between; left: 0; padding: 9px 14px 9px 18px; position: fixed; right: 0; z-index: 99999; }
  .prp-mobile-cta > div { display: flex; flex-direction: column; }
  .prp-mobile-cta span { color: rgba(255,255,255,.68); font-size: 9px; font-weight: 800; text-transform: uppercase; }
  .prp-mobile-cta strong { font-size: 20px; }
  .prp-mobile-cta a { background: var(--prp-rust); color: #fff; font-family: Impact,sans-serif; font-size: 17px; padding: 11px 20px; text-transform: uppercase; }
}
@media (prefers-reduced-motion:reduce) {
  .prp-root *, .prp-root *::before, .prp-root *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; }
}

/* Festival theme · carbón, rojo y blanco envejecido */
.prp-root {
  --prp-ink: #080a0a;
  --prp-cream: #e8dfcf;
  --prp-paper: #101212;
  --prp-rust: #b52a22;
  --prp-rust-dark: #761611;
  --prp-gold: #d7c9b8;
  --prp-sage: #706d64;
  --prp-line: rgba(181,42,34,.5);
  background:
    radial-gradient(circle at 82% 8%, rgba(181,42,34,.16), transparent 28rem),
    radial-gradient(circle at 15% 72%, rgba(181,42,34,.1), transparent 34rem),
    repeating-linear-gradient(92deg, rgba(232,223,207,.018) 0, rgba(232,223,207,.018) 1px, transparent 1px, transparent 5px),
    repeating-linear-gradient(3deg, rgba(232,223,207,.012) 0, rgba(232,223,207,.012) 1px, transparent 1px, transparent 7px),
    var(--prp-ink);
  color: var(--prp-cream);
}
.prp-hero-art {
  background: radial-gradient(circle at 72% 22%, rgba(181,42,34,.13), transparent 35%), repeating-linear-gradient(88deg,transparent 0,transparent 22px,rgba(232,223,207,.025) 22px,rgba(232,223,207,.025) 23px),var(--prp-paper);
  border-color: var(--prp-rust);
  box-shadow: 14px 14px 0 #020303;
}
.prp-hero-art::after, .prp-card::before {
  background: repeating-radial-gradient(circle at 20% 30%,rgba(232,223,207,.06) 0,rgba(232,223,207,.06) 1px,transparent 1px,transparent 4px),linear-gradient(118deg,transparent 15%,rgba(181,42,34,.06) 42%,transparent 64%);
  content: ""; inset: 0; mix-blend-mode: screen; opacity: .34; pointer-events: none; position: absolute;
}
.prp-stamp { background: var(--prp-ink); border-color: var(--prp-rust); color: var(--prp-cream); }
.prp-note { color: var(--prp-cream); }
.prp-mountain-back { background: #615d55; }
.prp-mountain-front { background: var(--prp-cream); }
.prp-camp-row { background: var(--prp-ink); border-color: var(--prp-rust); }
.prp-art-caption { background: var(--prp-rust); color: var(--prp-cream); }
.prp-art-caption strong, .prp-benefit-strip > p, .prp-included li span { color: var(--prp-cream); }
.prp-benefit-strip { border-block: 1px solid var(--prp-rust); }
.prp-included li { border-left-color: rgba(181,42,34,.6); }
.prp-filters button { background: #111313; border-color: rgba(181,42,34,.65); color: var(--prp-cream); }
.prp-filters button.is-active { background: var(--prp-rust); color: var(--prp-cream); }
.prp-card {
  background: radial-gradient(circle at 50% 18%,rgba(181,42,34,.09),transparent 44%),repeating-linear-gradient(4deg,transparent 0,transparent 8px,rgba(232,223,207,.014) 8px,rgba(232,223,207,.014) 9px),var(--prp-paper);
  border-color: rgba(181,42,34,.65);
}
.prp-card > * { position: relative; z-index: 1; }
.prp-card:hover, .prp-card.is-selected { border-color: var(--prp-rust); box-shadow: 0 20px 60px rgba(0,0,0,.58); }
.prp-card.is-featured { background: radial-gradient(circle at 50% 17%,rgba(181,42,34,.22),transparent 44%),repeating-linear-gradient(4deg,transparent 0,transparent 8px,rgba(232,223,207,.014) 8px,rgba(232,223,207,.014) 9px),var(--prp-paper); }
.prp-pack-icon { filter: grayscale(1) sepia(.15) brightness(1.35); }
.prp-price-box > div:last-child { background: #0b0d0d; border-color: rgba(215,201,184,.4); color: var(--prp-cream); }
.prp-reservation {
  background: repeating-linear-gradient(2deg,rgba(0,0,0,.05) 0,rgba(0,0,0,.05) 1px,transparent 1px,transparent 6px),var(--prp-rust);
  border-color: var(--prp-cream); box-shadow: 10px 10px 0 #020303; color: var(--prp-cream);
}
.prp-reservation .prp-eyebrow { color: var(--prp-cream); }
.prp-reservation-price { border-left-color: rgba(232,223,207,.45); }
.prp-whatsapp { background: var(--prp-ink); box-shadow: 5px 5px 0 #4c0d09; }
.prp-experience-card { border-block: 1px solid var(--prp-rust); }
.prp-experience-card .prp-eyebrow, .prp-facts strong { color: var(--prp-rust); }
.prp-steps { background: radial-gradient(circle at 80% 20%,rgba(181,42,34,.12),transparent 45%),repeating-linear-gradient(0deg,transparent 0,transparent 6px,rgba(232,223,207,.018) 6px,rgba(232,223,207,.018) 7px),var(--prp-paper); }
.prp-faq-list { border-top-color: var(--prp-rust); }
.prp-closing { background: repeating-linear-gradient(3deg,rgba(0,0,0,.07) 0,rgba(0,0,0,.07) 1px,transparent 1px,transparent 7px),var(--prp-rust); }
.prp-closing .prp-eyebrow { color: var(--prp-cream); }
.prp-button-light { background: var(--prp-cream); color: var(--prp-ink) !important; }

/* Material oficial incluido */
.prp-official {
  margin: 0 auto;
  max-width: 1440px;
  padding: clamp(84px,9vw,132px) clamp(22px,5vw,76px) 36px;
}
.prp-official-heading {
  align-items: end;
  display: grid;
  gap: 70px;
  grid-template-columns: 1fr minmax(280px,450px);
  margin-bottom: 42px;
}
.prp-official-heading h2 {
  color: var(--prp-cream);
  font-family: "Arial Black",Impact,Haettenschweiler,"Arial Narrow Bold",sans-serif;
  font-size: clamp(43px,5.6vw,78px);
  font-weight: 900;
  letter-spacing: -.045em;
  line-height: .9;
  margin: 0;
  max-width: 780px;
  text-transform: uppercase;
}
.prp-official-heading > p {
  color: rgba(232,223,207,.75);
  font-size: 15px;
  line-height: 1.75;
  margin: 0 0 5px;
}
.prp-official-grid {
  display: grid;
  gap: 18px;
  grid-template-columns: repeat(12,minmax(0,1fr));
}
.prp-official-card {
  background: #101212;
  border: 1px solid rgba(181,42,34,.72);
  color: var(--prp-cream);
  isolation: isolate;
  min-width: 0;
  overflow: hidden;
  position: relative;
  transition: border-color .18s ease, box-shadow .18s ease, transform .18s ease;
}
.prp-official-card::after {
  background: repeating-radial-gradient(circle at 18% 30%,rgba(232,223,207,.07) 0,rgba(232,223,207,.07) 1px,transparent 1px,transparent 5px),linear-gradient(120deg,transparent 18%,rgba(181,42,34,.07) 46%,transparent 68%);
  content: "";
  inset: 0;
  mix-blend-mode: screen;
  opacity: .3;
  pointer-events: none;
  position: absolute;
  z-index: 2;
}
.prp-official-card:hover {
  border-color: var(--prp-cream);
  box-shadow: 0 24px 70px rgba(0,0,0,.58);
  transform: translateY(-4px);
}
.prp-festival-card {
  grid-column: 1/-1;
  min-height: clamp(360px,34vw,480px);
}
.prp-festival-card > img {
  height: 100%;
  inset: 0;
  object-fit: cover;
  object-position: center 48%;
  position: absolute;
  width: 100%;
}
.prp-festival-card::before {
  background: linear-gradient(180deg,transparent 36%,rgba(5,6,6,.25) 54%,#050606 100%);
  content: "";
  inset: 0;
  position: absolute;
  z-index: 1;
}
.prp-shirt-card,
.prp-shuttle-card {
  display: grid;
  grid-column: span 6;
  grid-template-rows: 360px auto;
}
.prp-shirt-gallery {
  background: #720b19;
  display: grid;
  grid-template-columns: repeat(2,minmax(0,1fr));
  min-height: 0;
  overflow: hidden;
}
.prp-shirt-gallery img {
  height: 100%;
  min-width: 0;
  object-fit: cover;
  width: 100%;
}
.prp-shirt-gallery img + img { border-left: 1px solid rgba(232,223,207,.35); }
.prp-shuttle-image {
  min-height: 0;
  overflow: hidden;
  position: relative;
}
.prp-shuttle-image::after {
  background: linear-gradient(180deg,transparent 58%,rgba(5,6,6,.8));
  content: "";
  inset: 0;
  position: absolute;
}
.prp-shuttle-image img {
  height: 100%;
  object-fit: cover;
  width: 100%;
}
.prp-route-badge {
  background: var(--prp-rust);
  bottom: 17px;
  color: var(--prp-cream);
  font-family: Impact,Haettenschweiler,"Arial Narrow Bold",sans-serif;
  font-size: 16px;
  left: 18px;
  letter-spacing: .08em;
  padding: 8px 12px;
  position: absolute;
  transform: rotate(-2deg);
  z-index: 1;
}
.prp-official-copy {
  align-self: stretch;
  min-width: 0;
  padding: clamp(24px,3vw,38px);
  position: relative;
  z-index: 3;
}
.prp-festival-card .prp-official-copy {
  bottom: 0;
  left: 0;
  position: absolute;
  right: 0;
}
.prp-official-kicker {
  color: var(--prp-rust);
  display: block;
  font-size: 10px;
  font-weight: 900;
  letter-spacing: .14em;
  margin-bottom: 10px;
  text-transform: uppercase;
}
.prp-festival-card .prp-official-kicker { color: var(--prp-cream); }
.prp-official-copy h3 {
  color: var(--prp-cream);
  font-family: "Arial Black",Impact,Haettenschweiler,"Arial Narrow Bold",sans-serif;
  font-size: clamp(30px,3vw,44px);
  letter-spacing: -.035em;
  line-height: .95;
  margin: 0;
  text-transform: uppercase;
}
.prp-official-copy p {
  color: rgba(232,223,207,.72);
  font-size: 13px;
  line-height: 1.55;
  margin: 15px 0 20px;
}
.prp-official-copy strong {
  border-top: 1px solid rgba(181,42,34,.72);
  display: block;
  font-size: 10px;
  letter-spacing: .12em;
  padding-top: 14px;
}
@media (max-width:1050px) {
  .prp-official-grid {
    grid-template-columns: repeat(2,minmax(0,1fr));
  }
  .prp-festival-card {
    grid-column: 1/-1;
    min-height: 420px;
  }
  .prp-shirt-card,
  .prp-shuttle-card {
    grid-column: auto;
    grid-template-rows: 320px auto;
  }
}
@media (max-width:760px) {
  .prp-official { padding-bottom: 18px; }
  .prp-official-heading { display: block; }
  .prp-official-heading > p { margin-top: 23px; }
  .prp-official-grid { display: flex; flex-direction: column; }
  .prp-festival-card { min-height: 360px; }
  .prp-shirt-card { min-height: 0; }
  .prp-shirt-gallery { min-height: 360px; }
  .prp-shuttle-card { display: block; min-height: 0; }
  .prp-shuttle-image { min-height: 265px; }
  .prp-official-copy { padding: 26px 22px; }
  .prp-official-copy h3 { font-size: 34px; }
}

/* Cartel oficial en portada */
.prp-hero-poster {
  aspect-ratio: 1638/2048;
  background: #090a0a;
  box-shadow: 14px 14px 0 #020303;
  max-height: 690px;
  padding: 0;
}
.prp-hero-poster::after { display: none; }
.prp-hero-poster img {
  display: block;
  height: 100%;
  object-fit: contain;
  width: 100%;
}
@media (max-width:760px) {
  .prp-hero-poster { aspect-ratio: 1638/2048; }
}
