@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&family=Playfair+Display:wght@600;700&display=swap');

:root {
    --bns-bg: #fdf8f9;
    --bns-surface: #ffffff;
    --bns-ink: #2c1a22;
    --bns-muted: #8c6878;
    --bns-primary: #d4789a;
    --bns-primary-dark: #a83d65;
    --bns-primary-light: #f9dce8;
    --bns-accent: #c9a84c;
    --bns-accent-light: #f8f0d8;
    --bns-shadow: 0 4px 12px rgba(168, 61, 101, 0.14);
}

* {
    box-sizing: border-box;
}

html, body {
    margin: 0;
    padding: 0;
}

body {
    font-family: 'Inter', 'Segoe UI', Tahoma, sans-serif;
    color: var(--bns-ink);
    background: var(--bns-bg);
    line-height: 1.6;
}

body.home .site-main {
    background-color: #fff7fb;
    background-image:
        radial-gradient(circle at 1px 1px, rgba(168, 61, 101, 0.16) 1px, transparent 0),
        linear-gradient(135deg, rgba(255, 255, 255, 0.62) 0%, rgba(255, 236, 246, 0.72) 100%);
    background-size: 20px 20px, cover;
}

h1, h2, h3, h4, h5, h6,
.display-4, .display-5 {
    font-family: 'Playfair Display', Georgia, serif;
    font-weight: 700;
    letter-spacing: -0.02em;
}

a {
    color: var(--bns-primary);
    text-decoration: none;
}

a:hover, a:focus {
    color: var(--bns-primary-dark);
}

/* ── Bootstrap Overrides ────────────────────────────────────────────────────── */

.btn-primary {
    --bs-btn-color: #ffffff;
    --bs-btn-bg: var(--bns-primary);
    --bs-btn-border-color: var(--bns-primary);
    --bs-btn-hover-color: #ffffff;
    --bs-btn-hover-bg: var(--bns-primary-dark);
    --bs-btn-hover-border-color: var(--bns-primary-dark);
    --bs-btn-focus-shadow-rgb: 168, 61, 101;
    --bs-btn-active-color: #ffffff;
    --bs-btn-active-bg: var(--bns-primary-dark);
    --bs-btn-active-border-color: var(--bns-primary-dark);
    --bs-btn-disabled-color: #ffffff;
    --bs-btn-disabled-bg: var(--bns-primary);
    --bs-btn-disabled-border-color: var(--bns-primary);
    background-color: var(--bns-primary);
    border-color: var(--bns-primary);
    font-weight: 600;
    transition: all 0.2s ease;
}

.btn-primary:hover, .btn-primary:focus {
    background-color: var(--bns-primary-dark);
    border-color: var(--bns-primary-dark);
    box-shadow: 0 8px 16px rgba(168, 61, 101, 0.30);
}

.btn-outline-primary {
    --bs-btn-color: var(--bns-primary);
    --bs-btn-border-color: var(--bns-primary);
    --bs-btn-hover-color: #ffffff;
    --bs-btn-hover-bg: var(--bns-primary-dark);
    --bs-btn-hover-border-color: var(--bns-primary-dark);
    --bs-btn-focus-shadow-rgb: 168, 61, 101;
    --bs-btn-active-color: #ffffff;
    --bs-btn-active-bg: var(--bns-primary-dark);
    --bs-btn-active-border-color: var(--bns-primary-dark);
    --bs-btn-disabled-color: var(--bns-primary);
    --bs-btn-disabled-bg: transparent;
    --bs-btn-disabled-border-color: var(--bns-primary);
    color: var(--bns-primary);
    border-color: var(--bns-primary);
    font-weight: 600;
    transition: all 0.2s ease;
}

.btn-outline-primary:hover, .btn-outline-primary:focus {
    background-color: var(--bns-primary-dark);
    color: #ffffff;
    border-color: var(--bns-primary-dark);
}

.btn-outline-primary:active,
.btn-outline-primary.active,
.btn-check:checked + .btn-outline-primary,
.btn-check:active + .btn-outline-primary,
.show > .btn-outline-primary.dropdown-toggle {
    background-color: var(--bns-primary-dark);
    color: #ffffff;
    border-color: var(--bns-primary-dark);
}

.btn-light {
    background-color: #ffffff;
    border-color: #ffffff;
}

.btn-light:hover, .btn-light:focus {
    background-color: #f0f0f0;
    border-color: #f0f0f0;
}

/* ── Site Header ────────────────────────────────────────────────────────────── */

.site-header {
    position: sticky;
    top: 0;
    z-index: 999;
    min-height: 120px;
    max-height: 120px;
    background: var(--bns-surface);
    border-bottom: 1px solid #f0d8e4;
    box-shadow: 0 2px 6px rgba(168, 61, 101, 0.07);
}

.site-branding {
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.site-title {
    margin: 0;
    font-size: clamp(1.4rem, 2.5vw, 1.8rem);
    font-weight: 700;
    color: var(--bns-ink);
}

.site-tagline {
    margin: 0;
    color: var(--bns-muted);
    font-size: 0.875rem;
    font-weight: 500;
}

.navbar {
    padding: 8px 0 !important;
    min-height: 120px;
    max-height: 120px;
}

.navbar > .container {
    min-height: 120px;
    max-height: 120px;
    align-items: center;
}

.navbar-brand {
    padding: 0 !important;
    display: flex;
    align-items: center;
}

.custom-logo-link {
    display: inline-flex;
    align-items: center;
    max-height: 100px;
}

.custom-logo {
    display: block;
    max-height: 100px;
    width: auto;
    height: auto;
    object-fit: contain;
}

.nav-link {
    color: var(--bns-ink) !important;
    font-size: 1.04rem;
    font-weight: 600;
    line-height: 1.35;
    padding: 3px 0 !important;
    margin: 0 10px !important;
    border-bottom: 2px solid transparent;
    transition: all 0.2s ease;
}

.nav-link:hover, .nav-link:focus {
    color: var(--bns-primary) !important;
    border-bottom-color: var(--bns-primary);
}

.navbar .navbar-nav .dropdown-menu {
    margin-top: 0.55rem;
    border: 1px solid #f0d8e4;
    border-radius: 12px;
    box-shadow: 0 14px 28px rgba(168, 61, 101, 0.14);
    padding: 0.45rem;
    min-width: 220px;
    background: #fff;
}

.navbar .navbar-nav .dropdown-item {
    border-radius: 8px;
    color: var(--bns-ink);
    font-weight: 600;
    padding: 0.48rem 0.72rem;
    transition: background-color 0.2s ease, color 0.2s ease;
}

.navbar .navbar-nav .dropdown-item:hover,
.navbar .navbar-nav .dropdown-item:focus,
.navbar .navbar-nav .dropdown-item.active {
    background: rgba(212, 120, 154, 0.14);
    color: var(--bns-primary-dark);
}

.navbar .navbar-nav .dropdown-toggle::after {
    margin-left: 0.42rem;
    vertical-align: 0.15em;
    border-top-width: 0.33em;
}

@media (min-width: 992px) {
    .navbar .navbar-nav .dropdown-menu {
        display: block;
        opacity: 0;
        visibility: hidden;
        transform: translateY(6px);
        transition: opacity 0.18s ease, transform 0.18s ease, visibility 0.18s ease;
    }

    .navbar .navbar-nav .dropdown:hover > .dropdown-menu,
    .navbar .navbar-nav .dropdown:focus-within > .dropdown-menu,
    .navbar .navbar-nav .dropdown-menu.show {
        opacity: 1;
        visibility: visible;
        transform: translateY(0);
    }
}

/* ── Hero Section ────────────────────────────────────────────────────────────── */

.bns-hero {
    position: relative;
    overflow: hidden;
    background: linear-gradient(135deg, #ffffff 0%, #fff7fb 48%, var(--bns-bg) 100%);
    padding-top: 56px !important;
    padding-bottom: 42px !important;
}

.bns-hero::before,
.bns-hero::after {
    content: '';
    position: absolute;
    pointer-events: none;
    border-radius: 50%;
    z-index: 0;
}

.bns-hero::before {
    width: 420px;
    height: 420px;
    right: -140px;
    top: -170px;
    background: radial-gradient(circle, rgba(212, 120, 154, 0.18) 0%, rgba(212, 120, 154, 0) 70%);
}

.bns-hero::after {
    width: 340px;
    height: 340px;
    left: -130px;
    bottom: -180px;
    background: radial-gradient(circle, rgba(201, 168, 76, 0.14) 0%, rgba(201, 168, 76, 0) 72%);
}

.bns-hero > .container,
.bns-hero > .container-fluid {
    position: relative;
    z-index: 1;
}

.bns-hero-title {
    line-height: 1.15;
    margin-bottom: 0.7rem;
}

.bns-hero-subtitle {
    color: var(--bns-muted);
    line-height: 1.62;
    max-width: 62ch;
}

.bns-cover-image {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

/* ── Sections ────────────────────────────────────────────────────────────────── */

.bns-section {
    padding: 60px 0 !important;
}

.bns-section-light {
    background: var(--bns-bg);
}

.bns-service-card {
    transition: all 0.3s ease;
}

.bns-service-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 12px 24px rgba(168, 61, 101, 0.22) !important;
}

/* ── Gallery ────────────────────────────────────────────────────────────────── */

.bns-gallery-item {
    overflow: hidden;
    border-radius: 12px;
    transition: transform 0.3s ease;
}

.bns-gallery-item:hover {
    transform: scale(1.05);
}

/* ── Certificates ───────────────────────────────────────────────────────────── */

.bns-certificate-card {
    background: #ffffff;
    border: 1px solid #f0d8e4;
    border-radius: 14px;
    overflow: hidden;
    box-shadow: 0 8px 18px rgba(168, 61, 101, 0.08);
    transition: transform 0.25s ease, box-shadow 0.25s ease;
}

.bns-certificate-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 14px 28px rgba(168, 61, 101, 0.14);
}

.bns-certificate-media {
    display: block;
    background: linear-gradient(135deg, var(--bns-primary-light), var(--bns-accent-light));
}

.bns-certificate-image {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.bns-certificate-copy {
    padding: 14px 14px 16px;
    border-top: 1px solid #f8e8ef;
}

/* ── Footer ────────────────────────────────────────────────────────────────── */

.site-footer {
    background: #1e0d14;
    border-top: 4px solid var(--bns-primary-dark);
    margin-top: 40px;
    color: #d4b8c4;
}

.footer-brand-name {
    font-family: 'Playfair Display', Georgia, serif;
    font-size: 1.5rem;
    font-weight: 700;
    color: #ffffff;
    margin-bottom: 10px;
}

.footer-tagline {
    color: #b8899a;
    font-size: 0.95rem;
    line-height: 1.6;
    max-width: 280px;
}

.footer-socials a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 38px;
    height: 38px;
    border-radius: 50%;
    background: rgba(212, 120, 154, 0.12);
    color: var(--bns-primary-dark);
    font-size: 1.1rem;
    transition: all 0.2s ease;
    border: 1px solid rgba(212, 120, 154, 0.25);
}

.footer-socials a:hover {
    background: var(--bns-primary-dark);
    color: #ffffff;
    border-color: var(--bns-primary-dark);
    transform: translateY(-2px);
}

.footer-heading {
    font-family: 'Playfair Display', Georgia, serif;
    font-size: 1.05rem;
    font-weight: 700;
    color: #ffffff;
    padding-bottom: 10px;
    border-bottom: 2px solid var(--bns-primary-dark);
    display: inline-block;
}

.footer-links li,
.footer-contact li {
    margin-bottom: 10px;
}

.footer-links-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    column-gap: 20px;
}

