/*
Theme Name: Narwhal Music
Theme URI: https://narwhalmusic.co.uk
Author: Narwhal Music
Author URI: https://narwhalmusic.co.uk
Description: A WooCommerce music store theme with Artist CPT and taxonomy-based filtering. Tag artist profiles and products with the same artist_tag term for seamless shop filtering, product page artist panels, and purchase history in My Account.
Version: 1.8.1
Requires at least: 6.0
Tested up to: 6.7
Requires PHP: 8.0
WC requires at least: 8.0
WC tested up to: 9.0
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: music-outlet
Tags: woocommerce, music, e-commerce, custom-post-type
*/

/* ── Narwhal Music colour scheme ───────────────────────────────────────────── */

:root {
    --nm-navy:          #1a2b5e;
    --nm-navy-deep:     #162348;
    --nm-navy-mid:      #3d5499;
    --nm-navy-muted:    #8ba0cc;
    --nm-navy-tint:     #e8f0fb;
    --nm-gold-bright:   #e0bc4a;
    --nm-gold-dark:     #b8922e;
    --nm-gold-tint:     #f0ead8;
    --nm-off-white:     #f5f5f0;
    --nm-white:         #ffffff;
    --nm-border:        #d8d8d0;
    --nm-text:          #1a2b5e;
    --nm-text-muted:    #5a6a8a;
}

/* ── Reset & base ──────────────────────────────────────────────────────────── */

*, *::before, *::after { box-sizing: border-box; }

body {
    margin: 0;
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
    font-size: 16px;
    line-height: 1.6;
    color: var(--nm-text);
    background: var(--nm-off-white);
}

a { color: var(--nm-navy); text-decoration: underline; }
a:hover { color: var(--nm-navy-mid); }

img { max-width: 100%; height: auto; display: block; }

h1, h2, h3, h4 { line-height: 1.2; margin: 0 0 0.75em; color: var(--nm-navy); }

/* ── Site wrapper ──────────────────────────────────────────────────────────── */

.site-wrapper {
    max-width: 1280px;
    margin: 0 auto;
    padding: 0 1.5rem;
}

/* ── Site header ───────────────────────────────────────────────────────────── */

.site-header {
    background: var(--nm-navy);
    color: var(--nm-off-white);
    padding: 0 1.5rem;
    position: sticky;
    top: 0;
    z-index: 100;
    border-bottom: 2px solid var(--nm-navy-deep);
    overflow: visible;
}

.site-header__inner {
    max-width: 1280px;
    margin: 0 auto;
    display: flex;
    align-items: center;
    justify-content: space-between;
    height: 64px;
    gap: 2rem;
}

.site-header__branding a {
    color: var(--nm-off-white);
    text-decoration: none;
    font-size: 1.25rem;
    font-weight: 700;
    letter-spacing: -0.02em;
}

.site-header__nav ul {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    gap: 1.5rem;
}

/* ── Header nav dropdowns ──────────────────────────────────────────────────── */

.site-header__nav li { position: relative; }

.site-header__nav .sub-menu {
    display: none;
    position: absolute;
    top: 100%;
    left: 0;
    background: var(--nm-navy-deep);
    border: 1px solid rgba(255,255,255,0.1);
    border-radius: 0 0 6px 6px;
    min-width: 180px;
    z-index: 200;
    padding: 0.4rem 0;
    box-shadow: 0 8px 24px rgba(0,0,0,0.2);
    flex-direction: column;
    gap: 0;
    list-style: none;
    margin: 0;
}

.site-header__nav li:hover > .sub-menu,
.site-header__nav li.focus > .sub-menu {
    display: flex;
}

.site-header__nav .sub-menu li {
    display: block;
    width: 100%;
}

.site-header__nav .sub-menu li a {
    display: block;
    padding: 0.55rem 1.1rem;
    font-size: 0.875rem;
    color: var(--nm-navy-muted);
    white-space: nowrap;
    border-bottom: 1px solid rgba(255,255,255,0.05);
}

.site-header__nav .sub-menu li:last-child a { border-bottom: none; }

.site-header__nav .sub-menu li a:hover { color: var(--nm-gold-bright); }

/* Arrow indicator on parent items with children */
.site-header__nav .menu-item-has-children > a::after {
    content: '';
    display: inline-block;
    width: 0;
    height: 0;
    border-left: 4px solid transparent;
    border-right: 4px solid transparent;
    border-top: 4px solid currentColor;
    margin-left: 5px;
    vertical-align: middle;
    opacity: 0.7;
}

/* Mobile: submenus stack vertically */
@media ( max-width: 768px ) {
    .site-header__nav .sub-menu {
        position: static;
        display: none;
        border: none;
        border-radius: 0;
        box-shadow: none;
        background: rgba(0,0,0,0.15);
        padding: 0;
        min-width: 0;
        flex-direction: column;
    }

    .site-header__nav li.is-open > .sub-menu { display: flex; }

    .site-header__nav .sub-menu li a {
        padding: 0.55rem 0 0.55rem 1.25rem;
        font-size: 0.9rem;
        border-bottom: 1px solid rgba(255,255,255,0.04);
    }

    .site-header__nav .menu-item-has-children > a::after {
        float: right;
        margin-top: 0.45rem;
    }
}

.site-header__nav a {
    color: var(--nm-navy-muted);
    text-decoration: none;
    font-size: 0.9rem;
    transition: color 0.15s;
}

.site-header__nav a:hover,
.site-header__nav .current-menu-item > a,
.site-header__nav .current_page_item > a {
    color: var(--nm-gold-bright);
}

