/* =========================================================
   NISKA — Mobile-first polish (320px → 768px)
   Priority layer loaded after niska-wp.css
   ========================================================= */

html {
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
}

body {
  overflow-x: clip;
}

img,
video,
svg,
canvas {
  max-width: 100%;
  height: auto;
}

body.niska-lock {
  overflow: hidden;
  position: fixed;
  width: 100%;
  left: 0;
  right: 0;
}

/* Cookie banner must NOT lock scroll — reserve space instead */
body:has(.niska-cookie-banner:not([hidden])) {
  padding-bottom: min(42vh, 220px);
}

/* ---------- ≤768px : phones + small tablets ---------- */
@media (max-width: 768px) {
  :root {
    --niska-tap: 44px;
  }

  html,
  body {
    overflow-x: clip;
    max-width: 100%;
  }

  /* ---- Header / nav ---- */
  nav.site-nav {
    padding-top: calc(0.7rem + env(safe-area-inset-top));
    padding-bottom: 0.7rem;
    padding-left: max(0.85rem, env(safe-area-inset-left));
    padding-right: max(0.85rem, env(safe-area-inset-right));
    gap: 0.5rem;
  }

  .nav-logo {
    font-size: 1.35rem;
    letter-spacing: 0.1em;
    min-width: 0;
    flex: 0 1 auto;
  }

  .nav-right {
    gap: 0.4rem;
    flex: 0 0 auto;
  }

  .theme-toggle,
  .hamburger,
  .panier-close,
  .modal-close {
    min-width: var(--niska-tap);
    min-height: var(--niska-tap);
    width: var(--niska-tap);
    height: var(--niska-tap);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0;
  }

  .nav-panier {
    min-width: 0;
    min-height: var(--niska-tap);
    padding: 0 0.7rem;
    gap: 0.35rem;
    box-shadow: none;
  }

  .nav-panier > span:not(.nav-panier-icon):not(.panier-count) {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
  }

  .nav-panier .panier-count {
    width: 20px;
    height: 20px;
    flex: 0 0 20px;
    font-size: 0.7rem;
  }

  /* ---- Menu drawer ---- */
  .menu-drawer {
    top: calc(56px + env(safe-area-inset-top));
    max-height: calc(100svh - 56px - env(safe-area-inset-top));
    max-height: calc(100dvh - 56px - env(safe-area-inset-top));
    padding: 1rem max(1rem, env(safe-area-inset-right)) calc(1.25rem + env(safe-area-inset-bottom)) max(1rem, env(safe-area-inset-left));
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
  }

  .menu-item {
    min-height: var(--niska-tap);
    display: flex;
    align-items: center;
    font-size: clamp(1.35rem, 7vw, 1.7rem);
    padding: 0.35rem 0;
  }

  .menu-sep {
    margin-top: 1rem;
  }

  /* ---- Cart drawer ---- */
  .panier-sidebar {
    width: 100% !important;
    max-width: 100vw;
    right: -100%;
    padding-left: max(1rem, env(safe-area-inset-left));
    padding-right: max(1rem, env(safe-area-inset-right));
  }

  .panier-sidebar.open {
    right: 0;
  }

  .panier-header {
    min-height: var(--niska-tap);
    align-items: center;
  }

  .panier-qty-btn,
  .panier-item-sup,
  .qty-btn {
    min-width: var(--niska-tap) !important;
    min-height: var(--niska-tap) !important;
    width: var(--niska-tap) !important;
    height: var(--niska-tap) !important;
  }

  .panier-qty-input,
  .qty-val,
  input[type="number"] {
    font-size: 16px !important;
    min-height: var(--niska-tap);
  }

  .panier-footer {
    padding-bottom: calc(1rem + env(safe-area-inset-bottom));
  }

  .panier-checkout-btn,
  .panier-footer .button,
  .panier-footer a.button {
    min-height: 50px;
    width: 100%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
  }

  /* ---- Cookie ---- */
  .niska-cookie-banner {
    padding: 1rem max(1rem, env(safe-area-inset-right)) calc(1rem + env(safe-area-inset-bottom)) max(1rem, env(safe-area-inset-left));
  }

  .niska-cookie-inner {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 0.85rem;
  }

  .niska-cookie-actions {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 0.55rem;
    width: 100%;
  }

  .niska-cookie-btn {
    width: 100%;
    min-height: var(--niska-tap);
  }

  /* ---- Main / pages ---- */
  .site-main,
  .niska-page,
  .niska-commerce-shell,
  .niska-page-body {
    max-width: 100%;
    overflow-x: clip;
  }

  .niska-page,
  .niska-commerce-shell {
    padding: calc(88px + env(safe-area-inset-top)) max(1rem, env(safe-area-inset-left)) 3.5rem max(1rem, env(safe-area-inset-right));
  }

  .niska-page-body,
  .niska-page-body p,
  .entry-content,
  .entry-content p {
    overflow-wrap: anywhere;
    word-break: break-word;
    line-height: 1.65;
    font-size: 1rem;
  }

  .entry-content img,
  .niska-page-body img,
  .woocommerce img {
    max-width: 100%;
    height: auto;
  }

  .entry-content table,
  .woocommerce table {
    display: block;
    width: 100%;
    max-width: 100%;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
  }

  /* ---- Forms (no iOS zoom) ---- */
  input,
  select,
  textarea,
  .woocommerce form .input-text,
  .woocommerce form select,
  .woocommerce form textarea,
  .form-group input,
  .form-group textarea,
  .form-group select,
  .woocommerce-Input,
  .select2-container .select2-selection--single {
    font-size: 16px !important;
    max-width: 100%;
  }

  .woocommerce form .form-row {
    width: 100% !important;
    float: none !important;
    padding: 0 !important;
    margin: 0 0 0.85rem !important;
  }

  .woocommerce form .form-row input.input-text,
  .woocommerce form .form-row textarea,
  .woocommerce form .form-row select {
    min-height: var(--niska-tap);
    border-radius: 8px;
    padding: 0.75rem 0.9rem;
  }

  button,
  .button,
  .woocommerce a.button,
  .woocommerce button.button,
  .woocommerce input.button,
  .woocommerce #place_order,
  .single_add_to_cart_button {
    min-height: 48px;
    touch-action: manipulation;
  }

  /* ---- WooCommerce checkout ---- */
  .woocommerce-checkout .col2-set,
  .woocommerce-checkout .col2-set .col-1,
  .woocommerce-checkout .col2-set .col-2,
  .woocommerce-billing-fields,
  .woocommerce-shipping-fields,
  .woocommerce-additional-fields {
    width: 100% !important;
    float: none !important;
    max-width: 100% !important;
    margin: 0 0 1.25rem !important;
  }

  .woocommerce-checkout-review-order-table,
  .woocommerce table.shop_table {
    display: block;
    width: 100%;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
  }

  .woocommerce table.shop_table th,
  .woocommerce table.shop_table td {
    padding: 0.7rem 0.55rem;
    font-size: 0.9rem;
  }

  #order_review_heading,
  .woocommerce-checkout h3 {
    font-size: 1.35rem;
    line-height: 1.25;
  }

  .woocommerce-checkout #payment {
    border-radius: 10px;
    padding: 1rem;
  }

  .woocommerce-checkout #payment .payment_methods li {
    margin: 0 0 0.65rem;
  }

  .woocommerce #place_order {
    width: 100%;
    border-radius: 8px;
    font-size: 0.95rem !important;
  }

  /* ---- Cart page ---- */
  .woocommerce-cart-form,
  .cart-collaterals,
  .cart_totals {
    width: 100% !important;
    float: none !important;
  }

  .woocommerce-cart .cart-collaterals .cart_totals {
    width: 100%;
    float: none;
  }

  .woocommerce a.remove {
    min-width: var(--niska-tap);
    min-height: var(--niska-tap);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 1.4rem !important;
  }

  .woocommerce .quantity .qty {
    width: 3.5rem;
    min-height: var(--niska-tap);
    font-size: 16px !important;
  }

  /* ---- My Account ---- */
  .woocommerce-MyAccount-navigation,
  .woocommerce-MyAccount-content {
    width: 100% !important;
    float: none !important;
    margin: 0 0 1.25rem !important;
  }

  .woocommerce-MyAccount-navigation ul {
    display: grid;
    gap: 0.4rem;
    list-style: none;
    margin: 0;
    padding: 0.75rem;
  }

  .woocommerce-MyAccount-navigation li a {
    display: flex;
    align-items: center;
    min-height: var(--niska-tap);
    padding: 0.55rem 0.85rem;
    border: 1px solid var(--gris-bord);
    border-radius: 8px;
    text-decoration: none;
  }

  .woocommerce-MyAccount-content {
    padding: 1rem;
    border-radius: 10px;
  }

  /* ---- Product page ---- */
  .niska-product-hero {
    grid-template-columns: 1fr !important;
    gap: 1.4rem;
    padding-top: 1.25rem;
  }

  .niska-product-media,
  .niska-product-media img,
  .woocommerce-product-gallery,
  .woocommerce-product-gallery__wrapper,
  .woocommerce-product-gallery__image,
  .woocommerce-product-gallery__image img {
    width: 100%;
    max-width: 100%;
    height: auto;
    border-radius: 10px;
  }

  .woocommerce-product-gallery {
    overflow: hidden;
  }

  .woocommerce-product-gallery .zoomImg {
    display: none !important;
  }

  .niska-single-product.section,
  .section.niska-single-product {
    padding-left: max(1rem, env(safe-area-inset-left));
    padding-right: max(1rem, env(safe-area-inset-right));
    padding-top: calc(5.5rem + env(safe-area-inset-top));
  }

  .dates-grid,
  .billets-grid,
  .places-grid {
    grid-template-columns: 1fr !important;
    gap: 0.75rem;
  }

  .date-card,
  .billet-card,
  .place-card {
    width: 100%;
    max-width: 100%;
    min-width: 0;
  }

  .date-card,
  .billet-card button,
  .billet-btn,
  .place-card a {
    min-height: 44px;
  }

  .modal-qty,
  .qty-controls {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    flex-wrap: wrap;
  }

  .niska-product-price {
    font-size: clamp(1.8rem, 8vw, 2.3rem);
    margin-bottom: 1rem;
  }

  .niska-product-summary form.cart {
    display: grid;
    gap: 0.85rem;
  }

  .niska-product-summary form.cart .quantity,
  .niska-product-summary .single_add_to_cart_button {
    width: 100%;
  }

  .niska-product-summary .single_add_to_cart_button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 52px;
    border-radius: 8px;
  }

  .woocommerce-tabs {
    margin-top: 1.5rem;
  }

  .woocommerce-tabs ul.tabs {
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem;
    padding: 0;
  }

  .woocommerce-tabs ul.tabs li {
    margin: 0 !important;
  }

  .woocommerce-tabs ul.tabs li a {
    display: inline-flex;
    align-items: center;
    min-height: 40px;
    padding: 0.45rem 0.8rem;
  }

  /* ---- Notices ---- */
  .woocommerce-info,
  .woocommerce-message,
  .woocommerce-error,
  .woocommerce-notices-wrapper {
    margin: 0 0 1rem;
    padding: 0.9rem 1rem;
    border-radius: 10px;
    font-size: 0.92rem;
    line-height: 1.45;
  }

  /* ---- Homepage tickets / reviews ---- */
  .sch-tickets-grid,
  .dates-grid,
  .billets-grid {
    grid-template-columns: 1fr !important;
    gap: 0.9rem;
  }

  .sch-ticket-footer {
    flex-direction: column;
    align-items: stretch;
    gap: 0.75rem;
  }

  .sch-ticket-btn,
  .sch-btn-primary {
    width: 100%;
  }

  .sch-proof-cards {
    grid-template-columns: 1fr !important;
  }

  .tp-reviews__top,
  .tp-reviews__grid,
  .niska-infos-grid {
    grid-template-columns: 1fr !important;
  }

  .tp-review__foot {
    flex-wrap: wrap;
    gap: 0.5rem;
    align-items: flex-start;
  }

  .tp-reviews__inner,
  .sch-section-inner {
    padding-left: max(1rem, env(safe-area-inset-left));
    padding-right: max(1rem, env(safe-area-inset-right));
  }

  /* ---- Footer ---- */
  .site-footer,
  footer {
    padding-left: max(1rem, env(safe-area-inset-left));
    padding-right: max(1rem, env(safe-area-inset-right));
    padding-bottom: calc(1.5rem + env(safe-area-inset-bottom));
  }

  .footer-top,
  .footer-legal-links {
    display: grid;
    grid-template-columns: 1fr;
    gap: 0.35rem;
  }

  .footer-col a,
  .footer-legal-links a {
    min-height: var(--niska-tap);
    display: inline-flex;
    align-items: center;
    font-size: 0.86rem;
  }

  /* ---- Modal ---- */
  .modal-overlay,
  [data-ticket-modal] {
    padding: max(0.75rem, env(safe-area-inset-top)) max(0.75rem, env(safe-area-inset-right)) max(0.75rem, env(safe-area-inset-bottom)) max(0.75rem, env(safe-area-inset-left));
  }

  .modal,
  [data-ticket-modal] .modal {
    width: 100%;
    max-width: 100%;
    max-height: calc(100dvh - 1.5rem);
    overflow-y: auto;
    border-radius: 12px;
  }

  /* ---- Select2 / WC extras ---- */
  .select2-container {
    width: 100% !important;
  }

  .woocommerce-order,
  .woocommerce-order-details,
  .woocommerce-customer-details {
    width: 100%;
    overflow-x: auto;
  }
}