.footer-links a {
    color: #b8899a;
    font-size: 0.95rem;
    transition: color 0.2s ease;
    display: inline-flex;
    align-items: center;
    gap: 6px;
}

.footer-links a::before {
    content: '\2192';
    color: var(--bns-primary-dark);
    font-size: 0.85rem;
}

.footer-links a:hover {
    color: var(--bns-primary-dark);
}

.footer-contact li {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    color: #b8899a;
    font-size: 0.9rem;
    line-height: 1.5;
}

.footer-contact li i {
    color: var(--bns-primary-dark);
    font-size: 1rem;
    margin-top: 2px;
    flex-shrink: 0;
}

.footer-contact a {
    color: #b8899a;
    transition: color 0.2s ease;
}

.footer-contact a:hover {
    color: var(--bns-primary-dark);
}

.footer-bottom {
    border-top: 1px solid rgba(255, 255, 255, 0.08);
    padding: 16px 0;
    color: #8a5a72;
    font-size: 0.85rem;
}

/* ── Page Hero Banner ─────────────────────────────────────────────────────────── */

.bns-page-hero {
    position: relative;
    overflow: hidden;
    padding-top: 36px !important;
    padding-bottom: 34px !important;
}

.bns-page-hero::before {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, rgba(255, 255, 255, 0.08) 0%, rgba(255, 255, 255, 0) 55%);
    pointer-events: none;
}

.bns-page-hero > .container {
    position: relative;
    z-index: 1;
}

.bns-page-hero-eyebrow {
    font-size: 0.78rem;
    font-weight: 600;
    letter-spacing: 0.11em;
    text-transform: uppercase;
    color: rgba(255, 255, 255, 0.75);
}

.bns-page-hero .display-4 {
    font-size: clamp(2rem, 3.6vw, 3rem) !important;
    line-height: 1.1;
    margin-bottom: 0.55rem !important;
}

.bns-page-hero .fs-5 {
    font-size: clamp(1rem, 1.9vw, 1.45rem) !important;
    line-height: 1.45;
    margin-bottom: 0.45rem;
}

.bns-page-hero .breadcrumb {
    margin-top: 0.45rem !important;
}

.bns-page-hero .breadcrumb-item + .breadcrumb-item::before {
    color: rgba(255, 255, 255, 0.5);
}

@media (max-width: 992px) {
    .bns-page-hero {
        padding-top: 30px !important;
        padding-bottom: 28px !important;
    }
}

@media (max-width: 576px) {
    .bns-page-hero {
        padding-top: 22px !important;
        padding-bottom: 20px !important;
    }

    .bns-page-hero .display-4 {
        font-size: 1.85rem !important;
    }

    .bns-page-hero .fs-5 {
        font-size: 1rem !important;
    }
}

/* ── Badge Label ──────────────────────────────────────────────────────────────── */

.bns-badge-label {
    font-size: 0.78rem;
    font-weight: 700;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--bns-primary-dark);
    background: var(--bns-primary-light);
    padding: 4px 12px;
    border-radius: 20px;
}

.bns-badge-pill {
    font-size: 0.72rem;
    font-weight: 600;
    letter-spacing: 0.06em;
    background: var(--bns-accent);
    color: #fff;
    padding: 4px 10px;
    border-radius: 20px;
}

/* ── Contact Form ─────────────────────────────────────────────────────────────── */

.bns-input {
    border-color: #f0d8e4;
    border-radius: 8px;
    padding: 0.6rem 0.9rem;
    font-size: 0.95rem;
    color: var(--bns-ink);
    background: #fff;
    transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

.bns-input:focus {
    border-color: var(--bns-primary);
    box-shadow: 0 0 0 3px rgba(212, 120, 154, 0.18);
    outline: none;
}

.bns-input::placeholder {
    color: #c4a0b4;
}

/* ── Social Pill ──────────────────────────────────────────────────────────────── */

.bns-social-pill {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    padding: 6px 14px;
    border-radius: 20px;
    font-size: 0.88rem;
    font-weight: 600;
    background: rgba(212, 120, 154, 0.10);
    color: var(--bns-primary-dark);
    border: 1px solid rgba(212, 120, 154, 0.25);
    transition: all 0.2s ease;
}

.bns-social-pill:hover {
    background: var(--bns-primary-dark);
    color: #fff;
    border-color: var(--bns-primary-dark);
    text-decoration: none;
}

/* ── Contact Info Card hover ──────────────────────────────────────────────────── */

.bns-contact-info-card {
    transition: transform 0.25s ease, box-shadow 0.25s ease;
}

.bns-contact-info-card:hover {
    transform: translateY(-3px);
    box-shadow: var(--bns-shadow);
}

.bns-outlet-photo {
    aspect-ratio: 1 / 1;
    height: auto;
    min-height: 170px;
    background: linear-gradient(135deg, var(--bns-primary-light), var(--bns-accent-light));
    border: 1px solid #f0d8e4;
}

.bns-outlet-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 4px 10px;
    border-radius: 999px;
    background: var(--bns-primary-light);
    color: var(--bns-primary-dark);
    border: 1px solid rgba(168, 61, 101, 0.28);
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    white-space: nowrap;
}

/* ── Gallery Page ────────────────────────────────────────────────────────────── */

