/* ===== PRODUCT DETAILS PAGE - FIXED LAYOUT ===== */

.product-content-wrapper {
  margin-top: 180px;
  padding: 0px 15px;
}

@media (max-width: 767px) {
  .product-content-wrapper {
    top: 30px !important; /* Reduced for mobile navbar */
    margin-top: 90px;
  }
}
/* Desktop Layout - Force 2 Column */
@media (min-width: 768px) {
  .product-main-row {
    display: flex !important;
    flex-wrap: wrap;
  }

  .product-main-row > .col-md-6 {
    flex: 0 0 50% !important;
    max-width: 50% !important;
    width: 50% !important;
  }
}

.mobile-head {
  display: none;
}

.deskstop-head {
  display: block;
}

/* Height Chart Inside Image - Desktop */
.tt-height-inside {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  width: 100%;
  background: linear-gradient(90deg, #f9ffa1 0%, #fefff6 100%);
  border: 1px solid #fcffe9ff;
  border-radius: 0px 0px 20px 20px;
  padding: 10px 15px;
  box-sizing: border-box;
  display: flex !important;
  align-items: center;
  z-index: 12;
  font-family: "DM Sans", sans-serif;
}

.tt-height-inside-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  gap: 12px;
}

.tt-height-left {
  display: flex;
  align-items: center;
}

.tt-height-right {
  display: flex;
  align-items: center;
  justify-content: flex-end;
}

.tt-height-text {
  color: #303030;
  font-size: 13px;
  font-weight: 400;
}

.tt-height-text strong {
  color: #303030;
  font-weight: 600;
}

.tt-height-chart-link {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 4px 8px;
  border-radius: 20px;
  text-decoration: none;
  color: #9f9400;
  font-weight: 600;
  text-decoration: underline;
  font-size: 13px;
  background: rgba(255, 255, 255, 0);
  transition:
    background 0.15s ease,
    color 0.15s ease,
    transform 0.06s ease;
}

.tt-height-chart-link:hover {
  color: #857c00ff;
  background: #9f95001e;
  /* transform: translateY(-1px); */
}

.tt-height-link-text {
  text-decoration: underline;
  text-decoration-color: #857c00ff;
  text-underline-offset: 2px;
  text-decoration-thickness: 1px;
  display: inline-block;
}

.tt-height-icon {
  flex-shrink: 0;
  display: inline-block;
}

/* Height Chart Modal */
.tt-hc-overlay {
  /* position: fixed;
  inset: 0; */
  background: rgba(0, 0, 0, 0.23);
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 9999;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.18s ease;
}

.tt-hc-overlay.show {
  opacity: 1;
  pointer-events: auto;
}

.tt-hc-modal {
  background: #fff;
  border-radius: 10px;
  padding: 0px;
  max-width: 92%;
  max-height: 92%;
  overflow: auto;
  position: relative;
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.28);
}

.tt-hc-modal img {
  max-width: 100%;
  height: auto;
  display: block;
  border-radius: 6px;
}

.tt-hc-close {
  position: absolute !important;
  top: 8px;
  right: 8px;
  width: 34px;
  height: 34px;
  border-radius: 50%;
  border: none;
  background: #fff;
  font-size: 20px;
  cursor: pointer;
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.12);
}

/* Mobile Specific Layout */
@media (max-width: 767px) {
  /* Section Separators */
  .mobile-section-separator {
    height: 1px;
    background-color: #e0e0e0;
    width: 100%;
  }

  /* Hide desktop specs box on mobile */
  .mobile-hide-specs-box {
    display: none !important;
  }

  /* Mobile Specifications Section */
  .mobile-specs-section {
    display: block;
  }

  .mobile-specs-section h4 {
    font-size: 16px;
    font-weight: 700;
    margin-bottom: 15px;
    color: #303030;
    text-align: left;

    padding: 0px !important;
  }

  .mobile-specs-grid {
    display: flex !important;
    flex-direction: column !important;
    gap: 12px !important;
    margin-bottom: 25px;
  }

  .spec-row {
    display: flex !important;
    justify-content: flex-start !important;
    align-items: flex-start !important;
    border-bottom: ronone !important;
    padding-bottom: 4px !important;
    gap: 15px !important;
  }

  .mobile-specs-grid .spec-label {
    font-weight: 500 !important;
    font-size: 14px !important;
    flex: 0 0 130px !important;
    text-align: start !important;
  }

  .mobile-specs-grid .spec-value {
    font-size: 14px;
    color: #303030;
    font-weight: 700;
    flex: 1 !important;
    text-align: left !important;
  }

  /* Extend Subscription - Show only first item */
  .mobile-extend-single {
    display: flex;
    margin-bottom: 20px;
  }

  /* Hide other items (Terms, Cancellation, FAQs) in extend section */
  .mobile-hide-in-extend {
    display: none !important;
  }

  /* Show them later as separate section */
  .mobile-links-section {
    display: block;
  }

  .mobile-links-section .tt-extend-btn {
    margin-bottom: 15px;
  }

  /* Riders in Action */
  .mobile-riders-section {
    margin-top: 20px;
    padding: 0 15px;
  }

  .mobile-riders-section h6 {
    font-size: 16px;
    font-weight: 700;
    margin-bottom: 10px;
    text-align: left;
    color: #303030;
  }

  /* Smaller height chart text on mobile */
  .tt-height-inside {
    padding: 8px 12px;
  }

  .tt-height-text,
  .tt-height-chart-link {
    font-size: 12px;
  }

  .tt-height-chart-link {
    gap: 6px;
    padding: 5px 6px;
  }

  .mobile-head {
    display: none !important;
  }

  .deskstop-head {
    display: block !important;
  }

  /* Similar Products Mobile Overrides */
  #related-products .card-title {
    color: black !important;
    font-size: 14px !important;
    display: inline-block !important;
    margin-bottom: 0px !important;
    font-weight: 500 !important;
    margin-top: 10px;
  }

  #related-products .card-meta {
    padding-top: 5px !important;
    margin-top: 0px !important;
    font-size: 13px !important;
    color: #a4afb5;
  }

  #related-products .featured-item {
    margin-bottom: 10px !important;
    padding: 10px !important;
  }

  .mobile-price-labels span {
    font-weight: 900 !important;
    font-size: 20px !important;
    color: #303030 !important;
  }

  .mobile-price-labels .per-month {
    font-size: 16px !important;
    font-weight: 500 !important;
  }
}