.site-header__cart {
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.site-header__cart a {
    color: var(--nm-gold-bright);
    text-decoration: none;
    font-size: 0.9rem;
    font-weight: 600;
    white-space: nowrap;
}

.site-header__cart a:hover { color: var(--nm-off-white); }
/* ── Site footer ───────────────────────────────────────────────────────────── */

.site-footer {
    background: var(--nm-navy-deep);
    color: var(--nm-navy-muted);
    padding: 2rem 1.5rem;
    margin-top: 4rem;
    font-size: 0.875rem;
}

.site-footer__inner {
    max-width: 1280px;
    margin: 0 auto;
}

.site-footer__tagline {
    color: var(--nm-off-white);
    font-size: 0.95rem;
    margin: 0 0 1.25rem;
    padding-bottom: 1.25rem;
    border-bottom: 1px solid rgba(255,255,255,0.08);
}

.site-footer__bottom {
    display: flex;
    justify-content: space-between;
    align-items: center;
    flex-wrap: wrap;
    gap: 1rem;
}

.site-footer__copyright {
    margin: 0;
    color: var(--nm-navy-muted);
}

.site-footer__nav ul {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    gap: 1.25rem;
}

.site-footer__nav a { color: var(--nm-navy-muted); text-decoration: none; }
.site-footer__nav a:hover { color: var(--nm-gold-bright); }

/* ── Main content area ─────────────────────────────────────────────────────── */

.site-main {
    max-width: 1280px;
    margin: 2rem auto;
    padding: 0 1.5rem;
}

/* ── WooCommerce: shop layout (full width) ─────────────────────────────────── */

.shop-main {
    max-width: 1280px;
    margin: 2rem auto;
    padding: 0 1.5rem;
}

/* ── Shop controls bar (filter + ordering) ─────────────────────────────────── */

.shop-controls {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 1rem;
    margin-bottom: 1.5rem;
    padding-bottom: 1.25rem;
    border-bottom: 1px solid var(--nm-border);
}

.shop-controls__ordering {
    display: flex;
    align-items: center;
    gap: 1rem;
}

/* ── Artist dropdown filter ────────────────────────────────────────────────── */

.artist-dropdown-filter {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    flex-wrap: wrap;
}

.artist-filter-select {
    appearance: none;
    background: var(--nm-white) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%231a2b5e' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E") no-repeat right 0.75rem center;
    border: 1px solid var(--nm-border);
    border-radius: 4px;
    padding: 0.5rem 2.25rem 0.5rem 0.85rem;
    font-size: 0.9rem;
    color: var(--nm-navy);
    cursor: pointer;
    transition: border-color 0.12s;
    min-width: 180px;
}

.artist-filter-select:hover,
.artist-filter-select:focus {
    border-color: var(--nm-navy);
    outline: none;
}

.clear-filter-link {
    font-size: 0.8rem;
    color: var(--nm-navy-muted);
    text-decoration: none;
    white-space: nowrap;
    transition: color 0.12s;
}

.clear-filter-link:hover { color: var(--nm-navy); }


/* ── Product card artist badges ────────────────────────────────────────────── */

.product-card__artists {
    padding: 0.4rem 0 0.6rem;
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
}

.artist-badge {
    background: var(--nm-navy-tint);
    color: var(--nm-navy);
    font-size: 0.75rem;
    padding: 0.2rem 0.55rem;
    border-radius: 20px;
    text-decoration: none;
    transition: background 0.12s, color 0.12s;
    white-space: nowrap;
    font-weight: 600;
}

.artist-badge:hover {
    background: var(--nm-navy);
    color: var(--nm-off-white);
}

/* ── Single product: artist tags line ──────────────────────────────────────── */

.product-artist-tags {
    font-size: 0.9rem;
    margin: 0.5rem 0;
}

.product-artist-tags .label { color: var(--nm-text-muted); }

.product-artist-tags a {
    color: var(--nm-navy);
    font-weight: 600;
    text-decoration: none;
    border-bottom: 1px solid var(--nm-border);
    transition: border-color 0.12s, color 0.12s;
}

.product-artist-tags a:hover {
    color: var(--nm-gold-dark);
    border-color: var(--nm-gold-dark);
}

/* ── Single product: artist profile panel ──────────────────────────────────── */

.artist-profile-panel {
    background: var(--nm-white);
    border: 1px solid var(--nm-border);
    border-left: 4px solid var(--nm-navy);
    border-radius: 8px;
    padding: 1.5rem;
    margin: 2rem 0;
}

.artist-profile-panel__inner {
    display: flex;
    gap: 1.5rem;
    align-items: flex-start;
}

.artist-profile-panel__image { flex-shrink: 0; }

.artist-profile-panel__image img {
    width: 100px;
    height: 100px;
    object-fit: cover;
    border-radius: 50%;
    border: 3px solid var(--nm-navy-tint);
}

.artist-profile-panel__name {
    font-size: 1.1rem;
    margin: 0 0 0.4rem;
}

.artist-profile-panel__name a {
    color: var(--nm-navy);
    text-decoration: none;
}

.artist-profile-panel__name a:hover { color: var(--nm-gold-dark); }

.artist-profile-panel__excerpt {
    font-size: 0.875rem;
    color: var(--nm-text-muted);
    margin: 0 0 0.75rem;
}

.artist-meta-list {
    list-style: none;
    margin: 0 0 0.75rem;
    padding: 0;
    font-size: 0.85rem;
    color: var(--nm-text-muted);
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem 1.25rem;
}

.artist-meta-list strong { color: var(--nm-navy); }

.artist-profile-panel__links {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    margin-top: 0.75rem;
}

.spotify-link {
    background: #1DB954 !important;
    color: #fff !important;
    border-color: #1DB954 !important;
}

.spotify-link:hover { background: #17a349 !important; }

.qobuz-link {
    background: #002473 !important;
    color: #fff !important;
    border-color: #002473 !important;
}

.qobuz-link:hover { background: #001a57 !important; }

.artist-streaming-links {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    margin-top: 0.25rem;
}

@media ( max-width: 540px ) {
    .artist-profile-panel__inner { flex-direction: column; }
    .artist-profile-panel__image img { width: 72px; height: 72px; }
}

/* ── Cart: artist column ───────────────────────────────────────────────────── */

.product-artist { width: 140px; }

/* ── My Account: My Artists panel ─────────────────────────────────────────── */

.my-artists-panel {
    margin-top: 2.5rem;
    padding-top: 2rem;
    border-top: 1px solid var(--nm-border);
}

.my-artists-panel h2 { font-size: 1.1rem; color: var(--nm-navy); }

.my-artists-list {
    list-style: none;
    margin: 1rem 0 0;
    padding: 0;
    display: grid;
    grid-template-columns: repeat( auto-fill, minmax( 220px, 1fr ) );
    gap: 1rem;
}

.my-artists-list__item {
    background: var(--nm-white);
    border: 1px solid var(--nm-border);
    border-radius: 6px;
    padding: 1rem;
    display: flex;
    gap: 0.75rem;
    align-items: center;
}

.my-artists-list__thumb img {
    width: 48px;
    height: 48px;
    object-fit: cover;
    border-radius: 50%;
}

.my-artists-list__info strong { display: block; font-size: 0.9rem; color: var(--nm-navy); }

.my-artists-list__actions {
    font-size: 0.8rem;
    margin-top: 0.25rem;
}

.my-artists-list__actions a { color: var(--nm-text-muted); text-decoration: none; }
.my-artists-list__actions a:hover { color: var(--nm-gold-dark); }

/* ── Standalone button classes (work outside WooCommerce context) ──────────── */

.nm-btn {
    display: inline-block;
    padding: 0.6rem 1.2rem;
    border-radius: 4px;
    font-size: 0.875rem;
    font-weight: 600;
    text-decoration: none;
    cursor: pointer;
    border: 1px solid transparent;
    transition: background 0.15s, color 0.15s, border-color 0.15s;
    white-space: nowrap;
}

.nm-btn--primary {
    background: var(--nm-navy);
    color: var(--nm-off-white);
    border-color: var(--nm-navy);
}

.nm-btn--primary:hover {
    background: var(--nm-navy-mid);
    border-color: var(--nm-navy-mid);
    color: var(--nm-off-white);
}

.nm-btn--outline {
    background: var(--nm-white);
    color: var(--nm-navy);
    border-color: var(--nm-navy);
}

.nm-btn--outline:hover {
    background: var(--nm-navy-tint);
    color: var(--nm-navy);
}

.nm-btn--spotify {
    background: #1DB954;
    color: #fff;
    border-color: #1DB954;
}

.nm-btn--spotify:hover {
    background: #17a349;
    color: #fff;
    border-color: #17a349;
}

.nm-btn--qobuz {
    background: #002473;
    color: #fff;
    border-color: #002473;
}

.nm-btn--qobuz:hover {
    background: #001a57;
    color: #fff;
    border-color: #001a57;
}

/* ── Artist CPT: single profile page ──────────────────────────────────────── */

.artist-profile {
    max-width: 1100px;
    margin: 0 auto;
    padding: 2rem 1.5rem 4rem;
}

.artist-profile__header {
    display: grid;
    grid-template-columns: 280px 1fr;
    gap: 2.5rem;
    margin-bottom: 2rem;
    align-items: start;
}

.artist-profile__image-wrap {
    width: 100%;
    aspect-ratio: 1;
    border-radius: 10px;
    overflow: hidden;
    background: var(--nm-navy-tint);
}

.artist-profile__hero-image { width: 100%; height: 100%; object-fit: cover; display: block; }

.artist-profile__image-placeholder {
    width: 100%; height: 100%;
    display: flex; align-items: center; justify-content: center;
    background: var(--nm-navy-tint);
}

.artist-profile__image-placeholder svg { width: 60%; height: 60%; }
.artist-profile__name { font-size: 2rem; margin-bottom: 0.75rem; }

.artist-profile__meta {
    list-style: none; margin: 0 0 1rem; padding: 0;
    display: flex; flex-wrap: wrap; gap: 0.5rem 1.5rem; font-size: 0.875rem;
}

.artist-profile__meta .label { color: var(--nm-text-muted); margin-right: 0.35rem; }
.artist-profile__meta .value { color: var(--nm-navy); font-weight: 600; }
.artist-profile__links { display: flex; flex-wrap: wrap; gap: 0.5rem; align-items: center; }

/* ── Sidebar body layout ───────────────────────────────────────────────────── */

.artist-profile__body-layout {
    display: grid;
    grid-template-columns: 1fr 280px;
    gap: 2rem;
    align-items: start;
    border-top: 1px solid var(--nm-border);
    padding-top: 2rem;
}

.artist-profile__main { min-width: 0; }

.artist-profile__bio {
    font-size: 1rem;
    line-height: 1.8;
    margin-bottom: 2.5rem;
    color: var(--nm-text);
}

.artist-profile__bio p { margin: 0 0 1.25rem; }

.artist-profile__releases { padding-top: 2rem; border-top: 1px solid var(--nm-border); }
.artist-profile__releases h2 { font-size: 1.25rem; margin-bottom: 1.25rem; }
.artist-profile__all-releases { margin-top: 1.25rem; }

/* ── Artist profile releases grid ──────────────────────────────────────────── */

.artist-releases-grid {
    display: grid;
    grid-template-columns: repeat( auto-fill, minmax( 160px, 1fr ) );
    gap: 1.25rem;
    list-style: none;
    margin: 0 0 1.5rem;
    padding: 0;
}

.artist-releases-grid li.product {
    display: flex;
    flex-direction: column;
    background: var(--nm-white);
    border: 1px solid var(--nm-border);
    border-radius: 8px;
    overflow: hidden;
    transition: box-shadow 0.15s;
}

.artist-releases-grid li.product:hover {
    box-shadow: 0 4px 16px rgba(26,43,94,0.1);
}

.artist-releases-grid li.product a img {
    width: 100%;
    height: auto;
    display: block;
    aspect-ratio: 1;
    object-fit: cover;
}

.artist-releases-grid li.product .woocommerce-loop-product__title {
    font-size: 0.875rem !important;
    font-weight: 700 !important;
    color: var(--nm-navy) !important;
    padding: 0.625rem 0.75rem 0.25rem !important;
    margin: 0 !important;
    font-family: 'Syne', sans-serif !important;
    text-decoration: none !important;
}

.artist-releases-grid li.product a {
    text-decoration: none;
    color: var(--nm-navy);
}

.artist-releases-grid li.product .price {
    display: block;
    padding: 0 0.75rem 0.5rem;
    color: var(--nm-gold-dark);
    font-weight: 600;
    font-size: 0.95rem;
}

.artist-releases-grid li.product .button,
.artist-releases-grid li.product .add_to_cart_button {
    display: block !important;
    margin: auto 0.75rem 0.75rem !important;
    background: var(--nm-navy) !important;
    color: var(--nm-off-white) !important;
    border: none !important;
    border-radius: 4px !important;
    padding: 0.6rem 1rem !important;
    font-size: 0.8rem !important;
    font-weight: 600 !important;
    text-align: center !important;
    text-decoration: none !important;
    cursor: pointer !important;
    font-family: inherit !important;
    transition: background 0.15s !important;
}

.artist-releases-grid li.product .button:hover,
.artist-releases-grid li.product .add_to_cart_button:hover {
    background: var(--nm-navy-mid) !important;
}

/* ── Sidebar ───────────────────────────────────────────────────────────────── */

.artist-profile__sidebar {
    position: sticky;
    top: 80px;
    display: flex;
    flex-direction: column;
    gap: 1.25rem;
}

.artist-sidebar-card {
    background: var(--nm-white);
    border: 1px solid var(--nm-border);
    border-radius: 10px;
    padding: 1rem;
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
}

.artist-sidebar-card--event  { border-top: 3px solid var(--nm-navy); }
.artist-sidebar-card--release { border-top: 3px solid var(--nm-gold-dark); }

.artist-sidebar-card__header { display: flex; align-items: center; justify-content: space-between; }

.artist-sidebar-card__label {
    font-size: 0.7rem; font-weight: 700;
    text-transform: uppercase; letter-spacing: 0.08em;
    color: var(--nm-text-muted);
}

.artist-sidebar-card__all { font-size: 0.75rem; color: var(--nm-gold-dark); text-decoration: none; font-weight: 600; }
.artist-sidebar-card__all:hover { color: var(--nm-navy); }
.artist-sidebar-card__cta { width: 100%; text-align: center; margin-top: 0.25rem; }

.artist-sidebar-event__date { display: flex; align-items: baseline; gap: 0.5rem; }
.artist-sidebar-event__day { font-size: 2.25rem; font-weight: 700; font-family: 'Syne', sans-serif; color: var(--nm-navy); line-height: 1; }
.artist-sidebar-event__month { font-size: 0.875rem; color: var(--nm-text-muted); font-weight: 600; }
.artist-sidebar-event__title { font-size: 0.9rem; font-weight: 700; color: var(--nm-navy); text-decoration: none; line-height: 1.4; display: block; }
.artist-sidebar-event__title:hover { color: var(--nm-gold-dark); }
.artist-sidebar-event__meta { font-size: 0.8rem; color: var(--nm-text-muted); margin: 0; line-height: 1.5; }
.artist-sidebar-event__badges { display: flex; gap: 0.4rem; flex-wrap: wrap; }

.artist-sidebar-countdown {
    background: var(--nm-navy);
    border-radius: 6px;
    padding: 0.625rem;
}

.artist-sidebar-countdown__grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 0.25rem;
    text-align: center;
}

.artist-sidebar-countdown__grid .countdown-num { font-size: 1.25rem; color: var(--nm-gold-bright); }
.artist-sidebar-countdown__grid .countdown-label { color: var(--nm-navy-muted); font-size: 0.6rem; }

.artist-sidebar-release {
    display: flex; gap: 0.75rem; align-items: center;
    text-decoration: none; color: var(--nm-navy);
}

.artist-sidebar-release:hover .artist-sidebar-release__title { color: var(--nm-gold-dark); }

.artist-sidebar-release__image {
    width: 72px; flex-shrink: 0;
    border-radius: 4px; overflow: hidden;
    background: var(--nm-navy-tint);
}

.artist-sidebar-release__image img { width: 100%; height: 100%; object-fit: cover; display: block; }
.artist-sidebar-release__info { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 0.25rem; }
.artist-sidebar-release__title { font-size: 0.875rem; font-weight: 700; line-height: 1.3; display: block; transition: color 0.15s; }
.artist-sidebar-release__price { font-size: 0.9rem; font-weight: 600; color: var(--nm-gold-dark); }

@media ( max-width: 900px ) {
    .artist-profile__body-layout { grid-template-columns: 1fr; }
    .artist-profile__sidebar { position: static; display: grid; grid-template-columns: 1fr 1fr; }
}

@media ( max-width: 640px ) {
    .artist-profile__header { grid-template-columns: 1fr; gap: 1.5rem; }
    .artist-profile__image-wrap { max-width: 200px; }
    .artist-profile__sidebar { grid-template-columns: 1fr; }
}

/* ── Artist CPT: archive/listing ───────────────────────────────────────────── */

.artists-archive {
    max-width: 1100px;
    margin: 0 auto;
    padding: 2rem 1.5rem 4rem;
}

.artists-archive__header { margin-bottom: 1.5rem; }
.artists-archive__title  { font-size: 2rem; margin-bottom: 0.25rem; }
.artists-archive__intro  { color: var(--nm-text-muted); margin: 0; }

.artists-archive__genre-filter {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    margin-bottom: 2rem;
    padding-bottom: 1.5rem;
    border-bottom: 1px solid var(--nm-border);
}

.genre-pill {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    font-size: 0.8rem;
    font-weight: 600;
    color: var(--nm-text-muted);
    background: var(--nm-white);
    border: 1px solid var(--nm-border);
    border-radius: 20px;
    padding: 0.3rem 0.875rem;
    text-decoration: none;
    transition: background 0.12s, color 0.12s, border-color 0.12s;
}

.genre-pill:hover,
.genre-pill.is-active {
    background: var(--nm-navy);
    color: var(--nm-off-white);
    border-color: var(--nm-navy);
}

.genre-pill__count {
    font-size: 0.7rem;
    opacity: 0.7;
}

.artists-archive {
    max-width: 1280px;
    margin: 2rem auto;
    padding: 0 1.5rem;
}

.artists-archive__header { margin-bottom: 2rem; }

.artists-archive__title { font-size: 1.75rem; }

.artists-grid {
    display: grid;
    grid-template-columns: repeat( auto-fill, minmax( 220px, 1fr ) );
    gap: 1.5rem;
    list-style: none;
    margin: 0;
    padding: 0;
}

.artist-card {
    display: block;
    background: var(--nm-white);
    border: 1px solid var(--nm-border);
    border-radius: 8px;
    overflow: hidden;
    text-decoration: none;
    color: var(--nm-navy);
    transition: box-shadow 0.15s, transform 0.15s;
}

.artist-card:hover {
    box-shadow: 0 4px 16px rgba(26,43,94,0.15);
    transform: translateY(-2px);
}

.artist-card__image-wrap {
    width: 100%;
    aspect-ratio: 1;
    overflow: hidden;
    background: var(--nm-navy-tint);
}

.artist-card__thumb {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.artist-card__image-placeholder {
    width: 100%;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--nm-navy-tint);
}

.artist-card__image-placeholder svg {
    width: 55%;
    height: 55%;
}

.artist-card__info { padding: 1rem; }

.artist-card__name {
    font-size: 1rem;
    font-weight: 700;
    margin: 0 0 0.3rem;
    color: var(--nm-navy);
}

.artist-card__genre,
.artist-card__country {
    display: block;
    font-size: 0.8rem;
    color: var(--nm-text-muted);
}

.artist-card__shop-link {
    display: inline-block;
    font-size: 0.8rem;
    color: var(--nm-gold-dark);
    font-weight: 600;
    margin-top: 0.5rem;
}

/* ── WooCommerce block product grid ───────────────────────────────────────── */

.wc-block-grid__products {
    display: grid !important;
    grid-template-columns: repeat( auto-fill, minmax( 220px, 1fr ) ) !important;
    gap: 2rem !important;
    list-style: none !important;
    margin: 0 !important;
    padding: 0 !important;
}

.wc-block-grid__product {
    display: flex !important;
    flex-direction: column !important;
    background: var(--nm-white);
    border: 1px solid var(--nm-border);
    border-radius: 8px;
    overflow: hidden;
    transition: box-shadow 0.15s;
}

.wc-block-grid__product:hover {
    box-shadow: 0 4px 16px rgba(26,43,94,0.1);
}

.wc-block-grid__product-link { display: block; text-decoration: none; }

.wc-block-grid__product-image {
    display: block;
    margin: 0;
}

.wc-block-grid__product-image img {
    width: 100%;
    height: auto;
    display: block;
    aspect-ratio: 1;
    object-fit: cover;
}

.wc-block-grid__product-title {
    font-size: 0.95rem;
    font-weight: 700;
    color: var(--nm-navy);
    padding: 0.75rem 0.875rem 0.25rem;
    margin: 0;
    font-family: 'Syne', sans-serif;
}

.wc-block-grid__product-price {
    padding: 0 0.875rem 0.5rem;
    color: var(--nm-gold-dark);
    font-weight: 600;
    font-size: 1rem;
}

.wc-block-grid__product-rating {
    padding: 0 0.875rem;
}

.wc-block-grid__product-add-to-cart {
    padding: 0.5rem 0.875rem 0.875rem;
    margin-top: auto;
}

.wc-block-grid__product-add-to-cart .wp-block-button__link,
.wc-block-grid__product-add-to-cart .add_to_cart_button {
    display: block !important;
    width: 100% !important;
    background: var(--nm-navy) !important;
    color: var(--nm-off-white) !important;
    border: none !important;
    border-radius: 4px !important;
    padding: 0.65rem 1rem !important;
    font-size: 0.875rem !important;
    font-weight: 600 !important;
    text-align: center !important;
    text-decoration: none !important;
    cursor: pointer !important;
    transition: background 0.15s !important;
    font-family: inherit !important;
}

.wc-block-grid__product-add-to-cart .wp-block-button__link:hover,
.wc-block-grid__product-add-to-cart .add_to_cart_button:hover {
    background: var(--nm-navy-mid) !important;
    color: var(--nm-off-white) !important;
}

/* Keep classic grid working as fallback */
ul.products,
ul.products.columns-1,
ul.products.columns-2,
ul.products.columns-3,
ul.products.columns-4,
ul.products.columns-5,
ul.products.columns-6 {
    display: grid !important;
    grid-template-columns: repeat( auto-fill, minmax( 220px, 1fr ) ) !important;
    align-items: start !important;
    gap: 2rem !important;
    float: none !important;
    clear: both !important;
    list-style: none !important;
    margin: 0 !important;
    padding: 0 !important;
}

ul.products li.product {
    float: none !important;
    width: auto !important;
    margin: 0 !important;
    clear: none !important;
    display: flex !important;
    flex-direction: column !important;
}

ul.products li:not([class*="product"]),
ul.products li:empty { display: none !important; }

ul.products::before,
ul.products::after { display: none !important; }

ul.products li.product .woocommerce-loop-product__link,
ul.products li.product a img { display: block; width: 100%; }

ul.products li.product .product-card__artists { margin-top: auto; padding-top: 0.5rem; }

/* ── Custom logo ───────────────────────────────────────────────────────────── */

.site-header__branding .custom-logo-link {
    display: flex;
    align-items: center;
    text-decoration: none;
}

.site-header__branding .custom-logo {
    max-height: 44px;
    width: auto;
    display: block;
}

.site-header__site-name {
    color: var(--nm-off-white);
    font-size: 1.25rem;
    font-weight: 700;
    letter-spacing: -0.02em;
    text-decoration: none;
}

/* ── Single product layout ─────────────────────────────────────────────────── */

.narwhal-single-product {
    max-width: 1280px;
    margin: 2rem auto;
    padding: 0 1.5rem;
}

.narwhal-product-layout {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 3rem;
    align-items: start;
    margin-bottom: 3rem;
}

.narwhal-product-image .woocommerce-product-gallery {
    float: none !important;
    width: 100% !important;
}

.narwhal-product-summary .product_title {
    font-size: 1.75rem;
    margin-bottom: 0.5rem;
}

@media ( max-width: 768px ) {
    .narwhal-product-layout {
        grid-template-columns: 1fr;
        gap: 1.5rem;
    }
}

/* ── WooCommerce button overrides ──────────────────────────────────────────── */

.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce #respond input#submit {
    background: var(--nm-navy);
    color: var(--nm-off-white);
    border-radius: 4px;
    font-size: 0.875rem;
    padding: 0.6rem 1.2rem;
    text-decoration: none;
    display: inline-block;
    transition: background 0.15s;
    border: none;
    cursor: pointer;
}

.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover {
    background: var(--nm-navy-mid);
    color: var(--nm-off-white);
}

.woocommerce a.button.alt,
.woocommerce button.button.alt {
    background: var(--nm-white);
    color: var(--nm-navy);
    border: 1px solid var(--nm-navy);
}

.woocommerce a.button.alt:hover,
.woocommerce button.button.alt:hover {
    background: var(--nm-navy-tint);
}

/* ── WooCommerce price and stock colours ───────────────────────────────────── */

.woocommerce .price,
.woocommerce-Price-amount,
.woocommerce span.price,
.woocommerce ins .amount,
.woocommerce .price .amount {
    color: var(--nm-gold-dark) !important;
}

.woocommerce .stock.in-stock {
    color: var(--nm-gold-dark) !important;
}

.woocommerce .onsale {
    background: var(--nm-gold-dark) !important;
    color: var(--nm-white) !important;
}

/* ═══════════════════════════════════════════════════════════════════════════
   RESPONSIVE — mobile first breakpoints
   480px  — small phones
   768px  — tablets / large phones landscape
   1024px — small desktops / tablets landscape
   ═══════════════════════════════════════════════════════════════════════════ */

/* ── Mobile header: hamburger menu ────────────────────────────────────────── */

.site-header__menu-toggle {
    display: none;
    background: none;
    border: none;
    cursor: pointer;
    padding: 0.5rem;
    flex-direction: column;
    gap: 5px;
    align-items: center;
    justify-content: center;
}

.site-header__menu-toggle span {
    display: block;
    width: 22px;
    height: 2px;
    background: var(--nm-off-white);
    border-radius: 2px;
    transition: transform 0.2s, opacity 0.2s;
}

.site-header__menu-toggle.is-active span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.site-header__menu-toggle.is-active span:nth-child(2) { opacity: 0; }
.site-header__menu-toggle.is-active span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

@media ( max-width: 768px ) {

    /* Header: branding + toggle only on one row */
    .site-header { padding: 0 1rem; }

    .site-header__inner {
        height: 56px;
        gap: 1rem;
        flex-wrap: wrap;
        align-items: center;
        overflow: visible;
    }

    .site-header__menu-toggle {
        display: flex;
        order: 3;
        margin-left: auto;
    }

    .site-header__cart {
        order: 2;
    }

    /* Nav collapses to full-width drawer below header */
    .site-header__nav {
        order: 4;
        width: 100%;
        max-height: 0;
        overflow: hidden;
        transition: max-height 0.3s ease;
        background: var(--nm-navy-deep);
        border-top: 0px solid transparent;
    }

    .site-header__nav.is-open {
        max-height: 600px;
        border-top: 1px solid rgba(255,255,255,0.1);
        padding: 0.5rem 1rem 1rem;
    }

    .site-header__nav ul {
        flex-direction: column;
        gap: 0;
        width: 100%;
    }

    .site-header__nav ul li {
        width: 100%;
    }

    .site-header__nav ul li a {
        display: block;
        padding: 0.75rem 0;
        font-size: 1rem;
        color: var(--nm-off-white);
        border-bottom: 1px solid rgba(255,255,255,0.08);
        text-decoration: none;
    }

    .site-header__nav ul li:last-child > a { border-bottom: none; }

    .site-header__nav ul li a:hover { color: var(--nm-gold-bright); }

    /* Shop controls stack vertically */
    .shop-controls {
        flex-direction: column;
        align-items: flex-start;
    }

    .artist-filter-select { width: 100%; }

    /* Product grid: 2 columns on tablet */
    ul.products {
        grid-template-columns: repeat( 2, 1fr ) !important;
        gap: 1rem !important;
    }

    /* Single product: stack image above summary */
    .narwhal-product-layout {
        grid-template-columns: 1fr;
        gap: 1.5rem;
    }

    /* Artist profile header: stack */
    .artist-profile__header {
        grid-template-columns: 1fr;
        gap: 1.5rem;
    }

    .artist-profile__hero-image { max-width: 200px; }

    /* Artist profile panel: stack image above info */
    .artist-profile-panel__inner { flex-direction: column; }
    .artist-profile-panel__image img { width: 80px; height: 80px; }

    /* Footer: stack copyright and nav */
    .site-footer__bottom {
        flex-direction: column;
        align-items: flex-start;
        gap: 0.75rem;
    }

    .site-footer__nav ul { flex-wrap: wrap; gap: 0.75rem; }

    /* WooCommerce: cart table scrolls horizontally */
    .woocommerce-cart-form { overflow-x: auto; }
    .woocommerce table.shop_table { min-width: 560px; }

    /* Hide artist column in cart on mobile — shown inline via data-title */
    .product-artist { display: none; }

    /* Page titles */
    .woocommerce-products-header__title { font-size: 1.5rem; }

}

@media ( max-width: 480px ) {

    /* Single column product grid on small phones */
    ul.products {
        grid-template-columns: 1fr !important;
    }

    /* Tighter padding */
    .site-main,
    .shop-main,
    .narwhal-single-product,
    .artists-archive,
    .artist-profile {
        padding: 0 1rem;
    }

    /* Artist cards full width */
    .artists-grid {
        grid-template-columns: 1fr;
    }

    /* My artists full width */
    .my-artists-list {
        grid-template-columns: 1fr;
    }

    /* Artist profile panel buttons stack */
    .artist-profile-panel__links {
        flex-direction: column;
    }

    .artist-profile-panel__links .button {
        text-align: center;
        width: 100%;
    }

    /* WooCommerce add to cart area */
    .woocommerce .quantity { margin-bottom: 0.5rem; }

}

/* ── Touch target sizes ────────────────────────────────────────────────────── */

@media ( max-width: 768px ) {
    .woocommerce a.button,
    .woocommerce button.button,
    .woocommerce input.button {
        padding: 0.75rem 1.25rem;
        font-size: 1rem;
        width: 100%;
        text-align: center;
    }
}



@media ( max-width: 768px ) {

    /* Standard pages */
    .narwhal-page { padding: 1.5rem 1rem 3rem; }
    .narwhal-page__title { font-size: 1.75rem; }
    .narwhal-page__body h2 { font-size: 1.2rem; }

    /* Search toggle order in header */
    .site-header__search { order: 1; }

    /* Search drawer full width padding */
    .site-header__search-drawer.is-open { padding: 0.875rem 1rem; }
    .narwhal-search-input { font-size: 1rem; }

    /* Single product summary font sizes */
    .narwhal-product-summary .product_title { font-size: 1.5rem; }
    .narwhal-product-summary .price { font-size: 1.25rem; }

    /* Streaming links stack on mobile */
    .artist-streaming-links { flex-direction: column; }
    .artist-streaming-links .nm-btn { text-align: center; }

    /* Artist profile panel nm-btn links stack */
    .artist-profile-panel__links { flex-direction: column; }
    .artist-profile-panel__links .nm-btn { text-align: center; width: 100%; }

    /* Artist single page links stack */
    .artist-profile__links { flex-direction: column; align-items: flex-start; }
    .artist-profile__links .nm-btn { width: 100%; text-align: center; }

    /* Contact form wrap tighter padding */
    .contact-form-wrap { padding: 1.25rem; }

    /* My artists grid */
    .my-artists-list { grid-template-columns: 1fr; }

    /* Artist releases grid on single artist page */
    .artist-releases-grid {
        grid-template-columns: repeat( 2, 1fr );
        gap: 1rem;
    }

    /* Footer tagline font size */
    .site-footer__tagline { font-size: 0.875rem; }

    /* Shop page title */
    .shop-main .page-title { font-size: 1.5rem; }

}

@media ( max-width: 480px ) {

    /* Header branding smaller */
    .site-header__site-name { font-size: 1rem; }
    .site-header__branding .custom-logo { max-height: 36px; }

    /* Cart link shorter on tiny screens */
    .site-header__cart a { font-size: 0.8rem; }

    /* Single artist releases single column */
    .artist-releases-grid { grid-template-columns: 1fr; }

    /* Contact form full width submit */
    .wpcf7 input[type="submit"] { width: 100%; text-align: center; }

    /* Page title smaller */
    .narwhal-page__title { font-size: 1.4rem; }

    /* Artist archive header */
    .artists-archive__title { font-size: 1.4rem; }

    /* Single product add to cart row stacks */
    .woocommerce .cart { display: flex; flex-direction: column; gap: 0.75rem; }
    .woocommerce .cart .quantity { width: 100%; }
    .woocommerce .cart .single_add_to_cart_button { width: 100%; }

}

h1, h2, h3, h4,
.site-header__site-name,
.woocommerce-products-header__title,
.product_title,
.artist-profile__name,
.artist-card__name,
.artist-profile-panel__name,
.narwhal-product-summary .product_title {
    font-family: 'Syne', -apple-system, BlinkMacSystemFont, sans-serif;
    font-weight: 700;
    letter-spacing: -0.01em;
}

/* ── Skip to content ───────────────────────────────────────────────────────── */

.skip-to-content {
    position: absolute;
    top: -100%;
    left: 1rem;
    background: var(--nm-gold-bright);
    color: var(--nm-navy);
    font-weight: 700;
    font-size: 0.875rem;
    padding: 0.5rem 1rem;
    border-radius: 0 0 6px 6px;
    text-decoration: none;
    z-index: 9999;
    transition: top 0.15s;
}

.skip-to-content:focus {
    top: 0;
    outline: 3px solid var(--nm-navy);
    outline-offset: 2px;
}

/* ── Search toggle button ──────────────────────────────────────────────────── */

.site-header__search-toggle {
    background: none;
    border: none;
    cursor: pointer;
    color: var(--nm-navy-muted);
    padding: 0.4rem;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 4px;
    transition: color 0.15s;
}

.site-header__search-toggle:hover { color: var(--nm-gold-bright); }
.site-header__search-toggle:focus-visible {
    outline: 2px solid var(--nm-gold-bright);
    outline-offset: 2px;
}

/* ── Search drawer ─────────────────────────────────────────────────────────── */

.site-header__search-drawer {
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    background: var(--nm-navy-deep);
    border-top: 1px solid rgba(255,255,255,0.08);
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.25s ease;
    z-index: 99;
}

.site-header__search-drawer.is-open {
    max-height: 120px;
    padding: 1rem 1.5rem;
}

.site-header__search-inner {
    max-width: 1280px;
    margin: 0 auto;
    display: flex;
    align-items: center;
    gap: 0.75rem;
}

.narwhal-search-form {
    display: flex;
    flex: 1;
    align-items: center;
    background: rgba(255,255,255,0.08);
    border: 1px solid rgba(255,255,255,0.15);
    border-radius: 6px;
    overflow: hidden;
}

.narwhal-search-input {
    flex: 1;
    background: none;
    border: none;
    padding: 0.65rem 1rem;
    font-size: 0.95rem;
    color: var(--nm-off-white);
    outline: none;
    font-family: inherit;
}

.narwhal-search-input::placeholder { color: var(--nm-navy-muted); }

.narwhal-search-submit {
    background: none;
    border: none;
    border-left: 1px solid rgba(255,255,255,0.15);
    padding: 0.65rem 0.875rem;
    color: var(--nm-navy-muted);
    cursor: pointer;
    display: flex;
    align-items: center;
    transition: color 0.15s;
}

.narwhal-search-submit:hover { color: var(--nm-gold-bright); }

.site-header__search-close {
    background: none;
    border: none;
    color: var(--nm-navy-muted);
    cursor: pointer;
    padding: 0.5rem;
    display: flex;
    align-items: center;
    flex-shrink: 0;
    transition: color 0.15s;
}

.site-header__search-close:hover { color: var(--nm-off-white); }

/* Search results page */
.search-results article {
    background: var(--nm-white);
    border: 1px solid var(--nm-border);
    border-radius: 8px;
    padding: 1.25rem;
    margin-bottom: 1rem;
}

.search-results article h2 { font-size: 1.1rem; margin-bottom: 0.35rem; }
.search-results article h2 a { color: var(--nm-navy); text-decoration: none; }
.search-results article h2 a:hover { color: var(--nm-gold-dark); }

/* Focus ring for hamburger toggle */
.site-header__menu-toggle:focus-visible {
    outline: 2px solid var(--nm-gold-bright);
    outline-offset: 2px;
    border-radius: 4px;
}

/* ── Standard page template ────────────────────────────────────────────────── */

.narwhal-page {
    max-width: 780px;
    margin: 0 auto;
    padding: 2rem 1.5rem 4rem;
}

.narwhal-page__header {
    margin-bottom: 2rem;
    padding-bottom: 1.25rem;
    border-bottom: 2px solid var(--nm-navy-tint);
}

.narwhal-page__title {
    font-size: 2.25rem;
    margin: 0;
}

.narwhal-page__body {
    font-size: 1rem;
    line-height: 1.8;
    color: var(--nm-text);
}

.narwhal-page__body h2 {
    font-size: 1.4rem;
    margin-top: 2rem;
    margin-bottom: 0.75rem;
    padding-top: 1.5rem;
    border-top: 1px solid var(--nm-border);
}

.narwhal-page__body h2:first-child { border-top: none; padding-top: 0; margin-top: 0; }

.narwhal-page__body p { margin: 0 0 1.25rem; }

.narwhal-page__body ul,
.narwhal-page__body ol {
    margin: 0 0 1.25rem 1.5rem;
    padding: 0;
}

.narwhal-page__body li { margin-bottom: 0.4rem; }

.narwhal-page__body a {
    color: var(--nm-navy);
    text-decoration: underline;
    text-underline-offset: 2px;
}

.narwhal-page__body a:hover { color: var(--nm-gold-dark); }

.narwhal-page__body strong { color: var(--nm-navy); }

/* ── Artist social links ───────────────────────────────────────────────────── */

.artist-social-links {
    display: flex;
    gap: 0.5rem;
    flex-wrap: wrap;
    margin-bottom: 1rem;
}

.artist-social-link {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 38px;
    height: 38px;
    border-radius: 50%;
    background: var(--nm-navy-tint);
    color: var(--nm-navy);
    text-decoration: none;
    transition: background 0.15s, color 0.15s, transform 0.15s;
}

.artist-social-link:hover {
    transform: translateY(-2px);
    color: var(--nm-white);
}

.artist-social-link--instagram:hover { background: #e1306c; }
.artist-social-link--facebook:hover  { background: #1877f2; }
.artist-social-link--x:hover         { background: #000; }
.artist-social-link--youtube:hover   { background: #ff0000; }
.artist-social-link--tiktok:hover    { background: #010101; }
.artist-social-link--bluesky:hover   { background: #0085ff; }

/* ── Artist video embeds ───────────────────────────────────────────────────── */

.artist-profile__videos {
    margin-bottom: 3rem;
    padding-top: 2rem;
    border-top: 1px solid var(--nm-border);
}

.artist-profile__videos h2 { font-size: 1.25rem; margin-bottom: 1.25rem; }

.artist-videos-grid {
    display: grid;
    grid-template-columns: repeat( auto-fill, minmax( 320px, 1fr ) );
    gap: 1.5rem;
}

.artist-video-embed {
    position: relative;
    padding-bottom: 56.25%; /* 16:9 */
    height: 0;
    overflow: hidden;
    border-radius: 8px;
    background: var(--nm-navy-deep);
}

.artist-video-embed iframe {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    border-radius: 8px;
}

.artist-video-title {
    margin: 0.5rem 0 0;
    font-size: 0.875rem;
    color: var(--nm-text-muted);
    font-weight: 600;
}

@media ( max-width: 600px ) {
    .artist-videos-grid { grid-template-columns: 1fr; }
}

/* ── Artist profile bio border (shared with videos/releases) ───────────────── */

.artist-profile__releases {
    padding-top: 2rem;
    border-top: 1px solid var(--nm-border);
}

/* ═══════════════════════════════════════════════════════════════════════════
   HOMEPAGE
   ═══════════════════════════════════════════════════════════════════════════ */

/* ── Hero ──────────────────────────────────────────────────────────────────── */

.nm-hero {
    position: relative;
    min-height: 90vh;
    display: flex;
    align-items: center;
    justify-content: center;
    background-color: var(--nm-navy-deep);
    background-size: cover;
    background-position: center;
    background-attachment: fixed;
    overflow: hidden;
}

.nm-hero__overlay {
    position: absolute;
    inset: 0;
    background: var(--nm-navy-deep);
    pointer-events: none;
}

.nm-hero__content {
    position: relative;
    z-index: 1;
    text-align: center;
    padding: 4rem 1.5rem;
    max-width: 720px;
}

.nm-hero__title {
    font-size: clamp( 2rem, 5vw, 3.5rem );
    font-weight: 700;
    color: var(--nm-off-white);
    margin: 0 0 1.25rem;
    line-height: 1.15;
    letter-spacing: -0.02em;
}

.nm-hero__desc {
    font-size: clamp( 1rem, 2vw, 1.2rem );
    color: rgba(245,245,240,0.8);
    line-height: 1.65;
    margin: 0 0 2.5rem;
    max-width: 580px;
    margin-left: auto;
    margin-right: auto;
}

.nm-hero__actions {
    display: flex;
    gap: 1rem;
    justify-content: center;
    flex-wrap: wrap;
}

.nm-btn--gold {
    background: var(--nm-gold-dark);
    color: var(--nm-white);
    border-color: var(--nm-gold-dark);
}

.nm-btn--gold:hover { background: var(--nm-gold-bright); border-color: var(--nm-gold-bright); color: var(--nm-navy); }

.nm-btn--outline-white {
    background: transparent;
    color: var(--nm-off-white);
    border: 2px solid rgba(245,245,240,0.4);
}

.nm-btn--outline-white:hover {
    background: rgba(245,245,240,0.1);
    border-color: var(--nm-off-white);
}

.nm-btn--lg { padding: 0.875rem 2rem; font-size: 1rem; }

.nm-hero__scroll-hint {
    position: absolute;
    bottom: 1.5rem;
    left: 50%;
    transform: translateX(-50%);
    color: rgba(245,245,240,0.4);
    animation: nm-bounce 2s infinite;
}

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

/* ── Homepage section shared ───────────────────────────────────────────────── */

.nm-homepage-section {
    padding: 4rem 1.5rem;
    max-width: 1280px;
    margin: 0 auto;
}

.nm-section-header {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    margin-bottom: 1.75rem;
}

.nm-section-title {
    font-size: 1.75rem;
    margin: 0;
    color: var(--nm-navy);
}

.nm-section-title--light { color: var(--nm-off-white); }

.nm-section-link {
    font-size: 0.875rem;
    font-weight: 700;
    color: var(--nm-gold-dark);
    text-decoration: none;
}

.nm-section-link:hover { color: var(--nm-navy); }

/* ── Carousel wrapper ──────────────────────────────────────────────────────── */

.nm-carousel-wrap {
    position: relative;
    display: flex;
    align-items: center;
    gap: 0.75rem;
}

.nm-carousel {
    display: flex;
    gap: 1.25rem;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    scrollbar-width: none;
    -ms-overflow-style: none;
    flex: 1;
    padding-bottom: 4px; /* prevent box-shadow clipping */
}

.nm-carousel::-webkit-scrollbar { display: none; }

.nm-carousel-btn {
    flex-shrink: 0;
    width: 40px;
    height: 40px;
    border-radius: 50%;
    background: var(--nm-white);
    border: 1px solid var(--nm-border);
    color: var(--nm-navy);
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: background 0.15s, border-color 0.15s, opacity 0.15s;
    z-index: 1;
}

.nm-carousel-btn:hover { background: var(--nm-navy); color: var(--nm-off-white); border-color: var(--nm-navy); }
.nm-carousel-btn:disabled { opacity: 0.3; cursor: default; pointer-events: none; }

/* ── Release cards ─────────────────────────────────────────────────────────── */

.nm-release-card {
    flex: 0 0 calc( (100% - 3 * 1.25rem) / 4 );
    min-width: 180px;
    scroll-snap-align: start;
    text-decoration: none;
    display: block;
    border-radius: 8px;
    overflow: hidden;
    position: relative;
}

.nm-release-card__image {
    position: relative;
    aspect-ratio: 1;
    overflow: hidden;
    background: var(--nm-navy-tint);
    border-radius: 8px;
}

.nm-release-card__image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform 0.4s ease;
}

.nm-release-card:hover .nm-release-card__image img { transform: scale(1.05); }

.nm-release-card__overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient( to top, rgba(22,35,72,0.95) 0%, rgba(22,35,72,0.4) 60%, transparent 100% );
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    padding: 1rem;
    opacity: 0;
    transition: opacity 0.3s ease;
}

.nm-release-card:hover .nm-release-card__overlay { opacity: 1; }

.nm-release-card__artist {
    font-size: 0.7rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: var(--nm-gold-bright);
    display: block;
    margin-bottom: 0.25rem;
}

.nm-release-card__name {
    font-size: 0.9rem;
    font-weight: 700;
    color: var(--nm-off-white);
    display: block;
    line-height: 1.3;
    margin-bottom: 0.25rem;
    font-family: 'Syne', sans-serif;
}

.nm-release-card__format {
    font-size: 0.7rem;
    color: rgba(245,245,240,0.7);
    display: block;
    margin-bottom: 0.25rem;
}

.nm-release-card__price {
    font-size: 0.9rem;
    font-weight: 700;
    color: var(--nm-gold-bright);
    display: block;
}

.nm-release-card__price .woocommerce-Price-amount { color: inherit; }

/* ── Artist cards ──────────────────────────────────────────────────────────── */

.nm-artist-card {
    flex: 0 0 calc( (100% - 3 * 1.25rem) / 4 );
    min-width: 180px;
    scroll-snap-align: start;
    text-decoration: none;
    display: block;
    border-radius: 8px;
    overflow: hidden;
}

.nm-artist-card__image {
    position: relative;
    aspect-ratio: 1;
    overflow: hidden;
    background: var(--nm-navy);
    border-radius: 8px;
}

.nm-artist-card__image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform 0.4s ease;
    filter: grayscale(20%);
}

.nm-artist-card:hover .nm-artist-card__image img {
    transform: scale(1.05);
    filter: grayscale(0%);
}

.nm-artist-card__placeholder {
    width: 100%;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    background: linear-gradient( 135deg, var(--nm-navy), var(--nm-navy-mid) );
}

.nm-artist-card__overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient( to top, rgba(22,35,72,0.95) 0%, rgba(22,35,72,0.2) 60%, transparent 100% );
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    padding: 1rem;
    opacity: 0;
    transition: opacity 0.3s ease;
}

.nm-artist-card:hover .nm-artist-card__overlay { opacity: 1; }

.nm-artist-card__name {
    font-size: 1rem;
    font-weight: 700;
    color: var(--nm-off-white);
    display: block;
    font-family: 'Syne', sans-serif;
    margin-bottom: 0.2rem;
}

.nm-artist-card__genre {
    font-size: 0.75rem;
    color: var(--nm-gold-bright);
    display: block;
    font-weight: 600;
}

.nm-artist-card__country {
    font-size: 0.7rem;
    color: rgba(245,245,240,0.6);
    display: block;
    margin-top: 0.1rem;
}

/* ── News cards ────────────────────────────────────────────────────────────── */

.nm-news-card {
    flex: 0 0 calc( (100% - 3 * 1.25rem) / 4 );
    min-width: 240px;
    scroll-snap-align: start;
    text-decoration: none;
    color: var(--nm-navy);
    background: var(--nm-white);
    border: 1px solid var(--nm-border);
    border-radius: 10px;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    transition: box-shadow 0.15s, transform 0.15s;
}

.nm-news-card:hover {
    box-shadow: 0 6px 24px rgba(26,43,94,0.12);
    transform: translateY(-2px);
}

.nm-news-card__image {
    height: 160px;
    overflow: hidden;
}

.nm-news-card__image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform 0.3s ease;
}

.nm-news-card:hover .nm-news-card__image img { transform: scale(1.04); }

.nm-news-card__body {
    padding: 1rem;
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 0.4rem;
}

.nm-news-card__type { margin-bottom: 0.2rem; }

.nm-news-card__title {
    font-size: 0.9rem;
    font-weight: 700;
    margin: 0;
    line-height: 1.4;
    color: var(--nm-navy);
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.nm-news-card__excerpt {
    font-size: 0.8rem;
    color: var(--nm-text-muted);
    line-height: 1.5;
    margin: 0;
    flex: 1;
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.nm-news-card__meta {
    display: flex;
    align-items: center;
    gap: 0;
    flex-wrap: wrap;
    margin-top: auto;
}

/* ── Contact section ───────────────────────────────────────────────────────── */

.nm-contact-section {
    background: var(--nm-navy);
    max-width: 100%;
    padding: 1.5rem;
    border-top: 3px solid var(--nm-navy-mid);
    border-bottom: 3px solid var(--nm-navy-mid);
}

.nm-contact-section__inner {
    max-width: 1100px;
    margin: 0 auto;
    display: grid;
    grid-template-columns: 280px 1fr;
    gap: 2.5rem;
    align-items: center;
}

.nm-contact-section__intro {
    color: var(--nm-off-white);
}

.nm-contact-section__intro h2,
.nm-contact-section__intro .nm-section-title {
    color: var(--nm-off-white) !important;
    font-size: 1.4rem !important;
    margin: 0 0 0.5rem !important;
}

.nm-contact-section__intro p {
    color: rgba(245,245,240,0.75);
    line-height: 1.6;
    margin: 0 0 1rem;
    font-size: 0.875rem;
}

/* Strip page template padding from contact content inside homepage */
.nm-contact-section .narwhal-page,
.nm-contact-section .entry-content,
.nm-contact-section .page-content,
.nm-contact-section article,
.nm-contact-section .nm-contact-section__form > * {
    padding: 0 !important;
    margin: 0 !important;
}

.nm-contact-section .narwhal-page__title { display: none !important; }
.nm-contact-section .narwhal-page__body  { margin: 0 !important; padding: 0 !important; }
.nm-contact-section .wpcf7,
.nm-contact-section .wpcf7-form,
.nm-contact-section div.wpcf7,
.nm-contact-section div.wpcf7 > form,
.nm-contact-section .contact-form-wrap,
.nm-contact-section .wpcf7 > form,
.nm-contact-section * {
    background-color: transparent !important;
    border-radius: 0 !important;
    box-shadow: none !important;
}

/* Re-apply to actual inputs only */
.nm-contact-section .wpcf7 input[type="text"],
.nm-contact-section .wpcf7 input[type="email"],
.nm-contact-section .wpcf7 input[type="tel"],
.nm-contact-section .wpcf7 input[type="url"],
.nm-contact-section .wpcf7 textarea,
.nm-contact-section .wpcf7 select,
.nm-contact-section .contact-form-wrap input[type="text"],
.nm-contact-section .contact-form-wrap input[type="email"],
.nm-contact-section .contact-form-wrap input[type="tel"],
.nm-contact-section .contact-form-wrap textarea {
    background-color: rgba(255,255,255,0.08) !important;
    border: 1px solid rgba(255,255,255,0.2) !important;
    border-radius: 4px !important;
    width: 100% !important;
    box-sizing: border-box !important;
    padding: 0.55rem 0.875rem !important;
    color: var(--nm-off-white) !important;
    font-size: 0.875rem !important;
    font-family: inherit !important;
}

.nm-contact-section .wpcf7 input[type="text"]:focus,
.nm-contact-section .wpcf7 input[type="email"]:focus,
.nm-contact-section .wpcf7 textarea:focus,
.nm-contact-section .contact-form-wrap input:focus,
.nm-contact-section .contact-form-wrap textarea:focus {
    border-color: var(--nm-gold-dark) !important;
    outline: none !important;
    background-color: rgba(255,255,255,0.12) !important;
}

.nm-contact-section .wpcf7 input::placeholder,
.nm-contact-section .wpcf7 textarea::placeholder,
.nm-contact-section .contact-form-wrap input::placeholder,
.nm-contact-section .contact-form-wrap textarea::placeholder {
    color: rgba(245,245,240,0.35) !important;
}

.nm-contact-section .wpcf7 textarea,
.nm-contact-section .contact-form-wrap textarea {
    min-height: 80px !important;
    max-height: 120px !important;
    resize: none !important;
}

/* Labels */
.nm-contact-section label,
.nm-contact-section .wpcf7 label {
    color: rgba(245,245,240,0.8) !important;
    font-size: 0.75rem !important;
    font-weight: 600 !important;
    display: block !important;
    margin-bottom: 0.2rem !important;
    background: none !important;
}

/* Tighten field spacing */
.nm-contact-section .wpcf7-form-control-wrap,
.nm-contact-section .wpcf7 p,
.nm-contact-section .contact-form-wrap p {
    display: block !important;
    margin-bottom: 0.5rem !important;
    background: none !important;
}

/* Submit button */
.nm-contact-section .wpcf7 input[type="submit"],
.nm-contact-section .contact-form-wrap input[type="submit"] {
    background-color: var(--nm-gold-dark) !important;
    color: #fff !important;
    border: none !important;
    border-radius: 4px !important;
    padding: 0.6rem 1.5rem !important;
    font-size: 0.875rem !important;
    font-weight: 700 !important;
    font-family: inherit !important;
    cursor: pointer !important;
    width: auto !important;
    margin-top: 0.25rem !important;
}

.nm-contact-section .wpcf7 input[type="submit"]:hover,
.nm-contact-section .contact-form-wrap input[type="submit"]:hover {
    background-color: var(--nm-gold-bright) !important;
    color: var(--nm-navy) !important;
}

/* Response messages */
.nm-contact-section .wpcf7-response-output {
    background-color: rgba(255,255,255,0.08) !important;
    border: 1px solid rgba(255,255,255,0.2) !important;
    border-radius: 4px !important;
    color: var(--nm-off-white) !important;
    padding: 0.5rem 0.875rem !important;
    margin-top: 0.5rem !important;
    font-size: 0.8rem !important;
}

.nm-contact-section .wpcf7-mail-sent-ok {
    background-color: rgba(39,174,96,0.2) !important;
    border-color: #27ae60 !important;
}

@media ( max-width: 768px ) {
    .nm-contact-section__inner { grid-template-columns: 1fr; gap: 1.25rem; }
    .nm-contact-section { padding: 1.5rem; }
}
/* ── Responsive homepage ───────────────────────────────────────────────────── */

@media ( max-width: 1024px ) {
    .nm-release-card,
    .nm-artist-card { flex: 0 0 calc( (100% - 2 * 1.25rem) / 3 ); }
    .nm-news-card   { flex: 0 0 calc( (100% - 1.25rem) / 2 ); }
}

@media ( max-width: 768px ) {
    .nm-hero { min-height: 100svh; background-attachment: scroll; }
    .nm-release-card,
    .nm-artist-card { flex: 0 0 calc( (100% - 1.25rem) / 2 ); min-width: 150px; }
    .nm-news-card   { flex: 0 0 80vw; }
    .nm-contact-section__inner { grid-template-columns: 1fr; gap: 2rem; }
    .nm-section-title { font-size: 1.4rem; }
    .nm-carousel-btn { display: none; }
}

@media ( max-width: 480px ) {
    .nm-hero__title { font-size: 1.75rem; }
    .nm-release-card,
    .nm-artist-card { flex: 0 0 70vw; }
}

/* ═══════════════════════════════════════════════════════════════════════════
   MUSIC PLAYER
   ═══════════════════════════════════════════════════════════════════════════ */

.nm-player {
    background: var(--nm-navy-deep);
    display: grid;
    grid-template-columns: 160px 1fr auto;
    gap: 1.25rem;
    align-items: center;
    padding: 0.875rem 1.5rem;
    width: 100%;
    box-sizing: border-box;
    border-bottom: 2px solid var(--nm-navy-mid);
    position: relative;
}

/* Artwork */
.nm-player__artwork-wrap {
    width: 140px;
    height: 140px;
    flex-shrink: 0;
    border-radius: 6px;
    overflow: hidden;
    background: rgba(255,255,255,0.06);
    position: relative;
}

.nm-player__artwork {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.nm-player__artwork-placeholder {
    width: 100%;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(255,255,255,0.06);
}

/* Centre */
.nm-player__centre { min-width: 0; flex: 1; }

.nm-player__track-info {
    display: flex;
    flex-direction: column;
    gap: 0.1rem;
    margin-bottom: 0.6rem;
}

.nm-player__track-name {
    font-size: 0.95rem;
    font-weight: 700;
    color: var(--nm-off-white);
    font-family: 'Syne', sans-serif;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.nm-player__artist-name {
    font-size: 0.8rem;
    color: var(--nm-gold-bright);
    font-weight: 600;
    text-decoration: none;
    transition: color 0.15s;
}

.nm-player__artist-name:hover { color: var(--nm-off-white); }

.nm-player__genre-name {
    font-size: 0.7rem;
    color: var(--nm-navy-muted);
    font-weight: 500;
    text-transform: uppercase;
    letter-spacing: 0.06em;
}

.nm-player__release-name {
    font-size: 0.75rem;
    color: var(--nm-navy-muted);
}

/* Waveform */
.nm-player__waveform-wrap { position: relative; }

.nm-player__waveform {
    display: block;
    width: 100%;
    height: 48px;
    cursor: pointer;
    border-radius: 4px;
}

.nm-player__time-row {
    display: flex;
    justify-content: space-between;
    font-size: 0.7rem;
    color: var(--nm-navy-muted);
    margin-top: 0.25rem;
}

/* Controls */
.nm-player__controls-wrap {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.75rem;
    flex-shrink: 0;
}

.nm-player__controls {
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.nm-player-btn {
    background: rgba(255,255,255,0.08);
    border: none;
    border-radius: 50%;
    width: 36px;
    height: 36px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--nm-off-white);
    cursor: pointer;
    transition: background 0.15s, transform 0.1s;
    flex-shrink: 0;
}

.nm-player-btn:hover { background: rgba(255,255,255,0.18); }

.nm-player-btn--play {
    width: 48px;
    height: 48px;
    background: var(--nm-gold-dark);
}

.nm-player-btn--play:hover { background: var(--nm-gold-bright); }

.nm-player-btn--sm {
    width: 28px;
    height: 28px;
}

/* Volume */
.nm-player__volume {
    display: flex;
    align-items: center;
    gap: 0.4rem;
}

.nm-player__vol-slider {
    -webkit-appearance: none;
    appearance: none;
    width: 80px;
    height: 4px;
    background: rgba(255,255,255,0.2);
    border-radius: 2px;
    outline: none;
    cursor: pointer;
}

.nm-player__vol-slider::-webkit-slider-thumb {
    -webkit-appearance: none;
    width: 12px;
    height: 12px;
    border-radius: 50%;
    background: var(--nm-gold-bright);
    cursor: pointer;
}

.nm-player__vol-slider::-moz-range-thumb {
    width: 12px;
    height: 12px;
    border-radius: 50%;
    background: var(--nm-gold-bright);
    cursor: pointer;
    border: none;
}

@media ( max-width: 900px ) {
    .nm-player { grid-template-columns: 100px 1fr; gap: 0.875rem; }
    .nm-player__artwork-wrap { width: 100px; height: 100px; }
    .nm-player__controls-wrap { grid-column: 1 / -1; flex-direction: row; justify-content: space-between; padding: 0 0.25rem; }
    .nm-player__volume { gap: 0.3rem; }
}

@media ( max-width: 600px ) {
    .nm-player { grid-template-columns: 72px 1fr; padding: 0.75rem 1rem; }
    .nm-player__artwork-wrap { width: 72px; height: 72px; }
    .nm-player__track-name { font-size: 0.85rem; }
    .nm-player__vol-slider { width: 60px; }
    .nm-player__waveform { height: 36px; }
}

/* ── Shop and archive pagination ───────────────────────────────────────────── */

nav.woocommerce-pagination { margin: 2rem 0 !important; background: none !important; }

nav.woocommerce-pagination ul.page-numbers {
    display: flex !important;
    flex-direction: row !important;
    flex-wrap: wrap !important;
    align-items: center !important;
    justify-content: flex-start !important;
    gap: 0.35rem !important;
    list-style: none !important;
    margin: 0 !important;
    padding: 0 !important;
    border: none !important;
    width: auto !important;
    background: none !important;
}

nav.woocommerce-pagination ul.page-numbers::before,
nav.woocommerce-pagination ul.page-numbers::after { display: none !important; }

nav.woocommerce-pagination ul.page-numbers li {
    display: inline-flex !important;
    float: none !important;
    margin: 0 !important;
    padding: 0 !important;
    flex: 0 0 auto !important;
    background: none !important;
}

nav.woocommerce-pagination ul.page-numbers li a.page-numbers,
nav.woocommerce-pagination ul.page-numbers li span.page-numbers {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    min-width: 36px !important;
    height: 36px !important;
    padding: 0 0.625rem !important;
    border: 1px solid var(--nm-border) !important;
    border-radius: 4px !important;
    font-size: 0.875rem !important;
    font-weight: 600 !important;
    color: var(--nm-navy) !important;
    background: var(--nm-white) !important;
    text-decoration: none !important;
    line-height: 1 !important;
}

nav.woocommerce-pagination ul.page-numbers li a.page-numbers:hover {
    background: var(--nm-navy-tint) !important;
    border-color: var(--nm-navy) !important;
}

nav.woocommerce-pagination ul.page-numbers li span.current {
    background: var(--nm-navy) !important;
    border-color: var(--nm-navy) !important;
    color: var(--nm-off-white) !important;
}

nav.woocommerce-pagination ul.page-numbers li span.dots {
    border: none !important;
    background: none !important;
    min-width: auto !important;
}

/* News archive pagination */
.narwhal-news__pagination {
    display: flex !important;
    flex-direction: row !important;
    flex-wrap: wrap !important;
    gap: 0.35rem !important;
    margin: 2rem 0 !important;
}

.narwhal-news__pagination a,
.narwhal-news__pagination span {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    min-width: 36px !important;
    height: 36px !important;
    padding: 0 0.625rem !important;
    border: 1px solid var(--nm-border) !important;
    border-radius: 4px !important;
    font-size: 0.875rem !important;
    font-weight: 600 !important;
    color: var(--nm-navy) !important;
    background: var(--nm-white) !important;
    text-decoration: none !important;
}

.narwhal-news__pagination .current {
    background: var(--nm-navy) !important;
    border-color: var(--nm-navy) !important;
    color: var(--nm-off-white) !important;
}


.woocommerce-breadcrumb {
    font-size: 0.8rem;
    color: var(--nm-text-muted);
    margin: 0 0 1.5rem;
    padding: 0.75rem 1.5rem;
    background: var(--nm-white);
    border-bottom: 1px solid var(--nm-border);
}

.woocommerce-breadcrumb a {
    color: var(--nm-navy);
    text-decoration: none;
}

.woocommerce-breadcrumb a:hover { color: var(--nm-gold-dark); }

.woocommerce-breadcrumb .delimiter { margin: 0 0.4rem; color: var(--nm-border); }

/* ── Product format badge on shop cards ────────────────────────────────────── */

.product-format-badge {
    display: inline-block;
    font-size: 0.7rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    padding: 0.2rem 0.6rem;
    border-radius: 3px;
    background: var(--nm-navy);
    color: var(--nm-off-white);
    margin-bottom: 0.5rem;
}

/* ── Shop featured / new releases section ──────────────────────────────────── */

.shop-featured-section {
    margin-bottom: 3rem;
    padding-bottom: 2.5rem;
    border-bottom: 2px solid var(--nm-navy-tint);
}

.shop-featured-header {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    margin-bottom: 1.25rem;
}

.shop-featured-title { font-size: 1.4rem; margin: 0; }

.shop-featured-all {
    font-size: 0.875rem;
    color: var(--nm-gold-dark);
    text-decoration: none;
    font-weight: 600;
}

.shop-featured-all:hover { color: var(--nm-navy); }

.shop-featured-grid {
    display: grid;
    grid-template-columns: repeat( auto-fill, minmax( 260px, 1fr ) );
    gap: 1.5rem;
}

.shop-featured-card {
    display: flex;
    background: var(--nm-white);
    border: 1px solid var(--nm-border);
    border-radius: 10px;
    overflow: hidden;
    text-decoration: none;
    color: var(--nm-navy);
    transition: box-shadow 0.15s, transform 0.15s;
    align-items: center;
}

.shop-featured-card:hover {
    box-shadow: 0 4px 20px rgba(26,43,94,0.12);
    transform: translateY(-2px);
}

.shop-featured-card__image {
    position: relative;
    width: 110px;
    flex-shrink: 0;
    align-self: stretch;
    overflow: hidden;
}

.shop-featured-card__image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.shop-featured-card__format {
    position: absolute;
    top: 0.5rem;
    left: 0.5rem;
    font-size: 0.65rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    background: var(--nm-navy);
    color: var(--nm-off-white);
    padding: 0.15rem 0.5rem;
    border-radius: 3px;
}

.shop-featured-card__info { padding: 0.875rem 1rem; flex: 1; min-width: 0; }

.shop-featured-card__artist {
    display: block;
    font-size: 0.75rem;
    color: var(--nm-text-muted);
    margin-bottom: 0.25rem;
}

.shop-featured-card__title {
    font-size: 0.95rem;
    font-weight: 700;
    margin: 0 0 0.4rem;
    line-height: 1.3;
    font-family: 'Syne', sans-serif;
    color: var(--nm-navy);
}

.shop-featured-card__price {
    font-size: 1rem;
    font-weight: 600;
    color: var(--nm-gold-dark);
}

@media ( max-width: 600px ) {
    .shop-featured-grid { grid-template-columns: 1fr; }
    .shop-featured-card__image { width: 90px; }
}

/* ── 404 page ──────────────────────────────────────────────────────────────── */

.narwhal-404 {
    max-width: 560px;
    margin: 4rem auto;
    padding: 0 1.5rem;
    text-align: center;
}

.narwhal-404__icon { margin-bottom: 1.5rem; }

.narwhal-404__title {
    font-size: 1.75rem;
    margin-bottom: 0.75rem;
    color: var(--nm-navy);
}

.narwhal-404__message {
    color: var(--nm-text-muted);
    margin-bottom: 2rem;
    line-height: 1.7;
}

.narwhal-404__actions {
    display: flex;
    gap: 0.75rem;
    justify-content: center;
    flex-wrap: wrap;
    margin-bottom: 2.5rem;
}

.narwhal-404__search p {
    font-size: 0.875rem;
    color: var(--nm-text-muted);
    margin-bottom: 0.75rem;
}

.narwhal-404__search .narwhal-search-form {
    background: var(--nm-navy-tint);
    border: 1px solid var(--nm-border);
    max-width: 400px;
    margin: 0 auto;
}

.narwhal-404__search .narwhal-search-input { color: var(--nm-navy); background: transparent; }
.narwhal-404__search .narwhal-search-input::placeholder { color: var(--nm-text-muted); }
.narwhal-404__search .narwhal-search-submit { color: var(--nm-text-muted); border-left-color: var(--nm-border); }
.narwhal-404__search .narwhal-search-submit:hover { color: var(--nm-navy); }

/* ── WooCommerce product tabs ──────────────────────────────────────────────── */

.woocommerce div.product .woocommerce-tabs {
    margin-top: 2rem;
}

.woocommerce div.product .woocommerce-tabs ul.tabs {
    list-style: none;
    margin: 0 0 -1px;
    padding: 0;
    display: flex;
    gap: 0;
    border-bottom: 2px solid var(--nm-border);
}

.woocommerce div.product .woocommerce-tabs ul.tabs li {
    margin: 0;
    padding: 0;
    background: none;
    border: none;
}

.woocommerce div.product .woocommerce-tabs ul.tabs li a {
    display: block;
    padding: 0.65rem 1.25rem;
    font-size: 0.875rem;
    font-weight: 600;
    color: var(--nm-text-muted);
    text-decoration: none;
    border-bottom: 2px solid transparent;
    margin-bottom: -2px;
    transition: color 0.15s, border-color 0.15s;
}

.woocommerce div.product .woocommerce-tabs ul.tabs li.active a,
.woocommerce div.product .woocommerce-tabs ul.tabs li a:hover {
    color: var(--nm-navy);
    border-bottom-color: var(--nm-navy);
}

.woocommerce div.product .woocommerce-tabs .panel {
    background: var(--nm-white);
    border: 1px solid var(--nm-border);
    border-top: none;
    border-radius: 0 0 8px 8px;
    padding: 1.5rem;
    margin: 0;
}

.woocommerce div.product .woocommerce-tabs .panel h2 { font-size: 1.1rem; margin-bottom: 1rem; }

/* ── Out of stock / low stock badges ───────────────────────────────────────── */

.product-stock-badge {
    display: inline-block;
    font-size: 0.7rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    padding: 0.2rem 0.6rem;
    border-radius: 3px;
    margin-bottom: 0.35rem;
}

.product-stock-badge--out {
    background: #c0392b;
    color: #fff;
}

.product-stock-badge--low {
    background: var(--nm-gold-dark);
    color: #fff;
}

/* ── WooCommerce upsells and related products ──────────────────────────────── */

.woocommerce .upsells,
.woocommerce .related {
    margin-top: 3rem;
    padding-top: 2rem;
    border-top: 1px solid var(--nm-border);
}

.woocommerce .upsells h2,
.woocommerce .related h2 {
    font-size: 1.25rem;
    margin-bottom: 1.25rem;
}

/* ── Thank you / order confirmation page ───────────────────────────────────── */

.narwhal-thankyou {
    max-width: 800px;
    margin: 0 auto;
    padding: 2rem 1.5rem 4rem;
}

.narwhal-thankyou__hero {
    text-align: center;
    padding: 2.5rem 0 2rem;
    border-bottom: 1px solid var(--nm-border);
    margin-bottom: 2rem;
}

.narwhal-thankyou__icon { margin-bottom: 1.25rem; }

.narwhal-thankyou__title {
    font-size: 2rem;
    margin-bottom: 0.75rem;
    color: var(--nm-navy);
}

.narwhal-thankyou__subtitle {
    color: var(--nm-text-muted);
    font-size: 1rem;
    line-height: 1.6;
    max-width: 500px;
    margin: 0 auto 1.25rem;
}

.narwhal-thankyou__details {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 2rem;
    margin-bottom: 2rem;
}

.narwhal-thankyou__summary,
.narwhal-thankyou__items,
.narwhal-thankyou__addresses {
    background: var(--nm-white);
    border: 1px solid var(--nm-border);
    border-radius: 8px;
    padding: 1.25rem;
}

.narwhal-thankyou__summary h2,
.narwhal-thankyou__items h2,
.narwhal-thankyou__addresses h3 {
    font-size: 1rem;
    margin-bottom: 1rem;
    padding-bottom: 0.75rem;
    border-bottom: 1px solid var(--nm-border);
}

.narwhal-thankyou__items { grid-column: 1 / -1; }

.narwhal-thankyou__meta-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0.75rem;
}

.narwhal-thankyou__meta-item .label {
    display: block;
    font-size: 0.75rem;
    color: var(--nm-text-muted);
    margin-bottom: 0.2rem;
}

.narwhal-thankyou__meta-item .value {
    font-weight: 600;
    color: var(--nm-navy);
    font-size: 0.9rem;
}

.narwhal-order-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.875rem;
}

.narwhal-order-table th,
.narwhal-order-table td {
    padding: 0.6rem 0.75rem;
    text-align: left;
    border-bottom: 1px solid var(--nm-border);
}

.narwhal-order-table thead th {
    font-size: 0.75rem;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--nm-text-muted);
    font-weight: 600;
}

.narwhal-order-table tfoot th,
.narwhal-order-table tfoot td {
    font-weight: 600;
    color: var(--nm-navy);
}

.narwhal-order-table tfoot tr:last-child th,
.narwhal-order-table tfoot tr:last-child td {
    font-size: 1rem;
    color: var(--nm-gold-dark);
    border-bottom: none;
}

.narwhal-order-table a { color: var(--nm-navy); text-decoration: none; }
.narwhal-order-table a:hover { color: var(--nm-gold-dark); }

.narwhal-thankyou__addresses {
    grid-column: 1 / -1;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 1.5rem;
}

.narwhal-thankyou__address address {
    font-style: normal;
    font-size: 0.875rem;
    line-height: 1.7;
    color: var(--nm-text-muted);
}

.narwhal-thankyou__actions {
    display: flex;
    gap: 0.75rem;
    justify-content: center;
    flex-wrap: wrap;
    margin-top: 1rem;
}

@media ( max-width: 640px ) {
    .narwhal-thankyou__details { grid-template-columns: 1fr; }
    .narwhal-thankyou__items { grid-column: auto; }
    .narwhal-thankyou__addresses { grid-column: auto; grid-template-columns: 1fr; }
    .narwhal-thankyou__meta-grid { grid-template-columns: 1fr; }
    .narwhal-thankyou__title { font-size: 1.5rem; }
}

/* ── Empty cart page ───────────────────────────────────────────────────────── */

.narwhal-empty-cart {
    max-width: 480px;
    margin: 4rem auto;
    padding: 0 1.5rem;
    text-align: center;
}

.narwhal-empty-cart__icon { margin-bottom: 1.5rem; }

.narwhal-empty-cart__title {
    font-size: 1.75rem;
    margin-bottom: 0.75rem;
    color: var(--nm-navy);
}

.narwhal-empty-cart__message {
    color: var(--nm-text-muted);
    line-height: 1.7;
    margin-bottom: 2rem;
}

.narwhal-empty-cart__actions {
    display: flex;
    gap: 0.75rem;
    justify-content: center;
    flex-wrap: wrap;
}

/* Fix WooCommerce block grid on empty cart — override any column collapse */
.woocommerce-cart .wc-block-grid__products {
    display: grid !important;
    grid-template-columns: repeat( auto-fill, minmax( 200px, 1fr ) ) !important;
    gap: 1.5rem !important;
    list-style: none !important;
    margin: 1.5rem 0 0 !important;
    padding: 0 !important;
    width: 100% !important;
}

.woocommerce-cart .wc-block-grid__product {
    display: flex !important;
    flex-direction: column !important;
    width: auto !important;
    min-width: 0 !important;
    max-width: none !important;
    background: var(--nm-white) !important;
    border: 1px solid var(--nm-border) !important;
    border-radius: 8px !important;
    overflow: hidden !important;
}

.woocommerce-cart .wc-block-grid__product-image img {
    width: 100% !important;
    height: auto !important;
    aspect-ratio: 1 !important;
    object-fit: cover !important;
    display: block !important;
}

.woocommerce-cart .wc-block-grid__product-title {
    font-size: 0.875rem !important;
    font-weight: 700 !important;
    color: var(--nm-navy) !important;
    padding: 0.6rem 0.75rem 0.25rem !important;
    margin: 0 !important;
}

.woocommerce-cart .wc-block-grid__product-price {
    padding: 0 0.75rem 0.5rem !important;
    color: var(--nm-gold-dark) !important;
    font-weight: 600 !important;
}

.woocommerce-cart .wc-block-grid__product-add-to-cart {
    padding: 0 0.75rem 0.75rem !important;
    margin-top: auto !important;
}

.woocommerce-cart .wc-block-grid__product-add-to-cart .wp-block-button__link,
.woocommerce-cart .wc-block-grid__product-add-to-cart .add_to_cart_button {
    display: block !important;
    width: 100% !important;
    background-color: var(--nm-navy) !important;
    color: var(--nm-off-white) !important;
    border: none !important;
    border-radius: 4px !important;
    padding: 0.6rem 1rem !important;
    font-size: 0.8rem !important;
    font-weight: 600 !important;
    text-align: center !important;
    text-decoration: none !important;
    cursor: pointer !important;
    writing-mode: horizontal-tb !important;
    white-space: nowrap !important;
}

/* Fix WooCommerce block grid heading */
.woocommerce-cart .wc-block-grid h2,
.woocommerce-cart .woocommerce > h2 {
    font-family: 'Syne', sans-serif !important;
    font-size: 1.5rem !important;
    color: var(--nm-navy) !important;
    text-align: center !important;
    margin: 2rem 0 0.5rem !important;
}

.woocommerce-cart .woocommerce-cart-form + .wc-block-grid,
.woocommerce-cart .wc-empty-cart-message + div {
    max-width: 100% !important;
    padding: 0 1rem !important;
}

/* Fix WooCommerce block grid add to cart button on empty cart page */
.woocommerce-cart .wc-block-grid__product-add-to-cart .wp-block-button__link,
.woocommerce-cart .wc-block-grid__product-add-to-cart a,
.wc-block-grid__product-add-to-cart .wp-block-button__link,
.wc-block-grid__product-add-to-cart .add_to_cart_button {
    background-color: var(--nm-navy) !important;
    color: var(--nm-off-white) !important;
    border: none !important;
    border-radius: 4px !important;
    font-size: 0.875rem !important;
    padding: 0.6rem 1.2rem !important;
    width: 100% !important;
    text-align: center !important;
    text-decoration: none !important;
}

.wc-block-grid__product-add-to-cart .wp-block-button__link:hover,
.wc-block-grid__product-add-to-cart .add_to_cart_button:hover {
    background-color: var(--nm-navy-mid) !important;
    color: var(--nm-off-white) !important;
}

.woocommerce-cart .woocommerce > h2,
.woocommerce-cart .related > h2,
.woocommerce-cart .cross-sells > h2 {
    font-family: 'Syne', sans-serif;
    font-size: 1.5rem;
    color: var(--nm-navy);
    text-align: center;
    margin-bottom: 1.5rem;
}

.woocommerce-cart .products .woocommerce-loop-product__title {
    color: var(--nm-navy);
}

.woocommerce-cart .products a {
    color: var(--nm-navy);
    text-decoration: none;
}

.woocommerce-cart .products a:hover {
    color: var(--nm-gold-dark);
}

/* ── My Account layout ─────────────────────────────────────────────────────── */

.narwhal-account {
    max-width: 1100px;
    margin: 0 auto;
    padding: 2rem 1.5rem 4rem;
}

.narwhal-account__header {
    display: flex;
    align-items: center;
    gap: 1.25rem;
    margin-bottom: 2rem;
    padding-bottom: 2rem;
    border-bottom: 1px solid var(--nm-border);
}

.narwhal-account__avatar-img {
    width: 64px;
    height: 64px;
    border-radius: 50%;
    border: 3px solid var(--nm-navy-tint);
}

.narwhal-account__title { font-size: 1.5rem; margin: 0 0 0.25rem; }

.narwhal-account__subtitle { color: var(--nm-text-muted); margin: 0; font-size: 0.875rem; }

.narwhal-account__layout {
    display: grid;
    grid-template-columns: 220px 1fr;
    gap: 2.5rem;
    align-items: start;
}

/* Account nav */
.narwhal-account-nav {
    position: sticky;
    top: 80px;
    background: var(--nm-white);
    border: 1px solid var(--nm-border);
    border-radius: 8px;
    overflow: hidden;
}

.narwhal-account-nav__list {
    list-style: none;
    margin: 0;
    padding: 0.5rem 0;
}

.narwhal-account-nav__item a {
    display: block;
    padding: 0.65rem 1.1rem;
    font-size: 0.875rem;
    color: var(--nm-text-muted);
    text-decoration: none;
    transition: background 0.12s, color 0.12s;
    border-left: 3px solid transparent;
}

.narwhal-account-nav__item a:hover {
    background: var(--nm-navy-tint);
    color: var(--nm-navy);
}

.narwhal-account-nav__item.is-active a,
.narwhal-account-nav__item.woocommerce-MyAccount-navigation-link--active a {
    color: var(--nm-navy);
    font-weight: 600;
    border-left-color: var(--nm-navy);
    background: var(--nm-navy-tint);
}

/* Account content area */
.narwhal-account__content { min-width: 0; }

.narwhal-account__content .woocommerce-MyAccount-content { min-width: 0; }

/* Orders table */
.woocommerce-account .woocommerce-orders-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.875rem;
    background: var(--nm-white);
    border-radius: 8px;
    overflow: hidden;
    border: 1px solid var(--nm-border);
}

.woocommerce-account .woocommerce-orders-table th {
    background: var(--nm-navy);
    color: var(--nm-off-white);
    padding: 0.75rem 1rem;
    text-align: left;
    font-size: 0.75rem;
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

.woocommerce-account .woocommerce-orders-table td {
    padding: 0.75rem 1rem;
    border-bottom: 1px solid var(--nm-border);
    color: var(--nm-navy);
}

.woocommerce-account .woocommerce-orders-table tr:last-child td { border-bottom: none; }
.woocommerce-account .woocommerce-orders-table tr:hover td { background: var(--nm-navy-tint); }

.woocommerce-account .woocommerce-orders-table a { color: var(--nm-navy); text-decoration: none; font-weight: 600; }
.woocommerce-account .woocommerce-orders-table a:hover { color: var(--nm-gold-dark); }

/* Order status badges */
.woocommerce-account .wc-item-meta,
.woocommerce-account mark.order-status {
    background: var(--nm-navy-tint);
    color: var(--nm-navy);
    padding: 0.2rem 0.6rem;
    border-radius: 20px;
    font-size: 0.75rem;
    font-weight: 600;
}

/* Account address boxes */
.woocommerce-account address {
    font-style: normal;
    background: var(--nm-white);
    border: 1px solid var(--nm-border);
    border-radius: 8px;
    padding: 1.25rem;
    font-size: 0.875rem;
    line-height: 1.7;
    color: var(--nm-text-muted);
}

/* Account form fields */
.woocommerce-account .woocommerce-EditAccountForm fieldset {
    border: 1px solid var(--nm-border);
    border-radius: 8px;
    padding: 1.25rem;
    margin-bottom: 1.5rem;
}

.woocommerce-account .woocommerce-EditAccountForm legend {
    font-weight: 600;
    color: var(--nm-navy);
    padding: 0 0.5rem;
    font-family: 'Syne', sans-serif;
}

@media ( max-width: 768px ) {
    .narwhal-account__layout { grid-template-columns: 1fr; }
    .narwhal-account-nav { position: static; }
    .narwhal-account__header { flex-direction: column; text-align: center; }
}

/* ── Single blog post ──────────────────────────────────────────────────────── */

.narwhal-single-post { max-width: 780px; margin: 0 auto; padding: 2rem 1.5rem 4rem; }

.narwhal-post__hero { margin: -2rem -1.5rem 2rem; }

.narwhal-post__hero-image { width: 100%; max-height: 480px; object-fit: cover; }

.narwhal-post__header-inner { padding-top: 1.5rem; }

.narwhal-post__meta {
    display: flex;
    gap: 1rem;
    font-size: 0.8rem;
    color: var(--nm-text-muted);
    margin-bottom: 0.75rem;
    flex-wrap: wrap;
}

.narwhal-post__meta a { color: var(--nm-text-muted); text-decoration: none; }
.narwhal-post__meta a:hover { color: var(--nm-gold-dark); }

.narwhal-post__title { font-size: 2rem; margin-bottom: 1.5rem; }

.narwhal-post__body { font-size: 1rem; line-height: 1.8; }
.narwhal-post__body p { margin: 0 0 1.25rem; }
.narwhal-post__body h2 { font-size: 1.4rem; margin: 2rem 0 0.75rem; }
.narwhal-post__body h3 { font-size: 1.15rem; margin: 1.5rem 0 0.6rem; }
.narwhal-post__body img { border-radius: 6px; margin: 1rem 0; }
.narwhal-post__body a { color: var(--nm-navy); }
.narwhal-post__body a:hover { color: var(--nm-gold-dark); }
.narwhal-post__body blockquote {
    border-left: 4px solid var(--nm-navy);
    margin: 1.5rem 0;
    padding: 0.75rem 1.25rem;
    background: var(--nm-navy-tint);
    border-radius: 0 6px 6px 0;
    font-style: italic;
}

.narwhal-post__footer {
    margin-top: 2.5rem;
    padding-top: 1.5rem;
    border-top: 1px solid var(--nm-border);
}

.narwhal-post__tags {
    font-size: 0.875rem;
    color: var(--nm-text-muted);
    margin-bottom: 1.25rem;
}

.narwhal-post__tags a {
    color: var(--nm-navy);
    text-decoration: none;
    background: var(--nm-navy-tint);
    padding: 0.2rem 0.6rem;
    border-radius: 20px;
    font-size: 0.8rem;
}

.narwhal-post__nav .nav-links {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    flex-wrap: wrap;
}

.narwhal-post__nav a { color: var(--nm-navy); text-decoration: none; font-size: 0.875rem; font-weight: 600; }
.narwhal-post__nav a:hover { color: var(--nm-gold-dark); }

/* ── Pagination ────────────────────────────────────────────────────────────── */

.narwhal-account__content .woocommerce-pagination,
.narwhal-account__content .woocommerce-pagination ul,
.woocommerce-pagination ul,
.narwhal-post__nav .nav-links,
.navigation.pagination .nav-links {
    display: flex;
    gap: 0.35rem;
    flex-wrap: wrap;
    align-items: center;
    list-style: none;
    margin: 2rem 0 0;
    padding: 0;
}

.navigation.pagination .page-numbers,
.woocommerce-pagination .page-numbers {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    border-radius: 4px;
    font-size: 0.875rem;
    text-decoration: none;
    color: var(--nm-navy);
    border: 1px solid var(--nm-border);
    background: var(--nm-white);
    transition: background 0.12s, color 0.12s, border-color 0.12s;
}

.navigation.pagination .page-numbers:hover,
.woocommerce-pagination .page-numbers:hover {
    background: var(--nm-navy);
    color: var(--nm-off-white);
    border-color: var(--nm-navy);
}

.navigation.pagination .page-numbers.current,
.woocommerce-pagination .page-numbers.current {
    background: var(--nm-navy);
    color: var(--nm-off-white);
    border-color: var(--nm-navy);
    font-weight: 600;
}

.navigation.pagination .page-numbers.dots,
.woocommerce-pagination .page-numbers.dots {
    border: none;
    background: none;
}

.navigation.pagination .prev,
.navigation.pagination .next,
.woocommerce-pagination .prev,
.woocommerce-pagination .next {
    width: auto;
    padding: 0 0.75rem;
    font-weight: 600;
}

/* ── Checkout agreement checkboxes ─────────────────────────────────────────── */

.nm-checkout-agreements {
    margin: 1.25rem 0;
    display: flex;
    flex-direction: column;
    gap: 0.875rem;
}

.nm-checkout-checkbox-wrap {
    background: var(--nm-white);
    border: 1px solid var(--nm-border);
    border-radius: 6px;
    padding: 0.875rem 1rem;
}

#nm_duties_agreed_wrap,
.nm-duties-wrap {
    background: #fff8e6 !important;
    border: 1px solid var(--nm-gold-dark) !important;
    border-left: 4px solid var(--nm-gold-dark) !important;
}

.nm-checkout-checkbox-label {
    display: flex;
    align-items: flex-start;
    gap: 0.75rem;
    cursor: pointer;
    font-size: 0.875rem;
    line-height: 1.6;
    color: var(--nm-navy);
}

.nm-checkout-checkbox-label input[type="checkbox"] {
    flex-shrink: 0;
    width: 18px;
    height: 18px;
    margin-top: 2px;
    accent-color: var(--nm-navy);
    cursor: pointer;
}

.nm-checkout-checkbox-label a {
    color: var(--nm-navy);
    font-weight: 600;
    text-underline-offset: 2px;
}

.nm-checkout-checkbox-label a:hover { color: var(--nm-gold-dark); }

.nm-checkbox-error {
    color: #c0392b;
    font-size: 0.875rem;
    margin-bottom: 0.75rem;
    padding: 0.6rem 0.875rem;
    background: #fdf2f2;
    border: 1px solid #c0392b;
    border-radius: 4px;
}

/* ── International shipping notice on checkout ─────────────────────────────── */

.nm-international-notice {
    background: #fff8e6;
    border: 1px solid var(--nm-gold-dark);
    border-left: 4px solid var(--nm-gold-dark);
    border-radius: 6px;
    padding: 1rem 1.25rem;
    margin: 0 0 1.5rem;
    font-size: 0.9rem;
    line-height: 1.6;
    color: var(--nm-navy);
    width: 100%;
    box-sizing: border-box;
}

.nm-international-notice strong { color: var(--nm-gold-dark); }

/* ── Contact form wrap ─────────────────────────────────────────────────────── */

.contact-form-wrap {
    background: var(--nm-white);
    border: 1px solid var(--nm-border);
    border-left: 4px solid var(--nm-navy);
    border-radius: 8px;
    padding: 2rem;
    margin: 2rem 0;
}

.wpcf7 input[type="text"],
.wpcf7 input[type="email"],
.wpcf7 input[type="tel"],
.wpcf7 input[type="url"],
.wpcf7 textarea,
.wpcf7 select {
    width: 100%;
    padding: 0.65rem 0.875rem;
    border: 1px solid var(--nm-border);
    border-radius: 4px;
    font-size: 0.95rem;
    font-family: inherit;
    color: var(--nm-navy);
    background: var(--nm-off-white);
    transition: border-color 0.15s;
    box-sizing: border-box;
}

.wpcf7 input[type="text"]:focus,
.wpcf7 input[type="email"]:focus,
.wpcf7 input[type="tel"]:focus,
.wpcf7 input[type="url"]:focus,
.wpcf7 textarea:focus,
.wpcf7 select:focus {
    border-color: var(--nm-navy);
    outline: none;
    background: var(--nm-white);
}

.wpcf7 textarea { min-height: 140px; resize: vertical; }

.wpcf7 label {
    display: block;
    font-size: 0.875rem;
    font-weight: 600;
    color: var(--nm-navy);
    margin-bottom: 0.35rem;
}

.wpcf7 .wpcf7-form-control-wrap { display: block; margin-bottom: 1.25rem; }

.wpcf7 input[type="submit"] {
    background: var(--nm-navy);
    color: var(--nm-off-white);
    border: none;
    border-radius: 4px;
    padding: 0.7rem 1.5rem;
    font-size: 0.95rem;
    font-weight: 600;
    font-family: inherit;
    cursor: pointer;
    transition: background 0.15s;
}

.wpcf7 input[type="submit"]:hover { background: var(--nm-navy-mid); }

.wpcf7 .wpcf7-not-valid-tip {
    font-size: 0.8rem;
    color: #c0392b;
    margin-top: 0.25rem;
    display: block;
}

.wpcf7 .wpcf7-response-output {
    border-radius: 4px;
    padding: 0.75rem 1rem;
    margin-top: 1rem;
    font-size: 0.875rem;
    border: 1px solid var(--nm-border);
}

.wpcf7 .wpcf7-mail-sent-ok {
    background: #eafaf1;
    border-color: #27ae60;
    color: #1e8449;
}

.wpcf7 .wpcf7-mail-sent-ng,
.wpcf7 .wpcf7-spam-blocked {
    background: #fdf2f2;
    border-color: #c0392b;
    color: #c0392b;
}

/* ═══════════════════════════════════════════════════════════════════════════
   EVENTS
   ═══════════════════════════════════════════════════════════════════════════ */

/* ── Events archive page ───────────────────────────────────────────────────── */

.narwhal-events {
    max-width: 900px;
    margin: 0 auto;
    padding: 2rem 1.5rem 4rem;
}

.narwhal-events__header { margin-bottom: 2rem; }
.narwhal-events__title  { font-size: 2rem; margin: 0; }

.narwhal-events__controls {
    margin-bottom: 1.5rem;
    padding-bottom: 1.25rem;
    border-bottom: 1px solid var(--nm-border);
}
    text-align: center;
    padding: 3rem 0;
    color: var(--nm-text-muted);
}

/* ── Event list row ────────────────────────────────────────────────────────── */

.narwhal-event-list { display: flex; flex-direction: column; gap: 0; }

.narwhal-event-row {
    display: grid;
    grid-template-columns: 100px 1fr auto;
    gap: 0;
    align-items: stretch;
    text-decoration: none;
    color: var(--nm-navy);
    background: var(--nm-white);
    border: 1px solid var(--nm-border);
    border-bottom: none;
    transition: background 0.15s;
    position: relative;
    overflow: hidden;
}

.narwhal-event-list .narwhal-event-row:first-child { border-radius: 8px 8px 0 0; }
.narwhal-event-list .narwhal-event-row:last-child   { border-bottom: 1px solid var(--nm-border); border-radius: 0 0 8px 8px; }
.narwhal-event-list .narwhal-event-row:only-child   { border-radius: 8px; border-bottom: 1px solid var(--nm-border); }

.narwhal-event-row--past { opacity: 0.65; }
.narwhal-event-row--past:hover { opacity: 1; }

/* Thumbnail / date block */
.narwhal-event-row__thumb {
    width: 100px;
    flex-shrink: 0;
    overflow: hidden;
    background: var(--nm-navy-tint);
}

.narwhal-event-row__thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.narwhal-event-row__date-block {
    width: 100%;
    height: 100%;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    background: var(--nm-navy);
    color: var(--nm-off-white);
    padding: 0.5rem;
    min-height: 90px;
}

.date-day  { font-size: 1.75rem; font-weight: 700; line-height: 1; font-family: 'Syne', sans-serif; }
.date-mon  { font-size: 0.75rem; text-transform: uppercase; letter-spacing: 0.1em; color: var(--nm-navy-muted); }
.date-yr   { font-size: 0.7rem; color: var(--nm-navy-muted); }

/* Info section */
.narwhal-event-row__info {
    padding: 1rem 1.25rem;
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 0.3rem;
    min-width: 0;
}

.narwhal-event-row__title {
    font-size: 1rem;
    font-weight: 700;
    margin: 0;
    color: var(--nm-navy);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.narwhal-event-row__meta {
    display: flex;
    flex-wrap: wrap;
    gap: 0.25rem 0.75rem;
    font-size: 0.8rem;
}

.narwhal-event-row__datetime { color: var(--nm-gold-dark); font-weight: 600; }
.narwhal-event-row__address  { color: var(--nm-text-muted); }

.narwhal-event-row__badges {
    display: flex;
    gap: 0.4rem;
    flex-wrap: wrap;
    margin-top: 0.25rem;
}

.narwhal-event-row__artist {
    display: block;
    font-size: 0.75rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: var(--nm-gold-dark);
    margin-bottom: 0.2rem;
}

.narwhal-single-event__artist-link--top {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    font-size: 0.8rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: var(--nm-gold-dark);
    text-decoration: none;
    margin-bottom: 0.5rem;
}

.narwhal-single-event__artist-link--top:hover { color: var(--nm-navy); }

.event-artist-link {
    font-size: 0.75rem;
    color: var(--nm-navy-muted);
    font-style: italic;
}

/* Countdown panel — hidden by default, revealed on hover */
.narwhal-event-row__countdown {
    width: 0;
    overflow: hidden;
    background: var(--nm-navy);
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    padding: 0;
    transition: width 0.3s ease, padding 0.3s ease;
    flex-shrink: 0;
}

.narwhal-event-row:hover .narwhal-event-row__countdown,
.narwhal-event-row:focus .narwhal-event-row__countdown {
    width: 180px;
    padding: 1rem 0.75rem;
}

.narwhal-event-row--past .narwhal-event-row__countdown { display: none; }

.countdown-grid {
    display: grid;
    grid-template-columns: repeat( 4, 1fr );
    gap: 0.25rem;
    text-align: center;
}

.countdown-cell { display: flex; flex-direction: column; align-items: center; }

.countdown-num {
    display: block;
    font-size: 1.25rem;
    font-weight: 700;
    color: var(--nm-gold-bright);
    font-family: 'Syne', sans-serif;
    line-height: 1;
}

.countdown-label {
    font-size: 0.6rem;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: var(--nm-navy-muted);
}

.countdown-cta {
    font-size: 0.75rem;
    color: var(--nm-gold-bright);
    font-weight: 600;
    text-align: center;
}

/* ── Past events toggle ────────────────────────────────────────────────────── */

.narwhal-events__past-toggle { margin-top: 2.5rem; }

.narwhal-events__past-btn {
    background: none;
    border: 1px solid var(--nm-border);
    border-radius: 6px;
    padding: 0.6rem 1rem;
    font-size: 0.875rem;
    font-weight: 600;
    color: var(--nm-text-muted);
    cursor: pointer;
    display: flex;
    align-items: center;
    gap: 0.5rem;
    transition: color 0.15s, border-color 0.15s;
}

.narwhal-events__past-btn:hover { color: var(--nm-navy); border-color: var(--nm-navy); }

.past-btn-arrow { transition: transform 0.2s; }
.narwhal-events__past-btn.is-open .past-btn-arrow { transform: rotate( 180deg ); }

.narwhal-event-list--past { margin-top: 1rem; }

/* ── Event role and price badges ───────────────────────────────────────────── */

.event-role-badge {
    display: inline-block;
    font-size: 0.7rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    padding: 0.2rem 0.6rem;
    border-radius: 20px;
}

.event-role-badge--headlining { background: var(--nm-navy); color: var(--nm-off-white); }
.event-role-badge--supporting  { background: var(--nm-navy-tint); color: var(--nm-navy); }
.event-role-badge--festival    { background: var(--nm-gold-dark); color: var(--nm-white); }
.event-role-badge--lg          { font-size: 0.8rem; padding: 0.35rem 0.875rem; }

.event-price {
    font-size: 0.8rem;
    font-weight: 700;
    color: var(--nm-gold-dark);
}

/* ── Single event page ─────────────────────────────────────────────────────── */

.narwhal-single-event {
    max-width: 1100px;
    margin: 0 auto;
    padding: 0 1.5rem 4rem;
}

/* Countdown bar */
.narwhal-event-countdown-bar {
    background: var(--nm-navy);
    padding: 0.875rem 1.5rem;
    margin: 0 -1.5rem 2rem;
}

.narwhal-event-countdown-bar__inner {
    max-width: 1100px;
    margin: 0 auto;
    display: flex;
    align-items: center;
    gap: 2rem;
    flex-wrap: wrap;
}

.countdown-bar-units {
    display: flex;
    gap: 0.5rem;
}

.countdown-bar-cell {
    background: rgba(255,255,255,0.1);
    border-radius: 6px;
    padding: 0.5rem 0.75rem;
    text-align: center;
    min-width: 56px;
}

.countdown-bar-cell .countdown-num {
    font-size: 1.5rem;
    color: var(--nm-gold-bright);
}

.countdown-bar-cell .countdown-label {
    color: var(--nm-navy-muted);
}

.countdown-bar-title {
    color: var(--nm-off-white);
    font-family: 'Syne', sans-serif;
    font-weight: 700;
    font-size: 1rem;
}

/* Layout */
.narwhal-single-event__layout {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 3rem;
    align-items: start;
    margin-bottom: 2.5rem;
}

.narwhal-single-event__img {
    width: 100%;
    border-radius: 10px;
    display: block;
}

.narwhal-single-event__title {
    font-size: 1.75rem;
    margin: 0 0 1.5rem;
}

.narwhal-single-event__meta-list {
    display: flex;
    flex-direction: column;
    gap: 0.6rem;
    margin-bottom: 1.5rem;
}

.narwhal-single-event__meta-item {
    display: flex;
    align-items: flex-start;
    gap: 0.6rem;
    font-size: 0.9rem;
    color: var(--nm-navy);
}

.narwhal-single-event__meta-item svg {
    flex-shrink: 0;
    margin-top: 2px;
    color: var(--nm-navy-muted);
}

.narwhal-single-event__meta-item a {
    color: var(--nm-navy);
    font-weight: 600;
    text-decoration: underline;
    text-underline-offset: 2px;
}

.narwhal-single-event__meta-item a:hover { color: var(--nm-gold-dark); }

.narwhal-single-event__role-row {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    margin-bottom: 1.5rem;
    flex-wrap: wrap;
}

.narwhal-single-event__artist-link {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    font-size: 0.875rem;
    font-weight: 600;
    color: var(--nm-navy);
    text-decoration: none;
}

.narwhal-single-event__artist-link:hover { color: var(--nm-gold-dark); }

.narwhal-single-event__artist-thumb {
    width: 28px;
    height: 28px;
    border-radius: 50%;
    object-fit: cover;
}

.narwhal-single-event__cta-btn {
    font-size: 1rem;
    padding: 0.75rem 2rem;
}

.narwhal-single-event__body {
    border-top: 1px solid var(--nm-border);
    padding-top: 2rem;
    margin-bottom: 2rem;
}

.narwhal-single-event__nav { margin-top: 1.5rem; }

@media ( max-width: 768px ) {
    .narwhal-single-event__layout { grid-template-columns: 1fr; gap: 1.5rem; }
    .narwhal-event-countdown-bar { margin: 0 -1rem 1.5rem; padding: 0.75rem 1rem; }
    .countdown-bar-units { gap: 0.35rem; }
    .countdown-bar-cell { min-width: 46px; padding: 0.4rem 0.5rem; }
    .countdown-bar-cell .countdown-num { font-size: 1.2rem; }
    .narwhal-event-row { grid-template-columns: 80px 1fr; }
    .narwhal-event-row__thumb { width: 80px; }
    .narwhal-event-row__countdown { display: none; }
}

/* ── Artist page: events section ───────────────────────────────────────────── */

.artist-profile__events {
    padding-top: 2rem;
    border-top: 1px solid var(--nm-border);
    margin-bottom: 3rem;
}

.artist-profile__events h2 { font-size: 1.25rem; margin-bottom: 1.25rem; }

.artist-events-list { display: flex; flex-direction: column; gap: 0.75rem; }

.artist-event-card {
    display: grid;
    grid-template-columns: 72px 1fr auto;
    gap: 0;
    align-items: stretch;
    background: var(--nm-white);
    border: 1px solid var(--nm-border);
    border-radius: 8px;
    overflow: hidden;
    text-decoration: none;
    color: var(--nm-navy);
    transition: box-shadow 0.15s;
    position: relative;
}

.artist-event-card:hover { box-shadow: 0 4px 16px rgba(26,43,94,0.12); }

.artist-event-card__thumb {
    width: 72px;
    flex-shrink: 0;
    overflow: hidden;
}

.artist-event-card__thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }

.artist-event-card__thumb--date {
    background: var(--nm-navy);
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 0.4rem;
}

.event-date-day  { font-size: 1.25rem; font-weight: 700; color: var(--nm-off-white); line-height: 1; font-family: 'Syne', sans-serif; }
.event-date-month { font-size: 0.65rem; text-transform: uppercase; letter-spacing: 0.1em; color: var(--nm-navy-muted); }
.event-date-year  { font-size: 0.6rem; color: var(--nm-navy-muted); }

.artist-event-card__info {
    padding: 0.75rem 1rem;
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 0.2rem;
    min-width: 0;
}

.artist-event-card__title {
    font-size: 0.9rem;
    font-weight: 700;
    margin: 0;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.artist-event-card__date   { font-size: 0.75rem; color: var(--nm-gold-dark); font-weight: 600; }
.artist-event-card__address { font-size: 0.75rem; color: var(--nm-text-muted); }

.artist-event-card__meta {
    display: flex;
    gap: 0.4rem;
    flex-wrap: wrap;
    margin-top: 0.2rem;
}

.artist-event-card__countdown {
    width: 0;
    overflow: hidden;
    background: var(--nm-navy);
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 0.4rem;
    padding: 0;
    transition: width 0.3s ease, padding 0.3s ease;
}

.artist-event-card:hover .artist-event-card__countdown {
    width: 140px;
    padding: 0.75rem 0.5rem;
}

.countdown-units { display: grid; grid-template-columns: repeat(3,1fr); gap: 0.2rem; text-align: center; }
.countdown-unit  { display: flex; flex-direction: column; align-items: center; }

.artist-event-card__cta {
    font-size: 0.7rem;
    color: var(--nm-gold-bright);
    font-weight: 600;
}

/* ── "See them live" on single product page ────────────────────────────────── */

.product-see-them-live {
    background: var(--nm-navy-tint);
    border: 1px solid var(--nm-border);
    border-left: 4px solid var(--nm-navy);
    border-radius: 0 8px 8px 0;
    padding: 1.25rem 1.5rem;
    margin: 2rem 0;
}

.product-see-them-live__inner {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1.5rem;
    flex-wrap: wrap;
}

.product-see-them-live__info {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
    flex: 1;
    min-width: 0;
}

.product-see-them-live__label {
    font-size: 0.7rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: var(--nm-navy);
}

.product-see-them-live__event {
    font-size: 1rem;
    font-weight: 700;
    color: var(--nm-navy);
    text-decoration: none;
    font-family: 'Syne', sans-serif;
    line-height: 1.3;
}

.product-see-them-live__event:hover { color: var(--nm-gold-dark); }

.product-see-them-live__date {
    font-size: 0.8rem;
    color: var(--nm-text-muted);
}

.product-see-them-live__actions {
    display: flex;
    gap: 0.5rem;
    flex-wrap: wrap;
    align-items: center;
    flex-shrink: 0;
}

.product-see-them-live__all {
    display: block;
    margin-top: 0.75rem;
    font-size: 0.8rem;
    color: var(--nm-gold-dark);
    text-decoration: none;
    font-weight: 600;
}

.product-see-them-live__all:hover { color: var(--nm-navy); }

@media ( max-width: 600px ) {
    .product-see-them-live__inner { flex-direction: column; }
    .product-see-them-live__actions { width: 100%; }
    .product-see-them-live__actions .nm-btn { flex: 1; text-align: center; }
}

/* ── Mailchimp signup ──────────────────────────────────────────────────────── */

.narwhal-mailchimp-signup {
    background: var(--nm-white);
    border: 1px solid var(--nm-border);
    border-radius: 8px;
    padding: 1.5rem;
    margin: 2rem 0;
}

.narwhal-mailchimp-signup--footer {
    background: rgba(255,255,255,0.05);
    border-color: rgba(255,255,255,0.1);
    margin: 0 0 1.5rem;
}

.narwhal-mailchimp-signup__title {
    font-size: 1.1rem;
    margin: 0 0 0.35rem;
    color: var(--nm-navy);
}

.narwhal-mailchimp-signup--footer .narwhal-mailchimp-signup__title { color: var(--nm-off-white); }

.narwhal-mailchimp-signup__desc {
    font-size: 0.875rem;
    color: var(--nm-text-muted);
    margin: 0 0 1rem;
}

.narwhal-mailchimp-signup--footer .narwhal-mailchimp-signup__desc { color: var(--nm-navy-muted); }

/* Override Mailchimp default form styles to match theme */
.narwhal-mailchimp-signup__form input[type="email"],
.narwhal-mailchimp-signup__form input[type="text"] {
    border: 1px solid var(--nm-border) !important;
    border-radius: 4px !important;
    padding: 0.6rem 0.875rem !important;
    font-size: 0.9rem !important;
    font-family: inherit !important;
    color: var(--nm-navy) !important;
    background: var(--nm-off-white) !important;
    width: 100% !important;
    box-sizing: border-box !important;
}

.narwhal-mailchimp-signup__form input[type="submit"] {
    background: var(--nm-navy) !important;
    color: var(--nm-off-white) !important;
    border: none !important;
    border-radius: 4px !important;
    padding: 0.65rem 1.5rem !important;
    font-size: 0.9rem !important;
    font-weight: 600 !important;
    font-family: inherit !important;
    cursor: pointer !important;
    transition: background 0.15s !important;
}

.narwhal-mailchimp-signup__form input[type="submit"]:hover {
    background: var(--nm-navy-mid) !important;
}

.site-footer__mailchimp {
    border-top: 1px solid rgba(255,255,255,0.08);
    padding-top: 1.5rem;
    margin-bottom: 1rem;
}

/* ── Artist genre taxonomy display ─────────────────────────────────────────── */

.artist-genre-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem;
    margin-bottom: 0.75rem;
}

.artist-genre-tag {
    display: inline-block;
    font-size: 0.75rem;
    font-weight: 600;
    color: var(--nm-navy);
    background: var(--nm-navy-tint);
    border: 1px solid rgba(26,43,94,0.15);
    border-radius: 20px;
    padding: 0.2rem 0.75rem;
    text-decoration: none;
    transition: background 0.12s, color 0.12s;
}

.artist-genre-tag:hover {
    background: var(--nm-navy);
    color: var(--nm-off-white);
}

/* ═══════════════════════════════════════════════════════════════════════════
   HOMEPAGE
   ═══════════════════════════════════════════════════════════════════════════ */

/* ── Hero ──────────────────────────────────────────────────────────────────── */

.nm-hero {
    position: relative;
    min-height: 100vh;
    display: flex;
    align-items: center;
    justify-content: center;
    background-color: var(--nm-navy);
    background-size: cover;
    background-position: center;
    background-attachment: fixed;
    text-align: center;
    color: var(--nm-off-white);
    overflow: hidden;
}

.nm-hero__overlay {
    position: absolute;
    inset: 0;
    background: var(--nm-navy-deep);
    pointer-events: none;
}

.nm-hero__content {
    position: relative;
    z-index: 1;
    max-width: 720px;
    padding: 4rem 2rem;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 1.25rem;
}

.nm-hero__tagline {
    font-size: clamp( 2rem, 5vw, 3.5rem );
    font-weight: 800;
    color: var(--nm-off-white);
    margin: 0;
    line-height: 1.15;
}

.nm-hero__desc {
    font-size: clamp( 1rem, 2vw, 1.2rem );
    color: rgba(245,245,240,0.8);
    line-height: 1.7;
    margin: 0;
    max-width: 540px;
}

.nm-hero__ctas {
    display: flex;
    gap: 0.875rem;
    flex-wrap: wrap;
    justify-content: center;
    margin-top: 0.5rem;
}

/* Gold CTA button */
.nm-btn--gold {
    background: var(--nm-gold-dark);
    color: var(--nm-white);
    border: 2px solid var(--nm-gold-dark);
}

.nm-btn--gold:hover {
    background: var(--nm-gold-bright);
    border-color: var(--nm-gold-bright);
    color: var(--nm-navy);
}

/* Outline white button */
.nm-btn--outline-white {
    background: transparent;
    color: var(--nm-off-white);
    border: 2px solid rgba(245,245,240,0.5);
}

.nm-btn--outline-white:hover {
    background: rgba(245,245,240,0.1);
    border-color: var(--nm-off-white);
}

/* Large button */
.nm-btn--lg { font-size: 1rem; padding: 0.875rem 2rem; }

/* Next event strip */
.nm-hero__next-event {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    background: rgba(255,255,255,0.08);
    border: 1px solid rgba(255,255,255,0.15);
    border-radius: 40px;
    padding: 0.6rem 1.25rem;
    text-decoration: none;
    color: var(--nm-off-white);
    font-size: 0.8rem;
    transition: background 0.15s;
    flex-wrap: wrap;
    justify-content: center;
}

.nm-hero__next-event:hover { background: rgba(255,255,255,0.14); }

.nm-hero__next-event-label {
    font-size: 0.65rem;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    color: var(--nm-gold-bright);
    font-weight: 700;
    white-space: nowrap;
}

.nm-hero__next-event-name { font-weight: 600; }
.nm-hero__next-event-date { color: rgba(245,245,240,0.6); }

/* ── Section layout ────────────────────────────────────────────────────────── */

.nm-section {
    padding: 4rem 1.5rem;
    max-width: 1400px;
    margin: 0 auto;
}

.nm-section--dark {
    background: var(--nm-navy-deep);
    max-width: 100%;
    color: var(--nm-off-white);
}

.nm-section--dark .nm-section__inner {
    max-width: 1400px;
    margin: 0 auto;
    padding: 0 1.5rem;
}

.nm-section__inner--narrow { max-width: 700px; }

.nm-section__header {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    margin-bottom: 1.75rem;
    flex-wrap: wrap;
    gap: 0.5rem;
}

.nm-section__header--center { flex-direction: column; align-items: center; text-align: center; }

.nm-section__title {
    font-size: 1.75rem;
    margin: 0;
    color: var(--nm-navy);
}

.nm-section--dark .nm-section__title { color: var(--nm-off-white); }

.nm-section__subtitle {
    color: var(--nm-navy-muted);
    margin: 0.5rem 0 0;
    font-size: 1rem;
}

.nm-section__all {
    font-size: 0.875rem;
    font-weight: 700;
    color: var(--nm-gold-dark);
    text-decoration: none;
    white-space: nowrap;
}

.nm-section--dark .nm-section__all { color: var(--nm-gold-bright); }
.nm-section__all:hover { opacity: 0.75; }

/* ── Carousel ──────────────────────────────────────────────────────────────── */

.nm-carousel {
    position: relative;
}

.nm-carousel__track {
    display: flex;
    gap: 1.25rem;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    scroll-behavior: smooth;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
    padding-bottom: 0.5rem;
}

.nm-carousel__track::-webkit-scrollbar { display: none; }

.nm-carousel__item {
    scroll-snap-align: start;
    flex: 0 0 calc( 25% - 1rem );
    min-width: 220px;
    text-decoration: none;
    color: var(--nm-navy);
}

@media ( max-width: 1100px ) { .nm-carousel__item { flex: 0 0 calc( 33.333% - 1rem ); } }
@media ( max-width: 768px )  { .nm-carousel__item { flex: 0 0 calc( 50% - 0.75rem ); } }
@media ( max-width: 480px )  { .nm-carousel__item { flex: 0 0 85%; } }

/* Carousel nav buttons */
.nm-carousel__btn {
    position: absolute;
    top: 50%;
    transform: translateY( -50% );
    background: var(--nm-white);
    color: var(--nm-navy);
    border: 1px solid var(--nm-border);
    border-radius: 50%;
    width: 40px;
    height: 40px;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    font-size: 1rem;
    box-shadow: 0 2px 8px rgba(0,0,0,0.1);
    transition: background 0.15s, opacity 0.15s;
    z-index: 2;
}

.nm-carousel__btn--prev { left: -20px; }
.nm-carousel__btn--next { right: -20px; }
.nm-carousel__btn:hover { background: var(--nm-navy); color: var(--nm-off-white); }

.nm-carousel__btn--light {
    background: rgba(255,255,255,0.15);
    color: var(--nm-off-white);
    border-color: rgba(255,255,255,0.2);
}

.nm-carousel__btn--light:hover { background: rgba(255,255,255,0.3); color: var(--nm-off-white); }

@media ( max-width: 600px ) {
    .nm-carousel__btn { display: none; }
}

/* ── Release card ──────────────────────────────────────────────────────────── */

.nm-release-card {
    display: block;
    border-radius: 8px;
    overflow: hidden;
    background: var(--nm-white);
    border: 1px solid var(--nm-border);
    transition: box-shadow 0.2s, transform 0.2s;
}

.nm-release-card:hover {
    box-shadow: 0 8px 32px rgba(26,43,94,0.15);
    transform: translateY( -3px );
}

.nm-release-card__image {
    position: relative;
    aspect-ratio: 1;
    overflow: hidden;
    background: var(--nm-navy-tint);
}

.nm-release-card__image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform 0.4s ease;
}

.nm-release-card:hover .nm-release-card__image img {
    transform: scale( 1.05 );
}

.nm-release-card__overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient( to top, rgba(22,35,72,0.95) 0%, rgba(22,35,72,0.4) 50%, transparent 100% );
    display: flex;
    align-items: flex-end;
    opacity: 0;
    transition: opacity 0.25s ease;
}

