/* ══ Site-wide responsive utilities ══ */

html {
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
}

body {
  overflow-x: clip;
}

img,
video,
svg,
canvas {
  max-width: 100%;
  height: auto;
}

iframe {
  max-width: 100%;
}

.ldrc-container,
.container {
  width: 100%;
  max-width: 100%;
}

/* Rich text / CMS content */
.policy-page-body img,
.policy-page-body table,
.about-prose img,
.about-prose table,
.pdp-ag-prose img,
.pdp-prose img,
.contact-map__frame {
  max-width: 100%;
}

.policy-page-body table,
.about-prose table,
.pdp-ag-prose table,
.pdp-prose table {
  display: block;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}

/* ══ Header ══ */
@media (max-width: 575.98px) {
  .ag-header__brand-name {
    font-size: 0.82rem;
    max-width: 9.5rem;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  .ag-header__top-inner {
    gap: 0.5rem;
  }

  .ag-header__utils {
    gap: 0.15rem;
  }
}

/* ══ Footer ══ */
@media (max-width: 575.98px) {
  .ldrc-footer .row > [class*="col-6"] {
    flex: 0 0 100%;
    max-width: 100%;
  }

  .ldrc-footer .d-flex.align-items-center.gap-3 {
    flex-wrap: wrap;
  }
}

/* ══ Bootstrap column stacking (all storefront pages) ══ */
@media (max-width: 991.98px) {
  .cart-page .row > [class*="col-lg"],
  .checkout-page .row > [class*="col-lg"],
  .contact-page .row > [class*="col-lg"],
  .about-page .row > [class*="col-lg"],
  .offers-page .row > [class*="col-lg"],
  .product-details-page--ag .row > [class*="col-lg"],
  .ag-shop-layout > [class*="col-lg"],
  .order-success-page .row > [class*="col-lg"],
  .dashboard-page .row > [class*="col-lg"],
  .dashboard-page .row > [class*="col-md"] {
    flex: 0 0 100%;
    max-width: 100%;
    width: 100%;
  }
}

@media (max-width: 767.98px) {
  .about-page .row > [class*="col-md"],
  .offers-page .row > [class*="col-md"],
  .ldrc-footer .row > [class*="col-md"] {
    flex: 0 0 100%;
    max-width: 100%;
    width: 100%;
  }
}

/* ══ Shop ══ */
@media (max-width: 991.98px) {
  .ag-shop-layout > [class*="col-"] {
    width: 100%;
  }

  .ag-shop-page__title {
    font-size: clamp(1.2rem, 5.5vw, 1.65rem);
    word-break: break-word;
  }

  .ag-shop-toolbar .shop-sort-form {
    width: 100%;
  }

  .ag-shop-toolbar .ag-shop-sort {
    width: 100%;
  }

  .ag-shop-page .breadcrumb-custom {
    font-size: 0.68rem;
    gap: 0.35rem 0.45rem;
  }
}

@media (max-width: 575.98px) {
  .ag-shop-toolbar .shop-chip {
    max-width: 100%;
  }

  .ag-shop-chip__text {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    max-width: 10rem;
  }
}

/* ══ Cart — card layout on mobile ══ */
@media (max-width: 767.98px) {
  .cart-section .cart-table-panel .table-responsive {
    overflow: visible;
  }

  .cart-section .cart-items-table {
    border: 0;
  }

  .cart-section .cart-items-table thead {
    display: none;
  }

  .cart-section .cart-items-table tbody {
    display: flex;
    flex-direction: column;
    gap: 0.85rem;
  }

  .cart-section .cart-items-table tbody tr {
    display: block;
    background: var(--color-surface-2);
    border: 1px solid var(--color-border);
    border-radius: 14px;
    padding: 0.85rem;
  }

  .cart-section .cart-items-table tbody tr:hover {
    --bs-table-hover-bg: transparent;
  }

  .cart-section .cart-items-table tbody td {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    padding: 0.45rem 0;
    border: 0;
    width: 100%;
  }

  .cart-section .cart-items-table tbody td::before {
    content: attr(data-label);
    font-size: 0.68rem;
    font-weight: 700;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    color: var(--text-muted);
    flex-shrink: 0;
  }

  .cart-section .cart-items-table tbody td.cart-item-product {
    display: block;
    padding-bottom: 0.65rem;
    margin-bottom: 0.35rem;
    border-bottom: 1px solid var(--color-border);
  }

  .cart-section .cart-items-table tbody td.cart-item-product::before {
    display: none;
  }

  .cart-section .cart-items-table tbody td.cart-item-remove {
    justify-content: flex-end;
    padding-top: 0.25rem;
  }

  .cart-section .cart-items-table tbody td.cart-item-remove::before {
    display: none;
  }

  .cart-section .cart-qty-picker {
    margin-left: auto;
  }
}

/* ══ Checkout ══ */
@media (max-width: 991.98px) {
  .checkout-form-panel,
  .checkout-order-panel {
    padding: 1rem;
  }
}

@media (max-width: 575.98px) {
  .checkout-page #promoInputState {
    flex-direction: column !important;
  }

  .checkout-page #promoInputState .checkout-btn-outline {
    width: 100%;
  }

  .checkout-page .checkout-pay-option__inner--multi {
    flex-direction: row;
    align-items: flex-start !important;
  }

  .checkout-page .btn.px-5 {
    padding-left: 1.25rem !important;
    padding-right: 1.25rem !important;
  }
}

/* ══ Contact / About / Offers ══ */
@media (max-width: 991.98px) {
  .contact-form-card {
    padding: 1.15rem !important;
  }

  .contact-map {
    min-height: 220px;
  }
}