/* Desktop Only - Keep specs box visible */
@media (min-width: 768px) {
  .mobile-section-separator,
  .mobile-specs-section,
  .mobile-links-section {
    display: none !important;
  }
}

/* Price Box Refactoring */
.duration-option {
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  justify-content: center !important;
  flex: 1 !important;
  min-width: 0 !important;
  padding: 12px 0px !important;
  text-align: center !important;
}

@media (min-width: 768px) {
  .product-info-col {
    padding: 0 60px 15px !important; /* Desktop padding — zero top so title top-aligns with image */
    position: relative;
    right: 50px;
  }
}

/* iPad / tablet (768–1023px): the desktop 60px side padding + 50px right
   offset eats ~170px of a ~384–512px col-md-6, squashing the four duration
   cards (1M / 3M / 6M / 12M) and pushing content past the column edge.
   Relax both at this range — the desktop offset only makes sense once
   there's enough column width to absorb it (≥1024px). */
@media (min-width: 768px) and (max-width: 1023px) {
  .product-info-col {
    padding: 0 15px 15px !important;
    right: 0 !important;
  }
}

/* Adjust duration-option for better mobile display */
@media (max-width: 767px) {
  .duration-options-row {
    margin-top: 12px !important;
  }

  .duration-option {
    margin: 0 !important;
    padding: 4px 2px !important;
    flex: 0 0 22% !important;
    min-width: 0 !important;
    height: 101px !important;
    gap: 6px;
  }

  .desktop-divider {
    display: none !important;
  }

  .duration-months-text {
    font-size: clamp(8px, 2.2vw, 12px) !important;
    line-height: 1 !important;
    white-space: nowrap !important;
  }

  .duration-per-month {
    font-size: clamp(6px, 1.5vw, 9px) !important;
    line-height: 1 !important;
    white-space: nowrap !important;
  }

  .product-price-text {
    font-size: clamp(11px, 3vw, 14px) !important;
    line-height: 1.1 !important;
    white-space: nowrap !important;
  }
}

.product-price-box {
  white-space: nowrap;
  font-size: clamp(14px, 4vw, 18px) !important;
  font-weight: 700;
  font-family: "Poppins";
  color: #303030;
  padding-left: 0px;
}

.product-price-text {
  text-align: center;
  font-size: clamp(14px, 4.5vw, 20px) !important;
  color: #303030 !important;
  font-weight: 700 !important;
  font-style: normal;
  padding: 0px !important;
}

/* Strikethrough "original" price shown under the effective monthly rate when
   discount_amount > 0. Darker than the surrounding muted gray on purpose —
   the eye reads "discount" only when both numbers are legible side-by-side.
   `!important` on color matches the surrounding price spans so any active-
   state cascade can't wash it out. */
.product-price-original {
  margin: 0 !important;
  text-align: center;
  font-family: "Poppins", sans-serif;
  font-size: clamp(11px, 3vw, 14px) !important;
  font-weight: 600;
  color: #6c757d !important;
  text-decoration: line-through;
  text-decoration-thickness: 1.5px;
  line-height: 1.2;
  margin-top: 2px !important;
}

/* =========================================
   Product Page Refactoring - New Classes
   ========================================= */

/* --- Slider & Images --- */
.product-slider-wrapper {
  padding: 0px 6px !important;
  position: relative !important;
}

.product-slider-block {
  position: relative !important;
  display: block !important;
  width: 100% !important;
  padding-bottom: 15px;
  background: white !important;
}