.nm-release-card:hover .nm-release-card__overlay { opacity: 1; }

.nm-release-card__overlay-content {
    padding: 1rem;
    display: flex;
    flex-direction: column;
    gap: 0.2rem;
    width: 100%;
}

.nm-release-card__artist {
    font-size: 0.7rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: var(--nm-gold-bright);
}

.nm-release-card__name {
    font-size: 0.95rem;
    font-weight: 700;
    color: var(--nm-off-white);
    line-height: 1.3;
    font-family: 'Syne', sans-serif;
}

.nm-release-card__meta {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    margin-top: 0.15rem;
}

.nm-release-card__format {
    font-size: 0.65rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    background: rgba(255,255,255,0.15);
    color: var(--nm-off-white);
    padding: 0.15rem 0.5rem;
    border-radius: 3px;
}

.nm-release-card__price {
    font-size: 0.875rem;
    font-weight: 700;
    color: var(--nm-gold-bright);
}

.nm-release-card__price .woocommerce-Price-amount { color: var(--nm-gold-bright); }

.nm-release-card__cta {
    font-size: 0.75rem;
    color: rgba(245,245,240,0.7);
    margin-top: 0.35rem;
}

/* ── Artist card ───────────────────────────────────────────────────────────── */

.nm-artist-card {
    display: block;
    border-radius: 8px;
    overflow: hidden;
    position: relative;
}

