/*
Theme Name:   Astra Child
Theme URI:    https://wpastra.com/
Description:  Custom child theme for Astra - AB DENTAIRE Modern Design
Author:       Your Name
Author URI:   https://yourwebsite.com
Template:     astra
Version:      2.0.0
License:      GNU General Public License v2 or later
License URI:  http://www.gnu.org/licenses/gpl-2.0.html
Text Domain:  astra-child
*/

/* ============================================
   CSS CUSTOM PROPERTIES (DESIGN TOKENS)
   ============================================ */
:root {
   /* Brand Colors */
   --color-primary: #3b82f6;
   --color-primary-hover: #2563eb;
   --color-primary-light: #dbeafe;
   --color-secondary: #1e3a5f;
   --color-accent: #10b981;
   --color-accent-light: #d1fae5;

   /* Neutral Colors */
   --color-white: #ffffff;
   --color-gray-50: #f9fafb;
   --color-gray-100: #f3f4f6;
   --color-gray-200: #e5e7eb;
   --color-gray-300: #d1d5db;
   --color-gray-400: #9ca3af;
   --color-gray-500: #6b7280;
   --color-gray-600: #4b5563;
   --color-gray-700: #374151;
   --color-gray-800: #1f2937;
   --color-gray-900: #111827;

   /* Semantic Colors */
   --color-success: #10b981;
   --color-warning: #f59e0b;
   --color-error: #ef4444;
   --color-info: #3b82f6;

   /* Typography */
   --font-family:
      'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
   --font-size-xs: 0.75rem;
   --font-size-sm: 0.875rem;
   --font-size-base: 1rem;
   --font-size-lg: 1.125rem;
   --font-size-xl: 1.25rem;
   --font-size-2xl: 1.5rem;
   --font-size-3xl: 1.875rem;
   --font-size-4xl: 2.25rem;
   --font-weight-normal: 400;
   --font-weight-medium: 500;
   --font-weight-semibold: 600;
   --font-weight-bold: 700;

   /* Spacing */
   --space-1: 0.25rem;
   --space-2: 0.5rem;
   --space-3: 0.75rem;
   --space-4: 1rem;
   --space-5: 1.25rem;
   --space-6: 1.5rem;
   --space-8: 2rem;
   --space-10: 2.5rem;
   --space-12: 3rem;
   --space-16: 4rem;
   --space-20: 5rem;
   --space-24: 6rem;

   /* Border Radius */
   --radius-sm: 0.375rem;
   --radius-md: 0.5rem;
   --radius-lg: 0.75rem;
   --radius-xl: 1rem;
   --radius-2xl: 1.5rem;
   --radius-full: 9999px;

   /* Shadows */
   --shadow-sm: 0 1px 2px 0 rgb(0 0 0 / 0.05);
   --shadow-md:
      0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1);
   --shadow-lg:
      0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);
   --shadow-xl:
      0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1);
   --shadow-2xl: 0 25px 50px -12px rgb(0 0 0 / 0.25);

   /* Transitions */
   --transition-fast: 150ms cubic-bezier(0.4, 0, 0.2, 1);
   --transition-base: 200ms cubic-bezier(0.4, 0, 0.2, 1);
   --transition-slow: 300ms cubic-bezier(0.4, 0, 0.2, 1);

   /* Layout */
   --container-max: 1280px;
   --container-narrow: 1024px;
   --container-wide: 1440px;

   /* Legacy Variables (for backwards compatibility) */
   --brand-navy: #1e3a5f;
   --brand-blue: #3b82f6;
   --brand-blue-hover: #2563eb;
   --brand-gray-light: #f9fafb;
   --brand-gray: #6b7280;
   --text-dark: #111827;
   --text-light: #6b7280;
   --white: #ffffff;
   --border-color: #e5e7eb;
}

/* ============================================
   BASE RESET & TYPOGRAPHY
   ============================================ */
*,
*::before,
*::after {
   box-sizing: border-box;
}

body {
   font-family: var(--font-family);
   color: var(--color-gray-800);
   line-height: 1.6;
   -webkit-font-smoothing: antialiased;
   -moz-osx-font-smoothing: grayscale;
}

/* ============================================
   UTILITY CLASSES
   ============================================ */
.container {
   width: 100%;
   max-width: var(--container-max);
   margin: 0 auto;
   padding: 0 var(--space-6);
}

.container-narrow {
   max-width: var(--container-narrow);
}

.container-wide {
   max-width: var(--container-wide);
}

/* ============================================
   ASTRA THEME OVERRIDES (Global)
   ============================================ */
.ast-container {
   max-width: var(--container-wide);
   padding-left: var(--space-6);
   padding-right: var(--space-6);
}

.ast-separate-container #primary {
   padding: 0;
   margin: 0;
}

.ast-separate-container .ast-article-post,
.ast-separate-container .ast-article-single {
   padding: 0;
}

/* ============================================
   GLOBAL BUTTON STYLES
   ============================================ */
.btn,
.button,
button.button,
a.button {
   display: inline-flex;
   align-items: center;
   justify-content: center;
   gap: var(--space-2);
   padding: var(--space-3) var(--space-6);
   font-family: var(--font-family);
   font-size: var(--font-size-sm);
   font-weight: var(--font-weight-semibold);
   line-height: 1.5;
   border-radius: var(--radius-lg);
   border: 2px solid transparent;
   cursor: pointer;
   text-decoration: none;
   transition: all var(--transition-base);
}

.btn-primary,
.button.alt,
button.button.alt {
   background: var(--color-primary);
   color: var(--color-white);
   border-color: var(--color-primary);
}

.btn-primary:hover,
.button.alt:hover {
   background: var(--color-primary-hover);
   border-color: var(--color-primary-hover);
   transform: translateY(-2px);
   box-shadow: var(--shadow-lg);
}

.btn-secondary {
   background: transparent;
   color: var(--color-primary);
   border-color: var(--color-primary);
}

.btn-secondary:hover {
   background: var(--color-primary);
   color: var(--color-white);
   border-color: var(--color-primary);
}

.btn-lg {
   padding: var(--space-4) var(--space-8);
   font-size: var(--font-size-base);
   border-radius: var(--radius-xl);
}

.btn-pill {
   border-radius: var(--radius-full);
}

/* Reusable button styles for custom components */
.ab-btn {
   display: inline-flex;
   align-items: center;
   justify-content: center;
   gap: var(--space-2);
   padding: 0.6rem 1.4rem;
   border-radius: var(--radius-full);
   font-size: 0.875rem;
   font-weight: var(--font-weight-semibold);
   text-transform: uppercase;
   letter-spacing: 0.06em;
   border: 2px solid transparent;
   transition: all var(--transition-base);
   text-decoration: none;
}

.ab-btn-primary {
   background: var(--color-primary);
   color: var(--color-white);
   border-color: var(--color-primary);
}

.ab-btn-primary:hover {
   background: var(--color-primary-hover);
   border-color: var(--color-primary-hover);
   box-shadow: var(--shadow-lg);
}

.ab-btn-secondary {
   background: transparent;
   color: var(--color-primary);
   border-color: var(--color-primary);
}

.ab-btn-secondary:hover {
   background: var(--color-primary);
   color: var(--color-white);
}

/* ============================================
   MODERN HEADER STYLES
   ============================================ */
.ab-header {
   background: var(--color-white);
   box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
   position: sticky;
   top: 0;
   z-index: 1000;
}

/* Header Top Bar */
.ab-header-top {
   display: none;
}

/* Header Main */
.ab-header-main {
   padding: var(--space-4) 0;
}

/* Body states for mobile menu and search */
body.mobile-menu-open {
   overflow: hidden;
}

body.search-modal-open {
   overflow: hidden;
}

.ab-header-main-content {
   display: flex;
   align-items: center;
   justify-content: space-between;
   gap: var(--space-6);
}

.ab-header-logo {
   flex-shrink: 0;
}

.ab-header-logo img {
   max-height: 50px;
   width: auto;
   border-radius: var(--radius-lg);
}

.ab-site-title {
   font-size: var(--font-size-2xl);
   font-weight: var(--font-weight-bold);
   color: var(--color-primary);
   text-decoration: none;
   transition: opacity var(--transition-fast);
}

.ab-site-title:hover {
   opacity: 0.8;
}

/* Navigation */
.ab-header-nav {
   flex: 1;
   display: none;
   justify-content: center;
}

@media (min-width: 769px) {
   .ab-header-nav {
      display: flex;
   }
}

.ab-nav-menu {
   display: flex;
   list-style: none;
   margin: 0;
   padding: 0;
   gap: var(--space-1);
}

.ab-nav-menu li {
   position: relative;
}

.ab-nav-menu a {
   display: flex;
   align-items: center;
   padding: var(--space-3) var(--space-4);
   color: var(--color-gray-700);
   text-decoration: none;
   font-weight: var(--font-weight-medium);
   font-size: var(--font-size-sm);
   border-radius: var(--radius-lg);
   transition: all var(--transition-fast);
}

.ab-nav-menu a:hover,
.ab-nav-menu .current-menu-item > a,
.ab-nav-menu .current_page_item > a {
   color: var(--color-primary);
   background: var(--color-primary-light);
}

/* Dropdown Menus */
.ab-nav-menu .sub-menu {
   position: absolute;
   top: 100%;
   left: 0;
   background: var(--color-white);
   box-shadow: var(--shadow-lg);
   border-radius: var(--radius-xl);
   min-width: 220px;
   padding: var(--space-2);
   margin-top: var(--space-2);
   list-style: none;
   opacity: 0;
   visibility: hidden;
   transform: translateY(-10px);
   transition: all var(--transition-base);
}

.ab-nav-menu li:hover > .sub-menu {
   opacity: 1;
   visibility: visible;
   transform: translateY(0);
}

.ab-nav-menu .sub-menu a {
   display: block;
   padding: var(--space-3) var(--space-4);
   width: 100%;
}

/* Header Actions */
.ab-header-actions {
   display: flex;
   align-items: center;
   gap: var(--space-4);
}

.ab-search-toggle,
.ab-cart-toggle {
   position: relative;
   display: flex;
   align-items: center;
   justify-content: center;
   width: 40px;
   height: 40px;
   background: transparent;
   border: 2px solid var(--color-primary);
   color: var(--color-primary);
   border-radius: var(--radius-lg);
   cursor: pointer;
   transition: all var(--transition-fast);
}

.ab-search-toggle i,
.ab-cart-toggle i {
   font-size: 22px;
   line-height: 1;
}

.ab-search-toggle:hover,
.ab-cart-toggle:hover {
   background: var(--color-primary);
   color: var(--color-white);
   border-color: var(--color-primary);
   transform: translateY(-2px);
   box-shadow: 0 4px 12px rgba(59, 130, 246, 0.3);
}

.ab-cart-count {
   position: absolute;
   top: -4px;
   right: -4px;
   min-width: 18px;
   height: 18px;
   display: flex;
   align-items: center;
   justify-content: center;
   background: var(--color-primary);
   color: var(--color-white);
   border-radius: var(--radius-full);
   font-size: 11px;
   font-weight: var(--font-weight-bold);
   padding: 0 4px;
}

/* Mobile Menu Toggle */
.ab-mobile-menu-toggle {
   display: none;
   flex-direction: column;
   justify-content: center;
   align-items: center;
   width: 40px;
   height: 40px;
   background: transparent;
   border: none;
   cursor: pointer;
   padding: 0;
}

.ab-hamburger {
   display: flex;
   flex-direction: column;
   gap: 5px;
   width: 24px;
}

.ab-hamburger span {
   display: block;
   height: 2px;
   width: 100%;
   background: var(--color-gray-700);
   border-radius: 2px;
   transition: all var(--transition-base);
}

.ab-mobile-menu-toggle.active .ab-hamburger span:nth-child(1) {
   transform: rotate(45deg) translate(7px, 7px);
}

.ab-mobile-menu-toggle.active .ab-hamburger span:nth-child(2) {
   opacity: 0;
}

.ab-mobile-menu-toggle.active .ab-hamburger span:nth-child(3) {
   transform: rotate(-45deg) translate(7px, -7px);
}

/* Mobile Drawer Close Button */
.ab-mobile-menu-close {
   display: none;
   align-items: center;
   justify-content: center;
   text-align: center;
   width: 100%;
   padding: 0;
   margin: 0;
   background: transparent;
   border: none;
   color: inherit;
   font-size: var(--font-size-base);
   font-weight: var(--font-weight-semibold);
   cursor: pointer;
   gap: var(--space-3);
}

.ab-mobile-menu-close-icon svg {
   width: 24px;
   height: 24px;
   stroke: currentColor;
}

/* Search Modal */
.ab-search-modal {
   position: fixed;
   top: 0;
   left: 0;
   width: 100%;
   height: 100%;
   background: rgba(0, 0, 0, 0.8);
   z-index: 9999;
   display: flex;
   align-items: flex-start;
   justify-content: center;
   padding-top: 15vh;
   opacity: 0;
   visibility: hidden;
   transition: all var(--transition-base);
}

.ab-search-modal.active {
   opacity: 1;
   visibility: visible;
}

.ab-search-modal-content {
   position: relative;
   width: 100%;
   max-width: 600px;
   padding: 0 var(--space-6);
}

.ab-search-close {
   position: absolute;
   top: -50px;
   right: var(--space-6);
   background: transparent;
   border: none;
   color: var(--color-white);
   cursor: pointer;
   padding: var(--space-2);
   transition: transform var(--transition-fast);
}

.ab-search-close:hover {
   transform: scale(1.1);
}

.ab-search-form {
   position: relative;
   width: 100%;
}

.ab-search-form input[type='search'] {
   width: 100%;
   padding: var(--space-5) var(--space-6);
   padding-right: 60px;
   font-size: var(--font-size-lg);
   border: none;
   border-radius: var(--radius-full);
   box-shadow: var(--shadow-2xl);
}

.ab-search-form input[type='search']:focus {
   outline: none;
   box-shadow:
      0 0 0 3px var(--color-primary-light),
      var(--shadow-2xl);
}

.ab-search-form button {
   position: absolute;
   right: 8px;
   top: 50%;
   transform: translateY(-50%);
   width: 44px;
   height: 44px;
   background: var(--color-primary);
   border: none;
   border-radius: var(--radius-full);
   color: var(--color-white);
   cursor: pointer;
   display: flex;
   align-items: center;
   justify-content: center;
   transition: all var(--transition-fast);
}

.ab-search-form button:hover {
   background: var(--color-primary-hover);
   transform: translateY(-50%) scale(1.05);
}

/* Container Helper */
.ab-container {
   max-width: var(--container-wide);
   margin: 0 auto;
   padding: 0 var(--space-6);
}

/* ============================================
   MODERN FOOTER STYLES
   ============================================ */
.ab-footer {
   background: var(--color-gray-900);
   color: var(--color-gray-300);
}

.ab-footer a {
   color: var(--color-gray-300);
   text-decoration: none;
   transition: color var(--transition-fast);
}

.ab-footer a:hover {
   color: var(--color-white);
}

/* Footer Main */
.ab-footer-main {
   padding: var(--space-16) 0 var(--space-12);
   border-bottom: 1px solid var(--color-gray-800);
}

.ab-footer-grid {
   display: grid;
   grid-template-columns: repeat(4, 1fr);
   gap: var(--space-10);
}

.ab-footer-column {
   display: flex;
   flex-direction: column;
   gap: var(--space-4);
}

.ab-footer-title {
   font-size: var(--font-size-lg);
   font-weight: var(--font-weight-bold);
   color: var(--color-white);
   margin: 0 0 var(--space-4);
}

.ab-footer-desc {
   font-size: var(--font-size-sm);
   line-height: 1.7;
   color: var(--color-gray-400);
   margin: 0;
}

/* Footer Social */
.ab-footer-social {
   display: flex;
   gap: var(--space-3);
   margin-top: var(--space-4);
}

.ab-footer-social a {
   display: flex;
   align-items: center;
   justify-content: center;
   width: 38px;
   height: 38px;
   background: var(--color-gray-800);
   border-radius: var(--radius-lg);
   transition: all var(--transition-fast);
}

.ab-footer-social a:hover {
   background: var(--color-primary);
   transform: translateY(-2px);
}

/* Footer Menu */
.ab-footer-menu {
   margin: 0;
}

.ab-footer-menu ul {
   list-style: none;
   margin: 0;
   padding: 0;
   display: flex;
   flex-direction: column;
   gap: var(--space-3);
}

.ab-footer-menu a {
   display: inline-block;
   font-size: var(--font-size-sm);
   padding: var(--space-1) 0;
}

/* Footer Contact */
.ab-footer-contact {
   display: flex;
   flex-direction: column;
   gap: var(--space-4);
}

.ab-contact-item {
   display: flex;
   align-items: flex-start;
   gap: var(--space-3);
   font-size: var(--font-size-sm);
}

.ab-contact-item svg {
   flex-shrink: 0;
   margin-top: 2px;
   color: var(--color-primary);
}