.bns-filter-pill {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 8px 16px;
    border-radius: 999px;
    background: #ffffff;
    border: 1px solid #f0d8e4;
    color: var(--bns-muted);
    font-size: 0.9rem;
    font-weight: 600;
}

.bns-filter-pill.is-active {
    background: var(--bns-primary-dark);
    border-color: var(--bns-primary-dark);
    color: #ffffff;
}

.bns-gallery-card {
    background: #ffffff;
    border: 1px solid #f0d8e4;
    border-radius: 18px;
    overflow: hidden;
    box-shadow: 0 8px 22px rgba(168, 61, 101, 0.08);
    transition: transform 0.25s ease, box-shadow 0.25s ease;
}

.bns-gallery-card:hover {
    transform: translateY(-5px);
    box-shadow: 0 16px 32px rgba(168, 61, 101, 0.16);
}

.bns-gallery-media {
    position: relative;
    overflow: hidden;
}

.bns-gallery-media::after {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, rgba(44, 26, 34, 0) 30%, rgba(44, 26, 34, 0.18) 100%);
}

.bns-gallery-image {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.35s ease;
}

.bns-gallery-card:hover .bns-gallery-image {
    transform: scale(1.04);
}

.bns-gallery-copy {
    padding: 1.1rem 1.1rem 1.2rem;
}

.bns-gallery-tag {
    display: inline-block;
    margin-bottom: 0.55rem;
    padding: 4px 10px;
    border-radius: 999px;
    background: var(--bns-primary-light);
    color: var(--bns-primary-dark);
    font-size: 0.75rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.bns-gallery-meta {
    color: var(--bns-muted);
    font-size: 0.9rem;
}

.bns-gallery-stat {
    background: #ffffff;
    border: 1px solid #f0d8e4;
    border-radius: 16px;
    padding: 1.5rem 1rem;
    text-align: center;
    height: 100%;
    transition: transform 0.25s ease, box-shadow 0.25s ease, border-color 0.25s ease;
}

.bns-gallery-stat:hover {
    transform: translateY(-4px);
    border-color: #e9bfd0;
    box-shadow: 0 14px 28px rgba(168, 61, 101, 0.16);
}

.bns-gallery-stat strong {
    display: block;
    margin-bottom: 0.35rem;
    color: var(--bns-primary-dark);
    font-size: 2rem;
}

.bns-gallery-stat span {
    display: block;
    color: var(--bns-muted);
    font-size: 0.9rem;
}

/* ── GLightbox Customization ────────────────────────────────────────────────── */

.glightbox-container {
    background: rgba(0, 0, 0, 0.95);
    z-index: 9999;
}

.gslide {
    background: rgba(0, 0, 0, 0.95);
}

.gslide-image img,
.gslide-video {
    max-width: 90vw;
    max-height: 90vh;
    object-fit: contain;
}

.glightbox-desc {
    background: rgba(0, 0, 0, 0.8);
    color: #ffffff;
    padding: 1rem;
    font-size: 0.9rem;
}

/* Navigation buttons */
.glightbox-prev,
.glightbox-next {
    background: rgba(168, 61, 101, 0.8);
    color: #ffffff;
    border: none;
    width: 50px;
    height: 50px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: all 0.3s ease;
    font-size: 1.5rem;
}

.glightbox-prev:hover,
.glightbox-next:hover {
    background: rgba(168, 61, 101, 1);
    transform: scale(1.1);
}

/* Close button */
.gclose {
    background: rgba(168, 61, 101, 0.8);
    color: #ffffff;
    border: none;
    width: 40px;
    height: 40px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: all 0.3s ease;
    font-size: 1.5rem;
}

.gclose:hover {
    background: rgba(168, 61, 101, 1);
    transform: scale(1.1);
}

/* Gallery page specific styles */
.bns-masonry-grid {
    column-count: 3;
    column-gap: 1.5rem;
}

.bns-masonry-item {
    break-inside: avoid;
    margin-bottom: 1.5rem;
    transition: all 0.3s ease;
}

.bns-masonry-card {
    transition: transform 0.3s ease;
}

.gallery-image-link {
    position: relative;
    display: block;
    text-decoration: none;
    overflow: hidden;
}

.gallery-image-link img {
    display: block;
    width: 100%;
    height: auto;
    transition: transform 0.3s ease;
}

.gallery-overlay {
    background: linear-gradient(to top, rgba(0, 0, 0, 0.72), rgba(0, 0, 0, 0.08));
    opacity: 0;
    transition: opacity 0.3s ease;
}

.gallery-image-link:hover img {
    transform: scale(1.08);
}

@media (max-width: 991px) {
    .bns-masonry-grid {
        column-count: 2;
    }
}

@media (max-width: 575px) {
    .bns-masonry-grid {
        column-count: 1;
    }
}

@media (max-width: 768px) {
    .glightbox-prev,
    .glightbox-next {
        width: 40px;
        height: 40px;
        font-size: 1.2rem;
    }
    
    .gclose {
        width: 35px;
        height: 35px;
        font-size: 1.2rem;
    }
}

/* ── WooCommerce My Account ───────────────────────────────────────────────── */

.woocommerce-account .entry-content,
.woocommerce-account .woocommerce {
    width: 100%;
}

.bns-account-auth {
    margin: 1.5rem 0 2rem;
}

.bns-account-shell {
    display: grid;
    grid-template-columns: 280px minmax(0, 1fr);
    gap: 1.5rem;
    margin: 1.5rem 0 2rem;
}

.bns-account-sidebar,
.bns-account-main,
.bns-account-panel,
.bns-profile-panel {
    background: #ffffff;
    border: 1px solid #f0d8e4;
    border-radius: 18px;
    box-shadow: 0 8px 22px rgba(168, 61, 101, 0.08);
}

.bns-account-sidebar {
    padding: 1rem;
}

.bns-account-main {
    padding: 1.4rem;
}

.bns-account-nav-title {
    margin: 0 0 0.8rem;
    color: var(--bns-primary-dark);
    font-size: 1.15rem;
}

.bns-account-nav ul {
    margin: 0;
    padding: 0;
    list-style: none;
}

.bns-account-nav li + li {
    margin-top: 0.45rem;
}

.bns-account-nav a {
    display: block;
    padding: 0.65rem 0.85rem;
    border-radius: 12px;
    color: var(--bns-ink);
    font-weight: 600;
    border: 1px solid transparent;
    transition: 0.2s ease;
}

.bns-account-nav a:hover,
.bns-account-nav .is-active a,
.bns-account-nav .is-active--dashboard a {
    background: var(--bns-primary-light);
    color: var(--bns-primary-dark);
    border-color: #efcade;
}

.bns-account-panel {
    padding: 1.4rem;
}

.bns-account-panel h2 {
    margin: 0 0 0.5rem;
    color: var(--bns-primary-dark);
}

.bns-account-quicklinks {
    display: flex;
    flex-wrap: wrap;
    gap: 0.7rem;
    margin-top: 1rem;
}

.woocommerce-account .woocommerce-form,
.woocommerce-account form.login,
.woocommerce-account form.register,
.woocommerce-account form.lost_reset_password,
.woocommerce-account .woocommerce-ResetPassword {
    background: #ffffff;
    border: 1px solid #f0d8e4;
    border-radius: 18px;
    padding: 1.3rem;
    box-shadow: 0 8px 22px rgba(168, 61, 101, 0.08);
}

.woocommerce-account .woocommerce-form .button,
.woocommerce-account .woocommerce-Button,
.woocommerce-account .button,
.woocommerce-account button.button,
.woocommerce-account input.button {
    border-radius: 999px;
    border: 0;
    background: linear-gradient(135deg, var(--bns-primary-dark), var(--bns-primary));
    color: #fff;
    padding: 0.7rem 1.25rem;
    font-weight: 700;
}

.woocommerce-account .woocommerce-form input,
.woocommerce-account .woocommerce-form textarea,
.woocommerce-account .woocommerce-form select,
.woocommerce-account .form-row input,
.woocommerce-account .form-row textarea,
.woocommerce-account .form-row select {
    border: 1px solid #e9c9d8;
    border-radius: 12px;
    min-height: 44px;
    padding: 0.6rem 0.8rem;
}

.woocommerce-account .woocommerce-form input:focus,
.woocommerce-account .woocommerce-form textarea:focus,
.woocommerce-account .form-row input:focus,
.woocommerce-account .form-row textarea:focus,
.woocommerce-account .form-row select:focus {
    border-color: var(--bns-primary);
    box-shadow: 0 0 0 3px rgba(212, 120, 154, 0.15);
    outline: none;
}

.woocommerce-account .woocommerce-form-login .form-row.form-row-wide {
    display: block;
}

.woocommerce-account .woocommerce-form-login .form-row:not(.form-row-wide) {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    gap: 0.85rem;
    width: 100%;
}

.woocommerce-account .woocommerce-form-login .woocommerce-form-login__rememberme {
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
    margin: 0;
    line-height: 1;
    order: 2;
    margin-left: 0;
    float: none;
}

.woocommerce-account .woocommerce-form-login .woocommerce-form-login__rememberme input[type='checkbox'] {
    width: 16px;
    height: 16px;
    min-height: 16px;
    margin: 0;
    padding: 0;
    border-radius: 4px;
}

.woocommerce-account .woocommerce-form-login .woocommerce-form-login__submit {
    margin: 0;
    order: 1;
    float: none;
    align-self: center;
}

.woocommerce-account .woocommerce-MyAccount-content table,
.woocommerce-account .woocommerce-table {
    border: 1px solid #f0d8e4;
    border-radius: 12px;
    overflow: hidden;
}

.woocommerce-account .woocommerce-MyAccount-content th,
.woocommerce-account .woocommerce-MyAccount-content td {
    border-color: #f4e2ea;
}

.bns-profile-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 1.2rem;
}