.nm-artist-card__image {
    position: relative;
    aspect-ratio: 3/4;
    overflow: hidden;
    background: var(--nm-navy);
}

.nm-artist-card__image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform 0.4s ease;
    filter: grayscale(20%);
}

.nm-artist-card:hover .nm-artist-card__image img {
    transform: scale( 1.06 );
    filter: grayscale(0%);
}

.nm-artist-card__placeholder {
    width: 100%;
    height: 100%;
    background: linear-gradient( 135deg, var(--nm-navy), var(--nm-navy-mid) );
}

.nm-artist-card__overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient( to top, rgba(22,35,72,0.95) 0%, rgba(22,35,72,0.3) 55%, transparent 100% );
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    padding: 1rem;
    opacity: 0;
    transition: opacity 0.25s ease;
}

.nm-artist-card:hover .nm-artist-card__overlay { opacity: 1; }

.nm-artist-card__name {
    font-size: 1rem;
    font-weight: 700;
    color: var(--nm-off-white);
    font-family: 'Syne', sans-serif;
    display: block;
    line-height: 1.2;
}

.nm-artist-card__genre {
    font-size: 0.75rem;
    color: var(--nm-gold-bright);
    font-weight: 600;
    display: block;
    margin-top: 0.2rem;
}

.nm-artist-card__country {
    font-size: 0.7rem;
    color: rgba(245,245,240,0.6);
    display: block;
}

