/* ============================================
   MARTIN'S BICYCLE - TARGETED CSS V4 (FINAL)
   Optimized for Smartetailing Janet Template
   ============================================ */

/* Smooth scrolling */
html {
  scroll-behavior: smooth;
}

/* ============================================
   HEADER IMPROVEMENTS
   ============================================ */

/* FIXED: Full width header with background */
.sePageHeaderWrapper {
  width: 100% !important;        
  max-width: 100% !important;    
  padding-left: 20px !important; 
  padding-right: 20px !important;
  
  padding-top: 0px !important;
  padding-bottom: 0px !important;
  background: linear-gradient(to bottom, #e0f2fe, #f0f9ff) !important;
  margin: 0 !important;
  position: relative !important;
}

/* Reduce logo size slightly */
.seSiteLogo,
.seSiteLogoWrapper {
  margin: 8px 0 !important;
  padding: 0 !important;
}

.seSiteLogo img,
.seSiteLogoWrapper img {
  max-height: 90px !important;
  margin: 0 !important;
}

/* Super compact the header content */
.sePageHeaderWrapper .container,
.sePageHeaderWrapper > div {
  padding-top: 0px !important;
  padding-bottom: 0px !important;
  margin-top: 0 !important;
  margin-bottom: 0 !important;
}

.sePageHeaderWrapper .row {
  margin-top: 0 !important;
  margin-bottom: 0 !important;
}

/* Logo hover effect */
.seSiteLogo img,
.seSiteLogoWrapper img {
  transition: transform 0.3s ease, opacity 0.3s ease !important;
}

.seSiteLogo:hover img,
.seSiteLogoWrapper:hover img {
  transform: scale(1.05) !important;
  opacity: 0.9 !important;
}

/* ============================================
   NAVIGATION - MODERN HOVER EFFECTS
   ============================================ */

.seSiteNavigatorContainer {
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1) !important;
}

.sePageMain a,
main a,
#PageMain a {
  transition: all 0.3s ease !important;
}

.seSiteNavigatorContainer a,
nav a,
.navigation a {
  position: relative !important;
  transition: all 0.3s ease !important;
}

.seSiteNavigatorContainer a:hover,
nav a:hover {
  transform: translateY(-2px) !important;
  filter: brightness(1.2) !important;
  text-shadow: 0 2px 4px rgba(0, 0, 0, 0.2) !important;
}

.seSiteNavigatorContainer a::after {
  content: '' !important;
  position: absolute !important;
  bottom: -3px !important;
  left: 50% !important;
  width: 0 !important;
  height: 3px !important;
  background: rgba(255, 255, 255, 0.8) !important;
  transition: all 0.3s ease !important;
  transform: translateX(-50%) !important;
}

.seSiteNavigatorContainer a:hover::after {
  width: 80% !important;
}

/* ============================================
   BANNER ENHANCEMENT
   ============================================ */

.sePageBanner a,
a[href*="store-policies"] {
  transition: all 0.3s ease !important;
  display: block !important;
}

.sePageBanner a:hover,
a[href*="store-policies"]:hover {
  filter: brightness(1.15) !important;
  transform: scaleX(1.002) !important;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.2) !important;
}

/* ============================================
   BUTTONS - WITH STRICT EXCEPTION
   ============================================ */

/* We use :not(.seSiteSearch *) to ensure these 
   global styles NEVER touch the search button.
*/

button:not(.seSiteSearch button),
.button:not(.seSiteSearch .button),
.btn:not(.seSiteSearch .btn),
input[type="submit"]:not(.seSiteSearch input),
[class*="btn"]:not(.seSiteSearch *) {
  transition: all 0.3s ease !important;
  border-radius: 4px !important;
  font-weight: 600 !important;
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1) !important;
}

/* Button hover - lifts with shadow (EXCEPTION APPLIED) */
button:not(.seSiteSearch button):hover,
.button:not(.seSiteSearch .button):hover,
.btn:not(.seSiteSearch .btn):hover,
input[type="submit"]:not(.seSiteSearch input):hover,
[class*="btn"]:not(.seSiteSearch *):hover {
  transform: translateY(-3px) !important;
  box-shadow: 0 6px 16px rgba(30, 58, 138, 0.3) !important;
}

/* Button active state */
button:active,
.button:active,
input[type="submit"]:active,
input[type="button"]:active {
  transform: translateY(-1px) !important;
}

/* ============================================
   MODERN "STABILIZED" SEARCH BAR
   ============================================ */