.bns-profile-panel {
    padding: 1.2rem;
}

.bns-profile-panel h3 {
    margin: 0 0 0.75rem;
    color: var(--bns-primary-dark);
}

.bns-address-note {
    margin-bottom: 0.9rem;
    color: var(--bns-muted);
}

.bns-address-list {
    display: grid;
    grid-template-columns: 1fr;
    gap: 0.9rem;
}

.bns-address-card {
    border: 1px solid #f0d8e4;
    border-radius: 12px;
    padding: 0.85rem;
    background: #fff;
}

.bns-address-card.is-default {
    border-color: var(--bns-primary);
    box-shadow: 0 0 0 3px rgba(212, 120, 154, 0.12);
}

.bns-address-card-head {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 0.5rem;
}

.bns-address-card-head span {
    display: inline-block;
    padding: 0.15rem 0.5rem;
    border-radius: 999px;
    font-size: 0.75rem;
    color: var(--bns-primary-dark);
    background: var(--bns-primary-light);
}

.bns-address-card p {
    margin: 0.2rem 0;
}

.bns-address-actions {
    margin-top: 0.7rem;
    display: flex;
    gap: 0.5rem;
    flex-wrap: wrap;
}

.bns-danger-btn {
    background: #e65d7a !important;
}

.bns-address-form {
    margin-top: 0.5rem;
}

.bns-address-form-row {
    margin-bottom: 1rem;
}

.bns-address-form-row .form-row {
    margin-bottom: 0;
}

.bns-address-form-row-2col {
    display: grid;
    grid-template-columns: 1fr;
    gap: 1rem;
}

.bns-address-form-row-full {
    width: 100%;
}

.bns-address-form label {
    display: block;
    margin-bottom: 0.4rem;
}

.bns-address-form input,
.bns-address-form select,
.bns-address-form textarea {
    display: block;
    width: 100%;
}

@media (max-width: 767px) {
    .bns-address-form-row-2col {
        grid-template-columns: 1fr;
    }
}

.bns-divider {
    margin: 1rem 0;
    border-color: #f0d8e4;
}

/* Checkout styling aligned with account/profile forms */
.woocommerce-checkout .woocommerce-billing-fields,
.woocommerce-checkout .woocommerce-shipping-fields,
.woocommerce-checkout #order_review {
    background: #ffffff;
    border: 1px solid #f0d8e4;
    border-radius: 18px;
    padding: 1.2rem;
    box-shadow: 0 8px 22px rgba(168, 61, 101, 0.08);
}

.woocommerce-checkout .woocommerce-billing-fields h3,
.woocommerce-checkout .woocommerce-shipping-fields h3,
.woocommerce-checkout #order_review_heading {
    color: var(--bns-primary-dark);
    margin: 0 0 0.85rem;
    font-size: 1.4rem;
}

.woocommerce-checkout .form-row label {
    display: block;
    margin-bottom: 0.4rem;
    font-weight: 500;
}

.woocommerce-checkout .form-row .required {
    color: #b42347;
    font-weight: 700;
}

.woocommerce-checkout .form-row .optional {
    color: var(--bns-muted);
    font-weight: 400;
}

.woocommerce-checkout .form-row-first,
.woocommerce-checkout .form-row-last {
    float: none;
    width: 100%;
}

.woocommerce-checkout .form-row input,
.woocommerce-checkout .form-row textarea,
.woocommerce-checkout .form-row select,
.woocommerce-checkout .select2-container .select2-selection--single {
    border: 1px solid #e9c9d8;
    border-radius: 12px;
    min-height: 44px;
    padding: 0.6rem 0.8rem;
    background: #fff;
}

.woocommerce-checkout .select2-container .select2-selection--single {
    display: flex;
    align-items: center;
}

.woocommerce-checkout .form-row input:focus,
.woocommerce-checkout .form-row textarea:focus,
.woocommerce-checkout .form-row select:focus,
.woocommerce-checkout .select2-container--focus .select2-selection--single {
    border-color: var(--bns-primary);
    box-shadow: 0 0 0 3px rgba(212, 120, 154, 0.15);
    outline: none;
}

.woocommerce-checkout button.button,
.woocommerce-checkout .button.alt,
.woocommerce-checkout #place_order {
    border-radius: 999px;
    border: 0;
    background: linear-gradient(135deg, var(--bns-primary-dark), var(--bns-primary));
    color: #fff;
    padding: 0.75rem 1.35rem;
    font-weight: 700;
}

/* Classic checkout: place order summary next to billing details on desktop */
@media (min-width: 992px) {
    .woocommerce-checkout form.checkout.woocommerce-checkout {
        display: grid !important;
        grid-template-columns: minmax(0, 1.15fr) minmax(320px, 0.85fr);
        gap: 1.25rem 1.5rem;
        align-items: start;
    }

    .woocommerce-checkout form.checkout.woocommerce-checkout #customer_details {
        grid-column: 1 !important;
        grid-row: 1;
        margin: 0;
    }

    .woocommerce-checkout form.checkout.woocommerce-checkout #order_review_heading,
    .woocommerce-checkout form.checkout.woocommerce-checkout #order_review {
        grid-column: 2 !important;
        grid-row: 1;
        margin: 0;
    }

    .woocommerce-checkout form.checkout.woocommerce-checkout #order_review {
        width: auto !important;
        float: none !important;
        clear: none !important;
        display: block;
        position: sticky;
        top: 1rem;
    }

    .woocommerce-checkout form.checkout.woocommerce-checkout #customer_details .col-1,
    .woocommerce-checkout form.checkout.woocommerce-checkout #customer_details .col-2 {
        float: none;
        width: 100%;
    }

    /* Fallback for installations where Woo/template CSS overrides grid behavior. */
    body.woocommerce-checkout form.checkout.woocommerce-checkout {
        display: block !important;
    }

    body.woocommerce-checkout form.checkout.woocommerce-checkout::after {
        content: "";
        display: table;
        clear: both;
    }

    body.woocommerce-checkout form.checkout.woocommerce-checkout #customer_details {
        float: left !important;
        width: 62% !important;
        margin: 0 !important;
    }

    body.woocommerce-checkout form.checkout.woocommerce-checkout #order_review_heading,
    body.woocommerce-checkout form.checkout.woocommerce-checkout #order_review {
        float: right !important;
        width: 36% !important;
        clear: right !important;
        margin: 0 !important;
    }

    body.woocommerce-checkout form.checkout.woocommerce-checkout #order_review_heading {
        margin-bottom: 0.75rem !important;
    }
}

/* Checkout Block styling (for wc-block checkout page) */
.wp-block-woocommerce-checkout {
    gap: 1rem;
}

.wp-block-woocommerce-checkout.wc-block-checkout {
    column-gap: 2rem;
}

.wp-block-woocommerce-checkout .wc-block-components-sidebar,
.wp-block-woocommerce-checkout .wc-block-checkout__main {
    background: #fff;
    border: 1px solid #f0d8e4;
    border-radius: 18px;
    box-shadow: 0 8px 22px rgba(168, 61, 101, 0.08);
    padding: 1rem;
}