.nm-artist-card__cta {
    font-size: 0.75rem;
    color: rgba(245,245,240,0.7);
    margin-top: 0.5rem;
    display: block;
}

/* Always-visible name strip at bottom for non-hover devices */
@media ( hover: none ) {
    .nm-artist-card__overlay,
    .nm-release-card__overlay {
        opacity: 1;
    }
}

/* ── News card ─────────────────────────────────────────────────────────────── */

.nm-news-card {
    display: flex;
    flex-direction: column;
    background: var(--nm-white);
    border: 1px solid var(--nm-border);
    border-radius: 8px;
    overflow: hidden;
    text-decoration: none;
    color: var(--nm-navy);
    transition: box-shadow 0.15s, transform 0.15s;
}

.nm-news-card:hover {
    box-shadow: 0 6px 24px rgba(26,43,94,0.12);
    transform: translateY( -2px );
}

.nm-news-card__image {
    height: 160px;
    overflow: hidden;
}

.nm-news-card__image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform 0.3s ease;
}

.nm-news-card:hover .nm-news-card__image img { transform: scale( 1.04 ); }

.nm-news-card__body {
    padding: 0.875rem;
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
}

.nm-news-card__meta {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    flex-wrap: wrap;
}

.nm-news-card__title {
    font-size: 0.9rem;
    font-weight: 700;
    margin: 0;
    line-height: 1.4;
    color: var(--nm-navy);
}