.main-product-image {
  border: none !important;
  /* Bottom corners flat — the height-info bar provides the rounded bottom
     for the card. Avoids a sliver of image curve showing above the bar. */
  border-radius: 20px 20px 0 0 !important;
  width: 100% !important;
  height: 100% !important;
  display: block !important;
  object-fit: contain !important;
  object-position: center !important;
  transform: scale(1.03);
  max-width: 100% !important;
  padding-bottom: 0 !important;
  background-color: #ffffff !important;
}

/* Inner image wrapper inherits padding-bottom: 15px from .product-slider-block,
   which would push the absolutely-positioned height bar below the image and
   leave the image's rounded bottom corners exposed. Drop it so the bar sits
   flush against the image's bottom edge. */
#main-image-wrapper {
  border: 1px solid #d6e5eb !important;
  padding-bottom: 0 !important;
  border-radius: 20px 20px 0 0 !important;
  overflow: hidden !important;
}

/* --- Badges --- */
.gear-badge {
  position: absolute !important;
  top: 15px !important;
  left: 15px !important;
  background: linear-gradient(88.74deg, #f9ffa1 0.67%, #fefff7 98.92%);

  padding: 5px 12px !important;
  border-radius: 15px !important;
  font-weight: 500 !important;
  font-size: 13px !important;
  color: #9f9400 !important;
  box-shadow: none !important;
  z-index: 10 !important;
}

.booked-badge-container {
  position: absolute !important;
  bottom: 40px !important;
  right: 20px !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: flex-end !important;
  z-index: 10 !important;
}

.badge-danger {
  background-color: #c71515 !important;
  padding-left: 10px !important;
  padding-right: 10px !important;
  padding-top: 5px !important;
  margin-bottom: 5px !important;
  padding-bottom: 5px !important;
  border-radius: 20px !important;
  text-align: center !important;
  font-size: 13px !important;
  font-weight: 600 !important;
  color: #ffffff !important;
  box-shadow: none !important;
  display: inline-block !important;
}

.available-badge {
  overflow: hidden !important;
  background-color: #ffe6e6 !important;
  padding-left: 6px !important;
  padding-right: 6px !important;
  padding-top: 3px !important;
  padding-bottom: 3px !important;
  border-radius: 20px !important;
  text-align: center !important;
  font-size: 12px !important;
  font-weight: 700 !important;
  color: #4d4d4d !important;
  box-shadow: none !important;
}

/* --- Height Info --- */
/* Sits in the normal flow directly below the image so the bar never crops
   the cycle photo. Image keeps its top-rounded corners, this bar provides
   the bottom rounding — together they read as a single card. */
.height-info-container {
  width: 100% !important;
  border: 1px solid #d6e5eb !important;
  border-top: none !important;
  border-radius: 0 0 20px 20px !important;
  background: linear-gradient(
    88.74deg,
    #f9ffa1 0.67%,
    #fefff7 98.92%
  ) !important;
  padding: 2px 15px !important;
  display: flex !important;
  justify-content: space-between !important;
  align-items: center !important;
}

.height-text {
  font-weight: 500 !important;
  font-size: 14px !important;
  color: #303030 !important;
}

.height-chart-link {
  font-weight: 700 !important;
  font-size: 14px !important;
  color: #9f9400 !important;
  text-decoration: underline !important;
}

/* --- Specifications Box (Left Column) --- */
.blue-specs-box {
  background: #e6f8ff !important;
  border-radius: 15px !important;
  padding: 20px !important;
  margin-top: 20px !important;
}

.specs-title {
  font-size: 16px !important;
  font-weight: 700 !important;
  margin-bottom: 20px !important;
  padding-bottom: 0 !important;
  color: #303030 !important;
}

.specs-row {
  margin: 0 !important;
}

.specs-col {
  padding: 0 !important;
}

.specs-item-wrapper {
  margin-bottom: 12px !important;
}

.specs-label {
  color: #303030 !important;
  font-weight: 500 !important;
  font-size: 14px !important;
  margin: 0 !important;
}

.specs-value {
  font-size: 14px !important;
  color: #303030 !important;
  font-weight: 700 !important;
  margin: 0 !important;
}

/* --- Right Column Content --- */
.right-content-wrapper {
  margin-top: 0 !important;
}

.product-title-desktop {
  font-size: 20px !important;
  color: #303030 !important;
  padding-bottom: 25px !important;
  padding-left: 10px !important;
  display: block !important;
}

.product-title-mobile {
  font-size: 20px !important;
  color: #303030 !important;
  padding-bottom: 15px !important;
  display: none !important;
  text-align: center !important;
}

@media (max-width: 767px) {
  .product-title-desktop {
    display: none !important;
  }
  .product-title-mobile {
    display: block !important;
  }
}

.duration-per-month {
  white-space: nowrap !important;
  font-size: clamp(8px, 3vw, 13px) !important;
  color: #8f999e !important;
  margin-top: 0px !important;
}

.duration-months-text {
  white-space: nowrap !important;
  font-weight: 800 !important;
  color: #303030 !important;
  font-size: clamp(10px, 3.5vw, 15px) !important;
}

/* --- Buttons --- */
.add-to-cart-container {
  text-align: center !important;
  padding-top: 20px !important;
}

.mobile-price-labels {
  display: none !important;
}

.add-to-cart-btn {
  display: flex;
  justify-content: center;
  align-items: center;
  width: 100% !important;
  background: linear-gradient(180deg, #21b9ff 0%, #00a5f1 100%) !important;
  color: #fff !important;
  /* font-weight: 500 !important; */
  font-size: 18px !important;
  padding: 10px !important;
  border: none !important;
  border-radius: 30px !important;
  cursor: pointer !important;
  min-height: 48px;
  box-sizing: border-box !important;
  transition: all 0.2s ease;
}

.add-to-cart-btn:hover,
.main-new-button .add-to-cart-btn:hover {
  background: linear-gradient(180deg, #21b9ff 0%, #00a5f1 100%) !important;
  color: #fff !important;
  opacity: 0.9;
}

/* Pre-book Info Box */
.prebook-info-box {
  background: #fffee0;
  border-radius: 10px;
  padding: 14px 16px;
  margin-top: 15px;
  width: 100%;
  text-align: left;
}

.prebook-title {
  font-family: "DM Sans", sans-serif;
  font-weight: 600;
  font-size: 14px;
  color: #303030;
  margin-bottom: 4px;
}

.prebook-desc {
  font-family: "DM Sans", sans-serif;
  font-weight: 400;
  font-size: 12px;
  color: #303030;
  line-height: 1.5;
}

.prebook-date {
  background: #ffe99a;
  padding: 1px 6px;
  border-radius: 4px;
  font-weight: 600;
  font-size: 12px !important;
}

@media (max-width: 767px) {
  .prebook-info-box {
    margin-top: 10px;
  }
}

/* Ensure Related Products is full width */
#related-products {
  width: 100% !important;
  max-width: 100% !important;
  padding: 0 !important;
  clear: both !important;
}

#related-products .featured-item {
  border-radius: 20px !important;
}

/* Right column gallery tweaks */
.right-col-gallery {
  padding-top: 25px !important;
  padding-bottom: 5px !important;
}

.right-col-gallery .riders-gallery-title {
  font-size: 16px !important;
  font-weight: 600 !important;
  margin-bottom: 15px !important;
}

.rider-image-card {
  aspect-ratio: 1 / 1;
  overflow: hidden;
  border-radius: 8px;
  background: #F0F2F5;
}

.rider-image-card picture,
.rider-image-card img {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
}

.rider-image {
  cursor: zoom-in;
}

.rider-lightbox-overlay {
  position: fixed;
  inset: 0;
  background: rgba(0, 0, 0, 0.9);
  z-index: 9999;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 20px;
  cursor: zoom-out;
  opacity: 0;
  transition: opacity 0.2s ease;
}

.rider-lightbox-overlay.active {
  opacity: 1;
}

.rider-lightbox-image {
  max-width: 95vw;
  max-height: 90vh;
  object-fit: contain;
  border-radius: 8px;
  cursor: default;
  box-shadow: 0 10px 40px rgba(0, 0, 0, 0.5);
}

.rider-lightbox-close {
  position: absolute !important;
  top: 20px;
  right: 20px;
  width: 40px;
  height: 40px;
  background: rgba(255, 255, 255, 0.15);
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
  border: none;
  border-radius: 50%;
  color: #fff;
  font-size: 24px;
  line-height: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: background 0.15s ease;
}

.rider-lightbox-close:hover {
  background: rgba(255, 255, 255, 0.28);
}

/* Lightbox open marker — plain overflow:hidden so the page does not
   visibly shift when the lightbox opens or closes. */
body.rider-lightbox-open,
html:has(body.rider-lightbox-open) {
  overflow: hidden;
}

/* Lightbox nav arrows */
.rider-lightbox-nav {
  position: absolute !important;
  top: 50%;
  transform: translateY(-50%);
  width: 48px;
  height: 48px;
  background: rgba(255, 255, 255, 0.18);
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
  border: none;
  border-radius: 50%;
  color: #fff;
  font-size: 36px;
  line-height: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: background 0.15s ease;
  z-index: 10;
  padding-bottom: 2px;
}

.rider-lightbox-nav:hover {
  background: rgba(255, 255, 255, 0.32);
}

.rider-lightbox-prev {
  left: 20px;
}

.rider-lightbox-next {
  right: 20px;
}

@media (max-width: 767px) {
  .rider-lightbox-prev {
    left: 8px;
    width: 40px;
    height: 40px;
    font-size: 28px;
  }
  .rider-lightbox-next {
    right: 8px;
    width: 40px;
    height: 40px;
    font-size: 28px;
  }
}

@media (max-width: 767px) {
  /* Horizontal Scroll for Riders Gallery */
  .riders-gallery-grid {
    display: flex !important;
    flex-wrap: nowrap !important;
    overflow-x: auto !important;
    -webkit-overflow-scrolling: touch !important;
    gap: 12px !important;
    padding-left: 15px !important;
    margin-left: -15px !important;
    width: calc(100% + 30px) !important;
    scrollbar-width: none; /* Firefox */
  }

  .riders-gallery-grid::-webkit-scrollbar {
    display: none; /* Chrome/Safari */
  }

  .rider-image-card {
    flex: 0 0 130px !important;
  }

  /* Horizontal Scroll for Similar Cycles */
  #related-products .posts #related-row {
    display: flex !important;
    flex-wrap: nowrap !important;
    overflow-x: auto !important;
    -webkit-overflow-scrolling: touch !important;
    padding-bottom: 20px !important;
    margin-left: -15px !important;
    margin-right: -15px !important;
    padding-left: 15px !important;
    width: calc(100% + 30px) !important;
    scrollbar-width: none;
  }

  #related-products .posts #related-row::-webkit-scrollbar {
    display: none;
  }

  #related-row .product-card {
    flex: 1 0 286.6px !important;
    max-width: 100% !important; /* Allow growing */
    margin-right: 20px !important;
    padding: 0 !important;
  }
}