@media (max-width: 575.98px) {
  .contact-item {
    align-items: flex-start !important;
  }

  .contact-item__icon {
    width: 3rem;
    height: 3rem;
  }

  .about-values .col-md-6 {
    width: 100%;
  }

  .offers-card {
    padding: 1rem !important;
  }

  .offers-code {
    font-size: 1.15rem !important;
    word-break: break-all;
  }
}

/* ══ Compare ══ */
@media (max-width: 991.98px) {
  .ag-compare-page__title {
    font-size: clamp(1.25rem, 5.5vw, 1.75rem);
  }

  .ag-compare-table-wrap {
    position: relative;
    margin-inline: -0.25rem;
    padding-bottom: 0.25rem;
  }

  .ag-compare-table-wrap::after {
    content: "";
    position: sticky;
    right: 0;
    top: 0;
    display: block;
    width: 2rem;
    height: 1px;
    pointer-events: none;
    float: right;
    margin-top: -1px;
  }
}

@media (max-width: 575.98px) {
  .ag-compare-page__lede {
    font-size: 0.88rem;
  }

  .ag-compare-product-head__name {
    font-size: 0.82rem;
    line-height: 1.3;
  }
}

/* ══ Order success ══ */
.order-success-page {
  padding-top: clamp(1.5rem, 5vw, 4rem);
  padding-bottom: clamp(2.5rem, 8vw, 5rem);
  background: var(--color-bg);
  color: var(--text-primary);
}

.order-success-page__icon {
  width: clamp(4.5rem, 18vw, 6.25rem);
  height: clamp(4.5rem, 18vw, 6.25rem);
  margin-inline: auto;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  background: rgba(46, 213, 115, 0.1);
  color: #2ed573;
  border: 2px solid rgba(46, 213, 115, 0.2);
  font-size: clamp(1.75rem, 8vw, 2.5rem);
}

.order-success-page__title {
  font-family: var(--font-serif);
  color: var(--text-primary);
  font-weight: 700;
}

.order-success-page__text {
  color: var(--text-secondary);
  max-width: 36rem;
  margin-inline: auto;
}

.order-success-page__order-no {
  color: var(--text-primary);
  font-weight: 700;
}

.order-success-page__card {
  background: var(--color-surface);
  border-radius: 16px;
  border: 1px solid var(--color-border);
  padding: clamp(1rem, 3vw, 1.75rem);
  text-align: start;
}

.order-success-page__card-title {
  color: var(--text-muted);
  border-bottom: 1px solid var(--color-border);
  padding-bottom: 0.85rem;
  margin-bottom: 1rem;
}

.order-success-page__row {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  margin-bottom: 0.5rem;
  font-size: 0.92rem;
}

.order-success-page__row-label {
  color: var(--text-muted);
}

.order-success-page__row-value {
  color: var(--text-primary);
  font-weight: 700;
  text-align: end;
}

@media (max-width: 575.98px) {
  .order-success-page__actions {
    flex-direction: column;
    width: 100%;
  }

  .order-success-page__actions .btn {
    width: 100%;
  }

  .order-success-page__row {
    flex-direction: column;
    align-items: flex-start;
    gap: 0.15rem;
  }

  .order-success-page__row-value {
    text-align: start;
  }
}

/* ══ Policy ══ */
.policy-page {
  padding: clamp(1.5rem, 4vw, 3rem) 0;
}

.policy-page__card {
  max-width: 52rem;
  margin-inline: auto;
  padding: clamp(1rem, 3vw, 2.5rem);
}

@media (max-width: 575.98px) {
  .policy-page__card {
    border-radius: 12px;
  }

  .policy-page-body {
    font-size: 0.92rem !important;
  }
}

/* ══ User dashboard (storefront layout) ══ */
.dashboard-page {
  padding-top: clamp(1.5rem, 5vw, 4rem);
  padding-bottom: clamp(2.5rem, 8vw, 5rem);
  background: var(--color-bg);
  color: var(--text-primary);
  min-height: 60vh;
}

.dashboard-page__card {
  background: var(--color-surface);
  border-radius: 16px;
  padding: clamp(1.25rem, 3vw, 2.5rem);
  border: 1px solid var(--color-border);
}

.dashboard-page__title {
  font-family: var(--font-serif);
  color: var(--text-primary);
}

@media (max-width: 767.98px) {
  .dashboard-page .stat-card {
    padding: 1rem !important;
  }
}

/* ══ Home carousel header ══ */
@media (max-width: 575.98px) {
  .ag-home-carousel__header {
    flex-wrap: wrap;
    gap: 0.65rem;
  }

  .ag-home-carousel__header-main {
    min-width: 0;
    flex: 1 1 auto;
  }

  .ag-home-carousel__tabs {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    flex-wrap: nowrap;
    scrollbar-width: none;
  }

  .ag-home-carousel__tabs::-webkit-scrollbar {
    display: none;
  }

  .ag-home-carousel__tab {
    flex: 0 0 auto;
    white-space: nowrap;
  }
}

/* ══ Support tickets ══ */
@media (max-width: 767.98px) {
  .ticket-support-page .table-responsive {
    margin-inline: -0.5rem;
    padding-inline: 0.5rem;
  }

  .ticket-support-page .text-end {
    text-align: start !important;
  }

  .ticket-support-page .btn-ldrc-primary {
    width: 100%;
    justify-content: center;
  }
}

/* ══ Global overflow guard ══ */
@media (max-width: 575.98px) {
  .ldrc-card {
    padding: 1rem !important;
  }

  .btn.px-5 {
    padding-left: 1.25rem !important;
    padding-right: 1.25rem !important;
  }
}

/* ══ Page hero (policy etc.) ══ */
@media (max-width: 575.98px) {
  .page-hero {
    padding-top: 1.5rem !important;
    padding-bottom: 1.5rem !important;
  }
}
