/* Shared Direction A chrome. Values come from tokens.css and the A mockups. */
/* Keep viewport scrolling for sticky chrome. Older browsers clip at html only. */
html { overflow-x: hidden; scroll-padding-top: 72px; }
body { overflow-x: visible; }
@supports (overflow-x: clip) {
  html, body { overflow-x: clip; }
}
.da-icon { display: block; flex: none; }
.da-skip-link {
  position: absolute;
  inset-block-start: -100%;
  inset-inline-start: 50%;
  transform: translateX(-50%);
  z-index: 9999;
  padding: 1rem 2rem;
  background: var(--c-brand);
  color: var(--c-on-brand);
  text-decoration: none;
  border-radius: 0 0 var(--r-xs) var(--r-xs);
  font-weight: 600;
  transition: inset-block-start var(--dur-2) var(--ease-out);
}
.da-skip-link:focus {
  inset-block-start: 0;
  outline: 3px solid var(--c-focus);
  outline-offset: 2px;
}
.da-header { position: sticky; inset-block-start: 0; z-index: 1040; background: var(--c-hdr-bg); backdrop-filter: saturate(1.6) blur(16px); border-block-end: 1px solid var(--c-border); }
.da-header-inner { max-width: 1280px; margin-inline: auto; padding-inline: 16px; height: 55px; display: flex; align-items: center; gap: 16px; }
.da-logo { display: flex; align-items: center; gap: 10px; flex: none; color: var(--c-text-strong); text-decoration: none; }
.da-logo-mark { width: 32px; height: 32px; flex: none; }
.da-logo-word { display: flex; flex-direction: column; line-height: 1.05; }
.da-logo-word b { color: var(--c-text-strong); font-size: 18px; font-weight: 800; line-height: 1.05; }
.da-logo-word small { font-family: Inter, sans-serif; color: var(--c-text-3); font-size: 10.5px; font-weight: 600; letter-spacing: .06em; direction: ltr; line-height: 1.05; }
.da-header-actions { margin-inline-start: auto; display: flex; align-items: center; gap: 4px; }
.da-header .da-ib, .da-account-menu .da-ib { position: relative; display: inline-flex; align-items: center; justify-content: center; gap: 6px; min-width: 44px; height: 44px; padding: 0; border: 0; border-radius: var(--r-ib); background: transparent; color: var(--c-text-2); text-decoration: none; cursor: pointer; }
.da-header .da-ib:hover { background: var(--c-surface-2); color: var(--c-brand-text); }
.da-header-nav, .da-header-search, .da-header .da-desktop, .da-cart-total { display: none; }
.da-header .da-cart { color: var(--c-text); }
.da-cart .badge-cart, .pharma-mobile-nav-badge { position: absolute; inset-block-start: 0; inset-inline-end: -2px; border: 0; border-radius: 999px; background: var(--c-accent); color: var(--c-on-accent); min-width: 18px; height: 18px; padding-inline: 5px; font: 700 11px/18px Inter, Vazirmatn, sans-serif; text-align: center; box-shadow: 0 0 0 2px var(--c-hdr-solid); }
.da-cart .badge-cart[hidden], .pharma-mobile-nav-badge[hidden] { display: none; }
.da-price { display: inline-flex; align-items: baseline; direction: ltr; font-family: Inter, Vazirmatn, sans-serif; font-size: 18px; font-weight: 800; color: var(--c-text-strong); letter-spacing: -.02em; white-space: nowrap; font-variant-numeric: tabular-nums; }
.da-price .da-cur, .da-price .da-dec { font-size: .72em; font-weight: 700; opacity: .75; }
.da-cur { margin-inline-end: 1px; }
.da-moon, .da-sun { display: flex; }
/* Explicit light always shows moon (switch-to-dark). Explicit/system dark shows sun. */
html[data-theme="dark"] .da-moon,
html[data-theme="light"] .da-sun { display: none; }
@media (prefers-color-scheme: dark) {
  html:not([data-theme]) .da-moon { display: none; }
  html:not([data-theme]) .da-sun { display: flex; }
}
@media (prefers-color-scheme: light) {
  html:not([data-theme]) .da-sun { display: none; }
  html:not([data-theme]) .da-moon { display: flex; }
}
/* Tokenized alerts — logical border, Direction A colours (overrides legacy storefront-base). */
[data-storefront-assets] .alert {
  border-radius: var(--r-sm) !important;
  border: 0 !important;
  border-inline-start: 4px solid transparent !important;
  padding: 1rem 1.25rem !important;
  font-weight: 500;
}
[data-storefront-assets] .alert-success {
  background: var(--c-success-subtle) !important;
  color: var(--c-success-text) !important;
  border-inline-start-color: var(--c-success) !important;
}
[data-storefront-assets] .alert-danger {
  background: var(--c-danger-subtle) !important;
  color: var(--c-danger) !important;
  border-inline-start-color: var(--c-danger) !important;
}
[data-storefront-assets] .alert-warning {
  background: var(--c-warning-subtle) !important;
  color: var(--c-warning) !important;
  border-inline-start-color: var(--c-warning) !important;
}
[data-storefront-assets] .alert-info {
  background: var(--c-info-subtle) !important;
  color: var(--c-info) !important;
  border-inline-start-color: var(--c-info) !important;
}
.da-language { position: relative; }
.da-header #langToggle { font: 700 13px Inter, sans-serif; padding-inline: 10px; }
.da-header #langToggle i { font-size: 9px; }
.da-language-list { position: absolute; inset-inline-end: 0; inset-block-start: calc(100% + 8px); width: 176px; background: var(--c-surface-pop); border: 1px solid var(--c-border); border-radius: var(--r-lg); box-shadow: var(--c-shadow-3); padding: 0 8px; margin: 0; list-style: none; visibility: hidden; overflow: hidden; }
#langToggle[aria-expanded="true"] + .da-language-list { visibility: visible; }
.da-language-list a { display: block; padding: 10px 12px; color: var(--c-text); border-radius: var(--r-sm); text-decoration: none; }
.da-language-list a:hover, .da-language-list a.active { background: var(--c-brand-subtle); color: var(--c-brand-text); }
.pharma-mobile-nav { height: calc(64px + env(safe-area-inset-bottom, 0px)); min-block-size: calc(64px + env(safe-area-inset-bottom, 0px)); padding: 0 0 env(safe-area-inset-bottom, 0px); box-shadow: none; }
.pharma-mobile-nav-inner { height: 64px; display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); }
.pharma-mobile-nav-item[aria-busy="true"] { opacity: .7; cursor: progress; }
.pharma-mobile-nav .pharma-mobile-nav-item { height: 64px; max-inline-size: none; gap: 2px; padding-block: 0; font-size: 11.5px; font-weight: 600; }
.pharma-mobile-nav-item.active::before { display: none; }
.pharma-mobile-nav-badge { inset-block-start: 8px; inset-inline-end: calc(50% - 22px); }
.da-account-menu { background: var(--c-surface-pop); color: var(--c-text); border: 1px solid var(--c-border); border-radius: 24px 24px 0 0; padding: 24px 16px calc(24px + env(safe-area-inset-bottom, 0px)); width: min(100%, 480px); max-height: 85dvh; margin: auto auto 0; box-shadow: var(--c-shadow-3); }
.da-account-menu::backdrop { background: var(--c-overlay); backdrop-filter: blur(4px); }
.da-menu-head { display: flex; align-items: center; justify-content: space-between; margin-block-end: 16px; }
.da-menu-head h2 { color: var(--c-text-strong); font-size: 22px; font-weight: 800; margin: 0; }
.da-menu-link { display: flex; width: 100%; align-items: center; gap: 12px; padding: 12px 16px; border: 0; border-radius: var(--r-sm); color: var(--c-text); background: transparent; font: inherit; text-decoration: none; cursor: pointer; }
.da-menu-link:hover { background: var(--c-surface-2); }
.da-menu-language { border-block: 1px solid var(--c-border); margin-block: 8px; padding: 16px; }
.da-menu-language p { color: var(--c-text-2); margin-block-end: 8px; }
.da-menu-language > div { display: flex; gap: 8px; flex-wrap: wrap; }
.da-menu-language a { display: inline-flex; align-items: center; min-height: 44px; padding-inline: 12px; border-radius: 999px; background: var(--c-surface-2); color: var(--c-text); text-decoration: none; }
.da-menu-language a[aria-current] { background: var(--c-brand-subtle); color: var(--c-brand-text); }
/* Shared lower surfaces retain the footer and middleware's crawlable links. */
body .site-footer { background: var(--c-surface) !important; color: var(--c-text-2); border-block-start: 1px solid var(--c-border) !important; box-shadow: none; }
body .site-footer > .container { max-width: 1280px; padding: 40px 16px 24px !important; }
body .site-footer > .container > .row { align-items: start !important; }
body .site-footer > .container > .row > :is(.col-md-5, .col-md-7) { width: 100%; }
body .site-footer :is(.text-white, .text-white-50, p, .footer-live-signal, .badge-label, .footer-nav-link) { color: var(--c-text-2) !important; }
body .site-footer h5.text-white, body .site-footer h6 { color: var(--c-text-strong) !important; }
body .site-footer .footer-nav-section { grid-template-columns: repeat(3, minmax(0, 1fr)) !important; gap: 16px !important; padding: 0; margin-block-start: 24px; }
body .site-footer .footer-nav-section h6 { padding: 0; font-size: 14px !important; }
body .site-footer .footer-nav-section h6::after { display: none; }
body .site-footer .footer-nav-link { min-width: 0; font-size: 13px !important; line-height: 1.8; overflow-wrap: anywhere; }
body .site-footer .footer-nav-link:is(:hover, :focus-visible) { color: var(--c-brand-text) !important; transform: none; }
body .site-footer .footer-logo-wrapper { width: 40px; height: 40px; padding: 0; background: transparent !important; border: 0; box-shadow: none; }
body .site-footer .footer-logo-wrapper svg > g > rect:first-child { fill: var(--c-brand); }
body .site-footer .footer-logo-wrapper svg > g > rect:nth-child(2) { fill: var(--c-accent); }
body .site-footer .footer-logo-wrapper svg > g > g { fill: var(--c-on-brand); }
body .site-footer .footer-logo-wrapper svg circle { stroke: var(--c-brand-text); }
body .site-footer .footer-social-row { flex-wrap: wrap; }
body .site-footer .footer-social-link { background: var(--c-surface-2) !important; border-color: var(--c-border); }
body .site-footer .footer-social-link .text-white { color: var(--c-brand-text) !important; }
body .site-footer .footer-social-link:hover { background: var(--c-brand-subtle) !important; }
body .site-footer .trust-badges-section, body .site-footer .text-center.pt-3 { border-color: var(--c-border) !important; }
body .site-footer .text-center.pt-3 { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 8px; text-align: start !important; margin-block-start: 32px; }
body .site-footer .text-center.pt-3 > p, body .site-footer .footer-live-signal { font-size: 12.5px !important; }
body .site-footer .trust-badge { background: var(--c-surface-2); border-color: var(--c-border); box-shadow: none; }
body .site-footer .badge-inner { background: var(--c-brand-subtle) !important; box-shadow: none; }
body .site-footer .badge-icon { color: var(--c-brand-text); }
body .site-footer .badge-label { white-space: normal; }
body .site-footer .footer-live-signal { opacity: 1; }
body .seo-internal-links { margin-block-start: 0 !important; padding-block: 24px !important; background: var(--c-surface-2) !important; color: var(--c-text-2); border-block-start: 1px solid var(--c-border) !important; }
body .seo-internal-links > div { max-width: 1280px !important; padding-inline: 16px !important; }
body .seo-internal-links > div > div { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; gap: 24px !important; }
body .seo-internal-links strong { color: var(--c-text-strong) !important; font-size: 14px; }
body .seo-internal-links a { display: inline-block; max-width: 100%; padding-block: 4px; color: var(--c-text-2) !important; font-size: 13px; overflow-wrap: anywhere; }
body .seo-internal-links a:is(:hover, :focus-visible) { color: var(--c-brand-text) !important; }
.home-page .marketplace-info-footer { background: linear-gradient(120deg, var(--c-brand-subtle), var(--c-accent-subtle)) !important; color: var(--c-text); border: 1px solid var(--c-border); }
.home-page .marketplace-info-tagline { color: var(--c-text-strong); }
.home-page .marketplace-info-cta { background: var(--c-brand); color: var(--c-on-brand) !important; }
.home-page .marketplace-info-cta:hover { background: var(--c-brand-hover); color: var(--c-on-brand) !important; }
.home-page .marketplace-info-icon { background: var(--c-brand-subtle); color: var(--c-brand-text); box-shadow: none; }
.home-page .marketplace-info-points li { background: var(--c-surface-2); color: var(--c-text-2); border-color: var(--c-border); }
.home-page .marketplace-point-icon { background: var(--c-brand-subtle); color: var(--c-brand-text); }
@media (min-width: 1024px) {
  body .site-footer > .container { padding: 64px 40px 24px !important; }
  body .site-footer > .container > .row > .col-md-5 { width: 40%; }
  body .site-footer > .container > .row > .col-md-7 { width: 60%; }
  body .site-footer .footer-nav-section { gap: 24px !important; margin-block-start: 0; }
  body .site-footer .footer-nav-link { font-size: 14px !important; }
  body .seo-internal-links > div { padding-inline: 40px !important; }
  body .seo-internal-links > div > div { grid-template-columns: repeat(4, minmax(0, 1fr)) !important; }
  .da-header-inner { height: 63px; padding-inline: 40px; gap: 24px; }
  .da-header-nav { display: flex; gap: 4px; align-items: center; }
  .da-header-nav a { display: inline-flex; align-items: center; height: 40px; padding-inline: 12px; border-radius: var(--r-ib); font-size: 14px; font-weight: 600; color: var(--c-text-2); white-space: nowrap; text-decoration: none; }
  .da-header-nav a:hover, .da-header-nav a.active { background: var(--c-surface-2); color: var(--c-text); }
  .da-header-actions { gap: 8px; }
  .da-header .da-desktop { display: inline-flex; }
  .da-header .da-search-open { display: none; }
  .da-header .da-home-search-open { display: inline-flex; }
  .da-header-search { display: flex; align-items: center; gap: 8px; min-width: 0; flex: 1; height: 44px; padding-inline: 14px; border: 1px solid var(--c-border); border-radius: var(--r-sm); background: var(--c-surface-2); color: var(--c-text-3); }
  .da-header-search input { min-width: 0; width: 100%; border: 0; background: transparent; color: var(--c-text); font: inherit; font-size: 14px; outline: none; }
  .da-header-search button { border: 0; background: transparent; color: var(--c-brand-text); }
  .da-header-search:focus-within { outline: 2px solid var(--c-brand); outline-offset: 2px; }
  html[dir="ltr"] .da-header-search button .da-icon { transform: scaleX(-1); }
  .da-header .da-cart { padding-inline: 14px 10px; background: var(--c-surface-2); gap: 10px; }
  .da-cart .badge-cart { position: static; box-shadow: none; }
  .da-cart-total { display: inline; }
  .da-cart-total .da-price { font-size: 14px; }
  .pharma-mobile-nav { display: none; }
}
@media (min-width: 1024px) and (max-width: 1199px) {
  .da-header-inner { gap: 12px; padding-inline: 24px; }
  .da-header-nav { gap: 0; }
  .da-header-nav a { padding-inline: 6px; font-size: 12px; }
  .da-header-actions { gap: 0; }
  .da-header .da-ib { min-width: 36px; }
  .da-logo-word b { font-size: 16px; }
  .da-header-search input { font-size: 12px; }
}
/* Desktop header search: the inline box needs ~240px to show a useful query.
   Between 1024-1279 there is not enough room next to the full nav, so it collapses
   to the same search button used on home (opens the search sheet). From 1280 the
   nav tightens so the box keeps a readable width in every language. */