.wp-block-woocommerce-checkout .wc-block-components-title,
.wp-block-woocommerce-checkout .wc-block-components-checkout-step__heading {
    color: var(--bns-primary-dark);
}

.wp-block-woocommerce-checkout .wc-block-components-text-input input,
.wp-block-woocommerce-checkout .wc-block-components-text-input input[type='text'],
.wp-block-woocommerce-checkout .wc-block-components-text-input input[type='email'],
.wp-block-woocommerce-checkout .wc-block-components-text-input input[type='tel'],
.wp-block-woocommerce-checkout .wc-block-components-text-input input[type='number'],
.wp-block-woocommerce-checkout .wc-block-components-combobox-control .components-combobox-control__input,
.wp-block-woocommerce-checkout .wc-block-components-address-form__country select,
.wp-block-woocommerce-checkout .wc-block-components-select select {
    border: 1px solid #e9c9d8;
    border-radius: 12px;
    min-height: 44px;
    padding: 0.6rem 0.8rem;
    background: #fff;
}

.wp-block-woocommerce-checkout .wc-block-components-text-input.is-active input,
.wp-block-woocommerce-checkout .wc-block-components-text-input input:focus,
.wp-block-woocommerce-checkout .wc-block-components-combobox-control .components-combobox-control__input:focus,
.wp-block-woocommerce-checkout .wc-block-components-select select:focus {
    border-color: var(--bns-primary);
    box-shadow: 0 0 0 3px rgba(212, 120, 154, 0.15);
    outline: none;
}

.wp-block-woocommerce-checkout .wc-block-components-button,
.wp-block-woocommerce-checkout .wc-block-components-checkout-place-order-button {
    border-radius: 999px;
    border: 0;
    background: linear-gradient(135deg, var(--bns-primary-dark), var(--bns-primary));
    color: #fff;
    font-weight: 700;
}

.wp-block-woocommerce-checkout .wc-block-components-form .wc-block-components-text-input,
.wp-block-woocommerce-checkout .wc-block-components-form .wc-block-components-select,
.wp-block-woocommerce-checkout .wc-block-components-form .wc-block-components-address-form__address_1,
.wp-block-woocommerce-checkout .wc-block-components-form .wc-block-components-address-form__address_2,
.wp-block-woocommerce-checkout .wc-block-components-form .wc-block-components-address-form__city,
.wp-block-woocommerce-checkout .wc-block-components-form .wc-block-components-address-form__state,
.wp-block-woocommerce-checkout .wc-block-components-form .wc-block-components-address-form__postcode,
.wp-block-woocommerce-checkout .wc-block-components-form .wc-block-components-address-form__country {
    width: 100%;
}

/* Cart Block styling aligned with theme checkout/account cards */
.wp-block-woocommerce-cart {
    gap: 1.2rem;
}

.wp-block-woocommerce-cart .wp-block-woocommerce-filled-cart-block {
    column-gap: 2rem;
}

.wp-block-woocommerce-cart .wc-block-cart,
.wp-block-woocommerce-cart .wc-block-cart__main,
.wp-block-woocommerce-cart .wc-block-cart__sidebar,
.wp-block-woocommerce-cart .wp-block-woocommerce-cart-items-block,
.wp-block-woocommerce-cart .wp-block-woocommerce-cart-totals-block,
.wp-block-woocommerce-cart .wp-block-woocommerce-empty-cart-block {
    background: #fff;
    border: 1px solid #f0d8e4;
    border-radius: 18px;
    box-shadow: 0 8px 22px rgba(168, 61, 101, 0.08);
}

.wp-block-woocommerce-cart .wp-block-woocommerce-cart-items-block,
.wp-block-woocommerce-cart .wp-block-woocommerce-cart-totals-block,
.wp-block-woocommerce-cart .wp-block-woocommerce-empty-cart-block {
    padding: 1rem;
}

.wp-block-woocommerce-cart .wc-block-cart-items__header,
.wp-block-woocommerce-cart .wc-block-components-totals-wrapper,
.wp-block-woocommerce-cart .wc-block-cart__totals-title {
    color: var(--bns-primary-dark);
}

.wp-block-woocommerce-cart .wc-block-components-product-name,
.wp-block-woocommerce-cart .wc-block-components-product-metadata {
    color: #2f2730;
}

.wp-block-woocommerce-cart .wc-block-components-product-metadata {
    white-space: pre-line;
}

.wp-block-woocommerce-cart input[type='text'],
.wp-block-woocommerce-cart input[type='number'],
.wp-block-woocommerce-cart select,
.wp-block-woocommerce-cart .wc-block-components-quantity-selector,
.wp-block-woocommerce-cart .wc-block-components-text-input input,
.wp-block-woocommerce-cart .wc-block-components-text-input input[type='text'] {
    border: 1px solid #e9c9d8;
    border-radius: 12px;
    min-height: 42px;
    background: #fff;
}

.wp-block-woocommerce-cart input[type='text']:focus,
.wp-block-woocommerce-cart input[type='number']:focus,
.wp-block-woocommerce-cart select:focus,
.wp-block-woocommerce-cart .wc-block-components-text-input.is-active input,
.wp-block-woocommerce-cart .wc-block-components-text-input input:focus {
    border-color: var(--bns-primary);
    box-shadow: 0 0 0 3px rgba(212, 120, 154, 0.15);
    outline: none;
}

.wp-block-woocommerce-cart .wc-block-components-button,
.wp-block-woocommerce-cart .wc-block-cart__submit-button,
.wp-block-woocommerce-cart .wc-block-components-totals-coupon__button,
.wp-block-woocommerce-cart .wc-block-components-product-button a,
.wp-block-woocommerce-cart .wc-block-components-product-button button {
    border-radius: 999px;
    border: 0;
    background: linear-gradient(135deg, var(--bns-primary-dark), var(--bns-primary));
    color: #fff;
    font-weight: 700;
}

.wp-block-woocommerce-cart .wc-block-components-button:hover,
.wp-block-woocommerce-cart .wc-block-cart__submit-button:hover,
.wp-block-woocommerce-cart .wc-block-components-totals-coupon__button:hover {
    filter: brightness(1.03);
}

@media (max-width: 767px) {
    .wp-block-woocommerce-cart .wp-block-woocommerce-filled-cart-block {
        column-gap: 1rem;
    }

    .wp-block-woocommerce-cart .wp-block-woocommerce-cart-items-block,
    .wp-block-woocommerce-cart .wp-block-woocommerce-cart-totals-block,
    .wp-block-woocommerce-cart .wp-block-woocommerce-empty-cart-block {
        border-radius: 14px;
        padding: 0.9rem;
    }
}

/* Classic Cart (shortcode) table styling */
.woocommerce-cart .woocommerce-cart-form,
.woocommerce-cart .cart-collaterals .cart_totals {
    background: #fff;
    border: 1px solid #f0d8e4;
    border-radius: 18px;
    box-shadow: 0 8px 22px rgba(168, 61, 101, 0.08);
}

.woocommerce-cart .woocommerce-cart-form {
    padding: 1rem;
}

.woocommerce-cart table.shop_table {
    border: 1px solid #f0d8e4;
    border-radius: 12px;
    overflow: hidden;
    border-collapse: separate;
    border-spacing: 0;
}

.woocommerce-cart table.shop_table thead th {
    background: linear-gradient(135deg, rgba(212, 120, 154, 0.08) 0%, rgba(201, 168, 76, 0.03) 100%);
    color: var(--bns-primary-dark);
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.4px;
    font-size: 0.8rem;
}

.woocommerce-cart table.shop_table th,
.woocommerce-cart table.shop_table td {
    border-color: #f4e2ea;
    padding: 0.85rem 0.9rem;
}

.woocommerce-cart table.shop_table tbody tr:hover {
    background: #fdf8f9;
}

.woocommerce-cart .product-name a {
    color: var(--bns-primary-dark);
    font-weight: 600;
}

.woocommerce-cart .product-name dl.variation,
.woocommerce-cart .product-name .wc-item-meta {
    margin-top: 0.35rem;
    color: #5f4b56;
    line-height: 1.5;
}

.woocommerce-cart .quantity .qty,
.woocommerce-cart .coupon .input-text {
    border: 1px solid #e9c9d8;
    border-radius: 12px;
    min-height: 42px;
    padding: 0.55rem 0.8rem;
}

.woocommerce-cart .actions .button,
.woocommerce-cart .wc-proceed-to-checkout a.checkout-button,
.woocommerce-cart .cart_totals .button {
    border-radius: 999px;
    border: 0;
    background: linear-gradient(135deg, var(--bns-primary-dark), var(--bns-primary));
    color: #fff;
    font-weight: 700;
}