/* Mobile Slider for Similar Cycles */
@media (max-width: 767px) {
  .similar-slider-inner {
    display: flex !important;
    flex-wrap: nowrap !important;
    overflow-x: auto !important;
    -webkit-overflow-scrolling: touch;
    scroll-behavior: smooth;
    gap: 10px;
    padding-bottom: 20px;
    margin: 0 -15px !important; /* Overlap container padding */
    padding-left: 15px;
    padding-right: 15px;
    scrollbar-width: none; /* Firefox */
    -ms-overflow-style: none; /* IE/Edge */
  }

  .similar-slider-inner::-webkit-scrollbar {
    display: none; /* Chrome/Safari */
  }

  .similar-slider-inner .product-card {
    flex: 0 0 240px !important; /* Slightly smaller on mobile */
    max-width: 240px !important;
    padding: 0 !important;
  }

  /* Hide Select button on mobile for similar cycles */
  #related-products .main-blue-button-stock {
    display: none !important;
  }

  .similar-cycles-header-wrapper {
    padding: 0px !important;
  }

  .similar-cycles-header-wrapper .section-heading h1 {
    font-size: 18px !important;
  }
}

.section-heading {
  margin-top: 0px !important;
}

/* Similar Cycles Section Styles */
.similar-cycles-header-wrapper {
  padding: 0 15px;
}