@media (min-width: 1024px) and (max-width: 1279px) {
  .da-header .da-header-search { display: none; }
  .da-header .da-search-open { display: inline-flex; }
}
@media (min-width: 1280px) {
  .da-header-inner { gap: 16px; }
  .da-header-nav { gap: 0; }
  .da-header-nav a { padding-inline: 9px; }
  .da-header-actions { gap: 4px; }
  /* html .da-header prefix: beats purchase.css (loaded later) `.da-purchase-page :is(form…) {min-width:0}`. */
  html .da-header .da-header-search { flex: 1 1 260px; min-width: 240px; }
  .da-header-search button { display: inline-flex; align-items: center; justify-content: center; width: 32px; height: 32px; margin-inline-end: -8px; border-radius: var(--r-ib); }
  .da-header-search button:hover { background: var(--c-surface); }
}
@media (max-width: 1023px) {
  :root { --pw-mobile-nav-height: calc(64px + env(safe-area-inset-bottom, 0px)); }
  .pharma-mobile-nav { display: flex; }
}
@supports not (backdrop-filter: blur(1px)) { .da-header { background: var(--c-hdr-solid); } }

/* Mobile nav: <button> items (Support/Account) must not inherit the UA button
   chrome; without this they render as grey outset boxes in dark mode on
   pages that don't load the storefront bundle. */
