/* =================================================================
   BASE.CSS - Foundation Styles
   =================================================================
   Table of Contents:
   1. CSS Variables
   2. Font Definitions
   3. Reset & Base Styles
   4. Typography
   5. Utility Classes
   6. Mobile Optimizations
   ================================================================= */

/* =================================================================
   1. CSS VARIABLES
   ================================================================= */
:root {
  /* Brand Colors */
  --color-primary: #0045FF;
  --color-primary-hover: #0045FF;
  --color-secondary: #0066ff;
  --color-accent: #ff0000;
  --color-cyan: #85D6FB;
  --color-purple: #84186C;
  --color-red: #ff0000;
  --color-orange: #ff6a00;
  --color-green: #b7f34b;

  /* Neutral Colors */
  --color-black: #000;
  --color-white: #fff;
  --color-gray-light: #f0f0f0;
  --color-gray: #ddd;
  --color-gray-dark: #444;

  /* Text Colors */
  --text-black: #000;
  --text-primary: #fff;
  --text-secondary: rgba(255, 255, 255, 0.8);
  --text-muted: rgba(255, 255, 255, 0.6);
  --text-light: rgba(255, 255, 255, 0.3);

  /* Border Colors */
  --border-light: rgba(255, 255, 255, 0.1);
  --border-medium: rgba(255, 255, 255, 0.2);
  --border-heavy: rgba(255, 255, 255, 0.3);

  /* Gradients */
  --gradient-primary: linear-gradient(90deg, #0045FF 0%, #ff0000 100%);
  --gradient-secondary: linear-gradient(90deg, #ff0000 0%, #0045FF 100%);
  --gradient-bluered: linear-gradient(135deg, #0045FF 0%, #ff0000 100%);
  --gradient-blue: linear-gradient(135deg, #7FFFF9 0%, #000069 100%);
  --gradient-red: linear-gradient(135deg, #CCCCCC 0%, #FF2400 100%);
  --gradient-black: linear-gradient(135deg, #cccccc 0%, #ff2400 100%);

  /* Layout Variables */
  --max-width: 1320px;
  --header-height: 65px;
  --header-height-mobile: 115px;
  --nav-height: 60px;
  --container: 1320px;
  --peek: 72px;
  --bleed-right: max(0px, calc((100vw - var(--container)) / 2));
  
  /* Benefit Variables */
  --benefit-line: #e7e1dc;
  --benefit-ink: #0f0f0f;
  --benefit-muted: #6b6764;

  /* Transitions */
  --transition-fast: 0.3s;
  
  /* Modal and Form Variables */
  --border: #e5e5e5;
  --brand: #3b82f6;
  --input-bg: #ffffff;
  --radius: 8px;
  --focus: #3b82f6;
  --ring: 3px;
  --error: #ef4444;
  --transition-medium: 0.5s;

  /* Typography */
  --font-title: 'Plaak', system-ui, 'Helvetica Neue', Helvetica, sans-serif;
  --font-root: 'Akzidenz', system-ui, 'Helvetica Neue', Helvetica, sans-serif;
}

/* Mobile Header Height Adjustment */
@media (max-width: 768px) {
  :root {
    --header-height: var(--header-height-mobile);
  }
}

/* =================================================================
   2. FONT DEFINITIONS
   ================================================================= */

/* Akzidenz Font Family */
@font-face {
  font-family: "Akzidenz";
  src: url("../fonts/akzidenz_regular.woff2") format("woff2"),
       url("../fonts/akzidenz_regular.woff") format("woff");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: "Akzidenz";
  src: url("../fonts/akzidenz_light.woff2") format("woff2"),
       url("../fonts/akzidenz_light.woff") format("woff");
  font-weight: 300;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: "Akzidenz";
  src: url("../fonts/akzidenz_md.woff2") format("woff2"),
       url("../fonts/akzidenz_md.woff") format("woff");
  font-weight: 500;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: "Akzidenz";
  src: url("../fonts/akzidenz_bold.woff2") format("woff2"),
       url("../fonts/akzidenz_bold.woff") format("woff");
  font-weight: 600;
  font-style: normal;
  font-display: swap;
}

/* Plaak Font Family */
@font-face {
  font-family: "Plaak";
  src: url("../fonts/Plaak-46.woff2") format("woff2"),
       url("../fonts/Plaak-46.woff") format("woff");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: "Plaak";
  src: url("../fonts/Plaak-56.woff2") format("woff2"),
       url("../fonts/Plaak-56.woff") format("woff");
  font-weight: 700;
  font-style: normal;
  font-display: swap;
}
a:hover{
    text-decoration: none !important;
}

a,
a:visited,
a:active {
    color: var(--color-black);
}

/* =================================================================
   3. RESET & BASE STYLES
   ================================================================= */
* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

html {
  scrollbar-gutter: stable;
}

body {
  font-family: var(--font-root);
  font-weight: 400;
  color: var(--text-primary);
  overflow-x: hidden;
}

/* Remove tap highlight on mobile */
a,
button,
.nav-link,
.mobile-back,
.mobile-close,
.mega-menu-item,
.ctrl {
  -webkit-tap-highlight-color: transparent;
  -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
}

/* =================================================================
   4. TYPOGRAPHY
   ================================================================= */

/* Headings */
h1, h2, h3, h4, h5, h6 {
  font-family: var(--font-title);
  font-weight: 400;
  line-height: 1em;
  color: var(--color-black);
  letter-spacing: -0.03em;
}

h1 {
  font-size: clamp(24px, 3.6vw, 42px);
}

h2 {
  font-size: clamp(20px, 3.6vw, 38px);
}

h3 {
  font-size: 33px;
}

/* Text Utilities */
.gradient-text {
  display: inline-block;
  background: linear-gradient(90deg, var(--color-primary), var(--color-accent));
  background-clip: text;
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  color: transparent;
  background-size: 100% 100%;
  background-repeat: no-repeat;
}

/* Color Text Classes */
.red-text {
  color: var(--color-accent) !important;
}

.blue-text {
  color: var(--color-primary) !important;
}

.purple-text {
  color: var(--color-purple) !important;
}

.text-white {
  color: var(--color-white) !important;
}

/* Text Style Classes */
.underline {
  text-decoration: underline !important;
}

.bold {
  font-weight: 600;
}

.italic {
  font-style: italic;
}

/* =================================================================
   5. UTILITY CLASSES
   ================================================================= */

/* Border Utilities */
.border-black {
  border: 1px solid var(--color-black);
}

/* Border Gradient Utilities */
.border-gradient-bluered {
  border: 1px solid transparent;
  border-image: var(--gradient-bluered) 1;
}

.border-gradient-blue {
  border: 1px solid transparent;
  border-image: var(--gradient-blue) 1;
}

.border-gradient-red {
  border: 1px solid transparent;
  border-image: var(--gradient-red) 1;
}

/* Background Gradient Utilities */
.bg-gradient-bluered {
  background: var(--gradient-bluered);
}

.bg-gradient-blue {
  background: var(--gradient-blue);
}

.bg-gradient-red {
  background: var(--gradient-red);
}

.bg-blue {
  background-color: var(--color-primary) !important;
}

.bg-black {
  background-color: var(--color-black) !important;
}

.bg-white {
  background-color: var(--color-white) !important;
}

.bg-gray-light {
  background-color: var(--color-gray-light) !important;
}

/* Margin Utilities */
.mt-0 { margin-top: 0 !important; }
.mt-1 { margin-top: 1rem !important; }
.mt-2 { margin-top: 2rem !important; }
.mt-3 { margin-top: 3rem !important; }
.mt-10 { margin-top: 10rem !important; }

.mb-0 { margin-bottom: 0 !important; }
.mb-1 { margin-bottom: 1rem !important; }
.mb-2 { margin-bottom: 2rem !important; }
.mb-3 { margin-bottom: 3rem !important; }

/* Padding Utilities */
.p-0 { padding: 0 !important; }
.p-1 { padding: 1rem !important; }
.p-2 { padding: 2rem !important; }
.p-3 { padding: 3rem !important; }

.pt-0 { padding-top: 0 !important; }
.pt-1 { padding-top: 1rem !important; }
.pt-2 { padding-top: 2rem !important; }
.pt-3 { padding-top: 3rem !important; }

.pb-0 { padding-bottom: 0 !important; }
.pb-1 { padding-bottom: 1rem !important; }
.pb-2 { padding-bottom: 2rem !important; }
.pb-3 { padding-bottom: 3rem !important; }

.pl-0 { padding-left: 0 !important; }
.pl-1 { padding-left: 1rem !important; }
.pl-2 { padding-left: 2rem !important; }
.pl-3 { padding-left: 3rem !important; }

.pr-0 { padding-right: 0 !important; }
.pr-1 { padding-right: 1rem !important; }
.pr-2 { padding-right: 2rem !important; }
.pr-3 { padding-right: 3rem !important; }

/* =================================================================
   6. MOBILE OPTIMIZATIONS
   ================================================================= */

/* Display Utilities */
.hide-mobile {
  display: inherit !important;
}

@media (max-width: 768px) {
  .hide-mobile {
    display: none !important;
  }
}

/* === Accessibility & Motion Preferences (added) ========================= */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.001ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.001ms !important;
    scroll-behavior: auto !important;
  }
}

/* === Performance hints (added) ========================================== */
.hero-slider-wrapper,
.slider-wrapper {
  will-change: transform;
}

/* === Show All Products Functionality ========================================== */
.product.product--hidden,
.products-grid .product.product--hidden,
.products-grid > .product--hidden {
  display: none !important;
  visibility: hidden !important;
  opacity: 0 !important;
  height: 0 !important;
  overflow: hidden !important;
}

/* === Cart Notification Visibility - FORCE ALL STYLES ========================================== */
.o_notification_manager {
  position: fixed !important;
  top: 80px !important;
  right: 20px !important;
  left: auto !important;
  bottom: auto !important;
  z-index: 999999 !important;
  pointer-events: none !important;
  display: block !important;
  width: auto !important;
  max-width: 500px !important;
}

/* All notification toasts - KILL inline styles that push off-screen */
.o_notification_manager .o_notification,
.o_notification_manager .toast,
.o_notification_manager > div,
.toast.o_notification,
.toast.o_cc1,
.toast.show {
  pointer-events: auto !important;
  z-index: 999999 !important;
  opacity: 1 !important;
  visibility: visible !important;
  display: block !important;
  position: static !important;
  min-width: 350px !important;
  max-width: 500px !important;
  background: white !important;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15) !important;
  border: 1px solid #ddd !important;
  border-radius: 4px !important;
  padding: 15px !important;
  margin-bottom: 10px !important;
  transform: none !important;
  left: 0 !important;
  right: 0 !important;
  top: 0 !important;
  bottom: auto !important;
  transition: none !important;
}

/* KILL all fade/hide animations */
.o_notification_fade,
.o_notification_fade-enter,
.o_notification_fade-enter-active,
.o_notification_fade-leave,
.o_notification_fade-leave-active,
.o_notification_fade-leave-to {
  opacity: 1 !important;
  transform: none !important;
  display: block !important;
  visibility: visible !important;
}

/* Bootstrap toast overrides */
.toast:not(.showing):not(.show) {
  opacity: 1 !important;
  display: block !important;
}

.toast.hide,
.toast.hiding {
  opacity: 1 !important;
  display: block !important;
}

/* Fix cloned notifications on body */
body > .infiniarc-cart-notif {
  position: fixed !important;
  z-index: 9999999 !important;
  opacity: 1 !important;
  visibility: visible !important;
  pointer-events: auto !important;
}

/* Ensure close buttons are visible and clickable */
.infiniarc-cart-notif .btn-close,
.infiniarc-cart-notif button[data-bs-dismiss],
.infiniarc-cart-notif [aria-label="Close"] {
  pointer-events: auto !important;
  cursor: pointer !important;
  opacity: 1 !important;
  visibility: visible !important;
  display: block !important;
  position: relative !important;
  z-index: 999 !important;
}

/* === Cart Counter Badge ========================================== */
.cart-badge {
  font-size: 11px;
  min-width: 18px;
  height: 18px;
  padding: 2px 5px;
  line-height: 14px;
  background: transparent;
  color: white;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-weight: 700;
  border: none;
  position: relative;
}

/* Wishlist Button States */
.wish,
.o_add_wishlist {
  cursor: pointer;
  transition: transform 0.2s ease, opacity 0.2s ease;
  background: none;
  border: none;
  padding: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.wish:hover,
.o_add_wishlist:hover {
  transform: scale(1.1);
}

.wish:active,
.o_add_wishlist:active {
  transform: scale(0.95);
}

.wish--active img,
.o_add_wishlist.disabled img {
  filter: brightness(1.2);
}

.wish:disabled,
.o_add_wishlist:disabled {
  opacity: 0.7;
  cursor: default;
}

/* Hide default Font Awesome icons from Odoo wishlist */
.o_add_wishlist .fa-heart,
.o_add_wishlist .fa-heart-o {
  display: none;
}

/* Make sure bookmark images show */
.o_add_wishlist img {
  width: 20px;
  height: 20px;
  display: inline-block;
}

.my_cart_quantity,
.compare-badge {
  position: absolute;
  top: -8px;
  right: -8px;
}

.my_cart_quantity.d-none,
.compare-badge.d-none {
  display: none !important;
}

/* === Product Detail Buy Button Form ========================= */
.config-actions form {
  display: block;
  margin: 0;
  width: 100%;
}

.config-actions form .btn-buy-primary {
  cursor: pointer;
  width: 100%;
  display: block;
}

.config-actions .btn-buy-primary {
  cursor: pointer;
}

/* === Reusable Add to Cart Form ========================= */
.js_add_cart_variants.d-inline-block {
  display: inline-block !important;
  margin: 0;
  vertical-align: middle;
}

.product__actions .js_add_cart_variants,
.product__actions.js_sale form {
  flex: 1;
  margin: 0;
}

.product__actions .js_add_cart_variants button,
.product__actions.js_sale form button {
  width: 100%;
  cursor: pointer;
}