.nm-news-card__excerpt {
    font-size: 0.8rem;
    color: var(--nm-text-muted);
    line-height: 1.55;
    margin: 0;
    flex: 1;
}

.nm-news-card__read {
    font-size: 0.75rem;
    font-weight: 700;
    color: var(--nm-gold-dark);
    margin-top: auto;
    padding-top: 0.35rem;
}

/* ── Contact section ───────────────────────────────────────────────────────── */

.nm-contact-form-wrap {
    background: rgba(255,255,255,0.06);
    border: 1px solid rgba(255,255,255,0.12);
    border-radius: 10px;
    padding: 2rem;
}

/* CF7 inside contact section */
.nm-contact-form-wrap .wpcf7 input[type="text"],
.nm-contact-form-wrap .wpcf7 input[type="email"],
.nm-contact-form-wrap .wpcf7 textarea {
    background: rgba(255,255,255,0.08) !important;
    border: 1px solid rgba(255,255,255,0.2) !important;
    color: var(--nm-off-white) !important;
}

.nm-contact-form-wrap .wpcf7 input[type="text"]::placeholder,
.nm-contact-form-wrap .wpcf7 input[type="email"]::placeholder,
.nm-contact-form-wrap .wpcf7 textarea::placeholder {
    color: rgba(245,245,240,0.4) !important;
}

