/* ---------------------------------------------------------
   ≤ 1440px  –  Large desktops
   --------------------------------------------------------- */
@media only screen and (max-width: 90rem) {

    /* ---- Site Shell ---- */
    .site-shell {
        padding: 1.5rem 3rem 2rem;
    }
}

/* ---------------------------------------------------------
   ≤ 1024px  –  Small desktops / tablets (landscape)
   --------------------------------------------------------- */
@media only screen and (max-width: 64rem) {

    /* Root scaling */
    html {
        font-size: 93.75%;
        /* 15px base */
    }


    .product-details-section {
        gap: 1rem;
    }


    /* ---- Site Shell ---- */
    .site-shell {
        padding: 1.25rem 2rem 1.75rem;
    }

    /* ---- Header ---- */
    .site-header-logo img {
        max-width: 12rem;
    }

    /* ---- Main Layout ---- */
    .site-main-layout {
        gap: 1.25rem;
    }

    /* ---- Sidebar ---- */
    .site-sidebar {
        width: 15rem;
    }

    /* ---- Category Links ---- */
    .category-links {
        margin: 1rem 0 0 2rem;
    }

    .retro-category-item:nth-child(2) {
        margin-left: 2.5rem;
    }

    /* ---- Product Cards ---- */
    .product-card {
        flex-direction: column;
        gap: 1.5rem;
    }

    .products-list {
        gap: 2rem;
    }

    .product-image-section {
        width: 100%;
        max-width: 20rem;
    }

    /* .product-title-container.decoration-primary {
        margin-left: 2rem;
    } */

    /* ---- Product Sticky Notes ---- */
    .product-sticky-note.yellow {
        right: -2rem;
        width: 5rem;
    }

    .product-sticky-note.blue {
        left: 6rem;
        width: 5rem;
    }

    /* ---- Product Gallery ---- */
    .product-gallery {
        gap: 2rem;
    }

    .product-gallery a:nth-child(1) {
        max-width: 14rem;
    }

    .product-gallery a:nth-child(2) {
        max-width: 16rem;
    }

    .product-gallery a:nth-child(3) {
        max-width: 14rem;
    }

    /* ---- Page Content ---- */
    .page-content {
        padding: 2.5rem 2rem 3rem;
    }

    .page-content.products-page {
        padding: 1.25rem 2rem 5rem;
    }

    .page-inner {
        padding: 3rem 1.5rem 7rem;
    }

    /* ---- Floating Stickers ---- */
    .floating-sticker:nth-child(3) {
        width: 5.5rem;
    }

    .floating-sticker:nth-child(4) {
        left: 12rem;
    }

    .floating-sticker:nth-child(5) {
        left: 11rem;
    }
}

/* ---------------------------------------------------------
   ≤ 768px  –  Tablets (portrait) / large phones
   --------------------------------------------------------- */