/* 1. Set up the container */
.seSiteSearchContainer,
.seSiteSearch,
form[name="search"] {
    position: relative !important;
    display: block !important;
    width: 100% !important;
    max-width: 400px !important;
}

/* 2. The Input Field - Beige, 6px Corners */
.seSiteSearch input[type="text"],
.seSiteSearch input[type="search"],
#txtSearch {
    background-color: #e8e4dc !important;
    border: 1px solid #dcd8d0 !important;
    border-radius: 6px !important;
    padding: 10px 45px 10px 15px !important;
    color: #333 !important;
    font-size: 15px !important;
    width: 100% !important;
    height: 42px !important;
    box-shadow: inset 0 2px 5px rgba(0,0,0,0.03) !important;
    transition: background-color 0.2s ease !important;
}

/* 3. The Search Button - LOCKED POSITION */
.seSiteSearch button,
.seSiteSearch .btn,
.seSiteSearch input[type="submit"] {
    position: absolute !important;
    right: 4px !important;
    top: 50% !important;
    /* Use Margins to center, NOT transform (prevents fighting) */
    margin-top: -17px !important; 
    height: 34px !important;
    width: 34px !important;
    
    background: transparent !important;
    border: none !important;
    box-shadow: none !important;
    color: #555 !important;
    padding: 0 !important;
    z-index: 100 !important;
    cursor: pointer !important;
    
    transform: none !important; 
    transition: none !important; 
}

/* 4. Hover effect - COLOR ONLY */
.seSiteSearch button:hover,
.seSiteSearch .btn:hover,
.seSiteSearch input[type="submit"]:hover {
    color: #000 !important;
    background: transparent !important;
    box-shadow: none !important;
    transform: none !important; 
    margin-top: -17px !important;
}

/* 5. Focus State */
.seSiteSearch input:focus {
    background-color: #f2efe9 !important;
    border-color: #999 !important;
    box-shadow: 0 0 0 2px rgba(0,0,0,0.1) !important;
    outline: none !important;
}

/* 6. Placeholder Text */
::placeholder {
    color: #666 !important;
    opacity: 0.8 !important;
}

/* ============================================
   HEADER ACTIONS
   ============================================ */

.seHeaderActionsContainer a {
  transition: all 0.3s ease !important;
}

.seHeaderActionsContainer a:hover {
  transform: translateY(-2px) !important;
  opacity: 0.8 !important;
}

/* ============================================
   IMAGES & PRODUCTS
   ============================================ */

img {
  transition: transform 0.3s ease, opacity 0.3s ease !important;
}

.img-responsive {
  transition: transform 0.4s ease !important;
}

.img-responsive:hover {
  transform: scale(1.03) !important;
}

.product-item,
.product-card,
[class*="product"],
[class*="item-"] {
  transition: all 0.3s ease !important;
  border-radius: 6px !important;
}

.product-item:hover,
.product-card:hover,
[class*="product"]:hover {
  transform: translateY(-6px) !important;
  box-shadow: 0 12px 24px rgba(0, 0, 0, 0.15) !important;
}

/* ============================================
   LINKS & HOURS
   ============================================ */

a {
  transition: color 0.2s ease, opacity 0.2s ease !important;
}

a:hover {
  opacity: 0.85 !important;
}

.store-hours,
[class*="hours"],
div[style*="12:00pm"] {
  font-size: 0.85em !important;
  letter-spacing: 0.3px !important;
  opacity: 0.95 !important;
  padding: 2px 10px 6px 10px !important;
  margin: 0 !important;
  line-height: 1.1 !important;
}

/* ============================================
   FORMS (Inputs)
   ============================================ */

input[type="text"]:not(.seSiteSearch input),
input[type="email"],
input[type="tel"],
input[type="number"],
select,
textarea {
  transition: all 0.3s ease !important;
  border-radius: 4px !important;
}

input:focus,
select:focus,
textarea:focus {
  box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.15) !important;
  border-color: #3b82f6 !important;
  outline: none !important;
}

/* ============================================
   MOBILE & LOADING
   ============================================ */

@media (max-width: 768px) {
  .seSiteNavigatorContainer {
    padding: 8px 0 !important;
  }
  
  button, .button, [class*="btn"] {
    padding: 10px 16px !important;
    font-size: 0.95em !important;
  }
  
  input[type="search"], input[type="text"] {
    font-size: 16px !important; 
  }
  
  *:hover {
    transform: none !important;
  }
}

.loading {
  animation: pulse 1.5s ease-in-out infinite !important;
}

@keyframes pulse {
  0%, 100% { opacity: 1; }
  50% { opacity: 0.7; }
}