/*
Theme Name: Passport Covers
Theme URI: https://aussieguard.com.au
Description: Passport Covers Passport Covers – Premium WooCommerce child theme built on Blankslate.
Author: Passport Covers Team
Template: blankslate
Version: 1.0.0
License: GNU General Public License v3 or Later
License URI: https://www.gnu.org/licenses/gpl.html
Text Domain: aussieguard
*/

/* ============================================================
 AUSSIEGUARD - DESIGN SYSTEM
 ============================================================ */

/* Google Fonts loaded via <link> in header.php with rel=preload for performance.
 The @import above is intentionally removed to avoid a double request. */

/* ---------- CUSTOM PROPERTIES ---------- */
:root {
 /* Core colours - Premium Heritage Navy & Champagne Gold */
 --ag-navy: oklch(0.12 0.045 260); /* Deeper, richer navy */
 --ag-navy-mid: oklch(0.17 0.058 260); /* Mid navy for hover states */
 --ag-navy-dark: oklch(0.09 0.032 260); /* Near-black navy */
 --ag-gold: #D4AF37; /* Champagne gold - premium accent */
 --ag-gold-light: #E2C96C; /* Lighter gold for hover states */
 --ag-gold-pale: #F5EDD6; /* Pale gold for subtle backgrounds */

 /* Semantic */
 --bg: #FDFBF7; /* Soft cream - easier on eyes */
 --surface: #ffffff;
 --foreground: oklch(0.15 0.015 50); /* Slate charcoal */
 --muted: oklch(0.94 0.008 70);
 --muted-fg: oklch(0.48 0.015 60); /* Higher contrast for readability */
 --border: oklch(0.86 0.015 72); /* Subtler border */
 --primary: oklch(0.22 0.07 258); /* Navy primary */
 --primary-fg: oklch(0.97 0.005 80);
 --accent: #D4AF37; /* Champagne gold accent */
 --accent-fg: oklch(0.14 0.02 50);

 /* Additional Colors - refined palette */
 --gold-100: #F5EDD6;
 --gold-200: #EBD99E;
 --gold-300: #E2C96C;
 --gold-400: #D4AF37;
 --gold-500: #B8962A;
 --gold-600: #967A1E;
 --emerald-100: #d1fae5;
 --emerald-500: #10b981;
 --emerald-800: #065f46;
 --rose-100: #ffe4e6;
 --rose-400: #fb7185;
 --rose-700: #be123c;

 /* Typography */
 --font-sans: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
 --font-serif: 'Playfair Display', Georgia, Cambria, 'Times New Roman', Times, serif;

 /* Spacing scale */
 --space-1: 0.25rem;
 --space-2: 0.5rem;
 --space-3: 0.75rem;
 --space-4: 1rem;
 --space-6: 1.5rem;
 --space-8: 2rem;
 --space-12: 3rem;
 --space-16: 4rem;
 --space-20: 5rem;
 --space-24: 6rem;

 /* Radii */
 --radius-sm: 0.5rem;
 --radius-md: 0.75rem;
 --radius-lg: 1rem;
 --radius-xl: 1.5rem;
 --radius-2xl: 2rem;
 --radius-full: 9999px;

 /* Shadows */
 --shadow-sm: 0 1px 3px rgba(0,0,0,.06), 0 1px 2px rgba(0,0,0,.04);
 --shadow-md: 0 4px 16px rgba(0,0,0,.08), 0 2px 8px rgba(0,0,0,.04);
 --shadow-lg: 0 12px 40px rgba(0,0,0,.12), 0 4px 16px rgba(0,0,0,.06);
 --shadow-xl: 0 24px 64px rgba(0,0,0,.16), 0 8px 24px rgba(0,0,0,.08);

 /* Transitions */
 --ease-out: cubic-bezier(0.16, 1, 0.3, 1);
 --ease-in-out: cubic-bezier(0.4, 0, 0.2, 1);
 --dur-fast: 150ms;
 --dur-base: 250ms;
 --dur-slow: 400ms;
 --dur-xslow: 700ms;
}

/* ---------- RESET ---------- */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; -webkit-font-smoothing: antialiased; }
body {
 font-family: var(--font-sans);
 background: var(--bg);
 color: var(--foreground);
 line-height: 1.6;
 overflow-x: hidden;
}
img, video { display: block; max-width: 100%; }
a { color: inherit; text-decoration: none; }
button { font: inherit; cursor: pointer; border: none; background: transparent; }
ul, ol { list-style: none; }
input, select, textarea { font: inherit; }

/* ---------- SCROLLBAR ---------- */
::-webkit-scrollbar { width: 6px; }
::-webkit-scrollbar-track { background: transparent; }
::-webkit-scrollbar-thumb { background: oklch(0.7 0.04 70); border-radius: 3px; }

/* ---------- SKIP LINK ---------- */
.skip-link {
 position: absolute;
 top: -100px;
 left: 1rem;
 background: var(--primary);
 color: var(--primary-fg);
 padding: 0.5rem 1rem;
 border-radius: var(--radius-md);
 z-index: 9999;
 transition: top 0.2s;
}
.skip-link:focus { top: 1rem; }

/* ---------- CONTAINER ---------- */
.ag-container {
 max-width: 1280px;
 margin-inline: auto;
 padding-inline: 1rem;
}
@media (min-width: 768px) { .ag-container { padding-inline: 2rem; } }

/* ============================================================
 ANNOUNCEMENT BAR
 ============================================================ */
.ag-announcement {
 background: var(--primary);
 color: var(--primary-fg);
 font-size: 0.75rem;
 font-weight: 500;
 text-align: center;
 padding: 0.5rem 1rem;
 height: 2rem;
 display: flex;
 align-items: center;
 justify-content: center;
 gap: 0.5rem;
 letter-spacing: 0.03em;
 position: relative;
 z-index: 60;
}
.ag-announcement svg { color: var(--ag-gold-light); width: 14px; height: 14px; }

/* ============================================================
 NAVBAR
 ============================================================ */
.ag-navbar {
 position: fixed;
 top: 0;
 left: 0; right: 0;
 z-index: 50;
 height: 4rem;
 transition: background var(--dur-base) var(--ease-out),
 top var(--dur-base) var(--ease-out),
 box-shadow var(--dur-base) var(--ease-out),
 border-color var(--dur-base) var(--ease-out);
}
.ag-navbar.is-top {
 background: transparent;
 border-bottom: 1px solid transparent;
}
.ag-navbar.is-scrolled {
 top: 0;
 background: rgba(255,255,255,0.95);
 backdrop-filter: blur(12px);
 -webkit-backdrop-filter: blur(12px);
 border-bottom: 1px solid var(--border);
 box-shadow: var(--shadow-sm);
}
@media (min-width: 768px) { .ag-navbar { height: 5rem; } }

.ag-navbar__inner {
 max-width: 1280px;
 margin-inline: auto;
 padding-inline: 1rem;
 height: 100%;
 display: flex;
 align-items: center;
 justify-content: space-between;
 gap: 1rem;
}
@media (min-width: 768px) { .ag-navbar__inner { padding-inline: 2rem; } }

/* Logo */
.ag-logo {
 display: flex;
 flex-direction: column;
 line-height: 1;
 gap: 0;
}
.ag-logo__name {
 font-family: var(--font-serif);
 font-weight: 700;
 font-size: 1.25rem;
 transition: color var(--dur-base);
}
.ag-logo__sub {
 font-size: 0.6rem;
 letter-spacing: 0.25em;
 text-transform: uppercase;
 color: var(--ag-gold);
 transition: color var(--dur-base);
}
@media (min-width: 768px) { .ag-logo__name { font-size: 1.5rem; } }