.similar-cycles-header-wrapper .section-heading h1 {
  font-size: 24px;
  font-weight: 700 !important;
  color: #303030 !important;
  text-align: left;
}

.similar-slider-wrapper {
  position: relative;
  margin-top: 15px;
}

@media (min-width: 768px) {
  .similar-slider-inner {
    display: flex !important;
    flex-wrap: nowrap !important;
    overflow-x: auto !important;
    scroll-behavior: smooth;
    gap: 20px;
    margin: 0 !important;
  }

  .similar-slider-inner::-webkit-scrollbar {
    height: 4px;
  }

  .similar-slider-inner::-webkit-scrollbar-track {
    background: transparent;
    border-radius: 10px;
  }

  .similar-slider-inner::-webkit-scrollbar-thumb {
    background: rgba(0, 0, 0, 0.12);
    border-radius: 10px;
  }

  .similar-slider-inner::-webkit-scrollbar-thumb:hover {
    background: rgba(0, 0, 0, 0.22);
  }

  .similar-slider-inner .product-card {
    flex: 0 0 calc((100% - 40px) / 3) !important;
    min-width: calc((100% - 40px) / 3) !important;
    max-width: calc((100% - 40px) / 3) !important;
    padding: 0 !important;
    margin-right: 0 !important;
  }

  .section-heading {
    margin-bottom: 10px !important;
    margin-top: 40px !important;
  }
}

/* Favourites button for the product hero + similar cycles.
   White circle backing keeps the heart legible against busy photo
   backgrounds. 30px container around a 20px icon = exactly 5px padding
   on every side, as requested. The subtle shadow lifts the chip off the
   image; without it the white disc visually melts into light-coloured
   skies/walls. */
.wishlist-btn {
  position: absolute !important;
  top: 10px !important;
  right: 10px !important;
  z-index: 20 !important;
  cursor: pointer !important;
  width: 32px !important;
  height: 32px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  background: #ffffff !important;
  border-radius: 50% !important;
  box-shadow: 0 1px 4px rgba(0, 0, 0, 0.12) !important;
}

.wishlist-btn img {
  width: 20px !important;
  height: auto !important;
  pointer-events: none !important;
  border-radius: 0px !important;
}