/* ---------- ≤480px : compact phones / iPhone SE ---------- */
@media (max-width: 480px) {
  .nav-logo {
    font-size: 1.2rem;
  }

  .theme-toggle {
    width: 40px;
    height: 40px;
    min-width: 40px;
    min-height: 40px;
  }

  .nav-panier {
    padding: 0 0.55rem;
  }

  .sch-hero-title {
    font-size: clamp(3.6rem, 18vw, 4.4rem) !important;
  }

  .sch-hero-subtitle {
    font-size: 0.95rem !important;
    letter-spacing: 0.12em !important;
  }

  .sch-hero-meta {
    font-size: 0.62rem !important;
  }

  .sch-album-card {
    width: 156px !important;
    height: 200px !important;
  }

  .niska-product-price {
    font-size: 1.7rem;
  }

  .woocommerce table.shop_table th,
  .woocommerce table.shop_table td {
    font-size: 0.82rem;
    padding: 0.55rem 0.4rem;
  }
}

/* ---------- ≤360px : SE / very small ---------- */
@media (max-width: 360px) {
  nav.site-nav {
    padding-left: 0.7rem;
    padding-right: 0.7rem;
  }

  .nav-logo {
    font-size: 1.1rem;
  }

  .sch-hero-content {
    padding-left: 12px !important;
    padding-right: 12px !important;
  }

  .sch-hero-countdown-label {
    font-size: 0.52rem !important;
  }
}

/* Prefer reduced motion already in main CSS — reinforce */
@media (prefers-reduced-motion: reduce) {
  .sch-albums-track,
  .sch-hero-img,
  .sch-scroll-hint {
    animation: none !important;
  }
}