.nm-contact-form-wrap .wpcf7 label { color: var(--nm-navy-muted) !important; }

.nm-contact-form-wrap .wpcf7 input[type="submit"] {
    background: var(--nm-gold-dark) !important;
    color: var(--nm-white) !important;
}

.nm-contact-form-wrap .wpcf7 input[type="submit"]:hover {
    background: var(--nm-gold-bright) !important;
    color: var(--nm-navy) !important;
}

/* ── Homepage responsive ───────────────────────────────────────────────────── */

@media ( max-width: 768px ) {
    .nm-hero { background-attachment: scroll; min-height: 90vh; }
    .nm-hero__tagline { font-size: 1.75rem; }
    .nm-hero__ctas { flex-direction: column; align-items: center; }
    .nm-hero__next-event { font-size: 0.75rem; }
    .nm-section { padding: 2.5rem 1rem; }
    .nm-section--dark .nm-section__inner { padding: 0 1rem; }
}

/* ═══════════════════════════════════════════════════════════════════════════
   NEWS
   ═══════════════════════════════════════════════════════════════════════════ */

/* ── Shared news meta elements ─────────────────────────────────────────────── */

.news-type-badge {
    display: inline-block;
    font-size: 0.7rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.07em;
    padding: 0.2rem 0.65rem;
    border-radius: 20px;
    white-space: nowrap;
    text-decoration: none;
}

.news-type-badge--sm { font-size: 0.65rem; padding: 0.15rem 0.5rem; }

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

.news-read-time {
    font-size: 0.8rem;
    color: var(--nm-text-muted);
}

.news-read-time::before { content: '·'; margin-right: 0.35rem; }

.news-artist-label {
    font-size: 0.8rem;
    font-weight: 700;
    color: var(--nm-gold-dark);
}

.news-artist-label--link {
    text-decoration: none;
}

.news-artist-label--link:hover { color: var(--nm-navy); }

/* ── News archive page ─────────────────────────────────────────────────────── */

.narwhal-news {
    max-width: 960px;
    margin: 0 auto;
    padding: 2rem 1.5rem 4rem;
}

.narwhal-news__header { margin-bottom: 1.5rem; }
.narwhal-news__title  { font-size: 2rem; margin: 0; }

.narwhal-news__controls {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.75rem;
    margin-bottom: 2rem;
    padding-bottom: 1.5rem;
    border-bottom: 1px solid var(--nm-border);
}

.narwhal-news__type-filter {
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem;
    flex: 1;
}

.narwhal-news__artist-filter select { width: auto; }

.narwhal-news__empty { text-align: center; padding: 3rem 0; color: var(--nm-text-muted); }
.narwhal-news__pagination { margin-top: 2rem; display: flex; flex-wrap: wrap; gap: 0.35rem; }

/* ── Featured article cards ────────────────────────────────────────────────── */

.narwhal-news__featured {
    display: grid;
    grid-template-columns: repeat( auto-fill, minmax( 380px, 1fr ) );
    gap: 1.5rem;
    margin-bottom: 2.5rem;
    padding-bottom: 2rem;
    border-bottom: 1px solid var(--nm-border);
}

.narwhal-news-featured-card {
    display: flex;
    flex-direction: column;
    background: var(--nm-white);
    border: 1px solid var(--nm-border);
    border-radius: 10px;
    overflow: hidden;
    text-decoration: none;
    color: var(--nm-navy);
    transition: box-shadow 0.15s, transform 0.15s;
}

.narwhal-news-featured-card:hover {
    box-shadow: 0 6px 24px rgba(26,43,94,0.12);
    transform: translateY(-2px);
}

.narwhal-news-featured-card__image {
    position: relative;
    height: 220px;
    overflow: hidden;
    background: var(--nm-navy-tint);
}

.narwhal-news-featured-card__image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform 0.3s ease;
}

.narwhal-news-featured-card:hover .narwhal-news-featured-card__image img {
    transform: scale(1.03);
}

.narwhal-news-featured-card__image-placeholder {
    width: 100%;
    height: 100%;
    background: linear-gradient( 135deg, var(--nm-navy-tint), var(--nm-navy) );
}

.narwhal-news-featured-card__image .news-type-badge {
    position: absolute;
    top: 0.75rem;
    left: 0.75rem;
}

