/* Coupon cards */
.coupon-card {
  background: var(--bg-card);
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  padding: 1rem;
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
  transition: border-color 0.15s;
}

.coupon-card:hover {
  border-color: var(--accent);
}

.coupon-code {
  font-family: "Consolas", monospace;
  font-size: 1.1rem;
  font-weight: 700;
  color: var(--accent);
  letter-spacing: 0.05em;
  background: var(--bg-secondary);
  padding: 0.5rem 0.75rem;
  border-radius: var(--radius);
  border: 1px dashed var(--border);
  cursor: pointer;
  user-select: all;
}

.coupon-code:hover {
  border-color: var(--accent);
}

.coupon-rewards {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem;
}

.coupon-reward {
  background: var(--bg-secondary);
  padding: 0.2rem 0.5rem;
  border-radius: 4px;
  font-size: 0.8rem;
  color: var(--text-secondary);
}

.coupon-meta {
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-size: 0.75rem;
  color: var(--text-muted);
}

.coupon-votes {
  display: flex;
  gap: 0.5rem;
}

.vote-btn {
  background: none;
  border: 1px solid var(--border);
  border-radius: 4px;
  padding: 0.15rem 0.4rem;
  color: var(--text-muted);
  cursor: pointer;
  font-size: 0.75rem;
  font-family: inherit;
}

.vote-btn:hover {
  border-color: var(--accent);
  color: var(--accent);
}

/* News items */
.news-item {
  padding: 0.85rem 0;
  border-bottom: 1px solid var(--border);
}

.news-item:last-child {
  border-bottom: none;
}

.news-item a {
  color: var(--text-primary);
  font-weight: 500;
  font-size: 0.9rem;
}

.news-item a:hover {
  color: var(--accent);
}

.news-date {
  font-size: 0.75rem;
  color: var(--text-muted);
  margin-top: 0.2rem;
}

/* Video cards */
.video-card {
  background: var(--bg-card);
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  overflow: hidden;
  transition: transform 0.15s, border-color 0.15s;
}

.video-card:hover {
  border-color: var(--accent);
  transform: translateY(-2px);
}

.video-thumb {
  aspect-ratio: 16/9;
  background: var(--bg-secondary);
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--text-muted);
  font-size: 2rem;
  position: relative;
}

.video-duration {
  position: absolute;
  bottom: 0.5rem;
  right: 0.5rem;
  background: rgba(0, 0, 0, 0.8);
  padding: 0.15rem 0.4rem;
  border-radius: 4px;
  font-size: 0.75rem;
  color: #fff;
}

.video-info {
  padding: 0.85rem;
}