.woocommerce-cart .actions .button:hover,
.woocommerce-cart .wc-proceed-to-checkout a.checkout-button:hover,
.woocommerce-cart .cart_totals .button:hover {
    filter: brightness(1.03);
}

.woocommerce-cart .cart-collaterals .cart_totals {
    padding: 1rem;
}

.woocommerce-cart .cart-collaterals .cart_totals h2 {
    color: var(--bns-primary-dark);
    font-size: 1.25rem;
}

@media (max-width: 767px) {
    .woocommerce-cart .woocommerce-cart-form,
    .woocommerce-cart .cart-collaterals .cart_totals {
        border-radius: 14px;
        padding: 0.9rem;
    }

    .woocommerce-cart table.shop_table th,
    .woocommerce-cart table.shop_table td {
        padding: 0.7rem;
    }
}

/* Shop + Product Catalog styling (classic Woo + blocks) */
.bns-woocommerce-shell {
    padding: 1rem 0 2rem;
}

.bns-woocommerce-shell > .container {
    max-width: 1200px;
}

.woocommerce-shop .site-main,
.post-type-archive-product .site-main,
.tax-product_cat .site-main,
.tax-product_tag .site-main {
    padding-top: 0.4rem;
}

.woocommerce .woocommerce-result-count {
    color: var(--bns-muted);
    font-size: 0.95rem;
}

.woocommerce .woocommerce-ordering select {
    border: 1px solid #e9c9d8;
    border-radius: 12px;
    min-height: 42px;
    padding: 0.5rem 0.75rem;
    color: #2f2730;
    background: #fff;
}

.woocommerce ul.products,
.woocommerce-page ul.products {
    margin-top: 0.8rem;
}

.woocommerce ul.products li.product,
.woocommerce-page ul.products li.product {
    background: #fff;
    border: 1px solid #f0d8e4;
    border-radius: 16px;
    box-shadow: 0 8px 22px rgba(168, 61, 101, 0.08);
    padding: 0.8rem 0.85rem 1rem;
    transition: transform 0.22s ease, box-shadow 0.22s ease;
}

.woocommerce ul.products li.product:hover,
.woocommerce-page ul.products li.product:hover {
    transform: translateY(-3px);
    box-shadow: 0 14px 28px rgba(168, 61, 101, 0.13);
}

.woocommerce ul.products li.product a img,
.woocommerce-page ul.products li.product a img {
    border-radius: 12px;
    margin-bottom: 0.8rem;
}

.woocommerce ul.products li.product .woocommerce-loop-product__title,
.woocommerce-page ul.products li.product .woocommerce-loop-product__title {
    color: var(--bns-primary-dark);
    font-size: 1.04rem;
    font-weight: 700;
    margin-bottom: 0.35rem;
}

.woocommerce ul.products li.product .price,
.woocommerce-page ul.products li.product .price {
    color: #2f2730;
    font-weight: 700;
    margin-bottom: 0.7rem;
}

.woocommerce ul.products li.product .button,
.woocommerce-page ul.products li.product .button {
    border-radius: 999px;
    border: 0;
    background: linear-gradient(135deg, var(--bns-primary-dark), var(--bns-primary));
    color: #fff;
    font-weight: 700;
    padding: 0.6rem 1rem;
}