/* Card Alignment Fixes */
.card-action-flex-row {
  display: flex !important;
  justify-content: space-between !important;
  align-items: center !important;
  width: 100%;
  margin-top: 10px;
}

.card-action-flex-row .price-col {
  margin: 0 !important;
  padding: 0 !important;
}

.card-action-flex-row .main-blue-button-stock {
  margin: 0 !important;
}

.modal-title-pincode {
  font-weight: 600 !important;
  font-size: 18px !important;
  margin-bottom: 25px !important;
  margin-top: 10px !important;
  color: #303030 !important;
}

.pincode-input-wrapper {
  margin-bottom: 25px !important;
}

.pincode-input-style {
  text-align: center !important;
  font-size: 18px !important;
  padding: 12px !important;
  border-radius: 8px !important;
}

.pincode-input-style.active {
  border: none !important;
}

.pincode-msg-style {
  margin-bottom: 15px !important;
  font-size: 13px !important;
  display: none !important;
}

.pincode-confirm-btn {
  width: 40% !important;
  background: #00a5f1 !important;
  color: #fff !important;
  border: none !important;
  padding: 10px !important;
  border-radius: 30px !important;
  font-weight: 500 !important;
  font-size: 16px !important;
}

/* --- Universal Bottom-Sheet Modals (Mobile) --- */
@media (max-width: 767px) {
  .mobile-bottom-sheet.modal {
    padding-right: 0 !important;
  }

  .section-heading{
    margin-bottom: 0px !important;
  }

  .mobile-bottom-sheet .modal-dialog {
    margin: 0 !important;
    position: fixed !important;
    bottom: -100% !important;
    left: 0 !important;
    right: 0 !important;
    width: 100% !important;
    max-width: 100% !important;
    transition: bottom 0.3s ease-out !important;
  }

  .mobile-bottom-sheet.show .modal-dialog {
    bottom: 0 !important;
  }

  .mobile-bottom-sheet .modal-content {
    border-radius: 20px 20px 0 0 !important;
    border: none !important;
    max-height: 85vh !important;
    overflow-y: auto !important;
  }

  /* Specific override for Extend Modal to match Accessory Slider */
  .tt-extend-overlay {
    position: fixed !important;
    inset: 0 !important;
    background: rgba(0, 0, 0, 0.5) !important;
    z-index: 2000 !important;
    display: none !important;
    opacity: 0 !important;
    transition: opacity 0.3s ease !important;
  }

  .tt-extend-overlay.show {
    display: flex !important;
    opacity: 1 !important;
  }

  .tt-extend-modal {
    position: fixed !important;
    bottom: -100% !important;
    left: 0 !important;
    right: 0 !important;
    width: 100% !important;
    max-width: none !important;
    background: #fff !important;
    border-radius: 20px 20px 0 0 !important;
    transition: bottom 0.3s ease-out !important;
    z-index: 2001 !important;
    box-shadow: 0 -5px 20px rgba(0, 0, 0, 0.1) !important;
  }

  .tt-extend-overlay.show .tt-extend-modal {
    bottom: 0 !important;
  }

  .tt-extend-header {
    display: flex !important;
    justify-content: space-between !important;
    align-items: center !important;
    /* Header already has its own #E6F8FF background + bottom radius from
       templatemo. Drop the extra white gap and faux divider so the body
       sits closer on the mobile bottom-sheet. */
    margin-bottom: 0 !important;
    border-bottom: none !important;
    padding-bottom: 12px !important;
  }

  .tt-extend-body {
    padding: 14px !important;
  }

  .tt-extend-footer {
    margin-top: 4px !important;
    padding: 0 14px 16px !important;
  }

  .tt-extend-close {
    font-size: 28px !important;
    color: #999 !important;
    background: none !important;
    border: none !important;
    padding: 0 !important;
    line-height: 1 !important;
  }

  .gear-badge {
    top: 10px !important;
    left: 10px !important;
    font-size: 12px !important;
  }

  .height-text {
    font-size: 12px !important;
  }
}

/* Desktop styles for Extend Modal (centered) */
@media (min-width: 768px) {
  .tt-extend-overlay {
    position: fixed !important;
    inset: 0 !important;
    background: rgba(0, 0, 0, 0.5) !important;
    z-index: 2000 !important;
    display: none !important;
    align-items: center !important;
    justify-content: center !important;
    opacity: 0 !important;
    transition: opacity 0.3s ease !important;
  }

  .tt-extend-overlay.show {
    display: flex !important;
    opacity: 1 !important;
  }

  .tt-extend-modal {
    background: #fff !important;
    border-radius: 20px !important;
    width: 90% !important;
    max-width: 480px !important;
    position: relative !important;
    box-shadow: 0 10px 40px rgba(0, 0, 0, 0.2) !important;
    overflow: hidden !important;
  }

  .tt-extend-overlay.show .tt-extend-modal {
    opacity: 1 !important;
    transform: translateY(0) !important;
  }

  .tt-extend-header {
    display: flex !important;
    justify-content: space-between !important;
    align-items: center !important;
    margin-bottom: 20px !important;
  }

  .tt-extend-close {
    font-size: 24px !important;
    color: #999 !important;
    background: none !important;
    border: none !important;
    cursor: pointer !important;
  }
}