@media only screen and (max-width: 48rem) {

    /* Root scaling */
    html {
        font-size: 87.5%;
        /* 14px base */
    }


    .age-gate{
        margin-top: auto !important;
    }

    .category-links,
    .floating-sticker-wrap {
        display: none !important;
    }

    .wpgmp_map_container.wpgmp-map-1 {
        max-width: 100%;
    }

    .page-content.store-page {
        padding-top: 2.5rem;
    }

    /* ---- Mobile Nav Toggle ---- */
    .mobile-nav-toggle {
        display: flex;
        flex-direction: column;
        justify-content: space-between;
        width: 1.875rem;
        height: 1.25rem;
        background: transparent;
        border: none;
        cursor: pointer;
        padding: 0;
        z-index: 100;
    }

    .mobile-nav-toggle:focus,
    .mobile-nav-toggle:focus-within {
        border: none;
        outline: none;
    }

    .mobile-nav-toggle span {
        width: 100%;
        height: 0.1875rem;
        background-color: var(--color-black);
        transition: var(--transition-default);
        border-radius: 0.125rem;
    }

    .mobile-nav-toggle.open span:nth-child(1) {
        transform: translateY(0.5rem) rotate(45deg);
    }

    .mobile-nav-toggle.open span:nth-child(2) {
        opacity: 0;
    }

    .mobile-nav-toggle.open span:nth-child(3) {
        transform: translateY(-0.55rem) rotate(-45deg);
    }

    /* ---- Floating Stickers & Sidebar ---- */
    .floating-sticker-wrap {
        justify-content: space-between;
        width: 100%;
        margin-bottom: 1.5rem;
        display: flex;
    }

    .floating-sticker {
        position: static !important;
        animation: none !important;
        transform: none !important;
    }

    .sticker-inner {
        animation: none !important;
    }

    /* ---- Main Layout – stack vertically ---- */
    .site-shell {
        padding: 1rem 1.5rem 1.5rem;
    }

    .site-header-logo img {
        max-width: 10rem;
    }

    .site-main-layout {
        flex-direction: column;
        gap: 1.5rem;
        position: relative;
    }

    /* ---- Sidebar – normal flow ---- */
    .site-sidebar {
        width: 100%;
        order: -1;
    }

    /* ---- Nav Box – absolute overlay with transition ---- */
    .nav-box {
        position: absolute;
        top: 0;
        left: 0;
        width: 100%;
        background-color: var(--color-bg);
        z-index: 90;
        opacity: 0;
        visibility: hidden;
        transform: translateY(-20px);
        transition: all 0.3s ease-in-out;
        border: 2px solid var(--color-black);
    }

    body.mobile-menu-open .nav-box {
        opacity: 1;
        visibility: visible;
        transform: translateY(0);
    }

    /* ---- Category Links ---- */
    .category-links {
        margin: 1rem 0 0 1rem;
        flex-direction: row;
        flex-wrap: wrap;
        gap: 0.75rem;
    }

    .retro-category-item:nth-child(2) {
        margin-left: 0;
    }

    /* ---- Product Cards ---- */
    .product-card {
        flex-direction: column;
        gap: 1.5rem;
    }

    .product-image-section {
        width: 100%;
        max-width: 18rem;
    }

    /* .product-title-container.decoration-primary {
        margin-left: 3rem;
    } */

    /* ---- Product Sticky Notes – hide on tablet ---- */
    .product-sticky-note {
        display: none;
    }

    /* ---- Product Gallery ---- */
    .product-gallery {
        flex-wrap: wrap;
        gap: 1.5rem;
        align-items: flex-start;
        justify-content: center;
    }

    .product-gallery a:nth-child(1),
    .product-gallery a:nth-child(2),
    .product-gallery a:nth-child(3) {
        width: 30%;
        max-width: 18rem;
        left: 0 !important;
        top: auto !important;
        position: relative;
    }

    /* ---- Find Us ---- */
    .find-us-item-wrap {
        margin-top: 2.5rem;
    }

    .find-us-gallery {
        max-width: 100%;
    }

    /* ---- Age Gate ---- */
    .age-gate {
        max-width: 95%;
    }

    .age-gate__form {
        max-width: 95%;
        margin-top: 8rem;
        padding: 0.5rem 0.5rem 2rem;
    }

    .age-gate__heading {
        top: -10rem;
    }

    .age-gate__heading-title--logo {
        width: 20rem !important;
        height: auto !important;
    }

    .age-gate__headline {
        font-size: 1.125rem;
        padding: 0.875rem 1.5rem;
    }

    .age-gate__subheadline {
        font-size: 1.125rem;
        margin: 1.5rem 0 1.5rem;
    }

    .age-gate__buttons {
        flex-direction: column;
        align-items: center;
    }

    /* .age-gate__submit {
        width: 80%;
    } */

    /* ---- Floating Stickers – simplify positions ---- */
    .floating-sticker:nth-child(1) {
        top: -2.5rem;
        width: 1.75rem;
    }

    .floating-sticker:nth-child(2) {
        top: 18rem;
        left: 0;
        width: 2.5rem;
    }

    .floating-sticker:nth-child(3) {
        top: 24rem;
        left: 2rem;
        width: 4.5rem;
    }

    .floating-sticker:nth-child(4) {
        display: none;
    }

    .floating-sticker:nth-child(5) {
        display: none;
    }

    /* ---- Page Content ---- */
    .page-content {
        padding: 2rem 1.5rem 2.5rem;
    }

    .page-content.products-page {
        padding: 1rem 1.5rem 4rem;
    }

    .page-content.contact-page {
        padding: 2.5rem 1rem 2.5rem;
    }

    .page-inner {
        padding: 2rem 1rem 5rem;
    }

    /* ---- Page Title ---- */
    .page-title {
        font-size: 1rem;
        padding: 0.4rem 1rem;
    }

    /* ---- Forms ---- */
    .wpforms-container {
        max-width: 100% !important;
    }

    .wpforms-form .wpforms-field input,
    .wpforms-form .wpforms-field textarea,
    .wpforms-form .wpforms-field select {
        font-size: 1rem !important;
    }

    .wpforms-form .wpforms-field textarea {
        min-height: 8rem !important;
    }

    /* ---- Sticker Button ---- */
    .sticker-inner .button {
        font-size: 0.75rem;
        padding: 0.375rem 0.75rem;
    }
}

/* ---------------------------------------------------------
   ≤ 480px  –  Small phones (portrait)
   --------------------------------------------------------- */