.is-top .ag-logo__name { color: #fff; }
.is-scrolled .ag-logo__name { color: var(--foreground); }

/* Desktop nav links */
.ag-nav-links {
 display: none;
 align-items: center;
 gap: 2rem;
}
@media (min-width: 768px) { .ag-nav-links { display: flex; } }

.ag-nav-link {
 font-size: 0.875rem;
 font-weight: 500;
 letter-spacing: 0.02em;
 transition: color var(--dur-fast);
 position: relative;
}
.ag-nav-link::after {
 content: '';
 position: absolute;
 bottom: -4px;
 left: 0; right: 0;
 height: 2px;
 background: var(--ag-gold);
 transform: scaleX(0);
 transform-origin: left;
 transition: transform var(--dur-base) var(--ease-out);
}
.ag-nav-link:hover::after,
.ag-nav-link.current-menu-item::after { transform: scaleX(1); }

.is-top .ag-nav-link { color: rgba(255,255,255,.9); }
.is-top .ag-nav-link:hover { color: #fff; }
.is-scrolled .ag-nav-link { color: #374151; }
.is-scrolled .ag-nav-link:hover { color: var(--foreground); }

/* Nav right actions */
.ag-nav-actions { display: flex; align-items: center; gap: 0.75rem; }

.ag-nav-cta {
 display: flex;
 align-items: center;
 gap: 0.5rem;
 font-size: 0.875rem;
 font-weight: 600;
 padding: 0.5rem 1rem;
 border-radius: var(--radius-full);
 border: 1px solid transparent;
 transition: all var(--dur-base) var(--ease-out);
}
.is-top .ag-nav-cta {
 background: rgba(255,255,255,.2);
 color: #fff;
 border-color: rgba(255,255,255,.3);
 backdrop-filter: blur(8px);
}
.is-top .ag-nav-cta:hover { background: rgba(255,255,255,.3); }
.is-scrolled .ag-nav-cta {
 background: var(--primary);
 color: var(--primary-fg);
 border-color: var(--primary);
}
.is-scrolled .ag-nav-cta:hover { opacity: 0.9; }
.ag-nav-cta span { display: none; }
@media (min-width: 640px) { .ag-nav-cta span { display: inline; } }

/* Cart icon in nav */
.ag-nav-cart {
 position: relative;
 display: flex;
 align-items: center;
 justify-content: center;
 width: 2.25rem;
 height: 2.25rem;
 border-radius: var(--radius-full);
 transition: all var(--dur-base);
}
.is-top .ag-nav-cart { color: #fff; }
.is-scrolled .ag-nav-cart { color: var(--foreground); }
.ag-nav-cart:hover { background: rgba(0,0,0,.06); }
.ag-cart-count {
 position: absolute;
 top: -4px; right: -4px;
 background: var(--ag-gold);
 color: #000;
 font-size: 0.625rem;
 font-weight: 700;
 min-width: 1rem;
 height: 1rem;
 border-radius: var(--radius-full);
 display: flex;
 align-items: center;
 justify-content: center;
 padding-inline: 0.2rem;
 line-height: 1;
}
.ag-cart-count:empty,
.ag-cart-count[data-count="0"] { display: none; }

/* Mobile hamburger */
.ag-hamburger {
 display: flex;
 flex-direction: column;
 justify-content: space-between;
 width: 1.5rem;
 height: 1.125rem;
 padding: 0;
}
@media (min-width: 768px) { .ag-hamburger { display: none; } }
.ag-hamburger span {
 display: block;
 height: 2px;
 background: currentColor;
 border-radius: 1px;
 transform-origin: center;
 transition: transform var(--dur-base) var(--ease-out),
 opacity var(--dur-fast);
}
.is-top .ag-hamburger { color: #fff; }
.is-scrolled .ag-hamburger { color: var(--foreground); }
.ag-hamburger.is-open span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.ag-hamburger.is-open span:nth-child(2) { opacity: 0; }
.ag-hamburger.is-open span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

/* ---------- MOBILE DRAWER ---------- */
.ag-drawer {
 position: fixed;
 inset: 0;
 z-index: 45;
 background: #fff;
 display: flex;
 flex-direction: column;
 padding: 5rem 1.5rem 2.5rem;
 transform: translateX(100%);
 transition: transform var(--dur-slow) var(--ease-out);
 overflow-y: auto;
}
.ag-drawer.is-open { transform: translateX(0); }
.ag-drawer__links { display: flex; flex-direction: column; gap: 0.5rem; margin-top: 1rem; }
.ag-drawer__link {
 font-family: var(--font-serif);
 font-size: 1.5rem;
 font-weight: 500;
 color: var(--foreground);
 padding-block: 1rem;
 border-bottom: 1px solid var(--border);
 transition: color var(--dur-fast);
}
.ag-drawer__link:hover { color: var(--primary); }
.ag-drawer__actions { margin-top: auto; padding-top: 2rem; }
.ag-drawer__cta {
 display: flex;
 align-items: center;
 justify-content: center;
 width: 100%;
 padding: 1rem;
 background: var(--primary);
 color: var(--primary-fg);
 font-size: 1.125rem;
 font-weight: 600;
 border-radius: var(--radius-xl);
 border: 2px solid var(--foreground);
 transition: opacity var(--dur-fast);
}
.ag-drawer__cta:hover { opacity: 0.9; }

/* Backdrop */
.ag-backdrop {
 position: fixed;
 inset: 0;
 z-index: 44;
 background: rgba(0,0,0,.4);
 opacity: 0;
 pointer-events: none;
 transition: opacity var(--dur-slow);
}
.ag-backdrop.is-visible { opacity: 1; pointer-events: all; }

/* ============================================================
 MINI CART DRAWER
 ============================================================ */
.ag-minicart {
 position: fixed;
 top: 0; right: 0; bottom: 0;
 width: min(400px, 100vw);
 z-index: 80;
 background: #fff;
 display: flex;
 flex-direction: column;
 transform: translateX(100%);
 transition: transform var(--dur-slow) var(--ease-out);
 box-shadow: var(--shadow-xl);
}
.ag-minicart.is-open { transform: translateX(0); }

.ag-minicart__header {
 display: flex;
 align-items: center;
 justify-content: space-between;
 padding: 1.5rem;
 border-bottom: 1px solid var(--border);
}
.ag-minicart__title {
 font-family: var(--font-serif);
 font-size: 1.25rem;
 font-weight: 700;
}
.ag-minicart__close {
 width: 2rem; height: 2rem;
 display: flex; align-items: center; justify-content: center;
 border-radius: var(--radius-full);
 transition: background var(--dur-fast);
}
.ag-minicart__close:hover { background: var(--muted); }

.ag-minicart__body {
 flex: 1;
 overflow-y: auto;
 padding: 1rem 1.5rem;
}
.ag-minicart__empty {
 text-align: center;
 padding: 3rem 1rem;
 color: var(--muted-fg);
}
.ag-minicart__item {
 display: grid;
 grid-template-columns: 5rem 1fr auto;
 gap: 0.75rem;
 align-items: start;
 padding-block: 1rem;
 border-bottom: 1px solid var(--border);
}
.ag-minicart__item-img {
 aspect-ratio: 1;
 border-radius: var(--radius-md);
 overflow: hidden;
 background: var(--muted);
}
.ag-minicart__item-img img { width: 100%; height: 100%; object-fit: cover; }
.ag-minicart__item-name { font-weight: 600; font-size: 0.9rem; margin-bottom: 0.25rem; }
.ag-minicart__item-price { font-size: 0.875rem; color: var(--muted-fg); }
.ag-minicart__item-remove { color: var(--muted-fg); font-size: 0.75rem; margin-top: 0.5rem; transition: color var(--dur-fast); }
.ag-minicart__item-remove:hover { color: #ef4444; }

.ag-minicart__footer { padding: 1.5rem; border-top: 1px solid var(--border); }
.ag-minicart__subtotal {
 display: flex;
 justify-content: space-between;
 align-items: center;
 margin-bottom: 1rem;
 font-weight: 600;
}
.ag-minicart__subtotal-amount { font-size: 1.125rem; }
.ag-minicart__checkout {
 display: block;
 width: 100%;
 padding: 0.875rem 1rem;
 background: var(--primary);
 color: var(--primary-fg);
 font-weight: 700;
 font-size: 1rem;
 text-align: center;
 border-radius: var(--radius-xl);
 border: 2px solid #000;
 margin-bottom: 0.75rem;
 transition: opacity var(--dur-fast);
}
.ag-minicart__checkout:hover { opacity: 0.9; }
.ag-minicart__view-cart {
 display: block;
 width: 100%;
 padding: 0.75rem 1rem;
 border: 1px solid var(--border);
 color: var(--foreground);
 font-weight: 500;
 font-size: 0.875rem;
 text-align: center;
 border-radius: var(--radius-xl);
 transition: background var(--dur-fast);
}
.ag-minicart__view-cart:hover { background: var(--muted); }

.ag-minicart-overlay {
 position: fixed;
 inset: 0;
 z-index: 79;
 background: rgba(0,0,0,.5);
 opacity: 0;
 pointer-events: none;
 transition: opacity var(--dur-slow);
}
.ag-minicart-overlay.is-visible { opacity: 1; pointer-events: all; }

/* ============================================================
 TRUST BAR
 ============================================================ */
.ag-trust-bar {
 background: var(--primary);
 padding: 1rem 0;
 overflow: hidden;
}
.ag-trust-bar__inner {
 max-width: 1280px;
 margin-inline: auto;
 padding-inline: 1rem;
 display: flex;
 flex-wrap: wrap;
 justify-content: center;
 gap: 1.25rem 2rem;
}
@media (min-width: 768px) { .ag-trust-bar__inner { justify-content: space-between; } }
.ag-trust-item {
 display: flex;
 align-items: center;
 gap: 0.5rem;
 color: var(--primary-fg);
 font-size: 0.8125rem;
 font-weight: 500;
}
.ag-trust-item svg { color: var(--ag-gold); width: 16px; height: 16px; flex-shrink: 0; }

/* ============================================================
 HERO BANNER
 ============================================================ */
.ag-hero {
 position: relative;
 min-height: 100svh;
 display: flex;
 align-items: center;
 overflow: hidden;
 background: var(--ag-navy);
}
.ag-hero__bg {
 position: absolute;
 inset: 0;
}
.ag-hero__bg img {
 width: 100%; height: 100%;
 object-fit: cover;
 object-position: center top;
}
.ag-hero__overlay {
 position: absolute;
 inset: 0;
 background: linear-gradient(105deg,
 rgba(15,23,42,.85) 0%,
 rgba(15,23,42,.55) 55%,
 rgba(15,23,42,.1) 100%);
}
.ag-hero__content {
 position: relative;
 z-index: 2;
 max-width: 1280px;
 margin-inline: auto;
 padding-inline: 1rem;
 padding-block: 8rem 4rem;
 display: grid;
 align-items: center;
 gap: 3rem;
}
@media (min-width: 768px) {
 .ag-hero__content {
 padding-inline: 2rem;
 grid-template-columns: 1fr auto;
 }
}
.ag-hero__badge {
 display: inline-flex;
 align-items: center;
 gap: 0.5rem;
 border: 1px solid rgba(255,255,255,.25);
 border-radius: var(--radius-full);
 padding: 0.375rem 1rem;
 color: rgba(255,255,255,.85);
 font-size: 0.75rem;
 font-weight: 600;
 letter-spacing: 0.1em;
 text-transform: uppercase;
 margin-bottom: 1.5rem;
 backdrop-filter: blur(8px);
 background: rgba(255,255,255,.08);
}
.ag-hero__title {
 font-family: var(--font-serif);
 font-size: clamp(2.5rem, 6vw, 5rem);
 font-weight: 700;
 color: #fff;
 line-height: 1.08;
 margin-bottom: 1.25rem;
}
.ag-hero__title em {
 font-style: normal;
 color: var(--ag-gold);
}
.ag-hero__desc {
 font-size: 1.125rem;
 color: rgba(255,255,255,.65);
 max-width: 36rem;
 line-height: 1.7;
 margin-bottom: 2rem;
}
.ag-hero__actions { display: flex; flex-wrap: wrap; gap: 0.75rem; margin-bottom: 2.5rem; }
.ag-hero__avatars {
 display: flex;
 align-items: center;
 gap: 0.75rem;
}
.ag-hero__avatar-group { display: flex; }
.ag-hero__avatar {
 width: 2rem; height: 2rem;
 border-radius: var(--radius-full);
 border: 2px solid var(--ag-gold);
 margin-left: -0.5rem;
 font-size: 0.625rem;
 font-weight: 700;
 color: #fff;
 display: flex;
 align-items: center;
 justify-content: center;
}
.ag-hero__avatar:first-child { margin-left: 0; }
.ag-hero__rating-text { font-size: 0.8125rem; color: rgba(255,255,255,.7); }
.ag-hero__rating-text strong { color: #fff; }

/* Passport image */
.ag-hero__passport {
 position: relative;
 display: none;
}
@media (min-width: 768px) { .ag-hero__passport { display: block; } }
.ag-hero__passport img {
 width: 320px;
 border-radius: var(--radius-2xl);
 box-shadow: var(--shadow-xl);
 animation: ag-float 5s ease-in-out infinite;
}
.ag-hero__rfid-badge {
 position: absolute;
 top: -12px; right: -12px;
 background: var(--ag-gold);
 color: #000;
 font-size: 0.625rem;
 font-weight: 900;
 letter-spacing: 0.08em;
 text-transform: uppercase;
 padding: 0.4rem 0.75rem;
 border-radius: var(--radius-full);
 box-shadow: 0 4px 12px rgba(0,0,0,.25);
 animation: ag-pulse 2.5s ease-in-out infinite;
}

/* ============================================================
 BREADCRUMB HEADER (ag_breadcrumbs_header)
 Premium hero-style breadcrumb matching Jamila reference design.
 ============================================================ */
.ag-breadcrumb-header {
 position: relative;
 background: var(--ag-navy, #0f172a);
 padding: 7rem 0 3rem;
 text-align: center;
 overflow: hidden;
}
.ag-breadcrumb-header__bg {
 position: absolute;
 inset: 0;
 opacity: 0.05;
 background-image: url('data:image/svg+xml,%3Csvg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1000 600"%3E%3Ccircle cx="200" cy="100" r="300" fill="%23D4AF37" opacity="0.3"/%3E%3Ccircle cx="800" cy="500" r="200" fill="%23fff" opacity="0.1"/%3E%3C/svg%3E');
 background-size: cover;
 background-position: center;
}
.ag-breadcrumb-header__glow {
 position: absolute;
 border-radius: 50%;
 pointer-events: none;
}
.ag-breadcrumb-header__glow--top-right {
 top: 0;
 right: 0;
 width: 24rem;
 height: 24rem;
 background: radial-gradient(circle, rgba(212,175,55,0.08) 0%, transparent 70%);
 transform: translate(30%, -50%);
}
.ag-breadcrumb-header__glow--bottom-left {
 bottom: 0;
 left: 0;
 width: 16rem;
 height: 16rem;
 background: radial-gradient(circle, rgba(255,255,255,0.04) 0%, transparent 70%);
 transform: translate(-30%, 50%);
}
.ag-breadcrumb-header__inner {
 position: relative;
 z-index: 2;
 max-width: 1280px;
 margin-inline: auto;
 padding-inline: 1rem;
}
.ag-breadcrumb-nav {
 display: flex;
 justify-content: center;
 align-items: center;
 margin-bottom: 1rem;
}
.ag-breadcrumb-nav ol {
 display: inline-flex;
 align-items: center;
 gap: 0.5rem;
 list-style: none;
 margin: 0;
 padding: 0;
 font-size: 0.8125rem;
 font-weight: 600;
 letter-spacing: 0.1em;
 text-transform: uppercase;
}
.ag-breadcrumb-nav a {
 color: var(--ag-gold, #D4AF37) !important;
 text-decoration: none;
 display: inline-flex;
 align-items: center;
 gap: 0.375rem;
 transition: color 0.2s ease;
}
.ag-breadcrumb-nav a:hover {
 color: #ffffff !important;
}
.ag-breadcrumb-nav li {
 display: inline-flex;
 align-items: center;
}

/* Universal Global Breadcrumb Bar */
.ag-global-breadcrumb-nav {
 position: relative;
 z-index: 10;
 background: var(--ag-navy, #0f172a);
 border-bottom: 1px solid rgba(255, 255, 255, 0.08);
 padding: 4.75rem 0 0.875rem;
}
.ag-global-breadcrumb-container {
 max-width: 1280px;
 margin: 0 auto;
 padding: 0 1rem;
}
.ag-global-breadcrumb-list {
 display: flex;
 align-items: center;
 flex-wrap: wrap;
 gap: 0.5rem;
 margin: 0;
 padding: 0;
 list-style: none;
 font-size: 0.8125rem;
 font-weight: 600;
 letter-spacing: 0.05em;
 text-transform: uppercase;
}
.ag-global-breadcrumb-item {
 display: inline-flex;
 align-items: center;
 gap: 0.375rem;
}
.ag-breadcrumb-link {
 color: var(--ag-gold, #D4AF37) !important;
 text-decoration: none;
 transition: color 0.2s ease;
}
.ag-breadcrumb-link:hover {
 color: #ffffff !important;
 text-decoration: underline;
}
.ag-breadcrumb-sep {
 color: rgba(255, 255, 255, 0.4);
 font-weight: normal;
 margin-inline: 0.125rem;
}
.ag-breadcrumb-current {
 color: #ffffff;
 font-weight: 700;
}

/* Product Breadcrumb Styling */
.woocommerce-breadcrumb {
 display: flex;
 align-items: center;
 flex-wrap: wrap;
 gap: 0.375rem;
 font-size: 0.8125rem;
 font-weight: 600;
 letter-spacing: 0.05em;
 text-transform: uppercase;
 color: var(--foreground);
}
.woocommerce-breadcrumb a {
 color: var(--ag-gold, #D4AF37) !important;
 text-decoration: none;
 transition: color 0.2s ease;
}
.woocommerce-breadcrumb a:hover {
 color: var(--primary) !important;
 text-decoration: underline;
}
@media (min-width: 768px) {
 .ag-breadcrumb-header {
 padding: 9rem 0 4.5rem;
 }
 .ag-breadcrumb-header__inner {
 padding-inline: 2rem;
 }
}
.ag-breadcrumb-header__eyebrow {
 color: var(--ag-gold);
 font-size: 0.75rem;
 font-weight: 700;
 letter-spacing: 0.25em;
 text-transform: uppercase;
 margin-bottom: 0.75rem;
}
.ag-breadcrumb-header__title {
 font-family: var(--font-serif);
 font-size: clamp(2rem, 5vw, 3.5rem);
 font-weight: 700;
 color: #fff;
 line-height: 1.15;
 margin: 0;
}
.ag-breadcrumb-header__desc {
 color: rgba(255,255,255,.55);
 font-size: 1.0625rem;
 max-width: 36rem;
 margin: 0.75rem auto 0;
 line-height: 1.6;
}

/* ============================================================
 BUTTONS
 ============================================================ */
.ag-btn {
 display: inline-flex;
 align-items: center;
 gap: 0.5rem;
 font-weight: 600;
 padding: 0.875rem 1.75rem;
 border-radius: var(--radius-full);
 font-size: 0.9375rem;
 transition: all var(--dur-base) var(--ease-out);
 cursor: pointer;
 border: 2px solid transparent;
 line-height: 1;
 white-space: nowrap;
}
.ag-btn-primary {
 background: var(--ag-gold);
 color: #000;
 border-color: var(--ag-gold);
 box-shadow: 0 4px 14px rgba(212, 175, 55, 0.3);
}
.ag-btn-primary:hover { 
 background: var(--ag-gold-light); 
 border-color: var(--ag-gold-light); 
 transform: translateY(-2px); 
 box-shadow: 0 6px 20px rgba(212, 175, 55, 0.4);
}
.ag-btn-primary:active {
 transform: translateY(0);
 box-shadow: 0 2px 8px rgba(212, 175, 55, 0.3);
}
.ag-btn-outline {
 background: transparent;
 color: #fff;
 border-color: rgba(255,255,255,.4);
}
.ag-btn-outline:hover { 
 background: rgba(255,255,255,.1); 
 border-color: rgba(255,255,255,.7); 
 transform: translateY(-1px);
}
.ag-btn-outline:active {
 transform: translateY(0);
}
.ag-btn-dark {
 background: var(--primary);
 color: var(--primary-fg);
 border-color: #000;
 box-shadow: 0 4px 14px rgba(0, 0, 0, 0.15);
}
.ag-btn-dark:hover { 
 opacity: 0.9; 
 transform: translateY(-2px); 
 box-shadow: 0 6px 20px rgba(0, 0, 0, 0.2);
}
.ag-btn-dark:active {
 transform: translateY(0);
 box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);
}

/* ============================================================
 PRODUCT CARD
 ============================================================ */
.ag-product-grid {
 display: grid;
 grid-template-columns: repeat(2, 1fr);
 gap: 1rem;
}
@media (min-width: 768px) { .ag-product-grid { grid-template-columns: repeat(3, 1fr); gap: 1.5rem; } }
@media (min-width: 1024px) { .ag-product-grid { grid-template-columns: repeat(4, 1fr); } }

.ag-product-card {
 background: var(--surface);
 border-radius: var(--radius-xl);
 overflow: hidden;
 border: 1px solid var(--border);
 display: flex;
 flex-direction: column;
 transition: box-shadow var(--dur-base) var(--ease-out),
 transform var(--dur-base) var(--ease-out);
}
.ag-product-card:hover {
 box-shadow: var(--shadow-lg);
 transform: translateY(-2px);
}
.ag-product-card__img-wrap {
 aspect-ratio: 4/3;
 overflow: hidden;
 background: var(--muted);
 position: relative;
}
.ag-product-card__img-wrap img {
 width: 100%; height: 100%;
 object-fit: cover;
 transition: transform var(--dur-xslow) var(--ease-out);
}
.ag-product-card:hover .ag-product-card__img-wrap img { transform: scale(1.08); }

.ag-product-card__badge {
 position: absolute;
 top: 0.75rem; left: 0.75rem;
 z-index: 2;
 font-size: 0.6875rem;
 font-weight: 700;
 padding: 0.25rem 0.625rem;
 border-radius: var(--radius-full);
 line-height: 1.4;
}
.ag-product-card__body { padding: 1rem; flex: 1; display: flex; flex-direction: column; }
.ag-product-card__name {
 font-family: var(--font-serif);
 font-weight: 600;
 font-size: 1rem;
 color: var(--foreground);
 margin-bottom: 0.25rem;
}
.ag-product-card__tagline { font-size: 0.75rem; color: var(--muted-fg); margin-bottom: 0.5rem; }
.ag-product-card__stars { display: flex; align-items: center; gap: 0.25rem; margin-bottom: 0.75rem; }
.ag-product-card__stars svg { width: 0.75rem; height: 0.75rem; }
.ag-product-card__stars .count { font-size: 0.6875rem; color: var(--muted-fg); margin-left: 0.25rem; }
.ag-product-card__pricing { display: flex; align-items: baseline; gap: 0.5rem; margin-bottom: 0.75rem; }
.ag-product-card__price { font-weight: 700; font-size: 1.125rem; color: var(--foreground); }
.ag-product-card__original { font-size: 0.875rem; color: var(--muted-fg); text-decoration: line-through; }
.ag-product-card__atc {
 margin-top: auto;
 width: 100%;
 padding: 0.625rem 0.875rem;
 background: var(--primary);
 color: var(--primary-fg);
 font-weight: 600;
 font-size: 0.875rem;
 border-radius: var(--radius-lg);
 border: 2px solid #000;
 display: flex;
 align-items: center;
 justify-content: center;
 gap: 0.375rem;
 transition: all var(--dur-base) var(--ease-out);
 box-shadow: 0 4px 14px rgba(0, 0, 0, 0.15);
 cursor: pointer;
 text-decoration: none;
}
.ag-product-card__atc:hover { 
 opacity: 0.9; 
 transform: translateY(-2px);
 box-shadow: 0 6px 20px rgba(0, 0, 0, 0.2);
}
.ag-product-card__atc:active {
 transform: translateY(0);
 box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);
}
.ag-product-card__atc.loading { opacity: 0.6; pointer-events: none; cursor: not-allowed; }

/* ============================================================
 SECTION HEADERS
 ============================================================ */
.ag-section-eyebrow {
 display: flex;
 align-items: center;
 gap: 0.75rem;
 color: var(--ag-gold);
 font-size: 0.75rem;
 font-weight: 700;
 letter-spacing: 0.2em;
 text-transform: uppercase;
 margin-bottom: 1rem;
}
.ag-section-eyebrow::before {
 content: '';
 display: inline-block;
 width: 2rem; height: 2px;
 background: var(--ag-gold);
 flex-shrink: 0;
}
.ag-section-title {
 font-family: var(--font-serif);
 font-size: clamp(1.875rem, 4vw, 3rem);
 font-weight: 700;
 color: var(--foreground);
 line-height: 1.15;
 margin-bottom: 1rem;
}
.ag-section-title em { font-style: normal; color: var(--primary); }
.ag-section-desc { color: var(--muted-fg); font-size: 1.0625rem; max-width: 38rem; line-height: 1.7; }

/* ============================================================
 DARK SECTION HEADER (white text on dark bg)
 ============================================================ */
.ag-dark-eyebrow {
 color: var(--ag-gold);
}
.ag-dark-eyebrow::before { background: var(--ag-gold); }
.ag-dark-title { color: #fff; }
.ag-dark-desc { color: rgba(255,255,255,.6); }

/* ============================================================
 PAGE HERO (for sub-pages)
 ============================================================ */
.ag-page-hero {
 background: var(--ag-navy);
 padding: 7rem 0 3.5rem;
}
@media (min-width: 768px) { .ag-page-hero { padding: 9rem 0 4.5rem; } }
.ag-page-hero .ag-section-eyebrow { color: var(--ag-gold); }
.ag-page-hero .ag-section-eyebrow::before { background: var(--ag-gold); }
.ag-page-hero .ag-section-title { color: #fff; }
.ag-page-hero .ag-section-desc { color: rgba(255,255,255,.6); }

/* ============================================================
 FOOTER
 ============================================================ */
.ag-footer {
 background: var(--ag-navy-dark);
 color: #fff;
}
.ag-footer__main {
 max-width: 1280px;
 margin-inline: auto;
 padding: 4rem 1rem;
 display: grid;
 grid-template-columns: 1fr 1fr;
 gap: 2.5rem 2rem;
}
@media (min-width: 768px) {
 .ag-footer__main {
 padding: 5rem 2rem;
 grid-template-columns: 2fr 1fr 1fr 1fr;
 }
}
.ag-footer__brand { grid-column: 1 / -1; }
@media (min-width: 768px) { .ag-footer__brand { grid-column: auto; } }
.ag-footer__logo-name { font-family: var(--font-serif); font-size: 1.5rem; font-weight: 700; }
.ag-footer__logo-sub { font-size: 0.6875rem; letter-spacing: 0.3em; text-transform: uppercase; color: var(--ag-gold); margin-top: 0.1rem; }
.ag-footer__desc { color: rgba(255,255,255,.5); font-size: 0.875rem; line-height: 1.7; max-width: 18rem; margin-top: 1.25rem; }
.ag-footer__contact { margin-top: 1rem; display: flex; flex-direction: column; gap: 0.5rem; }
.ag-footer__contact-row { display: flex; align-items: center; gap: 0.5rem; color: rgba(255,255,255,.45); font-size: 0.875rem; }
.ag-footer__contact-row a:hover { color: #fff; transition: color var(--dur-fast); }
.ag-footer__contact-row svg { width: 14px; height: 14px; flex-shrink: 0; }
.ag-footer__socials { display: flex; gap: 0.75rem; margin-top: 1.25rem; }
.ag-footer__social-btn {
 width: 2.25rem; height: 2.25rem;
 border-radius: var(--radius-full);
 background: rgba(255,255,255,.08);
 display: flex; align-items: center; justify-content: center;
 transition: background var(--dur-fast);
}
.ag-footer__social-btn:hover { background: rgba(212,175,55,.2); }
.ag-footer__social-btn svg { width: 1rem; height: 1rem; }
.ag-footer__col-title {
 font-size: 0.75rem;
 font-weight: 600;
 letter-spacing: 0.1em;
 text-transform: uppercase;
 color: rgba(255,255,255,.7);
 margin-bottom: 1rem;
}
.ag-footer__link {
 display: block;
 color: rgba(255,255,255,.45);
 font-size: 0.875rem;
 padding-block: 0.25rem;
 transition: color var(--dur-fast);
}
.ag-footer__link:hover { color: #fff; }
.ag-footer__link + .ag-footer__link { margin-top: 0.5rem; }
.ag-footer__bottom {
 border-top: 1px solid rgba(255,255,255,.08);
}
.ag-footer__bottom-inner {
 max-width: 1280px;
 margin-inline: auto;
 padding: 1.25rem 1rem;
 display: flex;
 flex-wrap: wrap;
 align-items: center;
 justify-content: space-between;
 gap: 0.75rem;
 font-size: 0.8125rem;
 color: rgba(255,255,255,.35);
}
@media (min-width: 768px) { .ag-footer__bottom-inner { padding-inline: 2rem; } }
.ag-footer__payment-badges { display: flex; align-items: center; gap: 0.5rem; }
.ag-footer__badge {
 font-size: 0.6875rem;
 background: rgba(255,255,255,.08);
 padding: 0.2rem 0.5rem;
 border-radius: 0.25rem;
 color: rgba(255,255,255,.5);
}

/* Carousel header layout + view-all link */
.carousel-header {
 display: flex;
 flex-wrap: wrap;
 align-items: flex-end;
 justify-content: space-between;
 gap: 1rem;
 margin-bottom: 2.5rem;
}
@media (min-width: 768px) {
 .carousel-header { flex-wrap: nowrap; }
}
.carousel-header > div {
 min-width: 0;
 flex: 1 1 auto;
}
.carousel-view-all {
 display: inline-flex;
 align-items: center;
 gap: 0.375rem;
 font-weight: 600;
 font-size: 0.875rem;
 color: var(--primary);
 transition: gap var(--dur-fast), color var(--dur-fast);
 white-space: nowrap;
 flex-shrink: 0;
 margin-left: auto;
 text-decoration: none;
}
.carousel-view-all:hover {
 gap: 0.625rem;
 color: var(--foreground);
}

/* Force view-all link to stay on the right on wider screens */
@media (min-width: 640px) {
 .carousel-header {
 flex-wrap: nowrap;
 }
 .carousel-header > div {
 max-width: 75%;
 flex: 1 1 auto;
 }
 .carousel-view-all {
 margin-left: auto;
 align-self: flex-end;
 }
}
@media (min-width: 768px) {
 .carousel-header > div {
 max-width: 75%;
 }
}

/* ============================================================
 ANIMATIONS
 ============================================================ */
@keyframes ag-float {
 0%, 100% { transform: translateY(0); }
 50% { transform: translateY(-12px); }
}
@keyframes ag-pulse {
 0%, 100% { transform: scale(1); }
 50% { transform: scale(1.05); }
}
@keyframes ag-fade-up {
 from { opacity: 0; transform: translateY(24px); }
 to { opacity: 1; transform: translateY(0); }
}
@keyframes ag-fade-in {
 from { opacity: 0; }
 to { opacity: 1; }
}

/* IntersectionObserver driven animations */
.ag-reveal {
 opacity: 0;
 transform: translateY(20px);
 transition: opacity var(--dur-slow) var(--ease-out),
 transform var(--dur-slow) var(--ease-out);
}
.ag-reveal.is-visible {
 opacity: 1;
 transform: translateY(0);
}
.ag-reveal-delay-1 { transition-delay: 80ms; }
.ag-reveal-delay-2 { transition-delay: 160ms; }
.ag-reveal-delay-3 { transition-delay: 240ms; }
.ag-reveal-delay-4 { transition-delay: 320ms; }

/* ============================================================
 SHOP FILTERS
 ============================================================ */
.ag-filter-bar {
 display: flex;
 flex-wrap: wrap;
 align-items: center;
 justify-content: space-between;
 gap: 1rem;
 margin-bottom: 2.5rem;
}
.ag-filter-pills { display: flex; flex-wrap: wrap; gap: 0.5rem; }
.ag-filter-pill {
 padding: 0.4375rem 1rem;
 border-radius: var(--radius-full);
 font-size: 0.8125rem;
 font-weight: 500;
 background: var(--muted);
 color: rgba(var(--foreground),.7);
 border: 1px solid transparent;
 transition: all var(--dur-fast);
}
.ag-filter-pill:hover { background: var(--border); }
.ag-filter-pill.is-active {
 background: var(--primary);
 color: var(--primary-fg);
 border-color: #000;
}
.ag-sort-select {
 appearance: none;
 background: var(--muted);
 border: 1px solid var(--border);
 border-radius: var(--radius-lg);
 padding: 0.5rem 2rem 0.5rem 0.875rem;
 font-size: 0.875rem;
 color: var(--foreground);
 cursor: pointer;
 background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%236b7280' stroke-width='2.5'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
 background-repeat: no-repeat;
 background-position: right 0.625rem center;
}

/* ============================================================
 BLOG
 ============================================================ */
.ag-post-card {
 background: var(--surface);
 border: 1px solid var(--border);
 border-radius: var(--radius-xl);
 overflow: hidden;
 transition: box-shadow var(--dur-base), transform var(--dur-base);
}
.ag-post-card:hover { box-shadow: var(--shadow-md); transform: translateY(-2px); }
.ag-post-card__img { aspect-ratio: 16/9; overflow: hidden; background: var(--muted); }
.ag-post-card__img img { width: 100%; height: 100%; object-fit: cover; transition: transform var(--dur-xslow); }
.ag-post-card:hover .ag-post-card__img img { transform: scale(1.06); }
.ag-post-card__body { padding: 1.25rem; }
.ag-post-card__cat {
 font-size: 0.6875rem;
 font-weight: 700;
 letter-spacing: 0.1em;
 text-transform: uppercase;
 color: var(--ag-gold);
 margin-bottom: 0.625rem;
}
.ag-post-card__title {
 font-family: var(--font-serif);
 font-size: 1.0625rem;
 font-weight: 700;
 color: var(--foreground);
 line-height: 1.4;
 margin-bottom: 0.625rem;
 transition: color var(--dur-fast);
}
.ag-post-card:hover .ag-post-card__title { color: var(--primary); }
.ag-post-card__excerpt { font-size: 0.875rem; color: var(--muted-fg); line-height: 1.6; margin-bottom: 1rem; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.ag-post-card__meta { display: flex; align-items: center; gap: 0.375rem; font-size: 0.75rem; color: var(--muted-fg); }

/* ============================================================
 FAQ ACCORDION
 ============================================================ */
.ag-faq-item {
 border-bottom: 1px solid var(--border);
}
.ag-faq-btn {
 width: 100%;
 text-align: left;
 padding: 1.25rem 0;
 display: flex;
 align-items: center;
 justify-content: space-between;
 gap: 1rem;
 font-weight: 600;
 font-size: 1rem;
 color: var(--foreground);
 transition: color var(--dur-fast);
}
.ag-faq-btn:hover { color: var(--primary); }
.ag-faq-icon {
 flex-shrink: 0;
 width: 1.5rem; height: 1.5rem;
 border-radius: var(--radius-full);
 background: var(--muted);
 display: flex; align-items: center; justify-content: center;
 transition: background var(--dur-fast), transform var(--dur-base) var(--ease-out);
}
.ag-faq-btn[aria-expanded="true"] .ag-faq-icon {
 background: var(--primary);
 color: var(--primary-fg);
 transform: rotate(45deg);
}
.ag-faq-body {
 overflow: hidden;
 max-height: 0;
 transition: max-height var(--dur-slow) var(--ease-out), padding var(--dur-base);
 color: var(--muted-fg);
 line-height: 1.7;
 font-size: 0.9375rem;
}
.ag-faq-body.is-open {
 max-height: 30rem;
 padding-bottom: 1.25rem;
}

/* ============================================================
 TESTIMONIALS
 ============================================================ */
.ag-testimonial-card {
 background: var(--surface);
 border: 1px solid var(--border);
 border-radius: var(--radius-xl);
 padding: 2rem;
 position: relative;
}
.ag-testimonial-card__quote {
 font-size: 0.9375rem;
 color: var(--muted-fg);
 line-height: 1.75;
 margin-bottom: 1.5rem;
 font-style: italic;
}
.ag-testimonial-card__footer { display: flex; align-items: center; gap: 0.75rem; }
.ag-testimonial-card__avatar {
 width: 2.5rem; height: 2.5rem;
 border-radius: var(--radius-full);
 display: flex; align-items: center; justify-content: center;
 font-weight: 700;
 font-size: 0.875rem;
 color: #fff;
 flex-shrink: 0;
}
.ag-testimonial-card__name { font-weight: 600; font-size: 0.875rem; }
.ag-testimonial-card__location { font-size: 0.75rem; color: var(--muted-fg); }

/* ============================================================
 WOOCOMMERCE PRODUCT GALLERY
 (Native WooCommerce gallery - flexslider + photoswipe)
 ============================================================ */
.woocommerce-product-gallery {
 position: relative;
}
.woocommerce-product-gallery--with-images {
 opacity: 1;
}
.woocommerce-product-gallery__wrapper {
 margin: 0;
 padding: 0;
}
.woocommerce-product-gallery__image {
 border-radius: 1rem;
 overflow: hidden;
}
.woocommerce-product-gallery__image img {
 width: 100%;
 height: auto;
 object-fit: cover;
}
.flex-viewport {
 border-radius: 1rem;
 overflow: hidden;
 border: 1px solid var(--border);
 background: var(--muted);
}
/* Flexslider navigation */
.flex-control-thumbs {
 display: flex;
 gap: 0.5rem;
 margin-top: 0.75rem;
 padding: 0;
 list-style: none;
 overflow-x: auto;
}
.flex-control-thumbs li {
 flex: 0 0 auto;
 width: 5rem;
 height: 5rem;
}
@media (min-width: 768px) {
 .flex-control-thumbs li {
 width: 5.5rem;
 height: 5.5rem;
 }
}
.flex-control-thumbs li img {
 width: 100%;
 height: 100%;
 object-fit: cover;
 border-radius: 0.75rem;
 border: 2px solid var(--border);
 cursor: pointer;
 opacity: 0.5;
 transition: opacity 0.2s, border-color 0.2s;
}
.flex-control-thumbs li:hover img,
.flex-control-thumbs li.flex-active img {
 opacity: 1;
 border-color: var(--ag-gold);
}
/* Flexslider direction arrows */
.flex-direction-nav {
 list-style: none;
 margin: 0;
 padding: 0;
 position: absolute;
 top: 50%;
 left: 0;
 right: 0;
 z-index: 10;
 transform: translateY(-50%);
 display: flex;
 justify-content: space-between;
 pointer-events: none;
}
.flex-direction-nav li {
 pointer-events: auto;
}
.flex-direction-nav a {
 display: flex;
 align-items: center;
 justify-content: center;
 width: 2.5rem;
 height: 2.5rem;
 background: rgba(255,255,255,0.9);
 backdrop-filter: blur(4px);
 border-radius: 9999px;
 box-shadow: 0 2px 8px rgba(0,0,0,.12);
 opacity: 0;
 transition: opacity 0.2s;
 text-indent: -9999px;
 position: relative;
}
.woocommerce-product-gallery:hover .flex-direction-nav a {
 opacity: 1;
}
.flex-direction-nav a::before {
 content: '';
 position: absolute;
 inset: 0;
 background: currentColor;
 mask-size: 1rem;
 mask-repeat: no-repeat;
 mask-position: center;
}
.flex-direction-nav a.flex-prev::before { mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M15 18l-6-6 6-6'/%3E%3C/svg%3E"); }
.flex-direction-nav a.flex-next::before { mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M9 18l6-6-6-6'/%3E%3C/svg%3E"); }
.flex-direction-nav a.flex-disabled { opacity: 0.3; cursor: default; }

/* Zoom trigger styling */
.woocommerce-product-gallery__trigger {
 position: absolute;
 top: 0.75rem;
 right: 0.75rem;
 z-index: 10;
 width: 2.5rem;
 height: 2.5rem;
 background: rgba(255,255,255,0.9);
 border-radius: 9999px;
 display: flex !important;
 align-items: center;
 justify-content: center;
 box-shadow: 0 2px 8px rgba(0,0,0,.1);
 opacity: 0;
 transition: opacity 0.2s;
}
.woocommerce-product-gallery:hover .woocommerce-product-gallery__trigger {
 opacity: 1;
}
.woocommerce-product-gallery__trigger img {
 display: none !important;
}
.woocommerce-product-gallery__trigger::before {
 display: block;
 width: 1.25rem;
 height: 1.25rem;
 content: '';
 mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='11' cy='11' r='8'/%3E%3Cpath d='M21 21l-4.35-4.35'/%3E%3C/svg%3E");
 mask-size: contain;
 mask-repeat: no-repeat;
 background: #000;
}

/* PhotoSwipe styling */
.pswp { z-index: 9999 !important; }

/* ============================================================
 FEATURED PRODUCTS CAROUSEL
 ============================================================ */
.product-carousel {
 position: relative;
 overflow: hidden;
}
.carousel-track {
 display: flex;
 flex-wrap: nowrap;
 overflow-x: auto;
 scroll-snap-type: x mandatory;
 -webkit-overflow-scrolling: touch;
 scrollbar-width: none;
 -ms-overflow-style: none;
}
.carousel-track::-webkit-scrollbar {
 display: none;
}
.carousel-slide {
 flex-shrink: 0;
 flex: 0 0 auto;
 padding: 0 0.5rem;
 box-sizing: border-box;
 scroll-snap-align: start;
}
.carousel-slide > div {
 height: 100%;
}
.carousel-slide .group.relative {
 /* Equal card heights in carousel */
 min-height: 480px;
}
@media (min-width: 640px) {
 .carousel-slide .group.relative {
 min-height: 460px;
 }
}
@media (min-width: 1024px) {
 .carousel-slide .group.relative {
 min-height: 440px;
 }
}
.carousel-slide .p-5 {
 flex: 1;
 display: flex;
 flex-direction: column;
}

/* Carousel nav wrapper below the carousel */
.carousel-nav-wrapper {
 display: flex;
 align-items: center;
 justify-content: center;
 gap: 0.75rem;
 margin-top: 2.5rem;
}

/* Nav buttons inside the wrapper */
.carousel-nav-button {
 width: 2.5rem;
 height: 2.5rem;
 border-radius: 9999px;
 border: 1px solid var(--border);
 background: var(--surface);
 display: flex;
 align-items: center;
 justify-content: center;
 color: var(--foreground);
 transition: all 0.2s;
 cursor: pointer;
 flex-shrink: 0;
}
.carousel-nav-button:hover {
 background: var(--primary);
 color: var(--primary-fg);
 border-color: var(--primary);
}

/* Dots */
.carousel-dots {
 display: flex;
 align-items: center;
 justify-content: center;
 gap: 0.5rem;
}
.carousel-dot {
 width: 0.5rem;
 height: 0.5rem;
 border-radius: 9999px;
 background: var(--border);
 border: none;
 cursor: pointer;
 transition: all 0.25s;
 padding: 0;
}
.carousel-dot.active {
 width: 1.5rem;
 background: var(--primary);
}

/* Overlay arrow buttons on the sides of the carousel */
.carousel-arrow {
 position: absolute;
 top: 50%;
 transform: translateY(-50%);
 z-index: 5;
 width: 2.5rem;
 height: 2.5rem;
 border-radius: 9999px;
 background: rgba(255,255,255,0.9);
 backdrop-filter: blur(4px);
 border: 1px solid var(--border);
 display: flex;
 align-items: center;
 justify-content: center;
 color: var(--foreground);
 cursor: pointer;
 transition: all 0.2s;
 opacity: 0;
 box-shadow: 0 2px 8px rgba(0,0,0,0.1);
}
.product-carousel:hover .carousel-arrow {
 opacity: 1;
}
.carousel-arrow:hover {
 background: var(--primary);
 color: var(--primary-fg);
 border-color: var(--primary);
}
.carousel-arrow--prev {
 left: 0.5rem;
}
.carousel-arrow--next {
 right: 0.5rem;
}

/* ============================================================
 WOOCOMMERCE PRODUCT DATA TABS
 (Native WooCommerce tabs - Description, Reviews)
 ============================================================ */
.woocommerce-tabs {
 margin-top: 1.5rem;
}
.woocommerce-tabs ul.wc-tabs {
 display: flex;
 gap: 0;
 border-bottom: 2px solid var(--border);
 padding: 0;
 margin: 0 0 2rem;
 list-style: none;
 overflow-x: auto;
}
.woocommerce-tabs ul.wc-tabs li {
 margin: 0;
}
.woocommerce-tabs ul.wc-tabs li a {
 display: block;
 padding: 0.75rem 1.5rem;
 font-weight: 600;
 font-size: 0.9rem;
 color: var(--muted-fg);
 border-bottom: 2px solid transparent;
 margin-bottom: -2px;
 transition: all 0.2s;
 text-decoration: none;
 white-space: nowrap;
}
.woocommerce-tabs ul.wc-tabs li a:hover {
 color: var(--foreground);
}
.woocommerce-tabs ul.wc-tabs li.active a {
 color: var(--foreground);
 border-bottom-color: var(--ag-gold);
}
.woocommerce-tabs .panel {
 color: var(--muted-fg);
 line-height: 1.8;
 font-size: 0.95rem;
}
.woocommerce-tabs .panel h2 {
 font-family: var(--font-serif);
 font-weight: 700;
 font-size: 1.25rem;
 color: var(--foreground);
 margin-bottom: 1rem;
}

/* Star ratings in reviews */
.woocommerce-tabs .star-rating {
 color: var(--ag-gold);
}

/* Modern review styling */
.woocommerce-Reviews {
 max-width: 100%;
}
#reviews #comments ol.commentlist {
 padding: 0;
 margin: 0;
 list-style: none;
}
#reviews #comments ol.commentlist li {
 padding: 1.5rem 0;
 border-bottom: 1px solid var(--border);
 margin: 0;
}
#reviews #comments ol.commentlist li:last-child {
 border-bottom: none;
}
#reviews #comments ol.commentlist li .comment-text {
 margin: 0;
 padding: 0;
 border: none;
}
.woocommerce-Reviews .comment_container {
 display: flex;
 gap: 1rem;
 align-items: flex-start;
}
.woocommerce-Reviews .avatar {
 width: 2.5rem;
 height: 2.5rem;
 border-radius: 9999px;
 object-fit: cover;
}
.woocommerce-Reviews .comment-text .meta {
 display: flex;
 flex-wrap: wrap;
 align-items: center;
 gap: 0.5rem;
 margin-bottom: 0.25rem;
}
.woocommerce-Reviews .comment-text .meta strong {
 font-weight: 600;
 font-size: 0.95rem;
 color: var(--foreground);
}
.woocommerce-Reviews .comment-text .meta time {
 font-size: 0.8rem;
 color: var(--muted-fg);
}
.woocommerce-Reviews .star-rating {
 float: none;
 margin: 0 0 0.5rem;
 width: 6rem;
 height: 1rem;
}
.woocommerce-Reviews .star-rating::before,
.woocommerce-Reviews .star-rating span::before {
 font-size: 0.85rem;
 letter-spacing: 2px;
 color: var(--ag-gold);
}
.woocommerce-Reviews .description {
 font-size: 0.9rem;
 line-height: 1.7;
 color: var(--muted-fg);
 margin-top: 0.5rem;
}

/* Review form styling */
#review_form_wrapper {
 margin-top: 2.5rem;
 padding-top: 2rem;
 border-top: 1px solid var(--border);
}
#review_form {
 max-width: 36rem;
}
#review_form #respond .comment-reply-title {
 font-family: var(--font-serif);
 font-weight: 700;
 font-size: 1.25rem;
 color: var(--foreground);
 margin-bottom: 1rem;
 display: block;
}
#review_form #respond .comment-form label {
 font-weight: 500;
 font-size: 0.875rem;
 color: var(--foreground);
 margin-bottom: 0.375rem;
 display: block;
}
#review_form #respond .comment-form input[type="text"],
#review_form #respond .comment-form input[type="email"],
#review_form #respond .comment-form textarea {
 width: 100%;
 padding: 0.75rem 1rem;
 border: 1px solid var(--border);
 border-radius: var(--radius-lg);
 font-size: 0.9rem;
 background: var(--bg);
 color: var(--foreground);
 transition: border-color 0.2s;
}
#review_form #respond .comment-form input:focus,
#review_form #respond .comment-form textarea:focus {
 outline: none;
 border-color: var(--primary);
 box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.1);
}
#review_form #respond .comment-form textarea {
 min-height: 120px;
 resize: vertical;
}
#review_form #respond .comment-form .comment-form-rating {
 display: flex;
 align-items: center;
 gap: 0.75rem;
 margin-bottom: 1rem;
}
#review_form #respond .comment-form .stars {
  margin: 0;
  display: inline-block;
}

/* Mobile Bottom Navigation Bar */
.ag-mobile-nav {
  display: none !important;
}
@media (max-width: 767px) {
  .ag-mobile-nav {
    position: fixed !important;
    bottom: 0 !important;
    left: 0 !important;
    right: 0 !important;
    z-index: 9999 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: space-around !important;
    background: #0f172a !important;
    border-top: 1px solid rgba(255, 255, 255, 0.1) !important;
    padding: 0.5rem 0.25rem !important;
    box-shadow: 0 -4px 12px rgba(0, 0, 0, 0.15) !important;
  }
  .ag-mobile-nav__item {
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 0.25rem !important;
    color: rgba(255, 255, 255, 0.7) !important;
    font-size: 0.6875rem !important;
    font-weight: 600 !important;
    text-decoration: none !important;
    position: relative !important;
  }
  .ag-mobile-nav__item:hover,
  .ag-mobile-nav__item:focus {
    color: #D4AF37 !important;
  }
  .ag-mobile-nav__icon,
  .ag-mobile-nav__item svg {
    width: 1.25rem !important;
    height: 1.25rem !important;
    max-width: 1.25rem !important;
    max-height: 1.25rem !important;
  }
  footer.ag-footer {
    padding-bottom: 4rem !important;
  }
}