/* DINOTASTIC · usability refinements · existing brand and page structure retained */
:root { --f-hand: 'Montserrat', system-ui, sans-serif; }
[hidden] { display:none !important; }
:focus-visible { outline:3px solid #167080; outline-offset:5px; }
html { scroll-padding-top:95px; }
.eyebrow { font-family:var(--f-body);font-size:1rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase; }
h1,h2,h3 { overflow-wrap:break-word; }
.hero__content { min-height:760px; min-height:min(860px,100svh); padding-top:8rem; padding-bottom:5rem; }
.hero__logo { max-width:470px;animation:none; }
.hero__kicker .dot,.hero__lights .light { animation:none; }
.hero__meta { padding-top:1.2rem; }
.hero__cta { margin-bottom:1.75rem; }
.hero__video-control { position:absolute;right:24px;bottom:22px;z-index:4;border:1px solid #faf7da70;border-radius:999px;padding:10px 16px;background:#10241ee0;color:#faf7da;font-size:1rem;min-height:44px; }
.hero__scroll { display:none; }
.tour { padding-top:4.5rem; }
.tour::before { display:none; }
.tour__controls { grid-template-columns:1.25fr 1.5fr auto; gap:1rem;margin-bottom:.75rem;align-items:end; }
.tour__search,.tour__filters,.tour__filters label { min-width:0; }
.tour__filters label { margin:0; }
.tour__search input,.tour__filters select { margin-top:.3rem; }
.tour__help { max-width:900px;font-size:1rem;line-height:1.6;color:#48534a;margin:.7rem 0 1.1rem; }
.tour__filter-status { display:flex;align-items:center;justify-content:space-between;gap:1rem;min-height:36px;margin-bottom:.5rem;font-size:1rem; }
.text-button { text-decoration:underline;text-underline-offset:4px;color:#165f39;font-weight:700;min-height:44px; }
.tour__date { gap:1.25rem;padding:1rem 1.25rem; }
.tour__date:hover { transform:none; }
.tour__city { min-width:0; }
.tour__city .city-name { text-decoration:none;line-height:1.2; }
.tour__city .venue { overflow-wrap:anywhere; }
.tour__city-page { display:inline-block!important;margin:.4rem 0 0!important;padding:0!important;font-size:1rem!important;color:#28623f!important; }
.tour__buy { display:inline-flex;align-items:center;justify-content:center;gap:.5rem;min-height:48px;white-space:nowrap;text-decoration:none;background:#ba3e08;color:#faf7da;border-radius:999px;padding:.8rem 1.2rem;font-weight:800;font-size:1rem; }
.tour__buy:hover { background:#8d3009;color:#faf7da; }
.btn--primary,.nav__cta { background:#ba3e08;color:#faf7da; }
.btn--primary:hover,.nav__cta:hover { background:#913208;color:#faf7da; }
.tour__empty { padding:2rem;background:#faf7da;border:1px solid #d9e1d6;border-radius:20px;text-align:center; }
.tour__empty p { margin:.8rem 0 1.2rem; }
.city-index { background:#e9efdf;padding:3rem 0; }
.city-index h2 { font-size:1.7rem;margin-bottom:1rem; }
.city-index nav { line-height:2.2;font-size:1rem; }
.city-index a { display:inline-block;padding:2px 5px; }
.city-next { margin:-.5rem 0 1.5rem;padding:.9rem 1.1rem;border-left:4px solid #bc420d;background:#faf7da88;font-size:1rem; }
.city-archive-note { padding:1.2rem;margin:1rem 0;background:#fff4cc;border:1px solid #dabc5a;border-radius:16px; }
.ticket-note { font-size:1rem;color:#48534a;margin-top:1.2rem; }
.past-event-label { font-weight:700;color:#4b554b;padding:.8rem;background:#edf0eb;border-radius:10px; }
.cookie-settings { padding:0;color:inherit;text-decoration:underline;font-size:inherit;text-align:left;min-height:24px; }
.cookie-banner { max-width:850px;max-height:calc(100dvh - 2rem);overflow-y:auto;animation:none; }
.cookie-banner__inner { grid-template-columns:1fr;gap:1rem; }
.cookie-banner__copy h3 { font-family:var(--f-body);font-size:1rem;line-height:1.4;letter-spacing:0;text-transform:none; }
.cookie-banner__copy p { font-size:1rem; }
.cookie-banner__actions .btn { flex:1;background:#faf7da;color:#153c2a;border:2px solid #faf7da;box-shadow:none;font-size:1rem; }
.cookie-banner__actions .btn:hover { background:#e4efde; }
.footer__bar ul { flex-wrap:wrap;gap:.7rem 1.2rem; }
.mobile-ticket-bar { display:none; }
@media (max-width:1000px) { .tour__controls { grid-template-columns:1fr; }.tour__count{font-size:1.1rem}.tour__controls{padding:1.2rem}.hero__content{min-height:760px} }
@media (max-width:767px) {
  body { font-size:16px;padding-bottom:78px; }
  h2 { font-size:clamp(1.85rem,7.5vw,2.5rem);letter-spacing:1px; }
  .hero { padding-top:68px; }
  .hero__mobile-image { aspect-ratio:1.25;background-size:100% auto;background-position:center 25%; }
  .hero__mobile-image::after { height:55px; }
  .hero__mobile-video { object-position:center 25%; }
  .hero__mobile-cta { display:none; }
  .hero__content { min-height:0;padding:0 var(--pad) 4.2rem; }
  .hero__kicker { font-size:1rem;margin:0 0 .8rem;padding:.4rem .65rem; }
  .hero__title { font-size:1.9rem;letter-spacing:1px; }
  .hero__sub { font-size:1rem;margin-bottom:1.2rem; }
  .hero__cta { margin-bottom:1.25rem;gap:.6rem; }
  .hero__cta .btn { min-height:48px;padding:.8rem 1rem;font-size:1rem; }
  .hero__cta .btn--ghost { border:0;padding:.35rem;min-height:38px; }
  .hero__meta { gap:1rem;justify-content:space-between; }
  .hero__meta strong { font-family:var(--f-body);font-size:1rem; }
  .hero__meta span { font-size:1rem;letter-spacing:0;text-transform:none; }
  .hero__video-control { bottom:12px;right:var(--pad);font-size:1rem;min-height:36px;padding:7px 12px; }
  .tour { padding-top:3rem; }
  .tour__filters { gap:.6rem; }
  .tour__filters label { font-size:1rem;letter-spacing:0; }
  .tour__filters select { padding:.8rem .5rem; }
  .tour__filter-status { align-items:flex-start;flex-wrap:wrap;gap:0; }
  .tour__date { display:grid;grid-template-columns:68px minmax(0,1fr);gap:.7rem 1rem;padding:1rem; }
  .tour__date-block { grid-column:1;grid-row:1 / 3;min-width:0;padding:.7rem .4rem; }
  .tour__date-block .month { font-size:1rem;letter-spacing:0; }
  .tour__city { grid-column:2;grid-row:1; }
  .tour__city .city-name { font-size:1.4rem; }
  .tour__city .venue { font-size:1rem; }
  .tour__time { display:block!important;grid-column:2;grid-row:2;font-size:1rem; }
  .tour__buy { grid-column:1 / -1;grid-row:3;width:100%;font-size:1rem; }
  .mobile-ticket-bar { position:fixed;bottom:0;left:0;right:0;z-index:90;display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:12px 18px calc(12px + env(safe-area-inset-bottom));background:#10291f;color:#faf7da;text-decoration:none;box-shadow:0 -4px 18px #0002; }
  .mobile-ticket-bar span { font-size:1rem;max-width:125px; }
  .mobile-ticket-bar strong { color:#ffd666;font-size:1rem; }
  .consent-open .mobile-ticket-bar { visibility:hidden; }
  .city-hero { padding-top:6rem; }
  .city-hero h1 { font-size:2.5rem;letter-spacing:1px; }
  .city-hero__lead { font-size:1rem; }
  .city-hero__cta .btn { width:100%;font-size:1rem; }
  .city-tour__item { padding:1.25rem; }
  .city-tour__item .btn { width:100%; }
  .cookie-banner { padding:1rem;bottom:10px;left:10px;right:10px; }
  .cookie-banner__actions .btn { padding:.7rem .5rem; }
}
@media (max-width:360px) { .tour__filters{grid-template-columns:1fr}.hero__title{font-size:1.7rem}.cookie-banner__actions{flex-direction:column} }
@media (prefers-reduced-motion:reduce) { html{scroll-behavior:auto}*{animation:none!important;transition:none!important} }
.btn--inline { max-width:100%;white-space:normal; }
.btn--inline span { min-width:0;overflow-wrap:anywhere; }
.geburtstag__copy,.geburtstag__media,.city-geburtstag__copy,.city-geburtstag__media { min-width:0; }
@media(max-width:767px) { .geburtstag__card,.city-geburtstag__card { padding:1.25rem;grid-template-columns:minmax(0,1fr); }.btn--inline{font-size:1rem;padding:.9rem 1rem}.hero__video-control{position:relative;display:block;right:auto;bottom:auto;margin:-3rem var(--pad) 1rem auto;width:fit-content;max-width:calc(100% - 2 * var(--pad))} }
.city-hero .btn--ghost { color:#214c34;border-color:#507459;background:#faf7da55; }
.city-hero .btn--ghost:hover { background:#faf7da;color:#173d29; }
.skip-link { top:0;transform:translateY(-200%); }
.skip-link:focus { transform:none; }

/* DINO30: original campaign artwork in the opening viewport. */
.promo-dino30 { display:block;text-decoration:none;filter:drop-shadow(0 8px 12px #0003); }
.promo-dino30 img { display:block;width:100%;height:auto; }
.hero__content > .promo-dino30 { position:absolute;top:160px;right:var(--pad);width:clamp(300px,33vw,440px);z-index:3; }
.city-hero > .container { position:relative;padding-right:calc(var(--pad) + min(37vw,450px)); }
.city-hero .promo-dino30 { position:absolute;right:var(--pad);top:45px;width:min(35vw,420px); }
@media (min-width:768px) and (max-width:1100px) {
  .hero__content > .promo-dino30 { width:300px;top:140px; }
  .hero__logo { max-width:calc(100% - 325px);min-width:260px; }
}
@media (max-width:767px) {
  .hero__content > .promo-dino30 { position:relative;top:auto;right:auto;width:min(100%,350px);margin:-65px auto 12px; }
  .hero__kicker { margin-bottom:.55rem; }
  .hero__mobile-image { aspect-ratio:1.65; }
  .city-hero { padding-top:88px;padding-bottom:2rem; }
  .city-hero > .container { display:flex;flex-direction:column;padding-right:var(--pad); }
  .city-hero .breadcrumb { order:0;font-size:1rem;margin-bottom:.55rem; }
  .city-hero .promo-dino30 { position:relative;right:auto;top:auto;order:1;width:min(100%,350px);margin:0 auto .8rem; }
  .city-hero .eyebrow { order:2;font-size:1rem; }
  .city-hero h1 { order:3;margin:.55rem 0 1rem;font-size:2.25rem; }
  .city-hero .city-next { order:4;font-size:1rem;margin:0 0 1rem;padding:.65rem .85rem; }
  .city-hero__cta { order:5;gap:.6rem; }
  .city-hero__cta .btn { padding:.75rem 1rem;min-height:46px; }
  .city-hero__lead { order:6;margin:1.25rem 0 0;font-size:1rem; }
}
@media (min-width:768px) and (max-height:650px) {
  .hero__content > .promo-dino30 { top:105px;width:300px; }
  .city-hero { padding-top:95px; }
  .city-hero .promo-dino30 { top:25px;width:min(33vw,330px); }
}

/* Version 3: rope-free offer replaces the desktop hero logo; below video on mobile. */
.hero__content > .promo-dino30 {
  position:static;top:auto;right:auto;width:min(470px,100%);max-width:470px;
  margin:0 0 1.25rem;flex-shrink:0;
}
@media (max-width:767px) {
  .hero__content > .promo-dino30 {
    position:static;order:-1;width:min(100%,350px);margin:12px auto 14px;
  }
  .hero__mobile-image { aspect-ratio:1.8; }
}
@media (min-width:768px) and (max-height:650px) {
  .hero__content { min-height:0;justify-content:flex-start;padding-top:90px; }
  .hero__content > .promo-dino30 { width:330px; }
  .hero__kicker { margin-bottom:.75rem; }
}