.pharma-mobile-nav button.pharma-mobile-nav-item {
  -webkit-appearance: none;
  appearance: none;
  background: transparent;
  border: 0;
  box-shadow: none;
  color: var(--c-text-2);
  font: inherit;
  font-size: 11.5px;
  font-weight: 600;
}
.pharma-mobile-nav button.pharma-mobile-nav-item:hover { color: var(--c-brand-text, var(--c-brand)); }

/* Horizontal scroll rows (hero chips, trust row, catalog filters, carousels):
   fade the trailing edge so clipped items read as "scroll for more" instead
   of text cut mid-word at the screen edge. */
@media (max-width: 1023px) {
  .hero-popular, .da-hero-trust, .da-filter-row, .da-cats, .da-products {
    -webkit-mask-image: linear-gradient(to left, transparent 0, #000 36px);
    mask-image: linear-gradient(to left, transparent 0, #000 36px);
  }
  html[dir="rtl"] :is(.hero-popular, .da-hero-trust, .da-filter-row, .da-cats, .da-products) {
    -webkit-mask-image: linear-gradient(to right, transparent 0, #000 36px);
    mask-image: linear-gradient(to right, transparent 0, #000 36px);
  }
}

/* Desktop header search: wide enough that its placeholder isn't clipped. */
@media (min-width: 1280px) {
  html body .da-header .da-header-search { flex: 1 1 340px; min-width: 300px; max-width: 420px; }
}

/* About / legal pages: present the body as a reading card with a clear
   heading rhythm, matching the rest of Direction A. */
.legal-content {
  padding: 28px clamp(20px, 4vw, 44px); border: 1px solid var(--c-border); border-radius: var(--r-lg, 20px);
  background: var(--c-surface); font-size: 15.5px; line-height: 1.9 !important;
}
.legal-content > p:first-child { margin-top: 0; }
.legal-content h2 { margin-top: 28px !important; margin-bottom: 8px; font-size: 19px !important; color: var(--c-text-strong); }
.legal-content p { color: var(--c-text-2); }
.legal-content strong { color: var(--c-text-strong); }
.legal-hero .legal-title { color: var(--c-text-strong); }
.legal-hero .lead { color: var(--c-text-2); font-size: 16px; }
/* Marketplace-info points were hard-coded white and glared in dark mode. */
.marketplace-info-points li { background: var(--c-surface) !important; border-color: var(--c-border) !important; color: var(--c-text-2) !important; }

/* Shipping page: align the hero text with the reading column below it. */
@media (min-width: 768px) {
  .coverage-hero:has(+ .coverage-body) .container { max-width: 46rem; }
}