.narwhal-news-featured-card__body {
    padding: 1.25rem;
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.narwhal-news-featured-card__meta {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    flex-wrap: wrap;
}

.narwhal-news-featured-card__title {
    font-size: 1.1rem;
    font-weight: 700;
    margin: 0;
    line-height: 1.4;
    color: var(--nm-navy);
}

.narwhal-news-featured-card__excerpt {
    font-size: 0.875rem;
    color: var(--nm-text-muted);
    line-height: 1.6;
    margin: 0;
    flex: 1;
}

.narwhal-news-featured-card__read {
    font-size: 0.8rem;
    font-weight: 700;
    color: var(--nm-gold-dark);
    margin-top: auto;
}

/* ── News list rows ────────────────────────────────────────────────────────── */

.narwhal-news-list {
    display: flex;
    flex-direction: column;
    gap: 0;
}

.narwhal-news-row {
    display: grid;
    grid-template-columns: 90px 1fr 24px;
    gap: 0;
    align-items: center;
    text-decoration: none;
    color: var(--nm-navy);
    background: var(--nm-white);
    border: 1px solid var(--nm-border);
    border-bottom: none;
    transition: background 0.12s;
    overflow: hidden;
}

.narwhal-news-list .narwhal-news-row:first-child { border-radius: 8px 8px 0 0; }
.narwhal-news-list .narwhal-news-row:last-child   { border-bottom: 1px solid var(--nm-border); border-radius: 0 0 8px 8px; }
.narwhal-news-list .narwhal-news-row:only-child   { border-radius: 8px; border-bottom: 1px solid var(--nm-border); }

.narwhal-news-row:hover { background: var(--nm-navy-tint); }

.narwhal-news-row__thumb {
    width: 90px;
    height: 90px;
    flex-shrink: 0;
    overflow: hidden;
    align-self: stretch;
}

.narwhal-news-row__thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.narwhal-news-row__thumb-placeholder {
    width: 100%;
    height: 100%;
    background: var(--nm-navy-tint);
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--nm-navy-muted);
}

.narwhal-news-row__content {
    padding: 0.875rem 1rem;
    min-width: 0;
}

.narwhal-news-row__meta {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    flex-wrap: wrap;
    margin-bottom: 0.3rem;
}

.narwhal-news-row__title {
    font-size: 0.95rem;
    font-weight: 700;
    margin: 0 0 0.25rem;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.narwhal-news-row__excerpt {
    font-size: 0.8rem;
    color: var(--nm-text-muted);
    margin: 0;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.narwhal-news-row__arrow {
    padding-right: 1rem;
    color: var(--nm-border);
    font-size: 1rem;
    transition: color 0.12s, transform 0.12s;
}

.narwhal-news-row:hover .narwhal-news-row__arrow {
    color: var(--nm-gold-dark);
    transform: translateX(3px);
}

@media ( max-width: 600px ) {
    .narwhal-news-row { grid-template-columns: 70px 1fr 20px; }
    .narwhal-news-row__thumb { width: 70px; height: 70px; }
    .narwhal-news__featured { grid-template-columns: 1fr; }
}

/* ── Single news article ───────────────────────────────────────────────────── */

.narwhal-news-article {
    max-width: 1060px;
    margin: 0 auto;
    padding: 2rem 1.5rem 4rem;
}

.narwhal-news-article__top {
    display: grid;
    grid-template-columns: 280px 1fr;
    gap: 2rem;
    align-items: start;
    margin-bottom: 2rem;
    padding-bottom: 2rem;
    border-bottom: 1px solid var(--nm-border);
}

.narwhal-news-article__top-image {
    border-radius: 8px;
    overflow: hidden;
}

.narwhal-news-article__top-img {
    width: 100%;
    height: auto;
    display: block;
    object-fit: cover;
}

.narwhal-news-article__top-content {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
    padding-top: 0.25rem;
}

.narwhal-news-article__meta {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    flex-wrap: wrap;
}

.narwhal-news-article__title {
    font-size: 1.75rem;
    line-height: 1.25;
    margin: 0;
}

.narwhal-news-article__layout {
    display: grid;
    grid-template-columns: 1fr 240px;
    gap: 3rem;
    align-items: start;
}

.narwhal-news-article__body {
    min-width: 0;
    font-size: 1.05rem;
    line-height: 1.8;
}

.narwhal-news-article__sidebar {
    position: sticky;
    top: 80px;
    display: flex;
    flex-direction: column;
    gap: 1.25rem;
}

@media ( max-width: 768px ) {
    .narwhal-news-article__top { grid-template-columns: 1fr; }
    .narwhal-news-article__layout { grid-template-columns: 1fr; }
    .narwhal-news-article__sidebar { position: static; }
    .narwhal-news-article__title { font-size: 1.4rem; }
    .news-share__buttons { flex-direction: row; }
    .news-share-btn { flex: 1; justify-content: center; }
    .narwhal-news-related__grid { grid-template-columns: 1fr 1fr; }
}

@media ( max-width: 480px ) {
    .narwhal-news-related__grid { grid-template-columns: 1fr; }
}

/* Share / copy link */
.news-share {
    background: var(--nm-white);
    border: 1px solid var(--nm-border);
    border-radius: 8px;
    padding: 1rem;
}

.news-share__label {
    display: block;
    font-size: 0.7rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: var(--nm-text-muted);
    margin-bottom: 0.75rem;
}

.news-copy-link-btn {
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    font-size: 0.875rem;
}

/* Artist card in sidebar */
.news-artist-card {
    background: var(--nm-white);
    border: 1px solid var(--nm-border);
    border-top: 3px solid var(--nm-navy);
    border-radius: 8px;
    padding: 1rem;
}

.news-artist-card__label {
    display: block;
    font-size: 0.7rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: var(--nm-text-muted);
    margin-bottom: 0.75rem;
}

.news-artist-card__link {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    text-decoration: none;
    color: var(--nm-navy);
}

.news-artist-card__thumb {
    width: 52px;
    height: 52px;
    border-radius: 50%;
    overflow: hidden;
    flex-shrink: 0;
}

.news-artist-card__thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.news-artist-card__info {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 0.2rem;
}

.news-artist-card__name  { font-weight: 700; font-size: 0.9rem; display: block; }
.news-artist-card__genre { font-size: 0.75rem; color: var(--nm-text-muted); display: block; }
.news-artist-card__cta   { font-size: 0.75rem; color: var(--nm-gold-dark); font-weight: 600; display: block; }

.news-back-btn { width: 100%; text-align: center; }

/* Related articles */
.narwhal-news-related {
    margin-top: 3rem;
    padding-top: 2rem;
    border-top: 1px solid var(--nm-border);
}

.narwhal-news-related h2 { font-size: 1.25rem; margin-bottom: 1.25rem; }

.narwhal-news-related__grid {
    display: grid;
    grid-template-columns: repeat( auto-fill, minmax( 260px, 1fr ) );
    gap: 1.25rem;
}

.narwhal-news-related__card {
    background: var(--nm-white);
    border: 1px solid var(--nm-border);
    border-radius: 8px;
    overflow: hidden;
    text-decoration: none;
    color: var(--nm-navy);
    transition: box-shadow 0.15s;
}

.narwhal-news-related__card:hover { box-shadow: 0 4px 16px rgba(26,43,94,0.1); }

.narwhal-news-related__thumb { height: 140px; overflow: hidden; background: var(--nm-navy-tint); }
.narwhal-news-related__thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }

.narwhal-news-related__body {
    padding: 0.875rem;
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
}

.narwhal-news-related__title {
    font-size: 0.875rem;
    font-weight: 700;
    margin: 0;
    line-height: 1.4;
}

@media ( max-width: 768px ) {
    .narwhal-news-article__layout { grid-template-columns: 1fr; }
    .narwhal-news-article__sidebar { position: static; }
    .narwhal-news-article__title { font-size: 1.5rem; }
    .news-share__buttons { flex-direction: row; }
    .news-share-btn { flex: 1; justify-content: center; }
    .narwhal-news-related__grid { grid-template-columns: 1fr 1fr; }
}

@media ( max-width: 480px ) {
    .narwhal-news-related__grid { grid-template-columns: 1fr; }
}

/* ── Mailchimp signup popup ─────────────────────────────────────────────────── */

.nm-signup-overlay {
    position: fixed;
    inset: 0;
    background: rgba(22, 35, 72, 0.7);
    z-index: 9999;
    display: none;
    align-items: center;
    justify-content: center;
    padding: 1.5rem;
    opacity: 0;
    transition: opacity 0.3s ease;
    backdrop-filter: blur(2px);
    pointer-events: none;
}

.nm-signup-overlay.is-visible {
    display: flex;
    opacity: 1;
    pointer-events: auto;
}

.nm-popup-open { overflow: hidden; }

.nm-signup-popup {
    background: var(--nm-navy);
    color: var(--nm-off-white);
    border-radius: 12px;
    padding: 2.5rem 2rem 2rem;
    max-width: 480px;
    width: 100%;
    position: relative;
    transform: translateY(20px);
    transition: transform 0.3s ease;
    text-align: center;
}

.nm-signup-overlay.is-visible .nm-signup-popup { transform: translateY(0); }

.nm-signup-popup__close {
    position: absolute;
    top: 1rem;
    right: 1rem;
    background: rgba(255,255,255,0.1);
    border: none;
    border-radius: 50%;
    width: 32px;
    height: 32px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--nm-navy-muted);
    cursor: pointer;
    transition: background 0.15s, color 0.15s;
    flex-shrink: 0;
}

.nm-signup-popup__close:hover {
    background: rgba(255,255,255,0.2);
    color: var(--nm-off-white);
}

.nm-signup-popup__icon { margin-bottom: 1.25rem; }

.nm-signup-popup__title {
    font-size: 1.5rem;
    color: var(--nm-off-white);
    margin: 0 0 0.75rem;
}

.nm-signup-popup__text {
    font-size: 0.9rem;
    color: var(--nm-navy-muted);
    line-height: 1.6;
    margin: 0 0 1.5rem;
}

.nm-signup-popup__form { margin-bottom: 1rem; }

/* Style MC4WP form inside popup */
.nm-signup-popup__form input[type="email"],
.nm-signup-popup__form input[type="text"] {
    width: 100% !important;
    box-sizing: border-box !important;
    background: rgba(255,255,255,0.1) !important;
    border: 1px solid rgba(255,255,255,0.2) !important;
    border-radius: 4px !important;
    padding: 0.7rem 1rem !important;
    color: var(--nm-off-white) !important;
    font-size: 0.9rem !important;
    font-family: inherit !important;
    margin-bottom: 0.75rem !important;
}

.nm-signup-popup__form input[type="email"]::placeholder,
.nm-signup-popup__form input[type="text"]::placeholder {
    color: var(--nm-navy-muted) !important;
}

.nm-signup-popup__form input[type="submit"] {
    width: 100% !important;
    background: var(--nm-gold-dark) !important;
    color: var(--nm-white) !important;
    border: none !important;
    border-radius: 4px !important;
    padding: 0.75rem 1.5rem !important;
    font-size: 0.95rem !important;
    font-weight: 700 !important;
    font-family: inherit !important;
    cursor: pointer !important;
    transition: background 0.15s !important;
}

.nm-signup-popup__form input[type="submit"]:hover {
    background: var(--nm-navy-mid) !important;
}

.nm-signup-popup__dismiss {
    background: none;
    border: none;
    color: var(--nm-navy-muted);
    font-size: 0.8rem;
    cursor: pointer;
    text-decoration: underline;
    font-family: inherit;
    padding: 0;
    transition: color 0.15s;
}

.nm-signup-popup__dismiss:hover { color: var(--nm-navy-muted); opacity: 0.7; }

@media ( max-width: 480px ) {
    .nm-signup-popup { padding: 2rem 1.25rem 1.5rem; }
    .nm-signup-popup__title { font-size: 1.25rem; }
}

/* ── Mailing list signup page ───────────────────────────────────────────────── */

.narwhal-signup-page {
    max-width: 560px;
    margin: 0 auto;
    padding: 3rem 1.5rem 5rem;
    text-align: center;
}

.narwhal-signup-page__hero { margin-bottom: 2.5rem; }
.narwhal-signup-page__icon { margin-bottom: 1.25rem; }

.narwhal-signup-page__title {
    font-size: 2rem;
    color: var(--nm-navy);
    margin: 0 0 0.75rem;
}

.narwhal-signup-page__desc {
    font-size: 1rem;
    color: var(--nm-text-muted);
    line-height: 1.7;
    margin: 0;
}

.narwhal-signup-page__form-wrap { margin-bottom: 2.5rem; }

.narwhal-mailchimp-signup--page {
    background: var(--nm-white);
    border: 1px solid var(--nm-border);
    border-radius: 10px;
    padding: 2rem;
    text-align: left;
}

.narwhal-mailchimp-signup--page input[type="email"],
.narwhal-mailchimp-signup--page input[type="text"] {
    width: 100% !important;
    box-sizing: border-box !important;
    border: 1px solid var(--nm-border) !important;
    border-radius: 4px !important;
    padding: 0.7rem 1rem !important;
    color: var(--nm-navy) !important;
    font-size: 0.9rem !important;
    font-family: inherit !important;
    margin-bottom: 0.75rem !important;
    background: var(--nm-off-white) !important;
}

.narwhal-mailchimp-signup--page input[type="submit"] {
    width: 100% !important;
    background: var(--nm-navy) !important;
    color: var(--nm-off-white) !important;
    border: none !important;
    border-radius: 4px !important;
    padding: 0.75rem 1.5rem !important;
    font-size: 0.95rem !important;
    font-weight: 700 !important;
    font-family: inherit !important;
    cursor: pointer !important;
}

.narwhal-mailchimp-signup--page input[type="submit"]:hover {
    background: var(--nm-navy-mid) !important;
}

.narwhal-signup-page__reassurance {
    border-top: 1px solid var(--nm-border);
    padding-top: 1.5rem;
    text-align: left;
}

.narwhal-signup-page__reassurance ul {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 0.625rem;
}

.narwhal-signup-page__reassurance li {
    display: flex;
    align-items: center;
    gap: 0.625rem;
    font-size: 0.875rem;
    color: var(--nm-text-muted);
}

.narwhal-signup-page__reassurance svg { flex-shrink: 0; }

/* ── Single product: quantity + add to cart layout ─────────────────────────── */

.woocommerce div.product form.cart {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 0;
}

/* Variations (size, colour etc) sit above qty/button */
.woocommerce div.product form.cart .variations {
    width: 100%;
    margin-bottom: 1rem;
    border-collapse: collapse;
}

.woocommerce div.product form.cart .variations td,
.woocommerce div.product form.cart .variations th {
    padding: 0 0 0.625rem;
    vertical-align: middle;
}

.woocommerce div.product form.cart .variations th.label {
    font-size: 0.8rem;
    font-weight: 700;
    color: var(--nm-text-muted);
    text-transform: uppercase;
    letter-spacing: 0.06em;
    padding-right: 1rem;
    white-space: nowrap;
}

.woocommerce div.product form.cart .variations select {
    width: 100%;
    border: 1px solid var(--nm-border);
    border-radius: 4px;
    padding: 0.5rem 0.75rem;
    font-size: 0.9rem;
    color: var(--nm-navy);
    background: var(--nm-off-white);
    font-family: inherit;
}

/* Qty + button in a row */
.woocommerce div.product form.cart .cart-qty-and-btn {
    display: flex;
    align-items: stretch;
    gap: 0.75rem;
    width: 100%;
    margin-top: 1rem;
}

/* Quantity input */
.woocommerce div.product form.cart .quantity {
    display: flex;
    align-items: center;
}

.woocommerce div.product form.cart .quantity input.qty {
    height: 44px;
    width: 64px;
    border: 1px solid var(--nm-border) !important;
    border-radius: 4px !important;
    text-align: center;
    font-size: 1rem;
    font-weight: 600;
    color: var(--nm-navy);
    background: var(--nm-off-white);
    padding: 0;
    -moz-appearance: textfield;
}

.woocommerce div.product form.cart .quantity input.qty::-webkit-inner-spin-button,
.woocommerce div.product form.cart .quantity input.qty::-webkit-outer-spin-button {
    -webkit-appearance: none;
    margin: 0;
}

/* Add to cart button */
.woocommerce div.product form.cart button.single_add_to_cart_button {
    height: 44px !important;
    flex: 1 !important;
    background: var(--nm-navy) !important;
    color: var(--nm-off-white) !important;
    border: none !important;
    border-radius: 4px !important;
    font-size: 0.95rem !important;
    font-weight: 700 !important;
    font-family: inherit !important;
    cursor: pointer !important;
    padding: 0 1.5rem !important;
    transition: background 0.15s !important;
    text-transform: none !important;
    letter-spacing: 0 !important;
}

.woocommerce div.product form.cart button.single_add_to_cart_button:hover {
    background: var(--nm-navy-mid) !important;
}

.woocommerce div.product form.cart a.button {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    background: var(--nm-gold-dark);
    color: var(--nm-white) !important;
    border: 2px solid var(--nm-gold-dark);
    border-radius: 4px;
    padding: 0.75rem 1.5rem;
    font-size: 1rem;
    font-weight: 700;
    text-decoration: none;
    transition: background 0.15s, border-color 0.15s, color 0.15s;
}

.woocommerce div.product form.cart a.button::after {
    content: '↗';
    font-size: 0.9em;
    opacity: 0.85;
}

.woocommerce div.product form.cart a.button:hover {
    background: var(--nm-navy);
    border-color: var(--nm-navy);
    color: var(--nm-off-white) !important;
}

/* External product notice — below the button, bold, visible */
.external-product-notice {
    display: block;
    font-size: 0.8rem;
    font-weight: 600;
    color: var(--nm-text-muted);
    margin-top: 0.6rem;
    padding-left: 0.1rem;
}

/* Force the external product form to stack vertically */
.woocommerce div.product form.cart {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 0;
}

/* Shop grid — external product cards: gold button */
ul.products li.product .button[href]:not([href="#"]) {
    background: var(--nm-gold-dark) !important;
    color: var(--nm-white) !important;
    border-color: var(--nm-gold-dark) !important;
}

/* Mobile submenu chevron toggle button */
.nm-submenu-toggle {
    display: none;
}

@media ( max-width: 768px ) {
    .nm-submenu-toggle {
        display: flex;
        align-items: center;
        justify-content: center;
        background: rgba(255,255,255,0.1);
        border: none;
        border-radius: 4px;
        color: var(--nm-off-white);
        cursor: pointer;
        width: 36px;
        height: 36px;
        flex-shrink: 0;
        transition: background 0.15s, transform 0.2s;
        position: absolute;
        right: 1rem;
        top: 50%;
        transform: translateY(-50%);
    }

    .nm-submenu-toggle:hover {
        background: rgba(255,255,255,0.2);
    }

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

    /* Make parent menu items position relative so toggle can be absolute */
    .site-header__nav .menu-item-has-children {
        position: relative;
    }

@media ( max-width: 600px ) {
    ul.products li.product,
    .wc-block-grid__product {
        border-bottom: 1px solid var(--nm-border) !important;
        padding-bottom: 1.5rem !important;
        margin-bottom: 0.5rem !important;
    }

/* ── Utility ───────────────────────────────────────────────────────────────── */

.screen-reader-text {
    clip: rect(1px, 1px, 1px, 1px);
    position: absolute;
    height: 1px;
    width: 1px;
    overflow: hidden;
    white-space: nowrap;
}
