﻿body.joy-hero-rebuild-ready .hero-section .hero-aurora,
body.joy-hero-rebuild-ready .hero-section .banner-frame,
body.joy-hero-rebuild-ready .hero-section .line-frame {
  display: none !important;
}

body.joy-hero-rebuild-ready .hero-section {
  padding: 0 0 50px !important;
}

body.joy-hero-rebuild-ready .hero-banner-top {
  position: relative !important;
  min-height: calc(100svh - 181px) !important;
  height: calc(100svh - 181px) !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow: hidden !important;
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  background: radial-gradient(circle at top, #153d86 0%, #07111f 58%, #050a12 100%) !important;
}

body.joy-hero-rebuild-ready .hero-shell-bottom {
  margin-top: 50px !important;
  margin-bottom: 0 !important;
}

body.joy-hero-rebuild-ready .site-header {
  z-index: 200 !important;
  min-height: 72px !important;
  padding-top: calc(18px + env(safe-area-inset-top, 0px)) !important;
  padding-bottom: 18px !important;
  background: rgba(255, 255, 255, 0.95) !important;
  border-bottom: 1px solid rgba(15, 23, 42, 0.08) !important;
  backdrop-filter: blur(18px) !important;
  box-shadow: 0 12px 30px rgba(15, 23, 42, 0.08) !important;
}

body.joy-hero-rebuild-ready .site-header.scrolled {
  top: 0 !important;
  padding-top: calc(12px + env(safe-area-inset-top, 0px)) !important;
  padding-bottom: 12px !important;
  background: rgba(255, 255, 255, 0.95) !important;
  border-bottom: 1px solid rgba(15, 23, 42, 0.08) !important;
  backdrop-filter: blur(18px) !important;
  box-shadow: 0 12px 30px rgba(15, 23, 42, 0.08) !important;
}

body.joy-hero-rebuild-ready .site-header .nav,
body.joy-hero-rebuild-ready .site-header.scrolled .nav {
  background: rgba(255, 255, 255, 0.9) !important;
  border-color: rgba(15, 23, 42, 0.1) !important;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.7) !important;
}

body.joy-hero-rebuild-ready .site-header .nav a,
body.joy-hero-rebuild-ready .site-header.scrolled .nav a {
  color: rgb(22, 32, 51) !important;
}

body.theme-light.joy-hero-rebuild-ready .site-header:not(.scrolled) .hamburger,
body.theme-light.joy-hero-rebuild-ready .site-header.scrolled .hamburger,
body.theme-light.joy-hero-rebuild-ready #hamburgerBtn.hamburger {
  color: rgb(22, 32, 51) !important;
  border-color: rgba(18, 25, 38, 0.14) !important;
  background: rgba(255, 255, 255, 0.92) !important;
}

body.theme-light.joy-hero-rebuild-ready .site-header:not(.scrolled) .hamburger:hover,
body.theme-light.joy-hero-rebuild-ready .site-header:not(.scrolled) .hamburger:focus-visible,
body.theme-light.joy-hero-rebuild-ready .site-header.scrolled .hamburger:hover,
body.theme-light.joy-hero-rebuild-ready .site-header.scrolled .hamburger:focus-visible,
body.theme-light.joy-hero-rebuild-ready #hamburgerBtn.hamburger:hover,
body.theme-light.joy-hero-rebuild-ready #hamburgerBtn.hamburger:focus-visible {
  background: rgba(255, 255, 255, 1) !important;
}

body.joy-hero-rebuild-ready .section {
  padding: 50px 6vw !important;
}

body.joy-hero-rebuild-ready #gallery.section,
body.joy-hero-rebuild-ready #pricing.section,
body.joy-hero-rebuild-ready #board-inquiry.section,
body.joy-hero-rebuild-ready #board-request.section {
  padding-top: 50px !important;
  padding-bottom: 50px !important;
}

body.joy-hero-rebuild-ready .brand-wordmark {
  overflow: visible !important;
  height: 32px !important;
  max-width: 260px !important;
}

.joy-hero {
  position: relative;
  width: 100%;
  height: 100%;
  color: #f8fbff;
}

.joy-hero__swiper,
.joy-hero__swiper .swiper-wrapper,
.joy-hero__swiper .swiper-slide {
  width: 100%;
  height: 100%;
}

.joy-hero__slide {
  position: relative;
  overflow: hidden;
}

.joy-hero__media,
.joy-hero__media::after,
.joy-hero__media img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}

.joy-hero__media {
  z-index: 1;
}

.joy-hero__media img {
  object-fit: cover;
}

.joy-hero__media::after {
  content: "";
  background: linear-gradient(180deg, rgba(7, 17, 31, 0.16), rgba(7, 17, 31, 0.14) 40%, rgba(7, 17, 31, 0.64));
}

.joy-hero__scene,
.joy-hero__copy {
  position: absolute;
  inset: 0;
}

.joy-hero__scene {
  z-index: 2;
  pointer-events: none;
}

.joy-hero__copy {
  z-index: 4;
  display: flex;
  align-items: flex-end;
  padding: 126px 20px 92px;
}