.woocommerce span.onsale,
.woocommerce-page span.onsale {
    border: 0;
    border-radius: 999px;
    background: linear-gradient(135deg, #bf3c73, #da7da4);
    color: #fff;
    min-height: 0;
    min-width: 0;
    line-height: 1;
    padding: 0.35rem 0.6rem;
    font-size: 0.76rem;
    font-weight: 700;
}

.woocommerce nav.woocommerce-pagination ul {
    border: 0;
    display: flex;
    gap: 0.4rem;
}

.woocommerce nav.woocommerce-pagination ul li {
    border: 0;
}

.woocommerce nav.woocommerce-pagination ul li a,
.woocommerce nav.woocommerce-pagination ul li span {
    border: 1px solid #f0d8e4;
    border-radius: 10px;
    background: #fff;
    color: var(--bns-primary-dark);
    min-width: 36px;
    text-align: center;
}

.woocommerce nav.woocommerce-pagination ul li span.current {
    background: linear-gradient(135deg, rgba(212, 120, 154, 0.18), rgba(201, 168, 76, 0.1));
    border-color: #dfb2c8;
}

/* Strong shop archive overrides (ensures visible styling on default Woo templates). */
.archive.woocommerce ul.products li.product,
.post-type-archive-product ul.products li.product,
.woocommerce-shop ul.products li.product {
    background: #fff !important;
    border: 1px solid #f0d8e4 !important;
    border-radius: 16px !important;
    box-shadow: 0 8px 22px rgba(168, 61, 101, 0.08) !important;
    padding: 0.8rem 0.85rem 1rem !important;
}

.archive.woocommerce ul.products li.product .button,
.post-type-archive-product ul.products li.product .button,
.woocommerce-shop ul.products li.product .button {
    border-radius: 999px !important;
    border: 0 !important;
    background: linear-gradient(135deg, var(--bns-primary-dark), var(--bns-primary)) !important;
    color: #fff !important;
    font-weight: 700 !important;
}

.archive.woocommerce .woocommerce-ordering select,
.post-type-archive-product .woocommerce-ordering select,
.woocommerce-shop .woocommerce-ordering select {
    border: 1px solid #e9c9d8 !important;
    border-radius: 12px !important;
    min-height: 42px !important;
    background: #fff !important;
}

/* Product catalog blocks (Product Collection / All Products) */
.wp-block-woocommerce-product-collection,
.wc-block-grid,
.wc-block-product-categories {
    margin-top: 0.8rem;
}

.wp-block-woocommerce-product-collection .wc-block-product,
.wc-block-grid__product,
.wp-block-woocommerce-product-template > li {
    background: #fff;
    border: 1px solid #f0d8e4;
    border-radius: 16px;
    box-shadow: 0 8px 22px rgba(168, 61, 101, 0.08);
    padding: 0.8rem 0.85rem 1rem;
}

.wp-block-woocommerce-product-collection .wc-block-product__image img,
.wc-block-grid__product-image img,
.wp-block-woocommerce-product-template .wc-block-components-product-image img {
    border-radius: 12px;
}

.wp-block-woocommerce-product-collection .wc-block-components-product-title a,
.wc-block-grid__product-title,
.wp-block-woocommerce-product-template .wc-block-components-product-title {
    color: var(--bns-primary-dark);
    font-weight: 700;
}

.wp-block-woocommerce-product-collection .wc-block-components-product-price,
.wc-block-grid__product-price,
.wp-block-woocommerce-product-template .wc-block-components-product-price {
    color: #2f2730;
    font-weight: 700;
}

.wp-block-woocommerce-product-collection .wc-block-components-product-button .wp-element-button,
.wc-block-grid__product-add-to-cart .wp-block-button__link,
.wp-block-woocommerce-product-template .wc-block-components-product-button .wp-element-button {
    border-radius: 999px;
    border: 0;
    background: linear-gradient(135deg, var(--bns-primary-dark), var(--bns-primary));
    color: #fff;
    font-weight: 700;
}

@media (max-width: 767px) {
    .woocommerce ul.products li.product,
    .woocommerce-page ul.products li.product,
    .wp-block-woocommerce-product-collection .wc-block-product,
    .wc-block-grid__product,
    .wp-block-woocommerce-product-template > li {
        border-radius: 14px;
        padding: 0.75rem 0.75rem 0.9rem;
    }
}

/* Single Product page styling */
.single-product div.product {
    background: #fff;
    border: 1px solid #f0d8e4;
    border-radius: 18px;
    box-shadow: 0 8px 22px rgba(168, 61, 101, 0.08);
    padding: 1rem;
}

.single-product div.product .woocommerce-product-gallery__wrapper img {
    border-radius: 14px;
}

.single-product div.product .product_title {
    color: var(--bns-primary-dark);
    font-weight: 800;
    letter-spacing: 0.2px;
}

.single-product div.product p.price,
.single-product div.product span.price {
    color: #2f2730;
    font-weight: 800;
}

.single-product div.product .woocommerce-product-details__short-description {
    color: #4d3d46;
    line-height: 1.65;
}

.single-product .quantity .qty,
.single-product form.cart .variations select {
    border: 1px solid #e9c9d8;
    border-radius: 12px;
    min-height: 42px;
    padding: 0.55rem 0.75rem;
    background: #fff;
}

.single-product div.product form.cart .button,
.single-product .single_add_to_cart_button,
.single-product a.button,
.single-product button.button {
    border-radius: 999px;
    border: 0;
    background: linear-gradient(135deg, var(--bns-primary-dark), var(--bns-primary));
    color: #fff;
    font-weight: 700;
    padding: 0.68rem 1.2rem;
}

.single-product div.product .product_meta {
    margin-top: 1rem;
    padding-top: 0.8rem;
    border-top: 1px solid #f4e2ea;
    color: var(--bns-muted);
}

.single-product .woocommerce-tabs {
    margin-top: 1rem;
}

.single-product .woocommerce-tabs .tabs {
    border-bottom: 1px solid #f0d8e4;
}

.single-product .woocommerce-tabs .tabs li {
    border: 1px solid #f0d8e4;
    border-bottom: 0;
    border-radius: 10px 10px 0 0;
    background: #fff;
}

.single-product .woocommerce-tabs .tabs li.active {
    background: linear-gradient(135deg, rgba(212, 120, 154, 0.12), rgba(201, 168, 76, 0.08));
    border-color: #dfb2c8;
}

.single-product .woocommerce-tabs .panel {
    background: #fff;
    border: 1px solid #f0d8e4;
    border-radius: 0 12px 12px 12px;
    padding: 1rem;
}

.single-product .related,
.single-product .up-sells {
    margin-top: 1.2rem;
}

/* Single product blocks fallback (Woo blocks templates). */
.single-product .wp-block-woocommerce-product-image-gallery,
.single-product .wp-block-woocommerce-product-details,
.single-product .wp-block-woocommerce-add-to-cart-form,
.single-product .wp-block-post-comments {
    background: #fff;
    border: 1px solid #f0d8e4;
    border-radius: 16px;
    box-shadow: 0 8px 22px rgba(168, 61, 101, 0.08);
    padding: 0.95rem;
}

.single-product .wp-block-woocommerce-product-details .wp-block-post-title,
.single-product .wc-block-components-product-title,
.single-product .wp-block-woocommerce-product-price {
    color: var(--bns-primary-dark);
}

.single-product .wc-block-components-product-price,
.single-product .wp-block-woocommerce-product-price {
    font-weight: 800;
    color: #2f2730;
}

.single-product .wp-block-woocommerce-add-to-cart-form .single_add_to_cart_button,
.single-product .wp-block-woocommerce-add-to-cart-form .wp-element-button {
    border-radius: 999px;
    border: 0;
    background: linear-gradient(135deg, var(--bns-primary-dark), var(--bns-primary));
    color: #fff;
    font-weight: 700;
}

@media (max-width: 767px) {
    .single-product div.product {
        border-radius: 14px;
        padding: 0.9rem;
    }

    .single-product .woocommerce-tabs .panel {
        border-radius: 10px;
        padding: 0.85rem;
    }
}

/* Keep billing country fixed to MY and hidden on UI. */
.wp-block-woocommerce-checkout .wc-block-components-address-form__country {
    display: none;
}

/* Billing address field order to match requested flow. */
.wp-block-woocommerce-checkout .wc-block-components-address-form {
    display: flex;
    flex-direction: column;
    gap: 0.8rem;
}

.wp-block-woocommerce-checkout .wc-block-components-address-form__first_name {
    order: 10;
}

.wp-block-woocommerce-checkout .wc-block-components-address-form__last_name {
    order: 20;
}

.wp-block-woocommerce-checkout .wc-block-components-address-form__country {
    order: 30;
}

.wp-block-woocommerce-checkout .wc-block-components-address-form__address_2 {
    order: 40;
}

.wp-block-woocommerce-checkout .wc-block-components-address-form__address_1 {
    order: 50;
}

.wp-block-woocommerce-checkout .wc-block-components-address-form__postcode {
    order: 60;
}

.wp-block-woocommerce-checkout .wc-block-components-address-form__city {
    order: 70;
}

.wp-block-woocommerce-checkout .wc-block-components-address-form__state {
    order: 80;
}

.wp-block-woocommerce-checkout .wc-block-components-address-form__phone {
    order: 90;
}

/* Booking details in summary: each detail on its own line. */
.wp-block-woocommerce-checkout .wc-block-components-product-metadata,
.wp-block-woocommerce-checkout .wc-block-components-product-details {
    white-space: pre-line;
}

/* Hide return to cart as requested. */
.wp-block-woocommerce-checkout .wc-block-components-checkout-return-to-cart-button {
    display: none !important;
}

/* Emphasize terms+place-order area as a separate card below summary. */
.wp-block-woocommerce-checkout .wc-block-checkout__actions,
.wp-block-woocommerce-checkout .wc-block-checkout__actions_row {
    margin-top: 0.35rem;
    background: transparent;
    border: 0;
    border-radius: 0;
    padding: 0;
}

@media (max-width: 767px) {
    .woocommerce-checkout .woocommerce-billing-fields,
    .woocommerce-checkout .woocommerce-shipping-fields,
    .woocommerce-checkout #order_review {
        padding: 1rem;
        border-radius: 14px;
    }

    .wp-block-woocommerce-checkout .wc-block-components-sidebar,
    .wp-block-woocommerce-checkout .wc-block-checkout__main {
        border-radius: 14px;
        padding: 0.9rem;
    }
}

/* ── Booking Table ──────────────────────────────────────────────────────────── */

.bns-bookings-list {
    margin: 1.5rem 0;
}

.bns-bookings-table-wrapper {
    overflow-x: auto;
    background: white;
    border-radius: 12px;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
}

.bns-bookings-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.95rem;
}

.bns-bookings-table thead {
    background: linear-gradient(135deg, rgba(212, 120, 154, 0.08) 0%, rgba(201, 168, 76, 0.03) 100%);
    border-bottom: 2px solid #f0d8e4;
}

.bns-bookings-table thead th {
    padding: 1rem 1.25rem;
    text-align: left;
    font-weight: 700;
    color: var(--bns-muted);
    text-transform: uppercase;
    font-size: 0.8rem;
    letter-spacing: 0.5px;
    white-space: nowrap;
}

.bns-bookings-table tbody tr {
    border-bottom: 1px solid #f5f5f5;
    transition: background-color 0.2s ease;
}

.bns-bookings-table tbody tr:hover {
    background-color: #fdf8f9;
}

.bns-bookings-table tbody td {
    padding: 1rem 1.25rem;
    vertical-align: middle;
    color: var(--bns-ink);
}

/* Column Sizing */
.bns-bookings-table th.col-booking,
.bns-bookings-table td.col-booking {
    width: 80px;
    min-width: 80px;
}

.bns-bookings-table th.col-date-time,
.bns-bookings-table td.col-date-time {
    width: 160px;
    min-width: 160px;
}

.bns-bookings-table th.col-outlet,
.bns-bookings-table td.col-outlet {
    width: 120px;
    min-width: 120px;
}

.bns-bookings-table th.col-staff,
.bns-bookings-table td.col-staff {
    width: 120px;
    min-width: 120px;
}

.bns-bookings-table th.col-services,
.bns-bookings-table td.col-services {
    width: 150px;
    min-width: 150px;
}

.bns-bookings-table th.col-fee,
.bns-bookings-table td.col-fee {
    width: 90px;
    min-width: 90px;
    text-align: right;
}

.bns-bookings-table th.col-status,
.bns-bookings-table td.col-status {
    width: 130px;
    min-width: 130px;
}

.bns-bookings-table th.col-actions,
.bns-bookings-table td.col-actions {
    width: 100px;
    min-width: 100px;
    text-align: center;
}

/* Booking Row Styling */
.bns-bookings-table tbody tr.bns-booking-status-pending-payment,
.bns-bookings-table tbody tr.bns-booking-status-pending_payment {
    border-left: 4px solid #ffa500;
}

.bns-bookings-table tbody tr.bns-booking-status-confirmed {
    border-left: 4px solid #4caf50;
}

.bns-bookings-table tbody tr.bns-booking-status-completed {
    border-left: 4px solid #2196f3;
}

.bns-bookings-table tbody tr.bns-booking-status-cancelled {
    border-left: 4px solid #f44336;
}

/* Date & Time */
.bns-booking-datetime {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 0.25rem;
}

.bns-booking-date {
    font-weight: 600;
    white-space: nowrap;
}