/* Footer Bottom */
.ab-footer-bottom {
   padding: var(--space-6) 0;
   background: var(--color-gray-950, #000);
}

.ab-footer-bottom-content {
   display: flex;
   justify-content: space-between;
   align-items: center;
   gap: var(--space-6);
}

.ab-copyright p {
   margin: 0;
   font-size: var(--font-size-sm);
   color: var(--color-gray-400);
}

.ab-footer-payment {
   display: flex;
   align-items: center;
   gap: var(--space-4);
   font-size: var(--font-size-sm);
}

.ab-payment-icons {
   display: flex;
   gap: var(--space-2);
}

/* ============================================
   GLOBAL FORM STYLES
   ============================================ */
input[type='text'],
input[type='email'],
input[type='tel'],
input[type='number'],
input[type='password'],
input[type='search'],
select,
textarea {
   width: 100%;
   padding: var(--space-3) var(--space-4);
   font-family: var(--font-family);
   font-size: var(--font-size-base);
   color: var(--color-gray-800);
   background: var(--color-white);
   border: 2px solid var(--color-gray-200);
   border-radius: var(--radius-lg);
   transition: all var(--transition-fast);
}

input:focus,
select:focus,
textarea:focus {
   outline: none;
   border-color: var(--color-primary);
   box-shadow: 0 0 0 3px var(--color-primary-light);
}

input::placeholder,
textarea::placeholder {
   color: var(--color-gray-400);
}

label {
   display: block;
   margin-bottom: var(--space-2);
   font-size: var(--font-size-sm);
   font-weight: var(--font-weight-medium);
   color: var(--color-gray-700);
}

/* ============================================
   HOME PAGE STYLES
   ============================================ */

/* Override Astra container for full-width home */
.abdentaire-home,
.ast-container:has(.abdentaire-home),
.ast-container:has(#primary.abdentaire-home) {
   padding-left: 0 !important;
   padding-right: 0 !important;
   max-width: 100% !important;
   margin: 0 !important;
}

.abdentaire-home .ast-container,
.abdentaire-home .ast-container-fluid {
   padding-left: 0 !important;
   padding-right: 0 !important;
   max-width: 100% !important;
}

.abdentaire-home .site-content,
.site-content:has(.abdentaire-home) {
   padding: 0 !important;
   margin: 0 !important;
}

.abdentaire-home #primary,
.abdentaire-home .site-main,
#primary.abdentaire-home,
.abdentaire-home.content-area {
   margin: 0 !important;
   padding: 0 !important;
}

.abdentaire-home .entry-content,
.abdentaire-home article {
   margin: 0 !important;
   padding: 0 !important;
}

.ast-separate-container .abdentaire-home,
.ast-page-builder-template .abdentaire-home,
.ast-plain-container .abdentaire-home {
   padding: 0 !important;
}

/* Hero Section */
.hero-banner {
   position: relative;
   background: linear-gradient(135deg, var(--color-secondary) 0%, #2d4a6f 100%);
   color: var(--color-white);
   overflow: hidden;
}

.hero-bg-pattern {
   position: absolute;
   inset: 0;
   opacity: 0.1;
   z-index: 1;
}

.pattern-circle {
   position: absolute;
   border-radius: 50%;
   filter: blur(60px);
}

.pattern-circle-1 {
   top: 80px;
   left: 40px;
   width: 288px;
   height: 288px;
   background: var(--color-primary);
}

.pattern-circle-2 {
   bottom: 80px;
   right: 40px;
   width: 384px;
   height: 384px;
   background: #60a5fa;
}

.hero-container {
   max-width: var(--container-max);
   margin: 0 auto;
   padding: var(--space-20) var(--space-6) var(--space-24);
   position: relative;
   z-index: 2;
}

.hero-grid {
   display: grid;
   grid-template-columns: 1fr 1fr;
   gap: var(--space-12);
   align-items: center;
}

.hero-content {
   display: flex;
   flex-direction: column;
   gap: var(--space-8);
}

.hero-badge {
   display: inline-flex;
   align-items: center;
   gap: var(--space-2);
   padding: var(--space-2) var(--space-4);
   background: rgba(59, 130, 246, 0.2);
   border: 1px solid rgba(59, 130, 246, 0.5);
   border-radius: var(--radius-full);
   font-size: var(--font-size-sm);
   font-weight: var(--font-weight-medium);
   color: #93c5fd;
   width: fit-content;
}

.pulse-dot {
   width: 8px;
   height: 8px;
   background: var(--color-success);
   border-radius: 50%;
   animation: pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite;
}

@keyframes pulse {
   0%,
   100% {
      opacity: 1;
   }
   50% {
      opacity: 0.5;
   }
}

.hero-title {
   font-size: clamp(2rem, 5vw, 3.5rem);
   font-weight: var(--font-weight-bold);
   line-height: 1.1;
   margin: 0;
   color: var(--color-white);
}

.hero-subtitle {
   font-size: var(--font-size-lg);
   color: var(--color-gray-300);
   max-width: 600px;
   line-height: 1.7;
   margin: 0;
}

.hero-buttons {
   display: flex;
   flex-wrap: wrap;
   gap: var(--space-4);
}

.btn-hero-primary {
   display: inline-flex;
   align-items: center;
   gap: var(--space-2);
   background: var(--color-primary);
   color: var(--color-white);
   padding: var(--space-4) var(--space-8);
   border-radius: var(--radius-full);
   font-weight: var(--font-weight-semibold);
   text-decoration: none;
   transition: all var(--transition-base);
   box-shadow: 0 10px 25px rgba(59, 130, 246, 0.3);
}

.btn-hero-primary:hover {
   background: var(--color-primary-hover);
   transform: translateY(-2px);
   box-shadow: 0 15px 35px rgba(59, 130, 246, 0.4);
}

.btn-hero-secondary {
   display: inline-flex;
   align-items: center;
   gap: var(--space-2);
   border: 2px solid rgba(255, 255, 255, 0.5);
   color: var(--color-white);
   padding: calc(var(--space-4) - 2px) var(--space-8);
   border-radius: var(--radius-full);
   font-weight: var(--font-weight-semibold);
   text-decoration: none;
   transition: all var(--transition-base);
}

.btn-hero-secondary:hover {
   background: var(--color-white);
   color: var(--color-secondary);
   border-color: var(--color-white);
}

.hero-stats {
   display: flex;
   flex-wrap: wrap;
   gap: var(--space-8);
   padding-top: var(--space-4);
}

.stat-item {
   display: flex;
   align-items: center;
   gap: var(--space-3);
}

.stat-icon {
   width: 48px;
   height: 48px;
   border-radius: 50%;
   background: rgba(255, 255, 255, 0.1);
   display: flex;
   align-items: center;
   justify-content: center;
   font-size: 20px;
}

.stat-content {
   display: flex;
   flex-direction: column;
}

.stat-number {
   font-size: var(--font-size-2xl);
   font-weight: var(--font-weight-bold);
   line-height: 1;
}

.stat-label {
   font-size: var(--font-size-sm);
   color: var(--color-gray-400);
}

/* Hero Visual */
.hero-visual {
   display: none;
   position: relative;
}

@media (min-width: 1024px) {
   .hero-visual {
      display: block;
   }
}

.visual-glow {
   position: absolute;
   inset: -16px;
   background: linear-gradient(
      135deg,
      rgba(59, 130, 246, 0.3) 0%,
      rgba(147, 197, 253, 0.2) 100%
   );
   border-radius: var(--radius-2xl);
   filter: blur(40px);
   z-index: 0;
}

.visual-card-container {
   position: relative;
   background: linear-gradient(
      135deg,
      rgba(255, 255, 255, 0.15) 0%,
      rgba(255, 255, 255, 0.08) 100%
   );
   backdrop-filter: blur(16px);
   -webkit-backdrop-filter: blur(16px);
   border-radius: var(--radius-2xl);
   padding: var(--space-8);
   border: 1px solid rgba(255, 255, 255, 0.3);
   box-shadow: 0 8px 32px rgba(0, 0, 0, 0.1);
   z-index: 1;
}

.feature-cards-grid {
   display: grid;
   grid-template-columns: repeat(2, 1fr);
   gap: var(--space-6);
}

.feature-card {
   background: rgba(255, 255, 255, 0.15);
   backdrop-filter: blur(12px);
   -webkit-backdrop-filter: blur(12px);
   border-radius: var(--radius-xl);
   padding: var(--space-6);
   border: 1px solid rgba(255, 255, 255, 0.25);
   box-shadow: 0 4px 16px rgba(0, 0, 0, 0.1);
   transition: all var(--transition-base);
}

.feature-card:hover {
   background: rgba(255, 255, 255, 0.2);
   border-color: rgba(59, 130, 246, 0.6);
   transform: translateY(-4px);
}

.feature-card-icon {
   width: 56px;
   height: 56px;
   border-radius: var(--radius-lg);
   display: flex;
   align-items: center;
   justify-content: center;
   margin-bottom: var(--space-4);
   font-size: 28px;
}

.feature-icon-blue {
   background: rgba(59, 130, 246, 0.2);
}
.feature-icon-green {
   background: rgba(34, 197, 94, 0.2);
}
.feature-icon-purple {
   background: rgba(168, 85, 247, 0.2);
}
.feature-icon-orange {
   background: rgba(249, 115, 22, 0.2);
}

.feature-card-title {
   font-size: var(--font-size-lg);
   font-weight: var(--font-weight-semibold);
   margin-bottom: var(--space-2);
   color: var(--color-white);
}

.feature-card-text {
   font-size: var(--font-size-sm);
   color: var(--color-gray-300);
   line-height: 1.5;
}

.hero-wave {
   position: absolute;
   bottom: 0;
   left: 0;
   right: 0;
   z-index: 2;
}

.hero-wave svg {
   width: 100%;
   height: 64px;
   display: block;
}

/* Section Headers */
.section-header {
   text-align: center;
   margin-bottom: var(--space-12);
}

.section-title {
   font-size: clamp(1.75rem, 4vw, 2.5rem);
   font-weight: var(--font-weight-bold);
   color: var(--color-gray-900);
   margin-bottom: var(--space-4);
}

.section-subtitle {
   font-size: var(--font-size-lg);
   color: var(--color-gray-500);
   max-width: 600px;
   margin: 0 auto;
}

/* Trust Badges */
.trust-badges {
   padding: var(--space-16) 0;
   background: var(--color-white);
}

.badges-grid {
   display: grid;
   grid-template-columns: repeat(4, 1fr);
   gap: var(--space-10);
}

.badge-item {
   text-align: center;
}

.badge-icon-wrapper {
   width: 80px;
   height: 80px;
   border-radius: var(--radius-xl);
   display: flex;
   align-items: center;
   justify-content: center;
   margin: 0 auto var(--space-5);
   font-size: 36px;
   color: var(--color-white);
}

.badges-grid .badge-item:nth-child(1) .badge-icon-wrapper {
   background: var(--color-primary);
}
.badges-grid .badge-item:nth-child(2) .badge-icon-wrapper {
   background: var(--color-success);
}
.badges-grid .badge-item:nth-child(3) .badge-icon-wrapper {
   background: #a855f7;
}
.badges-grid .badge-item:nth-child(4) .badge-icon-wrapper {
   background: #f97316;
}

.badge-item h3 {
   font-size: var(--font-size-xl);
   font-weight: var(--font-weight-bold);
   color: var(--color-gray-900);
   margin-bottom: var(--space-2);
}

.badge-item p {
   color: var(--color-gray-500);
   font-size: var(--font-size-sm);
}

/* Product Categories Section - Modern Circular Design */
.product-categories {
   padding: var(--space-20) 0;
   background: linear-gradient(180deg, #ffffff 0%, #f8fafc 100%);
}

.categories-grid {
   display: grid;
   grid-template-columns: repeat(4, 1fr);
   gap: var(--space-6);
}

.category-card {
   display: flex;
   flex-direction: column;
   align-items: center;
   text-align: center;
   padding: var(--space-6);
   background: var(--color-white);
   border-radius: var(--radius-2xl);
   text-decoration: none;
   color: inherit;
   transition: all var(--transition-base);
   border: 1px solid var(--color-gray-100);
   box-shadow: 0 2px 8px rgba(0, 0, 0, 0.04);
}

.category-card:hover {
   transform: translateY(-6px);
   box-shadow: 0 12px 24px rgba(0, 0, 0, 0.1);
   border-color: var(--color-primary-light);
}

.category-card:hover .category-thumb {
   transform: scale(1.05);
}

.category-card:hover .category-thumb img {
   transform: scale(1.1);
}

/* Circular Thumbnail */
.category-thumb {
   width: 80px;
   height: 80px;
   border-radius: var(--radius-full);
   overflow: hidden;
   margin-bottom: var(--space-4);
   display: flex;
   align-items: center;
   justify-content: center;
   transition: transform var(--transition-base);
   position: relative;
}

.category-thumb img {
   width: 100%;
   height: 100%;
   object-fit: cover;
   transition: transform var(--transition-base);
}

.category-thumb .category-icon {
   font-size: 36px;
   line-height: 1;
}

/* Category thumb background colors */
.category-card[data-index='1'] .category-thumb {
   background: linear-gradient(135deg, #dbeafe 0%, #bfdbfe 100%);
}
.category-card[data-index='2'] .category-thumb {
   background: linear-gradient(135deg, #dcfce7 0%, #bbf7d0 100%);
}
.category-card[data-index='3'] .category-thumb {
   background: linear-gradient(135deg, #f3e8ff 0%, #e9d5ff 100%);
}
.category-card[data-index='4'] .category-thumb {
   background: linear-gradient(135deg, #ffedd5 0%, #fed7aa 100%);
}
.category-card[data-index='5'] .category-thumb {
   background: linear-gradient(135deg, #fce7f3 0%, #fbcfe8 100%);
}
.category-card[data-index='6'] .category-thumb {
   background: linear-gradient(135deg, #ccfbf1 0%, #99f6e4 100%);
}
.category-card[data-index='7'] .category-thumb {
   background: linear-gradient(135deg, #fef3c7 0%, #fde68a 100%);
}
.category-card[data-index='8'] .category-thumb {
   background: linear-gradient(135deg, #e0e7ff 0%, #c7d2fe 100%);
}

/* Category Details */
.category-details {
   display: flex;
   flex-direction: column;
   gap: var(--space-1);
}

.category-details h3 {
   font-size: var(--font-size-base);
   font-weight: var(--font-weight-semibold);
   color: var(--color-gray-900);
   margin: 0;
   line-height: 1.3;
}

.category-count {
   font-size: var(--font-size-xs);
   color: var(--color-gray-500);
}

/* Outline Primary Button */
.btn-outline-primary {
   display: inline-flex;
   align-items: center;
   gap: var(--space-2);
   padding: var(--space-3) var(--space-6);
   border: 2px solid var(--color-primary);
   color: var(--color-primary);
   background: transparent;
   border-radius: var(--radius-full);
   font-weight: var(--font-weight-semibold);
   font-size: var(--font-size-sm);
   text-decoration: none;
   transition: all var(--transition-base);
}

.btn-outline-primary:hover {
   background: var(--color-primary);
   color: var(--color-white);
   transform: translateY(-2px);
   box-shadow: 0 4px 12px rgba(59, 130, 246, 0.3);
}

.btn-outline-primary svg {
   transition: transform var(--transition-base);
}

.btn-outline-primary:hover svg {
   transform: translateX(4px);
}

/* Featured Products / New Arrivals */
.featured-products,
.new-arrivals {
   padding: var(--space-20) 0;
   background: var(--color-white);
   position: relative;
}

.new-arrivals {
   background: var(--color-gray-50);
}

/* Swiper Slider */
.featured-products .swiper,
.new-arrivals .swiper {
   padding: var(--space-5) 0 var(--space-16);
   position: relative;
}

.featured-products .section-header,
.new-arrivals .section-header {
   position: relative;
   padding-right: 140px;
}

/* Swiper Navigation */
.featured-products .swiper-button-next,
.featured-products .swiper-button-prev,
.new-arrivals .swiper-button-next,
.new-arrivals .swiper-button-prev {
   width: 48px;
   height: 48px;
   background: var(--color-white);
   border: 2px solid var(--color-gray-200);
   border-radius: var(--radius-lg);
   color: var(--color-gray-600);
   transition: all var(--transition-base);
   box-shadow: var(--shadow-sm);
   position: absolute;
   top: -70px;
   margin-top: 0;
   z-index: 10;
}

.featured-products .swiper-button-prev,
.new-arrivals .swiper-button-prev {
   left: auto;
   right: 60px;
}

.featured-products .swiper-button-next,
.new-arrivals .swiper-button-next {
   right: 0;
}

.swiper-button-next:after,
.swiper-button-prev:after {
   font-size: 20px;
   font-weight: 700;
}

.swiper-button-next:hover,
.swiper-button-prev:hover {
   background: var(--color-primary);
   border-color: var(--color-primary);
   color: var(--color-white);
}

/* Swiper Pagination */
.swiper-pagination {
   bottom: 0 !important;
}

.swiper-pagination-bullet {
   width: 10px;
   height: 10px;
   background: var(--color-gray-300);
   opacity: 1;
   transition: all var(--transition-base);
}

.swiper-pagination-bullet-active {
   background: var(--color-primary);
   width: 28px;
   border-radius: var(--radius-full);
}

/* Product Card in Slider */
.swiper-slide .product-placeholder {
   background: var(--color-white);
   border-radius: var(--radius-2xl);
   overflow: hidden;
   border: 1px solid var(--color-gray-200);
   transition: all var(--transition-slow);
   height: auto;
}

.swiper-slide .product-placeholder:hover {
   transform: translateY(-8px);
   box-shadow: var(--shadow-xl);
   border-color: var(--color-primary);
}

.product-image-placeholder {
   height: 220px;
   background: var(--color-gray-100);
   display: flex;
   align-items: center;
   justify-content: center;
   color: var(--color-white);
   font-weight: var(--font-weight-semibold);
   font-size: var(--font-size-lg);
}

/* Promotional Banners */
.promotional-banners {
   padding: var(--space-16) 0;
   background: var(--color-gray-50);
}

.banners-grid {
   display: grid;
   grid-template-columns: repeat(2, 1fr);
   gap: var(--space-8);
}

.promo-banner {
   padding: var(--space-12) var(--space-10);
   border-radius: var(--radius-2xl);
   position: relative;
   overflow: hidden;
}

.promo-primary {
   background: linear-gradient(135deg, #1e40af 0%, var(--color-primary) 100%);
   color: var(--color-white);
}

.promo-secondary {
   background: linear-gradient(135deg, #059669 0%, var(--color-success) 100%);
   color: var(--color-white);
}

.promo-content {
   position: relative;
   z-index: 2;
}

.promo-tag {
   display: inline-block;
   background: rgba(255, 255, 255, 0.2);
   padding: var(--space-2) var(--space-4);
   border-radius: var(--radius-full);
   font-size: var(--font-size-xs);
   font-weight: var(--font-weight-semibold);
   margin-bottom: var(--space-4);
}

.promo-banner h3 {
   font-size: var(--font-size-3xl);
   font-weight: var(--font-weight-bold);
   margin-bottom: var(--space-3);
}

.promo-banner p {
   font-size: var(--font-size-base);
   opacity: 0.9;
   margin-bottom: var(--space-6);
}

.promo-banner .btn-light {
   background: var(--color-white);
   color: var(--color-gray-900);
   padding: var(--space-3) var(--space-6);
   border-radius: var(--radius-full);
   font-weight: var(--font-weight-semibold);
   text-decoration: none;
   display: inline-block;
   transition: all var(--transition-base);
}

.promo-banner .btn-light:hover {
   transform: translateY(-2px);
   box-shadow: var(--shadow-lg);
}

/* Section Footer */
.section-footer {
   text-align: center;
   margin-top: var(--space-10);
}

.section-footer .btn-primary,
.btn.btn-primary {
   display: inline-flex;
   align-items: center;
   gap: var(--space-2);
   background: linear-gradient(
      135deg,
      var(--color-primary),
      var(--color-primary-dark)
   );
   color: var(--color-primary) !important;
   padding: var(--space-4) var(--space-8);
   border-radius: var(--radius-full);
   font-weight: var(--font-weight-semibold);
   text-decoration: none;
   transition: all var(--transition-base);
   box-shadow: 0 4px 15px rgba(59, 130, 246, 0.3);
}

.section-footer .btn-primary:hover,
.btn.btn-primary:hover {
   transform: translateY(-2px);
   box-shadow: 0 8px 25px rgba(59, 130, 246, 0.4);
}

/* ============================================
   WHY CHOOSE US SECTION
   ============================================ */
.why-choose-us {
   padding: var(--space-20) 0;
   background: linear-gradient(180deg, #f8fafc 0%, #ffffff 100%);
}

.features-grid {
   display: grid;
   grid-template-columns: repeat(4, 1fr);
   gap: var(--space-8);
}

.feature-item {
   background: var(--color-white);
   border-radius: var(--radius-2xl);
   padding: var(--space-8);
   text-align: center;
   box-shadow: var(--shadow-md);
   border: 1px solid var(--color-gray-100);
   transition: all var(--transition-base);
}

.feature-item:hover {
   transform: translateY(-4px);
   box-shadow: var(--shadow-xl);
}

.feature-icon {
   width: 72px;
   height: 72px;
   border-radius: var(--radius-xl);
   background: linear-gradient(
      135deg,
      var(--color-primary-light),
      rgba(59, 130, 246, 0.1)
   );
   display: flex;
   align-items: center;
   justify-content: center;
   margin: 0 auto var(--space-5);
   font-size: 32px;
}

.feature-item h3 {
   font-size: var(--font-size-lg);
   font-weight: var(--font-weight-bold);
   color: var(--color-gray-900);
   margin-bottom: var(--space-3);
}

.feature-item p {
   font-size: var(--font-size-sm);
   color: var(--color-gray-500);
   line-height: 1.6;
}

/* ============================================
   TESTIMONIALS SECTION
   ============================================ */
.testimonials {
   padding: var(--space-20) 0;
   background: var(--color-white);
}

.testimonials-grid {
   display: grid;
   grid-template-columns: repeat(3, 1fr);
   gap: var(--space-8);
}

.testimonial-card {
   background: var(--color-white);
   border-radius: var(--radius-2xl);
   padding: var(--space-8);
   box-shadow: var(--shadow-md);
   border: 1px solid var(--color-gray-100);
   transition: all var(--transition-base);
   position: relative;
}

.testimonial-card::before {
   content: '"';
   position: absolute;
   top: var(--space-4);
   right: var(--space-6);
   font-size: 80px;
   font-family: Georgia, serif;
   color: var(--color-primary-light);
   line-height: 1;
   opacity: 0.5;
}

.testimonial-card:hover {
   transform: translateY(-4px);
   box-shadow: var(--shadow-xl);
}

.testimonial-rating {
   font-size: var(--font-size-lg);
   margin-bottom: var(--space-4);
   letter-spacing: 2px;
}

.testimonial-text {
   font-size: var(--font-size-base);
   color: var(--color-gray-600);
   line-height: 1.7;
   margin-bottom: var(--space-6);
   position: relative;
   z-index: 1;
}

.testimonial-author {
   display: flex;
   flex-direction: column;
   gap: var(--space-1);
   padding-top: var(--space-4);
   border-top: 1px solid var(--color-gray-100);
}

.testimonial-author strong {
   font-size: var(--font-size-base);
   font-weight: var(--font-weight-semibold);
   color: var(--color-gray-900);
}

.testimonial-author span {
   font-size: var(--font-size-sm);
   color: var(--color-gray-500);
}

/* ============================================
   CTA SECTION
   ============================================ */
/* CTA Section - White to Dark Blue Gradient Top to Bottom */
.cta-section {
   padding: var(--space-20) 0;
   background: linear-gradient(
      180deg,
      #ffffff 0%,
      #f1f5f9 20%,
      #dbeafe 40%,
      #010619 100%
   );
   /* color: var(--color-white); */
   text-align: center;
   position: relative;
   overflow: hidden;
}

.cta-section::before {
   content: '';
   position: absolute;
   top: -50%;
   right: -20%;
   width: 600px;
   height: 600px;
   background: rgba(59, 130, 246, 0.2);
   border-radius: 50%;
   filter: blur(100px);
}

.cta-section::after {
   content: '';
   position: absolute;
   bottom: -30%;
   left: -10%;
   width: 400px;
   height: 400px;
   background: rgba(99, 102, 241, 0.15);
   border-radius: 50%;
   filter: blur(80px);
}

.cta-content {
   position: relative;
   z-index: 1;
}

.cta-content h2 {
   font-size: clamp(2rem, 5vw, 3rem);
   font-weight: 800;
   margin-bottom: var(--space-4);
   text-shadow: 0 2px 10px rgba(0, 0, 0, 0.2);
   letter-spacing: -0.02em;
}

.cta-content p {
   font-size: clamp(1.1rem, 2vw, 1.35rem);
   color: rgba(255, 255, 255, 0.95);
   margin-bottom: var(--space-10);
   max-width: 600px;
   margin-left: auto;
   margin-right: auto;
   font-weight: 500;
   text-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
}

.cta-buttons {
   display: flex;
   justify-content: center;
   gap: var(--space-4);
   flex-wrap: wrap;
}

/* Big CTA Call Button */
.btn-cta-call {
   display: inline-flex;
   align-items: center;
   justify-content: center;
   gap: 12px;
   background: linear-gradient(135deg, #ffffff 0%, #f1f5f9 100%);
   color: var(--color-primary);
   padding: 20px 60px;
   min-width: 300px;
   border-radius: 999px;
   font-size: 1.25rem;
   font-weight: 700;
   text-decoration: none;
   transition: all 0.3s ease;
   box-shadow:
      0 8px 30px rgba(0, 0, 0, 0.25),
      0 0 0 4px rgba(255, 255, 255, 0.1);
   border: none;
}

.btn-cta-call:hover {
   transform: translateY(-4px) scale(1.02);
   box-shadow:
      0 15px 40px rgba(0, 0, 0, 0.3),
      0 0 0 6px rgba(255, 255, 255, 0.15);
   background: linear-gradient(135deg, #ffffff 0%, #e2e8f0 100%);
}

.btn-cta-call span {
   font-size: 1.4rem;
}

@media (max-width: 600px) {
   .btn-cta-call {
      padding: 18px 40px;
      min-width: 260px;
      font-size: 1.1rem;
   }
}

.cta-buttons .btn-light {
   display: inline-flex;
   align-items: center;
   gap: var(--space-2);
   background: var(--color-white);
   color: var(--color-gray-900);
   padding: var(--space-4) var(--space-8);
   border-radius: var(--radius-full);
   font-weight: var(--font-weight-semibold);
   text-decoration: none;
   transition: all var(--transition-base);
   box-shadow: 0 4px 15px rgba(0, 0, 0, 0.1);
}

.cta-buttons .btn-light:hover {
   transform: translateY(-2px);
   box-shadow: 0 8px 25px rgba(0, 0, 0, 0.15);
}

.cta-buttons .btn-outline {
   display: inline-flex;
   align-items: center;
   gap: var(--space-2);
   background: transparent;
   color: var(--color-white);
   padding: var(--space-4) var(--space-8);
   border-radius: var(--radius-full);
   border: 2px solid rgba(255, 255, 255, 0.5);
   font-weight: var(--font-weight-semibold);
   text-decoration: none;
   transition: all var(--transition-base);
}

.cta-buttons .btn-outline:hover {
   background: var(--color-white);
   color: var(--color-secondary);
   border-color: var(--color-white);
}

/* Newsletter Section */
.newsletter-section {
   padding: var(--space-16) 0;
   background: var(--color-gray-50);
}

/* ============================================
   WOOCOMMERCE SHOP PAGE
   ============================================ */
.ab-shop-page {
   background: var(--color-gray-50);
   min-height: 100vh;
}

/* Shop Header - Hidden since we use page banner */
.ab-shop-header {
   display: none;
}

.ab-shop-header::before {
   content: '';
   position: absolute;
   top: -50%;
   right: -10%;
   width: 400px;
   height: 400px;
   background: rgba(59, 130, 246, 0.15);
   border-radius: 50%;
   filter: blur(60px);
}

.ab-shop-header::after {
   content: '';
   position: absolute;
   bottom: -30%;
   left: -5%;
   width: 300px;
   height: 300px;
   background: rgba(255, 255, 255, 0.08);
   border-radius: 50%;
   filter: blur(40px);
}

.ab-shop-header .container {
   position: relative;
   z-index: 1;
}

.ab-shop-title {
   font-size: clamp(1.75rem, 4vw, 2.5rem);
   font-weight: var(--font-weight-bold);
   margin: 0 0 var(--space-2) 0;
   letter-spacing: -0.02em;
}

/* Shop Subtitle */
.ab-shop-subtitle {
   font-size: var(--font-size-sm);
   color: rgba(255, 255, 255, 0.7);
   margin: 0;
}

/* Shop Breadcrumb */
.ab-shop-breadcrumb {
   display: flex;
   align-items: center;
   justify-content: center;
   gap: var(--space-2);
   margin-bottom: var(--space-4);
   font-size: var(--font-size-sm);
}

.ab-shop-breadcrumb a {
   color: rgba(255, 255, 255, 0.7);
   text-decoration: none;
   transition: color var(--transition-fast);
}

.ab-shop-breadcrumb a:hover {
   color: var(--color-white);
}

.ab-shop-breadcrumb .separator {
   display: flex;
   align-items: center;
   color: rgba(255, 255, 255, 0.4);
}

.ab-shop-breadcrumb .current {
   color: var(--color-white);
   font-weight: var(--font-weight-medium);
}

.ab-shop-header .woocommerce-products-header__description {
   max-width: 600px;
   margin: 0 auto;
   color: rgba(255, 255, 255, 0.8);
   font-size: var(--font-size-base);
   line-height: 1.6;
}

/* Main Shop Container - Full Width */
.ab-shop-page > .container {
   max-width: 1240px;
   margin: 0 auto;
   padding: 0 var(--space-6);
   width: 100%;
}

.ab-shop-wrapper {
   display: grid;
   grid-template-columns: 300px minmax(0, 1fr);
   gap: var(--space-8);
   padding: var(--space-10) 0 var(--space-16);
   max-width: 1240px;
   margin: 0 auto;
   width: 100%;
}

/* Shop Sidebar - Modern & Enhanced */
.ab-shop-sidebar {
   display: flex;
   flex-direction: column;
   gap: var(--space-5);
   position: sticky;
   top: var(--space-6);
   height: fit-content;
}

.ab-filter-section,
.ab-shop-sidebar .widget,
.ab-shop-sidebar .widget_block {
   background: var(--color-white);
   border-radius: var(--radius-2xl);
   padding: var(--space-6);
   box-shadow: var(--shadow-md);
   border: 1px solid var(--color-gray-100);
   transition: box-shadow var(--transition-base);
}

.ab-filter-section:hover,
.ab-shop-sidebar .widget:hover,
.ab-shop-sidebar .widget_block:hover {
   box-shadow: var(--shadow-lg);
}

.ab-filter-title {
   display: flex;
   align-items: center;
   gap: var(--space-2);
   font-size: var(--font-size-sm);
   font-weight: var(--font-weight-bold);
   color: var(--color-gray-900);
   margin: 0 0 var(--space-4) 0;
   padding-bottom: var(--space-4);
   border-bottom: 2px solid var(--color-primary-light);
   text-transform: uppercase;
   letter-spacing: 0.5px;
}

.ab-filter-title::before {
   content: '';
   width: 4px;
   height: 16px;
   background: linear-gradient(
      180deg,
      var(--color-primary),
      var(--color-primary-dark)
   );
   border-radius: var(--radius-full);
}

.ab-filter-hint p {
   margin: 0;
   font-size: var(--font-size-xs);
   color: var(--color-gray-500);
   line-height: 1.5;
}

.ab-shop-sidebar .widget > *:first-child,
.ab-shop-sidebar .widget_block > *:first-child {
   margin-top: 0;
}

.ab-shop-sidebar .widget > *:last-child,
.ab-shop-sidebar .widget_block > *:last-child {
   margin-bottom: 0;
}

/* Category List Styles */
.ab-filter-section .product-categories,
.ab-filter-section ul {
   list-style: none;
   padding: 0;
   margin: 0;
}

.ab-filter-section .product-categories > li,
.ab-filter-section ul > li {
   margin: 0;
   padding: 0;
   border-bottom: 1px solid var(--color-gray-50);
}

.ab-filter-section .product-categories > li:last-child,
.ab-filter-section ul > li:last-child {
   border-bottom: none;
}

.ab-filter-section .product-categories > li > a,
.ab-filter-section ul li a {
   display: flex;
   justify-content: space-between;
   align-items: center;
   color: var(--color-gray-700);
   text-decoration: none;
   font-size: var(--font-size-sm);
   font-weight: var(--font-weight-medium);
   padding: var(--space-3) var(--space-3);
   margin: 0 calc(var(--space-2) * -1);
   border-radius: var(--radius-lg);
   transition: all var(--transition-fast);
}

.ab-filter-section .product-categories > li > a:hover,
.ab-filter-section ul li a:hover {
   background: var(--color-primary-light);
   color: var(--color-primary);
}

/* Active/Current Category */
.ab-filter-section .product-categories > li.current-cat > a,
.ab-filter-section .product-categories > li.current-cat-parent > a {
   background: var(--color-primary-light);
   color: var(--color-primary);
   font-weight: var(--font-weight-semibold);
}

/* Category Count Badge - Circular */
.ab-filter-section .count,
.ab-filter-section .product-categories .count {
   background: var(--color-gray-100);
   color: var(--color-gray-600);
   font-size: 11px;
   font-weight: var(--font-weight-semibold);
   min-width: 24px;
   height: 24px;
   display: inline-flex;
   align-items: center;
   justify-content: center;
   border-radius: var(--radius-full);
   padding: 0 6px;
   transition: all var(--transition-fast);
}

.ab-filter-section ul li a:hover .count,
.ab-filter-section .product-categories > li > a:hover .count {
   background: var(--color-primary);
   color: var(--color-white);
   transform: scale(1.1);
}

.ab-filter-section .product-categories > li.current-cat > a .count {
   background: var(--color-primary);
   color: var(--color-white);
}

/* Subcategories - Nested List */
.ab-filter-section .product-categories .children {
   list-style: none;
   padding: 0 0 0 var(--space-4);
   margin: 0;
   border-left: 2px solid var(--color-gray-100);
   margin-left: var(--space-3);
}

.ab-filter-section .product-categories .children li {
   border-bottom: none;
}

.ab-filter-section .product-categories .children li a {
   font-size: var(--font-size-xs);
   padding: var(--space-2) var(--space-3);
   color: var(--color-gray-500);
}

.ab-filter-section .product-categories .children li a:hover {
   color: var(--color-primary);
}

/* Price Filter Enhanced */
.ab-filter-section .widget_price_filter .price_slider_wrapper {
   padding: var(--space-4) 0 var(--space-2);
}

.ab-filter-section .widget_price_filter .ui-slider {
   background: var(--color-gray-100);
   border: none;
   height: 6px;
   border-radius: var(--radius-full);
   margin: 0 8px;
}

.ab-filter-section .widget_price_filter .ui-slider .ui-slider-range {
   background: linear-gradient(
      90deg,
      var(--color-primary),
      var(--color-primary-dark)
   );
   border-radius: var(--radius-full);
}

.ab-filter-section .widget_price_filter .ui-slider .ui-slider-handle {
   background: var(--color-white);
   border: 3px solid var(--color-primary);
   border-radius: var(--radius-full);
   width: 18px;
   height: 18px;
   top: -6px;
   cursor: grab;
   box-shadow: var(--shadow-md);
   transition:
      transform var(--transition-fast),
      box-shadow var(--transition-fast);
}

.ab-filter-section .widget_price_filter .ui-slider .ui-slider-handle:hover,
.ab-filter-section .widget_price_filter .ui-slider .ui-slider-handle:active {
   transform: scale(1.2);
   box-shadow: var(--shadow-lg);
}

.ab-filter-section .widget_price_filter .price_slider_amount {
   display: flex;
   flex-wrap: wrap;
   gap: var(--space-3);
   align-items: center;
   margin-top: var(--space-4);
   padding-top: var(--space-4);
   border-top: 1px solid var(--color-gray-100);
}

.ab-filter-section .widget_price_filter .price_slider_amount .price_label {
   flex: 1;
   font-size: var(--font-size-sm);
   color: var(--color-gray-600);
}

.ab-filter-section .widget_price_filter .price_slider_amount .price_label span {
   font-weight: var(--font-weight-semibold);
   color: var(--color-gray-900);
}

.ab-filter-section .widget_price_filter .price_slider_amount button {
   background: linear-gradient(
      135deg,
      var(--color-primary),
      var(--color-primary-dark)
   );
   color: var(--color-white);
   border: none;
   padding: var(--space-2) var(--space-4);
   border-radius: var(--radius-lg);
   font-size: var(--font-size-xs);
   font-weight: var(--font-weight-semibold);
   cursor: pointer;
   transition: all var(--transition-fast);
}

.ab-filter-section .widget_price_filter .price_slider_amount button:hover {
   transform: translateY(-1px);
   box-shadow: var(--shadow-md);
}

/* Brand logo / gallery helpers */
.ab-shop-sidebar .brand-logo-grid,
.ab-shop-sidebar .widget_media_gallery .gallery {
   display: grid;
   grid-template-columns: repeat(2, minmax(0, 1fr));
   gap: var(--space-3);
   margin: 0;
}

.ab-shop-sidebar .brand-logo-grid li,
.ab-shop-sidebar .widget_media_gallery .gallery-item {
   list-style: none;
   margin: 0;
}

.ab-shop-sidebar .brand-logo-grid img,
.ab-shop-sidebar .widget_media_gallery img {
   width: 100%;
   height: 60px;
   object-fit: contain;
   border: 1px solid var(--color-gray-100);
   border-radius: var(--radius-lg);
   padding: var(--space-3);
   background: var(--color-white);
   box-shadow: inset 0 1px 2px rgba(15, 23, 42, 0.05);
}

/* Shop Content Area */
.ab-shop-content {
   min-width: 0;
}

/* Shop Toolbar - Clean & Minimal */
.ab-shop-toolbar {
   display: flex;
   justify-content: space-between;
   align-items: center;
   margin-bottom: var(--space-6);
   padding: var(--space-3) var(--space-5);
   background: var(--color-white);
   border-radius: var(--radius-lg);
   box-shadow: var(--shadow-sm);
   border: 1px solid var(--color-gray-100);
}

.ab-results-count {
   font-size: var(--font-size-sm);
   color: var(--color-gray-500);
}

.ab-results-count .woocommerce-result-count {
   margin: 0;
}

.ab-shop-ordering {
   display: flex;
   align-items: center;
   gap: var(--space-2);
}

.ab-shop-ordering .woocommerce-ordering {
   margin: 0;
}

.ab-shop-ordering select {
   padding: var(--space-2) var(--space-8) var(--space-2) var(--space-3);
   border: 1px solid var(--color-gray-200);
   border-radius: var(--radius-md);
   font-size: var(--font-size-sm);
   color: var(--color-gray-700);
   background: var(--color-white);
   cursor: pointer;
   transition: border-color var(--transition-fast);
   appearance: none;
   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'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
   background-repeat: no-repeat;
   background-position: right 10px center;
}

.ab-shop-ordering select:focus {
   border-color: var(--color-primary);
   outline: none;
   box-shadow: 0 0 0 2px var(--color-primary-light);
}

/* ============================================
   PRODUCT GRID - MODERN CARD DESIGN
   ============================================ */
.woocommerce ul.products,
.ab-shop-content ul.products {
   display: grid !important;
   grid-template-columns: repeat(4, 1fr);
   gap: var(--space-5);
   padding: 0 !important;
   margin: 0 !important;
   list-style: none !important;
}

.ab-product-card,
.woocommerce ul.products li.product {
   background: var(--color-white);
   border-radius: var(--radius-2xl);
   overflow: hidden;
   transition: all var(--transition-slow);
   box-shadow: var(--shadow-sm);
   border: 1px solid var(--color-gray-100);
   list-style: none !important;
   margin: 0 !important;
   padding: 0 !important;
   float: none !important;
   width: 100% !important;
   max-width: 100% !important;
}

.ab-product-card:hover,
.woocommerce ul.products li.product:hover {
   transform: translateY(-4px);
   box-shadow: var(--shadow-lg);
   border-color: transparent;
}

.ab-product-card-inner {
   display: flex;
   flex-direction: column;
   height: 100%;
}

/* Product Image */
.ab-product-image {
   position: relative;
   overflow: hidden;
   background: var(--color-gray-50);
   aspect-ratio: 1;
}

.ab-product-image-link {
   display: block;
   width: 100%;
   height: 100%;
}

.ab-product-image img,
.ab-product-image .attachment-woocommerce_thumbnail {
   width: 100% !important;
   height: 100% !important;
   object-fit: cover !important;
   transition: transform 0.5s ease;
   display: block !important;
}

.ab-product-card:hover .ab-product-image img {
   transform: scale(1.08);
}

/* Sale Badge */
.ab-sale-badge {
   position: absolute;
   top: var(--space-4);
   left: var(--space-4);
   background: var(--color-error);
   color: var(--color-white);
   padding: var(--space-2) var(--space-3);
   border-radius: var(--radius-full);
   font-size: var(--font-size-xs);
   font-weight: var(--font-weight-bold);
   text-transform: uppercase;
   z-index: 5;
   box-shadow: 0 2px 8px rgba(239, 68, 68, 0.3);
}

/* Quick Actions */
.ab-product-actions {
   position: absolute;
   top: var(--space-4);
   right: var(--space-4);
   display: flex;
   flex-direction: column;
   gap: var(--space-2);
   z-index: 5;
   opacity: 0;
   transform: translateX(10px);
   transition: all var(--transition-base);
}

.ab-product-card:hover .ab-product-actions {
   opacity: 1;
   transform: translateX(0);
}

.ab-quick-view-btn {
   width: 44px;
   height: 44px;
   background: var(--color-white);
   border-radius: var(--radius-full);
   display: flex;
   align-items: center;
   justify-content: center;
   color: var(--color-gray-700);
   box-shadow: var(--shadow-md);
   transition: all var(--transition-fast);
   text-decoration: none;
}

.ab-quick-view-btn:hover {
   background: var(--color-primary);
   color: var(--color-white);
   transform: scale(1.1);
}

/* Product Info */
.ab-product-info {
   padding: var(--space-4);
   display: flex;
   flex-direction: column;
   flex-grow: 1;
   gap: var(--space-1);
}

.ab-product-category {
   font-size: var(--font-size-xs);
   color: var(--color-primary);
   font-weight: var(--font-weight-semibold);
   text-transform: uppercase;
   letter-spacing: 0.5px;
   margin-bottom: var(--space-2);
   text-decoration: none;
   display: inline-block;
   transition: color var(--transition-fast);
}

.ab-product-category:hover {
   color: var(--color-primary-hover);
}

.ab-product-title {
   font-size: var(--font-size-sm);
   font-weight: var(--font-weight-semibold);
   margin: 0;
   line-height: 1.4;
   min-height: 38px;
   display: -webkit-box;
   -webkit-line-clamp: 2;
   line-clamp: 2;
   -webkit-box-orient: vertical;
   overflow: hidden;
}

.ab-product-title a {
   color: var(--color-gray-900);
   text-decoration: none;
   transition: color var(--transition-fast);
}

.ab-product-title a:hover {
   color: var(--color-primary);
}

/* Rating */
.ab-product-rating {
   display: flex;
   align-items: center;
   gap: 2px;
   margin-bottom: 0;
   min-height: 18px;
}

.ab-product-rating .star {
   color: var(--color-gray-300);
   font-size: var(--font-size-sm);
   line-height: 1;
}

.ab-product-rating .star.filled {
   color: var(--color-warning);
}

.ab-product-rating .count {
   font-size: var(--font-size-xs);
   color: var(--color-gray-500);
   margin-left: var(--space-1);
}

/* Product Footer */
.ab-product-footer {
   display: flex;
   justify-content: space-between;
   align-items: center;
   margin-top: auto;
   padding-top: var(--space-3);
   border-top: 1px solid var(--color-gray-100);
   gap: var(--space-3);
}

.ab-product-price {
   font-size: var(--font-size-base);
   font-weight: var(--font-weight-bold);
   color: var(--color-primary);
   line-height: 1.2;
   flex: 1;
}

.ab-product-price del {
   color: var(--color-gray-400);
   font-size: var(--font-size-sm);
   font-weight: var(--font-weight-normal);
   display: block;
}

.ab-product-price ins {
   text-decoration: none;
   color: var(--color-error);
}

/* Add to Cart Button */
.ab-add-to-cart-btn {
   width: 48px !important;
   height: 48px !important;
   min-width: 48px !important;
   background: var(--color-primary) !important;
   color: var(--color-white) !important;
   border: none !important;
   border-radius: var(--radius-lg) !important;
   cursor: pointer !important;
   display: flex !important;
   align-items: center !important;
   justify-content: center !important;
   transition: all var(--transition-base) !important;
   padding: 0 !important;
   font-size: 0 !important;
   flex-shrink: 0;
   position: relative !important;
}

.ab-add-to-cart-btn svg {
   width: 24px;
   height: 24px;
   stroke: var(--color-white);
}

.ab-add-to-cart-btn:hover {
   background: var(--color-primary-hover) !important;
   transform: scale(1.05) !important;
   box-shadow: 0 3px 10px rgba(59, 130, 246, 0.35) !important;
}

.ab-add-to-cart-btn.loading::after {
   content: '';
   position: absolute;
   top: 50%;
   left: 50%;
   transform: translate(-50%, -50%);
   width: 20px;
   height: 20px;
   border: 2px solid transparent;
   border-top-color: var(--color-white);
   border-radius: 50%;
   animation: spin 0.8s linear infinite;
}

.ab-add-to-cart-btn.loading svg {
   display: none;
}

.ab-add-to-cart-btn.added {
   background: var(--color-success) !important;
}

.ab-add-to-cart-btn.added::after {
   content: '';
   position: absolute;
   top: 50%;
   left: 50%;
   width: 14px;
   height: 10px;
   border-left: 2px solid var(--color-white);
   border-bottom: 2px solid var(--color-white);
   transform: translate(-50%, -60%) rotate(-45deg);
}

.ab-add-to-cart-btn.added svg {
   display: none;
}

@keyframes spin {
   to {
      transform: translate(-50%, -50%) rotate(360deg);
   }
}

/* View Cart Button */
a.button.wc-forward,
.woocommerce a.added_to_cart {
   display: inline-flex;
   align-items: center;
   justify-content: center;
   width: 36px;
   height: 36px;
   padding: 0;
   background-color: var(--color-success);
   border: none;
   border-radius: var(--radius-lg);
   color: var(--color-white);
   font-size: 0;
   position: relative;
   transition: all var(--transition-base);
   margin-left: var(--space-2);
}

a.button.wc-forward:hover,
.woocommerce a.added_to_cart:hover {
   background-color: #059669;
   transform: scale(1.05);
}

a.button.wc-forward::before,
.woocommerce a.added_to_cart::before {
   content: '';
   display: block;
   width: 18px;
   height: 18px;
   background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2'%3E%3Ccircle cx='9' cy='21' r='1'/%3E%3Ccircle cx='20' cy='21' r='1'/%3E%3Cpath d='M1 1h4l2.68 13.39a2 2 0 0 0 2 1.61h9.72a2 2 0 0 0 2-1.61L23 6H6'/%3E%3C/svg%3E");
   background-size: contain;
   background-repeat: no-repeat;
   background-position: center;
}

/* Pagination */
.woocommerce-pagination {
   margin-top: var(--space-12);
   text-align: center;
}

.woocommerce-pagination ul {
   display: inline-flex;
   gap: var(--space-2);
   list-style: none;
   padding: 0;
   margin: 0;
}

.woocommerce-pagination ul li {
   margin: 0;
}

.woocommerce-pagination ul li a,
.woocommerce-pagination ul li span {
   display: flex;
   align-items: center;
   justify-content: center;
   width: 48px;
   height: 48px;
   border-radius: var(--radius-lg);
   background: var(--color-white);
   color: var(--color-gray-700);
   text-decoration: none;
   font-weight: var(--font-weight-semibold);
   border: 2px solid var(--color-gray-200);
   transition: all var(--transition-fast);
}

.woocommerce-pagination ul li a:hover {
   border-color: var(--color-primary);
   color: var(--color-primary);
}

.woocommerce-pagination ul li span.current {
   background: var(--color-primary);
   color: var(--color-white);
   border-color: var(--color-primary);
}

/* ============================================
   SINGLE PRODUCT PAGE
   ============================================ */
.ab-single-product {
   background: var(--color-gray-50);
   min-height: 100vh;
}

.ab-single-product .container {
   max-width: var(--container-wide);
   margin: 0 auto;
   padding: 0 var(--space-6);
   width: 100%;
}

/* Breadcrumb */
.ab-breadcrumb-wrapper {
   background: linear-gradient(135deg, #f8fafc 0%, #f1f5f9 100%);
   padding: var(--space-4) 0;
   border-bottom: 1px solid var(--color-gray-200);
}

.ab-breadcrumb-wrapper .woocommerce-breadcrumb {
   color: var(--color-gray-500);
   font-size: var(--font-size-sm);
   margin: 0;
   display: flex;
   align-items: center;
   flex-wrap: wrap;
   gap: var(--space-2);
}

.ab-breadcrumb-wrapper .woocommerce-breadcrumb a {
   color: var(--color-gray-600);
   text-decoration: none;
   transition: all var(--transition-fast);
   padding: var(--space-1) var(--space-2);
   border-radius: var(--radius-md);
   display: inline-flex;
   align-items: center;
   gap: var(--space-1);
}

.ab-breadcrumb-wrapper .woocommerce-breadcrumb a:first-child::before {
   content: '';
   display: inline-block;
   width: 14px;
   height: 14px;
   background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%236b7280' stroke-width='2'%3E%3Cpath d='M3 9l9-7 9 7v11a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z'/%3E%3Cpolyline points='9 22 9 12 15 12 15 22'/%3E%3C/svg%3E");
   background-size: contain;
   background-repeat: no-repeat;
   margin-right: var(--space-1);
}

.ab-breadcrumb-wrapper .woocommerce-breadcrumb a:hover {
   color: var(--color-primary);
   background: var(--color-white);
   box-shadow: 0 2px 4px rgba(0, 0, 0, 0.05);
}

/* Breadcrumb separator arrow */
.ab-breadcrumb-wrapper .woocommerce-breadcrumb > span:not(:last-child)::after,
.ab-breadcrumb-wrapper .woocommerce-breadcrumb > a:not(:last-child)::after {
   content: '';
   display: inline-block;
   width: 16px;
   height: 16px;
   background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%239ca3af' stroke-width='2'%3E%3Cpolyline points='9 18 15 12 9 6'/%3E%3C/svg%3E");
   background-size: contain;
   background-repeat: no-repeat;
   vertical-align: middle;
   margin-left: var(--space-2);
}

/* Product Main Layout */
.ab-product-main {
   display: grid;
   grid-template-columns: 1fr 1fr;
   gap: var(--space-12);
   padding: var(--space-10) 0;
   background: transparent;
   max-width: var(--container-wide);
   margin: 0 auto;
   align-items: start;
}

/* Product Gallery */
.ab-product-gallery {
   position: relative;
   background: var(--color-white);
   border-radius: var(--radius-2xl);
   padding: var(--space-6);
   box-shadow: var(--shadow-sm);
   border: 1px solid var(--color-gray-100);
}

.ab-sale-badge-single {
   position: absolute;
   top: var(--space-10);
   left: var(--space-10);
   background: var(--color-error);
   color: var(--color-white);
   padding: var(--space-3) var(--space-5);
   border-radius: var(--radius-full);
   font-size: var(--font-size-sm);
   font-weight: var(--font-weight-bold);
   text-transform: uppercase;
   z-index: 10;
   box-shadow: 0 4px 12px rgba(239, 68, 68, 0.3);
}

.ab-product-gallery .woocommerce-product-gallery {
   margin: 0;
   width: 100%;
   position: relative;
}

.ab-product-gallery .woocommerce-product-gallery__wrapper {
   display: block;
   margin: 0;
   padding: 0;
}

/* Main gallery image - show only one at a time */
.ab-product-gallery .woocommerce-product-gallery__image {
   width: 100%;
   margin-bottom: 0;
   padding: 20px;
   display: none;
}

/* Show only the first/active image */
.ab-product-gallery .woocommerce-product-gallery__image:first-child,
.ab-product-gallery .woocommerce-product-gallery__image.flex-active-slide {
   display: block;
}

.ab-product-gallery .woocommerce-product-gallery__image a {
   display: block;
}

.ab-product-gallery .woocommerce-product-gallery__image img {
   width: 100%;
   height: auto;
   object-fit: contain;
   border-radius: var(--radius-xl);
   display: block;
   max-height: 450px;
   margin: 0 auto;
}

/* Thumbnail navigation */
.ab-product-gallery .flex-control-thumbs {
   display: flex;
   gap: var(--space-2);
   margin-top: var(--space-4);
   padding: 0;
   list-style: none;
   flex-wrap: wrap;
   justify-content: center;
}

.ab-product-gallery .flex-control-thumbs li {
   width: 70px;
   height: 70px;
   border-radius: var(--radius-md);
   overflow: hidden;
   cursor: pointer;
   border: 2px solid var(--color-gray-200);
   transition: all var(--transition-fast);
   flex-shrink: 0;
}

.ab-product-gallery .flex-control-thumbs li:hover,
.ab-product-gallery .flex-control-thumbs li.flex-active {
   border-color: var(--color-primary);
   box-shadow: 0 0 0 2px rgba(59, 130, 246, 0.2);
}

.ab-product-gallery .flex-control-thumbs img {
   width: 100%;
   height: 100%;
   object-fit: cover;
   display: block;
}

/* Product Details */
.ab-product-details {
   display: flex;
   flex-direction: column;
   gap: var(--space-4);
}

.ab-single-category {
   margin-bottom: 0;
}

.ab-single-category a {
   color: var(--color-primary);
   font-size: var(--font-size-sm);
   font-weight: var(--font-weight-semibold);
   text-transform: uppercase;
   letter-spacing: 0.5px;
   text-decoration: none;
}

.ab-single-title {
   font-size: clamp(1.5rem, 3.5vw, 2.25rem);
   font-weight: var(--font-weight-bold);
   color: var(--color-gray-900);
   margin: 0;
   line-height: 1.3;
}

.ab-single-rating {
   margin: 0;
}

.ab-single-rating .star-rating {
   color: var(--color-warning);
   font-size: var(--font-size-lg);
}

.ab-single-price {
   margin: 0;
}

.ab-single-price .price {
   font-size: var(--font-size-2xl);
   font-weight: var(--font-weight-bold);
   color: var(--color-primary);
   display: flex;
   align-items: baseline;
   gap: var(--space-3);
   flex-wrap: wrap;
}

.ab-single-price del {
   color: var(--color-gray-400);
   font-size: var(--font-size-lg);
}

.ab-single-price ins {
   text-decoration: none;
   color: var(--color-error);
   font-size: var(--font-size-2xl);
}

.ab-single-excerpt {
   margin: 0;
   color: var(--color-gray-600);
   font-size: var(--font-size-sm);
   line-height: 1.7;
}

/* Stock Status */
.ab-stock-status {
   display: inline-flex;
   align-items: center;
   gap: var(--space-2);
   padding: var(--space-2) var(--space-4);
   border-radius: var(--radius-full);
   font-size: var(--font-size-xs);
   font-weight: var(--font-weight-semibold);
   margin: 0;
   width: fit-content;
}

.ab-stock-status.in-stock {
   background: var(--color-accent-light);
   color: #059669;
}

.ab-stock-status.out-of-stock {
   background: #fee2e2;
   color: #dc2626;
}

/* Add to Cart Form */
.ab-single-add-to-cart {
   margin: 0;
   padding-top: var(--space-4);
   border-top: 1px solid var(--color-gray-200);
}

.ab-single-add-to-cart form.cart {
   display: flex;
   gap: var(--space-3);
   align-items: stretch;
   flex-wrap: nowrap;
}

.ab-single-add-to-cart .quantity {
   display: flex;
   align-items: center;
   background: var(--color-white);
   border-radius: var(--radius-lg);
   overflow: hidden;
   border: 2px solid var(--color-gray-200);
   flex-shrink: 0;
}

.ab-single-add-to-cart .quantity input {
   width: 50px;
   text-align: center;
   border: none;
   background: transparent;
   font-size: var(--font-size-base);
   font-weight: var(--font-weight-bold);
   padding: var(--space-3) 0;
   -moz-appearance: textfield;
   color: var(--color-gray-800);
}

.ab-single-add-to-cart .quantity input::-webkit-outer-spin-button,
.ab-single-add-to-cart .quantity input::-webkit-inner-spin-button {
   -webkit-appearance: none;
   margin: 0;
}

/* Custom Quantity Buttons */
.ab-qty-btn {
   width: 44px;
   height: 44px;
   display: flex;
   align-items: center;
   justify-content: center;
   background: var(--color-gray-100);
   border: none;
   cursor: pointer;
   transition: all var(--transition-fast);
   color: var(--color-gray-600);
   font-size: 1.25rem;
   font-weight: var(--font-weight-bold);
}

.ab-qty-btn:hover {
   background: var(--color-primary);
   color: var(--color-white);
}

.ab-qty-btn:active {
   transform: scale(0.95);
}

.ab-qty-btn.ab-qty-minus {
   border-radius: var(--radius-md) 0 0 var(--radius-md);
}

.ab-qty-btn.ab-qty-plus {
   border-radius: 0 var(--radius-md) var(--radius-md) 0;
}

.ab-single-add-to-cart .single_add_to_cart_button {
   background: linear-gradient(135deg, var(--color-primary), #1e40af);
   color: var(--color-white);
   border: none;
   padding: var(--space-4) var(--space-8);
   border-radius: var(--radius-lg);
   font-size: var(--font-size-base);
   font-weight: var(--font-weight-bold);
   cursor: pointer;
   transition: all var(--transition-base);
   display: flex;
   align-items: center;
   justify-content: center;
   gap: var(--space-2);
   flex: 1;
   min-height: 48px;
   text-transform: uppercase;
   letter-spacing: 0.5px;
}

.ab-single-add-to-cart .single_add_to_cart_button:hover {
   background: linear-gradient(135deg, #1e40af, var(--color-primary));
   transform: translateY(-1px);
   box-shadow: 0 8px 20px rgba(59, 130, 246, 0.35);
}

.ab-single-add-to-cart .single_add_to_cart_button:active {
   transform: translateY(0);
   box-shadow: 0 4px 10px rgba(59, 130, 246, 0.25);
}

/* Product Meta */
.ab-product-meta {
   padding: var(--space-4) 0;
   border-top: 1px solid var(--color-gray-200);
   margin: 0;
}

.ab-product-meta .sku_wrapper,
.ab-product-meta .posted_in,
.ab-product-meta .tagged_as {
   display: flex;
   align-items: center;
   gap: var(--space-2);
   margin-bottom: var(--space-2);
   color: var(--color-gray-500);
   font-size: var(--font-size-xs);
}

.ab-product-meta .sku_wrapper:last-child,
.ab-product-meta .posted_in:last-child,
.ab-product-meta .tagged_as:last-child {
   margin-bottom: 0;
}

.ab-product-meta a {
   color: var(--color-primary);
   text-decoration: none;
   font-weight: var(--font-weight-medium);
}

/* Trust Badges */
.ab-trust-badges-single {
   display: grid;
   grid-template-columns: repeat(2, 1fr);
   gap: var(--space-3);
   padding: var(--space-4);
   background: var(--color-gray-50);
   border-radius: var(--radius-lg);
   margin: 0;
}

.ab-trust-item {
   display: flex;
   align-items: center;
   gap: var(--space-2);
   color: var(--color-gray-600);
   font-size: var(--font-size-xs);
}

.ab-trust-item svg {
   color: var(--color-primary);
   flex-shrink: 0;
   width: 16px;
   height: 16px;
}

/* Product Tabs */
.ab-product-tabs {
   background: var(--color-white);
   border-radius: var(--radius-2xl);
   padding: var(--space-10);
   margin-bottom: var(--space-12);
   box-shadow: var(--shadow-sm);
   max-width: var(--container-wide);
   margin-left: auto;
   margin-right: auto;
}

.ab-product-tabs .woocommerce-tabs {
   margin: 0;
}

.ab-product-tabs .tabs {
   display: flex;
   gap: var(--space-8);
   border-bottom: 2px solid var(--color-gray-200);
   margin-bottom: var(--space-8);
   padding: 0;
   list-style: none;
}

.ab-product-tabs .tabs li {
   margin: 0;
   padding: 0;
   background: transparent;
   border: none;
}

.ab-product-tabs .tabs li a {
   display: block;
   padding: var(--space-4) 0;
   color: var(--color-gray-500);
   text-decoration: none;
   font-weight: var(--font-weight-semibold);
   font-size: var(--font-size-base);
   transition: color var(--transition-fast);
   position: relative;
}

.ab-product-tabs .tabs li.active a,
.ab-product-tabs .tabs li a:hover {
   color: var(--color-primary);
}

.ab-product-tabs .tabs li.active a::after {
   content: '';
   position: absolute;
   bottom: -2px;
   left: 0;
   right: 0;
   height: 3px;
   background: var(--color-primary);
   border-radius: var(--radius-full);
}

/* Related Products */
.ab-related-products {
   margin-bottom: var(--space-12);
   max-width: var(--container-wide);
   margin-left: auto;
   margin-right: auto;
   padding: 0 var(--space-6);
}

.ab-related-products h2 {
   font-size: var(--font-size-2xl);
   font-weight: var(--font-weight-bold);
   color: var(--color-gray-900);
   margin-bottom: var(--space-8);
}

/* ============================================
   CART PAGE
   ============================================ */
.woocommerce-cart .woocommerce {
   padding: var(--space-12) 0;
   max-width: var(--container-wide);
   margin: 0 auto;
}

.woocommerce-cart table.cart {
   background: var(--color-white);
   border-radius: var(--radius-2xl);
   overflow: hidden;
   border: none;
   box-shadow: var(--shadow-md);
}

.woocommerce-cart table.cart th {
   background: var(--color-gray-50);
   padding: var(--space-5);
   font-weight: var(--font-weight-semibold);
   color: var(--color-gray-700);
   border: none;
   font-size: var(--font-size-sm);
   text-transform: uppercase;
   letter-spacing: 0.5px;
}

.woocommerce-cart table.cart td {
   padding: var(--space-6) var(--space-5);
   border-top: 1px solid var(--color-gray-100);
   vertical-align: middle;
}

.woocommerce-cart table.cart .product-thumbnail img {
   border-radius: var(--radius-xl);
   width: 100px;
   height: 100px;
   object-fit: cover;
}

.woocommerce-cart table.cart .product-name a {
   font-weight: var(--font-weight-semibold);
   color: var(--color-gray-900);
   text-decoration: none;
   font-size: var(--font-size-base);
   transition: color var(--transition-fast);
}

.woocommerce-cart table.cart .product-name a:hover {
   color: var(--color-primary);
}

.woocommerce-cart table.cart .product-price,
.woocommerce-cart table.cart .product-subtotal {
   font-weight: var(--font-weight-bold);
   color: var(--color-primary);
   font-size: var(--font-size-lg);
}

.woocommerce-cart table.cart .quantity input {
   padding: var(--space-3);
   border: 2px solid var(--color-gray-200);
   border-radius: var(--radius-lg);
   width: 80px;
   text-align: center;
   font-size: var(--font-size-base);
   font-weight: var(--font-weight-semibold);
}

.woocommerce-cart table.cart .remove {
   width: 44px;
   height: 44px;
   background: #fee2e2;
   color: #dc2626 !important;
   border-radius: var(--radius-full);
   display: flex;
   align-items: center;
   justify-content: center;
   text-decoration: none;
   font-size: var(--font-size-xl);
   transition: all var(--transition-fast);
}

.woocommerce-cart table.cart .remove:hover {
   background: #dc2626;
   color: var(--color-white) !important;
}

.woocommerce-cart .actions {
   padding: var(--space-6) var(--space-5) !important;
}

.woocommerce-cart .actions button {
   background: var(--color-primary);
   color: var(--color-white);
   border: none;
   padding: var(--space-4) var(--space-8);
   border-radius: var(--radius-full);
   font-weight: var(--font-weight-semibold);
   cursor: pointer;
   transition: all var(--transition-base);
}

.woocommerce-cart .actions button:hover {
   background: var(--color-primary-hover);
   transform: translateY(-2px);
   box-shadow: var(--shadow-lg);
}

/* Cart Totals - HIDDEN (redundant with custom summary) */
.cart-collaterals,
.cart-collaterals .cart_totals,
.woocommerce-cart .cart-collaterals,
.ab-cart-page .cart-collaterals {
   display: none !important;
   visibility: hidden !important;
   height: 0 !important;
   overflow: hidden !important;
   margin: 0 !important;
   padding: 0 !important;
}

/* Keep only for reference - styles hidden
.cart-collaterals .cart_totals {
   background: var(--color-white);
   border-radius: var(--radius-2xl);
   padding: var(--space-8);
   box-shadow: var(--shadow-md);
}

.cart-collaterals .cart_totals h2 {
   font-size: var(--font-size-xl);
   font-weight: var(--font-weight-bold);
   color: var(--color-gray-900);
   margin-bottom: var(--space-6);
}

.cart-collaterals .cart_totals table {
   border: none;
}

.cart-collaterals .cart_totals th,
.cart-collaterals .cart_totals td {
   padding: var(--space-4) 0;
   border-top: 1px solid var(--color-gray-100);
   font-size: var(--font-size-base);
}

.cart-collaterals .cart_totals .order-total th,
.cart-collaterals .cart_totals .order-total td {
   font-size: var(--font-size-xl);
   font-weight: var(--font-weight-bold);
   color: var(--color-primary);
}

.woocommerce-cart .wc-proceed-to-checkout {
   padding-top: var(--space-6);
}

.woocommerce-cart .wc-proceed-to-checkout a {
   background: var(--color-primary);
   color: var(--color-white);
   padding: var(--space-4);
   border-radius: var(--radius-full);
   font-weight: var(--font-weight-semibold);
   font-size: var(--font-size-base);
   text-align: center;
   text-decoration: none;
   display: block;
   transition: all var(--transition-base);
}

.woocommerce-cart .wc-proceed-to-checkout a:hover {
   background: var(--color-primary-hover);
   transform: translateY(-2px);
   box-shadow: 0 10px 25px rgba(59, 130, 246, 0.3);
}

/* Empty Cart */
.woocommerce-cart .cart-empty {
   text-align: center;
   padding: var(--space-20) var(--space-10);
   background: var(--color-white);
   border-radius: var(--radius-2xl);
}

.woocommerce-cart .cart-empty::before {
   content: '🛒';
   font-size: 64px;
   display: block;
   margin-bottom: var(--space-6);
}

.woocommerce-cart .return-to-shop a {
   display: inline-flex;
   align-items: center;
   gap: var(--space-2);
   background: var(--color-primary);
   color: var(--color-white);
   padding: var(--space-4) var(--space-8);
   border-radius: var(--radius-full);
   text-decoration: none;
   font-weight: var(--font-weight-semibold);
   transition: all var(--transition-base);
}

.woocommerce-cart .return-to-shop a:hover {
   background: var(--color-primary-hover);
   transform: translateY(-2px);
}

/* ============================================
   CHECKOUT PAGE (Legacy - Hidden when using custom template)
   ============================================ */
.woocommerce-checkout {
   background: var(--color-gray-50);
}

/* Only apply to default WooCommerce checkout (not custom) */
.woocommerce-checkout .woocommerce:not(:has(.ab-checkout-page)) {
   padding: var(--space-12) var(--space-6);
   max-width: var(--container-wide);
   margin: 0 auto;
}

/* When using custom checkout, reset woocommerce wrapper */
.woocommerce-checkout .woocommerce:has(.ab-checkout-page) {
   padding: 0 !important;
   max-width: 100% !important;
   margin: 0 !important;
   background: transparent !important;
}

.woocommerce-checkout .col2-set {
   display: grid;
   grid-template-columns: 1fr 1fr;
   gap: var(--space-10);
   margin-bottom: var(--space-10);
}

.woocommerce-checkout .col-1,
.woocommerce-checkout .col-2 {
   background: var(--color-white) !important;
   padding: var(--space-8) !important;
   border-radius: var(--radius-2xl) !important;
   box-shadow: var(--shadow-sm) !important;
}

/* Keep paired checkout inputs aligned with consistent spacing */
.woocommerce-checkout .woocommerce-billing-fields__field-wrapper,
.woocommerce-checkout .woocommerce-shipping-fields__field-wrapper,
.woocommerce-checkout .woocommerce-additional-fields__field-wrapper {
   display: grid;
   grid-template-columns: repeat(2, minmax(0, 1fr));
   gap: var(--space-4);
}

.woocommerce-checkout .form-row-wide,
.woocommerce-checkout .form-row.notes,
.woocommerce-checkout .woocommerce-additional-fields__field-wrapper .form-row {
   grid-column: 1 / -1;
}

.woocommerce-checkout h3 {
   font-size: var(--font-size-xl);
   font-weight: var(--font-weight-bold);
   color: var(--color-gray-900);
   margin-bottom: var(--space-6);
   padding-bottom: var(--space-4);
   border-bottom: 2px solid var(--color-gray-100);
}

.woocommerce-checkout .form-row {
   margin-bottom: var(--space-5) !important;
}

.woocommerce-checkout label {
   font-weight: var(--font-weight-medium);
   color: var(--color-gray-700);
   margin-bottom: var(--space-2);
   display: block;
   font-size: var(--font-size-sm);
}

.woocommerce-checkout input[type='text'],
.woocommerce-checkout input[type='email'],
.woocommerce-checkout input[type='tel'],
.woocommerce-checkout select,
.woocommerce-checkout textarea {
   padding: var(--space-4);
   border: 2px solid var(--color-gray-200);
   border-radius: var(--radius-lg);
   width: 100%;
   font-size: var(--font-size-base);
   transition: all var(--transition-fast);
}

.woocommerce-checkout input:focus,
.woocommerce-checkout select:focus,
.woocommerce-checkout textarea:focus {
   border-color: var(--color-primary);
   outline: none;
   box-shadow: 0 0 0 3px var(--color-primary-light);
}

.woocommerce-checkout #order_review_heading {
   font-size: var(--font-size-xl);
   font-weight: var(--font-weight-bold);
   color: var(--color-gray-900);
   margin-bottom: var(--space-6);
}

.woocommerce-checkout #order_review {
   background: var(--color-white) !important;
   border-radius: var(--radius-2xl);
   padding: var(--space-8) !important;
   box-shadow: var(--shadow-md);
}

.woocommerce-checkout table {
   width: 100%;
   border-spacing: 0;
   border: none !important;
}

.woocommerce-checkout #order_review table td,
.woocommerce-checkout #order_review table th {
   padding: var(--space-3) 0;
   border-bottom: 1px solid var(--color-gray-100) !important;
   border: none !important;
   border-bottom: 1px solid var(--color-gray-100) !important;
}

.woocommerce-checkout #order_review table tr {
   border: none !important;
}

.woocommerce-checkout #order_review table tfoot th {
   text-transform: uppercase;
   color: var(--color-gray-600);
   font-size: var(--font-size-sm);
   border: none !important;
   border-top: 2px solid var(--color-gray-200) !important;
}

.woocommerce-checkout #order_review table tfoot td {
   font-weight: var(--font-weight-bold);
   color: var(--color-gray-900);
   border: none !important;
}

.woocommerce-checkout #payment {
   margin-top: var(--space-8);
   background: var(--color-white) !important;
   border-radius: var(--radius-2xl);
   padding: var(--space-6) !important;
   border: 2px solid var(--color-gray-100);
   box-shadow: var(--shadow-sm);
}

.woocommerce-checkout #payment ul.payment_methods {
   list-style: none;
   padding: 0;
   margin: 0 0 var(--space-5);
   display: flex;
   flex-direction: column;
   gap: var(--space-3);
}

.woocommerce-checkout #payment ul.payment_methods li {
   padding: var(--space-4);
   border: 1px solid var(--color-gray-100);
   border-radius: var(--radius-xl);
   background: var(--color-gray-50);
}

.woocommerce-checkout #payment div.payment_box {
   margin: var(--space-3) 0 0;
   padding: var(--space-4);
   background: var(--color-white);
   border-radius: var(--radius-lg);
   border: 1px dashed var(--color-gray-200);
}

.woocommerce-checkout #place_order {
   background: var(--color-primary);
   color: var(--color-white);
   border: none;
   padding: var(--space-5);
   border-radius: var(--radius-full);
   font-size: var(--font-size-lg);
   font-weight: var(--font-weight-bold);
   width: 100%;
   cursor: pointer;
   transition: all var(--transition-base);
}

.woocommerce-checkout #place_order:hover {
   background: var(--color-primary-hover);
   transform: translateY(-2px);
   box-shadow: 0 10px 25px rgba(59, 130, 246, 0.3);
}

/* ============================================
   WOOCOMMERCE MESSAGES
   ============================================ */
.woocommerce-message,
.woocommerce-info,
.woocommerce-error {
   padding: var(--space-5) var(--space-6);
   border-radius: var(--radius-xl);
   margin-bottom: var(--space-6);
   border: none;
   border-left: 4px solid;
   display: flex;
   align-items: center;
   gap: var(--space-4);
}

@media (max-width: 1024px) {
   .woocommerce-checkout .col2-set {
      grid-template-columns: 1fr;
   }

   .woocommerce-checkout .woocommerce-billing-fields__field-wrapper,
   .woocommerce-checkout .woocommerce-shipping-fields__field-wrapper,
   .woocommerce-checkout .woocommerce-additional-fields__field-wrapper {
      grid-template-columns: 1fr;
   }
}

.woocommerce-message {
   background: var(--color-accent-light);
   border-color: var(--color-success);
   color: #065f46;
}

.woocommerce-info {
   background: var(--color-primary-light);
   border-color: var(--color-primary);
   color: #1e40af;
}

.woocommerce-error {
   background: #fee2e2;
   border-color: var(--color-error);
   color: #991b1b;
}

.woocommerce-message a,
.woocommerce-info a {
   margin-left: auto;
   background: var(--color-primary);
   color: var(--color-white);
   padding: var(--space-3) var(--space-6);
   border-radius: var(--radius-full);
   text-decoration: none;
   font-weight: var(--font-weight-semibold);
   font-size: var(--font-size-sm);
   transition: all var(--transition-fast);
}

.woocommerce-message a:hover,
.woocommerce-info a:hover {
   background: var(--color-primary-hover);
}

/* ============================================
   CUSTOM CART PAGE
   ============================================ */
.ab-cart-page {
   background: #f8f9fa;
   min-height: 100vh;
   padding: 40px 20px;
}

.ab-cart-page .container {
   max-width: 1100px;
   margin: 0 auto;
   padding: 0;
}

/* ============================================
   CHECKOUT PROGRESS STEPS
   ============================================ */

.ab-checkout-steps {
   --ab-step-gap: 28px;
   list-style: none;
   padding: 0;
   margin: 0 0 28px;
   display: flex;
   align-items: center;
   justify-content: space-between;
   gap: var(--ab-step-gap);
   flex-wrap: nowrap;
   overflow-x: auto;
}

.ab-checkout-steps::-webkit-scrollbar {
   height: 4px;
}

.ab-checkout-steps::-webkit-scrollbar-thumb {
   background: rgba(0, 0, 0, 0.2);
   border-radius: 999px;
}

.ab-step {
   flex: 1 1 auto;
   min-width: 0;
   background: transparent;
   border: none;
   padding: 10px 8px;
   display: flex;
   flex-direction: column;
   align-items: center;
   text-align: center;
   gap: 4px;
   position: relative;
}

.ab-step::after {
   content: '';
   position: absolute;
   top: 50%;
   right: calc(-1 * var(--ab-step-gap));
   width: var(--ab-step-gap);
   height: 2px;
   background: #e5e7eb;
   transform: translateY(-50%);
   z-index: 0;
}

.ab-step:last-child::after {
   display: none;
}

.ab-step-number {
   width: 28px;
   height: 28px;
   border-radius: 999px;
   border: 2px solid #d1d5db;
   background: #f7f7f7;
   color: #4b5563;
   font-weight: 700;
   font-size: 13px;
   display: flex;
   align-items: center;
   justify-content: center;
   z-index: 1;
}

.ab-step-text {
   font-size: 11px;
   font-weight: 600;
   text-transform: uppercase;
   letter-spacing: 0.3px;
   color: #4b5563;
}

.ab-step-current .ab-step-number {
   background: var(--color-primary);
   border-color: var(--color-primary);
   color: #fff;
}

.ab-step-current .ab-step-text {
   color: var(--color-primary);
}

.ab-step-current::after,
.ab-step-complete::after {
   background: var(--color-primary);
}

.ab-step-upcoming {
   opacity: 0.85;
}

/* ============================================
   CART LAYOUT
   ============================================ */
.ab-cart-layout {
   display: grid;
   grid-template-columns: 1fr 380px;
   gap: 30px;
   align-items: start;
}

/* ============================================
   CART CARDS
   ============================================ */
.ab-cart-table-section {
   background: #fff;
   border-radius: 12px;
   box-shadow: 0 2px 12px rgba(0, 0, 0, 0.08);
}

.ab-cart-list {
   display: flex;
   flex-direction: column;
   gap: 18px;
   padding: 24px;
}

.ab-cart-card {
   border: 1px solid #f0f0f0;
   border-radius: 16px;
   padding: 18px 20px;
   background: #fff;
   box-shadow: 0 10px 30px rgba(15, 23, 42, 0.05);
   position: relative;
}

.ab-card-row {
   display: grid;
   grid-template-columns: auto 1fr minmax(210px, 240px);
   gap: 20px;
   align-items: center;
}

.ab-card-media {
   position: relative;
   width: 120px;
}

.ab-card-thumb {
   width: 110px;
   height: 110px;
   border-radius: 12px;
   overflow: hidden;
   border: 1px solid #ececec;
   background: #fafafa;
}

.ab-card-thumb img {
   width: 100%;
   height: 100%;
   object-fit: cover;
}

.ab-remove-link {
   position: absolute;
   top: 14px;
   right: 14px;
   width: 30px;
   height: 30px;
   border-radius: 50%;
   background: rgba(239, 68, 68, 0.12);
   color: #dc2626;
   border: 1px solid rgba(239, 68, 68, 0.2);
   box-shadow: 0 6px 16px rgba(15, 23, 42, 0.12);
   display: flex;
   align-items: center;
   justify-content: center;
   font-size: 18px;
   font-weight: 500;
   text-decoration: none;
   transition: all 0.2s ease;
   z-index: 2;
}

.ab-remove-link:hover {
   background: #ef4444;
   color: #fff;
}

.ab-card-info {
   display: flex;
   flex-direction: column;
   gap: 8px;
}

.ab-card-title {
   font-size: 16px;
   font-weight: 600;
   color: #1f2937;
   line-height: 1.4;
}

.ab-card-title a {
   color: inherit;
   text-decoration: none;
}

.ab-card-title a:hover {
   color: var(--color-primary);
}

.ab-card-price,
.ab-card-qty,
.ab-card-subtotal {
   display: flex;
   flex-direction: column;
   gap: 4px;
}

.ab-label {
   font-size: 12px;
   text-transform: uppercase;
   letter-spacing: 0.4px;
   color: #9ca3af;
}

.ab-value {
   font-size: 15px;
   font-weight: 600;
   color: #111827;
}

.ab-card-price .ab-value {
   color: #4b5563;
}

.ab-card-controls {
   display: flex;
   flex-direction: column;
   gap: 16px;
   align-items: flex-start;
}

.ab-card-subtotal .ab-value {
   font-size: 18px;
   color: var(--color-primary);
   font-weight: 700;
}

.ab-qty-control {
   display: inline-flex;
   align-items: center;
   border: 2px solid #e0e0e0;
   border-radius: 10px;
   overflow: hidden;
   background: #fff;
}

.ab-qty-btn {
   width: 40px;
   height: 40px;
   border: none;
   background: #f8f9fa;
   color: #4b5563;
   font-size: 18px;
   font-weight: 500;
   cursor: pointer;
   transition: all 0.2s ease;
   display: flex;
   align-items: center;
   justify-content: center;
}

.ab-qty-btn:hover {
   background: var(--color-primary);
   color: #fff;
}

.ab-qty-control input[type='number'] {
   width: 54px;
   height: 40px;
   border: none;
   border-left: 1px solid #e0e0e0;
   border-right: 1px solid #e0e0e0;
   text-align: center;
   font-size: 15px;
   font-weight: 600;
   color: #111827;
   appearance: textfield;
   -moz-appearance: textfield;
}

.ab-qty-control input[type='number']::-webkit-outer-spin-button,
.ab-qty-control input[type='number']::-webkit-inner-spin-button {
   -webkit-appearance: none;
   margin: 0;
}

/* ============================================
   CART ACTIONS
   ============================================ */
.ab-cart-actions {
   display: flex;
   justify-content: space-between;
   align-items: center;
   padding: 25px 20px;
   background: #f8f9fa;
   border-top: 1px solid #e0e0e0;
   gap: 15px;
   flex-wrap: wrap;
}

.ab-coupon-form {
   display: flex;
   gap: 10px;
   flex-wrap: wrap;
}

.ab-coupon-input {
   padding: 12px 16px;
   border: 2px solid #e0e0e0;
   border-radius: 8px;
   font-size: 14px;
   width: 180px;
   transition: border-color 0.2s ease;
}

.ab-coupon-input:focus {
   border-color: var(--color-primary);
   outline: none;
}

.ab-coupon-input::placeholder {
   color: #999;
}

.ab-coupon-btn {
   background: #16a34a;
   color: #fff;
   border: none;
   padding: 12px 20px;
   border-radius: 8px;
   font-weight: 600;
   font-size: 12px;
   text-transform: uppercase;
   letter-spacing: 0.5px;
   cursor: pointer;
   transition: all 0.2s ease;
   white-space: nowrap;
}

.ab-coupon-btn:hover {
   background: #12823c;
   transform: translateY(-1px);
}

.ab-update-btn {
   background: #fff;
   color: #666;
   border: 2px solid #e0e0e0;
   padding: 12px 24px;
   border-radius: 8px;
   font-weight: 600;
   font-size: 12px;
   text-transform: uppercase;
   letter-spacing: 0.5px;
   cursor: pointer;
   transition: all 0.2s ease;
   white-space: nowrap;
}

.ab-update-btn:hover {
   border-color: var(--color-primary);
   color: var(--color-primary);
}

/* ============================================
   CART TOTALS SIDEBAR
   ============================================ */
.ab-cart-totals {
   background: #fff;
   border-radius: 12px;
   overflow: hidden;
   box-shadow: 0 2px 12px rgba(0, 0, 0, 0.08);
   position: sticky;
   top: 100px;
}

.ab-totals-title {
   background: #f8f9fa;
   margin: 0;
   padding: 20px 25px;
   font-size: 15px;
   font-weight: 700;
   color: #333;
   text-transform: uppercase;
   letter-spacing: 0.5px;
   border-bottom: 2px solid #e0e0e0;
}

.ab-totals-content {
   padding: 20px 25px;
}

.ab-totals-row {
   display: flex;
   justify-content: space-between;
   align-items: flex-start;
   padding: 12px 0;
   border-bottom: 1px solid #f0f0f0;
}

.ab-totals-row:last-child {
   border-bottom: none;
}

.ab-totals-label {
   font-size: 14px;
   color: #666;
}

.ab-totals-value {
   font-size: 14px;
   font-weight: 600;
   color: #333;
   text-align: right;
}

.ab-shipping-row {
   flex-direction: column;
   gap: 10px;
}

.ab-shipping-options {
   width: 100%;
}

.ab-shipping-options ul {
   list-style: none;
   padding: 0;
   margin: 0;
}

.ab-shipping-options li {
   padding: 8px 0;
   font-size: 13px;
   color: #666;
}

.ab-shipping-options label {
   display: flex;
   align-items: center;
   gap: 8px;
   cursor: pointer;
}

.ab-totals-total {
   margin-top: 10px;
   padding-top: 15px;
   border-top: 2px solid #e0e0e0;
   border-bottom: none;
}

.ab-totals-total .ab-totals-label {
   font-size: 16px;
   font-weight: 700;
   color: #333;
}

.ab-totals-total .ab-totals-value {
   font-size: 20px;
   font-weight: 700;
   color: var(--color-primary);
}

.ab-checkout-btn {
   display: block;
   background: var(--color-primary);
   color: #fff !important;
   text-align: center;
   padding: 18px 25px;
   font-size: 14px;
   font-weight: 700;
   text-transform: uppercase;
   letter-spacing: 0.5px;
   text-decoration: none;
   transition: all 0.3s ease;
   margin: 0;
}

.ab-checkout-btn:hover {
   background: var(--color-primary-hover);
   color: #fff !important;
}

/* ============================================
   TRUST BADGES
   ============================================ */
.ab-trust-badges {
   display: grid;
   grid-template-columns: repeat(4, 1fr);
   gap: 20px;
   margin-top: 40px;
   padding: 30px;
   background: #fff;
   border-radius: 12px;
   box-shadow: 0 2px 12px rgba(0, 0, 0, 0.08);
}

.ab-trust-badge {
   display: flex;
   align-items: center;
   gap: 15px;
   padding: 15px;
   border-radius: 8px;
   background: #f8f9fa;
   transition: all 0.3s ease;
}

.ab-trust-badge:hover {
   background: #f0f4f8;
   transform: translateY(-2px);
}

.ab-badge-icon {
   width: 50px;
   height: 50px;
   border-radius: 50%;
   background: var(--color-primary);
   color: #fff;
   display: flex;
   align-items: center;
   justify-content: center;
   flex-shrink: 0;
}

.ab-badge-icon svg {
   width: 24px;
   height: 24px;
}

.ab-badge-text {
   display: flex;
   flex-direction: column;
   gap: 3px;
}

.ab-badge-text strong {
   font-size: 12px;
   font-weight: 700;
   color: #333;
   text-transform: uppercase;
   letter-spacing: 0.3px;
}

.ab-badge-text span {
   font-size: 11px;
   color: #888;
   text-transform: uppercase;
   letter-spacing: 0.2px;
}

/* Hide redundant cart totals */
.cart-collaterals,
.woocommerce-cart .cart-collaterals,
.ab-cart-page .cart-collaterals,
body .cart-collaterals,
.woocommerce .cart-collaterals {
   display: none !important;
   visibility: hidden !important;
}

/* ============================================
   CART MOBILE STYLES
   ============================================ */
@media (max-width: 991px) {
   .ab-cart-layout {
      grid-template-columns: 1fr;
      gap: 25px;
   }

   .ab-cart-totals {
      position: static;
   }

   .ab-checkout-steps {
      --ab-step-gap: 22px;
   }

   .ab-step {
      padding: 12px 10px;
   }

   .ab-step-text {
      font-size: 11px;
   }

   .ab-trust-badges {
      grid-template-columns: repeat(2, 1fr);
   }
}

@media (max-width: 768px) {
   .ab-cart-page {
      padding: 25px 0;
   }

   .ab-checkout-steps {
      --ab-step-gap: 16px;
      margin-bottom: 18px;
      padding-bottom: 4px;
   }

   .ab-step {
      min-width: 150px;
      padding: 8px 10px;
   }

   .ab-step::after {
      top: calc(50% + 2px);
   }

   .ab-step-number {
      width: 28px;
      height: 28px;
      font-size: 12px;
   }

   .ab-step-text {
      font-size: 10px;
      letter-spacing: 0.3px;
   }

   .ab-cart-list {
      padding: 18px;
      gap: 15px;
   }

   .ab-cart-card {
      padding: 16px;
   }

   .ab-card-row {
      grid-template-columns: minmax(86px, 100px) 1fr;
      grid-template-areas:
         'media info'
         'controls controls';
      gap: 14px;
      align-items: flex-start;
   }

   .ab-card-media {
      grid-area: media;
      width: 100%;
      display: flex;
      flex-direction: column;
      gap: 10px;
   }

   .ab-card-thumb {
      width: 100%;
      max-width: 96px;
      height: 96px;
   }

   .ab-remove-link {
      top: 10px;
      right: 10px;
   }

   .ab-card-info {
      grid-area: info;
   }

   .ab-card-controls {
      grid-area: controls;
      width: 100%;
      flex-direction: row;
      flex-wrap: wrap;
      gap: 16px;
      justify-content: space-between;
      padding-top: 8px;
      border-top: 1px solid #f0f0f0;
      margin-top: 4px;
   }

   .ab-card-qty,
   .ab-card-subtotal {
      width: calc(50% - 8px);
      min-width: 140px;
      flex: 1 1 140px;
   }

   .ab-card-subtotal .ab-value {
      font-size: 16px;
   }

   .ab-cart-actions {
      flex-direction: column;
      align-items: stretch;
   }

   .ab-coupon-form {
      width: 100%;
   }

   .ab-coupon-input {
      flex: 1;
      width: auto;
   }

   .ab-update-btn {
      width: 100%;
   }

   .ab-trust-badges {
      grid-template-columns: 1fr;
      padding: 20px;
   }

   .ab-trust-badge {
      padding: 12px;
   }
}

/* ============================================
   CHECKOUT PAGE - CBM DENTAL STYLE
   ============================================ */

/* Reset parent containers when using custom checkout */
body.woocommerce-checkout .woocommerce,
body.woocommerce-checkout #content,
body.woocommerce-checkout .site-content,
body.woocommerce-checkout .ast-container,
body.woocommerce-checkout article,
body.woocommerce-checkout .entry-content {
   padding: 0 !important;
   max-width: 100% !important;
   width: 100% !important;
   margin: 0 !important;
}

.ab-checkout-page {
   background: #f8f9fa;
   min-height: 100vh;
   padding: 40px 20px;
   width: 100%;
   box-sizing: border-box;
}

.ab-checkout-page > .container {
   max-width: 1260px !important;
   margin: 0 auto !important;
   padding: 0 15px !important;
   width: 100% !important;
   box-sizing: border-box;
}

/* Top info links */
.ab-checkout-info-bar {
   display: flex;
   justify-content: space-between;
   flex-wrap: wrap;
   gap: 10px;
   font-size: 13px;
   color: #4b5563;
   margin-bottom: 15px;
}

.ab-toggle-link {
   color: var(--color-primary);
   font-weight: 600;
   text-decoration: none;
   border-bottom: 1px solid transparent;
   transition: all 0.2s ease;
}

.ab-toggle-link:hover {
   border-color: currentColor;
}

.ab-collapsible-panels {
   display: flex;
   flex-direction: column;
   gap: 12px;
   margin-bottom: 20px;
}

.ab-collapsible-panel {
   display: none;
   background: #fff;
   border-radius: 12px;
   border: 1px solid #ececec;
   box-shadow: 0 10px 30px rgba(15, 23, 42, 0.06);
   padding: 20px;
}

.ab-collapsible-panel.is-open {
   display: block;
}

.ab-collapsible-panel form {
   margin: 0;
}

.ab-collapsible-panel .form-row {
   margin: 0 0 15px 0;
}

.ab-collapsible-panel .button,
.ab-collapsible-panel button,
.ab-collapsible-panel input[type='submit'] {
   background: var(--color-primary);
   color: #fff;
   border: none;
   padding: 10px 20px;
   border-radius: 8px;
   font-weight: 600;
   cursor: pointer;
}

/* ============================================
   THANK YOU PAGE STYLES
   ============================================ */
.ab-thankyou-page {
   background: linear-gradient(135deg, #f8f9fa 0%, #f3f4f6 100%);
   min-height: 100vh;
   padding: 50px 20px 70px;
}

.ab-thankyou-page .container {
   max-width: 1200px;
   margin: 0 auto;
}

.ab-thankyou-hero {
   background: #fff;
   border-radius: 24px;
   padding: 48px 40px;
   text-align: center;
   box-shadow: 0 20px 60px rgba(15, 23, 42, 0.1);
   border: 1px solid rgba(148, 163, 184, 0.15);
   margin-bottom: 36px;
}

.ab-thankyou-hero h1 {
   font-size: 2.25rem;
   margin: 20px 0 12px;
   color: #111827;
   font-weight: 700;
}

.ab-hero-desc {
   font-size: 1.05rem;
   color: #6b7280;
   line-height: 1.7;
   max-width: 680px;
   margin: 0 auto 28px;
}

.ab-status-badge {
   display: inline-flex;
   align-items: center;
   gap: 8px;
   padding: 10px 20px;
   border-radius: 999px;
   font-size: 0.8125rem;
   font-weight: 700;
   text-transform: uppercase;
   letter-spacing: 0.06em;
}

.ab-status-badge--success {
   background: rgba(16, 185, 129, 0.12);
   color: #059669;
   border: 2px solid rgba(16, 185, 129, 0.3);
}

.ab-status-badge--error {
   background: rgba(239, 68, 68, 0.12);
   color: #dc2626;
   border: 2px solid rgba(239, 68, 68, 0.3);
}

.ab-status-dot {
   width: 8px;
   height: 8px;
   border-radius: 50%;
   background: currentColor;
   animation: pulse 2s infinite;
}

@keyframes pulse {
   0%,
   100% {
      opacity: 1;
   }
   50% {
      opacity: 0.5;
   }
}

.ab-order-number {
   display: inline-flex;
   flex-direction: column;
   gap: 4px;
   padding: 16px 28px;
   background: linear-gradient(135deg, #f1f5f9 0%, #e2e8f0 100%);
   border-radius: 16px;
   margin: 24px 0 32px;
}

.ab-order-number-label {
   font-size: 0.75rem;
   text-transform: uppercase;
   letter-spacing: 0.06em;
   color: #64748b;
   font-weight: 600;
}

.ab-order-number-value {
   font-size: 1.5rem;
   font-weight: 700;
   color: var(--color-primary);
}

.ab-thankyou-actions {
   display: flex;
   gap: 12px;
   justify-content: center;
   flex-wrap: wrap;
}

.ab-thankyou-summary {
   display: grid;
   grid-template-columns: repeat(2, minmax(0, 1fr));
   gap: 24px;
   margin-bottom: 24px;
}

.ab-thankyou-card {
   background: #fff;
   border-radius: 20px;
   padding: 28px;
   box-shadow: 0 12px 40px rgba(15, 23, 42, 0.07);
   border: 1px solid rgba(148, 163, 184, 0.15);
}

.ab-card-header {
   display: flex;
   justify-content: space-between;
   align-items: center;
   margin-bottom: 20px;
   padding-bottom: 16px;
   border-bottom: 2px solid #f1f5f9;
}

.ab-card-header h2 {
   margin: 0;
   font-size: 0.9375rem;
   text-transform: uppercase;
   letter-spacing: 0.1em;
   color: #1f2937;
   font-weight: 700;
}

.ab-items-count {
   font-size: 0.8125rem;
   color: #6b7280;
   background: #f3f4f6;
   padding: 6px 14px;
   border-radius: 999px;
   font-weight: 600;
}

.ab-info-grid {
   display: grid;
   gap: 18px;
}

.ab-info-item {
   display: flex;
   justify-content: space-between;
   align-items: center;
   padding: 14px 18px;
   background: #fafbfc;
   border-radius: 12px;
   transition: all 0.2s;
}

.ab-info-item:hover {
   background: #f1f5f9;
}

.ab-info-item--highlight {
   background: linear-gradient(135deg, #dbeafe 0%, #bfdbfe 100%);
   border: 2px solid rgba(59, 130, 246, 0.2);
}

.ab-info-label {
   font-size: 0.8125rem;
   color: #64748b;
   font-weight: 600;
   text-transform: uppercase;
   letter-spacing: 0.05em;
}

.ab-info-value {
   font-size: 0.9375rem;
   color: #1f2937;
   font-weight: 600;
}

.ab-info-value--large {
   font-size: 1.375rem;
   color: var(--color-primary);
   font-weight: 700;
}

.ab-address-columns {
   display: grid;
   grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
   gap: 18px;
}

.ab-address-item {
   display: flex;
   flex-direction: column;
   gap: 10px;
}

.ab-address-header {
   display: flex;
   align-items: center;
   gap: 10px;
}

.ab-address-icon {
   font-size: 1.25rem;
}

.ab-address-header h3 {
   margin: 0;
   font-size: 0.875rem;
   font-weight: 700;
   color: #374151;
   text-transform: uppercase;
   letter-spacing: 0.05em;
}

.ab-address-block {
   background: #fafbfc;
   border-radius: 14px;
   padding: 16px;
   font-size: 0.875rem;
   line-height: 1.7;
   color: #4b5563;
   border: 1px solid #e5e7eb;
}

.ab-thankyou-grid {
   display: grid;
   grid-template-columns: 1.3fr 0.7fr;
   gap: 24px;
}

.ab-order-items {
   display: flex;
   flex-direction: column;
   gap: 14px;
}

.ab-order-item {
   display: grid;
   grid-template-columns: 1fr auto auto auto;
   gap: 14px;
   align-items: center;
   padding: 16px;
   background: #fafbfc;
   border-radius: 14px;
   transition: all 0.2s;
   border: 1px solid #e5e7eb;
}

.ab-order-item:hover {
   background: #f1f5f9;
   border-color: #cbd5e1;
}

.ab-item-info strong {
   display: block;
   font-size: 0.9375rem;
   color: #111827;
   margin-bottom: 4px;
}

.ab-item-qty,
.ab-item-price,
.ab-item-total {
   font-size: 0.875rem;
   color: #4b5563;
   white-space: nowrap;
   font-weight: 600;
}

.ab-item-total {
   color: var(--color-primary);
   font-weight: 700;
   font-size: 1rem;
}

.ab-steps-list {
   display: flex;
   flex-direction: column;
   gap: 18px;
   margin-bottom: 24px;
}

.ab-step-item {
   display: flex;
   gap: 16px;
   align-items: flex-start;
   padding: 16px;
   background: #fafbfc;
   border-radius: 14px;
   border-left: 4px solid var(--color-primary);
}

.ab-step-number {
   width: 32px;
   height: 32px;
   border-radius: 50%;
   background: var(--color-primary);
   color: #fff;
   display: flex;
   align-items: center;
   justify-content: center;
   font-weight: 700;
   font-size: 0.875rem;
   flex-shrink: 0;
}

.ab-step-item strong {
   display: block;
   font-size: 0.9375rem;
   color: #1f2937;
   margin-bottom: 4px;
}

.ab-step-item p {
   margin: 0;
   font-size: 0.875rem;
   color: #6b7280;
   line-height: 1.6;
}

.ab-contact-help {
   padding: 18px;
   background: linear-gradient(135deg, #dbeafe 0%, #bfdbfe 100%);
   border-radius: 14px;
   border: 2px solid rgba(59, 130, 246, 0.3);
}

.ab-contact-help p {
   margin: 6px 0;
   font-size: 0.875rem;
   color: #1e40af;
}

.ab-contact-help strong {
   color: #1e3a8a;
}

@media (max-width: 900px) {
   .ab-thankyou-hero {
      padding: 36px 28px;
   }

   .ab-thankyou-hero h1 {
      font-size: 1.75rem;
   }

   .ab-thankyou-summary,
   .ab-thankyou-grid {
      grid-template-columns: 1fr;
   }

   .ab-order-item {
      grid-template-columns: 1fr;
      gap: 10px;
   }

   .ab-item-info {
      grid-column: 1 / -1;
   }

   .ab-item-qty,
   .ab-item-price {
      display: inline;
   }
}

@media (max-width: 600px) {
   .ab-thankyou-page {
      padding: 30px 15px 50px;
   }

   .ab-thankyou-card {
      padding: 22px;
   }

   .ab-thankyou-hero {
      padding: 28px 20px;
   }

   .ab-thankyou-hero h1 {
      font-size: 1.5rem;
   }

   .ab-card-header {
      flex-direction: column;
      align-items: flex-start;
      gap: 10px;
   }
}

/* Override WooCommerce/Astra defaults */
.woocommerce-checkout .ab-checkout-page,
body.woocommerce-checkout .ab-checkout-page {
   max-width: 100% !important;
   margin: 0 !important;
}

.woocommerce-checkout .ab-checkout-page > .container,
body.woocommerce-checkout .ab-checkout-page > .container {
   max-width: 1100px !important;
   margin-left: auto !important;
   margin-right: auto !important;
   padding-left: 0 !important;
   padding-right: 0 !important;
}

/* ============================================
   PAGE BANNER - Shop, Cart, Checkout, Product Pages
   ============================================ */
.ab-page-banner {
   width: 100%;
   height: 280px;
   background-size: cover;
   background-position: center;
   background-repeat: no-repeat;
   margin-bottom: 40px;
   position: relative;
   display: flex;
   align-items: center;
   justify-content: center;
   box-shadow: 0 4px 20px rgba(0, 0, 0, 0.1);
}

.ab-page-banner::before {
   content: '';
   position: absolute;
   top: 0;
   left: 0;
   width: 100%;
   height: 100%;
   background: rgba(0, 0, 0, 0.3);
   z-index: 1;
}

@media (max-width: 768px) {
   .ab-page-banner {
      height: 200px;
      margin-bottom: 30px;
   }
}

@media (max-width: 480px) {
   .ab-page-banner {
      height: 150px;
      margin-bottom: 20px;
   }
}

/* Points Banner */
.ab-points-banner {
   display: flex;
   align-items: center;
   gap: 15px;
   background: linear-gradient(135deg, #16a34a 0%, #0f7f3a 100%);
   color: #fff;
   padding: 15px 25px;
   border-radius: 10px;
   margin-bottom: 30px;
}

.ab-points-icon {
   display: flex;
   align-items: center;
   justify-content: center;
}

.ab-points-icon svg {
   color: #fff;
}

.ab-points-text {
   font-size: 15px;
}

.ab-points-text strong {
   font-weight: 700;
}

/* Checkout Layout */
.ab-checkout-layout {
   display: grid;
   grid-template-columns: minmax(0, 1.45fr) 340px;
   gap: 24px;
   align-items: start;
}

.ab-checkout-form {
   background: transparent !important;
   padding: 0 !important;
   margin: 0 !important;
}

/* Billing Section */
.ab-checkout-billing {
   display: flex;
   flex-direction: column;
   gap: 24px;
}

.ab-billing-section,
.ab-additional-section {
   background: #fff;
   border-radius: 12px;
   padding: 30px;
   box-shadow: 0 2px 12px rgba(0, 0, 0, 0.08);
}

.ab-section-title {
   font-size: 16px;
   font-weight: 700;
   color: #333;
   text-transform: uppercase;
   letter-spacing: 0.5px;
   margin: 0 0 25px 0;
   padding-bottom: 15px;
   border-bottom: 2px solid #f0f0f0;
}

/* Form Fields Styling */
.ab-form-fields .woocommerce-billing-fields__field-wrapper,
.ab-form-fields .woocommerce-shipping-fields__field-wrapper {
   display: grid;
   grid-template-columns: repeat(2, minmax(0, 1fr));
   column-gap: 20px;
   row-gap: 14px;
}

.ab-form-fields .form-row {
   margin: 0;
   padding: 0;
   width: 100% !important;
   max-width: 100%;
   float: none;
}

.ab-form-fields .form-row-wide {
   grid-column: 1 / -1;
}

.ab-form-fields .form-row-first {
   grid-column: 1;
   width: 100% !important;
   max-width: 100%;
   float: none;
}

.ab-form-fields .form-row-last {
   grid-column: 2;
   width: 100% !important;
   max-width: 100%;
   float: none;
}

.ab-form-fields label {
   display: block;
   font-size: 13px;
   font-weight: 600;
   color: #333;
   margin-bottom: 8px;
}

.ab-form-fields label .required {
   color: #c9302c;
}

.ab-form-fields input[type='text'],
.ab-form-fields input[type='email'],
.ab-form-fields input[type='tel'],
.ab-form-fields input[type='number'],
.ab-form-fields input[type='password'],
.ab-form-fields select,
.ab-form-fields textarea {
   width: 100%;
   padding: 12px 15px;
   border: 1px solid #ddd;
   border-radius: 6px;
   font-size: 14px;
   color: #333;
   background: #fff;
   transition:
      border-color 0.2s ease,
      box-shadow 0.2s ease;
}

.ab-collapsible-panel input[type='text'],
.ab-collapsible-panel input[type='email'],
.ab-collapsible-panel input[type='password'],
.ab-collapsible-panel input[type='number'],
.ab-collapsible-panel input[type='tel'],
.ab-collapsible-panel select,
.ab-collapsible-panel textarea {
   width: 100%;
   padding: 12px 15px;
   border: 1px solid #ddd;
   border-radius: 6px;
   font-size: 14px;
   color: #333;
   background: #fff;
   transition:
      border-color 0.2s ease,
      box-shadow 0.2s ease;
}

.ab-form-fields input:focus,
.ab-form-fields select:focus,
.ab-form-fields textarea:focus {
   border-color: var(--color-primary);
   outline: none;
   box-shadow: 0 0 0 3px rgba(138, 43, 226, 0.1);
}

.ab-collapsible-panel input:focus,
.ab-collapsible-panel select:focus,
.ab-collapsible-panel textarea:focus {
   border-color: var(--color-primary);
   outline: none;
   box-shadow: 0 0 0 3px rgba(138, 43, 226, 0.1);
}

.ab-form-fields select {
   appearance: none;
   background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%23666' d='M6 8L1 3h10z'/%3E%3C/svg%3E");
   background-repeat: no-repeat;
   background-position: right 15px center;
   padding-right: 40px;
}

/* Select2 Dropdown Styling */
.ab-form-fields .select2-container {
   width: 100% !important;
}

.ab-form-fields .select2-container--default .select2-selection--single {
   height: 46px;
   border: 1px solid #ddd;
   border-radius: 6px;
   padding: 0 15px;
}

.ab-form-fields
   .select2-container--default
   .select2-selection--single
   .select2-selection__rendered {
   line-height: 44px;
   padding: 0;
   color: #333;
}

.ab-form-fields
   .select2-container--default
   .select2-selection--single
   .select2-selection__arrow {
   height: 44px;
   right: 10px;
}

.ab-form-fields
   .select2-container--default.select2-container--focus
   .select2-selection--single {
   border-color: var(--color-primary);
   box-shadow: 0 0 0 3px rgba(138, 43, 226, 0.1);
}

/* Order Notes */
.ab-order-notes label {
   display: block;
   font-size: 13px;
   font-weight: 600;
   color: #333;
   margin-bottom: 10px;
}

.ab-order-notes textarea {
   width: 100%;
   padding: 15px;
   border: 1px solid #ddd;
   border-radius: 6px;
   font-size: 14px;
   color: #333;
   resize: vertical;
   min-height: 120px;
   transition: border-color 0.2s ease;
}

.ab-order-notes textarea:focus {
   border-color: var(--color-primary);
   outline: none;
   box-shadow: 0 0 0 3px rgba(138, 43, 226, 0.1);
}

.ab-order-notes textarea::placeholder {
   color: #999;
}

/* Order Summary Sidebar */
.ab-checkout-order {
   position: sticky;
   top: 100px;
}

.ab-order-summary {
   background: #fff;
   border-radius: 12px;
   overflow: hidden;
   box-shadow: 0 2px 12px rgba(0, 0, 0, 0.08);
}

.ab-order-title {
   background: #f8f9fa;
   margin: 0;
   padding: 20px 25px;
   font-size: 15px;
   font-weight: 700;
   color: #333;
   text-transform: uppercase;
   letter-spacing: 0.5px;
   border-bottom: 2px solid #e0e0e0;
}

.ab-order-content {
   padding: 0 20px 20px;
}

/* Order Table */
.ab-order-table {
   width: 100%;
   border-collapse: separate;
   border-spacing: 0;
}

.ab-order-table thead {
   display: none;
}

.ab-order-table tbody {
   display: flex;
   flex-direction: column;
   gap: 12px;
}

.ab-order-table tbody tr {
   display: flex;
   justify-content: space-between;
   align-items: flex-start;
   background: #f9fafb;
   border: 1px solid #e5e7eb;
   border-radius: 12px;
   padding: 16px 18px;
   box-shadow: 0 4px 10px rgba(15, 23, 42, 0.05);
}

.ab-order-table tbody td {
   padding: 0;
   font-size: 14px;
   color: #1f2937;
   border: none;
}

.ab-order-table tbody td.ab-product-col {
   font-weight: 600;
   text-transform: none;
   letter-spacing: 0;
   max-width: 65%;
}

.ab-order-table tbody td.ab-total-col {
   text-align: right;
   white-space: nowrap;
   font-weight: 600;
   color: #111827;
}

.ab-order-table .ab-qty {
   color: #6b7280;
}

/* Order Totals */
.ab-order-totals {
   padding: 20px;
   border-top: 1px solid #f0f0f0;
}

.ab-order-totals .ab-totals-row {
   display: flex;
   justify-content: space-between;
   align-items: center;
   padding: 10px 0;
}

.ab-order-totals .ab-totals-label {
   font-size: 14px;
   color: #666;
}

.ab-order-totals .ab-totals-value {
   font-size: 14px;
   font-weight: 600;
   color: #333;
}

.ab-order-totals .ab-subtotal-value {
   color: #16a34a;
   font-weight: 700;
}

.ab-order-totals .ab-shipping-value {
   color: #28a745;
}

.ab-order-totals .ab-totals-total {
   margin-top: 10px;
   padding-top: 15px;
   border-top: 2px solid #e0e0e0;
}

.ab-order-totals .ab-totals-total .ab-totals-label {
   font-size: 16px;
   font-weight: 700;
   color: #333;
}

.ab-order-totals .ab-totals-total .ab-totals-value {
   font-size: 20px;
   font-weight: 700;
   color: #16a34a;
}

/* Payment Section */
.ab-payment-section {
   padding: 20px;
   border-top: 1px solid #f0f0f0;
   background: #fafafa;
}

.ab-payment-title {
   font-size: 14px;
   font-weight: 600;
   color: #333;
   margin: 0 0 8px 0;
}

.ab-payment-desc {
   font-size: 13px;
   color: #666;
   margin: 0;
}

.ab-payment-methods .wc_payment_method {
   padding: 12px 0;
   border-bottom: 1px solid #eee;
}

.ab-payment-methods .wc_payment_method:last-child {
   border-bottom: none;
}

.ab-payment-methods .wc_payment_method label {
   display: flex;
   align-items: center;
   gap: 10px;
   font-size: 14px;
   font-weight: 500;
   color: #333;
   cursor: pointer;
}

.ab-payment-methods .payment_box {
   margin-top: 10px;
   padding: 12px;
   background: #fff;
   border-radius: 6px;
   font-size: 13px;
   color: #666;
}

/* Place Order Section */
.ab-place-order {
   padding: 20px;
   border-top: 1px solid #f0f0f0;
}

.ab-place-order .woocommerce-terms-and-conditions-wrapper {
   margin-bottom: 15px;
}

.ab-place-order .woocommerce-form__label-for-checkbox {
   display: flex;
   align-items: flex-start;
   gap: 10px;
   font-size: 13px;
   color: #666;
   cursor: pointer;
}

.ab-place-order .woocommerce-form__label-for-checkbox input[type='checkbox'] {
   margin-top: 3px;
   flex-shrink: 0;
}

.ab-place-order .woocommerce-form__label-for-checkbox a {
   color: var(--color-primary);
   font-weight: 600;
}

.ab-place-order-btn {
   display: block;
   width: 100%;
   background: var(--color-primary);
   color: #fff !important;
   border: none;
   padding: 18px 25px;
   font-size: 15px;
   font-weight: 700;
   text-transform: uppercase;
   letter-spacing: 1px;
   border-radius: 8px;
   cursor: pointer;
   transition: all 0.3s ease;
}

.ab-place-order-btn:hover {
   background: var(--color-primary-hover);
   transform: translateY(-2px);
   box-shadow: 0 5px 20px rgba(138, 43, 226, 0.3);
}

/* Hide default WooCommerce elements */
.woocommerce-checkout h3#order_review_heading,
.woocommerce-checkout #order_review,
.woocommerce-checkout .col2-set,
.woocommerce-checkout .woocommerce-NoticeGroup,
.ab-checkout-form .woocommerce-billing-fields > h3,
.ab-checkout-form .woocommerce-shipping-fields > h3,
.ab-checkout-form #ship-to-different-address {
   display: none !important;
}

/* Show billing fields properly */
.ab-checkout-billing .woocommerce-billing-fields,
.ab-checkout-billing .woocommerce-shipping-fields {
   display: block !important;
}

/* Checkout Mobile Styles */
@media (max-width: 991px) {
   .ab-checkout-layout {
      grid-template-columns: 1fr;
      gap: 25px;
   }

   .ab-checkout-order {
      position: static;
   }
}

@media (max-width: 768px) {
   .ab-checkout-page {
      padding: 25px 15px;
   }

   .ab-checkout-steps {
      display: none;
   }

   .ab-checkout-steps .ab-step-arrow {
      transform: rotate(90deg);
   }

   .ab-points-banner {
      flex-direction: column;
      text-align: center;
      gap: 10px;
      padding: 15px 20px;
   }

   .ab-billing-section,
   .ab-additional-section {
      padding: 20px;
   }

   .ab-form-fields .woocommerce-billing-fields__field-wrapper,
   .ab-form-fields .woocommerce-shipping-fields__field-wrapper {
      grid-template-columns: 1fr;
   }

   .ab-form-fields .form-row-first,
   .ab-form-fields .form-row-last {
      grid-column: 1;
   }

   .ab-order-totals .ab-totals-total .ab-totals-value {
      font-size: 18px;
   }

   .ab-trust-badges {
      grid-template-columns: 1fr;
   }
}

/* ============================================
   LOGIN PAGE - CBM DENTAL STYLE
   ============================================ */

/* Login Page Container */
.ab-login-page {
   background: linear-gradient(135deg, #f8fafc 0%, #e2e8f0 100%);
   min-height: 100vh;
   padding: 40px 20px;
   display: flex;
   align-items: center;
   justify-content: center;
}

.ab-login-container {
   background: #fff;
   border-radius: 24px;
   box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.15);
   max-width: 480px;
   width: 100%;
   padding: 48px 40px;
   position: relative;
   overflow: hidden;
}

.ab-login-container::before {
   content: '';
   position: absolute;
   top: 0;
   left: 0;
   right: 0;
   height: 4px;
   background: linear-gradient(
      90deg,
      var(--color-primary) 0%,
      var(--color-secondary) 100%
   );
}

/* Login Header */
.ab-login-header {
   text-align: center;
   margin-bottom: 32px;
}

.ab-login-logo {
   width: 80px;
   height: 80px;
   background: linear-gradient(
      135deg,
      var(--color-primary-light) 0%,
      #dbeafe 100%
   );
   border-radius: 20px;
   display: flex;
   align-items: center;
   justify-content: center;
   margin: 0 auto 20px;
   color: var(--color-primary);
}

.ab-login-title {
   font-size: 1.75rem;
   font-weight: 700;
   color: var(--color-gray-900);
   margin: 0 0 8px;
}

.ab-login-subtitle {
   font-size: 0.9375rem;
   color: var(--color-gray-500);
   margin: 0;
}

/* Tab Navigation */
.ab-login-tabs {
   display: flex;
   background: var(--color-gray-100);
   border-radius: 12px;
   padding: 4px;
   margin-bottom: 32px;
   gap: 4px;
}

.ab-tab-btn {
   flex: 1;
   display: flex;
   align-items: center;
   justify-content: center;
   gap: 8px;
   padding: 12px 16px;
   border: none;
   background: transparent;
   border-radius: 10px;
   font-size: 0.875rem;
   font-weight: 600;
   color: var(--color-gray-500);
   cursor: pointer;
   transition: all 0.2s ease;
}

.ab-tab-btn:hover {
   color: var(--color-gray-700);
}

.ab-tab-btn.active {
   background: #fff;
   color: var(--color-primary);
   box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
}

.ab-tab-btn svg {
   width: 18px;
   height: 18px;
}

/* Tab Content */
.ab-tab-content {
   display: none;
}

.ab-tab-content.active {
   display: block;
   animation: fadeIn 0.3s ease;
}

@keyframes fadeIn {
   from {
      opacity: 0;
      transform: translateY(10px);
   }
   to {
      opacity: 1;
      transform: translateY(0);
   }
}

/* Login Form */
.ab-login-form {
   display: flex;
   flex-direction: column;
   gap: 20px;
}

.ab-form-group {
   display: flex;
   flex-direction: column;
   gap: 8px;
}

.ab-form-label {
   display: flex;
   align-items: center;
   gap: 8px;
   font-size: 0.875rem;
   font-weight: 600;
   color: var(--color-gray-700);
}

.ab-form-label svg {
   width: 18px;
   height: 18px;
   color: var(--color-gray-400);
}

.ab-form-label .required {
   color: var(--color-error);
}

.ab-form-input {
   width: 100%;
   padding: 14px 16px;
   border: 2px solid var(--color-gray-200);
   border-radius: 12px;
   font-size: 1rem;
   color: var(--color-gray-900);
   background: var(--color-gray-50);
   transition: all 0.2s ease;
   box-sizing: border-box;
}

.ab-form-input::placeholder {
   color: var(--color-gray-400);
}

.ab-form-input:hover {
   border-color: var(--color-gray-300);
}

.ab-form-input:focus {
   outline: none;
   border-color: var(--color-primary);
   background: #fff;
   box-shadow: 0 0 0 4px rgba(59, 130, 246, 0.1);
}

/* Password Field */
.ab-password-wrapper {
   position: relative;
}

.ab-password-wrapper .ab-form-input {
   padding-right: 50px;
}

.ab-toggle-password {
   position: absolute;
   right: 12px;
   top: 50%;
   transform: translateY(-50%);
   background: none;
   border: none;
   padding: 8px;
   cursor: pointer;
   color: var(--color-gray-400);
   transition: color 0.2s ease;
}

.ab-toggle-password:hover {
   color: var(--color-gray-600);
}

.ab-password-hint {
   display: flex;
   align-items: center;
   gap: 6px;
   font-size: 0.8125rem;
   color: var(--color-gray-500);
   margin-top: 4px;
}

.ab-password-hint svg {
   flex-shrink: 0;
}

/* Form Options (Remember me + Forgot password) */
.ab-form-options {
   display: flex;
   align-items: center;
   justify-content: space-between;
   flex-wrap: wrap;
   gap: 12px;
}

/* Custom Checkbox */
.ab-checkbox-label {
   display: flex;
   align-items: center;
   gap: 10px;
   cursor: pointer;
   font-size: 0.875rem;
   color: var(--color-gray-600);
}

.ab-checkbox {
   position: absolute;
   opacity: 0;
   width: 0;
   height: 0;
}

.ab-checkbox-custom {
   width: 20px;
   height: 20px;
   border: 2px solid var(--color-gray-300);
   border-radius: 6px;
   display: flex;
   align-items: center;
   justify-content: center;
   transition: all 0.2s ease;
   flex-shrink: 0;
}

.ab-checkbox:checked + .ab-checkbox-custom {
   background: var(--color-primary);
   border-color: var(--color-primary);
}

.ab-checkbox:checked + .ab-checkbox-custom::after {
   content: '';
   width: 6px;
   height: 10px;
   border: solid #fff;
   border-width: 0 2px 2px 0;
   transform: rotate(45deg);
   margin-top: -2px;
}

.ab-checkbox:focus + .ab-checkbox-custom {
   box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.2);
}

.ab-forgot-link {
   font-size: 0.875rem;
   color: var(--color-primary);
   text-decoration: none;
   font-weight: 500;
   transition: color 0.2s ease;
}

.ab-forgot-link:hover {
   color: var(--color-primary-hover);
   text-decoration: underline;
}

/* Submit Button */
.ab-submit-btn {
   display: flex;
   align-items: center;
   justify-content: center;
   gap: 10px;
   width: 100%;
   padding: 16px 24px;
   background: linear-gradient(135deg, var(--color-primary) 0%, #2563eb 100%);
   color: #fff;
   border: none;
   border-radius: 12px;
   font-size: 1rem;
   font-weight: 600;
   cursor: pointer;
   transition: all 0.3s ease;
   margin-top: 8px;
}

.ab-submit-btn:hover {
   background: linear-gradient(135deg, #2563eb 0%, #1d4ed8 100%);
   transform: translateY(-2px);
   box-shadow: 0 8px 20px rgba(59, 130, 246, 0.35);
}

.ab-submit-btn:active {
   transform: translateY(0);
}

.ab-submit-btn svg {
   width: 20px;
   height: 20px;
}

.ab-submit-btn--register {
   background: linear-gradient(135deg, var(--color-secondary) 0%, #2d4a6f 100%);
}

.ab-submit-btn--register:hover {
   background: linear-gradient(135deg, #2d4a6f 0%, #1e3a5f 100%);
   box-shadow: 0 8px 20px rgba(30, 58, 95, 0.35);
}

/* Info Box */
.ab-info-box {
   display: flex;
   align-items: flex-start;
   gap: 12px;
   padding: 16px;
   background: var(--color-primary-light);
   border-radius: 12px;
   color: var(--color-primary);
}

.ab-info-box svg {
   flex-shrink: 0;
   margin-top: 2px;
}

.ab-info-box p {
   margin: 0;
   font-size: 0.875rem;
   line-height: 1.5;
}

/* Trust Badges */
.ab-login-trust {
   display: flex;
   justify-content: center;
   gap: 24px;
   margin-top: 32px;
   padding-top: 24px;
   border-top: 1px solid var(--color-gray-100);
}

.ab-trust-item {
   display: flex;
   align-items: center;
   gap: 8px;
   font-size: 0.8125rem;
   color: var(--color-gray-500);
}

.ab-trust-item svg {
   width: 18px;
   height: 18px;
   color: var(--color-success);
}

/* Lost Password Link (for login only mode) */
.ab-lost-password {
   text-align: center;
   margin-top: 16px;
}

.ab-lost-password a {
   color: var(--color-primary);
   text-decoration: none;
   font-size: 0.875rem;
   font-weight: 500;
}

.ab-lost-password a:hover {
   text-decoration: underline;
}

/* Login Page Responsive */
@media (max-width: 768px) {
   .ab-login-page {
      padding: 20px 15px;
   }

   .ab-login-container {
      padding: 32px 20px;
      border-radius: 20px;
      max-width: 100%;
   }

   .ab-login-header {
      padding: 0 0 24px;
   }

   .ab-login-logo {
      width: 50px;
      height: 50px;
   }

   .ab-login-title {
      font-size: 1.5rem;
   }

   .ab-login-subtitle {
      font-size: 0.875rem;
   }

   .ab-login-tabs {
      gap: 8px;
      padding: 4px;
   }

   .ab-tab-btn {
      font-size: 0.875rem;
      padding: 11px 14px;
      gap: 6px;
   }

   .ab-tab-btn svg {
      width: 18px;
      height: 18px;
   }

   .ab-form-group {
      margin-bottom: 16px;
   }

   .ab-form-label {
      font-size: 0.875rem;
      gap: 6px;
   }

   .ab-form-label svg {
      width: 16px;
      height: 16px;
   }

   .ab-form-input {
      font-size: 16px !important; /* Prevents iOS zoom */
      padding: 12px 14px;
   }

   .ab-password-wrapper .ab-form-input {
      padding-right: 42px;
   }

   .ab-toggle-password {
      right: 12px;
   }

   .ab-form-options {
      flex-direction: column;
      align-items: flex-start;
      gap: 12px;
   }

   .ab-submit-btn {
      padding: 14px 24px;
      font-size: 0.9375rem;
   }

   .ab-login-trust {
      flex-direction: column;
      gap: 16px;
      padding: 16px;
   }

   .ab-trust-item {
      font-size: 0.8125rem;
      gap: 8px;
   }

   .ab-divider {
      margin: 20px 0;
      font-size: 0.8125rem;
   }

   .ab-social-login {
      gap: 10px;
   }

   .ab-social-btn {
      padding: 11px 16px;
      font-size: 0.875rem;
   }
}

@media (max-width: 520px) {
   .ab-login-container {
      padding: 32px 24px;
      border-radius: 20px;
   }

   .ab-login-title {
      font-size: 1.5rem;
   }

   .ab-form-options {
      flex-direction: column;
      align-items: flex-start;
   }

   .ab-login-trust {
      flex-direction: column;
      align-items: center;
      gap: 12px;
   }

   .ab-tab-btn {
      font-size: 0.8125rem;
      padding: 10px 12px;
   }

   .ab-tab-btn svg {
      width: 16px;
      height: 16px;
   }
}

@media (max-width: 380px) {
   .ab-login-page {
      padding: 16px 12px;
   }

   .ab-login-container {
      padding: 24px 16px;
   }

   .ab-login-logo {
      width: 44px;
      height: 44px;
   }

   .ab-login-title {
      font-size: 1.375rem;
   }

   .ab-login-subtitle {
      font-size: 0.8125rem;
   }

   .ab-login-tabs {
      gap: 6px;
   }

   .ab-tab-btn {
      font-size: 0.75rem;
      padding: 9px 10px;
      gap: 4px;
   }

   .ab-tab-btn svg {
      width: 14px;
      height: 14px;
   }

   .ab-form-input {
      padding: 11px 12px;
   }

   .ab-submit-btn {
      padding: 12px 20px;
      font-size: 0.875rem;
   }
}

/* Override default WooCommerce login styles */
body.woocommerce-account:not(.logged-in) .entry-content > .woocommerce {
   max-width: 100% !important;
   padding: 0 !important;
}

body.woocommerce-account:not(.logged-in) #customer_login {
   display: none;
}

/* Hide default WooCommerce form when custom form is present */
.ab-login-page + .u-columns,
.ab-login-page ~ .u-columns {
   display: none !important;
}

/* ============================================
   MY ACCOUNT PAGE - CBM DENTAL STYLE
   ============================================ */

/* Reset parent containers for custom account page - target only entry-content area */
body.woocommerce-account .entry-content .woocommerce,
body.woocommerce-account #primary .woocommerce,
body.woocommerce-account .site-main .woocommerce {
   padding: 0 !important;
   max-width: 100% !important;
   width: 100% !important;
   margin: 0 !important;
}

/* Force remove WooCommerce default float-based layout - only inside ab-account-page */
.ab-account-page .woocommerce-MyAccount-navigation {
   float: none !important;
   width: auto !important;
}

.ab-account-page .woocommerce-MyAccount-content {
   float: none !important;
   width: auto !important;
}

/* Main Account Page Container */
.ab-account-page {
   background: linear-gradient(180deg, #f8f9fa 0%, #f3f4f6 100%);
   min-height: 100vh;
   padding: 40px 20px 60px;
   width: 100%;
   box-sizing: border-box;
}

.ab-account-page > .container {
   max-width: 1260px !important;
   margin: 0 auto !important;
   padding: 0 15px !important;
   width: 100% !important;
   box-sizing: border-box;
}

/* Account Header */
.ab-account-header {
   margin-bottom: 30px;
}

.ab-account-hero {
   background: linear-gradient(135deg, var(--color-secondary) 0%, #2d4a6f 100%);
   border-radius: 20px;
   padding: 32px 40px;
   display: flex;
   align-items: center;
   gap: 24px;
   margin-bottom: 24px;
   position: relative;
   overflow: hidden;
}

.ab-account-hero::before {
   content: '';
   position: absolute;
   top: -50%;
   right: -10%;
   width: 300px;
   height: 300px;
   background: rgba(59, 130, 246, 0.15);
   border-radius: 50%;
   filter: blur(60px);
}

.ab-avatar-wrapper {
   position: relative;
   flex-shrink: 0;
}

.ab-avatar-wrapper .ab-avatar,
.ab-avatar-wrapper img {
   width: 80px;
   height: 80px;
   border-radius: 50%;
   border: 4px solid rgba(255, 255, 255, 0.3);
   object-fit: cover;
}

.ab-avatar-badge {
   position: absolute;
   bottom: 0;
   right: 0;
   width: 24px;
   height: 24px;
   background: var(--color-success);
   border-radius: 50%;
   display: flex;
   align-items: center;
   justify-content: center;
   color: #fff;
   border: 2px solid var(--color-secondary);
}

.ab-account-info {
   flex: 1;
   position: relative;
   z-index: 1;
}

.ab-account-title {
   color: #fff;
   font-size: 1.75rem;
   font-weight: 700;
   margin: 0 0 4px;
}

.ab-account-email {
   color: rgba(255, 255, 255, 0.7);
   font-size: 0.9375rem;
   margin: 0;
}

/* Quick Stats */
.ab-quick-stats {
   display: grid;
   grid-template-columns: repeat(3, 1fr);
   gap: 16px;
}

.ab-stat-card {
   background: #fff;
   border-radius: 16px;
   padding: 20px 24px;
   display: flex;
   align-items: center;
   gap: 16px;
   box-shadow: 0 4px 16px rgba(15, 23, 42, 0.06);
   border: 1px solid rgba(148, 163, 184, 0.1);
   transition: all 0.2s ease;
}

.ab-stat-card:hover {
   transform: translateY(-2px);
   box-shadow: 0 8px 24px rgba(15, 23, 42, 0.1);
}

.ab-stat-icon {
   width: 48px;
   height: 48px;
   background: var(--color-primary-light);
   border-radius: 12px;
   display: flex;
   align-items: center;
   justify-content: center;
   color: var(--color-primary);
   flex-shrink: 0;
}

.ab-stat-icon--green {
   background: rgba(16, 185, 129, 0.12);
   color: #059669;
}

.ab-stat-icon--purple {
   background: rgba(139, 92, 246, 0.12);
   color: #7c3aed;
}

.ab-stat-content {
   display: flex;
   flex-direction: column;
   gap: 2px;
}

.ab-stat-number {
   font-size: 1.25rem;
   font-weight: 700;
   color: var(--color-gray-900);
}

.ab-stat-label {
   font-size: 0.8125rem;
   color: var(--color-gray-500);
}

/* Account Layout */
.ab-account-layout {
   display: grid !important;
   grid-template-columns: 300px minmax(0, 1fr) !important;
   gap: 32px !important;
   margin-bottom: 40px;
   align-items: start !important;
}

/* ===============================================
   ADDRESSES PAGE - AB Dentaire Custom Styling
   =============================================== */

/* Addresses Page Container */
.ab-addresses-page {
   max-width: 100%;
}

/* Addresses Header */
.ab-addresses-header {
   background: linear-gradient(135deg, var(--color-primary) 0%, #2563eb 100%);
   border-radius: var(--radius-lg);
   padding: 32px;
   margin-bottom: 32px;
   box-shadow: var(--shadow-lg);
}

.ab-addresses-header-content {
   display: flex;
   align-items: center;
   gap: 20px;
}

.ab-addresses-icon {
   width: 64px;
   height: 64px;
   background: rgba(255, 255, 255, 0.15);
   backdrop-filter: blur(10px);
   border-radius: var(--radius-md);
   display: flex;
   align-items: center;
   justify-content: center;
   color: white;
   flex-shrink: 0;
}

.ab-addresses-title {
   font-size: 1.75rem;
   font-weight: 700;
   color: white;
   margin: 0 0 6px 0;
   letter-spacing: -0.02em;
}

.ab-addresses-subtitle {
   font-size: 0.9375rem;
   color: rgba(255, 255, 255, 0.9);
   margin: 0;
   line-height: 1.6;
}

/* Addresses Grid */
.ab-addresses-grid {
   display: grid;
   grid-template-columns: repeat(auto-fit, minmax(400px, 1fr));
   gap: 24px;
   margin-bottom: 32px;
}

/* Address Card */
.ab-address-card {
   background: white;
   border-radius: var(--radius-lg);
   border: 1px solid var(--color-gray-200);
   box-shadow: var(--shadow-sm);
   transition: all 0.3s ease;
   display: flex;
   flex-direction: column;
   overflow: hidden;
}

.ab-address-card:hover {
   box-shadow: var(--shadow-md);
   transform: translateY(-2px);
   border-color: var(--color-primary);
}

/* Card Header */
.ab-address-card-header {
   padding: 20px 24px;
   background: linear-gradient(to bottom, var(--color-gray-50), white);
   border-bottom: 1px solid var(--color-gray-200);
   display: flex;
   align-items: center;
   justify-content: space-between;
}

.ab-address-type {
   display: flex;
   align-items: center;
   gap: 12px;
}

.ab-address-type-icon {
   width: 40px;
   height: 40px;
   background: var(--color-primary-light);
   border-radius: var(--radius-md);
   display: flex;
   align-items: center;
   justify-content: center;
   color: var(--color-primary);
   flex-shrink: 0;
}

.ab-address-card--billing .ab-address-type-icon {
   background: rgba(59, 130, 246, 0.12);
   color: var(--color-primary);
}

.ab-address-card--shipping .ab-address-type-icon {
   background: rgba(16, 185, 129, 0.12);
   color: #059669;
}

.ab-address-type-title {
   font-size: 1.125rem;
   font-weight: 600;
   color: var(--color-gray-900);
   margin: 0;
}

/* Address Badges */
.ab-address-badge {
   display: inline-flex;
   align-items: center;
   gap: 6px;
   padding: 6px 12px;
   border-radius: var(--radius-full);
   font-size: 0.8125rem;
   font-weight: 600;
}

.ab-address-badge--active {
   background: rgba(16, 185, 129, 0.12);
   color: #059669;
}

.ab-address-badge--empty {
   background: var(--color-gray-100);
   color: var(--color-gray-500);
}

/* Card Body */
.ab-address-card-body {
   padding: 24px;
   flex: 1;
   min-height: 160px;
}

.ab-address-content {
   font-style: normal;
   line-height: 1.7;
   color: var(--color-gray-700);
}

.ab-address-content br {
   margin-bottom: 4px;
}

/* Empty Address State */
.ab-address-empty {
   display: flex;
   flex-direction: column;
   align-items: center;
   justify-content: center;
   text-align: center;
   padding: 20px;
   min-height: 160px;
}

.ab-address-empty svg {
   color: var(--color-gray-300);
   margin-bottom: 16px;
}

.ab-address-empty p {
   font-size: 0.9375rem;
   font-weight: 500;
   color: var(--color-gray-600);
   margin: 0 0 8px 0;
}

.ab-address-empty-hint {
   font-size: 0.8125rem;
   color: var(--color-gray-500);
   display: block;
}

/* Card Footer */
.ab-address-card-footer {
   padding: 20px 24px;
   background: var(--color-gray-50);
   border-top: 1px solid var(--color-gray-200);
}

.ab-address-edit-btn {
   display: inline-flex;
   align-items: center;
   gap: 8px;
   width: 100%;
   padding: 12px 20px;
   background: var(--color-primary);
   color: white;
   border-radius: var(--radius-md);
   font-size: 0.9375rem;
   font-weight: 600;
   text-decoration: none;
   transition: all 0.2s ease;
   justify-content: center;
   border: 2px solid transparent;
}

.ab-address-edit-btn:hover {
   background: #2563eb;
   transform: translateY(-1px);
   box-shadow: var(--shadow-md);
   color: white;
   text-decoration: none;
}

.ab-address-edit-btn:active {
   transform: translateY(0);
}

.ab-address-edit-btn svg {
   flex-shrink: 0;
}

/* Help Section */
.ab-addresses-help {
   margin-top: 32px;
}

.ab-help-card {
   background: linear-gradient(135deg, #fef3c7 0%, #fde68a 100%);
   border: 1px solid #fbbf24;
   border-radius: var(--radius-lg);
   padding: 24px;
   display: flex;
   align-items: flex-start;
   gap: 16px;
}

.ab-help-icon {
   width: 48px;
   height: 48px;
   background: rgba(245, 158, 11, 0.2);
   border-radius: var(--radius-md);
   display: flex;
   align-items: center;
   justify-content: center;
   color: #d97706;
   flex-shrink: 0;
}

.ab-help-content {
   flex: 1;
}

.ab-help-title {
   font-size: 1.0625rem;
   font-weight: 600;
   color: #92400e;
   margin: 0 0 8px 0;
}

.ab-help-text {
   font-size: 0.9375rem;
   color: #78350f;
   line-height: 1.6;
   margin: 0;
}

/* Responsive Styles */
@media (max-width: 1024px) {
   .ab-addresses-grid {
      grid-template-columns: 1fr;
   }
}

@media (max-width: 768px) {
   .ab-addresses-header {
      padding: 24px;
   }

   .ab-addresses-header-content {
      flex-direction: column;
      text-align: center;
   }

   .ab-addresses-icon {
      width: 56px;
      height: 56px;
   }

   .ab-addresses-title {
      font-size: 1.5rem;
   }

   .ab-addresses-grid {
      gap: 16px;
      grid-template-columns: 1fr;
   }

   .ab-address-card-body {
      padding: 20px;
      min-height: 140px;
   }

   .ab-help-card {
      flex-direction: column;
      text-align: center;
   }
}

/* Account Sidebar Navigation */
.ab-account-sidebar {
   position: sticky;
   top: 24px;
   height: auto !important;
   min-height: fit-content !important;
   width: 100% !important;
   min-width: 300px;
   display: block !important;
   align-self: start !important;
}

/* Override WooCommerce default navigation width - ONLY for account page */
.ab-account-page .woocommerce-MyAccount-navigation,
.ab-account-page .ab-account-sidebar .woocommerce-MyAccount-navigation {
   width: 100% !important;
   float: none !important;
   margin: 0 !important;
   display: block !important;
}

.ab-account-nav {
   background: #fff;
   border-radius: 20px;
   overflow: visible !important;
   box-shadow: 0 10px 40px rgba(15, 23, 42, 0.08);
   border: 1px solid rgba(148, 163, 184, 0.1);
   width: 100% !important;
   height: auto !important;
   min-height: fit-content !important;
   display: block !important;
}

/* Force UL inside navigation to be vertical - ONLY for account page */
.ab-account-page .ab-account-nav .ab-account-menu,
.ab-account-page .woocommerce-MyAccount-navigation ul,
.ab-account-page .ab-account-sidebar .woocommerce-MyAccount-navigation ul {
   display: flex !important;
   flex-direction: column !important;
   flex-wrap: nowrap !important;
   list-style: none !important;
   padding: 8px !important;
   margin: 0 !important;
   width: 100% !important;
}

.ab-account-page .ab-account-nav .ab-account-menu-item,
.ab-account-page .woocommerce-MyAccount-navigation ul li,
.ab-account-page .ab-account-sidebar .woocommerce-MyAccount-navigation ul li {
   display: block !important;
   width: 100% !important;
   margin: 0 0 4px 0 !important;
   padding: 0 !important;
   float: none !important;
}

/* Ensure links display properly - ONLY for account page */
.ab-account-page .ab-account-nav .ab-account-menu-item a,
.ab-account-page .woocommerce-MyAccount-navigation ul li a,
.ab-account-page .ab-account-sidebar .woocommerce-MyAccount-navigation ul li a {
   display: flex !important;
   align-items: center !important;
   width: 100% !important;
   box-sizing: border-box !important;
}

.ab-nav-header {
   padding: 20px 24px;
   background: linear-gradient(135deg, var(--color-primary) 0%, #1e40af 100%);
   border-bottom: 1px solid rgba(255, 255, 255, 0.1);
}

.ab-nav-title {
   color: #fff;
   font-size: 0.875rem;
   font-weight: 700;
   text-transform: uppercase;
   letter-spacing: 0.08em;
   margin: 0;
}

/* Account Menu - specific to account page sidebar (different from header .ab-nav-menu) */
.ab-account-menu {
   list-style: none !important;
   padding: 8px !important;
   margin: 0 !important;
   display: flex !important;
   flex-direction: column !important;
   gap: 4px !important;
}

/* Account Menu Items - specific to account page sidebar */
.ab-account-menu-item {
   margin: 0 !important;
   list-style: none !important;
   padding: 0 !important;
   display: block !important;
   width: 100% !important;
}

.ab-account-menu-item a {
   display: flex !important;
   align-items: center;
   gap: 12px;
   padding: 14px 16px !important;
   color: var(--color-gray-600);
   text-decoration: none;
   font-weight: 500;
   font-size: 0.9375rem;
   border-radius: 12px;
   transition: all 0.2s ease;
   position: relative;
   white-space: nowrap;
}

.ab-account-menu-item a:hover {
   background: var(--color-gray-50);
   color: var(--color-gray-900);
}

.ab-account-menu-item.is-active a {
   background: var(--color-primary-light);
   color: var(--color-primary);
   font-weight: 600;
}

.ab-nav-icon {
   width: 20px;
   height: 20px;
   display: flex;
   align-items: center;
   justify-content: center;
   flex-shrink: 0;
}

.ab-nav-icon svg {
   width: 20px;
   height: 20px;
}

.ab-nav-label {
   flex: 1;
}

.ab-nav-badge {
   background: var(--color-primary);
   color: #fff;
   font-size: 0.6875rem;
   font-weight: 700;
   padding: 2px 8px;
   border-radius: 999px;
   min-width: 20px;
   text-align: center;
}

.ab-nav-arrow {
   opacity: 0;
   transform: translateX(-4px);
   transition: all 0.2s ease;
   color: var(--color-gray-400);
}

.ab-account-menu-item a:hover .ab-nav-arrow {
   opacity: 1;
   transform: translateX(0);
}

.ab-account-menu-item.is-active .ab-nav-arrow {
   opacity: 1;
   transform: translateX(0);
   color: var(--color-primary);
}

/* Logout styling */
.ab-account-menu-item.woocommerce-MyAccount-navigation-link--customer-logout a {
   color: #dc2626;
}

.ab-account-menu-item.woocommerce-MyAccount-navigation-link--customer-logout
   a:hover {
   background: rgba(239, 68, 68, 0.08);
   color: #dc2626;
}

/* Account Content Area */
.ab-account-content {
   min-width: 0;
   flex: 1;
}

.ab-account-content .woocommerce-MyAccount-content {
   background: #fff;
   border-radius: 20px;
   padding: 32px;
   box-shadow: 0 10px 40px rgba(15, 23, 42, 0.08);
   border: 1px solid rgba(148, 163, 184, 0.1);
   width: 100% !important;
   float: none !important;
}

/* Dashboard Styles */
.ab-dashboard {
   display: flex;
   flex-direction: column;
   gap: 32px;
}

.ab-dashboard-welcome {
   background: linear-gradient(
      135deg,
      var(--color-primary-light) 0%,
      rgba(219, 234, 254, 0.5) 100%
   );
   border-radius: 16px;
   padding: 24px;
   border: 1px solid rgba(59, 130, 246, 0.15);
}

.ab-welcome-content h2 {
   font-size: 1.25rem;
   color: var(--color-gray-900);
   margin: 0 0 8px;
}

.ab-welcome-text {
   color: var(--color-gray-600);
   font-size: 0.9375rem;
   line-height: 1.6;
   margin: 0 0 12px;
}

.ab-welcome-text a {
   color: var(--color-primary);
   font-weight: 600;
   text-decoration: none;
}

.ab-welcome-text a:hover {
   text-decoration: underline;
}

.ab-logout-text {
   font-size: 0.875rem;
   color: var(--color-gray-500);
   margin: 0;
}

.ab-logout-text a {
   color: #dc2626;
   font-weight: 600;
   text-decoration: none;
}

.ab-logout-text a:hover {
   text-decoration: underline;
}

/* Quick Actions Grid */
.ab-quick-actions {
   display: flex;
   flex-direction: column;
   gap: 16px;
}

.ab-section-title {
   font-size: 1rem;
   font-weight: 700;
   color: var(--color-gray-900);
   text-transform: uppercase;
   letter-spacing: 0.05em;
   margin: 0;
}

.ab-actions-grid {
   display: grid;
   grid-template-columns: repeat(2, 1fr);
   gap: 16px;
}

.ab-action-card {
   background: var(--color-gray-50);
   border-radius: 16px;
   padding: 20px;
   display: flex;
   align-items: center;
   gap: 16px;
   text-decoration: none;
   border: 1px solid transparent;
   transition: all 0.2s ease;
}

.ab-action-card:hover {
   background: #fff;
   border-color: var(--color-primary);
   box-shadow: 0 8px 24px rgba(59, 130, 246, 0.12);
   transform: translateY(-2px);
}

.ab-action-icon {
   width: 52px;
   height: 52px;
   background: var(--color-primary-light);
   border-radius: 14px;
   display: flex;
   align-items: center;
   justify-content: center;
   color: var(--color-primary);
   flex-shrink: 0;
}

.ab-action-icon--green {
   background: rgba(16, 185, 129, 0.12);
   color: #059669;
}

.ab-action-icon--purple {
   background: rgba(139, 92, 246, 0.12);
   color: #7c3aed;
}

.ab-action-icon--orange {
   background: rgba(249, 115, 22, 0.12);
   color: #ea580c;
}

.ab-action-content {
   flex: 1;
}

.ab-action-content h4 {
   font-size: 0.9375rem;
   font-weight: 600;
   color: var(--color-gray-900);
   margin: 0 0 2px;
}

.ab-action-content p {
   font-size: 0.8125rem;
   color: var(--color-gray-500);
   margin: 0;
}

.ab-action-arrow {
   font-size: 1.25rem;
   color: var(--color-gray-400);
   opacity: 0;
   transform: translateX(-8px);
   transition: all 0.2s ease;
}

.ab-action-card:hover .ab-action-arrow {
   opacity: 1;
   transform: translateX(0);
   color: var(--color-primary);
}

/* Recent Orders Section */
.ab-recent-orders {
   display: flex;
   flex-direction: column;
   gap: 16px;
}

.ab-section-header {
   display: flex;
   justify-content: space-between;
   align-items: center;
}

.ab-view-all {
   font-size: 0.875rem;
   font-weight: 600;
   color: var(--color-primary);
   text-decoration: none;
}

.ab-view-all:hover {
   text-decoration: underline;
}

.ab-orders-list {
   display: flex;
   flex-direction: column;
   gap: 12px;
}

.ab-order-card {
   background: var(--color-gray-50);
   border-radius: 14px;
   padding: 18px 20px;
   border: 1px solid var(--color-gray-100);
   transition: all 0.2s ease;
}

.ab-order-card:hover {
   background: #fff;
   border-color: var(--color-gray-200);
   box-shadow: 0 4px 12px rgba(15, 23, 42, 0.06);
}

.ab-order-header {
   display: flex;
   justify-content: space-between;
   align-items: center;
   margin-bottom: 12px;
}

.ab-order-number {
   font-size: 1rem;
   font-weight: 700;
   color: var(--color-gray-900);
}

.ab-order-status {
   font-size: 0.75rem;
   font-weight: 600;
   text-transform: uppercase;
   letter-spacing: 0.04em;
   padding: 4px 12px;
   border-radius: 999px;
}

.ab-status--completed,
.ab-status--processing {
   background: rgba(16, 185, 129, 0.12);
   color: #059669;
}

.ab-status--pending,
.ab-status--on-hold {
   background: rgba(245, 158, 11, 0.12);
   color: #d97706;
}

.ab-status--cancelled,
.ab-status--failed {
   background: rgba(239, 68, 68, 0.12);
   color: #dc2626;
}

.ab-order-details {
   display: flex;
   justify-content: space-between;
   align-items: center;
   margin-bottom: 12px;
}

.ab-order-date {
   display: flex;
   align-items: center;
   gap: 6px;
   font-size: 0.875rem;
   color: var(--color-gray-500);
}

.ab-order-total {
   font-size: 1rem;
   color: var(--color-primary);
}

.ab-order-actions {
   display: flex;
   justify-content: flex-end;
}

.ab-btn-view {
   background: var(--color-primary);
   color: #fff;
   padding: 8px 20px;
   border-radius: 8px;
   font-size: 0.8125rem;
   font-weight: 600;
   text-decoration: none;
   transition: all 0.2s ease;
}

.ab-btn-view:hover {
   background: var(--color-primary-hover);
   transform: translateY(-1px);
   box-shadow: 0 4px 12px rgba(59, 130, 246, 0.3);
}

/* Account Page Tables (Orders, Addresses) */
.ab-account-content .woocommerce-orders-table,
.ab-account-content table.shop_table {
   width: 100%;
   border-collapse: collapse;
   border-spacing: 0;
}

.ab-account-content .woocommerce-orders-table thead th,
.ab-account-content table.shop_table thead th {
   background: var(--color-gray-50);
   padding: 14px 16px;
   font-size: 0.8125rem;
   font-weight: 700;
   text-transform: uppercase;
   letter-spacing: 0.05em;
   color: var(--color-gray-600);
   text-align: left;
   border-bottom: 2px solid var(--color-gray-200);
}

.ab-account-content .woocommerce-orders-table tbody td,
.ab-account-content table.shop_table tbody td {
   padding: 16px;
   border-bottom: 1px solid var(--color-gray-100);
   font-size: 0.9375rem;
   color: var(--color-gray-700);
   vertical-align: middle;
}

.ab-account-content .woocommerce-orders-table tbody tr:hover,
.ab-account-content table.shop_table tbody tr:hover {
   background: var(--color-gray-50);
}

.ab-account-content
   .woocommerce-orders-table
   .woocommerce-orders-table__cell-order-number
   a,
.ab-account-content .woocommerce-orders-table .order-number a {
   font-weight: 700;
   color: var(--color-primary);
   text-decoration: none;
}

.ab-account-content
   .woocommerce-orders-table
   .woocommerce-orders-table__cell-order-number
   a:hover {
   text-decoration: underline;
}

.ab-account-content
   .woocommerce-orders-table
   .woocommerce-orders-table__cell-order-actions
   a,
.ab-account-content .woocommerce-orders-table .order-actions a,
.ab-account-content table.shop_table .button {
   display: inline-block;
   background: var(--color-primary);
   color: #fff !important;
   padding: 8px 16px;
   border-radius: 8px;
   font-size: 0.8125rem;
   font-weight: 600;
   text-decoration: none;
   transition: all 0.2s ease;
   margin: 2px;
}

.ab-account-content
   .woocommerce-orders-table
   .woocommerce-orders-table__cell-order-actions
   a:hover,
.ab-account-content table.shop_table .button:hover {
   background: var(--color-primary-hover);
   transform: translateY(-1px);
}

/* Account Forms (Edit Account, Edit Address) */
.ab-account-content form.woocommerce-EditAccountForm,
.ab-account-content form.woocommerce-address-fields {
   max-width: 600px;
}

.ab-account-content .woocommerce-address-fields .form-row,
.ab-account-content .woocommerce-EditAccountForm .form-row {
   margin-bottom: 20px;
}

.ab-account-content .woocommerce-address-fields label,
.ab-account-content .woocommerce-EditAccountForm label {
   display: block;
   font-size: 0.875rem;
   font-weight: 600;
   color: var(--color-gray-700);
   margin-bottom: 8px;
}

.ab-account-content .woocommerce-address-fields input,
.ab-account-content .woocommerce-address-fields select,
.ab-account-content .woocommerce-EditAccountForm input,
.ab-account-content .woocommerce-EditAccountForm select {
   width: 100%;
   padding: 12px 16px;
   border: 2px solid var(--color-gray-200);
   border-radius: 10px;
   font-size: 0.9375rem;
   transition: all 0.2s ease;
}

.ab-account-content .woocommerce-address-fields input:focus,
.ab-account-content .woocommerce-address-fields select:focus,
.ab-account-content .woocommerce-EditAccountForm input:focus,
.ab-account-content .woocommerce-EditAccountForm select:focus {
   border-color: var(--color-primary);
   outline: none;
   box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.15);
}

.ab-account-content button[type='submit'],
.ab-account-content input[type='submit'] {
   background: linear-gradient(135deg, var(--color-primary), #1e40af);
   color: #fff;
   border: none;
   padding: 14px 32px;
   border-radius: 12px;
   font-size: 0.9375rem;
   font-weight: 700;
   cursor: pointer;
   transition: all 0.2s ease;
   text-transform: uppercase;
   letter-spacing: 0.04em;
}

.ab-account-content button[type='submit']:hover,
.ab-account-content input[type='submit']:hover {
   transform: translateY(-2px);
   box-shadow: 0 8px 20px rgba(59, 130, 246, 0.35);
}

/* Address Cards */
.ab-account-content .woocommerce-Addresses {
   display: grid;
   grid-template-columns: repeat(2, 1fr);
   gap: 24px;
}

.ab-account-content .woocommerce-Address {
   background: var(--color-gray-50);
   border-radius: 16px;
   padding: 24px;
   border: 1px solid var(--color-gray-100);
}

.ab-account-content .woocommerce-Address-title {
   display: flex;
   justify-content: space-between;
   align-items: center;
   margin-bottom: 16px;
   padding-bottom: 12px;
   border-bottom: 2px solid var(--color-gray-200);
}

.ab-account-content .woocommerce-Address-title h3 {
   font-size: 1rem;
   font-weight: 700;
   color: var(--color-gray-900);
   margin: 0;
}

.ab-account-content .woocommerce-Address-title a {
   font-size: 0.8125rem;
   font-weight: 600;
   color: var(--color-primary);
   text-decoration: none;
}

.ab-account-content .woocommerce-Address-title a:hover {
   text-decoration: underline;
}

.ab-account-content .woocommerce-Address address {
   font-style: normal;
   line-height: 1.7;
   color: var(--color-gray-600);
   font-size: 0.9375rem;
}

/* Trust Badges for Account Page */
.ab-account-page .ab-trust-badges {
   display: grid;
   grid-template-columns: repeat(4, 1fr);
   gap: 16px;
   padding: 32px 24px;
   background: #fff;
   border-radius: 20px;
   box-shadow: 0 10px 40px rgba(15, 23, 42, 0.06);
   border: 1px solid rgba(148, 163, 184, 0.1);
}

.ab-account-page .ab-trust-badge {
   display: flex;
   align-items: center;
   gap: 16px;
   padding: 16px;
   background: var(--color-gray-50);
   border-radius: 12px;
   transition: all 0.2s ease;
}

.ab-account-page .ab-trust-badge:hover {
   background: #fff;
   box-shadow: 0 4px 12px rgba(15, 23, 42, 0.08);
}

.ab-account-page .ab-badge-icon {
   width: 48px;
   height: 48px;
   background: var(--color-primary-light);
   border-radius: 12px;
   display: flex;
   align-items: center;
   justify-content: center;
   color: var(--color-primary);
   flex-shrink: 0;
}

.ab-account-page .ab-badge-text {
   display: flex;
   flex-direction: column;
   gap: 2px;
}

.ab-account-page .ab-badge-text strong {
   font-size: 0.8125rem;
   font-weight: 700;
   color: var(--color-gray-900);
   text-transform: uppercase;
   letter-spacing: 0.02em;
}

.ab-account-page .ab-badge-text span {
   font-size: 0.75rem;
   color: var(--color-gray-500);
}

/* Hide default WooCommerce account navigation styling */
.woocommerce-account:not(:has(.ab-account-page))
   .woocommerce-MyAccount-navigation {
   width: 280px;
   float: left;
}

.woocommerce-account:not(:has(.ab-account-page))
   .woocommerce-MyAccount-navigation
   ul {
   list-style: none;
   padding: 0;
   margin: 0;
   background: var(--color-white);
   border-radius: var(--radius-2xl);
   overflow: hidden;
   box-shadow: var(--shadow-sm);
}

.woocommerce-account:not(:has(.ab-account-page))
   .woocommerce-MyAccount-content {
   width: calc(100% - 320px);
   float: right;
   background: var(--color-white);
   padding: var(--space-8);
   border-radius: var(--radius-2xl);
   box-shadow: var(--shadow-sm);
}

/* Account Page Responsive */
@media (max-width: 1024px) {
   .ab-account-layout {
      grid-template-columns: 1fr !important;
      gap: 20px;
   }

   .ab-account-sidebar {
      position: static;
      width: 100% !important;
      min-width: 100% !important;
   }

   .ab-quick-stats {
      grid-template-columns: 1fr;
      gap: 12px;
   }

   .ab-account-page .ab-trust-badges {
      grid-template-columns: repeat(2, 1fr);
   }

   .ab-account-content .woocommerce-Addresses {
      grid-template-columns: 1fr;
   }
}

@media (max-width: 768px) {
   .ab-account-page {
      padding: 20px 15px 40px;
   }

   .ab-account-hero {
      flex-direction: column;
      text-align: center;
      padding: 24px 20px;
   }

   .ab-account-title {
      font-size: 1.375rem;
   }

   .ab-actions-grid {
      grid-template-columns: 1fr;
   }

   .ab-account-page .ab-trust-badges {
      grid-template-columns: 1fr;
   }

   .ab-account-page .ab-trust-badge {
      flex-direction: column;
      text-align: center;
      padding: 20px 16px;
   }

   .ab-account-content .woocommerce-MyAccount-content {
      padding: 20px;
   }

   /* Force sidebar to full width on mobile */
   .ab-account-sidebar {
      width: 100% !important;
      min-width: 100% !important;
      max-width: 100% !important;
   }

   .ab-account-layout {
      grid-template-columns: 1fr !important;
      display: flex !important;
      flex-direction: column !important;
   }

   .ab-account-content {
      width: 100% !important;
   }

   /* Mobile table scroll */
   .ab-account-content .woocommerce-orders-table {
      display: block;
      overflow-x: auto;
      -webkit-overflow-scrolling: touch;
   }

   /* Mobile Navigation - Horizontal Scroll */
   .ab-account-nav {
      border-radius: 16px;
      margin-bottom: 16px;
   }

   .ab-nav-header {
      padding: 16px 20px;
   }

   .ab-account-menu {
      display: flex !important;
      flex-direction: row !important;
      overflow-x: auto !important;
      overflow-y: hidden !important;
      -webkit-overflow-scrolling: touch !important;
      scroll-snap-type: x mandatory;
      scrollbar-width: none;
      -ms-overflow-style: none;
      padding: 12px !important;
      gap: 8px !important;
   }

   .ab-account-menu::-webkit-scrollbar {
      display: none;
   }

   .ab-account-menu-item {
      flex: 0 0 auto !important;
      scroll-snap-align: start;
      min-width: fit-content !important;
   }

   .ab-account-menu-item a {
      padding: 12px 16px !important;
      white-space: nowrap;
      font-size: 0.875rem;
      gap: 8px;
   }

   .ab-nav-arrow {
      display: none !important;
   }

   /* Mobile Stats Cards */
   .ab-stat-card {
      padding: 16px 20px;
      gap: 12px;
   }

   .ab-stat-icon {
      width: 40px;
      height: 40px;
   }

   .ab-stat-number {
      font-size: 1.125rem;
   }

   .ab-stat-label {
      font-size: 0.75rem;
   }

   /* Mobile Dashboard Actions */
   .ab-action-card {
      padding: 16px;
      gap: 12px;
   }

   .ab-action-icon {
      width: 44px;
      height: 44px;
   }

   .ab-action-content h4 {
      font-size: 0.875rem;
   }

   .ab-action-content p {
      font-size: 0.75rem;
   }

   /* Mobile Forms */
   .ab-account-content .woocommerce-form-row {
      margin-bottom: 16px;
   }

   .ab-account-content input[type='text'],
   .ab-account-content input[type='email'],
   .ab-account-content input[type='password'],
   .ab-account-content input[type='tel'],
   .ab-account-content select,
   .ab-account-content textarea {
      font-size: 16px !important; /* Prevents zoom on iOS */
      padding: 12px 16px;
   }

   .ab-account-content .woocommerce-Button {
      width: 100%;
      padding: 14px 24px;
      font-size: 1rem;
   }

   /* Mobile Order Items */
   .ab-order-item {
      padding: 20px !important;
   }

   /* Mobile Address Cards */
   .ab-addresses-grid {
      gap: 16px;
   }

   .ab-address-card-header {
      padding: 16px 20px;
      flex-direction: column;
      align-items: flex-start;
      gap: 12px;
   }

   .ab-address-type {
      gap: 10px;
   }

   .ab-address-type-icon {
      width: 36px;
      height: 36px;
   }

   .ab-address-type-title {
      font-size: 1rem;
   }

   .ab-address-card-body {
      padding: 20px;
      min-height: 120px;
   }

   .ab-address-card-footer {
      padding: 16px 20px;
   }

   .ab-address-edit-btn {
      padding: 12px 18px;
      font-size: 0.875rem;
   }
}

/* Extra Mobile Optimizations for very small screens */
@media (max-width: 480px) {
   .ab-account-page {
      padding: 16px 12px 32px;
   }

   .ab-account-hero {
      padding: 20px 16px;
      border-radius: 16px;
      gap: 16px;
   }

   .ab-avatar-wrapper .ab-avatar,
   .ab-avatar-wrapper img {
      width: 60px;
      height: 60px;
   }

   .ab-avatar-badge {
      width: 20px;
      height: 20px;
   }

   .ab-avatar-badge svg {
      width: 12px;
      height: 12px;
   }

   .ab-account-title {
      font-size: 1.25rem;
   }

   .ab-account-email {
      font-size: 0.875rem;
   }

   .ab-quick-stats {
      gap: 10px;
   }

   .ab-stat-card {
      padding: 14px 16px;
      flex-direction: column;
      text-align: center;
      gap: 8px;
   }

   .ab-stat-icon {
      width: 36px;
      height: 36px;
   }

   .ab-stat-number {
      font-size: 1rem;
   }

   .ab-account-content .woocommerce-MyAccount-content {
      padding: 16px;
      border-radius: 16px;
   }

   .ab-nav-header {
      padding: 14px 16px;
   }

   .ab-nav-title {
      font-size: 0.8125rem;
   }

   .ab-account-menu {
      padding: 10px !important;
   }

   .ab-account-menu-item a {
      padding: 10px 14px !important;
      font-size: 0.8125rem;
      gap: 6px;
   }

   .ab-nav-icon {
      width: 18px;
      height: 18px;
   }

   .ab-nav-icon svg {
      width: 18px;
      height: 18px;
   }

   .ab-nav-badge {
      font-size: 0.625rem;
      padding: 2px 6px;
      min-width: 18px;
   }

   .ab-section-title {
      font-size: 0.875rem;
   }

   .ab-action-card {
      padding: 14px;
      gap: 10px;
   }

   .ab-action-icon {
      width: 40px;
      height: 40px;
   }

   .ab-action-content h4 {
      font-size: 0.8125rem;
   }

   .ab-action-content p {
      font-size: 0.6875rem;
   }

   .ab-order-item {
      padding: 16px !important;
   }

   .ab-address-card-header {
      padding: 14px 16px;
   }

   .ab-address-type-icon {
      width: 32px;
      height: 32px;
   }

   .ab-address-type-title {
      font-size: 0.9375rem;
   }

   .ab-address-card-body {
      padding: 16px;
      font-size: 0.875rem;
   }

   .ab-address-card-footer {
      padding: 14px 16px;
   }

   .ab-address-edit-btn {
      padding: 10px 16px;
      font-size: 0.8125rem;
   }

   /* Mobile Help Card */
   .ab-help-card {
      padding: 16px;
      flex-direction: column;
      text-align: center;
      gap: 12px;
   }

   .ab-help-icon {
      width: 40px;
      height: 40px;
   }

   .ab-help-title {
      font-size: 1rem;
   }

   .ab-help-text {
      font-size: 0.875rem;
   }

   /* Dashboard Welcome */
   .ab-dashboard-welcome {
      padding: 20px 16px;
   }

   .ab-welcome-content h2 {
      font-size: 1.125rem;
   }

   .ab-welcome-text {
      font-size: 0.875rem;
   }

   .ab-logout-text {
      font-size: 0.8125rem;
   }
}

/* Landscape mobile optimization */
@media (max-width: 768px) and (orientation: landscape) {
   .ab-account-hero {
      flex-direction: row;
      padding: 20px 24px;
   }

   .ab-avatar-wrapper .ab-avatar,
   .ab-avatar-wrapper img {
      width: 50px;
      height: 50px;
   }

   .ab-account-title {
      font-size: 1.25rem;
   }

   .ab-quick-stats {
      grid-template-columns: repeat(3, 1fr);
   }

   .ab-stat-card {
      flex-direction: row;
      text-align: left;
      padding: 12px 16px;
   }

   .ab-actions-grid {
      grid-template-columns: repeat(2, 1fr);
   }
}

/* Tablet specific optimizations */
@media (min-width: 769px) and (max-width: 1024px) {
   .ab-account-page {
      padding: 32px 20px 50px;
   }

   .ab-account-hero {
      padding: 28px 32px;
   }

   .ab-quick-stats {
      grid-template-columns: repeat(3, 1fr);
      gap: 14px;
   }

   .ab-stat-card {
      padding: 18px 20px;
   }

   .ab-account-content .woocommerce-MyAccount-content {
      padding: 28px;
   }

   .ab-actions-grid {
      grid-template-columns: repeat(2, 1fr);
   }

   .ab-addresses-grid {
      grid-template-columns: repeat(2, 1fr);
      gap: 20px;
   }

   /* Single column layout on tablet too */
   .ab-account-layout {
      grid-template-columns: 1fr !important;
      gap: 20px;
   }

   .ab-account-sidebar {
      position: static;
      width: 100% !important;
   }

   .ab-account-menu {
      display: flex !important;
      flex-direction: row !important;
      overflow-x: auto !important;
      -webkit-overflow-scrolling: touch !important;
      scroll-snap-type: x mandatory;
   }

   .ab-account-menu-item {
      flex: 0 0 auto !important;
      min-width: fit-content !important;
   }
}

/* Orders Page Enhanced Styles */
.ab-orders-page {
   display: flex !important;
   flex-direction: column !important;
   gap: 24px !important;
}

.ab-orders-header {
   margin-bottom: 8px;
}

.ab-orders-title {
   font-size: 1.5rem;
   font-weight: 700;
   color: var(--color-gray-900);
   margin: 0 0 8px;
}

.ab-orders-subtitle {
   font-size: 0.9375rem;
   color: var(--color-gray-500);
   margin: 0;
}

.ab-orders-list {
   display: flex !important;
   flex-direction: column !important;
   gap: 16px !important;
}

/* Reset any conflicting table styles */
.ab-orders-page table,
.ab-orders-list table {
   display: none !important;
}

.ab-order-item {
   background: #fff !important;
   border-radius: 16px !important;
   padding: 24px !important;
   border: 1px solid var(--color-gray-100) !important;
   transition: all 0.2s ease;
   display: block !important;
}

.ab-order-item:hover {
   background: #fff;
   border-color: var(--color-gray-200);
   box-shadow: 0 4px 16px rgba(15, 23, 42, 0.08);
}

.ab-order-item .ab-order-header {
   display: flex !important;
   justify-content: space-between !important;
   align-items: flex-start;
   margin-bottom: 16px;
   padding-bottom: 16px;
   border-bottom: 1px solid var(--color-gray-200);
}

.ab-order-info {
   display: flex !important;
   flex-direction: column !important;
   gap: 8px;
}

.ab-order-item .ab-order-number {
   display: flex !important;
   align-items: center;
   gap: 8px;
}

.ab-order-item .ab-order-number .ab-label {
   font-size: 0.75rem;
   color: var(--color-gray-500);
   text-transform: uppercase;
   letter-spacing: 0.04em;
}

.ab-order-item .ab-order-number a {
   font-size: 1.25rem;
   font-weight: 700;
   color: var(--color-primary);
   text-decoration: none;
}

.ab-order-item .ab-order-number a:hover {
   text-decoration: underline;
}

.ab-order-item .ab-order-date {
   display: flex !important;
   align-items: center;
   gap: 6px;
   font-size: 0.875rem;
   color: var(--color-gray-500);
}

.ab-order-item .ab-order-status {
   font-size: 0.75rem;
   font-weight: 700;
   text-transform: uppercase;
   letter-spacing: 0.04em;
   padding: 8px 16px;
   border-radius: 999px;
   background: var(--color-gray-100);
   color: var(--color-gray-600);
}

/* Status Colors */
.ab-status--pending {
   background: #fef3c7 !important;
   color: #92400e !important;
}

.ab-status--processing {
   background: #dbeafe !important;
   color: #1e40af !important;
}

.ab-status--on-hold {
   background: #fce7f3 !important;
   color: #9d174d !important;
}

.ab-status--completed {
   background: #d1fae5 !important;
   color: #065f46 !important;
}

.ab-status--cancelled,
.ab-status--failed {
   background: #fee2e2 !important;
   color: #991b1b !important;
}

.ab-status--refunded {
   background: #e0e7ff !important;
   color: #3730a3 !important;
}

.ab-order-body {
   display: flex !important;
   justify-content: space-between !important;
   align-items: center !important;
   margin-bottom: 16px;
   gap: 20px;
}

.ab-order-items-preview {
   display: flex !important;
   align-items: center;
   gap: 8px;
   flex-wrap: wrap;
}

.ab-item-thumb {
   width: 56px;
   height: 56px;
   border-radius: 12px;
   overflow: hidden;
   background: #f8fafc;
   border: 1px solid var(--color-gray-200);
   flex-shrink: 0;
}

.ab-item-thumb img {
   width: 100% !important;
   height: 100% !important;
   object-fit: cover !important;
}

.ab-more-items {
   width: 56px;
   height: 56px;
   border-radius: 12px;
   background: var(--color-gray-100);
   display: flex;
   align-items: center;
   justify-content: center;
   font-size: 0.875rem;
   font-weight: 600;
   color: var(--color-gray-600);
}

.ab-order-summary {
   text-align: right;
   flex-shrink: 0;
}

.ab-order-total {
   display: flex;
   flex-direction: column;
   gap: 2px;
   margin-bottom: 4px;
}

.ab-total-label {
   font-size: 0.75rem;
   color: var(--color-gray-500);
   text-transform: uppercase;
   letter-spacing: 0.04em;
}

.ab-total-value {
   font-size: 1.375rem;
   font-weight: 700;
   color: var(--color-primary);
}

.ab-order-count {
   font-size: 0.875rem;
   color: var(--color-gray-500);
}

.ab-order-footer {
   display: flex !important;
   justify-content: flex-end;
   gap: 12px;
   padding-top: 16px;
   border-top: 1px solid var(--color-gray-100);
}

.ab-order-btn {
   display: inline-flex !important;
   align-items: center;
   justify-content: center;
   padding: 12px 24px;
   border-radius: 12px;
   font-size: 0.875rem;
   font-weight: 600;
   text-decoration: none !important;
   transition: all 0.2s ease;
}

.ab-btn-primary {
   background: var(--color-primary) !important;
   color: #fff !important;
}

.ab-btn-primary:hover {
   background: var(--color-primary-hover) !important;
   transform: translateY(-1px);
   box-shadow: 0 4px 12px rgba(59, 130, 246, 0.3);
   color: #fff !important;
}

.ab-btn-secondary {
   background: var(--color-gray-100) !important;
   color: var(--color-gray-700) !important;
}

.ab-btn-secondary:hover {
   background: var(--color-gray-200) !important;
}

/* Orders Pagination */
.ab-orders-pagination {
   display: flex;
   justify-content: center;
   align-items: center;
   gap: 16px;
   padding: 24px 0 8px;
}

.ab-page-btn {
   display: inline-flex;
   align-items: center;
   gap: 8px;
   padding: 10px 20px;
   background: var(--color-primary);
   color: #fff;
   border-radius: 10px;
   font-size: 0.875rem;
   font-weight: 600;
   text-decoration: none;
   transition: all 0.2s ease;
}

.ab-page-btn:hover {
   background: var(--color-primary-hover);
   transform: translateY(-1px);
}

.ab-page-info {
   font-size: 0.875rem;
   color: var(--color-gray-500);
}

/* No Orders State */
.ab-no-orders {
   text-align: center;
   padding: 48px 24px;
}

.ab-empty-icon {
   width: 100px;
   height: 100px;
   background: var(--color-gray-100);
   border-radius: 50%;
   display: flex;
   align-items: center;
   justify-content: center;
   margin: 0 auto 24px;
   color: var(--color-gray-400);
}

.ab-no-orders h3 {
   font-size: 1.25rem;
   font-weight: 700;
   color: var(--color-gray-900);
   margin: 0 0 8px;
}

.ab-no-orders p {
   font-size: 0.9375rem;
   color: var(--color-gray-500);
   margin: 0 0 24px;
}

.ab-btn-shop {
   display: inline-flex;
   align-items: center;
   gap: 8px;
   background: linear-gradient(135deg, var(--color-primary), #1e40af);
   color: #fff;
   padding: 14px 28px;
   border-radius: 12px;
   font-size: 0.9375rem;
   font-weight: 600;
   text-decoration: none;
   transition: all 0.2s ease;
}

.ab-btn-shop:hover {
   transform: translateY(-2px);
   box-shadow: 0 8px 20px rgba(59, 130, 246, 0.35);
}

/* Orders Mobile */
@media (max-width: 768px) {
   .ab-orders-header {
      margin-bottom: 20px;
   }

   .ab-orders-title {
      font-size: 1.375rem;
   }

   .ab-orders-subtitle {
      font-size: 0.875rem;
   }

   .ab-order-item .ab-order-header {
      flex-direction: column;
      gap: 12px;
      align-items: flex-start;
   }

   .ab-order-item .ab-order-info {
      width: 100%;
   }

   .ab-order-item .ab-order-number {
      flex-direction: column;
      align-items: flex-start;
      gap: 4px;
   }

   .ab-order-item .ab-order-date {
      font-size: 0.8125rem;
   }

   .ab-order-item .ab-order-status {
      align-self: flex-start;
      font-size: 0.8125rem;
      padding: 6px 14px;
   }

   .ab-order-body {
      flex-direction: column;
      gap: 16px;
      align-items: flex-start;
      padding: 16px 0;
   }

   .ab-order-items-preview {
      width: 100%;
      flex-wrap: wrap;
      gap: 8px;
   }

   .ab-item-thumb {
      width: 44px;
      height: 44px;
   }

   .ab-more-items {
      width: 44px;
      height: 44px;
      font-size: 0.75rem;
   }

   .ab-order-summary {
      text-align: left;
      width: 100%;
      flex-direction: row;
      justify-content: space-between;
      align-items: center;
   }

   .ab-order-total {
      flex-direction: row;
      gap: 8px;
      align-items: baseline;
   }

   .ab-order-footer {
      flex-wrap: wrap;
      justify-content: stretch;
      gap: 8px;
      padding-top: 12px;
   }

   .ab-order-btn {
      flex: 1;
      min-width: 120px;
      text-align: center;
      padding: 11px 20px;
      font-size: 0.8125rem;
   }

   .ab-orders-pagination {
      flex-direction: column;
      gap: 12px;
   }

   .ab-page-btn {
      padding: 10px 18px;
      font-size: 0.8125rem;
   }

   .ab-no-orders {
      padding: 40px 20px;
   }

   .ab-empty-icon {
      width: 80px;
      height: 80px;
      margin-bottom: 20px;
   }

   .ab-no-orders h3 {
      font-size: 1.125rem;
   }

   .ab-no-orders p {
      font-size: 0.875rem;
   }
}

@media (max-width: 480px) {
   .ab-orders-title {
      font-size: 1.25rem;
   }

   .ab-orders-subtitle {
      font-size: 0.8125rem;
   }

   .ab-order-item {
      padding: 18px !important;
   }

   .ab-order-item .ab-order-number .ab-label {
      font-size: 0.6875rem;
   }

   .ab-order-item .ab-order-number a {
      font-size: 1rem;
   }

   .ab-order-item .ab-order-date {
      font-size: 0.75rem;
   }

   .ab-order-item .ab-order-date svg {
      width: 14px;
      height: 14px;
   }

   .ab-order-item .ab-order-status {
      font-size: 0.75rem;
      padding: 5px 12px;
   }

   .ab-order-body {
      padding: 14px 0;
   }

   .ab-item-thumb {
      width: 40px;
      height: 40px;
   }

   .ab-more-items {
      width: 40px;
      height: 40px;
      font-size: 0.6875rem;
   }

   .ab-order-total .ab-total-label {
      font-size: 0.75rem;
   }

   .ab-order-total .ab-total-value {
      font-size: 1rem;
   }

   .ab-order-count {
      font-size: 0.8125rem;
   }

   .ab-order-footer {
      flex-direction: column;
      gap: 8px;
   }

   .ab-order-btn {
      width: 100%;
      min-width: auto;
      padding: 11px 16px;
   }

   .ab-empty-icon {
      width: 70px;
      height: 70px;
   }

   .ab-no-orders h3 {
      font-size: 1rem;
   }

   .ab-no-orders p {
      font-size: 0.8125rem;
      margin-bottom: 20px;
   }

   .ab-btn-shop {
      padding: 12px 24px;
      font-size: 0.875rem;
   }
}

/* Edit Account Form Styles */
.ab-edit-account {
   display: flex;
   flex-direction: column;
   gap: 28px;
}

.ab-form-header {
   display: flex;
   align-items: center;
   gap: 16px;
   padding-bottom: 20px;
   border-bottom: 2px solid var(--color-gray-100);
}

.ab-form-icon {
   width: 56px;
   height: 56px;
   background: linear-gradient(
      135deg,
      var(--color-primary-light),
      rgba(219, 234, 254, 0.5)
   );
   border-radius: 14px;
   display: flex;
   align-items: center;
   justify-content: center;
   color: var(--color-primary);
}

.ab-form-title-group h2 {
   font-size: 1.25rem;
   font-weight: 700;
   color: var(--color-gray-900);
   margin: 0 0 4px;
}

.ab-form-title-group p {
   font-size: 0.875rem;
   color: var(--color-gray-500);
   margin: 0;
}

.ab-account-form {
   display: flex;
   flex-direction: column;
   gap: 24px;
}

.ab-form-section {
   background: var(--color-gray-50);
   border-radius: 16px;
   padding: 24px;
   border: 1px solid var(--color-gray-100);
}

.ab-section-label {
   display: flex;
   align-items: center;
   gap: 10px;
   font-size: 0.9375rem;
   font-weight: 700;
   color: var(--color-gray-800);
   margin: 0 0 16px;
   padding-bottom: 12px;
   border-bottom: 1px solid var(--color-gray-200);
}

.ab-section-label svg {
   color: var(--color-primary);
}

.ab-section-desc {
   font-size: 0.8125rem;
   color: var(--color-gray-500);
   margin: -8px 0 16px;
}

.ab-form-grid {
   display: grid;
   grid-template-columns: repeat(2, 1fr);
   gap: 16px;
}

.ab-form-group {
   margin-bottom: 16px;
}

.ab-form-group:last-child {
   margin-bottom: 0;
}

.ab-form-group label {
   display: block;
   font-size: 0.875rem;
   font-weight: 600;
   color: var(--color-gray-700);
   margin-bottom: 8px;
}

.ab-form-group label .required {
   color: #dc2626;
}

.ab-input,
.ab-form-group input,
.ab-form-group select {
   width: 100%;
   padding: 12px 16px;
   border: 2px solid var(--color-gray-200);
   border-radius: 10px;
   font-size: 0.9375rem;
   color: var(--color-gray-800);
   background: #fff;
   transition: all 0.2s ease;
}

.ab-input:focus,
.ab-form-group input:focus,
.ab-form-group select:focus {
   border-color: var(--color-primary);
   outline: none;
   box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.15);
}

.ab-input-hint {
   display: block;
   font-size: 0.75rem;
   color: var(--color-gray-500);
   margin-top: 6px;
   font-style: italic;
}

.ab-password-section {
   border: 2px dashed var(--color-gray-200);
   background: transparent;
}

.ab-form-actions {
   display: flex;
   justify-content: flex-start;
   padding-top: 8px;
}

.ab-submit-btn {
   display: inline-flex;
   align-items: center;
   gap: 10px;
   background: linear-gradient(135deg, var(--color-primary), #1e40af);
   color: #fff;
   border: none;
   padding: 14px 28px;
   border-radius: 12px;
   font-size: 0.9375rem;
   font-weight: 700;
   cursor: pointer;
   transition: all 0.2s ease;
   text-transform: uppercase;
   letter-spacing: 0.03em;
}

.ab-submit-btn:hover {
   transform: translateY(-2px);
   box-shadow: 0 8px 20px rgba(59, 130, 246, 0.35);
}

.ab-submit-btn svg {
   stroke: #fff;
}

/* Edit Account Mobile */
@media (max-width: 768px) {
   .ab-form-header {
      flex-direction: column;
      text-align: center;
      padding-bottom: 16px;
   }

   .ab-form-icon {
      width: 48px;
      height: 48px;
   }

   .ab-form-title-group h2 {
      font-size: 1.125rem;
   }

   .ab-form-grid {
      grid-template-columns: 1fr;
   }

   .ab-form-section {
      padding: 20px;
      border-radius: 14px;
   }

   .ab-section-label {
      font-size: 0.875rem;
      gap: 8px;
   }

   .ab-section-label svg {
      width: 16px;
      height: 16px;
   }

   .ab-input,
   .ab-form-group input,
   .ab-form-group select {
      font-size: 16px !important; /* Prevents iOS zoom on focus */
      padding: 12px 14px;
   }

   .ab-submit-btn {
      width: 100%;
      justify-content: center;
      padding: 14px 24px;
   }

   .ab-form-actions {
      position: sticky;
      bottom: 0;
      background: white;
      padding: 16px;
      margin: -32px -32px 0;
      border-top: 1px solid var(--color-gray-200);
      box-shadow: 0 -4px 12px rgba(0, 0, 0, 0.05);
      z-index: 10;
   }
}

@media (max-width: 480px) {
   .ab-edit-account {
      gap: 20px;
   }

   .ab-form-header {
      padding-bottom: 14px;
   }

   .ab-form-icon {
      width: 44px;
      height: 44px;
   }

   .ab-form-icon svg {
      width: 28px;
      height: 28px;
   }

   .ab-form-title-group h2 {
      font-size: 1rem;
   }

   .ab-form-title-group p {
      font-size: 0.8125rem;
   }

   .ab-account-form {
      gap: 16px;
   }

   .ab-form-section {
      padding: 16px;
      border-radius: 12px;
   }

   .ab-section-label {
      font-size: 0.8125rem;
      margin-bottom: 12px;
      padding-bottom: 10px;
   }

   .ab-form-group {
      margin-bottom: 14px;
   }

   .ab-form-group label {
      font-size: 0.8125rem;
      margin-bottom: 6px;
   }

   .ab-input,
   .ab-form-group input,
   .ab-form-group select {
      padding: 11px 14px;
      border-radius: 8px;
   }

   .ab-input-hint {
      font-size: 0.6875rem;
      margin-top: 4px;
   }

   .ab-submit-btn {
      padding: 13px 20px;
      font-size: 0.875rem;
      border-radius: 10px;
   }
}

/* ============================================
   RESPONSIVE DESIGN
   ============================================ */
@media (max-width: 1200px) {
   .ab-shop-page > .container {
      padding: 0 var(--space-5);
   }

   .ab-shop-wrapper {
      grid-template-columns: 260px minmax(0, 1fr);
      gap: var(--space-6);
   }

   .woocommerce ul.products,
   .ab-shop-content ul.products {
      grid-template-columns: repeat(3, 1fr);
   }

   .ab-cart-wrapper {
      grid-template-columns: 1fr 360px;
      gap: var(--space-8);
   }

   .ab-product-main {
      gap: var(--space-10);
   }
}

@media (max-width: 1024px) {
   .hero-grid {
      grid-template-columns: 1fr;
      gap: var(--space-8);
   }

   .hero-title {
      font-size: 2.5rem;
   }

   .categories-grid {
      grid-template-columns: repeat(2, 1fr);
   }

   .badges-grid {
      grid-template-columns: repeat(2, 1fr);
      gap: var(--space-6);
   }

   .banners-grid {
      grid-template-columns: 1fr;
   }

   .ab-shop-page > .container {
      padding: 0 var(--space-5);
   }

   .ab-shop-wrapper {
      grid-template-columns: 1fr;
      padding: var(--space-6) 0 var(--space-12);
   }

   .ab-shop-sidebar {
      display: none;
   }

   .ab-shop-header {
      padding: var(--space-8) 0 var(--space-10);
   }

   .ab-shop-toolbar {
      flex-wrap: wrap;
      gap: var(--space-3);
   }

   .woocommerce ul.products,
   .ab-shop-content ul.products {
      grid-template-columns: repeat(3, 1fr);
      gap: var(--space-4);
   }

   .ab-product-main {
      grid-template-columns: 1fr;
      gap: var(--space-8);
   }

   .ab-cart-wrapper {
      grid-template-columns: 1fr;
   }

   .ab-cart-summary {
      position: static;
   }

   .woocommerce-account .woocommerce-MyAccount-navigation,
   .woocommerce-account .woocommerce-MyAccount-content {
      width: 100%;
      float: none;
   }

   .woocommerce-account .woocommerce-MyAccount-navigation {
      margin-bottom: var(--space-6);
   }

   /* Categories - Tablet */
   .categories-grid {
      grid-template-columns: repeat(4, 1fr);
      gap: var(--space-4);
   }

   .category-thumb {
      width: 64px;
      height: 64px;
   }

   .category-thumb .category-icon {
      font-size: 28px;
   }

   .category-details h3 {
      font-size: 0.875rem;
   }
}

@media (max-width: 768px) {
   /* Hero Section - Mobile Optimized */
   .hero-banner {
      background: linear-gradient(
         160deg,
         #1e3a5f 0%,
         #2d4a6f 50%,
         #3b5a8c 100%
      );
   }

   .hero-container {
      padding: var(--space-16) var(--space-5) var(--space-20);
   }

   .hero-grid {
      grid-template-columns: 1fr;
      gap: 0;
   }

   .hero-content {
      gap: var(--space-6);
   }

   .hero-badge {
      background: rgba(99, 179, 237, 0.15);
      border: 1px solid rgba(99, 179, 237, 0.3);
      padding: var(--space-2) var(--space-3);
      font-size: 0.75rem;
      backdrop-filter: blur(8px);
      -webkit-backdrop-filter: blur(8px);
   }

   .hero-title {
      font-size: 1.875rem;
      line-height: 1.2;
      letter-spacing: -0.02em;
      margin-bottom: var(--space-2);
   }

   .hero-subtitle {
      font-size: 0.9375rem;
      line-height: 1.6;
      color: rgba(255, 255, 255, 0.8);
      max-width: 100%;
   }

   .hero-buttons {
      flex-direction: column;
      gap: var(--space-3);
      width: 100%;
   }

   .btn-hero-primary,
   .btn-hero-secondary {
      width: 100%;
      justify-content: center;
      padding: var(--space-4) var(--space-6);
      font-size: 0.9375rem;
   }

   .btn-hero-primary {
      background: linear-gradient(135deg, #3b82f6 0%, #2563eb 100%);
      box-shadow: 0 8px 20px rgba(59, 130, 246, 0.25);
   }

   .btn-hero-secondary {
      background: rgba(255, 255, 255, 0.1);
      border: 1.5px solid rgba(255, 255, 255, 0.3);
      backdrop-filter: blur(8px);
      -webkit-backdrop-filter: blur(8px);
   }

   .hero-stats {
      display: grid;
      grid-template-columns: repeat(3, 1fr);
      gap: var(--space-4);
      padding-top: var(--space-6);
      margin-top: var(--space-4);
      border-top: 1px solid rgba(255, 255, 255, 0.1);
   }

   .stat-item {
      flex-direction: column;
      align-items: center;
      gap: var(--space-2);
      text-align: center;
   }

   .stat-icon {
      width: 40px;
      height: 40px;
      background: rgba(255, 255, 255, 0.15);
      backdrop-filter: blur(8px);
      -webkit-backdrop-filter: blur(8px);
      border: 1px solid rgba(255, 255, 255, 0.2);
      font-size: 18px;
   }

   .stat-number {
      font-size: 1.125rem;
      color: var(--color-white);
   }

   .stat-label {
      font-size: 0.6875rem;
      color: rgba(255, 255, 255, 0.7);
   }

   .hero-wave svg {
      height: 40px;
   }

   /* Trust Badges - Mobile Grid */
   .trust-badges {
      padding: var(--space-12) 0;
      background: linear-gradient(180deg, #ffffff 0%, #f8fafc 100%);
   }

   .trust-badges .container {
      padding: 0 var(--space-5);
   }

   .trust-badges .section-header {
      margin-bottom: var(--space-8);
   }

   .trust-badges .section-title {
      font-size: 1.5rem;
      margin-bottom: var(--space-3);
   }

   .trust-badges .section-subtitle {
      font-size: 0.875rem;
      color: var(--color-gray-600);
   }

   .badges-grid {
      grid-template-columns: 1fr;
      gap: var(--space-5);
   }

   .badge-item {
      background: var(--color-white);
      border-radius: var(--radius-2xl);
      padding: var(--space-6);
      box-shadow: 0 2px 8px rgba(0, 0, 0, 0.04);
      border: 1px solid var(--color-gray-100);
      display: flex;
      align-items: center;
      gap: var(--space-4);
      text-align: left;
      transition: all var(--transition-base);
   }

   .badge-item:active {
      transform: scale(0.98);
      box-shadow: 0 1px 4px rgba(0, 0, 0, 0.08);
   }

   .badge-icon-wrapper {
      width: 56px;
      height: 56px;
      margin: 0;
      flex-shrink: 0;
      font-size: 28px;
      box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
   }

   .badge-item h3 {
      font-size: 1rem;
      margin-bottom: var(--space-1);
   }

   .badge-item p {
      font-size: 0.8125rem;
      line-height: 1.5;
      margin: 0;
   }

   /* Categories Section - Mobile */
   .product-categories {
      padding: var(--space-12) 0;
      background: linear-gradient(180deg, #ffffff 0%, #f8fafc 100%);
   }

   .product-categories .container {
      padding: 0 var(--space-5);
   }

   .product-categories .section-header {
      margin-bottom: var(--space-8);
   }

   .product-categories .section-title {
      font-size: 1.5rem;
   }

   .categories-grid {
      grid-template-columns: repeat(3, 1fr);
      gap: var(--space-3);
   }

   .category-card {
      padding: var(--space-4);
      flex-direction: column;
      text-align: center;
   }

   .category-thumb {
      width: 64px;
      height: 64px;
      margin-bottom: var(--space-3);
   }

   .category-thumb .category-icon {
      font-size: 28px;
   }

   .category-details h3 {
      font-size: 0.8125rem;
      line-height: 1.3;
   }

   .category-count {
      font-size: 0.6875rem;
   }

   .btn-outline-primary {
      font-size: 0.8125rem;
      padding: var(--space-3) var(--space-5);
   }

   .category-card p {
      font-size: 0.8125rem;
      line-height: 1.5;
   }

   .category-card .category-link {
      font-size: 0.8125rem;
      padding: var(--space-2) var(--space-4);
      align-self: flex-start;
   }

   /* Featured Products - Mobile */
   .featured-products,
   .new-arrivals {
      padding: var(--space-12) 0;
   }

   .featured-products {
      background: linear-gradient(180deg, #f8fafc 0%, #ffffff 100%);
   }

   .featured-products .container,
   .new-arrivals .container {
      padding: 0 var(--space-5);
   }

   .featured-products .section-title,
   .new-arrivals .section-title {
      font-size: 1.5rem;
   }

   .featured-products .section-header,
   .new-arrivals .section-header {
      padding-right: 0;
   }

   .featured-products .swiper-button-next,
   .featured-products .swiper-button-prev,
   .new-arrivals .swiper-button-next,
   .new-arrivals .swiper-button-prev {
      display: none;
   }

   /* Promotional Banners - Mobile */
   .promotional-banners {
      padding: var(--space-12) 0;
      background: linear-gradient(180deg, #ffffff 0%, #f8fafc 100%);
   }

   .promotional-banners .container {
      padding: 0 var(--space-5);
   }

   .banners-grid {
      grid-template-columns: 1fr;
      gap: var(--space-4);
   }

   .banner-card {
      padding: var(--space-8) var(--space-6);
      border-radius: var(--radius-2xl);
      min-height: 200px;
   }

   .banner-card h2 {
      font-size: 1.375rem;
      margin-bottom: var(--space-3);
   }

   .banner-card p {
      font-size: 0.875rem;
      margin-bottom: var(--space-4);
   }

   .banner-card .banner-btn {
      font-size: 0.875rem;
      padding: var(--space-3) var(--space-5);
   }

   /* Shop Page Mobile Adjustments */
   .ab-shop-header {
      padding: var(--space-8) 0 var(--space-10);
      background: linear-gradient(
         160deg,
         #1e3a5f 0%,
         #2d4a6f 50%,
         #3b5a8c 100%
      );
   }

   .ab-shop-breadcrumb {
      font-size: var(--font-size-xs);
      gap: var(--space-1);
      margin-bottom: var(--space-3);
   }

   .ab-shop-title {
      font-size: 1.5rem;
   }

   .ab-shop-subtitle {
      font-size: var(--font-size-xs);
   }

   .ab-shop-page > .container {
      padding: 0 var(--space-4);
   }

   .ab-shop-wrapper {
      padding: var(--space-5) 0 var(--space-10);
   }

   .ab-shop-toolbar {
      padding: var(--space-3) var(--space-4);
      margin-bottom: var(--space-4);
   }

   .ab-results-count {
      font-size: var(--font-size-xs);
      width: 100%;
      text-align: center;
      order: 2;
   }

   .ab-shop-ordering {
      width: 100%;
      order: 1;
   }

   .ab-shop-ordering select {
      width: 100%;
   }

   .woocommerce ul.products,
   .ab-shop-content ul.products {
      grid-template-columns: repeat(2, 1fr);
      gap: var(--space-3);
   }

   .ab-product-card {
      border-radius: var(--radius-xl);
      box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);
   }

   .ab-product-info {
      padding: var(--space-3);
      gap: var(--space-2);
   }

   .ab-product-category {
      font-size: 0.6875rem;
      margin-bottom: var(--space-1);
   }

   .ab-product-title {
      font-size: 0.875rem;
      min-height: 38px;
      line-height: 1.4;
      font-weight: 600;
   }

   .ab-product-rating {
      min-height: 16px;
   }

   .ab-product-rating .star {
      font-size: 0.75rem;
   }

   .ab-product-footer {
      flex-direction: column;
      align-items: stretch;
      gap: var(--space-3);
      padding-top: var(--space-3);
   }

   .ab-product-price {
      font-size: 1.125rem !important;
      font-weight: 700;
      text-align: center;
   }

   .ab-product-price del {
      font-size: 0.875rem;
   }

   .ab-add-to-cart-btn {
      width: 100% !important;
      height: 44px !important;
      min-width: 100% !important;
      border-radius: var(--radius-xl) !important;
      font-size: 0.875rem !important;
      font-weight: 600;
   }

   .ab-add-to-cart-btn::before {
      content: 'Ajouter au panier';
      color: var(--color-white);
      display: inline;
   }

   .ab-add-to-cart-btn svg {
      width: 18px;
      height: 18px;
      margin-right: 6px;
   }

   /* Why Choose Us - Mobile */
   .why-choose-us {
      padding: var(--space-12) 0;
   }

   .why-choose-us .container {
      padding: 0 var(--space-5);
   }

   .why-choose-us .section-title {
      font-size: 1.5rem;
   }

   .features-grid {
      grid-template-columns: 1fr;
      gap: var(--space-4);
   }

   .feature-item {
      display: flex;
      align-items: flex-start;
      gap: var(--space-4);
      text-align: left;
      padding: var(--space-5);
   }

   .feature-icon {
      width: 56px;
      height: 56px;
      margin: 0;
      flex-shrink: 0;
      font-size: 26px;
   }

   .feature-item h3 {
      font-size: 1rem;
      margin-bottom: var(--space-2);
   }

   .feature-item p {
      font-size: 0.8125rem;
   }

   /* Testimonials - Mobile */
   .testimonials {
      padding: var(--space-12) 0;
   }

   .testimonials .container {
      padding: 0 var(--space-5);
   }

   .testimonials .section-title {
      font-size: 1.5rem;
   }

   .testimonials-grid {
      grid-template-columns: 1fr;
      gap: var(--space-4);
   }

   .testimonial-card {
      padding: var(--space-6);
   }

   .testimonial-card::before {
      font-size: 60px;
      top: var(--space-3);
      right: var(--space-4);
   }

   .testimonial-rating {
      font-size: var(--font-size-base);
   }

   .testimonial-text {
      font-size: 0.9375rem;
   }

   /* CTA Section - Mobile */
   .cta-section {
      padding: var(--space-16) 0;
   }

   .cta-section .container {
      padding: 0 var(--space-5);
   }

   .cta-content h2 {
      font-size: 1.5rem;
   }

   .cta-content p {
      font-size: 0.9375rem;
   }

   .cta-buttons {
      flex-direction: column;
      gap: var(--space-3);
   }

   .cta-buttons .btn-light,
   .cta-buttons .btn-outline {
      width: 100%;
      justify-content: center;
      padding: var(--space-4) var(--space-6);
   }

   /* Section Footer - Mobile */
   .section-footer {
      margin-top: var(--space-8);
   }

   .section-footer .btn-primary,
   .btn.btn-primary {
      width: 100%;
      justify-content: center;
      padding: var(--space-4) var(--space-6);
   }

   a.button.wc-forward,
   .woocommerce a.added_to_cart {
      width: 32px;
      height: 32px;
   }

   a.button.wc-forward::before,
   .woocommerce a.added_to_cart::before {
      width: 16px;
      height: 16px;
   }

   /* Single Product Page - Tablet 768px */
   .ab-single-product .container {
      padding: 0 var(--space-4);
   }

   .ab-product-main {
      grid-template-columns: 1fr;
      gap: var(--space-6);
      padding: var(--space-6) 0;
   }

   .ab-product-gallery {
      position: static;
      padding: var(--space-4);
      border-radius: var(--radius-xl);
   }

   .ab-product-details {
      position: static;
      gap: var(--space-3);
      padding: 0;
   }

   .ab-single-title {
      font-size: 1.5rem;
      line-height: 1.35;
   }

   .ab-single-price .price {
      font-size: var(--font-size-xl);
   }

   .ab-single-price ins {
      font-size: var(--font-size-xl);
   }

   .ab-single-excerpt {
      font-size: var(--font-size-sm);
      line-height: 1.6;
   }

   .ab-stock-status {
      padding: var(--space-2) var(--space-3);
      font-size: 0.6875rem;
   }

   .ab-single-add-to-cart {
      padding-top: var(--space-3);
   }

   .ab-single-add-to-cart form.cart {
      flex-direction: row;
      gap: var(--space-3);
   }

   .ab-single-add-to-cart .quantity {
      flex-shrink: 0;
   }

   .ab-single-add-to-cart .quantity input {
      width: 45px;
      padding: var(--space-3) var(--space-1);
      font-size: var(--font-size-sm);
   }

   .ab-single-add-to-cart .single_add_to_cart_button {
      flex: 1;
      padding: var(--space-3) var(--space-4);
      font-size: var(--font-size-sm);
      min-height: 44px;
      border-radius: var(--radius-lg);
   }

   .ab-product-meta {
      padding: var(--space-3) 0;
   }

   .ab-product-meta .sku_wrapper,
   .ab-product-meta .posted_in,
   .ab-product-meta .tagged_as {
      font-size: 0.6875rem;
   }

   .ab-trust-badges-single {
      grid-template-columns: 1fr 1fr;
      gap: var(--space-2);
      padding: var(--space-3);
   }

   .ab-trust-item {
      font-size: 0.6875rem;
      gap: var(--space-1);
   }

   .ab-trust-item svg {
      width: 14px;
      height: 14px;
   }

   .ab-product-gallery .flex-control-thumbs {
      gap: var(--space-2);
      margin-top: var(--space-3);
   }

   .ab-product-gallery .flex-control-thumbs li {
      width: 60px;
      height: 60px;
      border-radius: var(--radius-md);
   }

   .ab-product-gallery .woocommerce-product-gallery__image img {
      min-height: 280px;
      border-radius: var(--radius-lg);
   }

   .ab-product-tabs {
      padding: var(--space-5);
      border-radius: var(--radius-xl);
      margin-bottom: var(--space-8);
   }

   .ab-product-tabs .tabs {
      gap: var(--space-4);
      margin-bottom: var(--space-5);
      overflow-x: auto;
      -webkit-overflow-scrolling: touch;
      scrollbar-width: none;
   }

   .ab-product-tabs .tabs::-webkit-scrollbar {
      display: none;
   }

   .ab-product-tabs .tabs li a {
      font-size: var(--font-size-sm);
      white-space: nowrap;
      padding: var(--space-3) 0;
   }

   .ab-related-products {
      padding: 0 var(--space-4);
      margin-bottom: var(--space-8);
   }

   .ab-related-products h2 {
      font-size: var(--font-size-xl);
      margin-bottom: var(--space-5);
   }

   .ab-breadcrumb-wrapper {
      padding: var(--space-3) 0;
   }

   .ab-breadcrumb-wrapper .woocommerce-breadcrumb {
      font-size: var(--font-size-xs);
   }

   .ab-sale-badge-single {
      top: var(--space-6);
      left: var(--space-6);
      padding: var(--space-2) var(--space-3);
      font-size: 0.6875rem;
   }

   /* Cart Page Mobile - 768px */
   .ab-cart-page .container {
      padding: var(--space-5);
   }

   .ab-cart-title {
      font-size: 1.5rem;
      margin-bottom: var(--space-6);
   }

   .ab-cart-wrapper {
      display: flex;
      flex-direction: column;
      gap: var(--space-6);
   }

   .ab-cart-item {
      padding: var(--space-4);
      display: flex;
      flex-direction: column;
      gap: var(--space-4);
   }

   .ab-cart-item-image {
      width: 100%;
      text-align: center;
   }

   .ab-cart-item-image img {
      width: 100%;
      max-width: 200px;
      height: auto;
      border-radius: var(--radius-xl);
   }

   .ab-cart-item-details {
      width: 100%;
   }

   .ab-cart-item-name {
      font-size: 1rem;
      margin-bottom: var(--space-3);
   }

   .ab-cart-item-price {
      font-size: 1.125rem;
      color: var(--color-primary);
      font-weight: var(--font-weight-bold);
      margin: var(--space-3) 0;
   }

   .ab-cart-item-actions {
      display: flex;
      flex-direction: column;
      gap: var(--space-4);
      width: 100%;
   }

   .ab-quantity-wrapper {
      display: flex;
      align-items: center;
      justify-content: center;
      gap: var(--space-2);
   }

   .ab-quantity-wrapper input {
      width: 80px;
      padding: var(--space-3);
      text-align: center;
      font-size: 1rem;
   }

   .ab-qty-btn {
      width: 40px;
      height: 40px;
      font-size: 1.25rem;
   }

   .ab-cart-item-subtotal {
      text-align: center;
      font-size: 1.25rem;
      font-weight: var(--font-weight-bold);
      color: var(--color-primary);
   }

   .ab-cart-item-remove {
      text-align: center;
   }

   .ab-remove-btn {
      width: 48px;
      height: 48px;
      display: inline-flex;
      align-items: center;
      justify-content: center;
   }

   .ab-cart-actions {
      display: flex;
      flex-direction: column;
      gap: var(--space-4);
      padding: var(--space-5);
   }

   .ab-coupon {
      display: flex;
      flex-direction: column;
      gap: var(--space-3);
   }

   .ab-coupon-input {
      width: 100%;
      padding: var(--space-4);
      font-size: 1rem;
   }

   .ab-coupon-btn,
   .ab-update-cart {
      width: 100%;
      padding: var(--space-4);
      font-size: 1rem;
   }

   .ab-cart-summary {
      padding: var(--space-6);
      order: -1;
   }

   .ab-product-tabs .tabs {
      flex-wrap: wrap;
      gap: var(--space-4);
   }

   /* Cart Page - Mobile 768px */
   .woocommerce-cart .woocommerce {
      padding: var(--space-6) var(--space-4);
   }

   .woocommerce-cart table.cart {
      border-radius: var(--radius-xl);
   }

   .woocommerce-cart table.cart thead {
      display: none;
   }

   .woocommerce-cart table.cart tbody tr {
      display: grid;
      grid-template-columns: 80px 1fr;
      gap: var(--space-4);
      padding: var(--space-5);
      border-bottom: 1px solid var(--color-gray-100);
   }

   .woocommerce-cart table.cart tbody tr:last-child {
      border-bottom: none;
   }

   .woocommerce-cart table.cart td {
      padding: 0;
      border: none;
      display: flex;
      flex-direction: column;
      gap: var(--space-2);
   }

   .woocommerce-cart table.cart .product-thumbnail {
      grid-row: 1 / span 3;
   }

   .woocommerce-cart table.cart .product-thumbnail img {
      width: 80px;
      height: 80px;
   }

   .woocommerce-cart table.cart .product-name {
      grid-column: 2;
   }

   .woocommerce-cart table.cart .product-name::before {
      content: none;
   }

   .woocommerce-cart table.cart .product-price,
   .woocommerce-cart table.cart .product-quantity,
   .woocommerce-cart table.cart .product-subtotal {
      grid-column: 2;
   }

   .woocommerce-cart table.cart .product-price::before {
      content: 'Price: ';
      font-weight: normal;
      color: var(--color-gray-600);
      margin-right: var(--space-2);
   }

   .woocommerce-cart table.cart .product-quantity::before {
      content: 'Quantity: ';
      font-weight: normal;
      color: var(--color-gray-600);
      margin-right: var(--space-2);
   }

   .woocommerce-cart table.cart .product-subtotal::before {
      content: 'Total: ';
      font-weight: normal;
      color: var(--color-gray-600);
      margin-right: var(--space-2);
   }

   .woocommerce-cart table.cart .product-remove {
      position: absolute;
      top: var(--space-3);
      right: var(--space-3);
   }

   .woocommerce-cart table.cart .remove {
      width: 36px;
      height: 36px;
   }

   .woocommerce-cart table.cart .quantity input {
      width: 70px;
      padding: var(--space-2);
   }

   .woocommerce-cart .actions {
      padding: var(--space-5) !important;
      display: flex;
      flex-direction: column;
      gap: var(--space-4);
   }

   .woocommerce-cart .actions .coupon {
      display: flex;
      flex-direction: column;
      gap: var(--space-3);
      width: 100%;
   }

   .woocommerce-cart .actions .coupon input {
      width: 100%;
      padding: var(--space-3);
      border: 2px solid var(--color-gray-200);
      border-radius: var(--radius-lg);
   }

   .woocommerce-cart .actions button {
      width: 100%;
      padding: var(--space-4);
   }

   .cart-collaterals {
      margin-top: var(--space-6);
      padding: 0 var(--space-4);
   }

   .cart-collaterals .cart_totals {
      padding: var(--space-6);
   }

   .ab-cart-item {
      flex-direction: column;
      gap: var(--space-4);
   }

   .ab-cart-item-image img {
      width: 100%;
      height: 200px;
   }

   .ab-cart-item-actions {
      flex-wrap: wrap;
      gap: var(--space-4);
   }

   .ab-cart-actions {
      flex-direction: column;
      gap: var(--space-4);
   }

   .ab-coupon {
      width: 100%;
   }

   .ab-coupon-input {
      flex: 1;
   }

   .ab-update-cart {
      width: 100%;
      justify-content: center;
   }

   .featured-products .section-header,
   .new-arrivals .section-header {
      padding-right: 0;
   }

   .featured-products .swiper-button-next,
   .featured-products .swiper-button-prev,
   .new-arrivals .swiper-button-next,
   .new-arrivals .swiper-button-prev {
      display: none;
   }
}

@media (max-width: 480px) {
   :root {
      --space-6: 1rem;
   }

   .container {
      padding: 0 var(--space-4);
   }

   /* Hero Extra Small Mobile */
   .hero-container {
      padding: var(--space-12) var(--space-4) var(--space-16);
   }

   .hero-title {
      font-size: 1.625rem;
      line-height: 1.25;
   }

   .hero-subtitle {
      font-size: 0.875rem;
   }

   .btn-hero-primary,
   .btn-hero-secondary {
      padding: 0.875rem var(--space-5);
      font-size: 0.875rem;
   }

   .hero-stats {
      gap: var(--space-3);
   }

   .stat-icon {
      width: 36px;
      height: 36px;
      font-size: 16px;
   }

   .stat-number {
      font-size: 1rem;
   }

   .stat-label {
      font-size: 0.625rem;
   }

   /* Section Titles */
   .section-title {
      font-size: 1.375rem;
   }

   .section-subtitle {
      font-size: 0.8125rem;
   }

   /* Badges */
   .badge-item {
      padding: var(--space-5);
      gap: var(--space-3);
   }

   .badge-icon-wrapper {
      width: 48px;
      height: 48px;
      font-size: 24px;
   }

   .badge-item h3 {
      font-size: 0.9375rem;
   }

   .badge-item p {
      font-size: 0.75rem;
   }

   /* Categories - 480px */
   .categories-grid {
      grid-template-columns: repeat(2, 1fr);
      gap: var(--space-2);
   }

   .category-card {
      padding: var(--space-3);
   }

   .category-thumb {
      width: 52px;
      height: 52px;
      margin-bottom: var(--space-2);
   }

   .category-thumb .category-icon {
      font-size: 24px;
   }

   .category-details h3 {
      font-size: 0.75rem;
   }

   .category-count {
      font-size: 0.625rem;
   }

   /* Products */
   .woocommerce ul.products,
   .ab-shop-content ul.products {
      grid-template-columns: repeat(2, 1fr);
      gap: var(--space-2);
   }

   .ab-product-info {
      padding: var(--space-3);
      gap: var(--space-2);
   }

   .ab-product-category {
      font-size: 0.6875rem;
   }

   .ab-product-title {
      font-size: 0.8125rem;
      min-height: 36px;
      line-height: 1.4;
      font-weight: 600;
   }

   .ab-product-rating {
      min-height: 14px;
   }

   .ab-product-rating .star {
      font-size: 0.6875rem;
   }

   .ab-product-footer {
      padding-top: var(--space-2);
      gap: var(--space-3);
      flex-direction: column;
      align-items: stretch;
   }

   .ab-product-price {
      font-size: 1rem !important;
      font-weight: 700;
      text-align: center;
   }

   .ab-product-price del {
      font-size: 0.8125rem;
   }

   .ab-add-to-cart-btn {
      width: 100% !important;
      height: 42px !important;
      min-width: 100% !important;
      border-radius: var(--radius-lg) !important;
   }

   .ab-add-to-cart-btn::before {
      content: 'Ajouter';
      color: var(--color-white);
      display: inline;
      font-size: 0.8125rem;
      font-weight: 600;
   }

   .ab-add-to-cart-btn svg {
      width: 16px;
      height: 16px;
      margin-right: 4px;
   }

   a.button.wc-forward,
   .woocommerce a.added_to_cart {
      width: 28px;
      height: 28px;
      margin-left: var(--space-1);
   }

   a.button.wc-forward::before,
   .woocommerce a.added_to_cart::before {
      width: 14px;
      height: 14px;
   }

   .ab-shop-toolbar {
      flex-direction: column;
      gap: var(--space-3);
      text-align: center;
   }

   /* Cart Page Mobile - 480px */
   .ab-cart-page .container {
      padding: var(--space-3);
   }

   .ab-cart-title {
      font-size: 1.25rem;
      margin-bottom: var(--space-4);
      padding: 0 var(--space-2);
   }

   .ab-cart-title svg {
      width: 28px;
      height: 28px;
   }

   .ab-cart-wrapper {
      gap: var(--space-4);
   }

   .ab-cart-items,
   .ab-cart-summary {
      margin: 0 var(--space-2) !important; /* Smaller margins on very small screens */
      border-radius: 12px !important; /* Slightly smaller radius */
   }

   .ab-cart-item {
      padding: var(--space-3);
      gap: var(--space-3);
   }

   .ab-cart-item-image img {
      width: 60px !important;
      height: 60px !important;
   }

   .ab-cart-item-name {
      font-size: 0.875rem;
      line-height: 1.3;
   }

   .ab-cart-item-price,
   .ab-cart-item-subtotal {
      font-size: 0.875rem;
   }

   .ab-quantity-wrapper {
      transform: scale(0.9);
   }

   .ab-quantity-wrapper input {
      width: 40px;
   }

   .ab-qty-btn {
      width: 32px;
      height: 32px;
      font-size: 0.875rem;
   }

   .ab-remove-btn {
      width: 32px;
      height: 32px;
   }

   .ab-cart-actions {
      padding: var(--space-3);
      gap: var(--space-3);
   }

   .ab-coupon-input {
      height: 40px;
      font-size: 0.8125rem;
   }

   .ab-coupon-btn,
   .ab-update-cart {
      height: 40px;
      padding: 0 var(--space-3);
      font-size: 0.8125rem;
   }

   .ab-cart-summary {
      padding: var(--space-4);
   }

   .ab-summary-title {
      font-size: 1.125rem;
   }

   .ab-summary-row {
      padding: var(--space-2) 0;
      font-size: 0.875rem;
   }

   .ab-summary-total {
      padding: var(--space-3) 0;
      font-size: 1rem;
   }

   .ab-summary-total span:last-child {
      font-size: 1.125rem;
   }

   .ab-remove-btn {
      width: 40px;
      height: 40px;
   }

   .ab-cart-actions {
      padding: var(--space-4);
      gap: var(--space-3);
   }

   .ab-coupon-input,
   .ab-coupon-btn,
   .ab-update-cart {
      padding: var(--space-3);
      font-size: 0.875rem;
   }

   .ab-cart-summary {
      padding: var(--space-4);
   }

   .ab-summary-title {
      font-size: 1.125rem;
   }

   .ab-cart-trust {
      flex-direction: column;
      gap: var(--space-3);
   }

   .ab-cart-trust-item {
      font-size: 0.8125rem;
   }

   /* Cart Page - Mobile 480px */
   .woocommerce-cart .woocommerce {
      padding: var(--space-4) var(--space-3);
   }

   .woocommerce-cart table.cart tbody tr {
      grid-template-columns: 70px 1fr;
      gap: var(--space-3);
      padding: var(--space-4);
      position: relative;
   }

   .woocommerce-cart table.cart .product-thumbnail img {
      width: 70px;
      height: 70px;
   }

   .woocommerce-cart table.cart .product-name a {
      font-size: 0.875rem;
   }

   .woocommerce-cart table.cart .product-price,
   .woocommerce-cart table.cart .product-subtotal {
      font-size: var(--font-size-base);
   }

   .woocommerce-cart table.cart .quantity input {
      width: 60px;
      font-size: 0.875rem;
   }

   .woocommerce-cart table.cart .remove {
      width: 32px;
      height: 32px;
      font-size: var(--font-size-lg);
   }

   .woocommerce-cart .actions {
      padding: var(--space-4) !important;
   }

   .woocommerce-cart .actions button {
      padding: var(--space-3) var(--space-4);
      font-size: 0.875rem;
   }

   .cart-collaterals {
      padding: 0 var(--space-3);
   }

   .cart-collaterals .cart_totals {
      padding: var(--space-5);
   }

   .cart-collaterals .cart_totals h2 {
      font-size: var(--font-size-lg);
   }

   .cart-collaterals .cart_totals th,
   .cart-collaterals .cart_totals td {
      font-size: 0.875rem;
   }

   .cart-collaterals .cart_totals .order-total th,
   .cart-collaterals .cart_totals .order-total td {
      font-size: var(--font-size-lg);
   }

   .ab-product-main {
      padding: var(--space-4) 0;
      gap: var(--space-5);
   }

   /* Single Product Page - Mobile 480px */
   .ab-single-product .container {
      padding: 0 var(--space-3);
   }

   .ab-product-gallery {
      padding: var(--space-3);
      border-radius: var(--radius-lg);
   }

   .ab-product-details {
      gap: var(--space-2);
   }

   .ab-single-category a {
      font-size: 0.6875rem;
   }

   .ab-single-title {
      font-size: 1.25rem;
      line-height: 1.3;
   }

   .ab-single-rating .star-rating {
      font-size: var(--font-size-base);
   }

   .ab-single-price .price {
      font-size: var(--font-size-lg);
   }

   .ab-single-price del {
      font-size: var(--font-size-sm);
   }

   .ab-single-price ins {
      font-size: var(--font-size-lg);
   }

   .ab-single-excerpt {
      font-size: var(--font-size-xs);
      line-height: 1.5;
   }

   .ab-single-add-to-cart {
      padding-top: var(--space-3);
   }

   .ab-single-add-to-cart form.cart {
      flex-direction: row;
      gap: var(--space-2);
   }

   .ab-single-add-to-cart .quantity {
      width: auto;
      flex-shrink: 0;
   }

   .ab-single-add-to-cart .quantity input {
      width: 40px;
      padding: var(--space-2) var(--space-1);
      font-size: var(--font-size-sm);
   }

   .ab-single-add-to-cart .single_add_to_cart_button {
      flex: 1;
      padding: var(--space-3) var(--space-3);
      font-size: var(--font-size-xs);
      min-height: 40px;
      letter-spacing: 0.3px;
   }

   .ab-product-meta {
      padding: var(--space-2) 0;
   }

   .ab-product-meta .sku_wrapper,
   .ab-product-meta .posted_in,
   .ab-product-meta .tagged_as {
      font-size: 0.625rem;
   }

   .ab-trust-badges-single {
      grid-template-columns: 1fr;
      gap: var(--space-2);
      padding: var(--space-3);
   }

   .ab-trust-item {
      font-size: 0.625rem;
   }

   .ab-product-gallery .flex-control-thumbs li {
      width: 50px;
      height: 50px;
   }

   .ab-product-gallery .woocommerce-product-gallery__image img {
      min-height: 240px;
      border-radius: var(--radius-md);
   }

   .ab-product-tabs {
      padding: var(--space-4);
      border-radius: var(--radius-lg);
      margin-bottom: var(--space-6);
   }

   .ab-product-tabs .tabs {
      gap: var(--space-3);
      margin-bottom: var(--space-4);
   }

   .ab-product-tabs .tabs li a {
      font-size: var(--font-size-xs);
      padding: var(--space-2) 0;
   }

   .ab-related-products {
      padding: 0 var(--space-3);
      margin-bottom: var(--space-6);
   }

   .ab-related-products h2 {
      font-size: var(--font-size-lg);
      margin-bottom: var(--space-4);
   }

   .ab-breadcrumb-wrapper {
      padding: var(--space-2) 0;
   }

   .ab-breadcrumb-wrapper .woocommerce-breadcrumb {
      font-size: 0.6875rem;
   }

   .ab-sale-badge-single {
      top: var(--space-4);
      left: var(--space-4);
      padding: var(--space-1) var(--space-2);
      font-size: 0.625rem;
   }

   .woocommerce-cart table.cart .product-thumbnail {
      display: none;
   }

   /* Why Choose Us - 480px */
   .feature-item {
      padding: var(--space-4);
      gap: var(--space-3);
   }

   .feature-icon {
      width: 48px;
      height: 48px;
      font-size: 22px;
   }

   .feature-item h3 {
      font-size: 0.9375rem;
   }

   .feature-item p {
      font-size: 0.75rem;
   }

   /* Testimonials - 480px */
   .testimonial-card {
      padding: var(--space-5);
   }

   .testimonial-card::before {
      font-size: 48px;
   }

   .testimonial-text {
      font-size: 0.875rem;
   }

   .testimonial-author strong {
      font-size: 0.9375rem;
   }

   .testimonial-author span {
      font-size: 0.75rem;
   }

   /* CTA Section - 480px */
   .cta-section {
      padding: var(--space-12) 0;
   }

   .cta-content h2 {
      font-size: 1.375rem;
   }

   .cta-content p {
      font-size: 0.875rem;
   }

   .cta-buttons .btn-light,
   .cta-buttons .btn-outline {
      padding: 0.875rem var(--space-5);
      font-size: 0.875rem;
   }
}

/* ============================================
   TABLET & MOBILE RESPONSIVE - HEADER & FOOTER
   ============================================ */
@media (max-width: 1024px) {
   /* Header adjustments for tablet */
   .ab-header-main {
      padding: var(--space-3) 0;
   }

   .ab-header-logo img {
      max-height: 40px;
   }

   .ab-nav-menu {
      gap: 0;
   }

   .ab-nav-menu a {
      padding: var(--space-2) var(--space-3);
      font-size: 0.875rem;
   }
}

@media (max-width: 768px) {
   /* Header - Mobile */
   .ab-header-top {
      display: none;
   }

   .ab-header-main {
      padding: var(--space-3) 0;
   }

   .ab-mobile-menu-toggle {
      display: flex;
      order: 2;
   }

   .ab-header-logo {
      order: 1;
      flex: 1;
   }

   .ab-header-logo img {
      max-height: 36px;
   }

   .ab-header-actions {
      order: 3;
   }

   .ab-header-nav {
      position: fixed;
      display: flex !important;
      flex-direction: column;
      align-items: flex-start;
      top: 0;
      left: 0;
      width: 100%;
      height: 100vh;
      background: var(--color-gray-900);
      color: var(--color-gray-100);
      padding: var(--space-8) var(--space-6) var(--space-6);
      gap: var(--space-6);
      overflow-y: auto;
      transform: translateX(-100%);
      transition: transform var(--transition-base);
      z-index: 1200;
      box-shadow: var(--shadow-lg);
   }

   .ab-header-nav.active {
      transform: translateX(0);
   }

   .ab-mobile-menu-close {
      display: flex;
      padding-bottom: var(--space-4);
      border-bottom: 1px solid rgba(255, 255, 255, 0.08);
      color: var(--color-gray-100);
   }

   .ab-mobile-menu-close-label {
      text-transform: uppercase;
      letter-spacing: 0.08em;
      font-size: var(--font-size-sm);
   }

   .ab-nav-menu {
      display: flex !important;
      flex-direction: column;
      align-items: stretch;
      gap: 0;
      width: 100%;
   }

   .ab-nav-menu li {
      width: 100%;
   }

   .ab-nav-menu a {
      display: block;
      padding: var(--space-4);
      border-bottom: 1px solid rgba(255, 255, 255, 0.08);
      font-size: var(--font-size-base);
      color: var(--color-gray-100);
   }

   .ab-nav-menu a:hover {
      background: rgba(255, 255, 255, 0.08);
      color: var(--color-white);
   }

   .ab-nav-menu .sub-menu {
      position: static;
      opacity: 1;
      visibility: visible;
      transform: none;
      box-shadow: none;
      margin-top: 0;
      padding-left: var(--space-4);
      background: rgba(255, 255, 255, 0.05);
      border-radius: 0;
   }

   .ab-search-toggle,
   .ab-cart-toggle {
      width: 36px;
      height: 36px;
   }

   .ab-search-toggle i,
   .ab-cart-toggle i {
      font-size: 20px;
   }

   /* Footer - Mobile */
   .ab-footer-main {
      padding: var(--space-12) 0 var(--space-8);
   }

   .ab-footer-grid {
      grid-template-columns: repeat(2, 1fr);
      gap: var(--space-8);
   }

   .ab-footer-title {
      font-size: var(--font-size-base);
   }

   .ab-footer-desc,
   .ab-footer-menu a,
   .ab-contact-item {
      font-size: 0.8125rem;
   }

   .ab-footer-social {
      justify-content: flex-start;
   }

   .ab-footer-bottom {
      padding: var(--space-5) 0;
   }

   .ab-footer-bottom-content {
      flex-direction: column;
      gap: var(--space-4);
      text-align: center;
   }

   .ab-footer-payment {
      justify-content: center;
   }
}

@media (max-width: 480px) {
   /* Header - Extra Small Mobile */
   .ab-header-main-content {
      gap: var(--space-3);
   }

   .ab-header-logo img {
      max-height: 32px;
   }

   .ab-search-toggle,
   .ab-cart-toggle {
      width: 34px;
      height: 34px;
      border-width: 1.5px;
   }

   .ab-search-toggle i,
   .ab-cart-toggle i {
      font-size: 18px;
   }

   .ab-cart-count {
      min-width: 16px;
      height: 16px;
      font-size: 10px;
   }

   .ab-header-nav {
      padding: var(--space-4);
   }

   .ab-nav-menu a {
      padding: var(--space-3);
   }

   /* Footer - Extra Small Mobile */
   .ab-footer-main {
      padding: var(--space-10) 0 var(--space-6);
   }

   .ab-footer-grid {
      grid-template-columns: 1fr;
      gap: var(--space-6);
   }

   .ab-footer-social {
      justify-content: center;
   }

   .ab-footer-social a {
      width: 34px;
      height: 34px;
   }

   .ab-footer-bottom-content {
      gap: var(--space-3);
   }

   .ab-copyright p,
   .ab-footer-payment {
      font-size: 0.75rem;
   }

   .ab-payment-icons svg {
      width: 32px;
      height: 20px;
   }
}

/* ============================================
   MOBILE TOUCH ENHANCEMENTS
   ============================================ */

/* Improve tap target sizes for mobile */
@media (max-width: 768px) {
   /* Ensure all interactive elements meet minimum touch target size (44x44px) */
   .ab-account-menu-item a,
   .ab-order-btn,
   .ab-address-edit-btn,
   .ab-submit-btn,
   .ab-action-card,
   button,
   input[type='submit'],
   input[type='button'],
   .woocommerce-Button {
      min-height: 44px;
      min-width: 44px;
   }

   /* Improve scrollbar for horizontal scrolling navigation */
   .ab-account-menu {
      scrollbar-width: thin;
      scrollbar-color: var(--color-primary) var(--color-gray-200);
   }

   .ab-account-menu::-webkit-scrollbar {
      height: 4px;
   }

   .ab-account-menu::-webkit-scrollbar-track {
      background: var(--color-gray-100);
      border-radius: 2px;
   }

   .ab-account-menu::-webkit-scrollbar-thumb {
      background: var(--color-primary);
      border-radius: 2px;
   }

   /* Prevent text selection on interactive elements */
   .ab-account-menu-item a,
   .ab-stat-card,
   .ab-action-card,
   .ab-order-item,
   .ab-address-card {
      -webkit-tap-highlight-color: rgba(59, 130, 246, 0.1);
      -webkit-touch-callout: none;
      user-select: none;
   }

   /* Allow text selection in content areas */
   .ab-account-content,
   .ab-address-content,
   .ab-order-body,
   p,
   span {
      -webkit-touch-callout: default;
      user-select: text;
   }

   /* Improve input focus states on mobile */
   input:focus,
   textarea:focus,
   select:focus {
      transform: scale(1.01);
      transition: all 0.2s ease;
   }

   /* Optimize images for mobile */
   .ab-avatar,
   .ab-item-thumb img,
   .ab-stat-icon,
   .ab-action-icon {
      image-rendering: -webkit-optimize-contrast;
      image-rendering: crisp-edges;
   }

   /* Smooth scroll behavior */
   .ab-account-menu,
   .ab-orders-list,
   .ab-addresses-grid {
      scroll-behavior: smooth;
   }

   /* Fix iOS double-tap zoom on buttons */
   button,
   input[type='submit'],
   input[type='button'],
   .ab-order-btn,
   .ab-submit-btn {
      touch-action: manipulation;
   }

   /* Sticky header compensation for account pages */
   .ab-account-page {
      padding-top: max(20px, env(safe-area-inset-top));
      padding-bottom: max(40px, env(safe-area-inset-bottom));
      padding-left: max(15px, env(safe-area-inset-left));
      padding-right: max(15px, env(safe-area-inset-right));
   }

   /* Improve modal/overlay visibility */
   .ab-account-nav,
   .ab-account-content .woocommerce-MyAccount-content {
      box-shadow: 0 4px 20px rgba(0, 0, 0, 0.08);
   }
}

/* Performance optimizations for mobile */
@media (max-width: 768px) {
   /* Hardware acceleration for animations */
   .ab-stat-card,
   .ab-action-card,
   .ab-order-item,
   .ab-address-card,
   .ab-account-menu-item a {
      transform: translateZ(0);
      will-change: transform;
   }

   /* Reduce motion for better battery life */
   @media (prefers-reduced-motion: reduce) {
      .ab-stat-card:hover,
      .ab-action-card:hover,
      .ab-order-item:hover,
      .ab-address-card:hover {
         transform: none;
      }
   }
}

/* Landscape orientation optimizations */
@media (max-width: 768px) and (max-height: 500px) and (orientation: landscape) {
   .ab-account-hero {
      padding: 16px 24px;
   }

   .ab-avatar-wrapper .ab-avatar,
   .ab-avatar-wrapper img {
      width: 40px;
      height: 40px;
   }

   .ab-account-title {
      font-size: 1.125rem;
   }

   .ab-account-email {
      font-size: 0.8125rem;
   }

   .ab-quick-stats {
      grid-template-columns: repeat(3, 1fr);
      gap: 10px;
   }

   .ab-stat-card {
      padding: 12px 16px;
      flex-direction: row;
   }

   .ab-account-page {
      padding: 16px 20px 24px;
   }
}

/* ============================================
   PRINT STYLES
   ============================================ */
@media print {
   .ab-shop-sidebar,
   .ab-product-actions,
   .ab-cart-trust,
   .swiper-pagination,
   .swiper-button-next,
   .swiper-button-prev,
   .ab-header-top,
   .ab-mobile-menu-toggle,
   .ab-header-actions,
   .ab-search-modal {
      display: none !important;
   }

   body {
      font-size: 12pt;
   }

   a {
      text-decoration: none;
      color: inherit;
   }

   .ab-header-nav {
      position: static;
      transform: none;
      height: auto;
      padding: 0;
   }

   .ab-nav-menu {
      flex-direction: row;
   }
}

/* ============================================
   ACCESSIBILITY IMPROVEMENTS
   ============================================ */
@media (prefers-reduced-motion: reduce) {
   *,
   *::before,
   *::after {
      animation-duration: 0.01ms !important;
      animation-iteration-count: 1 !important;
      transition-duration: 0.01ms !important;
   }
}

:focus-visible {
   outline: 2px solid var(--color-primary);
   outline-offset: 2px;
}

.screen-reader-text {
   border: 0;
   clip: rect(1px, 1px, 1px, 1px);
   clip-path: inset(50%);
   height: 1px;
   margin: -1px;
   overflow: hidden;
   padding: 0;
   position: absolute;
   width: 1px;
   word-wrap: normal !important;
}