.joy-hero__copy-stack {
  position: relative;
  display: grid;
  gap: 10px;
  width: min(90vw, 320px);
}

.joy-hero__badge,
.joy-hero__bubble,
.joy-hero__mascot {
  position: absolute;
}

.joy-hero__badge {
  top: 88px;
  right: 18px;
  display: grid;
  place-items: center;
  gap: 3px;
  padding: 10px 14px;
  border-radius: 22px;
  border: 1px solid rgba(255, 255, 255, 0.16);
  background: rgba(8, 18, 38, 0.28);
  color: rgba(255, 244, 228, 0.94);
  font-size: 11px;
  font-weight: 800;
  line-height: 1.15;
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
}

.joy-hero__bubble {
  top: -58px;
  left: 0;
  max-width: 170px;
  min-height: 38px;
  padding: 8px 12px;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.14);
  border: 1px solid rgba(255, 255, 255, 0.16);
  color: rgba(255, 247, 231, 0.96);
  font-size: 11px;
  font-weight: 800;
  line-height: 1.2;
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
}

.joy-hero__mascot {
  top: -62px;
  right: 0;
  width: 52px;
  height: 52px;
  border-radius: 18px;
  background: linear-gradient(135deg, #fffdf2, #e8f0ff);
  box-shadow: 0 12px 28px rgba(8, 18, 38, 0.16);
}

.joy-hero__mascot::before,
.joy-hero__mascot::after {
  content: "";
  position: absolute;
  border-radius: 999px;
}

.joy-hero__mascot::before {
  top: 18px;
  left: 15px;
  width: 7px;
  height: 7px;
  background: #2b4a7f;
  box-shadow: 16px 0 0 #2b4a7f;
}

.joy-hero__mascot::after {
  left: 14px;
  right: 14px;
  bottom: 12px;
  height: 7px;
  border-bottom: 5px solid #2b4a7f;
  background: transparent;
}

.joy-hero__eyebrow,
.joy-hero__title,
.joy-hero__subtitle,
.joy-hero__description,
.joy-hero__accent,
.joy-hero__actions,
.joy-hero__stars,
.joy-hero__bubble,
.joy-hero__mascot,
.joy-hero__badge {
  opacity: 0;
}

.joy-hero__eyebrow {
  margin: 0;
  color: rgba(255, 241, 214, 0.92);
  font-size: 13px;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.joy-hero__title {
  margin: 0;
  max-width: 88%;
  font-size: clamp(34px, 10.8vw, 54px);
  line-height: 0.95;
  letter-spacing: -0.06em;
  font-weight: 900;
  color: #ffffff;
  text-shadow: 0 12px 34px rgba(3, 10, 24, 0.34);
}

.joy-hero__title.joy-hero__title--small {
  /* reduce default title sizes by ~5px for special headline */
  font-size: clamp(29px, 10.8vw, 49px);
}

.joy-hero__subtitle {
  margin: 0;
  font-size: 18px;
  line-height: 1.24;
  font-weight: 700;
  color: rgba(255, 244, 227, 0.92);
}

.joy-hero__description,
.joy-hero__accent {
  margin: 0;
  max-width: 84%;
  font-size: 15px;
  line-height: 1.5;
  color: rgba(240, 232, 215, 0.82);
  text-shadow: 0 8px 24px rgba(4, 9, 20, 0.24);
}

.joy-hero__stars {
  display: flex;
  gap: 6px;
}

.joy-hero__star {
  width: 18px;
  height: 18px;
  background: #f5c14d;
  clip-path: polygon(50% 0%, 61% 35%, 98% 35%, 68% 57%, 79% 92%, 50% 71%, 21% 92%, 32% 57%, 2% 35%, 39% 35%);
}

.joy-hero__actions {
  display: grid;
  gap: 12px;
  width: min(292px, 100%);
  margin-top: 6px;
}

.joy-hero__btn {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 50px;
  padding: 14px 18px;
  border-radius: 18px;
  text-decoration: none;
  font-size: 15px;
  font-weight: 800;
}

.joy-hero__btn--primary {
  color: #fff;
  background: linear-gradient(135deg, #2f6bff, #1846d4);
  box-shadow: 0 16px 30px rgba(47, 107, 255, 0.26);
}

.joy-hero__btn--secondary {
  color: rgba(255, 248, 234, 0.94);
  border: 1px solid rgba(255, 255, 255, 0.18);
  background: rgba(255, 255, 255, 0.08);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
}

.joy-hero__pagination {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 26px;
  z-index: 5;
}

.joy-hero .swiper-pagination-bullet {
  width: 10px;
  height: 10px;
  background: rgba(255, 255, 255, 0.72);
  opacity: 1;
}

.joy-hero .swiper-pagination-bullet-active {
  width: 24px;
  border-radius: 999px;
  background: #2f6bff;
}

.joy-scene,
.joy-scene::before,
.joy-scene::after {
  position: absolute;
}

.joy-scene--orb {
  width: 160px;
  height: 160px;
  border-radius: 50%;
  background: radial-gradient(circle at 35% 35%, rgba(255,255,255,0.32), rgba(255,255,255,0.02) 62%, transparent 70%);
}

.joy-scene--spark,
.joy-scene--spark::before,
.joy-scene--spark::after {
  width: 18px;
  height: 18px;
  background: #e6f4ff;
  clip-path: polygon(50% 0%, 64% 36%, 100% 50%, 64% 64%, 50% 100%, 36% 64%, 0% 50%, 36% 36%);
}

.joy-scene--spark::before,
.joy-scene--spark::after {
  content: "";
}

.joy-scene--brand-orb { top: 96px; right: 40px; }
.joy-scene--brand-spark { top: 164px; right: 88px; }
.joy-scene--brand-spark::before { top: 208px; left: -142px; transform: scale(0.82); }
.joy-scene--brand-spark::after { top: 324px; left: -24px; transform: scale(0.62); }

.joy-scene--emotion-ring {
  right: 26px;
  top: 182px;
  width: 120px;
  height: 120px;
  border-radius: 50%;
  border: 2px dashed rgba(255,255,255,0.14);
}

.joy-scene--emotion-orb { top: 146px; right: 34px; }

.joy-scene--game-cloud,
.joy-scene--game-cloud::before,
.joy-scene--game-cloud::after {
  width: 118px;
  height: 46px;
  background:
    linear-gradient(#d9ecff 0 0) 0 10px / 20px 18px no-repeat,
    linear-gradient(#d9ecff 0 0) 20px 0 / 42px 32px no-repeat,
    linear-gradient(#d9ecff 0 0) 62px 10px / 34px 18px no-repeat,
    linear-gradient(#d9ecff 0 0) 96px 16px / 18px 12px no-repeat;
  opacity: 0.16;
}

.joy-scene--game-cloud::before,
.joy-scene--game-cloud::after {
  content: "";
}

.joy-scene--game-cloud { top: 118px; left: 18px; }
.joy-scene--game-cloud::before { top: 86px; left: 184px; transform: scale(0.82); }
.joy-scene--game-cloud::after { top: 212px; left: 12px; transform: scale(0.64); }

.joy-scene--game-coin {
  left: 28px;
  bottom: 176px;
  width: 62px;
  height: 62px;
  border-radius: 18px;
  background: linear-gradient(135deg, #ffe596, #f8b531);
  box-shadow: inset 0 0 0 5px rgba(255,255,255,0.16), 0 18px 30px rgba(9, 21, 48, 0.26);
  transform: rotate(10deg);
}

.joy-scene--game-coin::before {
  content: "G";
  position: absolute;
  inset: 0;
  display: grid;
  place-items: center;
  color: #8b4b00;
  font-size: 28px;
  font-weight: 900;
}

.joy-scene--game-card {
  right: 24px;
  bottom: 170px;
  width: 118px;
  height: 118px;
  border-radius: 28px;
  background:
    linear-gradient(135deg, rgba(255,255,255,0.32), rgba(255,255,255,0.04)),
    linear-gradient(135deg, #2f6bff, #123796);
  box-shadow: 0 24px 56px rgba(7, 17, 31, 0.34);
  transform: rotate(-12deg);
}

.joy-scene--game-card::before,
.joy-scene--game-card::after {
  content: "";
  position: absolute;
  border-radius: 14px;
}

.joy-scene--game-card::before {
  inset: 24% 17% 31%;
  background: linear-gradient(135deg, rgba(255,255,255,0.94), rgba(205,228,255,0.4));
}

.joy-scene--game-card::after {
  left: 18%;
  right: 18%;
  bottom: 16%;
  height: 16%;
  background: rgba(10, 23, 49, 0.54);
}

.joy-scene--award-badge {
  top: 118px;
  left: 50%;
  width: 104px;
  height: 104px;
  margin-left: -52px;
  border-radius: 28px;
  background: linear-gradient(135deg, #ffe8b0, #d6a53c);
  box-shadow: 0 18px 42px rgba(0,0,0,0.28);
}

.joy-scene--award-badge::before {
  content: "AWARD";
  position: absolute;
  inset: 0;
  display: grid;
  place-items: center;
  color: #6f4706;
  font-size: 18px;
  font-weight: 900;
  letter-spacing: 0.08em;
}

.joy-scene--award-ribbon-left,
.joy-scene--award-ribbon-right {
  top: 112px;
  width: 38px;
  height: 132px;
  background: linear-gradient(180deg, #4d87ff, #214ed4);
  clip-path: polygon(0 0, 100% 0, 100% 82%, 50% 100%, 0 82%);
}

.joy-scene--award-ribbon-left { left: calc(50% - 86px); transform: rotate(-6deg); }
.joy-scene--award-ribbon-right { right: calc(50% - 86px); transform: rotate(6deg); }
.joy-scene--award-orb { top: 104px; left: 50%; margin-left: -78px; }
.joy-scene--award-spark { top: 150px; left: 44px; }
.joy-scene--award-spark::before { top: 54px; left: 212px; transform: scale(0.72); }
.joy-scene--award-spark::after { top: 246px; left: 34px; transform: scale(0.56); }

@keyframes joyRevealUp {
  from { opacity: 0; transform: translate3d(0, 20px, 0); }
  to { opacity: 1; transform: translate3d(0, 0, 0); }
}

@keyframes joyRevealLeft {
  from { opacity: 0; transform: translate3d(24px, 0, 0); }
  to { opacity: 1; transform: translate3d(0, 0, 0); }
}

@keyframes joyRevealRight {
  from { opacity: 0; transform: translate3d(-24px, 0, 0); }
  to { opacity: 1; transform: translate3d(0, 0, 0); }
}

@keyframes joyBob {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-6px); }
}

@keyframes joyWiggle {
  0%, 100% { transform: rotate(-8deg) translateY(0); }
  50% { transform: rotate(-4deg) translateY(-4px); }
}

@keyframes joyTwinkle {
  0%, 100% { opacity: 0.58; transform: scale(0.96); }
  50% { opacity: 1; transform: scale(1.06); }
}

@keyframes joyDrift {
  0%, 100% { transform: translate3d(0, 0, 0) scale(1); opacity: 0.62; }
  50% { transform: translate3d(18px, -14px, 0) scale(1.06); opacity: 0.92; }
}

.joy-hero .swiper-slide-active .joy-scene--orb,
.joy-hero .swiper-slide-active .joy-scene--award-badge {
  animation: joyDrift 8.6s ease-in-out infinite;
}

.joy-hero .swiper-slide-active .joy-scene--spark,
.joy-hero .swiper-slide-active .joy-scene--spark::before,
.joy-hero .swiper-slide-active .joy-scene--spark::after {
  animation: joyTwinkle 2.2s ease-in-out infinite;
}

.joy-hero .swiper-slide-active .joy-scene--emotion-ring,
.joy-hero .swiper-slide-active .joy-scene--game-coin,
.joy-hero .swiper-slide-active .joy-scene--game-card,
.joy-hero .swiper-slide-active .joy-scene--award-ribbon-left,
.joy-hero .swiper-slide-active .joy-scene--award-ribbon-right {
  animation: joyBob 4.4s ease-in-out infinite;
}

.joy-hero .swiper-slide-active.joy-hero-slide-enter .joy-hero__badge {
  animation: joyRevealUp 360ms ease-out 40ms both, joyWiggle 4.8s ease-in-out 520ms infinite;
}

.joy-hero .swiper-slide-active.joy-hero-slide-enter .joy-hero__bubble {
  animation: joyRevealUp 300ms ease-out 90ms both, joyBob 3.6s ease-in-out 560ms infinite;
}

.joy-hero .swiper-slide-active.joy-hero-slide-enter .joy-hero__mascot {
  animation: joyRevealUp 320ms ease-out 140ms both, joyBob 3.8s ease-in-out 620ms infinite;
}

.joy-hero .swiper-slide-active.joy-hero-slide-enter .joy-hero__eyebrow {
  animation: joyRevealUp 340ms ease-out 180ms both;
}

.joy-hero .swiper-slide-active.joy-hero-slide-enter .joy-hero__title {
  animation: joyRevealUp 620ms cubic-bezier(0.22, 1, 0.36, 1) 240ms both;
}

.joy-hero .swiper-slide-active.joy-hero-slide-enter .joy-hero__subtitle {
  animation: joyRevealUp 520ms cubic-bezier(0.22, 1, 0.36, 1) 400ms both;
}

.joy-hero .swiper-slide-active.joy-hero-slide-enter .joy-hero__stars {
  animation: joyRevealUp 340ms ease-out 480ms both;
}

.joy-hero .swiper-slide-active.joy-hero-slide-enter .joy-hero__description {
  animation: joyRevealUp 520ms cubic-bezier(0.22, 1, 0.36, 1) 540ms both;
}

.joy-hero .swiper-slide-active.joy-hero-slide-enter .joy-hero__accent {
  animation: joyRevealUp 420ms ease-out 660ms both;
}

.joy-hero .swiper-slide-active.joy-hero-slide-enter .joy-hero__actions {
  animation: joyRevealUp 560ms cubic-bezier(0.22, 1, 0.36, 1) 760ms both;
}

@media (min-width: 769px) {
  body.joy-hero-rebuild-ready .hero-banner-top {
    min-height: min(960px, 100vh) !important;
    height: min(960px, 100vh) !important;
  }

  .joy-hero__copy {
    justify-content: center;
    padding: 148px 88px 112px;
  }

  .joy-hero__copy-stack {
    width: min(900px, 100%);
    justify-items: center;
    text-align: center;
    gap: 16px;
  }

  .joy-hero__bubble {
    left: 50%;
    transform: translateX(-50%);
    max-width: 220px;
  }

  .joy-hero__mascot {
    display: none;
  }

  .joy-hero__title {
    max-width: min(940px, 100%);
    font-size: clamp(62px, 7vw, 108px);
  }

  .joy-hero__title.joy-hero__title--small {
    /* desktop/large breakpoint reduced sizes */
    font-size: clamp(57px, 7vw, 103px);
  }

  .joy-hero__subtitle {
    font-size: clamp(24px, 2.4vw, 36px);
  }

  .joy-hero__description,
  .joy-hero__accent {
    max-width: 760px;
    font-size: clamp(18px, 1.6vw, 24px);
    text-align: center;
  }

  .joy-hero__actions {
    width: auto;
    grid-auto-flow: column;
    justify-content: center;
  }

  .joy-hero__btn {
    min-width: 190px;
  }

  .joy-hero .swiper-button-prev,
  .joy-hero .swiper-button-next {
    color: #7ea5ff;
  }
}

.joy-hero__eyebrow,
.joy-hero__title,
.joy-hero__subtitle,
.joy-hero__description,
.joy-hero__accent,
.joy-hero__btn,
.joy-hero__badge,
.joy-hero__bubble {
  text-shadow:
    -1px -1px 0 rgba(0, 0, 0, 0.92),
    1px -1px 0 rgba(0, 0, 0, 0.92),
    -1px 1px 0 rgba(0, 0, 0, 0.92),
    1px 1px 0 rgba(0, 0, 0, 0.92),
    0 10px 26px rgba(0, 0, 0, 0.38);
}

.joy-hero__title {
  font-size: clamp(24px, 7.6vw, 38px);
}

.joy-hero__title.joy-hero__title--small {
  font-size: clamp(20px, 6.8vw, 34px);
}

@media (max-width: 768px) {
  body.joy-hero-rebuild-ready .hero-banner-top,
  body.joy-hero-rebuild-ready .hero-banner-top .joy-hero,
  body.joy-hero-rebuild-ready .hero-banner-top .joy-hero__swiper,
  body.joy-hero-rebuild-ready .hero-banner-top .joy-hero__swiper .swiper-wrapper,
  body.joy-hero-rebuild-ready .hero-banner-top .joy-hero__swiper .swiper-slide,
  body.joy-hero-rebuild-ready .hero-banner-top .joy-hero__slide,
  body.joy-hero-rebuild-ready .hero-banner-top .joy-hero__media,
  body.joy-hero-rebuild-ready .hero-banner-top .joy-hero__media img {
    display: block !important;
    visibility: visible !important;
    width: 100% !important;
    min-height: 100svh !important;
    height: 100svh !important;
  }

  body.joy-hero-rebuild-ready .hero-banner-top .joy-hero__copy,
  body.joy-hero-rebuild-ready .hero-banner-top .joy-hero__copy-stack {
    visibility: visible !important;
    z-index: 6 !important;
  }
  body.joy-hero-rebuild-ready .hero-banner-top .joy-hero .swiper-slide-active .joy-hero__eyebrow,
  body.joy-hero-rebuild-ready .hero-banner-top .joy-hero .swiper-slide-active .joy-hero__title,
  body.joy-hero-rebuild-ready .hero-banner-top .joy-hero .swiper-slide-active .joy-hero__subtitle,
  body.joy-hero-rebuild-ready .hero-banner-top .joy-hero .swiper-slide-active .joy-hero__description,
  body.joy-hero-rebuild-ready .hero-banner-top .joy-hero .swiper-slide-active .joy-hero__accent,
  body.joy-hero-rebuild-ready .hero-banner-top .joy-hero .swiper-slide-active .joy-hero__actions,
  body.joy-hero-rebuild-ready .hero-banner-top .joy-hero .swiper-slide-active .joy-hero__bubble,
  body.joy-hero-rebuild-ready .hero-banner-top .joy-hero .swiper-slide-active .joy-hero__mascot,
  body.joy-hero-rebuild-ready .hero-banner-top .joy-hero .swiper-slide-active .joy-hero__badge {
    opacity: 1 !important;
    visibility: visible !important;
  }

  body.joy-hero-rebuild-ready .hero-banner-top .joy-hero__title {
    font-size: clamp(24px, 7.6vw, 38px) !important;
    max-width: 92% !important;
  }

  body.joy-hero-rebuild-ready .hero-banner-top .joy-hero__title.joy-hero__title--small {
    font-size: clamp(20px, 6.8vw, 34px) !important;
  }
}

@media (min-width: 769px) {
  .joy-hero__title {
    font-size: clamp(43px, 4.9vw, 76px);
  }

  .joy-hero__title.joy-hero__title--small {
    font-size: clamp(40px, 4.9vw, 72px);
  }
}

.joy-hero__title {
  line-height: 1.08 !important;
  word-break: keep-all;
}

/* Unified dark theme override */
html,
body,
.page,
main,
#top,
.hero-section,
.hero-shell-bottom,
.hero-banner-top,
.hero-banner-top .banner-frame,
.hero-banner-top .hero-swiper,
.hero-banner-top .swiper-wrapper,
.hero-banner-top .swiper-slide,
.hero-banner-top .banner-slide,
.hero-banner-top .slide-media,
.hero-shell-bottom .hero-intro,
.hero-shell-bottom .hero-estimator {
  background:
    radial-gradient(circle at top left, rgba(43, 99, 246, 0.18), transparent 30%),
    radial-gradient(circle at top right, rgba(31, 77, 184, 0.14), transparent 26%),
    linear-gradient(180deg, #071023 0%, #08142a 48%, #050b16 100%) !important;
  color: #f0f4fb !important;
}

.hero-shell-bottom .hero-intro,
.hero-shell-bottom .hero-estimator,
.hero-form-intro,
.hero-intro-panel,
.hero-estimate-form,
.estimate-form-shell-summary,
.estimate-result-card,
.estimate-base-head,
.estimate-base-pricing,
.estimate-field,
.estimate-option-item,
.estimate-control,
.hero-search-results,
.trust-item,
.value-card,
.process-card,
.offer-card,
.faq-card,
.price-card,
.gallery-post,
.request-summary-card {
  background: linear-gradient(180deg, rgba(11, 20, 38, 0.96), rgba(7, 14, 27, 0.94)) !important;
  border-color: rgba(255, 255, 255, 0.08) !important;
  color: #f0f4fb !important;
  box-shadow: 0 18px 40px rgba(2, 8, 20, 0.28) !important;
}

.hero-shell-bottom .hero-intro h1,
.hero-shell-bottom .hero-estimator h2,
.hero-shell-bottom .hero-estimator strong,
.hero-shell-bottom .estimate-field strong,
.hero-shell-bottom .estimate-result-card strong,
.hero-shell-bottom .estimate-label,
.hero-shell-bottom .section-kicker,
.hero-shell-bottom .hero-summary,
.hero-shell-bottom .hero-form-field > span,
.hero-shell-bottom .estimate-base-head span,
.hero-shell-bottom .hero-form-intro p,
.hero-shell-bottom .estimate-result-meta,
.hero-shell-bottom .trust-label,
.hero-shell-bottom .gallery-post-meta,
.hero-shell-bottom .gallery-post-empty {
  color: rgba(240, 244, 251, 0.76) !important;
}

.hero-shell-bottom .hero-form-field select,
.hero-shell-bottom .hero-form-field input[type="text"],
.hero-shell-bottom .estimate-control select,
.hero-shell-bottom .estimate-option-etc input,
.hero-shell-bottom .hero-search-result {
  background: rgba(12, 20, 36, 0.96) !important;
  color: #f0f4fb !important;
  border-color: rgba(255, 255, 255, 0.1) !important;
}

.hero-shell-bottom .hero-form-field select:focus,
.hero-shell-bottom .hero-form-field input[type="text"]:focus,
.hero-shell-bottom .estimate-control select:focus,
.hero-shell-bottom .estimate-option-etc input:focus {
  border-color: rgba(90, 138, 255, 0.72) !important;
  box-shadow: 0 0 0 4px rgba(43, 99, 246, 0.18) !important;
}

.hero-swiper .ghost-link,
.hero-swiper .ghost-link.secondary {
  background: linear-gradient(135deg, #3a73ff, #2b63f6) !important;
  color: #ffffff !important;
  border-color: rgba(43, 99, 246, 0.2) !important;
}

/* Final dark contrast pass */
.hero-swiper .ghost-link,
.hero-swiper .ghost-link.secondary,
.hero-swiper .swiper-slide-active .ghost-link,
.hero-swiper .swiper-slide-active .ghost-link.secondary,
.hero-swiper .swiper-slide-duplicate-active .ghost-link,
.hero-swiper .swiper-slide-duplicate-active .ghost-link.secondary,
.hero-shell-bottom .hero-intro,
.hero-shell-bottom .hero-estimator,
.hero-form-intro,
.hero-intro-panel,
.hero-estimate-form,
.estimate-form-shell-summary,
.estimate-result-card,
.estimate-base-head,
.estimate-base-pricing,
.estimate-field,
.estimate-option-item,
.estimate-control,
.hero-search-results,
.trust-item,
.value-card,
.process-card,
.offer-card,
.faq-card,
.price-card,
.gallery-post,
.request-summary-card {
  color: #f0f4fb !important;
}

.trust-item,
.gallery-post,
.gallery-post-body,
.site-footer {
  background: linear-gradient(180deg, rgba(9, 17, 31, 0.96), rgba(7, 14, 27, 0.96)) !important;
  border-color: rgba(255, 255, 255, 0.08) !important;
}

.gallery-post-body,
.gallery-post-list,
.gallery-post-list li,
.gallery-post-meta,
.gallery-post-empty,
.site-footer,
.footer-brand,
.footer-info,
.footer-copy {
  color: #f0f4fb !important;
}

.btn,
.ghost-link,
.nav-cta,
.mobile-nav a,
.mobile-nav .nav-cta,
.estimate-toggle-button {
  background: linear-gradient(135deg, rgba(18, 25, 38, 0.98), rgba(28, 40, 62, 0.96)) !important;
  color: #f8fbff !important;
  border-color: rgba(255, 255, 255, 0.12) !important;
  box-shadow: 0 12px 26px rgba(2, 8, 20, 0.28) !important;
}

.btn.primary,
.nav-cta,
.mobile-nav .nav-cta,
.hero-swiper .ghost-link,
.hero-swiper .ghost-link.secondary {
  background: linear-gradient(135deg, #3a73ff, #2b63f6) !important;
  color: #ffffff !important;
}

.btn:not(.primary) {
  background: rgba(16, 24, 40, 0.76) !important;
  color: #f8fbff !important;
}

@media (max-width: 768px) {
  body.joy-hero-rebuild-ready .hero-banner-top .joy-hero__copy {
    align-items: flex-end !important;
    padding: 112px 16px 72px !important;
    visibility: visible !important;
    z-index: 6 !important;
  }

  body.joy-hero-rebuild-ready .hero-banner-top .joy-hero__copy-stack {
    width: min(94vw, 360px) !important;
    max-width: min(94vw, 360px) !important;
    gap: 8px !important;
    overflow: visible !important;
    visibility: visible !important;
    z-index: 6 !important;
  }

  body.joy-hero-rebuild-ready .hero-banner-top .joy-hero__eyebrow,
  body.joy-hero-rebuild-ready .hero-banner-top .joy-hero__title,
  body.joy-hero-rebuild-ready .hero-banner-top .joy-hero__subtitle,
  body.joy-hero-rebuild-ready .hero-banner-top .joy-hero__description,
  body.joy-hero-rebuild-ready .hero-banner-top .joy-hero__accent,
  body.joy-hero-rebuild-ready .hero-banner-top .joy-hero__actions,
  body.joy-hero-rebuild-ready .hero-banner-top .joy-hero__bubble,
  body.joy-hero-rebuild-ready .hero-banner-top .joy-hero__mascot,
  body.joy-hero-rebuild-ready .hero-banner-top .joy-hero__badge {
    opacity: 1 !important;
    visibility: visible !important;
  }

  body.joy-hero-rebuild-ready .hero-banner-top .joy-hero__title {
    font-size: clamp(24px, 7.6vw, 38px) !important;
    line-height: 1.08 !important;
    max-width: 100% !important;
  }

  body.joy-hero-rebuild-ready .hero-banner-top .joy-hero__title.joy-hero__title--small {
    font-size: clamp(20px, 6.8vw, 34px) !important;
    line-height: 1.08 !important;
    max-width: 100% !important;
  }
}


#heroTitle,
#heroVehicleSearch {
  scroll-margin-top: 108px;
}

@media (max-width: 768px) {
  #heroTitle,
  #heroVehicleSearch {
    scroll-margin-top: 124px;
  }

  body.joy-hero-rebuild-ready .hero-banner-top .joy-hero__swiper .swiper-wrapper {
    display: flex !important;
  }

  body.joy-hero-rebuild-ready .hero-banner-top .joy-hero__swiper .swiper-slide {
    flex-shrink: 0 !important;
  }

  body.joy-hero-rebuild-ready .hero-banner-top .joy-hero__slide,
  body.joy-hero-rebuild-ready .hero-banner-top .joy-hero__scene,
  body.joy-hero-rebuild-ready .hero-banner-top .joy-hero__copy,
  body.joy-hero-rebuild-ready .hero-banner-top .joy-hero__media,
  body.joy-hero-rebuild-ready .hero-banner-top .joy-hero__media img {
    opacity: 1 !important;
    visibility: visible !important;
  }
}

/* Light theme overrides */
html.theme-light,
body.theme-light {
  background:
    radial-gradient(circle at top left, rgba(59, 130, 246, 0.12), transparent 28%),
    radial-gradient(circle at top right, rgba(14, 165, 233, 0.1), transparent 24%),
    linear-gradient(180deg, #f8fbff 0%, #edf4ff 52%, #e8eef8 100%) !important;
  color: #162033 !important;
  --color-background: #f8fbff;
  --color-surface: #ffffff;
  --color-surface-muted: #eef3fb;
  --color-surface-strong: #dbe6f7;
  --color-text: #162033;
  --color-text-muted: #5b6778;
  --color-primary: #3a73ff;
  --color-primary-strong: #1d4ed8;
  --color-border: rgba(15, 23, 42, 0.12);
}

body.theme-light .page,
body.theme-light main,
body.theme-light #top,
body.theme-light .hero-section,
body.theme-light .hero-shell-bottom,
body.theme-light .hero-banner-top,
body.theme-light .hero-banner-top .banner-frame,
body.theme-light .hero-banner-top .hero-swiper,
body.theme-light .hero-banner-top .swiper-wrapper,
body.theme-light .hero-banner-top .swiper-slide,
body.theme-light .hero-banner-top .banner-slide,
body.theme-light .hero-banner-top .slide-media,
body.theme-light .hero-shell-bottom .hero-intro,
body.theme-light .hero-shell-bottom .hero-estimator {
  background: transparent !important;
  color: #162033 !important;
}

body.theme-light .hero-shell-bottom .hero-intro,
body.theme-light .hero-shell-bottom .hero-estimator,
body.theme-light .hero-form-intro,
body.theme-light .hero-intro-panel,
body.theme-light .hero-estimate-form,
body.theme-light .estimate-form-shell-summary,
body.theme-light .estimate-result-card,
body.theme-light .estimate-base-head,
body.theme-light .estimate-base-pricing,
body.theme-light .estimate-field,
body.theme-light .estimate-option-item,
body.theme-light .estimate-control,
body.theme-light .hero-search-results,
body.theme-light .trust-item,
body.theme-light .value-card,
body.theme-light .process-card,
body.theme-light .offer-card,
body.theme-light .faq-card,
body.theme-light .price-card,
body.theme-light .gallery-post,
body.theme-light .request-summary-card {
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.98), rgba(244, 248, 255, 0.98)) !important;
  border-color: rgba(15, 23, 42, 0.08) !important;
  color: #162033 !important;
  box-shadow: 0 18px 40px rgba(15, 23, 42, 0.08) !important;
}

body.theme-light .hero-shell-bottom .hero-intro h1,
body.theme-light .hero-shell-bottom .hero-estimator h2,
body.theme-light .hero-shell-bottom .hero-estimator strong,
body.theme-light .hero-shell-bottom .estimate-field strong,
body.theme-light .hero-shell-bottom .estimate-result-card strong,
body.theme-light .hero-shell-bottom .estimate-label,
body.theme-light .hero-shell-bottom .section-kicker,
body.theme-light .hero-shell-bottom .hero-summary,
body.theme-light .hero-shell-bottom .hero-form-field > span,
body.theme-light .hero-shell-bottom .estimate-base-head span,
body.theme-light .hero-shell-bottom .hero-form-intro p,
body.theme-light .hero-shell-bottom .estimate-result-meta,
body.theme-light .hero-shell-bottom .trust-label,
body.theme-light .hero-shell-bottom .gallery-post-meta,
body.theme-light .hero-shell-bottom .gallery-post-empty {
  color: rgba(22, 32, 51, 0.72) !important;
}

body.theme-light .hero-shell-bottom .hero-form-field select,
body.theme-light .hero-shell-bottom .hero-form-field input[type="text"],
body.theme-light .hero-shell-bottom .estimate-control select,
body.theme-light .hero-shell-bottom .estimate-option-etc input,
body.theme-light .hero-shell-bottom .hero-search-result {
  background: rgba(255, 255, 255, 0.98) !important;
  color: #162033 !important;
  border-color: rgba(15, 23, 42, 0.12) !important;
}

body.theme-light .hero-shell-bottom .hero-form-field select:focus,
body.theme-light .hero-shell-bottom .hero-form-field input[type="text"]:focus,
body.theme-light .hero-shell-bottom .estimate-control select:focus,
body.theme-light .hero-shell-bottom .estimate-option-etc input:focus {
  border-color: rgba(43, 99, 246, 0.45) !important;
  box-shadow: 0 0 0 4px rgba(43, 99, 246, 0.12) !important;
}

body.theme-light .hero-swiper .ghost-link,
body.theme-light .hero-swiper .ghost-link.secondary {
  background: linear-gradient(135deg, #3a73ff, #2b63f6) !important;
  color: #ffffff !important;
  border-color: rgba(43, 99, 246, 0.2) !important;
}

body.theme-light .hero-swiper .ghost-link,
body.theme-light .hero-swiper .ghost-link.secondary,
body.theme-light .hero-swiper .swiper-slide-active .ghost-link,
body.theme-light .hero-swiper .swiper-slide-active .ghost-link.secondary,
body.theme-light .hero-swiper .swiper-slide-duplicate-active .ghost-link,
body.theme-light .hero-swiper .swiper-slide-duplicate-active .ghost-link.secondary,
body.theme-light .hero-shell-bottom .hero-intro,
body.theme-light .hero-shell-bottom .hero-estimator,
body.theme-light .hero-form-intro,
body.theme-light .hero-intro-panel,
body.theme-light .hero-estimate-form,
body.theme-light .estimate-form-shell-summary,
body.theme-light .estimate-result-card,
body.theme-light .estimate-base-head,
body.theme-light .estimate-base-pricing,
body.theme-light .estimate-field,
body.theme-light .estimate-option-item,
body.theme-light .estimate-control,
body.theme-light .hero-search-results,
body.theme-light .trust-item,
body.theme-light .value-card,
body.theme-light .process-card,
body.theme-light .offer-card,
body.theme-light .faq-card,
body.theme-light .price-card,
body.theme-light .gallery-post,
body.theme-light .request-summary-card {
  color: #162033 !important;
}

body.theme-light .estimate-highlight-card {
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.98), rgba(239, 244, 252, 0.98)) !important;
  border-color: rgba(15, 23, 42, 0.1) !important;
}

body.theme-light .estimate-highlight-card strong,
body.theme-light .estimate-highlight-card p,
body.theme-light .estimate-highlight-card span,
body.theme-light .hero-search-results,
body.theme-light .hero-search-result {
  color: #162033 !important;
}

body.theme-light .hero-search-results,
body.theme-light .hero-search-result {
  background: rgba(255, 255, 255, 0.98) !important;
  border-color: rgba(15, 23, 42, 0.1) !important;
}

body.theme-light .value-index,
body.theme-light .process-card span,
body.theme-light .offer-list li,
body.theme-light .monthly-plan-list li {
  background: var(--color-surface-muted) !important;
  color: var(--color-primary-strong) !important;
  border-color: rgba(15, 23, 42, 0.08) !important;
}

body.theme-light .offer-list li strong,
body.theme-light .monthly-plan-list li strong,
body.theme-light .offer-list li span,
body.theme-light .monthly-plan-list li span {
  color: #162033 !important;
}