.bns-booking-time {
    color: var(--bns-muted);
    font-size: 0.9rem;
}

/* Services */
.bns-booking-services-inline {
    max-width: 200px;
    word-break: break-word;
}

/* Staff Dot */
.gcb-staff-dot {
    display: inline-block;
    width: 10px;
    height: 10px;
    border-radius: 50%;
    margin-right: 0.5rem;
    vertical-align: middle;
}

/* Status Badge */
.bns-status-badge {
    display: inline-block;
    padding: 0.35rem 0.75rem;
    border-radius: 20px;
    font-size: 0.75rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    white-space: nowrap;
}

.bns-status-badge.bns-status-pending-payment,
.bns-status-badge.bns-status-pending_payment,
.bns-status-badge.bns-status-pending-manual,
.bns-status-badge.bns-status-pending {
    background-color: #fff3cd;
    color: #856404;
}

.bns-status-badge.bns-status-confirmed {
    background-color: #d4edda;
    color: #155724;
}

.bns-status-badge.bns-status-completed {
    background-color: #cfe2ff;
    color: #084298;
}

.bns-status-badge.bns-status-cancelled {
    background-color: #f8d7da;
    color: #842029;
}

/* Action Buttons */
.bns-action-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0.5rem 1rem;
    background-color: var(--bns-primary);
    color: white;
    border-radius: 6px;
    font-weight: 600;
    font-size: 0.85rem;
    text-decoration: none;
    transition: all 0.2s ease;
    border: none;
    cursor: pointer;
    white-space: nowrap;
}

.bns-action-btn:hover {
    background-color: var(--bns-primary-dark);
    transform: translateY(-1px);
    box-shadow: 0 2px 8px rgba(168, 61, 101, 0.2);
}

.bns-action-btn:active {
    transform: translateY(0);
}

.bns-action-btn.bns-action-pay {
    background: linear-gradient(135deg, var(--bns-primary) 0%, var(--bns-primary-dark) 100%);
    box-shadow: 0 4px 8px rgba(168, 61, 101, 0.25);
}

.bns-action-btn.bns-action-pay:hover {
    box-shadow: 0 6px 12px rgba(168, 61, 101, 0.35);
}

.bns-action-pending {
    font-size: 0.85rem;
    color: var(--bns-muted);
    font-style: italic;
}

/* Responsive Design */
@media (max-width: 1200px) {
    .bns-bookings-table thead th,
    .bns-bookings-table tbody td {
        padding: 0.75rem 1rem;
        font-size: 0.9rem;
    }

    .bns-bookings-table th.col-services,
    .bns-bookings-table td.col-services {
        width: 120px;
        min-width: 120px;
    }
}

@media (max-width: 768px) {
    .bns-bookings-table-wrapper {
        border-radius: 8px;
    }

    .bns-bookings-table thead th,
    .bns-bookings-table tbody td {
        padding: 0.75rem 0.6rem;
        font-size: 0.85rem;
    }

    .bns-bookings-table thead th {
        font-size: 0.7rem;
    }

    .bns-bookings-table th.col-booking,
    .bns-bookings-table td.col-booking {
        width: 60px;
        min-width: 60px;
    }

    .bns-bookings-table th.col-date-time,
    .bns-bookings-table td.col-date-time {
        width: 130px;
        min-width: 130px;
    }

    .bns-bookings-table th.col-outlet,
    .bns-bookings-table td.col-outlet {
        width: 100px;
        min-width: 100px;
    }

    .bns-bookings-table th.col-services,
    .bns-bookings-table td.col-services {
        width: 100px;
        min-width: 100px;
    }

    .bns-booking-datetime {
        flex-direction: column;
        gap: 0.25rem;
    }

    .bns-booking-date {
        font-size: 0.85rem;
    }

    .bns-booking-time {
        font-size: 0.8rem;
    }

    .bns-action-btn {
        padding: 0.4rem 0.75rem;
        font-size: 0.75rem;
    }
}

@media (max-width: 600px) {
    .bns-bookings-table thead th,
    .bns-bookings-table tbody td {
        padding: 0.6rem 0.5rem;
        font-size: 0.8rem;
    }

    .bns-bookings-table th.col-outlet,
    .bns-bookings-table td.col-outlet {
        display: none;
    }

    .bns-booking-services-inline {
        max-width: 80px;
        font-size: 0.8rem;
    }
}

@media (max-width: 991px) {
    .bns-account-shell {
        grid-template-columns: 1fr;
    }
}

/* ── Utilities ────────────────────────────────────────────────────────────────── */

.position-relative {
    position: relative;
}

.rounded-3 {
    border-radius: 12px !important;
}

.fw-semibold {
    font-weight: 600;
}

.fw-bold {
    font-weight: 700;
}

.text-muted {
    color: var(--bns-muted) !important;
}

/* ── Responsive ────────────────────────────────────────────────────────────────── */

@media (max-width: 992px) {
    .site-header,
    .navbar,
    .navbar > .container {
        min-height: 96px;
        max-height: 96px;
    }

    .custom-logo-link,
    .custom-logo {
        max-height: 76px;
    }

    .navbar > .container {
        display: flex;
        align-items: center;
        justify-content: space-between;
    }

    .navbar-brand {
        margin-right: 0;
        display: flex;
        align-items: center;
    }

    .site-branding,
    .custom-logo-link {
        display: flex;
        align-items: center;
    }

    .custom-logo-link {
        line-height: 0;
    }

    .navbar-toggler {
        margin-left: auto;
        align-self: center;
        display: inline-flex;
        align-items: center;
        justify-content: center;
        width: 50px;
        height: 42px;
        padding: 0 !important;
    }

    .bns-hero {
        padding-top: 42px !important;
        padding-bottom: 32px !important;
    }

    .nav-link {
        margin: 0 8px !important;
        font-size: 0.98rem;
    }

    .navbar-collapse {
        margin-top: 0.6rem;
        background: #fff;
        border: 1px solid #f0d8e4;
        border-radius: 12px;
        padding: 0.5rem 0.6rem;
    }

    .navbar .navbar-nav .dropdown-menu {
        position: static !important;
        float: none;
        transform: none !important;
        opacity: 1 !important;
        visibility: visible !important;
        box-shadow: none;
        border: 1px solid #f0d8e4;
        margin: 0.35rem 0 0.45rem;
        min-width: 0;
    }

    .navbar .navbar-nav .dropdown-toggle {
        display: flex;
        align-items: center;
        justify-content: space-between;
    }
}

@media (max-width: 576px) {
    .site-header,
    .navbar,
    .navbar > .container {
        min-height: 84px;
        max-height: 84px;
    }

    .custom-logo-link,
    .custom-logo {
        max-height: 58px;
    }

    .navbar > .container {
        align-items: center !important;
    }

    .navbar-brand,
    .site-branding,
    .custom-logo-link {
        display: flex;
        align-items: center;
    }

    .custom-logo-link {
        line-height: 0;
    }

    .site-tagline {
        display: none;
    }

    .navbar-toggler {
        width: 48px;
        height: 40px;
        padding: 0 !important;
        margin: 0;
        display: inline-flex;
        align-items: center;
        justify-content: center;
    }

    .bns-hero {
        padding-top: 28px !important;
        padding-bottom: 28px !important;
    }

    .bns-hero::before {
        width: 280px;
        height: 280px;
        right: -110px;
        top: -130px;
    }

    .bns-hero::after {
        width: 220px;
        height: 220px;
        left: -90px;
        bottom: -130px;
    }

    .bns-hero .row > .col-lg-6:first-child {
        text-align: center;
    }

    .bns-hero .d-flex.flex-wrap.gap-3 {
        justify-content: center;
    }

    .bns-hero .bns-hero-subtitle {
        margin-left: auto;
        margin-right: auto;
    }

    .bns-hero .row.row-cols-3 {
        justify-content: center;
    }

    .bns-section {
        padding: 40px 0 !important;
    }

    .display-4, .display-5 {
        font-size: 1.8rem !important;
    }

    .nav-link {
        margin: 0 4px !important;
        font-size: 0.98rem;
    }
}

@media (max-width: 768px) {
    #why-us .col-lg-7 {
        text-align: center;
    }

    #why-us .col-lg-7 .row {
        justify-content: center;
    }

    #why-us .col-lg-7 .d-flex {
        flex-direction: column;
        align-items: center !important;
        text-align: center;
    }

    #why-us .col-lg-7 .d-flex > div:first-child {
        margin-bottom: 0.25rem;
    }
}