@media only screen and (max-width: 30rem) {

    /* Root scaling */
    html {
        font-size: 81.25%;
        /* 13px base */
    }

    .age-gate__form-elements {
        flex-direction: column;
        align-items: center;
    }

    /* ---- Site Shell ---- */
    .site-shell {
        padding: 0.75rem 0.75rem 1rem;
    }

    /* ---- Header ---- */
    .site-header-logo img {
        max-width: 8rem;
    }

    /* ---- Sidebar ---- */
    .site-sidebar a {
        font-size: 0.875rem;
        padding: 0.35rem 0.5rem;
    }

    .nav-box-header {
        font-size: 0.875rem;
        padding: 0.3rem 0.5rem;
    }

    /* ---- Category Links – tighter ---- */
    .category-links {
        margin: 0.75rem 0 0 0.5rem;
    }

    .retro-category-item img {
        max-width: 5.5rem;
    }

    /* ---- Product Cards ---- */
    .product-card {
        gap: 1rem;
    }

    .product-image-section {
        max-width: 100%;
    }

    /* .product-title-container.decoration-primary {
        margin-left: 2rem;
        margin-top: 0.5rem;
    } */

    .home-page .decoration-primary .product-label::before {
        padding: 0.75rem 2rem 0.75rem 2.5rem;
    }

    .product-label {
        font-size: 1rem;
    }

    .product-title-container .product-label {
        font-size: 1rem;
    }

    .product-description p {
        font-size: 0.8125rem;
        line-height: 1.1rem;
    }

    /* ---- Product Gallery – full width images ---- */
    .product-gallery {
        gap: 1rem;
    }

    .product-gallery a:nth-child(1),
    .product-gallery a:nth-child(2),
    .product-gallery a:nth-child(3) {
        max-width: 100%;
    }

    .product-gallery a:hover {
        transform: none !important;
    }

    /* ---- Find Us ---- */
    .find-us-item-wrap {
        margin-top: 2rem;
    }

    .find-us-image img {
        max-width: 5rem;
    }

    /* ---- Age Gate ---- */
    .age-gate {
        max-width: 100%;
    }

    .age-gate__form {
        padding: 0.5rem 0.5rem 1.7rem;
        margin-top: 6rem;
    }

    .age-gate__heading {
        top: -7.5rem;
    }

    .age-gate__heading-title--logo {
        width: 14rem !important;
    }

    .age-gate__headline {
        font-size: 1rem;
        padding: 0.75rem 1rem;
        border-radius: 0.5rem;
    }

    .age-gate__subheadline {
        font-size: 1rem;
        margin: 1rem 0 1.25rem;
    }

    .age-gate__buttons {
        gap: 0.75rem;
    }

    .age-gate__submit {
        /* width: 100%; */
        /* min-width: auto !important; */
        font-size: 0.8125rem !important;
    }

    /* ---- Floating Stickers – hide most ---- */
    .floating-sticker:nth-child(2),
    .floating-sticker:nth-child(3),
    .floating-sticker:nth-child(4),
    .floating-sticker:nth-child(5) {
        display: none;
    }

    .floating-sticker:nth-child(1) {
        top: -2rem;
        width: 1.5rem;
    }

    /* ---- Page Content ---- */
    .page-content {
        padding: 1.5rem 1rem 2rem;
    }

    .page-content.products-page {
        padding: 1rem 0.75rem 3rem;
    }

    .page-content.contact-page {
        padding: 2rem 0.75rem 2rem;
    }

    .page-inner {
        padding: 1.5rem 0.75rem 3rem;
    }

    /* ---- Page Title ---- */
    .page-title {
        font-size: 0.875rem;
        padding: 0.375rem 0.75rem;
    }

    /* ---- Highlighter Titles ---- */
    .highlighter-title {
        padding: 0.15rem 0.75rem;
        font-size: 0.875rem;
    }

    /* ---- Forms ---- */
    .wpforms-form .wpforms-field input {
        height: 2.25rem !important;
    }

    .wpforms-form .wpforms-field select {
        height: 2.25rem !important;
    }

    .wpforms-form .wpforms-field input,
    .wpforms-form .wpforms-field textarea,
    .wpforms-form .wpforms-field select {
        font-size: 0.875rem !important;
        padding: 0.5rem 0.75rem !important;
    }

    .wpforms-form .wpforms-field textarea {
        min-height: 7rem !important;
    }

    .wpforms-form button.wpforms-submit {
        font-size: 0.875rem !important;
        padding: 0.5rem !important;
    }

    .wpforms-form .wpforms-submit-container {
        margin-top: 1rem !important;
    }

    /* ---- Sticker Button ---- */
    .sticker-inner .button {
        font-size: 0.6875rem;
        padding: 0.3rem 0.625rem;
    }

    /* ---- Decoration adjustments ---- */
    .decoration-secondary,
    .decoration-primary {
        margin-bottom: 1.25rem;
    }

    .products-page .decoration-secondary .product-label,
    .decoration-ternary .product-label {
        font-size: 0.9375rem;
    }

    .products-page .decoration-secondary .product-label::after,
    .decoration-ternary .product-label::after {
        height: 2rem;
        background-size: contain;
    }

    .decoration-ternary .product-label {
        padding: 0.25rem 0.5rem 1rem;
    }

    /* ---- Forms overrides ---- */
    .wpforms-recaptcha-container {
        max-width: 100% !important;
        overflow: hidden !important;
        padding: 0.5rem !important;
    }
}