.video-title {
  font-size: 0.875rem;
  font-weight: 500;
  line-height: 1.35;
  margin-bottom: 0.4rem;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.video-meta {
  font-size: 0.75rem;
  color: var(--text-muted);
}

/* Guide cards */
.guide-card {
  background: var(--bg-card);
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  overflow: hidden;
  cursor: pointer;
  transition: border-color 0.15s;
}

.guide-card:hover {
  border-color: var(--accent);
}

.guide-card-img {
  height: 120px;
  background: linear-gradient(135deg, var(--bg-secondary), var(--bg-hover));
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 2.5rem;
}

.guide-card-body {
  padding: 0.85rem;
}

.guide-card-title {
  font-weight: 600;
  font-size: 0.9rem;
  margin-bottom: 0.35rem;
}

.guide-card-stats {
  display: flex;
  gap: 0.75rem;
  font-size: 0.75rem;
  color: var(--text-muted);
}

/* Toast notification */
.toast {
  position: fixed;
  bottom: 1.5rem;
  right: 1.5rem;
  background: var(--bg-card);
  border: 1px solid var(--accent);
  color: var(--text-primary);
  padding: 0.75rem 1.25rem;
  border-radius: var(--radius);
  box-shadow: var(--shadow);
  z-index: 1000;
  animation: slideIn 0.3s ease;
}

@keyframes slideIn {
  from { transform: translateY(1rem); opacity: 0; }
  to { transform: translateY(0); opacity: 1; }
}

/* Event timeline */
.event-item {
  display: flex;
  gap: 1rem;
  padding: 0.75rem 0;
  border-bottom: 1px solid var(--border);
}

.event-date-box {
  min-width: 52px;
  text-align: center;
  background: var(--bg-secondary);
  border-radius: var(--radius);
  padding: 0.35rem;
  border: 1px solid var(--border);
}

.event-date-day {
  font-size: 1.1rem;
  font-weight: 700;
  color: var(--accent);
  line-height: 1;
}

.event-date-month {
  font-size: 0.65rem;
  color: var(--text-muted);
  text-transform: uppercase;
}

.event-details h4 {
  font-size: 0.9rem;
  font-weight: 500;
  margin-bottom: 0.15rem;
}

.event-details p {
  font-size: 0.8rem;
  color: var(--text-muted);
}

/* Home: park news + favorites slideshow */
.home-page .section-title {
  margin-bottom: 0.75rem;
}

.home-news-header {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 1rem;
  flex-wrap: wrap;
  margin-bottom: 0.75rem;
}

.home-news-header .section-title {
  margin-bottom: 0;
}

.home-news-meta {
  font-size: 0.8rem;
  color: var(--text-muted);
}

.home-news-grid {
  align-items: stretch;
}

a.home-news-card {
  text-decoration: none;
  color: inherit;
  display: flex;
  flex-direction: column;
}

a.home-news-card--text .guide-card-body {
  padding-top: 1rem;
}

.home-news-card-img {
  background-size: cover;
  background-position: center;
}

.home-news-card-img.has-image {
  font-size: 0;
}

.home-news-card-meta {
  align-items: center;
  flex-wrap: wrap;
}

.home-news-card-summary {
  margin: 0.55rem 0 0;
  font-size: 0.78rem;
  color: var(--text-muted);
  line-height: 1.4;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.home-cf-news {
  margin-top: 0.25rem;
  min-height: 12rem;
}

.home-cf-news-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  flex-wrap: wrap;
  margin-bottom: 0.85rem;
}

.home-cf-news-head .home-news-meta {
  color: #fff;
}

.home-cf-news-title {
  margin: 0;
  display: inline-flex;
  align-items: baseline;
  padding: 0.4rem 0.65rem 0.45rem;
  border-radius: 12px 4px 12px 4px;
  border: 1px solid color-mix(in srgb, #99cc00 42%, transparent);
  background: color-mix(in srgb, var(--bg-card) 38%, transparent);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  box-shadow:
    0 8px 20px color-mix(in srgb, #000 20%, transparent),
    inset 0 1px 0 color-mix(in srgb, #fff 10%, transparent);
  font-size: 0.95rem;
  font-weight: 800;
  letter-spacing: -0.02em;
  line-height: 1.15;
  color: #99cc00;
}

[data-theme="light"] .home-cf-news-title {
  background: color-mix(in srgb, #fff 52%, transparent);
  border-color: color-mix(in srgb, #99cc00 38%, var(--border));
}

.home-cf-news-stage {
  position: relative;
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  gap: 0.65rem;
  align-items: center;
}

.home-cf-news-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1.15rem;
  align-items: stretch;
  min-width: 0;
  width: 100%;
  will-change: transform, opacity;
}

.home-cf-news-grid.is-leaving-next {
  animation: home-cf-news-leave-next 0.28s cubic-bezier(0.22, 1, 0.36, 1) forwards;
}

.home-cf-news-grid.is-entering-next {
  animation: home-cf-news-enter-next 0.4s cubic-bezier(0.22, 1, 0.36, 1) forwards;
}

.home-cf-news-grid.is-leaving-prev {
  animation: home-cf-news-leave-prev 0.28s cubic-bezier(0.22, 1, 0.36, 1) forwards;
}

.home-cf-news-grid.is-entering-prev {
  animation: home-cf-news-enter-prev 0.4s cubic-bezier(0.22, 1, 0.36, 1) forwards;
}

@keyframes home-cf-news-leave-next {
  from {
    opacity: 1;
    transform: translateX(0);
  }
  to {
    opacity: 0;
    transform: translateX(-1.4rem);
  }
}

@keyframes home-cf-news-enter-next {
  from {
    opacity: 0;
    transform: translateX(1.4rem);
  }
  to {
    opacity: 1;
    transform: translateX(0);
  }
}

@keyframes home-cf-news-leave-prev {
  from {
    opacity: 1;
    transform: translateX(0);
  }
  to {
    opacity: 0;
    transform: translateX(1.4rem);
  }
}

@keyframes home-cf-news-enter-prev {
  from {
    opacity: 0;
    transform: translateX(-1.4rem);
  }
  to {
    opacity: 1;
    transform: translateX(0);
  }
}

@media (prefers-reduced-motion: reduce) {
  .home-cf-news-grid.is-leaving-next,
  .home-cf-news-grid.is-entering-next,
  .home-cf-news-grid.is-leaving-prev,
  .home-cf-news-grid.is-entering-prev {
    animation: none;
  }
}

html[data-reduce-motion="true"] .home-cf-news-grid.is-leaving-next,
html[data-reduce-motion="true"] .home-cf-news-grid.is-entering-next,
html[data-reduce-motion="true"] .home-cf-news-grid.is-leaving-prev,
html[data-reduce-motion="true"] .home-cf-news-grid.is-entering-prev {
  animation: none;
}

.home-cf-news-tile {
  min-width: 0;
  text-decoration: none;
  color: inherit;
}

.home-cf-news-tile .home-fav-spotlight-frame {
  height: 100%;
  transform: none;
}

.home-cf-news-tile:hover .home-fav-spotlight-frame,
.home-cf-news-tile:focus-visible .home-fav-spotlight-frame {
  transform: scale(1.015);
}

.home-cf-news-tile .home-fav-spotlight-media {
  height: min(28vh, 220px);
  min-height: 160px;
}

.home-cf-news-tile .home-fav-spotlight-name {
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

/* Must beat .home-fav-spotlight-nav { position: absolute } or the grid collapses to 0 width. */
.home-cf-news-stage > .home-cf-news-nav {
  position: static;
  inset: auto;
  top: auto;
  left: auto;
  right: auto;
  transform: none;
  opacity: 1;
  width: 2.4rem;
  height: 2.4rem;
  align-self: center;
}

.home-cf-news-stage > .home-cf-news-nav:hover {
  transform: scale(1.06);
}

.home-cf-news-stage > .home-cf-news-nav:disabled {
  opacity: 0.28;
  cursor: default;
  pointer-events: none;
  transform: none;
}

.home-cf-news-nav[hidden] {
  visibility: hidden;
  pointer-events: none;
}

.home-cf-news-empty {
  grid-column: 1 / -1;
}

.home-cf-news-tile .home-fav-spotlight-title {
  font-size: clamp(0.9375rem, 2.05vw, 1.28rem);
}

.home-cf-news-tile .home-fav-spotlight-meta {
  font-size: 0.76rem;
}

/* Mobile home news stage: public/css/mobile/home.css (html[data-shell="mobile"]) */

.home-credits {
  margin: 2.5rem 0 1rem;
  padding-top: 1rem;
  border-top: 1px solid var(--border);
  font-size: 0.78rem;
  color: var(--text-muted);
}

body.has-site-legal-bar .home-credits {
  display: none;
}

body.has-site-legal-bar .page-content.home-page {
  padding-bottom: calc(1.5rem + var(--site-legal-bar-height, 28px));
}

.site-legal-bar {
  position: fixed;
  bottom: 0;
  left: 0;
  right: 0;
  z-index: 1900;
  height: var(--site-legal-bar-height, 28px);
  background: var(--nav-bg);
  backdrop-filter: blur(12px);
  border-top: 1px solid var(--border);
  display: flex;
  align-items: center;
}

.site-legal-bar-inner {
  width: 100%;
  max-width: var(--page-max-width);
  margin: 0 auto;
  padding: 0 1rem;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.45rem;
  font-size: 0.72rem;
  line-height: 1;
  color: var(--text-muted);
}

.site-legal-bar a {
  color: var(--text-secondary);
  text-decoration: none;
  white-space: nowrap;
}

.site-legal-bar a:hover {
  color: var(--accent);
}

.site-legal-bar-btn {
  appearance: none;
  border: 0;
  background: none;
  padding: 0;
  margin: 0;
  font: inherit;
  font-size: inherit;
  line-height: inherit;
  color: var(--text-secondary);
  cursor: pointer;
  white-space: nowrap;
}

.site-legal-bar-btn:hover {
  color: var(--accent);
}

.site-legal-bar-sep {
  color: var(--text-muted);
  opacity: 0.7;
}

/* Cookie consent — analytics opt-in (GA4) */
.cookie-consent {
  position: fixed;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 2200;
  padding: 0.75rem;
  pointer-events: none;
}

.cookie-consent-inner {
  pointer-events: auto;
  max-width: 42rem;
  margin: 0 auto;
  padding: 0.95rem 1rem;
  display: grid;
  gap: 0.85rem;
  background: var(--bg-card, var(--nav-bg));
  border: 1px solid var(--border);
  border-radius: var(--radius-lg, 10px);
  box-shadow: 0 -8px 28px rgba(0, 0, 0, 0.28);
  color: var(--text-primary);
}

body.has-site-legal-bar .cookie-consent {
  bottom: var(--site-legal-bar-height, 28px);
}

.cookie-consent-title {
  margin: 0;
  font-size: 0.95rem;
  font-weight: 650;
  letter-spacing: 0.01em;
}

.cookie-consent-body {
  margin: 0.35rem 0 0;
  font-size: 0.82rem;
  line-height: 1.45;
  color: var(--text-secondary);
}

.cookie-consent-privacy {
  display: inline-block;
  margin-top: 0.45rem;
  font-size: 0.78rem;
  color: var(--accent);
  text-decoration: underline;
  text-underline-offset: 0.15em;
}

.cookie-consent-privacy:hover {
  color: var(--text-primary);
}

.cookie-consent-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  justify-content: flex-end;
}

.cookie-consent-btn {
  appearance: none;
  border: 1px solid var(--border);
  border-radius: var(--radius, 6px);
  padding: 0.45rem 0.85rem;
  font: inherit;
  font-size: 0.82rem;
  font-weight: 600;
  cursor: pointer;
  color: var(--text-primary);
  background: transparent;
}

.cookie-consent-btn--ghost:hover {
  border-color: var(--text-muted);
  background: var(--bg-secondary);
}

.cookie-consent-btn--primary {
  border-color: var(--accent);
  background: var(--accent);
  color: var(--bg-primary, #111);
}

.cookie-consent-btn--primary:hover {
  filter: brightness(1.06);
}

.cookie-consent-btn:focus-visible {
  outline: 2px solid var(--accent);
  outline-offset: 2px;
}

@media (min-width: 721px) {
  .cookie-consent-inner {
    grid-template-columns: 1fr auto;
    align-items: end;
    gap: 1rem 1.25rem;
  }

  .cookie-consent-actions {
    flex-direction: column;
    align-items: stretch;
    min-width: 11.5rem;
  }
}

.impressum-cookie-btn {
  appearance: none;
  border: 1px solid var(--border);
  border-radius: var(--radius, 6px);
  background: transparent;
  color: var(--text-primary);
  font: inherit;
  font-size: 0.85rem;
  font-weight: 600;
  padding: 0.4rem 0.75rem;
  cursor: pointer;
}

.impressum-cookie-btn:hover {
  border-color: var(--accent);
  color: var(--accent);
}

.impressum-panel {
  max-width: 46rem;
}

.impressum-lead {
  margin: 0.35rem 0 0;
  color: var(--text-secondary);
}

.impressum-section {
  margin: 0 0 1.35rem;
}

.impressum-section:last-child {
  margin-bottom: 0;
}

.impressum-section h2 {
  margin: 0 0 0.45rem;
  font-size: 1rem;
}

.impressum-note {
  margin: 0 0 0.65rem;
  font-size: 0.85rem;
  color: var(--text-muted);
}

.impressum-dl {
  display: grid;
  grid-template-columns: minmax(7rem, 10rem) 1fr;
  gap: 0.35rem 1rem;
  margin: 0;
}

.impressum-dl dt {
  margin: 0;
  color: var(--text-muted);
  font-size: 0.88rem;
}

.impressum-dl dd {
  margin: 0;
}

.impressum-placeholder {
  color: var(--accent);
  font-style: italic;
}

@media (max-width: 560px) {
  .impressum-dl {
    grid-template-columns: 1fr;
    gap: 0.15rem 0;
  }

  .impressum-dl dt {
    margin-top: 0.45rem;
  }

  .impressum-dl dt:first-child {
    margin-top: 0;
  }
}

.home-credits a {
  color: var(--text-muted);
  text-decoration: underline;
  text-underline-offset: 2px;
}

.home-credits a:hover {
  color: var(--accent);
}

.home-news-attribution {
  margin-top: 1rem;
  font-size: 0.75rem;
  color: var(--text-muted);
}

.home-news-empty {
  grid-column: 1 / -1;
}

.home-favorites-wrap {
  min-height: 220px;
}

/* Favorites spotlight — cinematic, not a dashboard card */
.home-fav-spotlight {
  position: relative;
  perspective: 960px;
}

.home-fav-spotlight-glow {
  position: absolute;
  inset: 8% -6% -10%;
  background: radial-gradient(
    ellipse 72% 58% at 58% 42%,
    color-mix(in srgb, var(--accent) 28%, transparent),
    transparent 68%
  );
  filter: blur(18px);
  opacity: 0.85;
  pointer-events: none;
  z-index: 0;
}

.home-fav-spotlight-frame {
  position: relative;
  z-index: 1;
  transform: rotateY(-5deg) rotateX(2.5deg);
  transform-origin: center center;
  transition: transform 0.45s cubic-bezier(0.22, 1, 0.36, 1), box-shadow 0.45s ease;
  border-radius: 22px 8px 22px 8px;
  overflow: hidden;
  box-shadow:
    0 28px 56px color-mix(in srgb, #000 50%, transparent),
    0 0 0 1px color-mix(in srgb, var(--accent) 22%, transparent),
    -10px 16px 44px color-mix(in srgb, var(--accent) 16%, transparent);
}

.home-fav-spotlight:hover .home-fav-spotlight-frame,
.home-fav-spotlight:focus-within .home-fav-spotlight-frame {
  transform: rotateY(0deg) rotateX(0deg) scale(1.015);
  box-shadow:
    0 32px 64px color-mix(in srgb, #000 55%, transparent),
    0 0 0 1px color-mix(in srgb, var(--accent) 38%, transparent),
    0 0 48px color-mix(in srgb, var(--accent) 22%, transparent);
}

.home-fav-spotlight-hit {
  display: block;
  position: relative;
  text-decoration: none;
  color: inherit;
}

.home-fav-spotlight-hit--split {
  display: block;
  position: relative;
}

.home-fav-spotlight-hit-main {
  display: block;
  position: relative;
  text-decoration: none;
  color: inherit;
}

.home-fav-spotlight-media {
  position: relative;
  height: min(42vh, 360px);
  min-height: 240px;
  background: linear-gradient(135deg, var(--bg-secondary), var(--bg-hover));
  background-size: cover;
  background-position: center;
  transition: opacity 0.35s ease, filter 0.35s ease;
  overflow: hidden;
}

.home-hero-spotlights .home-fav-spotlight-media {
  height: min(55vh, 468px);
  min-height: 312px;
}

.home-hero-spotlights .home-fav-spotlight--cta .home-fav-spotlight-frame--empty {
  min-height: 338px;
}

.home-fav-spotlight-media.has-image {
  background-size: cover;
  background-position: center;
}

.home-fav-spotlight-media.is-ken-burns.has-image {
  animation: home-fav-ken-burns 22s ease-in-out infinite alternate;
}

@keyframes home-fav-ken-burns {
  from {
    background-size: 100%;
    background-position: center center;
  }
  to {
    background-size: 112%;
    background-position: 54% 42%;
  }
}

.home-fav-spotlight-media.has-placeholder {
  background:
    radial-gradient(ellipse 78% 70% at 50% 58%, color-mix(in srgb, var(--accent) 22%, transparent), transparent 64%),
    linear-gradient(160deg, #171c25 0%, #0c1016 58%, #121820 100%);
}

.home-fav-spotlight-media.is-fading {
  opacity: 0.2;
  filter: blur(2px);
  transition: opacity 0.18s ease, filter 0.18s ease;
}

.home-fav-spotlight-overlay {
  position: absolute;
  inset: 0;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  gap: 0.35rem;
  padding: 1.35rem 1.45rem 1.5rem;
  background: linear-gradient(
    to top,
    rgba(8, 10, 14, 0.94) 0%,
    rgba(8, 10, 14, 0.55) 38%,
    rgba(8, 10, 14, 0.08) 68%,
    transparent 100%
  );
  pointer-events: none;
}

.home-fav-spotlight-kicker {
  font-size: 0.78rem;
  font-weight: 800;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--accent);
  text-shadow: 0 0 24px color-mix(in srgb, var(--accent) 55%, transparent);
}

.home-fav-spotlight-title {
  display: inline-flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 0.45rem;
  max-width: 100%;
  font-size: clamp(1.4rem, 3.2vw, 2rem);
  font-weight: 800;
  line-height: 1.05;
  letter-spacing: -0.03em;
  color: #fff;
  text-shadow: 0 2px 16px rgba(0, 0, 0, 0.55);
}

.home-fav-spotlight-name {
  min-width: 0;
  color: #fff;
  font-size: inherit;
  font-weight: inherit;
  line-height: inherit;
  letter-spacing: inherit;
}

.home-fav-spotlight-rating {
  display: inline-flex;
  align-items: center;
  gap: 0.24rem;
  font-size: clamp(1.05rem, 2.4vw, 1.35rem);
  font-weight: 750;
  font-variant-numeric: tabular-nums;
  color: var(--accent);
  text-shadow: 0 1px 10px rgba(0, 0, 0, 0.55);
  white-space: nowrap;
}

.home-fav-spotlight-rating-star {
  color: var(--accent);
  font-size: 1em;
  line-height: 1;
}

.home-fav-spotlight-caption {
  display: flex;
  flex-direction: column;
  gap: 0.2rem;
  min-width: 0;
}

.home-fav-spotlight-caption .home-fav-spotlight-title {
  display: inline-flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 0.45rem;
  max-width: 100%;
  font-size: clamp(1.4rem, 3.2vw, 2rem);
  font-weight: 800;
  line-height: 1.05;
  letter-spacing: -0.03em;
  color: #fff;
  text-shadow: 0 2px 16px rgba(0, 0, 0, 0.55);
}

.home-fav-spotlight-caption .home-fav-spotlight-rating {
  font-size: clamp(1.05rem, 2.4vw, 1.35rem);
  font-weight: 750;
  color: var(--accent);
}

.home-fav-spotlight-caption .home-fav-spotlight-rating-star {
  color: var(--accent);
  font-size: 1.15em;
}

.home-fav-spotlight-caption > span,
.home-fav-spotlight-meta {
  font-size: 0.82rem;
  font-weight: 500;
  color: color-mix(in srgb, #fff 72%, transparent);
  text-shadow: 0 1px 8px rgba(0, 0, 0, 0.45);
}

.home-fav-spotlight-nav {
  position: absolute;
  top: 50%;
  z-index: 2;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  transform: translateY(-50%);
  width: 2.1rem;
  height: 2.1rem;
  margin: 0;
  border-radius: 50%;
  border: 1px solid color-mix(in srgb, #fff 22%, transparent);
  background: color-mix(in srgb, #0f1117 62%, transparent);
  backdrop-filter: blur(10px);
  color: #fff;
  padding: 0;
  cursor: pointer;
  opacity: 0;
  transition: opacity 0.2s ease, background 0.2s ease, transform 0.2s ease;
}

.home-fav-spotlight-nav svg {
  width: 1.15rem;
  height: 1.15rem;
  display: block;
}

.home-fav-spotlight-nav--prev {
  left: 0.65rem;
}

.home-fav-spotlight-nav--next {
  right: 0.65rem;
}

.home-fav-spotlight:hover .home-fav-spotlight-nav,
.home-fav-spotlight:focus-within .home-fav-spotlight-nav {
  opacity: 1;
}

.home-fav-spotlight-nav:hover {
  background: color-mix(in srgb, var(--accent) 75%, #0f1117);
  transform: translateY(-50%) scale(1.06);
}

.home-fav-spotlight-foot {
  position: relative;
  z-index: 1;
  display: flex;
  align-items: center;
  gap: 0.75rem;
  margin-top: 0.65rem;
  padding: 0 0.15rem;
}

.home-fav-spotlight-progress {
  display: flex;
  flex: 1;
  gap: 0.3rem;
}

.home-fav-spotlight-progress-seg {
  flex: 1;
  height: 3px;
  padding: 0;
  border: none;
  border-radius: 999px;
  background: color-mix(in srgb, var(--border) 85%, transparent);
  cursor: pointer;
  transition: background 0.25s ease, box-shadow 0.25s ease, transform 0.25s ease;
}

.home-fav-spotlight-progress-seg.is-active {
  background: var(--accent);
  box-shadow: 0 0 10px color-mix(in srgb, var(--accent) 65%, transparent);
  transform: scaleY(1.35);
}

.home-fav-spotlight-counter {
  flex-shrink: 0;
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  font-variant-numeric: tabular-nums;
  color: var(--text-muted);
}

.home-fav-spotlight--cta .home-fav-spotlight-frame--empty {
  min-height: 260px;
  display: grid;
  place-items: center;
  background:
    radial-gradient(ellipse 70% 60% at 50% 40%, color-mix(in srgb, var(--accent) 14%, transparent), transparent 70%),
    linear-gradient(145deg, color-mix(in srgb, var(--bg-card) 90%, #000), var(--bg-secondary));
  border: 1px dashed color-mix(in srgb, var(--accent) 45%, var(--border));
  box-shadow: inset 0 0 40px color-mix(in srgb, var(--accent) 8%, transparent);
  transform: none;
}

.home-fav-spotlight-empty-inner {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.85rem;
  max-width: 18rem;
  padding: 1.5rem;
  text-align: center;
}

.home-fav-spotlight-empty-copy {
  margin: 0;
  font-size: 0.88rem;
  line-height: 1.45;
  color: var(--text-secondary);
}

/* Home hero */
.home-page {
  padding-top: 1.75rem;
}

.home-hero {
  margin-bottom: 0;
  display: flex;
  flex-direction: column;
  gap: 0;
}

.home-hero[hidden],
.home-v2-hero[hidden] {
  display: none !important;
}

.home-hero-copy {
  max-width: none;
}

.home-fav-band {
  margin: 6.5rem 0 1.25rem;
}

.home-fav-band .home-v2-section-head {
  display: none;
}

.home-hero-spotlights {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1.15rem;
  align-items: stretch;
  margin-top: 0;
}

.home-hero-greeting {
  margin: 0;
  font-size: clamp(1.65rem, 4.2vw, 2.65rem);
  font-weight: 650;
  line-height: 1.15;
  letter-spacing: -0.02em;
  color: var(--text-primary);
}

.home-hero-brand {
  margin: 0.2rem 0 0;
  font-family: var(--font-brand);
  font-size: clamp(3.2rem, 10vw, 6.25rem);
  font-weight: 400;
  line-height: 0.92;
  letter-spacing: -0.02em;
  color: var(--text-primary);
}

.home-hero-tagline {
  margin: 0.65rem 0 0;
  max-width: 42rem;
  font-size: clamp(1rem, 2vw, 1.25rem);
  line-height: 1.45;
  color: #fff;
  opacity: 1;
}

.home-hero-stats {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  margin: 0.9rem 0 0;
  padding: 0;
  list-style: none;
  max-width: 36rem;
}

.home-hero-stat {
  min-width: 0;
}

.home-hero-stat-card {
  display: block;
  text-decoration: none;
  color: inherit;
  height: 100%;
}

.home-hero-stat-frame {
  display: flex;
  flex-direction: row;
  align-items: baseline;
  justify-content: flex-start;
  gap: 0.35rem;
  min-width: 0;
  padding: 0.4rem 0.65rem 0.45rem;
  border-radius: 12px 4px 12px 4px;
  border: 1px solid color-mix(in srgb, var(--accent) 28%, transparent);
  background: color-mix(in srgb, var(--bg-card) 38%, transparent);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  box-shadow:
    0 8px 20px color-mix(in srgb, #000 20%, transparent),
    inset 0 1px 0 color-mix(in srgb, #fff 10%, transparent);
  transition: transform 0.25s ease, border-color 0.25s ease, background 0.25s ease, box-shadow 0.25s ease;
}

.home-hero-stat-card:hover .home-hero-stat-frame,
.home-hero-stat-card:focus-visible .home-hero-stat-frame {
  transform: translateY(-1px);
  border-color: color-mix(in srgb, var(--accent) 48%, transparent);
  background: color-mix(in srgb, var(--bg-card) 52%, transparent);
  box-shadow:
    0 10px 24px color-mix(in srgb, #000 26%, transparent),
    0 0 0 1px color-mix(in srgb, var(--accent) 16%, transparent);
}

.home-hero-stat-value {
  font-size: 1.15rem;
  font-weight: 800;
  letter-spacing: -0.03em;
  line-height: 1.05;
  color: #fff;
  text-shadow: 0 1px 8px rgba(0, 0, 0, 0.35);
}

.home-hero-stat-label {
  font-size: 0.62rem;
  font-weight: 650;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: color-mix(in srgb, #fff 72%, var(--accent));
  line-height: 1.2;
}

[data-theme="light"] .home-hero-stat-frame {
  background: color-mix(in srgb, #fff 52%, transparent);
  border-color: color-mix(in srgb, var(--accent) 28%, var(--border));
}

[data-theme="light"] .home-hero-stat-value {
  color: var(--text-primary);
  text-shadow: none;
}

[data-theme="light"] .home-hero-stat-label {
  color: var(--text-muted);
}

[data-theme="light"] .home-hero-stat-card:hover .home-hero-stat-frame,
[data-theme="light"] .home-hero-stat-card:focus-visible .home-hero-stat-frame {
  background: color-mix(in srgb, #fff 70%, transparent);
}

@media (max-width: 640px) {
  .home-hero-stats {
    max-width: none;
  }

  .home-hero-stat-frame {
    min-width: 0;
    padding: 0.4rem 0.6rem 0.45rem;
  }
}

.home-hero-reminder {
  margin: 0.75rem 0 0;
  font-size: 0.82rem;
  color: #fff;
  opacity: 1;
}

[data-theme="light"] .home-hero-tagline,
[data-theme="light"] .home-hero-reminder {
  color: var(--text-primary);
}

.home-hero-copy:has(#home-last-ride:not([hidden])) {
  margin-bottom: 0;
}

.home-hero-spotlight {
  min-height: 0;
  align-self: center;
}

.home-reveal {
  opacity: 0;
  transform: translateY(1.15rem);
  transition:
    opacity 0.95s cubic-bezier(0.22, 1, 0.36, 1),
    transform 0.95s cubic-bezier(0.22, 1, 0.36, 1);
  transition-delay: calc(var(--home-reveal-delay, 0) * 1ms);
  will-change: opacity, transform;
}

.home-reveal.is-visible {
  opacity: 1;
  transform: none;
}

.home-today-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 0.65rem;
}

.home-today-chip {
  display: flex;
  flex-direction: column;
  gap: 0.15rem;
  min-width: min(100%, 14rem);
  flex: 1 1 12rem;
  padding: 0.75rem 0.9rem;
  border-radius: var(--radius-lg);
  border: 1px solid var(--border);
  background: var(--bg-card);
  text-decoration: none;
  color: inherit;
  transition: transform 0.18s ease, border-color 0.18s ease, box-shadow 0.18s ease;
}

.home-today-chip:hover {
  transform: translateY(-2px);
  border-color: color-mix(in srgb, var(--accent) 45%, var(--border));
  box-shadow: 0 8px 22px color-mix(in srgb, var(--text-primary) 10%, transparent);
}

.home-today-chip-label {
  font-size: 0.65rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--accent);
}

.home-today-chip-value {
  font-size: 0.88rem;
  font-weight: 650;
  color: var(--text-primary);
  line-height: 1.35;
}

.home-trip-countdown {
  margin: 0;
  font-size: 1.05rem;
  font-weight: 750;
  color: var(--accent);
}

.home-trip-countdown.is-soon {
  color: var(--success);
}

.home-completion-bar {
  height: 0.45rem;
  border-radius: 999px;
  background: color-mix(in srgb, var(--bg-secondary) 88%, transparent);
  overflow: hidden;
}

.home-completion-fill {
  height: 100%;
  border-radius: inherit;
  background: linear-gradient(90deg, var(--accent), color-mix(in srgb, var(--accent) 65%, #fff));
  transition: width 0.8s ease;
}

.home-completion-label {
  margin: 0;
  font-size: 0.78rem;
  color: var(--text-muted);
}

.home-bucket-row {
  display: flex;
  flex-direction: column;
  gap: 0.1rem;
  text-decoration: none;
  color: inherit;
  padding: 0.35rem 0;
}

.home-bucket-row:hover .home-bucket-name {
  color: var(--accent);
}

.home-bucket-name {
  font-size: 0.92rem;
  font-weight: 700;
  color: var(--text-primary);
}

.home-bucket-park {
  font-size: 0.72rem;
  color: var(--text-muted);
}

.home-minimap-head {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  justify-content: space-between;
  gap: 0.5rem 1rem;
  margin-bottom: 0.65rem;
}

.home-minimap-legend {
  display: flex;
  flex-wrap: wrap;
  gap: 0.65rem;
  margin: 0;
  font-size: 0.72rem;
  color: var(--text-muted);
}

.home-legend-item {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
}

.home-legend-item::before {
  content: "";
  width: 0.55rem;
  height: 0.55rem;
  border-radius: 999px;
  border: 1px solid #0f1117;
}

.home-legend-item--visited::before {
  background: #d4a853;
}

.home-legend-item--open::before {
  background: #5c6578;
}

.home-potd-media.is-ken-burns.has-image {
  animation: home-ken-burns 20s ease-in-out infinite alternate;
}

@keyframes home-ken-burns {
  from {
    background-size: 100%;
    background-position: center center;
  }
  to {
    background-size: 108%;
    background-position: 52% 46%;
  }
}

.wait-badge--live.is-pulse {
  animation: home-wait-pulse 1.6s ease-in-out infinite;
}

@keyframes home-wait-pulse {
  0%,
  100% {
    box-shadow: 0 0 0 0 color-mix(in srgb, var(--accent) 0%, transparent);
  }
  50% {
    box-shadow: 0 0 0 4px color-mix(in srgb, var(--accent) 35%, transparent);
  }
}

.home-tools-strip a {
  transition: transform 0.16s ease, border-color 0.16s ease, color 0.16s ease, box-shadow 0.16s ease;
}

.home-tools-strip a:hover {
  transform: translateY(-2px);
  box-shadow: 0 6px 16px color-mix(in srgb, var(--text-primary) 8%, transparent);
}

a.home-news-card {
  transition: transform 0.18s ease, border-color 0.18s ease, box-shadow 0.18s ease;
}

a.home-news-card:hover {
  transform: translateY(-2px);
  box-shadow: 0 10px 24px color-mix(in srgb, var(--text-primary) 10%, transparent);
}

@media (prefers-reduced-motion: reduce) {
  .home-reveal,
  html[data-reduce-motion="true"] body[data-page="home"] .home-reveal,
  html[data-reduce-motion="true"] body[data-page="home"] .home-reveal:not(.is-visible) {
    opacity: 1;
    transform: none;
    transition: none;
  }

  .home-potd-media.is-ken-burns.has-image {
    animation: none;
  }

  .home-fav-spotlight-frame {
    transform: none;
  }

  .home-fav-spotlight-media.is-ken-burns.has-image {
    animation: none;
  }

  .home-fav-spotlight-nav {
    opacity: 1;
  }

  .wait-badge--live.is-pulse {
    animation: none;
  }

  .home-tools-strip a:hover,
  a.home-news-card:hover,
  .home-today-chip:hover {
    transform: none;
  }
}

html[data-reduce-motion="true"] .home-reveal {
  opacity: 1;
  transform: none;
  transition: none;
}

/* Soft scroll fades on the home page: keep them despite the site reduce-motion default; OS reduce still wins. */
html[data-reduce-motion="true"] body[data-page="home"] .home-reveal:not(.is-visible) {
  opacity: 0;
  transform: translateY(1.15rem);
}

html[data-reduce-motion="true"] body[data-page="home"] .home-reveal {
  transition:
    opacity 0.95s cubic-bezier(0.22, 1, 0.36, 1),
    transform 0.95s cubic-bezier(0.22, 1, 0.36, 1);
  transition-delay: calc(var(--home-reveal-delay, 0) * 1ms);
}

html[data-reduce-motion="true"] body[data-page="home"] .home-reveal.is-visible {
  opacity: 1;
  transform: none;
}

html[data-reduce-motion="true"] .home-potd-media.is-ken-burns.has-image,
html[data-reduce-motion="true"] .home-fav-spotlight-media.is-ken-burns.has-image {
  animation: none;
}

html[data-reduce-motion="true"] .home-fav-spotlight-frame {
  transform: none;
}

html[data-reduce-motion="true"] .home-hero-stat-card:hover .home-hero-stat-frame,
html[data-reduce-motion="true"] .home-hero-stat-card:focus-visible .home-hero-stat-frame {
  transform: none;
}

html[data-reduce-motion="true"] .home-fav-spotlight-nav {
  opacity: 1;
}

html[data-reduce-motion="true"] .wait-badge--live.is-pulse {
  animation: none;
}

html[data-reduce-motion="true"] .home-tools-strip a:hover,
html[data-reduce-motion="true"] a.home-news-card:hover,
html[data-reduce-motion="true"] .home-today-chip:hover {
  transform: none;
}

/* Park / Coaster of the day */
.home-potd-split {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0.85rem;
  align-items: stretch;
}

@media (max-width: 800px) {
  .home-potd-split {
    grid-template-columns: 1fr;
  }
}

.home-potd-col {
  overflow: hidden;
  padding: 0;
  display: flex;
  flex-direction: column;
  min-width: 0;
}

.home-potd-col-label {
  padding: 0.7rem 1rem;
  font-size: 0.78rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--accent);
  background: var(--bg-secondary);
  border-bottom: 1px solid var(--border);
}

.home-potd-media {
  position: relative;
  min-height: 320px;
  height: 360px;
  background: linear-gradient(135deg, var(--bg-secondary), var(--bg-hover));
  background-size: cover;
  background-position: center;
  flex-shrink: 0;
  overflow: hidden;
}

.home-potd-media.has-placeholder {
  background:
    radial-gradient(ellipse 78% 70% at 50% 58%, color-mix(in srgb, var(--accent) 18%, transparent), transparent 64%),
    linear-gradient(160deg, #171c25 0%, #0c1016 58%, #121820 100%);
}

.home-potd-body {
  padding: 1rem 1.1rem 1.15rem;
  display: flex;
  flex-direction: column;
  gap: 0.45rem;
  flex: 1;
}

.home-potd-body .badge {
  align-self: flex-start;
  width: fit-content;
  max-width: 100%;
}

.home-potd-title {
  margin: 0;
  font-size: 1.2rem;
  line-height: 1.25;
}

.home-potd-meta,
.home-potd-summary {
  margin: 0;
  color: var(--text-muted);
  font-size: 0.85rem;
  line-height: 1.45;
}

.home-potd-summary {
  color: var(--text-secondary);
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.home-potd-label {
  display: block;
  font-size: 0.7rem;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--text-muted);
  margin-bottom: 0.35rem;
}

.home-potd-highlights ul,
.home-potd-stats {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem;
}

.home-potd-highlights li,
.home-potd-stats li {
  background: var(--bg-secondary);
  border: 1px solid var(--border);
  border-radius: 999px;
  padding: 0.2rem 0.55rem;
  font-size: 0.75rem;
  color: var(--text-secondary);
}

.home-potd-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  margin-top: auto;
  padding-top: 0.65rem;
}

/* Feature showcase */
.home-feature-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0.85rem;
}

@media (max-width: 1100px) {
  .home-feature-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 560px) {
  .home-feature-grid {
    grid-template-columns: 1fr;
  }
}

a.home-feature-card {
  text-decoration: none;
  color: inherit;
  display: flex;
  flex-direction: column;
}

.home-feature-icon {
  height: 88px;
  font-size: 0.85rem;
  font-weight: 800;
  letter-spacing: 0.12em;
  color: var(--accent);
}

.home-feature-media {
  height: 196px;
  background-color: var(--bg-secondary);
  background-size: cover;
  background-position: center;
}

.home-feature-icon span {
  opacity: 0.9;
}

.home-feature-desc {
  margin: 0.35rem 0 0;
  font-size: 0.78rem;
  color: var(--text-muted);
  line-height: 1.4;
}

/* Mini map */
.home-minimap-card {
  overflow: hidden;
  padding: 0;
  position: relative;
}

.home-minimap-card .leaflet-control-attribution {
  font-size: 0.65rem;
  background: color-mix(in srgb, var(--bg-card) 88%, transparent) !important;
}

/* GoogleMutant: keep Google logo/attribution visible; Leaflet shows © Google · Terms. */
.home-minimap-card.park-basemap-google .leaflet-control-attribution,
.leaflet-container.park-basemap-google .leaflet-control-attribution {
  position: relative;
  z-index: 650;
}

.home-minimap-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: 0.85rem 1.1rem;
  border-top: 1px solid var(--border);
}

.home-minimap-footer p {
  margin: 0;
  font-size: 0.82rem;
  color: var(--text-muted);
}

.home-minimap-fallback {
  padding: 1.25rem;
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
  align-items: flex-start;
}

.home-minimap-fallback[hidden] {
  display: none !important;
}

/* Home visual dashboard */
.home-dashboard--stats {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1.15rem;
  align-items: stretch;
}

.home-dashboard--stats > .home-dashboard-cell,
.home-dashboard--tips > .home-dashboard-cell,
.home-dashboard-tips-grid > .home-dashboard-cell {
  min-width: 0;
  display: flex;
  flex-direction: column;
}

.home-dashboard--stats .home-dash-card {
  flex: 1 1 auto;
  width: 100%;
  height: 100%;
}

/* Home Bauprojekte — 3×2 build board */
.home-uc-demo {
  width: 100%;
  margin: 0.35rem 0 1.65rem;
}

.home-uc-shell {
  --home-uc-inset: clamp(1.2rem, 2.6vw, 1.65rem);
  position: relative;
  display: flex;
  flex-direction: column;
  gap: 1rem;
  padding: var(--home-uc-inset);
  border-radius: calc(var(--radius-lg) + 2px);
  border: 1px solid color-mix(in srgb, var(--accent) 28%, var(--border));
  background:
    radial-gradient(ellipse 70% 90% at 0% 0%, color-mix(in srgb, var(--accent) 20%, transparent), transparent 72%),
    radial-gradient(ellipse 48% 60% at 100% 100%, color-mix(in srgb, var(--info) 12%, transparent), transparent 70%),
    linear-gradient(165deg, color-mix(in srgb, var(--bg-card) 92%, #000) 0%, color-mix(in srgb, var(--bg-secondary) 88%, var(--bg-card)) 100%);
  overflow: hidden;
  isolation: isolate;
}

.home-uc-shell::after {
  content: "";
  position: absolute;
  inset: -35% -15% -25% -20%;
  z-index: 0;
  pointer-events: none;
  background: radial-gradient(
    ellipse 55% 50% at 18% 12%,
    color-mix(in srgb, var(--accent) 18%, transparent),
    transparent 68%
  );
  animation: home-uc-glow 9s ease-in-out infinite alternate;
}

@keyframes home-uc-glow {
  from { transform: translate3d(0, 0, 0) scale(1); opacity: 0.7; }
  to { transform: translate3d(8%, 6%, 0) scale(1.12); opacity: 1; }
}

.home-uc-all-link {
  position: absolute;
  top: var(--home-uc-inset);
  right: var(--home-uc-inset);
  z-index: 2;
  display: inline-flex;
  align-items: baseline;
  gap: 0.35rem;
  max-width: min(14rem, calc(100% - 2 * var(--home-uc-inset)));
  padding: 0.4rem 0.65rem 0.45rem;
  border-radius: 12px 4px 12px 4px;
  border: 1px solid color-mix(in srgb, var(--accent) 28%, transparent);
  background: color-mix(in srgb, var(--bg-card) 38%, transparent);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  box-shadow:
    0 8px 20px color-mix(in srgb, #000 20%, transparent),
    inset 0 1px 0 color-mix(in srgb, #fff 10%, transparent);
  font-size: 0.72rem;
  font-weight: 650;
  letter-spacing: 0.04em;
  line-height: 1.2;
  color: color-mix(in srgb, #fff 78%, var(--accent));
  text-decoration: none;
  text-align: right;
  transition: transform 0.25s ease, border-color 0.25s ease, background 0.25s ease, box-shadow 0.25s ease, color 0.2s ease;
}

.home-uc-all-link:hover,
.home-uc-all-link:focus-visible {
  transform: translateY(-1px);
  border-color: color-mix(in srgb, var(--accent) 48%, transparent);
  background: color-mix(in srgb, var(--bg-card) 52%, transparent);
  color: #fff;
  box-shadow:
    0 10px 24px color-mix(in srgb, #000 26%, transparent),
    0 0 0 1px color-mix(in srgb, var(--accent) 16%, transparent);
}

[data-theme="light"] .home-uc-all-link {
  background: color-mix(in srgb, #fff 52%, transparent);
  border-color: color-mix(in srgb, var(--accent) 28%, var(--border));
  color: var(--text-muted);
}

[data-theme="light"] .home-uc-all-link:hover,
[data-theme="light"] .home-uc-all-link:focus-visible {
  background: color-mix(in srgb, #fff 70%, transparent);
  color: var(--accent);
}

.home-uc-head {
  position: relative;
  z-index: 1;
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  justify-content: space-between;
  gap: 0.85rem 1.5rem;
  padding-right: 0;
}

.home-uc-head-copy {
  flex: 1 1 16rem;
  min-width: 0;
  padding-right: 8.5rem;
}

.home-uc-pager {
  display: inline-flex;
  align-items: center;
  justify-content: flex-end;
  gap: 0.35rem;
  flex: 0 0 auto;
  margin-left: auto;
}

.home-uc-kicker {
  margin: 0;
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  font-size: 0.72rem;
  font-weight: 750;
  letter-spacing: 0.16em;
  line-height: 1;
  text-transform: uppercase;
  color: var(--accent);
}

.home-uc-title {
  margin: 0.3rem 0 0;
  font-size: clamp(1.55rem, 3.4vw, 2.15rem);
  font-weight: 800;
  letter-spacing: -0.04em;
  line-height: 1.05;
  color: var(--text-primary);
  text-wrap: balance;
}

.home-uc-sub {
  margin: 0.4rem 0 0;
  max-width: 38rem;
  font-size: 0.92rem;
  line-height: 1.4;
  color: var(--text-secondary);
}

.home-uc-pager-btn {
  width: 2.15rem;
  height: 2.15rem;
  border-radius: 999px;
  border: 1px solid color-mix(in srgb, var(--accent) 40%, var(--border));
  background: color-mix(in srgb, var(--accent) 12%, var(--bg-card));
  color: var(--text-primary);
  font-size: 1.2rem;
  line-height: 1;
  cursor: pointer;
  transition: border-color 0.15s ease, background 0.15s ease, color 0.15s ease;
}

.home-uc-pager-btn:hover,
.home-uc-pager-btn:focus-visible {
  border-color: var(--accent);
  color: var(--accent);
  background: color-mix(in srgb, var(--accent) 18%, var(--bg-card));
}

.home-uc-pager-label {
  min-width: 2.4rem;
  text-align: center;
  font-size: 0.78rem;
  font-weight: 700;
  font-variant-numeric: tabular-nums;
  color: var(--text-secondary);
}

.home-uc-grid {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.75rem;
}

.home-uc-card {
  --home-uc-tone: var(--accent);
  position: relative;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  gap: 1rem;
  min-height: 10.5rem;
  padding: 1rem 1rem 0.95rem 1.05rem;
  border-radius: var(--radius-lg);
  border: 1px solid color-mix(in srgb, var(--home-uc-tone) 22%, var(--border));
  background:
    linear-gradient(145deg, color-mix(in srgb, var(--home-uc-tone) 10%, transparent) 0%, transparent 42%),
    color-mix(in srgb, var(--bg-card) 78%, transparent);
  text-decoration: none;
  color: inherit;
  overflow: hidden;
  transform: translateY(0);
  transition:
    border-color 0.2s ease,
    background 0.2s ease,
    transform 0.22s cubic-bezier(0.22, 1, 0.36, 1),
    box-shadow 0.22s ease;
  animation: home-uc-in 0.55s cubic-bezier(0.22, 1, 0.36, 1) both;
  animation-delay: calc(var(--home-uc-i, 0) * 45ms);
}

.home-uc-demo.home-reveal:not(.is-visible) .home-uc-card {
  animation: none;
}

.home-uc-demo.home-reveal.is-visible .home-uc-card {
  animation: home-uc-in 0.7s cubic-bezier(0.22, 1, 0.36, 1) both;
}

@keyframes home-uc-in {
  from {
    opacity: 0;
    transform: translateY(12px) scale(0.98);
  }
  to {
    opacity: 1;
    transform: translateY(0) scale(1);
  }
}

.home-uc-card-accent {
  position: absolute;
  left: 0;
  top: 0;
  bottom: 0;
  width: 3px;
  background: linear-gradient(180deg, var(--home-uc-tone), color-mix(in srgb, var(--home-uc-tone) 20%, transparent));
  transform: scaleY(0.45);
  transform-origin: top;
  transition: transform 0.28s cubic-bezier(0.22, 1, 0.36, 1);
}

.home-uc-card-year {
  position: absolute;
  right: 0.15rem;
  top: 0.2rem;
  font-size: clamp(2rem, 3.6vw, 2.55rem);
  font-weight: 800;
  letter-spacing: -0.06em;
  line-height: 1;
  color: color-mix(in srgb, var(--home-uc-tone) 28%, transparent);
  pointer-events: none;
  user-select: none;
  transition: color 0.2s ease, transform 0.28s ease;
}

.home-uc-card-flag {
  position: absolute;
  right: 0;
  bottom: 0;
  z-index: 0;
  width: 4.4rem;
  height: 2.85rem;
  opacity: 0.58;
  pointer-events: none;
  user-select: none;
  mask-image: radial-gradient(135% 135% at 100% 100%, #000 42%, transparent 88%);
  -webkit-mask-image: radial-gradient(135% 135% at 100% 100%, #000 42%, transparent 88%);
  filter: saturate(1.05);
  transition: opacity 0.22s ease, transform 0.28s ease;
}

.home-uc-card-flag img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  border-radius: 0 0 var(--radius-lg) 0;
}

.home-uc-card:hover,
.home-uc-card:focus-visible {
  border-color: color-mix(in srgb, var(--home-uc-tone) 55%, var(--border));
  background:
    linear-gradient(145deg, color-mix(in srgb, var(--home-uc-tone) 18%, transparent) 0%, transparent 50%),
    color-mix(in srgb, var(--bg-hover) 88%, var(--bg-card));
  transform: translateY(-3px);
  box-shadow: 0 14px 28px rgba(0, 0, 0, 0.28);
}

.home-uc-card:hover .home-uc-card-accent,
.home-uc-card:focus-visible .home-uc-card-accent {
  transform: scaleY(1);
}

.home-uc-card:hover .home-uc-card-year,
.home-uc-card:focus-visible .home-uc-card-year {
  color: color-mix(in srgb, var(--home-uc-tone) 42%, transparent);
  transform: translateX(-2px);
}

.home-uc-card:hover .home-uc-card-flag,
.home-uc-card:focus-visible .home-uc-card-flag {
  opacity: 0.72;
  transform: translate(-1px, -1px) scale(1.03);
}

.home-uc-card:focus-visible {
  outline: 2px solid var(--accent);
  outline-offset: 2px;
}

.home-uc-card-top {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
  max-width: calc(100% - 4.75rem);
  padding-right: 0.15rem;
}

.home-uc-card-park {
  font-size: calc(clamp(1.24rem, 2vw, 1.41rem) + 1pt);
  font-weight: 800;
  letter-spacing: -0.03em;
  line-height: 1.15;
  color: var(--text-primary);
}

.home-uc-card-ride {
  display: inline-block;
  width: fit-content;
  max-width: 100%;
  margin-top: 0.28rem;
  font-size: 1.02rem;
  font-weight: 700;
  letter-spacing: -0.02em;
  line-height: 1.25;
  color: var(--text-primary);
}

.home-uc-card-ride::after {
  content: "";
  display: block;
  width: min(100%, 11rem);
  height: 3px;
  margin-top: 0.28rem;
  border-radius: 999px;
  background: linear-gradient(90deg, var(--accent), transparent);
  box-shadow: 0 0 12px color-mix(in srgb, var(--accent) 32%, transparent);
}

.home-uc-card-build {
  margin-top: 0.2rem;
  font-size: 0.84rem;
  font-weight: 550;
  line-height: 1.3;
  color: var(--text-secondary);
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.home-uc-card-foot {
  position: relative;
  z-index: 1;
  display: grid;
  gap: 0.55rem;
  padding-top: 0.7rem;
  padding-right: 2.6rem;
  border-top: 1px dashed color-mix(in srgb, var(--home-uc-tone) 35%, var(--border));
}

.home-uc-card-phase {
  display: grid;
  gap: 0.12rem;
  min-width: 0;
}

.home-uc-card-label {
  font-size: 0.765rem;
  font-weight: 750;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: color-mix(in srgb, var(--home-uc-tone) 70%, var(--text-secondary));
}

.home-uc-card-phase-text {
  font-size: 0.9rem;
  font-weight: 650;
  line-height: 1.25;
  color: var(--text-primary);
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.home-uc-empty {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem 1rem;
  padding: 0.85rem 1rem;
  border-radius: var(--radius);
  border: 1px dashed color-mix(in srgb, var(--border) 90%, var(--accent));
  background: color-mix(in srgb, var(--bg-card) 70%, transparent);
}

.home-uc-empty p {
  margin: 0;
  font-size: 0.9rem;
  color: var(--text-secondary);
}

[data-theme="light"] .home-uc-shell {
  background:
    radial-gradient(ellipse 70% 90% at 0% 0%, color-mix(in srgb, var(--accent) 14%, transparent), transparent 72%),
    radial-gradient(ellipse 48% 60% at 100% 100%, color-mix(in srgb, var(--info) 8%, transparent), transparent 70%),
    linear-gradient(165deg, #fff 0%, color-mix(in srgb, var(--bg-primary) 55%, #fff) 100%);
}

[data-theme="light"] .home-uc-card:hover,
[data-theme="light"] .home-uc-card:focus-visible {
  box-shadow: 0 12px 26px rgba(42, 52, 68, 0.12);
}

html[data-reduce-motion="true"] .home-uc-shell::after,
html[data-reduce-motion="true"] .home-uc-card {
  animation: none;
}

html[data-reduce-motion="true"] .home-uc-card:hover,
html[data-reduce-motion="true"] .home-uc-card:focus-visible {
  transform: none;
}

@media (max-width: 900px) {
  .home-uc-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .home-uc-head {
    align-items: flex-start;
  }

  .home-uc-head-copy {
    padding-right: 0;
  }

  .home-uc-pager {
    width: 100%;
    justify-content: flex-end;
  }
}

/* Phone UC grid (1 col): public/css/mobile/home.css (html[data-shell="mobile"]) */

.home-dashboard--tips {
  display: flex;
  flex-direction: column;
  gap: 0.85rem;
}

.home-dashboard--tips > .home-v2-section-head {
  display: none;
}

.home-dashboard-tips-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1.15rem;
  align-items: stretch;
}

.home-dashboard--tips .home-fav-spotlight,
.home-dashboard--tips .home-tip-spotlight {
  width: 100%;
}

.home-dashboard--tips .home-fav-spotlight-media {
  height: min(42vh, 360px);
  min-height: 240px;
}

.home-tip-spotlight .home-fav-spotlight-caption .spec-chips {
  margin-top: 0.35rem;
}

.home-tip-spotlight--has-corner .home-fav-spotlight-caption {
  max-width: calc(100% - 7.5rem);
  padding-right: 0.35rem;
}

.home-tip-park-corner {
  position: absolute;
  right: 1.35rem;
  bottom: 1.5rem;
  z-index: 2;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 0.12rem;
  max-width: min(44%, 11.5rem);
  text-align: right;
  pointer-events: none;
}

.home-tip-park-corner-link {
  pointer-events: auto;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 0.12rem;
  text-decoration: none;
  color: inherit;
  transition: color 0.15s ease;
}

.home-tip-park-corner-link:hover {
  background: transparent;
}

.home-tip-park-corner-link:hover .home-tip-park-corner-highlight {
  color: var(--accent);
}

.home-tip-park-corner-link:focus-visible {
  outline: 2px solid var(--accent);
  outline-offset: 2px;
}

.home-tip-park-corner-count {
  font-size: 0.78rem;
  font-weight: 700;
  font-variant-numeric: tabular-nums;
  color: rgba(255, 255, 255, 0.94);
  text-shadow: 0 1px 10px rgba(0, 0, 0, 0.55);
  line-height: 1.25;
}

.home-tip-park-corner-label {
  margin-top: 0.18rem;
  font-size: calc(0.62rem + 2pt);
  font-weight: 800;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--accent);
  text-shadow: 0 0 18px color-mix(in srgb, var(--accent) 45%, transparent);
  line-height: 1.2;
}

.home-tip-park-corner-highlight {
  font-size: 0.84rem;
  font-weight: 750;
  color: #fff;
  line-height: 1.2;
  text-shadow: 0 2px 12px rgba(0, 0, 0, 0.6);
  overflow-wrap: anywhere;
}

.home-trip-report-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
}

.home-trip-report-row {
  display: flex;
  align-items: flex-start;
  gap: 0.55rem;
  padding: 0.45rem 0;
  border-bottom: 1px solid var(--border);
  text-decoration: none;
  color: inherit;
}

.home-trip-report-row:last-child {
  border-bottom: none;
}

.home-trip-report-row .route-swatch {
  flex-shrink: 0;
  margin-top: 0.2rem;
}

.home-trip-report-copy {
  display: flex;
  flex-direction: column;
  gap: 0.12rem;
  min-width: 0;
}

.home-trip-report-copy strong {
  font-size: calc(0.88rem + 2pt);
  font-weight: 650;
  color: var(--text-primary);
}

.home-trip-report-copy span {
  font-size: 0.78rem;
  color: var(--text-muted);
}

.home-trip-report-row:hover strong {
  color: var(--accent);
}

.home-dashboard {
  display: grid;
  grid-template-columns: minmax(0, 1.7fr) minmax(280px, 0.9fr);
  gap: 1rem;
  align-items: stretch;
}

.home-dashboard-main {
  display: flex;
  flex-direction: column;
  gap: 1rem;
  min-width: 0;
}

.home-dashboard-side {
  display: flex;
  flex-direction: column;
  gap: 1rem;
  min-width: 0;
}

.home-dash-card {
  background: var(--bg-card);
  border: 1px solid var(--border);
  border-radius: var(--radius-xl);
  box-shadow: var(--shadow);
  overflow: hidden;
  display: flex;
  flex-direction: column;
  min-height: 0;
}

.home-dash-card-head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 0.75rem;
  padding: 0.85rem 1.05rem 0.55rem;
}

.home-dash-card-head h2,
.home-dash-card-head h3 {
  margin: 0;
  font-size: 0.82rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--accent);
}

.home-dash-card-body {
  padding: 0 1.05rem 1.05rem;
  display: flex;
  flex-direction: column;
  gap: 0.65rem;
  flex: 1;
}

.home-potd-hero {
  padding: 0;
  min-height: 420px;
}

.home-potd-hero .home-potd-media {
  min-height: 280px;
  height: min(46vh, 420px);
}

.home-cotd-compact .home-potd-media {
  min-height: 160px;
  height: 180px;
}

.home-wait-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  padding: 0.45rem 0;
  border-bottom: 1px solid var(--border);
  text-decoration: none;
  color: inherit;
}

.home-wait-row:hover .home-wait-name {
  color: var(--accent);
}

.home-wait-row:last-child {
  border-bottom: none;
}

.home-wait-row--no-data {
  opacity: 0.58;
}

.home-wait-row--no-data .home-wait-name {
  color: var(--text-muted);
}

.home-wait-row--no-data:hover .home-wait-name {
  color: var(--text-secondary);
}

.home-wait-source-credit {
  margin: 0.65rem 0 0;
  font-size: 0.78rem;
  color: var(--text-muted);
}

.home-wait-source-credit a {
  color: inherit;
  text-decoration: underline;
  text-underline-offset: 0.12em;
}

.home-wait-source-credit a:hover {
  color: var(--text);
}

.home-wait-row-badges {
  display: inline-flex;
  align-items: center;
  justify-content: flex-end;
  gap: 0.45rem;
  flex: 0 0 auto;
  margin-left: auto;
}

.home-wait-avg-stat {
  flex: 0 0 auto;
}

.home-wait-avg-stat-frame {
  display: flex;
  flex-direction: row;
  align-items: baseline;
  gap: 0.32rem;
  min-width: 0;
  padding: 0.32rem 0.54rem 0.36rem;
  border-radius: 11px 4px 11px 4px;
  border: 1px solid color-mix(in srgb, var(--accent) 28%, transparent);
  background: color-mix(in srgb, var(--bg-card) 38%, transparent);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  box-shadow:
    0 7px 18px color-mix(in srgb, #000 20%, transparent),
    inset 0 1px 0 color-mix(in srgb, #fff 10%, transparent);
}

.home-wait-avg-stat-value {
  display: inline-flex;
  align-items: baseline;
  font-size: calc((1.05rem - 1pt) * 0.9);
  font-weight: 800;
  letter-spacing: -0.03em;
  line-height: 1.05;
  font-variant-numeric: tabular-nums;
  color: #fff;
  text-shadow: 0 1px 8px rgba(0, 0, 0, 0.35);
}

.home-wait-avg-stat-icon {
  font-size: calc(1.15rem * 0.95);
  font-weight: 800;
  line-height: 1;
  color: color-mix(in srgb, #fff 78%, var(--accent));
  flex: 0 0 auto;
}

.home-wait-avg-stat-unit {
  font-weight: 800;
}

.home-wait-avg-stat.wait-level-low .home-wait-avg-stat-frame {
  border-color: color-mix(in srgb, #2fbb6e 55%, transparent);
  background: color-mix(in srgb, #2fbb6e 16%, var(--bg-card));
}

.home-wait-avg-stat.wait-level-low .home-wait-avg-stat-value,
.home-wait-avg-stat.wait-level-low .home-wait-avg-stat-icon {
  color: #8ef0b8;
}

.home-wait-avg-stat.wait-level-mid .home-wait-avg-stat-frame {
  border-color: color-mix(in srgb, #e39b1d 55%, transparent);
  background: color-mix(in srgb, #e39b1d 16%, var(--bg-card));
}

.home-wait-avg-stat.wait-level-mid .home-wait-avg-stat-value,
.home-wait-avg-stat.wait-level-mid .home-wait-avg-stat-icon {
  color: #ffd27a;
}

.home-wait-avg-stat.wait-level-high .home-wait-avg-stat-frame {
  border-color: color-mix(in srgb, #e14b4b 55%, transparent);
  background: color-mix(in srgb, #e14b4b 16%, var(--bg-card));
}

.home-wait-avg-stat.wait-level-high .home-wait-avg-stat-value,
.home-wait-avg-stat.wait-level-high .home-wait-avg-stat-icon {
  color: #ffb0b0;
}

[data-theme="light"] .home-wait-avg-stat-frame {
  background: color-mix(in srgb, #fff 52%, transparent);
}

[data-theme="light"] .home-wait-avg-stat.wait-level-low .home-wait-avg-stat-frame {
  background: color-mix(in srgb, #2fbb6e 12%, #fff);
}

[data-theme="light"] .home-wait-avg-stat.wait-level-low .home-wait-avg-stat-value,
[data-theme="light"] .home-wait-avg-stat.wait-level-low .home-wait-avg-stat-icon {
  color: #1a8f52;
  text-shadow: none;
}

[data-theme="light"] .home-wait-avg-stat.wait-level-mid .home-wait-avg-stat-frame {
  background: color-mix(in srgb, #e39b1d 12%, #fff);
}

[data-theme="light"] .home-wait-avg-stat.wait-level-mid .home-wait-avg-stat-value,
[data-theme="light"] .home-wait-avg-stat.wait-level-mid .home-wait-avg-stat-icon {
  color: #b8740a;
  text-shadow: none;
}

[data-theme="light"] .home-wait-avg-stat.wait-level-high .home-wait-avg-stat-frame {
  background: color-mix(in srgb, #e14b4b 12%, #fff);
}

[data-theme="light"] .home-wait-avg-stat.wait-level-high .home-wait-avg-stat-value,
[data-theme="light"] .home-wait-avg-stat.wait-level-high .home-wait-avg-stat-icon {
  color: #c62828;
  text-shadow: none;
}

.home-dash-card,
.home-potd-col {
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.home-dash-card:hover,
.home-potd-col:hover {
  transform: translateY(-3px);
  box-shadow: 0 14px 32px color-mix(in srgb, var(--text-primary) 14%, transparent);
}

.home-wait-name {
  flex: 1 1 auto;
  min-width: 0;
  font-size: calc(0.88rem + 2pt);
  font-weight: 600;
  color: var(--text-primary);
}

.home-wait-park {
  display: block;
  font-size: 0.72rem;
  font-weight: 500;
  color: var(--text-muted);
}

.home-dash-card-head a {
  font-size: 0.72rem;
  font-weight: 650;
  color: var(--text-muted);
  text-decoration: none;
  letter-spacing: 0.02em;
}

.home-dash-card-head a:hover {
  color: var(--accent);
}

.home-records-card .home-dash-card-body {
  gap: 0.5rem;
}

.home-record-row {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: 0.7rem 0.8rem;
  padding: 0.7rem 0.75rem;
  border-radius: var(--radius-lg);
  text-decoration: none;
  color: inherit;
  background: color-mix(in srgb, var(--bg-secondary) 78%, transparent);
  border: 1px solid color-mix(in srgb, var(--border) 88%, transparent);
  transition: border-color 0.15s ease, background 0.15s ease;
}

a.home-record-row:hover {
  border-color: color-mix(in srgb, var(--accent) 45%, var(--border));
  background: color-mix(in srgb, var(--bg-hover) 70%, var(--bg-secondary));
}

a.home-record-row:hover .home-record-name {
  color: var(--accent);
}

.home-record-row.is-empty {
  opacity: 0.72;
}

.home-record-icon {
  width: 2.65rem;
  height: 2.65rem;
  border-radius: 0.85rem;
  display: grid;
  place-items: center;
  flex-shrink: 0;
}

.home-record-icon svg {
  width: 1.45rem;
  height: 1.45rem;
}

.home-record-row--height .home-record-icon {
  background: color-mix(in srgb, var(--info) 18%, var(--bg-card));
  color: var(--info);
}

.home-record-row--speed .home-record-icon {
  background: color-mix(in srgb, var(--accent) 20%, var(--bg-card));
  color: var(--accent);
}

.home-record-row--length .home-record-icon {
  background: color-mix(in srgb, var(--success) 18%, var(--bg-card));
  color: var(--success);
}

.home-record-copy {
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 0.08rem;
}

.home-record-kind {
  font-size: 0.65rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.07em;
  color: var(--text-muted);
}

.home-record-name {
  font-size: calc(0.92rem + 2pt);
  font-weight: 700;
  line-height: 1.2;
  color: var(--text-primary);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.home-record-park {
  font-size: 0.72rem;
  font-weight: 500;
  color: var(--text-muted);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.home-record-value {
  font-size: 1.08rem;
  font-weight: 800;
  font-variant-numeric: tabular-nums;
  letter-spacing: -0.02em;
  white-space: nowrap;
  line-height: 1;
}

.home-record-row--height .home-record-value {
  color: var(--info);
}

.home-record-row--speed .home-record-value {
  color: var(--accent);
}

.home-record-row--length .home-record-value {
  color: var(--success);
}

.home-records-foot {
  margin: 0.15rem 0 0;
  font-size: 0.75rem;
  font-weight: 600;
  color: var(--text-muted);
}

.home-trip-title {
  margin: 0;
  font-size: 1.05rem;
  font-weight: 700;
}

.home-trip-meta {
  margin: 0;
  font-size: 0.82rem;
  color: var(--text-muted);
}

.home-trip-stops {
  margin: 0;
  padding-left: 1.1rem;
  color: var(--text-secondary);
  font-size: 0.85rem;
}

.home-tools-strip {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
}

.home-tools-strip a {
  display: inline-flex;
  align-items: center;
  padding: 0.4rem 0.75rem;
  border-radius: 999px;
  border: 1px solid var(--border);
  background: var(--bg-card);
  color: var(--text-secondary);
  font-size: 0.82rem;
  font-weight: 600;
}

.home-tools-strip a:hover {
  border-color: var(--accent);
  color: var(--accent);
}

@media (max-width: 900px) {
  .home-dashboard--stats {
    grid-template-columns: 1fr;
  }

  .home-dashboard-tips-grid {
    grid-template-columns: 1fr;
  }

  .home-cf-news-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .home-cf-news-tile .home-fav-spotlight-media {
    height: min(26vh, 200px);
    min-height: 140px;
  }

  .home-dashboard {
    grid-template-columns: 1fr;
  }

  .home-hero-spotlights {
    grid-template-columns: 1fr;
  }

  .home-fav-spotlight-frame {
    transform: none;
  }

  .home-fav-spotlight-nav {
    opacity: 1;
  }

  .home-potd-hero .home-potd-media {
    height: 260px;
    min-height: 220px;
  }

  .deals-spotlight-grid {
    grid-template-columns: 1fr;
  }

  .deals-card .home-fav-spotlight-frame {
    transform: none;
  }

  .deals-card-media {
    min-height: 200px;
    height: min(34vh, 240px);
  }
}

/* —— Deals draft page (home spotlight language) —— */
.deals-page .deals-hero {
  margin-bottom: 0.5rem;
}

.deals-section-head {
  margin-bottom: 1.1rem;
}

.deals-section-title {
  margin: 0;
  font-size: clamp(1.35rem, 3vw, 1.85rem);
  font-weight: 750;
  letter-spacing: -0.03em;
  color: var(--text-primary);
}

.deals-section-sub {
  margin: 0.35rem 0 0;
  max-width: 40rem;
  font-size: 0.98rem;
  line-height: 1.45;
  color: var(--text-secondary);
}

.deals-spotlight-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1.15rem;
  align-items: stretch;
}

.deals-card {
  display: block;
  text-decoration: none;
  color: inherit;
}

.deals-card .home-fav-spotlight-frame {
  transform: rotateY(-4deg) rotateX(2deg);
}

.deals-card:hover .home-fav-spotlight-frame,
.deals-card:focus-visible .home-fav-spotlight-frame {
  transform: rotateY(0deg) rotateX(0deg) scale(1.02);
}

.deals-card-media {
  height: min(36vh, 280px);
  min-height: 210px;
  display: grid;
  place-items: center;
  overflow: hidden;
}

.deals-card-media--gold {
  background:
    radial-gradient(ellipse 80% 70% at 70% 20%, color-mix(in srgb, var(--accent) 42%, transparent), transparent 60%),
    linear-gradient(145deg, #1a1520 0%, #2a2218 45%, #121018 100%);
}

.deals-card-media--rose {
  background:
    radial-gradient(ellipse 80% 70% at 30% 30%, color-mix(in srgb, #e86b8a 38%, transparent), transparent 62%),
    linear-gradient(145deg, #1a1218 0%, #2a1822 50%, #120e14 100%);
}

.deals-card-media--teal {
  background:
    radial-gradient(ellipse 80% 70% at 60% 40%, color-mix(in srgb, #3dbeb0 36%, transparent), transparent 62%),
    linear-gradient(145deg, #101820 0%, #163038 50%, #0e1418 100%);
}

.deals-card-media--blue {
  background:
    radial-gradient(ellipse 80% 70% at 40% 25%, color-mix(in srgb, #5b8def 40%, transparent), transparent 60%),
    linear-gradient(145deg, #10141e 0%, #182438 48%, #0c1018 100%);
}

[data-theme="light"] .deals-card-media--gold {
  background:
    radial-gradient(ellipse 80% 70% at 70% 20%, color-mix(in srgb, var(--accent) 35%, transparent), transparent 60%),
    linear-gradient(145deg, #f7f0e2, #ebe3d4);
}

[data-theme="light"] .deals-card-media--rose {
  background:
    radial-gradient(ellipse 80% 70% at 30% 30%, color-mix(in srgb, #e86b8a 28%, transparent), transparent 62%),
    linear-gradient(145deg, #f8ecef, #efe0e6);
}

[data-theme="light"] .deals-card-media--teal {
  background:
    radial-gradient(ellipse 80% 70% at 60% 40%, color-mix(in srgb, #3dbeb0 28%, transparent), transparent 62%),
    linear-gradient(145deg, #e8f4f2, #d8ebe8);
}

[data-theme="light"] .deals-card-media--blue {
  background:
    radial-gradient(ellipse 80% 70% at 40% 25%, color-mix(in srgb, #5b8def 30%, transparent), transparent 60%),
    linear-gradient(145deg, #e8eef8, #d8e2f2);
}

.deals-card-icon {
  position: relative;
  z-index: 1;
  width: 3.4rem;
  height: 3.4rem;
  color: color-mix(in srgb, #fff 88%, var(--accent));
  opacity: 0.92;
  transition: transform 0.45s cubic-bezier(0.22, 1, 0.36, 1), opacity 0.3s ease;
}

.deals-card-icon svg {
  width: 100%;
  height: 100%;
  display: block;
  filter: drop-shadow(0 8px 18px color-mix(in srgb, #000 35%, transparent));
}

.deals-card:hover .deals-card-icon,
.deals-card:focus-visible .deals-card-icon {
  transform: translateY(-4px) scale(1.08);
  opacity: 1;
}

.deals-card-sheen {
  position: absolute;
  inset: -40% -30%;
  background: linear-gradient(
    115deg,
    transparent 35%,
    color-mix(in srgb, #fff 16%, transparent) 48%,
    transparent 62%
  );
  transform: translateX(-40%) rotate(8deg);
  transition: transform 0.7s cubic-bezier(0.22, 1, 0.36, 1);
  pointer-events: none;
}

.deals-card:hover .deals-card-sheen,
.deals-card:focus-visible .deals-card-sheen {
  transform: translateX(35%) rotate(8deg);
}

.deals-card-kicker {
  display: block;
  margin-bottom: 0.25rem;
}

.deals-card-glow--rose {
  background: radial-gradient(ellipse 72% 58% at 50% 40%, color-mix(in srgb, #e86b8a 32%, transparent), transparent 68%);
}

.deals-card-glow--teal {
  background: radial-gradient(ellipse 72% 58% at 50% 40%, color-mix(in srgb, #3dbeb0 30%, transparent), transparent 68%);
}

.deals-card-glow--blue {
  background: radial-gradient(ellipse 72% 58% at 50% 40%, color-mix(in srgb, #5b8def 32%, transparent), transparent 68%);
}

.deals-live-section {
  margin-top: 0.35rem;
}

.deals-live-stage {
  min-height: 12rem;
}

.deals-live-frame {
  min-height: 14rem;
}

.deals-widget-host {
  border-radius: 22px 8px 22px 8px;
  border: 1px solid color-mix(in srgb, var(--accent) 22%, var(--border));
  background: color-mix(in srgb, var(--bg-card) 70%, transparent);
  padding: 1rem;
  overflow: auto;
  box-shadow: 0 20px 48px color-mix(in srgb, #000 28%, transparent);
}

.deals-stat-frame {
  cursor: default;
}

.deals-affiliate-note {
  margin: 1.75rem 0 2.5rem;
  max-width: 46rem;
  font-size: 0.82rem;
  line-height: 1.45;
  color: var(--text-muted);
}

html[data-reduce-motion="true"] .deals-card .home-fav-spotlight-frame,
html[data-reduce-motion="true"] .deals-card:hover .home-fav-spotlight-frame {
  transform: none;
}

html[data-reduce-motion="true"] .deals-card-sheen,
html[data-reduce-motion="true"] .deals-card:hover .deals-card-sheen {
  transform: none;
  opacity: 0;
}

html[data-reduce-motion="true"] .deals-card:hover .deals-card-icon {
  transform: none;
}

.content-filter-hint {
  margin: 0.35rem 0 0;
  font-size: 0.82rem;
  color: var(--text-muted, #888);
}

.content-filter-hint[hidden] {
  display: none !important;
}

.moderation-banner {
  margin: 0.75rem 0 1rem;
  padding: 0.75rem 1rem;
  border-radius: 0.5rem;
  border: 1px solid color-mix(in srgb, #c45c26 45%, transparent);
  background: color-mix(in srgb, #c45c26 12%, transparent);
  color: var(--text, #eee);
  font-size: 0.92rem;
}
