/* ==========================================================================
   SONIQ Live — Responsive adaptations
   --------------------------------------------------------------------------
   Breakpoints follow Bootstrap 5:
   xxl ≥1400 · xl ≥1200 · lg ≥992 · md ≥768 · sm ≥576 · xs <576
   Mobile layouts are re-composed, not simply scaled down.
   ========================================================================== */

/* Large desktop
   ========================================================================== */
@media (min-width: 1600px) {
  .container-xxl {
    max-width: 1520px;
  }

  .sq-hero__content {
    max-width: 1180px;
  }
}

/* Laptop (≤1399px)
   ========================================================================== */
@media (max-width: 1399.98px) {
  .sq-now-playing {
    display: none;
  }
}

/* ≤1199px
   ========================================================================== */
@media (max-width: 1199.98px) {
  .sq-nav__menu {
    gap: 0.25rem;
  }

  .sq-nav__menu a {
    font-size: 0.8125rem;
  }

  .sq-hero .sq-spin-badge {
    width: 120px;
    height: 120px;
    bottom: 150px;
  }

  .sq-about__badge {
    left: 0;
  }
}

/* Tablet & mobile navigation (≤991px)
   ========================================================================== */
@media (max-width: 991.98px) {
  :root {
    --sq-header-h: 76px;
  }

  .sq-header.is-scrolled {
    --sq-header-h: 68px;
  }

  .sq-header__toggle {
    display: block;
  }

  .sq-header__actions .sq-btn {
    display: none;
  }

  /* Full-screen menu panel. Same <nav> markup as desktop for easy
     wp_nav_menu() conversion. */
  .sq-nav {
    position: fixed;
    inset: 0;
    z-index: 1;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    gap: 2rem;
    padding: calc(var(--sq-header-h) + 30px) 24px 32px;
    overflow-y: auto;
    background:
      radial-gradient(circle at 100% 0%, rgba(var(--sq-primary-rgb), 0.4), transparent 50%),
      radial-gradient(circle at 0% 100%, rgba(var(--sq-accent-rgb), 0.18), transparent 45%),
      var(--sq-bg);
    clip-path: circle(0 at calc(100% - 45px) 38px);
    visibility: hidden;
    transition: clip-path 0.8s var(--sq-ease-in-out), visibility 0s 0.8s;
  }

  .sq-nav.is-open {
    clip-path: circle(150% at calc(100% - 45px) 38px);
    visibility: visible;
    transition: clip-path 0.8s var(--sq-ease-in-out), visibility 0s;
  }

  .sq-nav__menu {
    flex-direction: column;
    align-items: flex-start;
    gap: 0.15rem;
    counter-reset: sq-nav;
  }

  .sq-nav__menu li {
    overflow: hidden;
  }

  .sq-nav__menu a {
    display: flex;
    align-items: baseline;
    gap: 0.9rem;
    padding: 0.35rem 0;
    font-family: var(--sq-font-display);
    font-size: clamp(1.75rem, 7.5vw, 2.75rem);
    font-weight: 700;
    letter-spacing: -0.02em;
    text-transform: none;
    color: var(--sq-heading);
    transform: translateY(110%);
    transition: transform 0.7s var(--sq-ease), color 0.3s;
  }

  .sq-nav__menu a::before {
    counter-increment: sq-nav;
    content: "0" counter(sq-nav);
    font-family: var(--sq-font-body);
    font-size: 0.75rem;
    font-weight: 700;
    letter-spacing: 0.1em;
    color: var(--sq-accent-text);
  }

  .sq-nav__menu a::after {
    display: none;
  }

  .sq-nav__menu a:hover,
  .sq-nav__menu .current-menu-item > a {
    color: var(--sq-accent-text);
  }

  .sq-nav.is-open .sq-nav__menu a {
    transform: none;
  }

  /* Mobile sub-menus: accordion under their parent */
  .sq-nav__menu > li {
    flex-wrap: wrap;
    width: 100%;
  }

  .sq-submenu-toggle {
    width: 40px;
    height: 40px;
    margin-left: auto;
    font-size: 0.9rem;
    color: var(--sq-heading);
    border: 1px solid var(--sq-border-strong);
  }

  .menu-item-has-children.is-open > .sq-submenu-toggle {
    transform: rotate(180deg);
  }

  .sq-nav .sub-menu {
    position: static;
    display: none;
    flex-basis: 100%;
    min-width: 0;
    margin: 0.25rem 0 0.75rem 2rem;
    padding: 0;
    background: transparent;
    border: 0;
    box-shadow: none;
    -webkit-backdrop-filter: none;
    backdrop-filter: none;
    opacity: 1;
    visibility: visible;
    transform: none;
  }

  .menu-item-has-children.is-open > .sub-menu {
    display: block;
  }

  .sq-nav .sub-menu li {
    overflow: visible;
  }

  .sq-nav .sub-menu a {
    padding: 0.45rem 0;
    font-family: var(--sq-font-body);
    font-size: 1rem;
    transform: none;
  }

  .sq-nav .sub-menu a::before {
    display: none;
  }

  .sq-nav .sub-menu a:hover,
  .sq-nav .sub-menu .current-menu-item > a {
    background: transparent;
    padding-left: 0.4rem;
  }

  .sq-nav__menu .sub-menu a {
    counter-increment: none;
  }

  .sq-nav.is-open .sq-nav__menu li:nth-child(1) a { transition-delay: 0.25s; }
  .sq-nav.is-open .sq-nav__menu li:nth-child(2) a { transition-delay: 0.3s; }
  .sq-nav.is-open .sq-nav__menu li:nth-child(3) a { transition-delay: 0.35s; }
  .sq-nav.is-open .sq-nav__menu li:nth-child(4) a { transition-delay: 0.4s; }
  .sq-nav.is-open .sq-nav__menu li:nth-child(5) a { transition-delay: 0.45s; }
  .sq-nav.is-open .sq-nav__menu li:nth-child(6) a { transition-delay: 0.5s; }
  .sq-nav.is-open .sq-nav__menu li:nth-child(7) a { transition-delay: 0.55s; }

  .sq-nav__extra {
    display: block;
    opacity: 0;
    transform: translateY(20px);
    transition: opacity 0.6s var(--sq-ease), transform 0.6s var(--sq-ease);
  }

  .sq-nav.is-open .sq-nav__extra {
    opacity: 1;
    transform: none;
    transition-delay: 0.6s;
  }

  .sq-nav__extra .sq-btn {
    width: 100%;
    margin-bottom: 1.5rem;
  }

  .sq-nav__extra .sq-contact-list {
    margin-bottom: 1.5rem;
  }

  /* Hero */
  .sq-hero {
    align-items: flex-end;
    padding-bottom: 150px;
  }

  .sq-hero__overlay {
    background:
      linear-gradient(0deg, var(--sq-bg) 0%, rgba(8, 8, 13, 0.85) 35%, rgba(8, 8, 13, 0.35) 75%, rgba(8, 8, 13, 0.55) 100%),
      radial-gradient(ellipse at 80% 10%, rgba(var(--sq-primary-rgb), 0.45), transparent 55%);
  }

  .sq-hero .sq-spin-badge {
    top: calc(var(--sq-header-h) + 24px);
    bottom: auto;
    width: 110px;
    height: 110px;
  }

  .sq-hero .sq-spin-badge__core {
    width: 50px;
    height: 50px;
    font-size: 1.2rem;
  }

  .sq-hero__wave {
    height: 120px;
  }

  /* About */
  .sq-about__media {
    max-width: 620px;
    margin: 0 auto clamp(40px, 7vw, 60px);
  }

  /* Stats */
  .sq-stats {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .sq-stat:nth-child(3) {
    border-left: 0;
  }

  .sq-stat:nth-child(n + 3) {
    border-top: 1px solid var(--sq-border);
    margin-top: 2rem;
  }

  /* Events */
  .sq-event-feature {
    min-height: 480px;
  }

  /* Why */
  .sq-why__intro {
    position: static;
    margin-bottom: 2.5rem;
  }

  /* Timeline becomes single-sided */
  .sq-timeline::before,
  .sq-timeline__progress {
    left: 9px;
  }

  .sq-timeline__item,
  .sq-timeline__item:nth-child(even) {
    width: 100%;
    margin-left: 0;
    padding: 0 0 2.75rem 3rem;
    text-align: left;
  }

  .sq-timeline__item::before,
  .sq-timeline__item:nth-child(even)::before {
    left: 0;
    right: auto;
  }

  .sq-map {
    aspect-ratio: 4 / 3;
  }
}

/* Touch devices: no cursor-follow previews; show thumbnails inline */
@media (hover: none), (max-width: 991.98px) {
  .sq-event-row {
    grid-template-columns: 110px minmax(0, 1fr);
    grid-template-areas:
      "thumb info"
      "thumb action";
    gap: 0.5rem 1.25rem;
    padding: 1.25rem 0;
  }

  .sq-event-row::before {
    display: none;
  }

  .sq-event-row__preview {
    position: relative;
    grid-area: thumb;
    width: 100%;
    height: 100%;
    min-height: 120px;
    opacity: 1;
    transform: none !important;
    box-shadow: none;
    pointer-events: auto;
  }

  .sq-event-row > .sq-date-badge {
    display: none;
  }

  .sq-event-row__info {
    grid-area: info;
  }

  .sq-event-row__action {
    grid-area: action;
  }

  .sq-event-row__date-inline {
    display: inline !important;
  }

  /* Reveal artist socials permanently on touch */
  .sq-artist-card .sq-social {
    max-height: 60px;
    margin-top: 1rem;
    opacity: 1;
    transform: none;
  }

  .sq-artist-card__media::before {
    opacity: 0.55;
  }
}

/* ≤767px
   ========================================================================== */
@media (max-width: 767.98px) {
  body {
    font-size: 1rem;
  }

  .sq-section__head--split {
    align-items: flex-start;
  }

  .sq-hero__title {
    font-size: clamp(2.5rem, 12.5vw, 4.5rem);
  }

  .sq-hero__line--outline {
    -webkit-text-stroke-width: 1.5px;
  }

  .sq-hero__tagline {
    margin-bottom: 2rem;
  }

  .sq-marquee {
    padding: 1rem 0;
  }

  .sq-about__media {
    padding: 0 8% 20% 0;
  }

  .sq-about__img--float {
    display: none;
  }

  .sq-about__badge {
    top: 5%;
    bottom: auto;
    left: -6px;
    padding: 1rem 1.15rem;
  }

  .sq-checklist {
    grid-template-columns: 1fr;
  }

  .sq-gallery {
    columns: 2;
    column-gap: 0.75rem;
  }

  .sq-gallery__item {
    margin-bottom: 0.75rem;
  }

  .sq-gallery__overlay {
    padding: 0.9rem;
  }

  .sq-gallery__zoom {
    width: 46px;
    height: 46px;
    margin: -23px 0 0 -23px;
    font-size: 1.1rem;
  }

  .sq-gallery__caption {
    font-size: 0.875rem;
  }

  .sq-gallery__play {
    width: 56px;
    height: 56px;
    margin: -28px 0 0 -28px;
    font-size: 1.5rem;
  }

  .sq-lightbox {
    padding: 70px 12px 90px;
  }

  .sq-lightbox__prev,
  .sq-lightbox__next {
    top: auto;
    bottom: 20px;
    margin: 0;
  }

  .sq-lightbox__prev { left: calc(50% - 64px); }
  .sq-lightbox__next { right: calc(50% - 64px); }

  .sq-lightbox__stage img,
  .sq-lightbox__stage video {
    max-height: calc(100dvh - 220px);
  }

  .sq-testimonials .swiper-slide {
    opacity: 1;
    transform: none;
  }

  .sq-footer__bottom {
    flex-direction: column;
    align-items: flex-start;
  }

  .sq-back-to-top {
    right: 16px;
    bottom: 16px;
    width: 50px;
    height: 50px;
  }

  .sq-filters {
    flex-wrap: nowrap;
    margin-inline: -16px;
    padding-inline: 16px;
    overflow-x: auto;
    scrollbar-width: none;
    -webkit-mask-image: linear-gradient(90deg, transparent, #000 16px, #000 calc(100% - 24px), transparent);
    mask-image: linear-gradient(90deg, transparent, #000 16px, #000 calc(100% - 24px), transparent);
  }

  .sq-filters::-webkit-scrollbar {
    display: none;
  }

  .sq-filter {
    flex-shrink: 0;
  }
}

/* ≤575px (small mobile)
   ========================================================================== */
@media (max-width: 575.98px) {
  /* Unbounded is very wide: keep long single words (e.g. "Entertainment")
     inside the viewport on phones. */
  .sq-page-hero__title {
    font-size: clamp(1.9rem, 9vw, 3rem);
  }

  .sq-heading-lg {
    font-size: clamp(1.8rem, 8.4vw, 2.6rem);
  }

  .container,
  .container-xxl {
    padding-inline: 20px;
  }

  .sq-hero {
    padding-bottom: 130px;
  }

  .sq-hero__kicker {
    font-size: 0.6875rem;
    letter-spacing: 0.1em;
  }

  .sq-hero__ctas .sq-btn {
    flex: 1 1 100%;
  }

  .sq-hero .sq-spin-badge {
    display: none;
  }

  .sq-btn {
    min-height: 52px;
    padding: 0.85rem 1.5rem;
  }

  .sq-btn--lg {
    min-height: 58px;
    padding: 1rem 1.75rem;
  }

  .sq-stats {
    grid-template-columns: 1fr 1fr;
  }

  .sq-stat {
    padding: 1.5rem 0.9rem 0;
  }

  .sq-stat__label {
    font-size: 0.75rem;
  }

  .sq-event-feature {
    min-height: 0;
    padding-top: 120px;
  }

  .sq-event-feature .sq-event-actions .sq-btn,
  .sq-event-card .sq-event-actions .sq-btn {
    flex: 1 1 auto;
  }

  .sq-event-row {
    grid-template-columns: 92px minmax(0, 1fr);
    gap: 0.5rem 1rem;
  }

  .sq-event-row__preview {
    min-height: 104px;
  }

  .sq-event-row .sq-event-meta {
    flex-direction: column;
    gap: 0.2rem;
  }

  .sq-cta__title {
    font-size: clamp(2.2rem, 11vw, 3.25rem);
  }

  .sq-cta__actions .sq-btn {
    width: 100%;
  }

  .sq-gallery {
    column-gap: 0.6rem;
  }

  .sq-gallery__item {
    margin-bottom: 0.6rem;
  }

  .sq-gallery__caption {
    display: none;
  }

  .sq-footer__wordmark {
    font-size: 23vw;
  }

  .sq-contact-card {
    flex-direction: column;
    gap: 1rem;
  }

  .sq-section__ghost {
    display: none;
  }
}

/* Very small screens (≤374px)
   ========================================================================== */
@media (max-width: 374.98px) {
  .sq-logo {
    font-size: 1.15rem;
  }

  .sq-logo__mark {
    width: 34px;
    height: 34px;
  }

  .sq-hero__title {
    font-size: 2.3rem;
  }

  .sq-stats {
    grid-template-columns: 1fr;
  }

  .sq-stat + .sq-stat {
    border-left: 0;
    border-top: 1px solid var(--sq-border);
    margin-top: 1.5rem;
  }
}

/* Short landscape phones: keep hero content visible */
@media (max-height: 520px) and (orientation: landscape) {
  .sq-hero {
    min-height: auto;
    padding-top: calc(var(--sq-header-h) + 30px);
    padding-bottom: 110px;
  }

  .sq-hero__title {
    font-size: clamp(2.2rem, 7vw, 3.5rem);
  }

  .sq-scroll-cue,
  .sq-hero .sq-spin-badge {
    display: none;
  }
}