.tt-extend-title {
  font-family: "DM Sans", sans-serif !important;
  font-weight: 500 !important;
  font-size: 18px !important;
  color: #303030 !important;
}

.tt-extend-list {
  list-style: none !important;
  padding: 0 !important;
  margin: 0 !important;
}

.tt-extend-list li {
  font-family: "DM Sans", sans-serif !important;
  font-size: 14px !important;
  color: #303030 !important;
  margin-bottom: 12px !important;
  line-height: 1.5 !important;
}


#tt-extend-ok {
  display: block !important;
  width: 100% !important;
  background: linear-gradient(180deg, #21b9ff 0%, #00a5f1 100%) !important;
  color: #fff !important;
  text-align: center !important;
  padding: 12px !important;
  border-radius: 30px !important;
  font-weight: 500 !important;
  font-size: 16px !important;
  text-decoration: none !important;
}

/* =========================================
   MOBILE HIERARCHY & FIXED BUTTON UPDATES
   ========================================= */

@media (max-width: 767px) {
  /* 1. Mobile Title Formatting */
  .product-title-mobile {
    font-size: 22px !important;
    font-weight: 700 !important;
    color: #303030 !important;
    text-align: left !important;
    padding-left: 0 !important;
    display: block !important;
  }

  /* 2. Fixed Add to Cart Button */
  .add-to-cart-container {
    position: fixed !important;
    bottom: 0 !important;
    left: 0 !important;
    width: 100% !important;
    background: #fff !important;
    padding: 10px 20px calc(10px + env(safe-area-inset-bottom)) 20px !important;
    z-index: 1000 !important;
    box-shadow: 0 -2px 15px rgba(0, 0, 0, 0.1) !important;
    margin: 0 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
  }

  .mobile-price-labels {
    display: flex !important;
    flex-direction: column !important;
    align-items: flex-start !important;
    line-height: 1.2 !important;
    min-width: 0 !important;
    flex: 1 1 auto !important;
  }

  .mobile-monthly-price {
    font-size: 24px !important;
    font-weight: 800 !important;
    color: #303030 !important;
    white-space: nowrap !important;
  }

  .mobile-monthly-price .currency {
    font-family: "Courier New", Courier, monospace !important;
    font-size: 20px !important;
  }

  .mobile-monthly-price .per-month {
    font-size: 16px !important;
    color: #303030 !important;
    font-weight: 400 !important;
  }

  .mobile-duration-label {
    font-size: 14px !important;
    color: #303030 !important;
    font-weight: 600 !important;
    text-transform: uppercase !important;
    white-space: nowrap !important;
  }

  .add-to-cart-btn {
    width: auto !important;
    min-width: 140px !important;
    height: 50px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    padding: 0 25px !important;
    font-size: 16px !important;
    font-weight: 600 !important;
    margin-top: 0 !important;
    flex-shrink: 0 !important;
  }

  /* Spacer to prevent content from being hidden behind fixed button */
  body {
    padding-bottom: calc(90px + env(safe-area-inset-bottom)) !important;
  }

  /* Push WhatsApp chat pill above the fixed add-to-cart container */
  .floating {
    bottom: calc(90px + env(safe-area-inset-bottom)) !important;
    z-index: 999 !important;
  }

  /* 3. Specs Section */
  .mobile-hide-specs-box {
    display: none !important;
  }

  .mobile-specs-section {
    display: block !important;
    margin-top: 25px !important;
  }

  .mobile-specs-section h4 {
    font-size: 18px !important;
    font-weight: 700 !important;
    color: #303030 !important;
    margin-bottom: 15px !important;
  }

  .spec-col-labels,
  .spec-col-values {
    display: flex !important;
    flex-direction: column !important;
    gap: 12px !important;
    align-items: flex-start;
  }

  .spec-label {
    font-size: 14px !important;
    color: #303030 !important;
    font-weight: 500 !important;
  }

  .spec-value {
    font-size: 14px !important;
    color: #303030 !important;
    font-weight: 700 !important;
    text-align: left !important;
  }

  /* 4. Separator */
  .mobile-section-separator {
    background-color: #f1f1f1 !important;
  }

  /* 5. Hide redundant links in extend section */
  .mobile-hide-in-extend {
    display: none !important;
  }

  /* 6. Mobile Links Section */
  .mobile-links-section {
    display: block !important;
    margin-top: 30px !important;
  }

  .mobile-links-section .tt-extend-btn {
    margin-bottom: 15px !important;
  }

  .pincode-label-text {
    gap: 5px;
  }

  .duration-option {
    margin: 0px 10px;
  }

  .additional-details-title {
    margin-top: 20px !important;
  }

  .product-sub-detail {
    margin-top: 15px !important;
  }

  .pincode-section {
    padding-bottom: 0px !important;
  }

  .featured-item .tag {
    left: 4% !important;
    top: 4% !important;
    background: linear-gradient(88.74deg, #f9ffa1 0.67%, #fefff7 98.92%);
  }

  .similar-slider-inner .wishlist-btn {
    top: 5px !important;
    right: 5px !important;
  }

  .featured-item {
    margin-bottom: 0px !important;
    padding: 0px !important;
  }

  .featured-item h4 {
    font-weight: 400 !important;
    font-size: 14px !important;
  }

  .card-action-flex-row {
    display: none !important;
  }

  .height-chart-link {
    font-size: 12px !important;
  }

  .product-type-height {
    font-size: 15px !important;
    padding-top: 0px !important;
    color: #a4afb5 !important;
    font-weight: 400 !important;
  }

  .footer-main-container {
    padding: 0px 14px;
  }
}

@media (max-width: 380px) {
  .add-to-cart-container {
    padding: 10px 12px !important;
    gap: 8px !important;
  }

  .mobile-monthly-price {
    font-size: 20px !important;
  }

  .mobile-monthly-price .currency {
    font-size: 17px !important;
  }

  .mobile-monthly-price .per-month {
    font-size: 13px !important;
  }

  .mobile-duration-label {
    font-size: 12px !important;
  }

  .add-to-cart-btn {
    min-width: 110px !important;
    padding: 0 16px !important;
    font-size: 14px !important;
  }
}

.product-type-height {
  font-size: 15px !important;
  padding-top: 12px !important;
  color: #a4afb5 !important;
  font-weight: 400 !important;
}

.tag {
  background: linear-gradient(
    88.74deg,
    #f9ffa1 0.67%,
    #fefff7 98.92%
  ) !important;
}

@media (min-width: 768px) {
  .product-title-mobile {
    display: none !important;
  }
  .mobile-section-separator {
    display: none !important;
  }
  .mobile-specs-section {
    display: none !important;
  }
  .mobile-links-section {
    display: none !important;
  }

  .blue-specs-box.mobile-hide-specs-box {
    display: block !important;
  }

  .duration-option {
    margin: 0 7px;
  }

  .featured-item h4 {
    transition: all 0.5s;
    color: #303030;
    font-weight: 800;
    font-size: 18px;
  }
}

/* ===== Hover affordances =====
   Simple, lightweight feedback — opacity dips and small colour shifts only.
   No gradient swaps, no box-shadows. */

.duration-option {
  transition:
    background-color 0.15s ease,
    border-color 0.15s ease;
}
@media (min-width: 768px) {
  .duration-option:not(.active):hover {
    background-color: #f4fbff;
    border-color: #d8eefb;
    cursor: pointer;
  }
}

.wishlist-btn {
  transition: opacity 0.15s ease;
}
.wishlist-btn:hover {
  opacity: 0.75;
}

.main-blue-button-stock a {
  transition: opacity 0.15s ease;
}
.main-blue-button-stock a:hover {
  opacity: 0.85;
}

.featured-item .main-blue-button-stock.is-primary a {
  background: linear-gradient(180deg, #21b9ff 0%, #00a5f1 100%) !important;
  color: #ffffff !important;
  border: none !important;
  border-radius: 30px !important;
  padding: 10px 22px !important;
  font-weight: 700 !important;
  letter-spacing: 0.25px !important;
}

.featured-item .main-blue-button-stock.is-primary a:hover {
  background: linear-gradient(180deg, #21b9ff 0%, #00a5f1 100%) !important;
  color: #ffffff !important;
  opacity: 0.9 !important;
}

.pincode-action-btn {
  transition: opacity 0.15s ease;
}
.pincode-action-btn:hover {
  opacity: 0.7;
  cursor: pointer;
}

/* ===== Extend / T&C / FAQ icon wrappers =====
   Fixed-size box keeps the row visually aligned no matter the SVG's
   intrinsic ratio. object-fit: contain preserves each icon's aspect ratio
   inside the box (letterboxes the narrow ones rather than stretching). */
.extend-icon-wrapper {
  width: 36px;
  height: 36px;
  background: #e8f6ff;
  border-radius: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.extend-icon-wrapper img {
  width: 20px;
  height: 20px;
  object-fit: contain;
}

/* Product Page Disclaimer */
.product-disclaimer-container {
  margin-top: 15px;
  margin-bottom: 5px;
  padding: 0 4px;
}

.product-disclaimer {
  font-family: "DM Sans", sans-serif;
  font-size: 12px !important;
  color: #95a1a7 !important;
  line-height: 1.6 !important;
  margin-bottom: 6px !important;
  font-weight: 400 !important;
  text-align: left !important;
}

.product-disclaimer:last-child {
  margin-bottom: 0 !important;
}

.product-disclaimer a {
  color: #00a5f1 !important;
  text-decoration: underline !important;
  font-weight: 500 !important;
}
