/* Internetapteka v3 — premium pharmacy commerce system */
:root {
  --iap-ink: #17312c;
  --iap-ink-soft: #45605a;
  --iap-green: #0e6b5c;
  --iap-green-dark: #095044;
  --iap-green-strong: #075d4f;
  --iap-mint: #e5f3ec;
  --iap-mint-2: #d4eadf;
  --iap-sage: #eef4e9;
  --iap-cream: #fbfaf6;
  --iap-sand: #f1ebdf;
  --iap-peach: #f8e2da;
  --iap-peach-strong: #dc725f;
  --iap-yellow: #f7e9b9;
  --iap-yellow-strong: #ba7d20;
  --iap-lilac: #ede8f7;
  --iap-lilac-strong: #7b61a9;
  --iap-sky: #e6f1f6;
  --iap-sky-strong: #4382a0;
  --iap-white: #ffffff;
  --iap-bg: #fbfcfa;
  --iap-line: #dfe7e2;
  --iap-line-strong: #cbd8d1;
  --iap-error: #b42318;
  --iap-success: #067647;
  --iap-sale: #d64938;
  --iap-shadow-sm: 0 8px 24px rgba(22, 52, 45, .07);
  --iap-shadow-md: 0 18px 54px rgba(17, 52, 43, .11);
  --iap-shadow-lg: 0 34px 90px rgba(16, 54, 44, .16);
  --iap-radius-xs: 8px;
  --iap-radius-sm: 14px;
  --iap-radius-md: 22px;
  --iap-radius-lg: 32px;
  --iap-radius-xl: 44px;
  --iap-container: 1440px;
  --iap-font: Inter, Manrope, -apple-system, BlinkMacSystemFont, "Segoe UI", Arial, sans-serif;
  --iap-transition: 220ms cubic-bezier(.22,.8,.2,1);
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  background: var(--iap-bg);
  color: var(--iap-ink);
  font-family: var(--iap-font);
  font-size: 16px;
  line-height: 1.58;
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
}
body.iap-lock { overflow: hidden; }
img, svg { display: block; max-width: 100%; }
img { height: auto; }
button, input, textarea, select { font: inherit; }
button, [type="button"], [type="submit"] { cursor: pointer; }
a { color: inherit; text-decoration: none; }
p, h1, h2, h3, h4, ul, ol, dl, dd { margin-top: 0; }
button { color: inherit; }
::selection { background: var(--iap-mint-2); color: var(--iap-ink); }
:focus-visible { outline: 3px solid rgba(14, 107, 92, .34); outline-offset: 3px; }

.screen-reader-text,
.iap-skip-link:not(:focus) {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}
.iap-skip-link:focus {
  position: fixed;
  z-index: 99999;
  top: 12px;
  left: 12px;
  padding: 12px 18px;
  border-radius: 10px;
  background: var(--iap-white);
  box-shadow: var(--iap-shadow-md);
  color: var(--iap-green-dark);
  font-weight: 800;
}
.iap-container { width: min(calc(100% - 48px), var(--iap-container)); margin-inline: auto; }
.iap-site-main { min-height: 55vh; }
.iap-section { padding: 96px 0; }
.iap-section.is-soft { background: #f3f7f4; }
.iap-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 14px;
  color: var(--iap-green);
  font-size: 12px;
  font-weight: 850;
  letter-spacing: .16em;
  text-transform: uppercase;
}
.iap-eyebrow::before { width: 20px; height: 2px; border-radius: 2px; background: currentColor; content: ""; }
.iap-section-head {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(260px, 520px) auto;
  align-items: end;
  gap: 32px;
  margin-bottom: 42px;
}
.iap-section-head > div { min-width: 0; }
.iap-section-head h2,
.iap-page-hero h1,
.iap-story-copy h2,
.iap-consultation-copy h2,
.iap-loyalty-banner h2,
.iap-seasonal h2,
.iap-footer-newsletter h2 {
  margin: 0;
  font-size: clamp(34px, 4vw, 61px);
  line-height: 1.02;
  letter-spacing: -.052em;
  text-wrap: balance;
}
.iap-section-head p { max-width: 540px; margin: 0; color: var(--iap-ink-soft); }
.iap-text-link {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  color: var(--iap-green-dark);
  font-weight: 800;
  white-space: nowrap;
}
.iap-text-link svg { width: 18px; fill: none; stroke: currentColor; stroke-width: 2; transition: transform var(--iap-transition); }
.iap-text-link:hover svg { transform: translateX(4px); }
.iap-btn,
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce #respond input#submit {
  display: inline-flex;
  min-height: 50px;
  align-items: center;
  justify-content: center;
  gap: 10px;
  padding: 12px 22px;
  border: 1px solid var(--iap-green);
  border-radius: 999px;
  background: var(--iap-green);
  color: var(--iap-white);
  font-weight: 800;
  line-height: 1.2;
  text-align: center;
  transition: transform var(--iap-transition), background var(--iap-transition), border-color var(--iap-transition), box-shadow var(--iap-transition);
}
.iap-btn svg,
.woocommerce a.button svg { width: 18px; fill: none; stroke: currentColor; stroke-width: 2; }
.iap-btn:hover,
.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover { transform: translateY(-2px); border-color: var(--iap-green-dark); background: var(--iap-green-dark); color: var(--iap-white); box-shadow: 0 12px 30px rgba(10, 82, 70, .16); }
.iap-btn--accent { border-color: var(--iap-peach-strong); background: var(--iap-peach-strong); }
.iap-btn--accent:hover { border-color: #bb5848; background: #bb5848; }
.iap-btn--dark { border-color: var(--iap-ink); background: var(--iap-ink); }
.iap-btn--light { border-color: var(--iap-white); background: var(--iap-white); color: var(--iap-green-dark); }
.iap-btn--light:hover { border-color: var(--iap-white); background: var(--iap-mint); color: var(--iap-green-dark); }
.iap-btn--ghost { border-color: var(--iap-line-strong); background: transparent; color: var(--iap-ink); }
.iap-btn--ghost:hover { border-color: var(--iap-green); background: var(--iap-mint); color: var(--iap-green-dark); }
.iap-btn--ghost-light { border-color: rgba(255,255,255,.45); background: transparent; color: var(--iap-white); }
.iap-btn--ghost-light:hover { border-color: var(--iap-white); background: var(--iap-white); color: var(--iap-green-dark); }

/* Announcement */
.iap-announcement { position: relative; z-index: 102; background: var(--iap-green-dark); color: #f5fffa; font-size: 13px; }
.iap-announcement__inner { display: flex; min-height: 39px; align-items: center; justify-content: space-between; gap: 22px; }
.iap-announcement p { margin: 0; font-weight: 650; }
.iap-announcement__links { display: flex; align-items: center; gap: 22px; }
.iap-announcement__links a { display: inline-flex; align-items: center; gap: 7px; font-weight: 750; }
.iap-announcement__links svg { width: 16px; height: 16px; fill: none; stroke: currentColor; stroke-width: 1.8; }
.iap-announcement__close { display: none; width: 30px; height: 30px; align-items: center; justify-content: center; border: 0; background: transparent; color: inherit; }
.iap-announcement__close svg { width: 16px; fill: none; stroke: currentColor; stroke-width: 2; }
.iap-announcement.is-hidden { display: none; }

/* Header */
.iap-site-header { position: sticky; z-index: 100; top: 0; border-bottom: 1px solid rgba(203,216,209,.75); background: rgba(255,255,255,.96); backdrop-filter: blur(18px); }
.iap-header-main { display: grid; grid-template-columns: 226px minmax(360px, 1fr) auto; align-items: center; gap: 34px; min-height: 91px; }
.iap-logo { display: inline-flex; width: 210px; align-items: center; }
.iap-logo .custom-logo-link { display: block; }
.iap-logo img, .iap-logo .custom-logo { width: 100%; max-height: 56px; object-fit: contain; object-position: left center; }
.iap-menu-toggle { display: none; min-height: 44px; align-items: center; gap: 7px; border: 0; background: transparent; font-size: 13px; font-weight: 800; }
.iap-menu-toggle svg { width: 24px; fill: none; stroke: currentColor; stroke-width: 1.8; }
.iap-header-search { position: relative; display: flex; min-width: 0; align-items: center; }
.iap-header-search__icon { position: absolute; z-index: 2; left: 17px; color: var(--iap-green); pointer-events: none; }
.iap-header-search__icon svg { width: 21px; fill: none; stroke: currentColor; stroke-width: 1.8; }
.iap-header-search input[type="search"] {
  width: 100%; height: 54px; padding: 0 105px 0 51px; border: 1px solid var(--iap-line); border-radius: 999px; background: #f5f8f6; color: var(--iap-ink); outline: 0; transition: border-color var(--iap-transition), box-shadow var(--iap-transition), background var(--iap-transition);
}
.iap-header-search input[type="search"]:focus { border-color: var(--iap-green); background: var(--iap-white); box-shadow: 0 0 0 4px rgba(14,107,92,.1); }
.iap-header-search > button { position: absolute; right: 5px; min-width: 88px; height: 44px; border: 0; border-radius: 999px; background: var(--iap-green); color: var(--iap-white); font-size: 13px; font-weight: 800; }
.iap-search-panel {
  position: absolute; z-index: 120; top: calc(100% + 12px); right: 0; left: 0; padding: 20px; border: 1px solid var(--iap-line); border-radius: 22px; background: var(--iap-white); box-shadow: var(--iap-shadow-lg);
}
.iap-search-panel[hidden] { display: none; }
.iap-search-label { display: block; margin-bottom: 10px; color: var(--iap-ink-soft); font-size: 12px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.iap-search-chips { display: flex; flex-wrap: wrap; gap: 8px; }
.iap-search-chips a { padding: 7px 11px; border-radius: 999px; background: var(--iap-mint); color: var(--iap-green-dark); font-size: 13px; font-weight: 700; }
.iap-search-result-item { display: grid; grid-template-columns: 54px minmax(0,1fr) auto; align-items: center; gap: 12px; padding: 9px; border-radius: 14px; }
.iap-search-result-item:hover { background: #f4f8f5; }
.iap-search-result-item img { width: 54px; height: 54px; border-radius: 11px; background: #f5f6f4; object-fit: contain; }
.iap-search-result-item span { min-width: 0; }
.iap-search-result-item b { display: block; overflow: hidden; font-size: 14px; text-overflow: ellipsis; white-space: nowrap; }
.iap-search-result-item small { display: block; color: var(--iap-ink-soft); }
.iap-search-result-item em { color: var(--iap-green-dark); font-size: 13px; font-style: normal; font-weight: 800; }
.iap-search-panel__message { padding: 18px 6px; color: var(--iap-ink-soft); text-align: center; }
.iap-search-all { display: flex; align-items: center; justify-content: space-between; margin-top: 12px; padding-top: 14px; border-top: 1px solid var(--iap-line); color: var(--iap-green-dark); font-size: 13px; font-weight: 800; }
.iap-search-all svg { width: 18px; fill: none; stroke: currentColor; stroke-width: 2; }
.iap-header-actions { display: flex; align-items: center; gap: 4px; }
.iap-header-actions > a { position: relative; display: flex; min-width: 67px; min-height: 54px; flex-direction: column; align-items: center; justify-content: center; gap: 3px; border-radius: 13px; color: var(--iap-ink-soft); font-size: 11px; font-weight: 750; transition: color var(--iap-transition), background var(--iap-transition); }
.iap-header-actions > a:hover { background: var(--iap-mint); color: var(--iap-green-dark); }
.iap-header-actions svg { width: 22px; height: 22px; fill: none; stroke: currentColor; stroke-width: 1.7; }
.iap-cart-count, .iap-wishlist-count { position: absolute; top: 3px; right: 8px; display: grid; min-width: 19px; height: 19px; place-items: center; padding: 0 5px; border: 2px solid var(--iap-white); border-radius: 99px; background: var(--iap-peach-strong); color: var(--iap-white); font-size: 10px; line-height: 1; }
.iap-navigation-wrap { position: relative; border-top: 1px solid #edf1ee; }
.iap-navigation { display: flex; min-height: 50px; align-items: center; gap: 25px; }
.iap-catalog-control { display: flex; align-self: stretch; align-items: center; border-right: 1px solid var(--iap-line); padding-right: 18px; }
.iap-catalog-link { display: inline-flex; align-items: center; gap: 9px; font-size: 13px; font-weight: 850; }
.iap-catalog-link svg { width: 18px; fill: none; stroke: var(--iap-green); stroke-width: 1.8; }
.iap-catalog-control button { display: grid; width: 30px; height: 32px; place-items: center; border: 0; background: transparent; }
.iap-catalog-control button svg { width: 16px; fill: none; stroke: currentColor; stroke-width: 2; transition: transform var(--iap-transition); }
.iap-catalog-control button[aria-expanded="true"] svg { transform: rotate(180deg); }
.iap-primary-nav { display: flex; flex: 1; align-items: center; gap: clamp(14px,1.7vw,30px); }
.iap-primary-nav a { display: inline-flex; align-items: center; gap: 6px; padding: 14px 0; font-size: 13px; font-weight: 760; white-space: nowrap; }
.iap-primary-nav a:hover { color: var(--iap-green); }
.iap-primary-nav .iap-nav-sale { color: var(--iap-sale); }
.iap-primary-nav .iap-nav-sale svg { width: 15px; fill: none; stroke: currentColor; stroke-width: 1.8; }
.iap-nav-help { display: inline-flex; align-items: center; gap: 7px; color: var(--iap-green); font-size: 12px; font-weight: 850; white-space: nowrap; }
.iap-nav-help svg { width: 16px; fill: none; stroke: currentColor; stroke-width: 2; }
.iap-mega-menu {
  position: absolute; z-index: 105; top: 100%; right: 0; left: 0; visibility: hidden; transform: translateY(-8px); border-top: 1px solid var(--iap-line); background: var(--iap-white); opacity: 0; box-shadow: 0 28px 55px rgba(17,52,43,.14); pointer-events: none; transition: opacity var(--iap-transition), transform var(--iap-transition), visibility var(--iap-transition);
}
.iap-mega-menu.is-open,
.iap-navigation-wrap:focus-within .iap-mega-menu { visibility: visible; transform: translateY(0); opacity: 1; pointer-events: auto; }
.iap-mega-menu__grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)) minmax(250px,1.18fr); gap: 30px; padding-top: 34px; padding-bottom: 34px; }
.iap-mega-kicker { display: block; margin-bottom: 12px; color: var(--iap-green); font-size: 11px; font-weight: 850; letter-spacing: .13em; text-transform: uppercase; }
.iap-mega-column > a { display: block; padding: 9px 0; }
.iap-mega-column > a b { display: block; font-size: 14px; }
.iap-mega-column > a small { display: block; margin-top: 2px; color: var(--iap-ink-soft); font-size: 11px; }
.iap-mega-column > a:hover b { color: var(--iap-green); }
.iap-mega-promo { padding: 26px; border-radius: 24px; background: var(--iap-green-dark); color: var(--iap-white); }
.iap-mega-promo > span { font-size: 10px; font-weight: 850; letter-spacing: .13em; text-transform: uppercase; opacity: .7; }
.iap-mega-promo h3 { margin: 12px 0 10px; font-size: 23px; line-height: 1.12; letter-spacing: -.035em; }
.iap-mega-promo p { margin-bottom: 18px; color: rgba(255,255,255,.74); font-size: 13px; }
.iap-mega-promo .iap-btn { min-height: 42px; padding: 10px 16px; font-size: 12px; }
.iap-noscript-nav { padding: 10px 0; background: var(--iap-yellow); }
.iap-noscript-nav .iap-container { display: flex; justify-content: center; gap: 22px; font-weight: 800; }

/* Mobile menu */
.iap-mobile-menu { width: min(92vw, 430px); max-height: 94vh; margin: auto 0 auto auto; padding: 0; border: 0; border-radius: 28px 0 0 28px; background: var(--iap-white); color: var(--iap-ink); box-shadow: var(--iap-shadow-lg); }
.iap-mobile-menu::backdrop { background: rgba(12,36,31,.58); backdrop-filter: blur(3px); }
.iap-mobile-menu[open] { animation: iap-slide-menu .25s ease-out; }
@keyframes iap-slide-menu { from { transform: translateX(24px); opacity: .7; } to { transform: translateX(0); opacity: 1; } }
.iap-mobile-menu__header { position: sticky; z-index: 3; top: 0; display: flex; min-height: 76px; align-items: center; justify-content: space-between; padding: 15px 20px; border-bottom: 1px solid var(--iap-line); background: rgba(255,255,255,.97); }
.iap-mobile-menu__header img { width: 185px; }
.iap-mobile-menu__header button { display: grid; width: 44px; height: 44px; place-items: center; border: 1px solid var(--iap-line); border-radius: 50%; background: var(--iap-white); }
.iap-mobile-menu__header svg { width: 20px; fill: none; stroke: currentColor; stroke-width: 2; }
.iap-mobile-search { padding: 18px 20px 8px; }
.iap-mobile-search > label { display: block; margin-bottom: 8px; font-size: 12px; font-weight: 800; }
.iap-mobile-search > div { position: relative; }
.iap-mobile-search input[type="search"] { width: 100%; height: 50px; padding: 0 52px 0 15px; border: 1px solid var(--iap-line); border-radius: 14px; background: #f4f7f5; }
.iap-mobile-search button { position: absolute; top: 3px; right: 3px; display: grid; width: 44px; height: 44px; place-items: center; border: 0; border-radius: 12px; background: var(--iap-green); color: var(--iap-white); }
.iap-mobile-search svg { width: 19px; fill: none; stroke: currentColor; stroke-width: 2; }
.iap-mobile-menu nav { padding: 10px 20px 30px; }
.iap-mobile-menu nav > h2 { margin: 10px 0 12px; font-size: 12px; letter-spacing: .1em; text-transform: uppercase; }
.iap-mobile-menu nav > a,
.iap-mobile-menu details > summary { display: flex; min-height: 52px; align-items: center; justify-content: space-between; gap: 12px; border-bottom: 1px solid #eef2ef; font-weight: 760; list-style: none; }
.iap-mobile-menu details > summary::-webkit-details-marker { display: none; }
.iap-mobile-menu details > summary svg { width: 17px; fill: none; stroke: currentColor; stroke-width: 2; transition: transform var(--iap-transition); }
.iap-mobile-menu details[open] > summary svg { transform: rotate(180deg); }
.iap-mobile-menu details > div { display: grid; gap: 1px; padding: 6px 0 12px 14px; }
.iap-mobile-menu details > div a { padding: 10px 8px; border-radius: 9px; color: var(--iap-ink-soft); font-size: 14px; }
.iap-mobile-menu details > div a:hover { background: var(--iap-mint); color: var(--iap-green-dark); }
.iap-mobile-menu .iap-mobile-featured { min-height: 76px; margin-bottom: 5px; padding: 12px; border: 0; border-radius: 17px; background: var(--iap-mint); }
.iap-mobile-featured > svg { width: 22px; fill: none; stroke: var(--iap-green); stroke-width: 1.8; }
.iap-mobile-featured span { flex: 1; }
.iap-mobile-featured b, .iap-mobile-featured small { display: block; }
.iap-mobile-featured small { margin-top: 2px; color: var(--iap-ink-soft); font-size: 11px; font-weight: 500; }
.iap-mobile-menu nav > a.is-sale { color: var(--iap-sale); }

/* Home hero */
.iap-home-hero { padding: 24px 0 0; }
.iap-home-hero__shell { position: relative; display: grid; min-height: 640px; grid-template-columns: minmax(0, .98fr) minmax(480px, 1.02fr); overflow: hidden; border: 1px solid #dbe8df; border-radius: 36px; background: linear-gradient(125deg,#edf7f1 0%,#f5f4e8 56%,#f7ebe4 100%); }
.iap-home-hero__copy { position: relative; z-index: 3; display: flex; flex-direction: column; justify-content: center; padding: clamp(48px,6vw,92px); padding-right: 30px; }
.iap-hero-label { display: inline-flex; width: max-content; max-width: 100%; align-items: center; gap: 8px; margin-bottom: 24px; padding: 9px 14px; border: 1px solid rgba(14,107,92,.13); border-radius: 999px; background: rgba(255,255,255,.62); color: var(--iap-green-dark); font-size: 12px; font-weight: 800; backdrop-filter: blur(8px); }
.iap-hero-label svg { width: 16px; fill: none; stroke: currentColor; stroke-width: 1.8; }
.iap-home-hero h1 { max-width: 780px; margin-bottom: 22px; font-size: clamp(50px,5.55vw,85px); line-height: .95; letter-spacing: -.064em; text-wrap: balance; }
.iap-home-hero h1 em { color: var(--iap-green); font-style: normal; }
.iap-home-hero__copy > p { max-width: 675px; margin-bottom: 30px; color: var(--iap-ink-soft); font-size: clamp(17px,1.35vw,20px); }
.iap-hero-search { max-width: 700px; margin-bottom: 22px; }
.iap-hero-search > label { display: block; margin-bottom: 8px; font-size: 12px; font-weight: 800; }
.iap-hero-search > div { position: relative; display: flex; padding: 6px; border: 1px solid var(--iap-line); border-radius: 18px; background: var(--iap-white); box-shadow: var(--iap-shadow-sm); }
.iap-hero-search > div > span { display: grid; width: 45px; flex: 0 0 45px; place-items: center; color: var(--iap-green); }
.iap-hero-search svg { width: 22px; fill: none; stroke: currentColor; stroke-width: 1.8; }
.iap-hero-search input[type="search"] { min-width: 0; flex: 1; border: 0; background: transparent; outline: 0; }
.iap-hero-search button { min-width: 142px; min-height: 49px; border: 0; border-radius: 13px; background: var(--iap-green); color: var(--iap-white); font-weight: 800; }
.iap-hero-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 21px; }
.iap-hero-trust { display: flex; flex-wrap: wrap; gap: 12px 25px; margin-top: 30px; color: var(--iap-ink-soft); font-size: 12px; font-weight: 700; }
.iap-hero-trust span { display: inline-flex; align-items: center; gap: 7px; }
.iap-hero-trust svg { width: 17px; fill: none; stroke: var(--iap-green); stroke-width: 1.8; }
.iap-home-hero__visual { position: relative; min-height: 640px; }
.iap-home-hero__visual::after { position: absolute; right: -12%; bottom: -23%; width: 85%; aspect-ratio: 1; border: 1px solid rgba(14,107,92,.11); border-radius: 50%; content: ""; }
.iap-hero-blob { position: absolute; border-radius: 50%; filter: blur(2px); }
.iap-hero-blob--one { top: 9%; right: 8%; width: 70%; aspect-ratio: 1; background: rgba(207,232,217,.62); }
.iap-hero-blob--two { right: 30%; bottom: 7%; width: 34%; aspect-ratio: 1; background: rgba(247,214,201,.7); }
.iap-hero-product { position: absolute; z-index: 2; transition: transform .4s cubic-bezier(.2,.8,.2,1); }
.iap-hero-product img { width: 100%; filter: drop-shadow(0 22px 24px rgba(20,57,48,.13)); }
.iap-hero-product--one { right: 24%; bottom: 7%; width: 47%; transform: rotate(-3deg); }
.iap-hero-product--two { right: -3%; bottom: 3%; width: 39%; transform: rotate(4deg); }
.iap-hero-product--three { top: 5%; right: 25%; width: 35%; transform: rotate(2deg); }
.iap-home-hero__visual:hover .iap-hero-product--one { transform: translateY(-6px) rotate(-3deg); }
.iap-home-hero__visual:hover .iap-hero-product--two { transform: translateY(-3px) rotate(4deg); }
.iap-home-hero__visual:hover .iap-hero-product--three { transform: translateY(-8px) rotate(2deg); }
.iap-hero-consult-card { position: absolute; z-index: 4; top: 14%; left: 0; display: grid; width: min(310px, 44%); grid-template-columns: 43px 1fr 20px; align-items: center; gap: 11px; padding: 15px; border: 1px solid rgba(255,255,255,.75); border-radius: 20px; background: rgba(255,255,255,.84); box-shadow: var(--iap-shadow-md); backdrop-filter: blur(16px); }
.iap-hero-consult-card > svg { width: 29px; fill: none; stroke: var(--iap-green); stroke-width: 1.7; }
.iap-hero-consult-card > svg:last-child { width: 17px; stroke: var(--iap-ink); }
.iap-hero-consult-card small, .iap-hero-consult-card b { display: block; }
.iap-hero-consult-card small { color: var(--iap-ink-soft); font-size: 10px; }
.iap-hero-consult-card b { font-size: 13px; }
.iap-hero-category-card { position: absolute; z-index: 4; right: 3%; top: 47%; display: grid; min-width: 170px; padding: 16px; border-radius: 20px; background: var(--iap-lilac); box-shadow: var(--iap-shadow-sm); }
.iap-hero-category-card > span { display: grid; width: 36px; height: 36px; place-items: center; margin-bottom: 9px; border-radius: 50%; background: var(--iap-white); color: var(--iap-lilac-strong); }
.iap-hero-category-card svg { width: 18px; fill: none; stroke: currentColor; stroke-width: 1.8; }
.iap-hero-category-card b { font-size: 13px; }
.iap-hero-category-card small { color: var(--iap-ink-soft); font-size: 10px; }

/* Service row */
.iap-service-row { padding: 20px 0 0; }
.iap-service-row__grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 12px; }
.iap-service-row__grid > a { display: grid; min-width: 0; grid-template-columns: 42px 1fr 18px; align-items: center; gap: 12px; padding: 15px; border: 1px solid var(--iap-line); border-radius: 18px; background: var(--iap-white); transition: transform var(--iap-transition), border-color var(--iap-transition), box-shadow var(--iap-transition); }
.iap-service-row__grid > a:hover { transform: translateY(-3px); border-color: var(--iap-line-strong); box-shadow: var(--iap-shadow-sm); }
.iap-service-row__grid > a > svg:first-child { width: 25px; fill: none; stroke: var(--iap-green); stroke-width: 1.7; }
.iap-service-row__grid > a > svg:last-child { width: 16px; fill: none; stroke: var(--iap-ink-soft); stroke-width: 2; }
.iap-service-row b, .iap-service-row small { display: block; }
.iap-service-row b { overflow: hidden; font-size: 13px; text-overflow: ellipsis; white-space: nowrap; }
.iap-service-row small { margin-top: 2px; overflow: hidden; color: var(--iap-ink-soft); font-size: 10px; text-overflow: ellipsis; white-space: nowrap; }

/* Needs */
.iap-need-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 14px; }
.iap-need-card { display: grid; min-height: 118px; grid-template-columns: 52px 1fr 20px; align-items: center; gap: 14px; padding: 20px; border: 1px solid transparent; border-radius: 22px; transition: transform var(--iap-transition), box-shadow var(--iap-transition), border-color var(--iap-transition); }
.iap-need-card:hover { transform: translateY(-4px); border-color: rgba(23,49,44,.08); box-shadow: var(--iap-shadow-sm); }
.iap-need-card.is-mint { background: var(--iap-mint); }
.iap-need-card.is-yellow { background: var(--iap-yellow); }
.iap-need-card.is-peach { background: var(--iap-peach); }
.iap-need-card.is-lilac { background: var(--iap-lilac); }
.iap-need-card.is-sky { background: var(--iap-sky); }
.iap-need-card.is-sage { background: var(--iap-sage); }
.iap-need-icon { display: grid; width: 52px; height: 52px; place-items: center; border-radius: 17px; background: rgba(255,255,255,.7); }
.iap-need-icon svg { width: 24px; fill: none; stroke: var(--iap-green-dark); stroke-width: 1.7; }
.iap-need-card b, .iap-need-card small { display: block; }
.iap-need-card b { font-size: 16px; line-height: 1.2; }
.iap-need-card small { margin-top: 5px; color: var(--iap-ink-soft); font-size: 11px; line-height: 1.35; }
.iap-need-card > svg { width: 18px; fill: none; stroke: var(--iap-ink); stroke-width: 1.8; transition: transform var(--iap-transition); }
.iap-need-card:hover > svg { transform: translateX(4px); }

/* Categories */
.iap-category-section { padding-top: 25px; }
.iap-category-grid { display: grid; grid-template-columns: repeat(12,minmax(0,1fr)); gap: 16px; }
.iap-category-card { position: relative; grid-column: span 4; min-height: 295px; overflow: hidden; padding: 28px; border-radius: 27px; transition: transform var(--iap-transition), box-shadow var(--iap-transition); }
.iap-category-card.is-large { grid-column: span 4; }
.iap-category-card:hover { transform: translateY(-5px); box-shadow: var(--iap-shadow-md); }
.iap-category-card.is-mint { background: var(--iap-mint); }
.iap-category-card.is-yellow { background: var(--iap-yellow); }
.iap-category-card.is-lilac { background: var(--iap-lilac); }
.iap-category-card.is-peach { background: var(--iap-peach); }
.iap-category-card.is-sky { background: var(--iap-sky); }
.iap-category-card.is-sage { background: var(--iap-sage); }
.iap-category-card::after { position: absolute; right: -55px; bottom: -75px; width: 190px; height: 190px; border: 1px solid rgba(23,49,44,.1); border-radius: 50%; content: ""; }
.iap-category-card > div { display: flex; align-items: center; justify-content: space-between; }
.iap-category-icon { display: grid; width: 64px; height: 64px; place-items: center; border-radius: 21px; background: rgba(255,255,255,.72); color: var(--iap-green-dark); }
.iap-category-icon svg { width: 29px; fill: none; stroke: currentColor; stroke-width: 1.6; }
.iap-category-card > div small { font-size: 11px; font-weight: 850; opacity: .48; }
.iap-category-card h3 { max-width: 310px; margin: 34px 0 10px; font-size: clamp(24px,2vw,33px); line-height: 1.03; letter-spacing: -.045em; }
.iap-category-card p { max-width: 330px; margin-bottom: 25px; color: var(--iap-ink-soft); font-size: 13px; }
.iap-category-link { display: inline-flex; align-items: center; gap: 8px; font-size: 12px; font-weight: 850; }
.iap-category-link svg { width: 17px; fill: none; stroke: currentColor; stroke-width: 2; transition: transform var(--iap-transition); }
.iap-category-card:hover .iap-category-link svg { transform: translateX(4px); }

/* Products */
.iap-products-section { position: relative; }
ul.products.iap-product-grid,
.woocommerce ul.products.iap-product-grid,
.woocommerce ul.products { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 18px; margin: 0; padding: 0; list-style: none; }
.woocommerce ul.products::before, .woocommerce ul.products::after { display: none; }
.iap-product-card,
.woocommerce ul.products li.product.iap-product-card,
.woocommerce ul.products li.product { position: relative; width: auto; min-width: 0; margin: 0; overflow: hidden; border: 1px solid var(--iap-line); border-radius: 23px; background: var(--iap-white); transition: transform var(--iap-transition), box-shadow var(--iap-transition), border-color var(--iap-transition); }
.iap-product-card:hover,
.woocommerce ul.products li.product:hover { transform: translateY(-5px); border-color: var(--iap-line-strong); box-shadow: var(--iap-shadow-md); }
.iap-product-card__media { position: relative; overflow: hidden; aspect-ratio: 1 / 1; background: linear-gradient(145deg,#f6f8f5,#f0f4f1); }
.iap-product-card__media::after { position: absolute; right: -30%; bottom: -45%; width: 85%; aspect-ratio: 1; border: 1px solid rgba(14,107,92,.07); border-radius: 50%; content: ""; pointer-events: none; }
.iap-product-image-link { display: block; width: 100%; height: 100%; }
.iap-product-card__media img,
.woocommerce ul.products li.product a img { width: 100%; height: 100%; margin: 0; padding: 8px; object-fit: contain; transition: transform .38s cubic-bezier(.2,.8,.2,1); }
.iap-product-card:hover .iap-product-card__media img { transform: scale(1.035) translateY(-3px); }
.iap-product-badges { position: absolute; z-index: 3; top: 13px; left: 13px; display: flex; flex-wrap: wrap; gap: 5px; }
.iap-product-badge,
.woocommerce span.onsale { position: static; display: inline-flex; min-width: 0; min-height: 0; align-items: center; padding: 6px 9px; border: 0; border-radius: 999px; background: var(--iap-green); color: var(--iap-white); font-size: 9px; font-weight: 850; line-height: 1; letter-spacing: .07em; text-transform: uppercase; }
.iap-product-badge.is-sale, .woocommerce span.onsale { background: var(--iap-sale); }
.iap-product-badge.is-new { background: var(--iap-green); }
.iap-product-badge.is-out { background: #6c7975; }
.iap-wishlist-button { position: absolute; z-index: 4; top: 11px; right: 11px; display: grid; width: 40px; height: 40px; place-items: center; border: 1px solid rgba(203,216,209,.82); border-radius: 50%; background: rgba(255,255,255,.88); color: var(--iap-ink); backdrop-filter: blur(8px); transition: color var(--iap-transition), background var(--iap-transition), transform var(--iap-transition); }
.iap-wishlist-button:hover { transform: scale(1.06); color: var(--iap-sale); }
.iap-wishlist-button[aria-pressed="true"], .iap-wishlist-button.is-active { border-color: var(--iap-peach); background: var(--iap-peach); color: var(--iap-sale); }
.iap-wishlist-button svg { width: 19px; fill: none; stroke: currentColor; stroke-width: 1.8; }
.iap-wishlist-button[aria-pressed="true"] svg, .iap-wishlist-button.is-active svg { fill: currentColor; }
.iap-product-card__body { display: flex; min-height: 218px; flex-direction: column; padding: 18px; }
.iap-product-brand { display: block; margin-bottom: 7px; color: var(--iap-green); font-size: 10px; font-weight: 850; letter-spacing: .09em; text-transform: uppercase; }
.iap-product-card h2,
.woocommerce ul.products li.product .woocommerce-loop-product__title { margin: 0 0 7px; padding: 0; font-size: 15px; font-weight: 750; line-height: 1.34; letter-spacing: -.02em; }
.iap-product-card h2 a { display: -webkit-box; overflow: hidden; -webkit-box-orient: vertical; -webkit-line-clamp: 3; }
.iap-product-form, .iap-product-category { display: block; margin-bottom: 13px; color: var(--iap-ink-soft); font-size: 11px; }
.iap-card-rating { display: flex; align-items: center; gap: 6px; margin-bottom: 10px; }
.iap-card-rating .star-rating { float: none; margin: 0; font-size: .75em; }
.iap-card-rating > span { color: var(--iap-ink-soft); font-size: 10px; }
.iap-product-card__bottom { display: flex; align-items: end; justify-content: space-between; gap: 10px; margin-top: auto; }
.iap-price-wrap { min-width: 0; }
.iap-price, .woocommerce ul.products li.product .price { display: flex; flex-wrap: wrap; align-items: baseline; gap: 6px; margin: 0; color: var(--iap-ink); }
.iap-price strong, .woocommerce ul.products li.product .price ins { color: var(--iap-ink); font-size: 19px; font-weight: 850; text-decoration: none; }
.iap-price del, .woocommerce ul.products li.product .price del { color: #89958f; font-size: 11px; opacity: 1; }
.iap-price-wrap > small { display: block; margin-top: 2px; color: var(--iap-ink-soft); font-size: 9px; }
.iap-card-add .button,
.iap-card-cart,
.woocommerce ul.products li.product .button {
  display: grid; width: 44px; min-width: 44px; height: 44px; min-height: 44px; place-items: center; margin: 0; padding: 0; overflow: hidden; border: 0; border-radius: 14px; background: var(--iap-green); color: transparent; font-size: 0; box-shadow: none;
}
.iap-card-add .button::before,
.woocommerce ul.products li.product .button::before { width: 20px; height: 20px; background: no-repeat center/contain url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='white' stroke-width='1.8' viewBox='0 0 24 24'%3E%3Cpath d='M5 8h14l-1 13H6L5 8Z'/%3E%3Cpath d='M9 9V6a3 3 0 0 1 6 0v3'/%3E%3C/svg%3E"); content: ""; }
.iap-card-add .button:hover,
.woocommerce ul.products li.product .button:hover { background: var(--iap-green-dark); color: transparent; }
.iap-card-add .added_to_cart { position: absolute; right: 16px; bottom: 68px; padding: 6px 9px; border-radius: 8px; background: var(--iap-ink); color: var(--iap-white); font-size: 10px; }

/* Seasonal */
.iap-seasonal { padding: 30px 0 96px; }
.iap-seasonal__grid { display: grid; grid-template-columns: minmax(360px,.85fr) minmax(0,1.15fr); align-items: center; overflow: hidden; border-radius: 34px; background: var(--iap-green-dark); color: var(--iap-white); }
.iap-seasonal__grid > div:last-child { padding: clamp(40px,6vw,90px); }
.iap-seasonal__visual { position: relative; min-height: 510px; overflow: hidden; background: radial-gradient(circle at 50% 60%,rgba(210,237,221,.8),rgba(210,237,221,.08) 55%,transparent 56%); }
.iap-seasonal__visual::before { position: absolute; right: 10%; bottom: -15%; width: 80%; aspect-ratio: 1; border: 1px solid rgba(255,255,255,.18); border-radius: 50%; content: ""; }
.iap-seasonal__visual img { position: absolute; right: 6%; bottom: -3%; width: 75%; filter: drop-shadow(0 30px 30px rgba(0,0,0,.2)); }
.iap-seasonal__visual > span { position: absolute; z-index: 2; top: 35px; left: 35px; display: inline-flex; align-items: center; gap: 8px; padding: 9px 13px; border-radius: 999px; background: var(--iap-white); color: var(--iap-green-dark); font-size: 11px; font-weight: 850; }
.iap-seasonal__visual span svg { width: 16px; fill: none; stroke: currentColor; stroke-width: 1.8; }
.iap-seasonal .iap-eyebrow { color: #aee0c5; }
.iap-seasonal h2 { max-width: 760px; margin-bottom: 20px; }
.iap-seasonal p { max-width: 700px; margin-bottom: 24px; color: rgba(255,255,255,.75); }
.iap-seasonal__tags { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 28px; }
.iap-seasonal__tags a { padding: 8px 12px; border: 1px solid rgba(255,255,255,.22); border-radius: 999px; font-size: 11px; font-weight: 750; }
.iap-seasonal__tags a:hover { background: rgba(255,255,255,.1); }
.iap-seasonal .iap-btn--dark { border-color: var(--iap-white); background: var(--iap-white); color: var(--iap-green-dark); }

/* Editorial */
.iap-editorial-pair { padding: 96px 0; }
.iap-editorial-pair__grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 20px; }
.iap-editorial-card { overflow: hidden; border-radius: 32px; }
.iap-editorial-card.is-dermo { background: var(--iap-mint); }
.iap-editorial-card.is-baby { background: var(--iap-peach); }
.iap-editorial-card__image { overflow: hidden; aspect-ratio: 1.55 / 1; }
.iap-editorial-card__image img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s cubic-bezier(.2,.8,.2,1); }
.iap-editorial-card:hover img { transform: scale(1.025); }
.iap-editorial-card > div:last-child { padding: clamp(28px,4vw,52px); }
.iap-editorial-card h2 { margin-bottom: 14px; font-size: clamp(30px,3.1vw,50px); line-height: 1.03; letter-spacing: -.05em; }
.iap-editorial-card p { color: var(--iap-ink-soft); }
.iap-editorial-links { display: flex; flex-wrap: wrap; gap: 8px; margin: 22px 0; }
.iap-editorial-links a { padding: 7px 11px; border: 1px solid rgba(23,49,44,.11); border-radius: 999px; background: rgba(255,255,255,.55); font-size: 11px; font-weight: 750; }

/* Loyalty */
.iap-loyalty-banner { padding: 0 0 96px; }
.iap-loyalty-banner__grid { display: grid; grid-template-columns: minmax(330px,.72fr) minmax(0,1.28fr); align-items: center; overflow: hidden; border-radius: 34px; background: #7a5ba1; color: var(--iap-white); }
.iap-loyalty-banner__grid > div:last-child { padding: clamp(42px,6vw,90px); }
.iap-loyalty-visual { position: relative; display: grid; min-height: 430px; place-items: center; background: radial-gradient(circle at 50% 50%,rgba(255,255,255,.16),transparent 62%); }
.iap-loyalty-ring { display: grid; width: 230px; height: 230px; place-items: center; border: 1px solid rgba(255,255,255,.28); border-radius: 50%; font-size: 110px; font-weight: 300; }
.iap-loyalty-visual > div { position: absolute; right: 12%; bottom: 15%; padding: 15px 19px; border-radius: 18px; background: var(--iap-white); color: #60437f; box-shadow: var(--iap-shadow-md); }
.iap-loyalty-visual b, .iap-loyalty-visual small { display: block; }
.iap-loyalty-visual b { font-size: 21px; }
.iap-loyalty-banner .iap-eyebrow { color: #eee5fa; }
.iap-loyalty-banner h2 { margin-bottom: 20px; }
.iap-loyalty-banner p { max-width: 780px; margin-bottom: 28px; color: rgba(255,255,255,.78); }

/* Consultation */
.iap-consultation-section { padding: 96px 0; background: var(--iap-green-dark); color: var(--iap-white); }
.iap-consultation-section.is-page { margin-top: 0; }
.iap-consultation-section__grid { display: grid; grid-template-columns: minmax(320px,.8fr) minmax(0,1.2fr); gap: clamp(45px,7vw,110px); align-items: center; }
.iap-consultation-copy .iap-eyebrow { color: #aee0c5; }
.iap-consultation-copy h2 { margin-bottom: 20px; }
.iap-consultation-copy > p { color: rgba(255,255,255,.75); font-size: 17px; }
.iap-consultation-copy ul { display: grid; gap: 10px; margin: 28px 0; padding: 0; list-style: none; }
.iap-consultation-copy li { display: flex; align-items: center; gap: 10px; color: rgba(255,255,255,.86); }
.iap-consultation-copy li svg { width: 19px; flex: 0 0 19px; fill: none; stroke: #b8e6cf; stroke-width: 2; }
.iap-consultation-copy > a { display: inline-flex; align-items: center; gap: 8px; font-weight: 850; }
.iap-consultation-copy > a svg { width: 20px; fill: none; stroke: currentColor; stroke-width: 1.8; }
.iap-consultation-form-wrap { padding: clamp(24px,4vw,42px); border-radius: 28px; background: var(--iap-white); color: var(--iap-ink); box-shadow: var(--iap-shadow-lg); }
.iap-form { position: relative; }
.iap-form-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 16px; }
.iap-field { min-width: 0; }
.iap-field--full { grid-column: 1 / -1; }
.iap-field label:not(.iap-check) { display: block; margin-bottom: 7px; font-size: 12px; font-weight: 800; }
.iap-field input[type="text"], .iap-field input[type="email"], .iap-field input[type="tel"], .iap-field textarea, .iap-field select {
  width: 100%; min-height: 50px; padding: 12px 14px; border: 1px solid var(--iap-line); border-radius: 13px; background: #f7f9f7; color: var(--iap-ink); outline: none; transition: border-color var(--iap-transition), box-shadow var(--iap-transition), background var(--iap-transition);
}
.iap-field textarea { min-height: 125px; resize: vertical; }
.iap-field input:focus, .iap-field textarea:focus, .iap-field select:focus { border-color: var(--iap-green); background: var(--iap-white); box-shadow: 0 0 0 4px rgba(14,107,92,.1); }
.iap-field > small { display: block; margin-top: 5px; color: var(--iap-ink-soft); font-size: 10px; }
.iap-field-error { min-height: 0; color: var(--iap-error) !important; font-weight: 650; }
.iap-check { display: flex; align-items: flex-start; gap: 10px; font-size: 11px; line-height: 1.45; }
.iap-check input { width: 18px; height: 18px; flex: 0 0 18px; margin-top: 1px; accent-color: var(--iap-green); }
.iap-check a { color: var(--iap-green); text-decoration: underline; }
.iap-form > .iap-btn { margin-top: 18px; }
.iap-honeypot { position: absolute; left: -9999px; }
.iap-form-status { margin-bottom: 16px; padding: 12px 14px; border-radius: 12px; font-size: 13px; font-weight: 700; }
.iap-form-status.is-success { background: #e8f7ef; color: var(--iap-success); }
.iap-form-status.is-error { background: #fff0ee; color: var(--iap-error); }
.iap-form-status.is-info { background: #eef5ff; color: #254b72; }

/* Brands */
.iap-brand-grid { display: grid; grid-template-columns: repeat(6,minmax(0,1fr)); gap: 12px; }
.iap-brand-grid a { display: flex; min-height: 96px; align-items: center; gap: 12px; padding: 15px; border: 1px solid var(--iap-line); border-radius: 18px; background: var(--iap-white); transition: transform var(--iap-transition), box-shadow var(--iap-transition), border-color var(--iap-transition); }
.iap-brand-grid a:hover { transform: translateY(-3px); border-color: var(--iap-line-strong); box-shadow: var(--iap-shadow-sm); }
.iap-brand-grid span { display: grid; width: 44px; height: 44px; flex: 0 0 44px; place-items: center; border-radius: 14px; background: var(--iap-mint); color: var(--iap-green-dark); font-size: 19px; font-weight: 900; }
.iap-brand-grid b { min-width: 0; font-size: 13px; }

/* Articles */
.iap-articles { padding-top: 30px; }
.iap-article-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 20px; }
.iap-article-grid article { overflow: hidden; border: 1px solid var(--iap-line); border-radius: 24px; background: var(--iap-white); transition: transform var(--iap-transition), box-shadow var(--iap-transition); }
.iap-article-grid article:hover { transform: translateY(-4px); box-shadow: var(--iap-shadow-md); }
.iap-article-image { display: block; overflow: hidden; aspect-ratio: 1.61 / 1; }
.iap-article-image img { width: 100%; height: 100%; object-fit: cover; transition: transform .42s ease; }
.iap-article-grid article:hover img { transform: scale(1.025); }
.iap-article-grid article > div { padding: 22px; }
.iap-article-grid article > div > span { color: var(--iap-green); font-size: 10px; font-weight: 850; letter-spacing: .1em; text-transform: uppercase; }
.iap-article-grid h3 { margin: 11px 0 10px; font-size: 21px; line-height: 1.22; letter-spacing: -.035em; }
.iap-article-grid p { color: var(--iap-ink-soft); font-size: 13px; }
.iap-article-grid article > div > a { display: inline-flex; align-items: center; gap: 7px; color: var(--iap-green-dark); font-size: 12px; font-weight: 850; }
.iap-article-grid svg { width: 16px; fill: none; stroke: currentColor; stroke-width: 2; }

/* Regulatory */
.iap-regulatory-section { padding: 76px 0; background: var(--iap-ink); color: var(--iap-white); }
.iap-regulatory-section__grid { display: grid; grid-template-columns: 80px minmax(0,1fr) auto; align-items: center; gap: 34px; }
.iap-regulatory-icon { display: grid; width: 80px; height: 80px; place-items: center; border: 1px solid rgba(255,255,255,.18); border-radius: 25px; background: rgba(255,255,255,.06); color: #aee0c5; }
.iap-regulatory-icon svg { width: 38px; fill: none; stroke: currentColor; stroke-width: 1.5; }
.iap-regulatory-section .iap-eyebrow { color: #aee0c5; }
.iap-regulatory-section h2 { max-width: 900px; margin-bottom: 11px; font-size: clamp(30px,3.5vw,52px); line-height: 1.02; letter-spacing: -.05em; }
.iap-regulatory-section p { max-width: 920px; margin: 0; color: rgba(255,255,255,.7); }

/* Page hero */
.iap-page-hero { padding: 32px 0 0; }
.iap-page-hero > .iap-container { overflow: hidden; padding: clamp(35px,5.5vw,78px); border-radius: 34px; }
.iap-page-hero.is-mint > .iap-container { background: linear-gradient(135deg,var(--iap-mint),#f4f7ef); }
.iap-page-hero.is-sage > .iap-container { background: linear-gradient(135deg,var(--iap-sage),#edf6f2); }
.iap-page-hero.is-lilac > .iap-container { background: linear-gradient(135deg,var(--iap-lilac),#f7eef3); }
.iap-page-hero.is-sky > .iap-container { background: linear-gradient(135deg,var(--iap-sky),#edf5f2); }
.iap-page-hero.is-peach > .iap-container { background: linear-gradient(135deg,var(--iap-peach),#f8eee4); }
.iap-page-hero.is-yellow > .iap-container { background: linear-gradient(135deg,var(--iap-yellow),#f5f0e5); }
.iap-breadcrumbs { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 34px; color: var(--iap-ink-soft); font-size: 11px; }
.iap-breadcrumbs a:hover { color: var(--iap-green); }
.iap-page-hero__grid { display: grid; grid-template-columns: minmax(0,1fr) 240px; align-items: end; gap: 40px; }
.iap-page-hero h1 { max-width: 1050px; margin-bottom: 18px; }
.iap-page-hero__grid > div:first-child > p { max-width: 820px; margin: 0; color: var(--iap-ink-soft); font-size: 18px; }
.iap-page-hero__symbol { position: relative; display: grid; width: 220px; height: 220px; place-items: center; justify-self: end; border: 1px solid rgba(23,49,44,.1); border-radius: 50%; background: rgba(255,255,255,.4); color: var(--iap-green); }
.iap-page-hero__symbol::after { position: absolute; width: 72%; height: 72%; border: 1px solid rgba(23,49,44,.08); border-radius: 50%; content: ""; }
.iap-page-hero__symbol svg { width: 73px; fill: none; stroke: currentColor; stroke-width: 1.3; }
.iap-page-hero__symbol span { position: absolute; bottom: 24px; font-size: 9px; font-weight: 850; letter-spacing: .1em; text-transform: uppercase; }

/* Generic rich content */
.iap-generic-page-grid { display: grid; grid-template-columns: minmax(0,1fr) 350px; gap: 60px; align-items: start; }
.iap-rich-content { color: #304a44; font-size: 17px; }
.iap-rich-content > * { max-width: 900px; }
.iap-rich-content h2 { margin: 50px 0 15px; color: var(--iap-ink); font-size: clamp(28px,3vw,42px); line-height: 1.08; letter-spacing: -.04em; }
.iap-rich-content h2:first-child { margin-top: 0; }
.iap-rich-content h3 { margin: 33px 0 12px; color: var(--iap-ink); font-size: 24px; letter-spacing: -.025em; }
.iap-rich-content ul, .iap-rich-content ol { padding-left: 24px; }
.iap-rich-content a:not(.iap-btn) { color: var(--iap-green); text-decoration: underline; text-underline-offset: 3px; }
.iap-rich-content table { width: 100%; border-collapse: collapse; }
.iap-rich-content th, .iap-rich-content td { padding: 12px; border: 1px solid var(--iap-line); text-align: left; }
.iap-page-aside { position: sticky; top: 175px; padding: 28px; border-radius: 25px; background: var(--iap-mint); }
.iap-page-aside > span { display: grid; width: 55px; height: 55px; place-items: center; margin-bottom: 20px; border-radius: 18px; background: var(--iap-white); color: var(--iap-green); }
.iap-page-aside svg { width: 26px; fill: none; stroke: currentColor; stroke-width: 1.7; }
.iap-page-aside h3 { font-size: 24px; line-height: 1.1; letter-spacing: -.035em; }
.iap-page-aside p { color: var(--iap-ink-soft); font-size: 13px; }
.iap-page-aside a { display: inline-flex; align-items: center; gap: 8px; color: var(--iap-green-dark); font-size: 12px; font-weight: 850; }
.iap-page-aside a svg { width: 17px; }

/* About */
.iap-story-grid { display: grid; grid-template-columns: minmax(0,1.12fr) minmax(340px,.88fr); gap: clamp(50px,8vw,120px); align-items: center; }
.iap-story-copy h2 { margin-bottom: 23px; }
.iap-story-copy p { max-width: 760px; color: var(--iap-ink-soft); font-size: 17px; }
.iap-story-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 22px; margin-top: 30px; }
.iap-fact-panel { display: grid; overflow: hidden; border: 1px solid var(--iap-line); border-radius: 28px; background: var(--iap-white); box-shadow: var(--iap-shadow-sm); }
.iap-fact-panel > div { padding: 23px 27px; border-bottom: 1px solid var(--iap-line); }
.iap-fact-panel > div:last-child { border-bottom: 0; }
.iap-fact-panel span, .iap-fact-panel strong { display: block; }
.iap-fact-panel span { margin-bottom: 5px; color: var(--iap-ink-soft); font-size: 10px; font-weight: 800; letter-spacing: .09em; text-transform: uppercase; }
.iap-fact-panel strong { font-size: 17px; }
.iap-value-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 16px; }
.iap-value-grid article { padding: 27px; border: 1px solid var(--iap-line); border-radius: 23px; background: var(--iap-white); }
.iap-value-grid article > span { display: grid; width: 54px; height: 54px; place-items: center; margin-bottom: 25px; border-radius: 17px; background: var(--iap-mint); color: var(--iap-green); }
.iap-value-grid svg { width: 25px; fill: none; stroke: currentColor; stroke-width: 1.7; }
.iap-value-grid h3 { margin-bottom: 10px; font-size: 20px; line-height: 1.15; letter-spacing: -.03em; }
.iap-value-grid p { margin: 0; color: var(--iap-ink-soft); font-size: 13px; }
.iap-about-locations { display: grid; grid-template-columns: 1.15fr .85fr .85fr; gap: 18px; align-items: stretch; }
.iap-about-locations > div { padding-right: 40px; }
.iap-about-locations > div h2 { font-size: clamp(34px,4vw,58px); line-height: 1.02; letter-spacing: -.05em; }
.iap-about-locations > div p { color: var(--iap-ink-soft); }
.iap-about-locations article { position: relative; overflow: hidden; padding: 29px; border-radius: 25px; background: var(--iap-mint); }
.iap-about-locations article:nth-child(3) { background: var(--iap-peach); }
.iap-about-locations article > svg { width: 35px; margin-bottom: 50px; fill: none; stroke: var(--iap-green); stroke-width: 1.6; }
.iap-about-locations article > span { display: block; color: var(--iap-green); font-size: 11px; font-weight: 850; letter-spacing: .1em; text-transform: uppercase; }
.iap-about-locations h3 { margin: 10px 0 25px; font-size: 23px; line-height: 1.2; }
.iap-about-locations article a { display: inline-flex; align-items: center; gap: 8px; font-size: 12px; font-weight: 850; }
.iap-about-locations article a svg { width: 16px; fill: none; stroke: currentColor; stroke-width: 2; }
.iap-cta-strip { padding: 75px 0; background: var(--iap-green-dark); color: var(--iap-white); }
.iap-cta-strip > .iap-container { display: flex; align-items: center; justify-content: space-between; gap: 38px; }
.iap-cta-strip .iap-eyebrow { color: #afe0c7; }
.iap-cta-strip h2 { max-width: 900px; margin: 0; font-size: clamp(32px,4vw,58px); line-height: 1.02; letter-spacing: -.05em; }
.iap-cta-actions { display: flex; gap: 10px; }

/* Consultation page */
.iap-consult-intro { display: grid; grid-template-columns: .72fr 1.28fr; gap: clamp(50px,8vw,120px); align-items: start; }
.iap-consult-intro > div:first-child h2 { font-size: clamp(34px,4vw,57px); line-height: 1.02; letter-spacing: -.05em; }
.iap-consult-intro > div:first-child p { color: var(--iap-ink-soft); }
.iap-do-dont { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 16px; }
.iap-do-dont article { padding: 28px; border-radius: 25px; }
.iap-do-dont .is-do { background: var(--iap-mint); }
.iap-do-dont .is-dont { background: #f9e9e5; }
.iap-do-dont article > span { display: grid; width: 50px; height: 50px; place-items: center; margin-bottom: 23px; border-radius: 16px; background: rgba(255,255,255,.72); }
.iap-do-dont svg { width: 24px; fill: none; stroke: currentColor; stroke-width: 2; }
.iap-do-dont .is-do span { color: var(--iap-green); }
.iap-do-dont .is-dont span { color: var(--iap-sale); }
.iap-do-dont h3 { font-size: 22px; letter-spacing: -.03em; }
.iap-do-dont ul { display: grid; gap: 8px; margin-bottom: 0; padding-left: 18px; color: var(--iap-ink-soft); font-size: 13px; }
.iap-process-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 16px; }
.iap-process-grid > div { min-height: 245px; padding: 27px; border: 1px solid var(--iap-line); border-radius: 23px; background: var(--iap-white); }
.iap-step { display: inline-flex; margin-bottom: 45px; color: var(--iap-green); font-size: 11px; font-weight: 900; letter-spacing: .11em; }
.iap-process-grid h3 { margin-bottom: 9px; font-size: 21px; line-height: 1.12; letter-spacing: -.03em; }
.iap-process-grid p { margin: 0; color: var(--iap-ink-soft); font-size: 13px; }
.iap-contact-mini { display: grid; gap: 10px; margin-top: 28px; }
.iap-contact-mini a { display: flex; align-items: center; gap: 12px; padding: 13px 15px; border: 1px solid rgba(255,255,255,.16); border-radius: 15px; }
.iap-contact-mini a > svg { width: 23px; flex: 0 0 23px; fill: none; stroke: #aee0c5; stroke-width: 1.7; }
.iap-contact-mini small, .iap-contact-mini b { display: block; }
.iap-contact-mini small { color: rgba(255,255,255,.6); font-size: 9px; }
.iap-medical-disclaimer { display: grid; grid-template-columns: 66px 1fr; align-items: start; gap: 24px; padding: 35px; border-radius: 25px; background: var(--iap-yellow); }
.iap-medical-disclaimer > span { display: grid; width: 66px; height: 66px; place-items: center; border-radius: 20px; background: var(--iap-white); color: var(--iap-yellow-strong); }
.iap-medical-disclaimer svg { width: 31px; fill: none; stroke: currentColor; stroke-width: 1.7; }
.iap-medical-disclaimer h2 { margin-bottom: 8px; font-size: 28px; letter-spacing: -.04em; }
.iap-medical-disclaimer p { margin: 0; color: var(--iap-ink-soft); }

/* Delivery */
.iap-delivery-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 18px; }
.iap-delivery-grid article { padding: 30px; border: 1px solid var(--iap-line); border-radius: 26px; background: var(--iap-white); }
.iap-delivery-grid article > span { display: grid; width: 62px; height: 62px; place-items: center; margin-bottom: 55px; border-radius: 19px; background: var(--iap-mint); color: var(--iap-green); }
.iap-delivery-grid article:nth-child(2) > span { background: var(--iap-sky); color: var(--iap-sky-strong); }
.iap-delivery-grid article:nth-child(3) > span { background: var(--iap-peach); color: var(--iap-peach-strong); }
.iap-delivery-grid svg { width: 29px; fill: none; stroke: currentColor; stroke-width: 1.7; }
.iap-delivery-grid article > small { color: var(--iap-green); font-size: 10px; font-weight: 850; letter-spacing: .1em; text-transform: uppercase; }
.iap-delivery-grid h3 { margin: 10px 0; font-size: 24px; line-height: 1.1; letter-spacing: -.035em; }
.iap-delivery-grid p { margin: 0; color: var(--iap-ink-soft); font-size: 13px; }
.iap-order-flow { display: grid; grid-template-columns: .62fr 1.38fr; gap: clamp(40px,7vw,100px); }
.iap-order-flow > div h2 { font-size: clamp(34px,4vw,58px); line-height: 1.02; letter-spacing: -.05em; }
.iap-order-flow ol { display: grid; gap: 0; margin: 0; padding: 0; list-style: none; }
.iap-order-flow li { display: grid; grid-template-columns: 54px 1fr; gap: 18px; padding: 22px 0; border-bottom: 1px solid var(--iap-line); }
.iap-order-flow li > span { display: grid; width: 50px; height: 50px; place-items: center; border-radius: 50%; background: var(--iap-white); color: var(--iap-green); font-weight: 900; }
.iap-order-flow h3 { margin: 2px 0 5px; font-size: 19px; }
.iap-order-flow p { margin: 0; color: var(--iap-ink-soft); font-size: 13px; }
.iap-payment-grid { display: grid; grid-template-columns: .7fr 1.3fr; gap: 75px; align-items: start; }
.iap-payment-grid > div:first-child h2 { font-size: clamp(34px,4vw,58px); line-height: 1.02; letter-spacing: -.05em; }
.iap-payment-grid > div:first-child p { color: var(--iap-ink-soft); }
.iap-payment-cards { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 12px; }
.iap-payment-cards article { padding: 22px; border-radius: 20px; background: var(--iap-mint); }
.iap-payment-cards article:nth-child(2) { background: var(--iap-sky); }
.iap-payment-cards article:nth-child(3) { background: var(--iap-peach); }
.iap-payment-cards span { font-size: 10px; font-weight: 900; letter-spacing: .12em; }
.iap-payment-cards h3 { margin: 40px 0 8px; font-size: 18px; }
.iap-payment-cards p { margin: 0; color: var(--iap-ink-soft); font-size: 11px; }
.iap-faq-split { display: grid; grid-template-columns: .63fr 1.37fr; gap: 80px; }
.iap-faq-split > div:first-child h2 { font-size: clamp(34px,4vw,58px); line-height: 1.02; letter-spacing: -.05em; }
.iap-accordion-list { display: grid; gap: 10px; }
.iap-accordion-list details { border: 1px solid var(--iap-line); border-radius: 17px; background: var(--iap-white); }
.iap-accordion-list summary { display: flex; min-height: 58px; align-items: center; justify-content: space-between; gap: 14px; padding: 14px 18px; font-weight: 780; list-style: none; cursor: pointer; }
.iap-accordion-list summary::-webkit-details-marker { display: none; }
.iap-accordion-list summary svg { width: 18px; flex: 0 0 18px; fill: none; stroke: currentColor; stroke-width: 2; transition: transform var(--iap-transition); }
.iap-accordion-list details[open] summary svg { transform: rotate(180deg); }
.iap-accordion-list details p { margin: 0; padding: 0 18px 18px; color: var(--iap-ink-soft); font-size: 13px; }

/* Loyalty page */
.iap-loyalty-intro { display: grid; grid-template-columns: minmax(380px,.9fr) minmax(0,1.1fr); gap: 85px; align-items: center; }
.iap-loyalty-card-demo { position: relative; min-height: 380px; overflow: hidden; padding: 32px; border-radius: 32px; background: linear-gradient(145deg,#6d4f92,#8e6aae); color: var(--iap-white); box-shadow: 0 34px 70px rgba(91,63,126,.22); }
.iap-loyalty-card-demo::after { position: absolute; right: -90px; bottom: -100px; width: 330px; height: 330px; border: 1px solid rgba(255,255,255,.25); border-radius: 50%; content: ""; }
.iap-loyalty-card-demo__top { display: flex; align-items: center; justify-content: space-between; }
.iap-loyalty-card-demo__top img { width: 180px; filter: brightness(0) invert(1); }
.iap-loyalty-card-demo__top span { padding: 6px 10px; border: 1px solid rgba(255,255,255,.25); border-radius: 999px; font-size: 9px; font-weight: 900; letter-spacing: .13em; }
.iap-loyalty-card-demo > div:nth-child(2) { margin-top: 80px; }
.iap-loyalty-card-demo small, .iap-loyalty-card-demo strong, .iap-loyalty-card-demo > div:nth-child(2) span { display: block; }
.iap-loyalty-card-demo strong { margin: 8px 0 2px; font-size: 64px; line-height: 1; letter-spacing: -.06em; }
.iap-loyalty-card-demo > p { position: absolute; right: 32px; bottom: 25px; left: 32px; margin: 0; color: rgba(255,255,255,.65); font-size: 10px; }
.iap-loyalty-intro > div:last-child h2 { font-size: clamp(35px,4vw,60px); line-height: 1.02; letter-spacing: -.05em; }
.iap-loyalty-intro > div:last-child p { color: var(--iap-ink-soft); font-size: 17px; }
.iap-loyalty-rules { display: grid; grid-template-columns: .7fr 1.3fr; gap: 75px; }
.iap-loyalty-rules > div:first-child h2 { font-size: clamp(34px,4vw,58px); line-height: 1.02; letter-spacing: -.05em; }
.iap-loyalty-rules > div:last-child { display: grid; gap: 12px; }
.iap-loyalty-rules article { display: grid; grid-template-columns: 50px 1fr; gap: 18px; padding: 23px; border: 1px solid var(--iap-line); border-radius: 20px; }
.iap-loyalty-rules article > svg { width: 28px; fill: none; stroke: var(--iap-green); stroke-width: 1.8; }
.iap-loyalty-rules h3 { margin-bottom: 5px; font-size: 19px; }
.iap-loyalty-rules p { margin: 0; color: var(--iap-ink-soft); font-size: 13px; }

/* Brands page */
.iap-letter-nav { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 30px; }
.iap-letter-nav a { display: grid; width: 38px; height: 38px; place-items: center; border: 1px solid var(--iap-line); border-radius: 11px; background: var(--iap-white); font-size: 12px; font-weight: 850; }
.iap-letter-nav a:hover { border-color: var(--iap-green); background: var(--iap-mint); color: var(--iap-green-dark); }
.iap-brand-directory { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 12px; }
.iap-brand-directory > a { display: grid; min-width: 0; grid-template-columns: 48px 1fr 18px; align-items: center; gap: 13px; padding: 17px; border: 1px solid var(--iap-line); border-radius: 18px; background: var(--iap-white); }
.iap-brand-directory > a:hover { border-color: var(--iap-line-strong); box-shadow: var(--iap-shadow-sm); }
.iap-brand-directory > a > span { display: grid; width: 48px; height: 48px; place-items: center; border-radius: 15px; background: var(--iap-mint); color: var(--iap-green); font-weight: 900; }
.iap-brand-directory b, .iap-brand-directory small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.iap-brand-directory small { color: var(--iap-ink-soft); font-size: 10px; }
.iap-brand-directory svg { width: 17px; fill: none; stroke: currentColor; stroke-width: 2; }
.iap-featured-brands { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 15px; }
.iap-featured-brands a { min-height: 240px; padding: 28px; border-radius: 24px; background: var(--iap-white); }
.iap-featured-brands span { display: grid; width: 55px; height: 55px; place-items: center; border-radius: 18px; background: var(--iap-mint); color: var(--iap-green); font-size: 22px; font-weight: 900; }
.iap-featured-brands h3 { margin: 55px 0 8px; font-size: 24px; letter-spacing: -.04em; }
.iap-featured-brands p { margin: 0; color: var(--iap-ink-soft); font-size: 13px; }

/* Promotions */
.iap-promo-hero { padding: 32px 0 0; }
.iap-promo-hero__grid { display: grid; min-height: 550px; grid-template-columns: .95fr 1.05fr; overflow: hidden; border-radius: 34px; background: var(--iap-peach-strong); color: var(--iap-white); }
.iap-promo-hero__grid > div:first-child { display: flex; flex-direction: column; justify-content: center; padding: clamp(40px,6vw,85px); }
.iap-promo-hero .iap-breadcrumbs { color: rgba(255,255,255,.75); }
.iap-promo-hero .iap-eyebrow { color: #fff2ee; }
.iap-promo-hero h1 { max-width: 700px; margin-bottom: 20px; font-size: clamp(50px,6vw,86px); line-height: .95; letter-spacing: -.065em; }
.iap-promo-hero p { max-width: 640px; color: rgba(255,255,255,.8); font-size: 18px; }
.iap-promo-hero .iap-btn { align-self: flex-start; margin-top: 15px; }
.iap-promo-visual { position: relative; overflow: hidden; background: radial-gradient(circle at 50% 45%,rgba(255,255,255,.3),transparent 55%); }
.iap-promo-visual > span { position: absolute; z-index: 4; top: 10%; right: 10%; display: grid; width: 120px; height: 120px; place-items: center; border-radius: 50%; background: var(--iap-yellow); color: var(--iap-ink); font-size: 30px; font-weight: 900; transform: rotate(8deg); box-shadow: var(--iap-shadow-md); }
.iap-promo-visual img { position: absolute; bottom: -7%; width: 55%; filter: drop-shadow(0 30px 30px rgba(74,29,22,.18)); }
.iap-promo-visual img:nth-of-type(1) { left: 4%; transform: rotate(-5deg); }
.iap-promo-visual img:nth-of-type(2) { right: -2%; transform: rotate(6deg); }
.iap-campaign-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 16px; }
.iap-campaign-grid > a { display: grid; min-height: 240px; grid-template-columns: 72px 1fr; gap: 22px; padding: 28px; border-radius: 25px; }
.iap-campaign-grid .is-mint { background: var(--iap-mint); }
.iap-campaign-grid .is-peach { background: var(--iap-peach); }
.iap-campaign-grid .is-lilac { background: var(--iap-lilac); }
.iap-campaign-grid > a > span { display: grid; width: 68px; height: 68px; place-items: center; border-radius: 22px; background: rgba(255,255,255,.65); }
.iap-campaign-grid > a > span svg { width: 31px; fill: none; stroke: var(--iap-green); stroke-width: 1.6; }
.iap-campaign-grid small { color: var(--iap-green); font-size: 10px; font-weight: 850; text-transform: uppercase; }
.iap-campaign-grid h2 { margin: 12px 0 8px; font-size: 28px; line-height: 1.05; letter-spacing: -.045em; }
.iap-campaign-grid p { color: var(--iap-ink-soft); font-size: 13px; }
.iap-campaign-grid b { display: inline-flex; align-items: center; gap: 8px; font-size: 12px; }
.iap-campaign-grid b svg { width: 16px; fill: none; stroke: currentColor; stroke-width: 2; }
.iap-promo-rules { display: grid; grid-template-columns: 68px 1fr; gap: 24px; padding: 35px; border-radius: 25px; background: var(--iap-yellow); }
.iap-promo-rules > span { display: grid; width: 68px; height: 68px; place-items: center; border-radius: 20px; background: var(--iap-white); color: var(--iap-yellow-strong); }
.iap-promo-rules svg { width: 32px; fill: none; stroke: currentColor; stroke-width: 1.7; }
.iap-promo-rules h2 { margin-bottom: 7px; font-size: 28px; letter-spacing: -.04em; }
.iap-promo-rules p { margin: 0; color: var(--iap-ink-soft); }

/* Contact */
.iap-contact-overview { display: grid; grid-template-columns: 1.2fr .8fr; gap: 20px; }
.iap-contact-cards { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 12px; }
.iap-contact-cards a { min-width: 0; padding: 23px; border: 1px solid var(--iap-line); border-radius: 22px; background: var(--iap-white); }
.iap-contact-cards a > span { display: grid; width: 52px; height: 52px; place-items: center; margin-bottom: 45px; border-radius: 17px; background: var(--iap-mint); color: var(--iap-green); }
.iap-contact-cards a:nth-child(2) > span { background: var(--iap-sky); color: var(--iap-sky-strong); }
.iap-contact-cards a:nth-child(3) > span { background: var(--iap-lilac); color: var(--iap-lilac-strong); }
.iap-contact-cards svg { width: 25px; fill: none; stroke: currentColor; stroke-width: 1.7; }
.iap-contact-cards small, .iap-contact-cards strong, .iap-contact-cards em { display: block; }
.iap-contact-cards small { color: var(--iap-green); font-size: 9px; font-weight: 850; letter-spacing: .1em; text-transform: uppercase; }
.iap-contact-cards strong { margin: 8px 0 4px; overflow-wrap: anywhere; font-size: 15px; line-height: 1.25; }
.iap-contact-cards em { color: var(--iap-ink-soft); font-size: 10px; font-style: normal; }
.iap-company-card { padding: 34px; border-radius: 25px; background: var(--iap-green-dark); color: var(--iap-white); }
.iap-company-card .iap-eyebrow { color: #aee0c5; }
.iap-company-card h2 { margin-bottom: 30px; font-size: 33px; letter-spacing: -.04em; }
.iap-company-card dl { margin: 0; }
.iap-company-card dl > div { padding: 13px 0; border-bottom: 1px solid rgba(255,255,255,.14); }
.iap-company-card dt { margin-bottom: 4px; color: rgba(255,255,255,.55); font-size: 9px; font-weight: 850; text-transform: uppercase; }
.iap-company-card dd { margin: 0; font-weight: 700; }
.iap-location-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 18px; }
.iap-location-grid article { display: grid; grid-template-columns: minmax(220px,.75fr) minmax(0,1.25fr); overflow: hidden; border: 1px solid var(--iap-line); border-radius: 25px; background: var(--iap-white); }
.iap-location-map { position: relative; display: grid; min-height: 320px; place-items: center; overflow: hidden; background: var(--iap-mint); color: var(--iap-green); }
.iap-location-map.is-peach { background: var(--iap-peach); color: var(--iap-peach-strong); }
.iap-location-map::before, .iap-location-map::after { position: absolute; width: 230px; height: 230px; border: 1px solid currentColor; border-radius: 50%; opacity: .18; content: ""; }
.iap-location-map::after { width: 140px; height: 140px; }
.iap-location-map > span { position: absolute; bottom: 20px; font-size: 10px; font-weight: 900; letter-spacing: .17em; }
.iap-location-map svg { width: 55px; fill: none; stroke: currentColor; stroke-width: 1.4; }
.iap-location-grid article > div:last-child { padding: 32px; }
.iap-location-grid article small { color: var(--iap-green); font-size: 9px; font-weight: 850; letter-spacing: .1em; text-transform: uppercase; }
.iap-location-grid h3 { margin: 8px 0 15px; font-size: 31px; letter-spacing: -.04em; }
.iap-location-grid p { color: var(--iap-ink-soft); font-size: 13px; }
.iap-location-grid article > div:last-child > a { display: inline-flex; align-items: center; gap: 7px; color: var(--iap-green); font-size: 12px; font-weight: 850; }
.iap-location-grid article > div:last-child > a svg { width: 16px; fill: none; stroke: currentColor; stroke-width: 2; }
.iap-contact-form-section { display: grid; grid-template-columns: .7fr 1.3fr; gap: 80px; align-items: start; }
.iap-contact-form-section > div:first-child h2 { font-size: clamp(34px,4vw,58px); line-height: 1.02; letter-spacing: -.05em; }
.iap-contact-form-section > div:first-child p { color: var(--iap-ink-soft); }
.iap-contact-form-section > div:last-child { padding: 35px; border: 1px solid var(--iap-line); border-radius: 27px; background: var(--iap-white); box-shadow: var(--iap-shadow-sm); }

/* FAQ */
.iap-faq-layout { display: grid; grid-template-columns: 260px minmax(0,1fr); gap: 70px; align-items: start; }
.iap-faq-layout > aside { position: sticky; top: 170px; display: grid; gap: 4px; padding: 22px; border-radius: 20px; background: var(--iap-mint); }
.iap-faq-layout > aside a { padding: 10px 12px; border-radius: 10px; font-size: 13px; font-weight: 700; }
.iap-faq-layout > aside a:hover { background: var(--iap-white); color: var(--iap-green); }
.iap-accordion-list--large details { border-radius: 20px; }
.iap-accordion-list--large summary { min-height: 72px; padding: 20px 22px; font-size: 17px; }
.iap-accordion-list--large details p { padding: 0 22px 22px; font-size: 15px; }

/* Wishlist */
.iap-wishlist-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 25px; margin-bottom: 30px; }
.iap-wishlist-toolbar > div { display: flex; align-items: baseline; gap: 8px; }
.iap-wishlist-toolbar strong { font-size: 32px; letter-spacing: -.05em; }
.iap-wishlist-toolbar span { color: var(--iap-ink-soft); }
.iap-wishlist-loading { padding: 50px; border: 1px dashed var(--iap-line-strong); border-radius: 24px; color: var(--iap-ink-soft); text-align: center; }
.iap-empty-state { display: grid; max-width: 720px; justify-items: center; margin: 0 auto; padding: 70px 30px; text-align: center; }
.iap-empty-state > span { display: grid; width: 82px; height: 82px; place-items: center; margin-bottom: 24px; border-radius: 26px; background: var(--iap-mint); color: var(--iap-green); }
.iap-empty-state > span svg { width: 38px; fill: none; stroke: currentColor; stroke-width: 1.5; }
.iap-empty-state h2 { margin-bottom: 9px; font-size: 34px; letter-spacing: -.045em; }
.iap-empty-state p { max-width: 540px; color: var(--iap-ink-soft); }

/* Legal */
.iap-legal-layout { display: grid; grid-template-columns: 270px minmax(0,1fr); gap: 75px; align-items: start; }
.iap-legal-layout > aside { position: sticky; top: 170px; display: grid; gap: 3px; padding: 20px; border: 1px solid var(--iap-line); border-radius: 20px; background: var(--iap-white); }
.iap-legal-layout > aside a { padding: 10px 12px; border-radius: 10px; font-size: 13px; font-weight: 700; }
.iap-legal-layout > aside a:hover { background: var(--iap-mint); color: var(--iap-green); }
.iap-legal-content { max-width: 960px; }
.iap-legal-content > p:first-child { padding: 18px; border-radius: 15px; background: var(--iap-yellow); color: var(--iap-ink); font-size: 13px; }

/* Blog */
.iap-blog-topic-nav { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 32px; }
.iap-blog-topic-nav a { padding: 9px 14px; border: 1px solid var(--iap-line); border-radius: 999px; background: var(--iap-white); font-size: 12px; font-weight: 750; }
.iap-blog-topic-nav a:hover { border-color: var(--iap-green); background: var(--iap-mint); color: var(--iap-green); }
.iap-blog-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 20px; }
.iap-blog-card { overflow: hidden; border: 1px solid var(--iap-line); border-radius: 24px; background: var(--iap-white); }
.iap-blog-card__image { display: block; overflow: hidden; aspect-ratio: 1.61 / 1; }
.iap-blog-card__image img { width: 100%; height: 100%; object-fit: cover; transition: transform .4s ease; }
.iap-blog-card:hover img { transform: scale(1.025); }
.iap-blog-card > div { padding: 23px; }
.iap-blog-card > div > span { color: var(--iap-green); font-size: 10px; font-weight: 850; letter-spacing: .1em; text-transform: uppercase; }
.iap-blog-card h2 { margin: 11px 0; font-size: 23px; line-height: 1.18; letter-spacing: -.035em; }
.iap-blog-card p { color: var(--iap-ink-soft); font-size: 13px; }
.iap-blog-card__meta { display: flex; align-items: center; justify-content: space-between; gap: 20px; color: var(--iap-ink-soft); font-size: 11px; }
.iap-blog-card__meta a, .iap-blog-card > div > a { display: inline-flex; align-items: center; gap: 7px; color: var(--iap-green); font-weight: 850; }
.iap-blog-card svg { width: 16px; fill: none; stroke: currentColor; stroke-width: 2; }
.iap-pagination { margin-top: 38px; }
.iap-pagination .nav-links, .woocommerce-pagination ul.page-numbers { display: flex; justify-content: center; gap: 7px; border: 0 !important; }
.iap-pagination .page-numbers, .woocommerce-pagination ul.page-numbers li a, .woocommerce-pagination ul.page-numbers li span { display: grid; width: 42px; height: 42px; place-items: center; margin: 0; border: 1px solid var(--iap-line) !important; border-radius: 12px; background: var(--iap-white); font-size: 12px; font-weight: 800; }
.iap-pagination .current, .woocommerce-pagination ul.page-numbers li span.current { border-color: var(--iap-green) !important; background: var(--iap-green) !important; color: var(--iap-white) !important; }
.iap-article-hero { padding: 32px 0 0; }
.iap-article-hero > .iap-container { padding: clamp(35px,5vw,72px); border-radius: 34px; background: var(--iap-sage); }
.iap-article-hero__grid { display: grid; grid-template-columns: 1.05fr .95fr; gap: 65px; align-items: center; }
.iap-article-hero h1 { margin-bottom: 20px; font-size: clamp(45px,5.3vw,76px); line-height: .97; letter-spacing: -.06em; }
.iap-article-hero__grid > div:first-child > p { color: var(--iap-ink-soft); font-size: 17px; }
.iap-article-meta { display: flex; gap: 10px; color: var(--iap-ink-soft); font-size: 11px; }
.iap-article-hero__image { overflow: hidden; border-radius: 27px; }
.iap-article-hero__image img { width: 100%; aspect-ratio: 1.45 / 1; object-fit: cover; }
.iap-article-layout { display: grid; grid-template-columns: minmax(0,1fr) 330px; gap: 70px; align-items: start; }
.iap-article-content { max-width: 850px; }
.iap-article-sidebar { position: sticky; top: 170px; display: grid; gap: 13px; }
.iap-article-sidebar > div { padding: 25px; border-radius: 22px; background: var(--iap-mint); }
.iap-article-sidebar > div:nth-child(2) { background: var(--iap-yellow); }
.iap-article-sidebar h3 { font-size: 22px; line-height: 1.1; letter-spacing: -.03em; }
.iap-article-sidebar p { color: var(--iap-ink-soft); font-size: 12px; }
.iap-article-sidebar a { display: inline-flex; align-items: center; gap: 7px; color: var(--iap-green); font-size: 12px; font-weight: 850; }
.iap-article-sidebar svg { width: 16px; fill: none; stroke: currentColor; stroke-width: 2; }
.iap-medical-notice { display: flex; align-items: flex-start; gap: 12px; margin-bottom: 25px; padding: 16px; border-radius: 15px; background: var(--iap-yellow); color: var(--iap-ink); }
.iap-medical-notice > svg { width: 23px; flex: 0 0 23px; fill: none; stroke: var(--iap-yellow-strong); stroke-width: 1.8; }
.iap-medical-notice p { margin: 0; font-size: 12px; }
.iap-related-posts { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 18px; }
.iap-related-posts article { padding: 14px; border-radius: 21px; background: var(--iap-white); }
.iap-related-posts article > a:first-child { display: block; overflow: hidden; border-radius: 15px; }
.iap-related-posts img { width: 100%; aspect-ratio: 1.55 / 1; object-fit: cover; }
.iap-related-posts h3 { margin: 16px 0 12px; font-size: 18px; line-height: 1.2; }
.iap-related-posts article > a:last-child { display: inline-flex; align-items: center; gap: 7px; color: var(--iap-green); font-size: 12px; font-weight: 850; }
.iap-related-posts svg { width: 16px; fill: none; stroke: currentColor; stroke-width: 2; }

/* Search / 404 */
.iap-search-hero { padding: 54px 0; background: var(--iap-mint); }
.iap-search-hero h1 { margin-bottom: 28px; font-size: clamp(40px,5vw,70px); line-height: 1; letter-spacing: -.06em; }
.iap-search-hero form { max-width: 820px; }
.iap-search-hero form > label { display: block; margin-bottom: 8px; font-size: 12px; font-weight: 800; }
.iap-search-hero form > div { display: flex; gap: 10px; }
.iap-search-hero input { min-width: 0; min-height: 52px; flex: 1; padding: 0 16px; border: 1px solid var(--iap-line); border-radius: 15px; background: var(--iap-white); }
.iap-search-summary { display: flex; align-items: baseline; gap: 9px; margin-bottom: 28px; }
.iap-search-summary strong { font-size: 36px; letter-spacing: -.05em; }
.iap-search-summary span { color: var(--iap-ink-soft); }
.iap-search-list { display: grid; gap: 12px; }
.iap-search-list article { padding: 25px; border: 1px solid var(--iap-line); border-radius: 20px; background: var(--iap-white); }
.iap-search-list article > span { color: var(--iap-green); font-size: 10px; font-weight: 850; text-transform: uppercase; }
.iap-search-list h2 { margin: 8px 0; font-size: 24px; }
.iap-search-list p { color: var(--iap-ink-soft); }
.iap-search-list article > a { display: inline-flex; align-items: center; gap: 7px; color: var(--iap-green); font-weight: 850; }
.iap-search-list svg { width: 17px; fill: none; stroke: currentColor; stroke-width: 2; }
.iap-no-results { max-width: 770px; margin: 0 auto; text-align: center; }
.iap-no-results > div:first-child { display: grid; width: 90px; height: 90px; place-items: center; margin: 0 auto 25px; border-radius: 28px; background: var(--iap-mint); color: var(--iap-green); }
.iap-no-results svg { width: 40px; fill: none; stroke: currentColor; stroke-width: 1.5; }
.iap-no-results h2 { font-size: 40px; letter-spacing: -.05em; }
.iap-no-results p { color: var(--iap-ink-soft); }
.iap-no-results__actions { display: flex; justify-content: center; gap: 20px; margin: 25px 0; }
.iap-search-suggestions { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px; }
.iap-search-suggestions a { padding: 8px 12px; border-radius: 999px; background: var(--iap-mint); color: var(--iap-green-dark); font-size: 12px; font-weight: 750; }
.iap-404 { padding: 50px 0 90px; }
.iap-404__grid { display: grid; min-height: 650px; grid-template-columns: 1.05fr .95fr; align-items: center; gap: 70px; overflow: hidden; padding: clamp(42px,6vw,90px); border-radius: 36px; background: linear-gradient(135deg,var(--iap-mint),var(--iap-yellow)); }
.iap-404__code { display: inline-flex; margin-bottom: 18px; color: var(--iap-green); font-size: 13px; font-weight: 900; letter-spacing: .18em; }
.iap-404 h1 { max-width: 800px; margin-bottom: 19px; font-size: clamp(47px,5.8vw,82px); line-height: .96; letter-spacing: -.065em; }
.iap-404__grid > div:first-child > p { max-width: 650px; color: var(--iap-ink-soft); }
.iap-404 form { position: relative; max-width: 600px; margin: 26px 0; }
.iap-404 form input { width: 100%; height: 55px; padding: 0 60px 0 16px; border: 1px solid var(--iap-line); border-radius: 16px; background: var(--iap-white); }
.iap-404 form button { position: absolute; top: 5px; right: 5px; display: grid; width: 45px; height: 45px; place-items: center; border: 0; border-radius: 13px; background: var(--iap-green); color: var(--iap-white); }
.iap-404 form svg { width: 20px; fill: none; stroke: currentColor; stroke-width: 2; }
.iap-404__actions { display: flex; flex-wrap: wrap; align-items: center; gap: 20px; }
.iap-404__visual { display: flex; align-items: center; justify-content: center; gap: 10px; font-size: clamp(100px,13vw,190px); font-weight: 900; letter-spacing: -.1em; }
.iap-404__visual > div { display: grid; width: 130px; height: 130px; place-items: center; border-radius: 50%; background: var(--iap-green); color: var(--iap-white); }
.iap-404__visual svg { width: 60px; fill: none; stroke: currentColor; stroke-width: 1.2; }

/* WooCommerce archive */
.iap-shop-hero { padding: 40px 0 42px; background: linear-gradient(135deg,#eff7f2,#f8f4ea); }
.iap-shop-hero__grid { display: grid; grid-template-columns: minmax(0,1fr) 210px; align-items: end; gap: 35px; }
.iap-shop-hero h1 { margin-bottom: 13px; font-size: clamp(45px,5.5vw,76px); line-height: .98; letter-spacing: -.06em; }
.iap-shop-description { max-width: 800px; color: var(--iap-ink-soft); }
.iap-shop-description p { margin-bottom: 0; }
.iap-shop-hero__stat { display: grid; min-height: 145px; place-content: center; border: 1px solid rgba(14,107,92,.14); border-radius: 24px; background: rgba(255,255,255,.6); text-align: center; }
.iap-shop-hero__stat strong { font-size: 44px; line-height: 1; letter-spacing: -.06em; }
.iap-shop-hero__stat span { margin-top: 6px; color: var(--iap-ink-soft); font-size: 11px; }
.iap-subcategory-strip { padding: 21px 0; border-bottom: 1px solid var(--iap-line); background: var(--iap-white); }
.iap-subcategory-scroll { display: flex; gap: 10px; overflow-x: auto; scrollbar-width: thin; }
.iap-subcategory-scroll a { display: grid; min-width: 190px; grid-template-columns: 38px 1fr; gap: 10px; padding: 12px; border: 1px solid var(--iap-line); border-radius: 15px; }
.iap-subcategory-scroll a > span { display: grid; width: 38px; height: 38px; grid-row: span 2; place-items: center; border-radius: 12px; background: var(--iap-mint); color: var(--iap-green); }
.iap-subcategory-scroll svg { width: 18px; fill: none; stroke: currentColor; stroke-width: 1.8; }
.iap-subcategory-scroll b { overflow: hidden; font-size: 12px; text-overflow: ellipsis; white-space: nowrap; }
.iap-subcategory-scroll small { color: var(--iap-ink-soft); font-size: 9px; }
.iap-shop-content { padding-top: 40px; }
.woocommerce .woocommerce-result-count { margin: 0; color: var(--iap-ink-soft); font-size: 12px; }
.woocommerce .woocommerce-ordering { margin: 0 0 22px; }
.woocommerce .woocommerce-ordering select { min-height: 44px; padding: 0 38px 0 12px; border: 1px solid var(--iap-line); border-radius: 13px; background: var(--iap-white); }
.iap-shop-toolbar { display: flex; align-items: center; justify-content: flex-end; gap: 12px; margin-bottom: 20px; }
.iap-filter-toggle { display: none; min-height: 44px; align-items: center; gap: 8px; padding: 0 15px; border: 1px solid var(--iap-line); border-radius: 13px; background: var(--iap-white); font-weight: 800; }
.iap-filter-toggle svg { width: 18px; fill: none; stroke: currentColor; stroke-width: 1.8; }
.iap-view-toggles { display: flex; gap: 4px; padding: 4px; border: 1px solid var(--iap-line); border-radius: 13px; background: var(--iap-white); }
.iap-view-toggles button { display: grid; width: 35px; height: 35px; place-items: center; border: 0; border-radius: 9px; background: transparent; color: var(--iap-ink-soft); }
.iap-view-toggles button.is-active { background: var(--iap-mint); color: var(--iap-green); }
.iap-view-toggles svg { width: 18px; fill: none; stroke: currentColor; stroke-width: 1.8; }
.iap-shop-layout { display: grid; grid-template-columns: 260px minmax(0,1fr); gap: 28px; align-items: start; }
.iap-filter-panel { position: sticky; top: 165px; padding: 22px; border: 1px solid var(--iap-line); border-radius: 22px; background: var(--iap-white); }
.iap-filter-panel__head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 10px; }
.iap-filter-panel__head h2 { margin: 0; font-size: 21px; letter-spacing: -.035em; }
.iap-filter-panel__head button { display: none; width: 40px; height: 40px; place-items: center; border: 1px solid var(--iap-line); border-radius: 50%; background: var(--iap-white); }
.iap-filter-panel__head svg { width: 18px; fill: none; stroke: currentColor; stroke-width: 2; }
.iap-filter-panel fieldset { margin: 0; padding: 19px 0; border: 0; border-bottom: 1px solid var(--iap-line); }
.iap-filter-panel legend { margin-bottom: 12px; font-size: 12px; font-weight: 850; }
.iap-price-filter { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 8px; }
.iap-price-filter label { color: var(--iap-ink-soft); font-size: 9px; }
.iap-price-filter input, .iap-filter-panel select { width: 100%; height: 42px; margin-top: 5px; padding: 0 10px; border: 1px solid var(--iap-line); border-radius: 11px; background: #f7f9f7; }
.iap-filter-panel .iap-check { margin: 8px 0; font-size: 12px; }
.iap-filter-panel .iap-btn { width: 100%; margin-top: 20px; }
.iap-clear-filters { display: block; margin-top: 12px; color: var(--iap-ink-soft); font-size: 11px; font-weight: 750; text-align: center; text-decoration: underline; }
.iap-shop-results.is-list ul.products { grid-template-columns: 1fr; }
.iap-shop-results.is-list .iap-product-card { display: grid; grid-template-columns: 260px 1fr; }
.iap-shop-results.is-list .iap-product-card__media { aspect-ratio: 1 / 1; }
.iap-shop-results.is-list .iap-product-card__body { min-height: 260px; }

/* Single product */
.iap-product-page { padding-top: 32px; }
.iap-single-product > .iap-container > .iap-breadcrumbs { margin-bottom: 28px; }
.iap-single-product__grid { display: grid; grid-template-columns: minmax(0,1.05fr) minmax(430px,.95fr); gap: clamp(45px,7vw,100px); align-items: start; }
.iap-single-product__gallery { min-width: 0; }
.woocommerce div.product div.images, .woocommerce div.product div.summary { float: none; width: 100%; margin: 0; }
.woocommerce div.product div.images .woocommerce-product-gallery__wrapper { overflow: hidden; border-radius: 29px; background: #f3f6f3; }
.woocommerce div.product div.images img { width: 100%; object-fit: contain; }
.woocommerce div.product div.images .flex-control-thumbs { display: grid; grid-template-columns: repeat(5,1fr); gap: 8px; margin-top: 10px; }
.woocommerce div.product div.images .flex-control-thumbs li { width: auto; border: 1px solid var(--iap-line); border-radius: 12px; background: #f5f7f4; }
.iap-single-product__summary { position: sticky; top: 165px; padding-top: 10px; }
.iap-single-product__summary .product_title { margin: 10px 0 15px; font-size: clamp(37px,4.2vw,58px); line-height: 1.02; letter-spacing: -.055em; }
.iap-product-meta-line { display: flex; flex-wrap: wrap; gap: 9px 20px; color: var(--iap-ink-soft); font-size: 11px; }
.iap-product-meta-line b { color: var(--iap-ink); }
.woocommerce div.product p.price, .woocommerce div.product span.price { margin: 20px 0; color: var(--iap-ink); font-size: 31px; font-weight: 850; }
.woocommerce div.product p.price ins { color: var(--iap-sale); text-decoration: none; }
.woocommerce div.product p.price del { margin-right: 8px; color: #8b9691; font-size: 18px; opacity: 1; }
.woocommerce-product-details__short-description { color: var(--iap-ink-soft); }
.woocommerce div.product form.cart { display: flex; gap: 10px; margin: 25px 0 20px; }
.woocommerce .quantity .qty { width: 78px; height: 52px; border: 1px solid var(--iap-line); border-radius: 14px; background: var(--iap-white); }
.woocommerce div.product form.cart .button { min-height: 52px; flex: 1; }
.product_meta { display: grid; gap: 6px; margin-top: 18px; color: var(--iap-ink-soft); font-size: 11px; }
.product_meta a { color: var(--iap-green); }
.iap-product-assurances { display: grid; gap: 9px; margin: 20px 0; }
.iap-product-assurances > div { display: grid; grid-template-columns: 41px 1fr; align-items: center; gap: 11px; padding: 12px; border: 1px solid var(--iap-line); border-radius: 14px; }
.iap-product-assurances > div > svg { width: 23px; fill: none; stroke: var(--iap-green); stroke-width: 1.7; }
.iap-product-assurances strong, .iap-product-assurances small { display: block; }
.iap-product-assurances strong { font-size: 12px; }
.iap-product-assurances small { color: var(--iap-ink-soft); font-size: 10px; }
.iap-product-assurances a { color: var(--iap-green); text-decoration: underline; }
.iap-single-product__summary .iap-medical-notice { margin-top: 14px; }
.iap-product-detail-tabs { margin-top: 90px; padding: 80px 0; background: #f3f7f4; }
.woocommerce div.product .woocommerce-tabs ul.tabs { display: flex; flex-wrap: wrap; gap: 6px; margin: 0 0 30px; padding: 0; }
.woocommerce div.product .woocommerce-tabs ul.tabs::before { display: none; }
.woocommerce div.product .woocommerce-tabs ul.tabs li { margin: 0; padding: 0; border: 1px solid var(--iap-line); border-radius: 999px; background: var(--iap-white); }
.woocommerce div.product .woocommerce-tabs ul.tabs li::before, .woocommerce div.product .woocommerce-tabs ul.tabs li::after { display: none; }
.woocommerce div.product .woocommerce-tabs ul.tabs li.active { border-color: var(--iap-green); background: var(--iap-green); color: var(--iap-white); }
.woocommerce div.product .woocommerce-tabs ul.tabs li a { padding: 10px 17px; font-size: 12px; }
.woocommerce div.product .woocommerce-tabs .panel { max-width: 960px; color: var(--iap-ink-soft); }
.woocommerce div.product .woocommerce-tabs .panel h2 { color: var(--iap-ink); font-size: 34px; letter-spacing: -.045em; }
.woocommerce .related.products, .woocommerce .upsells.products { margin-top: 70px; }
.woocommerce .related.products > h2, .woocommerce .upsells.products > h2 { margin-bottom: 30px; font-size: 38px; letter-spacing: -.05em; }
.iap-mobile-buybar { display: none; }

/* Woo notices, cart, checkout, account */
.woocommerce-notices-wrapper { margin-bottom: 18px; }
.woocommerce-message, .woocommerce-info, .woocommerce-error { padding: 16px 18px 16px 50px; border: 0; border-radius: 15px; background: var(--iap-mint); color: var(--iap-ink); }
.woocommerce-message::before, .woocommerce-info::before { top: 16px; color: var(--iap-green); }
.woocommerce-error { background: #fff0ee; }
.woocommerce-error::before { top: 16px; color: var(--iap-error); }
.woocommerce table.shop_table { overflow: hidden; border: 1px solid var(--iap-line); border-radius: 20px; background: var(--iap-white); border-collapse: separate; }
.woocommerce table.shop_table th, .woocommerce table.shop_table td { padding: 16px; border-color: var(--iap-line); }
.woocommerce-cart-form__cart-item .product-thumbnail img { width: 90px; border-radius: 13px; background: #f5f7f4; }
.woocommerce a.remove { display: grid; width: 32px; height: 32px; place-items: center; color: var(--iap-sale) !important; }
.woocommerce a.remove:hover { background: var(--iap-sale); }
.cart-collaterals .cart_totals, .woocommerce-checkout-review-order, .woocommerce form.checkout_coupon, .woocommerce form.login, .woocommerce form.register { padding: 25px; border: 1px solid var(--iap-line); border-radius: 22px; background: var(--iap-white); }
.woocommerce .cart-collaterals .cart_totals { float: right; width: 42%; }
.woocommerce-cart .wc-proceed-to-checkout a.checkout-button { font-size: 15px; }
.woocommerce form .form-row input.input-text, .woocommerce form .form-row textarea, .woocommerce form .form-row select { min-height: 48px; padding: 10px 13px; border: 1px solid var(--iap-line); border-radius: 12px; background: #f7f9f7; }
.woocommerce form .form-row textarea { min-height: 110px; }
.woocommerce-checkout #customer_details { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 24px; }
.woocommerce-checkout #customer_details .col-1, .woocommerce-checkout #customer_details .col-2 { float: none; width: auto; padding: 25px; border: 1px solid var(--iap-line); border-radius: 22px; background: var(--iap-white); }
.woocommerce-checkout h3 { font-size: 25px; letter-spacing: -.035em; }
.woocommerce-checkout-review-order { margin-top: 25px; }
#add_payment_method #payment, .woocommerce-cart #payment, .woocommerce-checkout #payment { border-radius: 18px; background: #f3f7f4; }
.woocommerce-account .woocommerce-MyAccount-navigation { float: left; width: 25%; }
.woocommerce-account .woocommerce-MyAccount-navigation ul { margin: 0; padding: 12px; border: 1px solid var(--iap-line); border-radius: 20px; background: var(--iap-white); list-style: none; }
.woocommerce-account .woocommerce-MyAccount-navigation a { display: block; padding: 12px 14px; border-radius: 10px; font-weight: 700; }
.woocommerce-account .woocommerce-MyAccount-navigation .is-active a, .woocommerce-account .woocommerce-MyAccount-navigation a:hover { background: var(--iap-mint); color: var(--iap-green); }
.woocommerce-account .woocommerce-MyAccount-content { float: right; width: 71%; padding: 25px; border: 1px solid var(--iap-line); border-radius: 22px; background: var(--iap-white); }

/* Footer */
.iap-site-footer { padding: 80px 0 28px; background: #f0f5f1; }
.iap-footer-top { display: grid; grid-template-columns: 1.2fr .8fr; gap: 20px; margin-bottom: 70px; }
.iap-footer-newsletter { padding: clamp(30px,5vw,60px); border-radius: 30px; background: var(--iap-green-dark); color: var(--iap-white); }
.iap-footer-newsletter .iap-eyebrow { color: #aee0c5; }
.iap-footer-newsletter h2 { max-width: 820px; margin-bottom: 25px; font-size: clamp(32px,3.8vw,54px); }
.iap-footer-newsletter form { display: flex; max-width: 650px; padding: 5px; border-radius: 15px; background: var(--iap-white); }
.iap-footer-newsletter input { min-width: 0; height: 48px; flex: 1; padding: 0 13px; border: 0; background: transparent; outline: 0; }
.iap-footer-newsletter button { padding: 0 18px; border: 0; border-radius: 12px; background: var(--iap-peach-strong); color: var(--iap-white); font-size: 12px; font-weight: 850; }
.iap-footer-newsletter button svg { display: inline-block; width: 15px; vertical-align: middle; fill: none; stroke: currentColor; stroke-width: 2; }
.iap-footer-newsletter > small { display: block; max-width: 700px; margin-top: 12px; color: rgba(255,255,255,.56); font-size: 9px; }
.iap-footer-contact-card { display: grid; grid-template-columns: 64px 1fr; gap: 22px; padding: clamp(30px,4vw,48px); border-radius: 30px; background: var(--iap-peach); }
.iap-footer-contact-card > svg { width: 48px; fill: none; stroke: var(--iap-peach-strong); stroke-width: 1.5; }
.iap-footer-contact-card > div > span { color: var(--iap-peach-strong); font-size: 10px; font-weight: 850; letter-spacing: .1em; text-transform: uppercase; }
.iap-footer-contact-card h3 { margin: 10px 0; font-size: 29px; line-height: 1.05; letter-spacing: -.04em; }
.iap-footer-contact-card p { color: var(--iap-ink-soft); font-size: 13px; }
.iap-footer-contact-card a { display: inline-flex; align-items: center; gap: 7px; font-size: 12px; font-weight: 850; }
.iap-footer-contact-card a svg { width: 16px; fill: none; stroke: currentColor; stroke-width: 2; }
.iap-footer-grid { display: grid; grid-template-columns: 1.55fr repeat(3,1fr); gap: 55px; padding-bottom: 50px; }
.iap-footer-brand p { max-width: 420px; color: var(--iap-ink-soft); font-size: 13px; }
.iap-logo--footer { width: 210px; margin-bottom: 20px; }
.iap-footer-contact { display: grid; gap: 9px; margin-top: 20px; }
.iap-footer-contact a { display: inline-flex; align-items: center; gap: 8px; font-size: 13px; font-weight: 750; }
.iap-footer-contact svg { width: 18px; fill: none; stroke: var(--iap-green); stroke-width: 1.8; }
.iap-footer-grid > div:not(.iap-footer-brand) { display: grid; align-content: start; gap: 9px; }
.iap-footer-grid h3 { margin-bottom: 10px; font-size: 13px; letter-spacing: .02em; }
.iap-footer-grid > div:not(.iap-footer-brand) a { color: var(--iap-ink-soft); font-size: 12px; }
.iap-footer-grid > div:not(.iap-footer-brand) a:hover { color: var(--iap-green); }
.iap-footer-license { display: grid; grid-template-columns: 62px minmax(0,1fr) auto; align-items: center; gap: 20px; padding: 22px; border: 1px solid var(--iap-line-strong); border-radius: 22px; background: rgba(255,255,255,.55); }
.iap-license-mark { position: relative; display: grid; width: 62px; height: 62px; place-items: center; border-radius: 17px; background: var(--iap-green); color: var(--iap-white); font-size: 35px; }
.iap-license-mark small { position: absolute; right: 5px; bottom: 4px; font-size: 7px; font-weight: 900; }
.iap-footer-license strong { font-size: 13px; }
.iap-footer-license p { margin: 4px 0 0; color: var(--iap-ink-soft); font-size: 10px; }
.iap-footer-license > a { display: inline-flex; align-items: center; gap: 7px; color: var(--iap-green); font-size: 11px; font-weight: 850; }
.iap-footer-license > a svg { width: 16px; fill: none; stroke: currentColor; stroke-width: 2; }
.iap-footer-bottom { display: flex; align-items: center; justify-content: space-between; gap: 18px; padding-top: 25px; color: var(--iap-ink-soft); font-size: 10px; }
.iap-footer-bottom p { margin: 0; }
.iap-footer-bottom button { border: 0; background: transparent; color: var(--iap-green); font-size: 10px; font-weight: 800; text-decoration: underline; }
.iap-toast { position: fixed; z-index: 9999; right: 18px; bottom: 18px; visibility: hidden; transform: translateY(10px); padding: 12px 16px; border-radius: 13px; background: var(--iap-ink); color: var(--iap-white); font-size: 12px; font-weight: 750; opacity: 0; box-shadow: var(--iap-shadow-md); transition: opacity var(--iap-transition), transform var(--iap-transition), visibility var(--iap-transition); }
.iap-toast.is-visible { visibility: visible; transform: translateY(0); opacity: 1; }
.iap-cookie-dialog { width: min(92vw,620px); padding: 28px; border: 0; border-radius: 25px; background: var(--iap-white); box-shadow: var(--iap-shadow-lg); }
.iap-cookie-dialog::backdrop { background: rgba(12,36,31,.55); backdrop-filter: blur(3px); }
.iap-cookie-dialog__head { display: flex; align-items: center; justify-content: space-between; gap: 20px; }
.iap-cookie-dialog h2 { font-size: 29px; letter-spacing: -.04em; }
.iap-cookie-dialog__head button { display: grid; width: 42px; height: 42px; place-items: center; border: 1px solid var(--iap-line); border-radius: 50%; background: var(--iap-white); }
.iap-cookie-dialog__head svg { width: 19px; fill: none; stroke: currentColor; stroke-width: 2; }
.iap-cookie-dialog > p { color: var(--iap-ink-soft); font-size: 13px; }
.iap-cookie-options { display: grid; gap: 10px; margin: 20px 0; }
.iap-cookie-options label { display: flex; align-items: center; gap: 9px; padding: 12px; border: 1px solid var(--iap-line); border-radius: 12px; font-weight: 700; }
.iap-cookie-options input { width: 18px; height: 18px; accent-color: var(--iap-green); }
.iap-cookie-actions { display: flex; justify-content: flex-end; gap: 9px; }

/* Motion enhancement without hiding content */
.iap-reveal-ready { transform: translateY(0); transition: transform .65s cubic-bezier(.2,.8,.2,1); }
.iap-reveal-ready.iap-before-reveal { transform: translateY(18px); }
.iap-reveal-ready.iap-is-revealed { transform: translateY(0); }

/* Responsive */
@media (max-width: 1280px) {
  .iap-header-main { grid-template-columns: 195px minmax(300px,1fr) auto; gap: 20px; }
  .iap-logo { width: 185px; }
  .iap-primary-nav { gap: 16px; }
  .iap-primary-nav a { font-size: 12px; }
  .iap-nav-help { display: none; }
  .iap-mega-menu__grid { grid-template-columns: repeat(4,minmax(0,1fr)); }
  .iap-mega-promo { display: none; }
  .iap-home-hero__shell { grid-template-columns: 1fr .9fr; }
  .iap-home-hero__copy { padding-left: 58px; }
  .iap-need-grid { grid-template-columns: repeat(4,minmax(0,1fr)); }
  .iap-brand-grid { grid-template-columns: repeat(4,minmax(0,1fr)); }
}

@media (max-width: 1100px) {
  .iap-announcement__links a:last-child { display: none; }
  .iap-header-main { grid-template-columns: 155px minmax(250px,1fr) auto; min-height: 82px; }
  .iap-logo { width: 150px; }
  .iap-header-actions > a { min-width: 55px; }
  .iap-header-actions > a span { display: none; }
  .iap-header-actions > a { min-height: 50px; }
  .iap-cart-count, .iap-wishlist-count { top: 1px; right: 3px; }
  .iap-navigation { gap: 16px; }
  .iap-primary-nav { gap: 13px; }
  .iap-primary-nav a:nth-child(5) { display: none; }
  .iap-home-hero__shell { min-height: 600px; grid-template-columns: 1.08fr .92fr; }
  .iap-home-hero__visual { min-height: 600px; }
  .iap-home-hero__copy { padding: 50px; padding-right: 10px; }
  .iap-home-hero h1 { font-size: clamp(48px,6.5vw,70px); }
  .iap-hero-product--one { width: 58%; }
  .iap-hero-product--two { width: 47%; }
  .iap-hero-product--three { width: 42%; }
  .iap-hero-consult-card { left: -4%; width: 56%; }
  .iap-service-row__grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .iap-need-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .iap-category-card { grid-column: span 6; }
  .iap-category-card.is-large { grid-column: span 6; }
  ul.products.iap-product-grid, .woocommerce ul.products.iap-product-grid, .woocommerce ul.products { grid-template-columns: repeat(3,minmax(0,1fr)); }
  .iap-value-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .iap-contact-overview { grid-template-columns: 1fr; }
  .iap-contact-form-section { gap: 45px; }
  .iap-shop-layout { grid-template-columns: 230px minmax(0,1fr); gap: 20px; }
  .iap-brand-directory { grid-template-columns: repeat(3,minmax(0,1fr)); }
}

@media (max-width: 920px) {
  .iap-container { width: min(calc(100% - 32px),var(--iap-container)); }
  .iap-section { padding: 76px 0; }
  .iap-announcement__inner { min-height: 36px; }
  .iap-announcement p { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  .iap-announcement__links { display: none; }
  .iap-announcement__close { display: flex; flex: 0 0 30px; }
  .iap-header-main { grid-template-columns: 52px 1fr auto; gap: 12px; min-height: 74px; }
  .iap-menu-toggle { display: flex; }
  .iap-menu-toggle span { display: none; }
  .iap-logo { width: 170px; justify-self: start; }
  .iap-header-search { grid-column: 1 / -1; order: 4; margin-bottom: 12px; }
  .iap-header-search input[type="search"] { height: 50px; }
  .iap-header-actions > a:first-child { display: none; }
  .iap-navigation-wrap { display: none; }
  .iap-home-hero { padding-top: 14px; }
  .iap-home-hero__shell { grid-template-columns: 1fr; }
  .iap-home-hero__copy { padding: 52px 42px 22px; }
  .iap-home-hero__visual { min-height: 470px; }
  .iap-hero-product--one { right: 29%; width: 40%; }
  .iap-hero-product--two { right: 8%; width: 34%; }
  .iap-hero-product--three { top: -2%; right: 38%; width: 31%; }
  .iap-hero-consult-card { top: 18%; left: 10%; width: 32%; min-width: 235px; }
  .iap-hero-category-card { top: 32%; right: 9%; }
  .iap-section-head { grid-template-columns: 1fr auto; }
  .iap-section-head p { grid-column: 1 / -1; grid-row: 2; }
  .iap-editorial-pair__grid { grid-template-columns: 1fr; }
  .iap-seasonal__grid, .iap-loyalty-banner__grid { grid-template-columns: 1fr; }
  .iap-seasonal__visual, .iap-loyalty-visual { min-height: 380px; }
  .iap-seasonal__visual img { width: 50%; right: 22%; }
  .iap-consultation-section__grid { grid-template-columns: 1fr; }
  .iap-article-grid, .iap-blog-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .iap-regulatory-section__grid { grid-template-columns: 70px 1fr; }
  .iap-regulatory-section__grid > a { grid-column: 2; justify-self: start; }
  .iap-page-hero__grid { grid-template-columns: 1fr 170px; }
  .iap-page-hero__symbol { width: 160px; height: 160px; }
  .iap-page-hero__symbol svg { width: 53px; }
  .iap-story-grid, .iap-consult-intro, .iap-order-flow, .iap-payment-grid, .iap-faq-split, .iap-loyalty-intro, .iap-loyalty-rules, .iap-contact-form-section { grid-template-columns: 1fr; gap: 45px; }
  .iap-about-locations { grid-template-columns: 1fr 1fr; }
  .iap-about-locations > div { grid-column: 1 / -1; padding-right: 0; }
  .iap-process-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .iap-faq-layout, .iap-legal-layout { grid-template-columns: 1fr; gap: 30px; }
  .iap-faq-layout > aside, .iap-legal-layout > aside { position: static; grid-template-columns: repeat(2,minmax(0,1fr)); }
  .iap-contact-cards { grid-template-columns: repeat(3,minmax(0,1fr)); }
  .iap-location-grid { grid-template-columns: 1fr; }
  .iap-brand-directory { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .iap-featured-brands { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .iap-campaign-grid { grid-template-columns: 1fr; }
  .iap-promo-hero__grid { min-height: 820px; grid-template-columns: 1fr; }
  .iap-promo-visual { min-height: 370px; }
  .iap-article-hero__grid, .iap-article-layout { grid-template-columns: 1fr; }
  .iap-article-sidebar { position: static; grid-template-columns: repeat(2,minmax(0,1fr)); }
  .iap-shop-layout { grid-template-columns: 1fr; }
  .iap-filter-toggle { display: inline-flex; }
  .iap-filter-panel { position: fixed; z-index: 999; top: 0; bottom: 0; left: 0; width: min(88vw,360px); overflow-y: auto; visibility: hidden; transform: translateX(-105%); border-radius: 0 24px 24px 0; opacity: 0; box-shadow: var(--iap-shadow-lg); transition: transform var(--iap-transition), opacity var(--iap-transition), visibility var(--iap-transition); }
  .iap-filter-panel.is-open { visibility: visible; transform: translateX(0); opacity: 1; }
  .iap-filter-panel__head button { display: grid; }
  .iap-shop-toolbar { justify-content: space-between; }
  .iap-single-product__grid { grid-template-columns: 1fr; }
  .iap-single-product__summary { position: static; }
  .iap-footer-top { grid-template-columns: 1fr; }
  .iap-footer-grid { grid-template-columns: 1.3fr repeat(2,1fr); }
  .iap-footer-grid > div:last-child { grid-column: 2 / -1; }
}

@media (max-width: 680px) {
  body { font-size: 15px; }
  .iap-container { width: min(calc(100% - 24px),var(--iap-container)); }
  .iap-section { padding: 62px 0; }
  .iap-section-head { grid-template-columns: 1fr; gap: 16px; margin-bottom: 28px; }
  .iap-section-head p, .iap-section-head .iap-text-link { grid-column: auto; grid-row: auto; }
  .iap-section-head h2, .iap-page-hero h1, .iap-story-copy h2, .iap-consultation-copy h2, .iap-loyalty-banner h2, .iap-seasonal h2 { font-size: clamp(32px,10vw,45px); }
  .iap-announcement p { font-size: 11px; }
  .iap-header-main { grid-template-columns: 44px 1fr auto; }
  .iap-menu-toggle { width: 44px; padding: 0; justify-content: center; }
  .iap-logo { width: 145px; }
  .iap-header-actions > a { min-width: 45px; }
  .iap-header-actions > a:nth-child(2) { display: none; }
  .iap-cart-count { right: 0; }
  .iap-header-search > button { min-width: 72px; }
  .iap-header-search input[type="search"] { padding-right: 85px; font-size: 13px; }
  .iap-home-hero__shell { border-radius: 25px; }
  .iap-home-hero__copy { padding: 38px 23px 15px; }
  .iap-home-hero h1 { font-size: clamp(44px,13.5vw,64px); }
  .iap-home-hero__copy > p { font-size: 16px; }
  .iap-hero-search > div { display: grid; grid-template-columns: 38px 1fr; padding: 5px; }
  .iap-hero-search button { grid-column: 1 / -1; min-height: 46px; margin-top: 5px; }
  .iap-hero-actions { gap: 14px; }
  .iap-hero-trust { display: grid; }
  .iap-home-hero__visual { min-height: 410px; }
  .iap-hero-product--one { right: 30%; bottom: 3%; width: 49%; }
  .iap-hero-product--two { right: 0; bottom: 2%; width: 44%; }
  .iap-hero-product--three { top: 0; right: 34%; width: 40%; }
  .iap-hero-consult-card { top: 20%; left: 4%; width: 68%; min-width: 0; }
  .iap-hero-category-card { top: 44%; right: 2%; min-width: 142px; padding: 12px; }
  .iap-service-row__grid { grid-template-columns: 1fr; }
  .iap-need-grid { grid-template-columns: 1fr; }
  .iap-need-card { min-height: 100px; }
  .iap-category-grid { gap: 11px; }
  .iap-category-card, .iap-category-card.is-large { grid-column: span 12; min-height: 240px; padding: 23px; }
  .iap-category-card h3 { margin-top: 28px; }
  ul.products.iap-product-grid, .woocommerce ul.products.iap-product-grid, .woocommerce ul.products { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; }
  .iap-product-card, .woocommerce ul.products li.product { border-radius: 17px; }
  .iap-product-card__body { min-height: 202px; padding: 12px; }
  .iap-product-card h2, .woocommerce ul.products li.product .woocommerce-loop-product__title { font-size: 13px; }
  .iap-product-brand { font-size: 8px; }
  .iap-product-form { font-size: 9px; }
  .iap-price strong, .woocommerce ul.products li.product .price ins { font-size: 16px; }
  .iap-card-add .button, .iap-card-cart, .woocommerce ul.products li.product .button { width: 38px; min-width: 38px; height: 38px; min-height: 38px; border-radius: 12px; }
  .iap-wishlist-button { top: 7px; right: 7px; width: 34px; height: 34px; }
  .iap-product-badges { top: 8px; left: 8px; }
  .iap-product-badge { padding: 5px 7px; font-size: 8px; }
  .iap-seasonal { padding-bottom: 62px; }
  .iap-seasonal__visual, .iap-loyalty-visual { min-height: 320px; }
  .iap-seasonal__visual img { width: 70%; right: 13%; }
  .iap-editorial-pair { padding: 62px 0; }
  .iap-loyalty-banner { padding-bottom: 62px; }
  .iap-form-grid { grid-template-columns: 1fr; }
  .iap-field--full { grid-column: auto; }
  .iap-brand-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .iap-article-grid, .iap-blog-grid { grid-template-columns: 1fr; }
  .iap-regulatory-section__grid { grid-template-columns: 1fr; text-align: left; }
  .iap-regulatory-section__grid > a { grid-column: auto; }
  .iap-page-hero { padding-top: 14px; }
  .iap-page-hero > .iap-container { padding: 30px 22px; border-radius: 25px; }
  .iap-page-hero__grid { grid-template-columns: 1fr; }
  .iap-page-hero__symbol { display: none; }
  .iap-breadcrumbs { margin-bottom: 25px; }
  .iap-generic-page-grid { grid-template-columns: 1fr; gap: 35px; }
  .iap-page-aside { position: static; }
  .iap-value-grid, .iap-do-dont, .iap-process-grid { grid-template-columns: 1fr; }
  .iap-about-locations { grid-template-columns: 1fr; }
  .iap-about-locations > div { grid-column: auto; }
  .iap-cta-strip > .iap-container { align-items: flex-start; flex-direction: column; }
  .iap-cta-actions { flex-direction: column; align-items: stretch; width: 100%; }
  .iap-delivery-grid { grid-template-columns: 1fr; }
  .iap-payment-cards { grid-template-columns: 1fr; }
  .iap-payment-cards h3 { margin-top: 22px; }
  .iap-loyalty-card-demo { min-height: 330px; padding: 24px; }
  .iap-loyalty-card-demo__top img { width: 145px; }
  .iap-loyalty-card-demo strong { font-size: 53px; }
  .iap-brand-directory, .iap-featured-brands { grid-template-columns: 1fr; }
  .iap-promo-hero__grid { min-height: 720px; border-radius: 25px; }
  .iap-promo-hero h1 { font-size: clamp(44px,13vw,65px); }
  .iap-promo-visual { min-height: 330px; }
  .iap-promo-visual > span { width: 90px; height: 90px; font-size: 23px; }
  .iap-campaign-grid > a { grid-template-columns: 58px 1fr; padding: 22px; }
  .iap-campaign-grid > a > span { width: 55px; height: 55px; }
  .iap-contact-cards { grid-template-columns: 1fr; }
  .iap-contact-cards a { display: grid; grid-template-columns: 50px 1fr; align-items: center; column-gap: 14px; }
  .iap-contact-cards a > span { grid-row: span 3; margin-bottom: 0; }
  .iap-location-grid article { grid-template-columns: 1fr; }
  .iap-location-map { min-height: 210px; }
  .iap-faq-layout > aside, .iap-legal-layout > aside { grid-template-columns: 1fr; }
  .iap-article-hero > .iap-container { padding: 30px 22px; border-radius: 25px; }
  .iap-article-hero h1 { font-size: clamp(39px,11vw,56px); }
  .iap-article-sidebar, .iap-related-posts { grid-template-columns: 1fr; }
  .iap-search-hero form > div { flex-direction: column; }
  .iap-no-results__actions { flex-direction: column; align-items: stretch; }
  .iap-404__grid { min-height: 720px; grid-template-columns: 1fr; gap: 25px; padding: 35px 23px; border-radius: 25px; }
  .iap-404__visual { font-size: 95px; }
  .iap-404__visual > div { width: 85px; height: 85px; }
  .iap-shop-hero__grid { grid-template-columns: 1fr; }
  .iap-shop-hero__stat { min-height: 100px; }
  .iap-shop-results.is-list .iap-product-card { grid-template-columns: 135px 1fr; }
  .iap-shop-results.is-list .iap-product-card__body { min-height: 170px; }
  .iap-single-product__summary .product_title { font-size: 38px; }
  .iap-product-detail-tabs { margin-top: 55px; padding: 55px 0 95px; }
  .iap-mobile-buybar { position: fixed; z-index: 90; right: 10px; bottom: 10px; left: 10px; display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 10px 11px; border: 1px solid var(--iap-line); border-radius: 18px; background: rgba(255,255,255,.94); box-shadow: var(--iap-shadow-lg); backdrop-filter: blur(16px); }
  .iap-mobile-buybar small, .iap-mobile-buybar strong { display: block; }
  .iap-mobile-buybar small { color: var(--iap-ink-soft); font-size: 9px; }
  .iap-mobile-buybar strong { font-size: 15px; }
  .iap-mobile-buybar .iap-btn { min-height: 43px; padding: 10px 15px; font-size: 11px; }
  .woocommerce .cart-collaterals .cart_totals { float: none; width: 100%; }
  .woocommerce-checkout #customer_details { grid-template-columns: 1fr; }
  .woocommerce-account .woocommerce-MyAccount-navigation, .woocommerce-account .woocommerce-MyAccount-content { float: none; width: 100%; }
  .woocommerce-account .woocommerce-MyAccount-navigation { margin-bottom: 18px; }
  .iap-footer-top { margin-bottom: 50px; }
  .iap-footer-newsletter form { flex-direction: column; gap: 6px; background: transparent; }
  .iap-footer-newsletter input { min-height: 50px; border-radius: 12px; background: var(--iap-white); }
  .iap-footer-newsletter button { min-height: 50px; }
  .iap-footer-contact-card { grid-template-columns: 1fr; }
  .iap-footer-grid { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 35px 22px; }
  .iap-footer-brand { grid-column: 1 / -1; }
  .iap-footer-grid > div:last-child { grid-column: auto; }
  .iap-footer-license { grid-template-columns: 55px 1fr; }
  .iap-footer-license > a { grid-column: 2; }
  .iap-footer-bottom { align-items: flex-start; flex-direction: column; }
}

@media (max-width: 370px) {
  .iap-container { width: min(calc(100% - 18px),var(--iap-container)); }
  .iap-logo { width: 128px; }
  .iap-header-main { grid-template-columns: 40px 1fr 42px; gap: 7px; }
  .iap-header-actions > a { min-width: 42px; }
  .iap-home-hero__copy { padding-inline: 18px; }
  .iap-home-hero h1 { font-size: 43px; }
  .iap-hero-label { font-size: 10px; }
  .iap-hero-actions .iap-btn { width: 100%; }
  .iap-home-hero__visual { min-height: 360px; }
  .iap-hero-consult-card { width: 76%; }
  .iap-hero-category-card { display: none; }
  ul.products.iap-product-grid, .woocommerce ul.products.iap-product-grid, .woocommerce ul.products { gap: 7px; }
  .iap-product-card__body { padding: 10px; }
  .iap-product-card h2, .woocommerce ul.products li.product .woocommerce-loop-product__title { font-size: 12px; }
  .iap-price strong, .woocommerce ul.products li.product .price ins { font-size: 15px; }
  .iap-card-add .button, .iap-card-cart, .woocommerce ul.products li.product .button { width: 34px; min-width: 34px; height: 34px; min-height: 34px; }
  .iap-cookie-actions { flex-direction: column; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; scroll-behavior: auto !important; }
  .iap-reveal-ready, .iap-reveal-ready.iap-before-reveal { transform: none !important; }
}

/* Responsive archive hardening retained and verified in v3 */
@media (max-width: 680px) {
  .iap-subcategory-strip .iap-container { overflow: hidden; }
  .iap-subcategory-scroll { width: 100%; max-width: 100%; }
  .iap-shop-toolbar {
    display: grid;
    grid-template-columns: auto minmax(0,1fr) auto;
    gap: 8px;
    align-items: center;
  }
  .iap-filter-toggle { grid-column: 1; grid-row: 1; }
  .iap-shop-toolbar > p,
  .iap-shop-toolbar .woocommerce-result-count { grid-column: 2; grid-row: 1; min-width: 0; margin: 0; }
  .iap-view-toggles { grid-column: 3; grid-row: 1; }
  .iap-shop-toolbar > select,
  .iap-shop-toolbar .woocommerce-ordering { grid-column: 1 / -1; grid-row: 2; width: 100%; margin: 0; }
  .iap-shop-toolbar > select,
  .iap-shop-toolbar .woocommerce-ordering select { width: 100%; }
}


/* Content-width hardening retained and verified in v3 */
.iap-generic-page-grid > *,
.iap-rich-content,
.iap-page-aside,
.iap-footer-top > *,
.iap-product-card__body,
.iap-product-card__bottom,
.iap-price-wrap { min-width: 0; }

.iap-rich-content { max-width: 100%; overflow-wrap: anywhere; }
.iap-rich-content > * { max-width: 100%; }
.iap-rich-content img,
.iap-rich-content iframe,
.iap-rich-content video,
.iap-rich-content table { max-width: 100%; }
.iap-rich-content table { display: block; overflow-x: auto; -webkit-overflow-scrolling: touch; }

.iap-license-mark--neutral { background: var(--iap-mint); color: var(--iap-green); }
.iap-license-mark--neutral svg { width: 28px; height: 28px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }

@media (max-width: 920px) {
  .iap-generic-page-grid,
  .iap-footer-top { grid-template-columns: minmax(0,1fr); }
}

@media (max-width: 680px) {
  .iap-subcategory-strip { max-width: 100%; overflow: hidden; }
  .iap-subcategory-scroll { overflow-x: auto; overscroll-behavior-inline: contain; -webkit-overflow-scrolling: touch; }
  .iap-footer-top > * { width: 100%; max-width: 100%; }
  .iap-footer-newsletter,
  .iap-footer-contact-card { box-sizing: border-box; }
}

@media (max-width: 370px) {
  .iap-footer-top { grid-template-columns: minmax(0,1fr); }
  .iap-footer-newsletter,
  .iap-footer-contact-card { width: 100%; max-width: 100%; padding-inline: 18px; }
  .iap-footer-contact-card a,
  .iap-footer-newsletter p { overflow-wrap: anywhere; }
}

/* Final narrow-screen hardening verified in v3 */
.iap-blog-grid > *,
.iap-article-grid > *,
.iap-shop-hero__grid > *,
.iap-wishlist-toolbar > * { min-width: 0; }

@media (max-width: 680px) {
  .iap-blog-grid,
  .iap-article-grid,
  .iap-shop-hero__grid { grid-template-columns: minmax(0,1fr); }
  .iap-shop-hero h1 { font-size: clamp(36px,11.4vw,52px); overflow-wrap: anywhere; }
  .iap-wishlist-toolbar { align-items: flex-start; flex-direction: column; gap: 12px; }
  .iap-wishlist-toolbar .iap-text-link { max-width: 100%; white-space: normal; }
}

/* ========================================================================== 
   Internetapteka v3 — resilient overlays and visual-system refinement
   ========================================================================== */

:root {
  --iap-z-base: 0;
  --iap-z-sticky: 200;
  --iap-z-dropdown: 310;
  --iap-z-autocomplete: 330;
  --iap-z-filter-backdrop: 690;
  --iap-z-filter: 700;
  --iap-z-mobile-backdrop: 800;
  --iap-z-mobile-drawer: 810;
  --iap-z-dialog: 900;
  --iap-z-toast: 1000;
  --iap-z-skip: 1100;
  --iap-container: 1360px;
  --iap-shadow-sm: 0 8px 28px rgba(18, 55, 46, .06);
  --iap-shadow-md: 0 20px 56px rgba(18, 55, 46, .10);
  --iap-shadow-lg: 0 36px 92px rgba(18, 55, 46, .15);
}

/* The HTML hidden state always wins over component media queries. */
[hidden],
.ia-mobile-panel[hidden],
.ia-overlay[hidden],
.iap-mobile-nav[hidden],
.iap-filter-backdrop[hidden],
.iap-search-panel[hidden] {
  display: none !important;
}

html.no-js .iap-menu-toggle { display: none !important; }
html.no-js .iap-noscript-nav { display: block; }
html.iap-js .iap-noscript-nav { display: none; }

body.iap-lock {
  overflow: hidden;
  overscroll-behavior: none;
}

.iap-site-header { z-index: var(--iap-z-sticky); }
.iap-mega-menu { z-index: var(--iap-z-dropdown); }
.iap-search-panel { z-index: var(--iap-z-autocomplete); }
.iap-toast { z-index: var(--iap-z-toast); }
.iap-skip-link:focus { z-index: var(--iap-z-skip); }
.iap-cookie-dialog { z-index: var(--iap-z-dialog); }

.admin-bar .iap-site-header { top: 32px; }

.iap-logo-wrap {
  display: flex;
  min-width: 0;
  align-items: center;
}
.iap-logo-wrap .custom-logo-link,
.iap-logo-wrap .iap-logo {
  display: inline-flex;
  width: 210px;
  max-width: 100%;
  align-items: center;
}
.iap-logo-wrap .custom-logo,
.iap-logo-wrap .iap-logo img {
  width: 100%;
  max-height: 56px;
  object-fit: contain;
  object-position: left center;
}

/* Robust custom off-canvas menu; no native-dialog state is used. */
.iap-mobile-nav {
  position: fixed;
  z-index: var(--iap-z-mobile-backdrop);
  inset: 0;
  display: grid;
  grid-template-columns: minmax(0, 1fr) min(92vw, 430px);
  min-height: 100vh;
  min-height: 100svh;
  height: 100dvh;
  isolation: isolate;
}
.iap-mobile-nav__backdrop {
  z-index: var(--iap-z-mobile-backdrop);
  grid-column: 1 / -1;
  grid-row: 1;
  width: 100%;
  height: 100%;
  padding: 0;
  border: 0;
  background: rgba(12, 36, 31, .58);
  opacity: 0;
  backdrop-filter: blur(3px);
  transition: opacity 220ms ease;
}
.iap-mobile-drawer {
  position: relative;
  z-index: var(--iap-z-mobile-drawer);
  display: flex;
  min-width: 0;
  height: 100%;
  min-height: 0;
  grid-column: 2;
  grid-row: 1;
  flex-direction: column;
  overflow: hidden;
  border: 0;
  border-radius: 28px 0 0 28px;
  background: var(--iap-white);
  color: var(--iap-ink);
  box-shadow: var(--iap-shadow-lg);
  transform: translate3d(102%, 0, 0);
  transition: transform 240ms cubic-bezier(.22, .8, .2, 1);
  outline: 0;
}
.iap-mobile-nav.is-open .iap-mobile-nav__backdrop { opacity: 1; }
.iap-mobile-nav.is-open .iap-mobile-drawer { transform: translate3d(0, 0, 0); }
.iap-mobile-drawer .iap-mobile-menu__header {
  position: relative;
  z-index: 2;
  top: auto;
  display: flex;
  min-height: 80px;
  flex: 0 0 auto;
  align-items: center;
  justify-content: space-between;
  padding: max(15px, env(safe-area-inset-top)) max(20px, env(safe-area-inset-right)) 15px 20px;
  border-bottom: 1px solid var(--iap-line);
  background: rgba(255, 255, 255, .98);
}
.iap-mobile-drawer .iap-mobile-menu__header > a {
  display: inline-flex;
  width: min(188px, 58vw);
  align-items: center;
}
.iap-mobile-drawer .iap-mobile-menu__header img { width: 100%; height: auto; }
.iap-mobile-drawer .iap-mobile-menu__header button {
  display: grid;
  width: 46px;
  height: 46px;
  flex: 0 0 46px;
  place-items: center;
  border: 1px solid var(--iap-line);
  border-radius: 50%;
  background: var(--iap-white);
  color: var(--iap-ink);
}
.iap-mobile-drawer .iap-mobile-menu__header button:hover { border-color: var(--iap-green); background: var(--iap-mint); }
.iap-mobile-drawer .iap-mobile-menu__header svg { width: 20px; fill: none; stroke: currentColor; stroke-width: 2; }
.iap-mobile-drawer__scroll {
  min-height: 0;
  flex: 1 1 auto;
  overflow-x: hidden;
  overflow-y: auto;
  overscroll-behavior: contain;
  padding-bottom: max(30px, env(safe-area-inset-bottom));
  -webkit-overflow-scrolling: touch;
}
.iap-mobile-drawer .iap-mobile-search { padding: 20px 20px 10px; }
.iap-mobile-drawer .iap-mobile-search > label {
  display: block;
  margin-bottom: 8px;
  color: var(--iap-ink-soft);
  font-size: 12px;
  font-weight: 800;
}
.iap-mobile-drawer .iap-mobile-search > div {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 48px;
  border: 1px solid var(--iap-line-strong);
  border-radius: 15px;
  background: #f5f8f6;
}
.iap-mobile-drawer .iap-mobile-search input {
  min-width: 0;
  min-height: 50px;
  padding: 0 15px;
  border: 0;
  background: transparent;
  color: var(--iap-ink);
  font-size: 16px;
  outline: 0;
}
.iap-mobile-drawer .iap-mobile-search button {
  display: grid;
  width: 48px;
  min-height: 48px;
  place-items: center;
  border: 0;
  border-radius: 13px;
  background: var(--iap-green);
  color: var(--iap-white);
}
.iap-mobile-drawer .iap-mobile-search svg { width: 20px; fill: none; stroke: currentColor; stroke-width: 2; }
.iap-mobile-drawer nav { padding: 8px 20px 28px; }
.iap-mobile-drawer nav > h2 {
  margin: 9px 0 12px;
  color: var(--iap-ink-soft);
  font-size: 11px;
  letter-spacing: .12em;
  text-transform: uppercase;
}
.iap-mobile-drawer nav > a,
.iap-mobile-drawer details > summary {
  display: flex;
  min-height: 55px;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  border-bottom: 1px solid #e8efeb;
  font-size: 15px;
  font-weight: 760;
  line-height: 1.3;
  list-style: none;
}
.iap-mobile-drawer details > summary { cursor: pointer; }
.iap-mobile-drawer details > summary::-webkit-details-marker { display: none; }
.iap-mobile-drawer details > summary svg { width: 18px; fill: none; stroke: currentColor; stroke-width: 2; transition: transform var(--iap-transition); }
.iap-mobile-drawer details[open] > summary svg { transform: rotate(180deg); }
.iap-mobile-drawer details > div { display: grid; gap: 2px; padding: 7px 0 13px 13px; }
.iap-mobile-drawer details > div a {
  min-height: 44px;
  padding: 11px 10px;
  border-radius: 10px;
  color: var(--iap-ink-soft);
  font-size: 14px;
}
.iap-mobile-drawer details > div a:hover,
.iap-mobile-drawer details > div a:focus-visible { background: var(--iap-mint); color: var(--iap-green-dark); }
.iap-mobile-drawer .iap-mobile-featured {
  min-height: 78px;
  margin-bottom: 6px;
  padding: 12px;
  border: 0;
  border-radius: 17px;
  background: var(--iap-mint);
}
.iap-mobile-drawer .iap-mobile-featured > svg:first-child {
  width: 40px;
  height: 40px;
  padding: 10px;
  border-radius: 12px;
  background: var(--iap-white);
  color: var(--iap-green);
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
}
.iap-mobile-drawer .iap-mobile-featured span { min-width: 0; flex: 1; }
.iap-mobile-drawer .iap-mobile-featured b,
.iap-mobile-drawer .iap-mobile-featured small { display: block; }
.iap-mobile-drawer .iap-mobile-featured small { margin-top: 2px; color: var(--iap-ink-soft); font-size: 11px; font-weight: 600; }
.iap-mobile-drawer nav > a.is-sale { color: var(--iap-sale); }

/* A separate mobile filter backdrop prevents page interaction without
   reusing the navigation overlay state. */
.iap-filter-backdrop {
  position: fixed;
  z-index: var(--iap-z-filter-backdrop);
  inset: 0;
  padding: 0;
  border: 0;
  background: rgba(12, 36, 31, .5);
  backdrop-filter: blur(2px);
}

/* Design-system refinement: calmer scale, stronger hierarchy and less empty
   vertical space on commerce pages. */
.iap-section { padding: clamp(66px, 6vw, 88px) 0; }
.iap-section-head { margin-bottom: 34px; }
.iap-section-head h2,
.iap-page-hero h1,
.iap-story-copy h2,
.iap-consultation-copy h2,
.iap-loyalty-banner h2,
.iap-seasonal h2,
.iap-footer-newsletter h2 {
  font-size: clamp(34px, 3.5vw, 56px);
  line-height: 1.04;
  letter-spacing: -.045em;
}

.iap-home-hero { padding-top: 20px; }
.iap-home-hero__shell {
  min-height: 590px;
  grid-template-columns: minmax(0, 1.03fr) minmax(410px, .97fr);
  border-radius: 32px;
}
.iap-home-hero__copy { padding: clamp(44px, 5vw, 72px); padding-right: 24px; }
.iap-home-hero h1 {
  max-width: 720px;
  margin-bottom: 19px;
  font-size: clamp(47px, 5vw, 74px);
  line-height: .98;
  letter-spacing: -.055em;
}
.iap-home-hero__copy > p { max-width: 650px; margin-bottom: 25px; font-size: clamp(16px, 1.25vw, 19px); }
.iap-home-hero__visual { min-height: 590px; }
.iap-hero-label { margin-bottom: 20px; }
.iap-hero-trust { margin-top: 24px; }

.iap-product-card,
.woocommerce ul.products li.product.iap-product-card {
  display: flex;
  height: 100%;
  flex-direction: column;
  overflow: hidden;
  border: 1px solid var(--iap-line);
  border-radius: 20px;
  background: var(--iap-white);
  box-shadow: none;
}
.iap-product-card:hover,
.woocommerce ul.products li.product.iap-product-card:hover {
  transform: translateY(-3px);
  border-color: #c9d8d0;
  box-shadow: var(--iap-shadow-sm);
}
.iap-product-card__body {
  display: flex;
  min-height: 218px;
  flex: 1 1 auto;
  flex-direction: column;
  padding: 16px;
}
.iap-product-card h2,
.woocommerce ul.products li.product .woocommerce-loop-product__title {
  display: -webkit-box;
  min-height: 2.8em;
  margin-bottom: 7px;
  overflow: hidden;
  font-size: 15px;
  line-height: 1.4;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}
.iap-product-card__bottom { margin-top: auto; }
.iap-price-wrap { min-height: 49px; }
.iap-price strong,
.woocommerce ul.products li.product .price ins { font-size: 18px; }
.iap-card-add .button,
.iap-card-cart,
.woocommerce ul.products li.product .button {
  min-width: 44px;
  min-height: 44px;
}
.iap-wishlist-button { width: 42px; height: 42px; }

.iap-shop-hero { padding: 30px 0 32px; }
.iap-shop-hero__grid { grid-template-columns: minmax(0, 1fr) 180px; }
.iap-shop-hero h1 { font-size: clamp(42px, 4.6vw, 64px); }
.iap-shop-hero__stat { min-height: 118px; border-radius: 20px; }
.iap-shop-hero__stat strong { font-size: 38px; }
.iap-subcategory-strip { padding-block: 18px; }
.iap-shop-content { padding-top: 42px; }
.iap-shop-toolbar { min-height: 58px; }
.iap-filter-panel { top: 148px; }
.iap-filter-panel__head button:focus-visible,
.iap-menu-toggle:focus-visible,
.iap-mobile-drawer button:focus-visible { outline-offset: 1px; }

.iap-single-product__grid { align-items: start; }
.iap-single-product__summary {
  padding: clamp(24px, 3vw, 40px);
  border: 1px solid var(--iap-line);
  border-radius: 24px;
  background: var(--iap-white);
  box-shadow: var(--iap-shadow-sm);
}
.iap-single-product__summary .product_title { font-size: clamp(36px, 4vw, 56px); line-height: 1.03; }
.iap-product-assurances { margin-top: 23px; }

.iap-empty-state--wide { grid-column: 1 / -1; }
.iap-inline-notice {
  padding: 15px 17px;
  border: 1px solid #e6d6a5;
  border-radius: 12px;
  background: #fff9e7;
  color: #6c5216;
}

@media (min-width: 921px) {
  .iap-mobile-nav { display: none !important; }
}

@media (max-width: 1100px) {
  .iap-header-main { grid-template-columns: 190px minmax(300px, 1fr) auto; gap: 20px; }
  .iap-logo-wrap .custom-logo-link,
  .iap-logo-wrap .iap-logo { width: 185px; }
  .iap-primary-nav { gap: 20px; }
  .iap-home-hero__shell { grid-template-columns: minmax(0, 1.06fr) minmax(340px, .94fr); }
}

@media (max-width: 920px) {
  .admin-bar .iap-site-header { top: 32px; }
  .iap-header-main {
    grid-template-columns: 48px minmax(0, 1fr) 48px;
    gap: 10px;
    min-height: 72px;
  }
  .iap-menu-toggle {
    display: inline-flex;
    width: 46px;
    min-height: 46px;
    align-items: center;
    justify-content: center;
    padding: 0;
    border: 1px solid transparent;
    border-radius: 13px;
  }
  .iap-menu-toggle:hover { border-color: var(--iap-line); background: var(--iap-mint); }
  .iap-menu-toggle span { display: none; }
  .iap-logo-wrap { justify-content: center; }
  .iap-logo-wrap .custom-logo-link,
  .iap-logo-wrap .iap-logo { width: min(170px, 46vw); }
  .iap-logo-wrap .custom-logo,
  .iap-logo-wrap .iap-logo img { object-position: center; }
  .iap-header-actions { justify-self: end; }
  .iap-header-actions > a:not(.iap-cart-link) { display: none; }
  .iap-header-actions .iap-cart-link {
    display: grid;
    width: 46px;
    min-width: 46px;
    height: 46px;
    place-items: center;
    padding: 0;
    border: 1px solid transparent;
    border-radius: 13px;
  }
  .iap-header-actions .iap-cart-link:hover { border-color: var(--iap-line); background: var(--iap-mint); }
  .iap-header-actions .iap-cart-link > span { display: none; }
  .iap-header-search { grid-column: 1 / -1; grid-row: 2; margin-bottom: 12px; }
  .iap-header-search input[type="search"] { height: 50px; font-size: 16px; }
  .iap-navigation-wrap { display: none; }
  .iap-filter-panel {
    z-index: var(--iap-z-filter);
    width: min(90vw, 380px);
    max-width: 100%;
    padding-top: max(22px, env(safe-area-inset-top));
    padding-bottom: max(22px, env(safe-area-inset-bottom));
    border-radius: 0 24px 24px 0;
  }
  .iap-filter-panel[aria-hidden="true"] { visibility: hidden; pointer-events: none; }
  .iap-filter-panel.is-open { visibility: visible; pointer-events: auto; }
  .iap-home-hero__shell { min-height: 0; grid-template-columns: minmax(0, 1fr); }
  .iap-home-hero__copy { padding: 48px 42px 28px; }
  .iap-home-hero__visual { min-height: 400px; }
}

@media (max-width: 782px) {
  .admin-bar .iap-site-header { top: 46px; }
}

@media (max-width: 680px) {
  .iap-container { width: min(calc(100% - 28px), var(--iap-container)); }
  .iap-announcement__inner { min-height: 36px; }
  .iap-announcement p { max-width: calc(100% - 40px); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  .iap-announcement__links { display: none; }
  .iap-announcement__close { display: inline-flex; flex: 0 0 32px; }
  .iap-section { padding: 58px 0; }
  .iap-section-head { grid-template-columns: 1fr; gap: 13px; margin-bottom: 27px; }
  .iap-section-head h2,
  .iap-page-hero h1,
  .iap-story-copy h2,
  .iap-consultation-copy h2,
  .iap-loyalty-banner h2,
  .iap-seasonal h2 { font-size: clamp(30px, 9.4vw, 42px); }

  .iap-home-hero { padding-top: 12px; }
  .iap-home-hero__shell { border-radius: 24px; }
  .iap-home-hero__copy { padding: 32px 22px 22px; }
  .iap-hero-label { margin-bottom: 17px; padding: 8px 11px; font-size: 10px; }
  .iap-home-hero h1 {
    margin-bottom: 15px;
    font-size: clamp(36px, 11.2vw, 49px);
    line-height: 1;
    letter-spacing: -.05em;
  }
  .iap-home-hero__copy > p { margin-bottom: 20px; font-size: 15px; line-height: 1.55; }
  .iap-hero-search { margin-bottom: 16px; }
  .iap-hero-search > div { display: grid; grid-template-columns: 40px minmax(0, 1fr); padding: 5px; }
  .iap-hero-search input[type="search"] { min-height: 44px; font-size: 16px; }
  .iap-hero-search button { grid-column: 1 / -1; min-height: 46px; margin-top: 4px; }
  .iap-hero-actions { gap: 12px; }
  .iap-hero-actions .iap-btn { min-height: 48px; }
  .iap-hero-trust { display: grid; gap: 8px; margin-top: 20px; }
  .iap-home-hero__visual { min-height: 270px; }
  .iap-hero-product--one { right: 31%; bottom: 0; width: 42%; }
  .iap-hero-product--two { right: 4%; bottom: 0; width: 37%; }
  .iap-hero-product--three { top: -3%; right: 36%; width: 34%; }
  .iap-hero-consult-card { top: 13%; left: 5%; width: min(255px, 72%); min-width: 0; }
  .iap-hero-category-card { display: none; }

  .iap-shop-hero { padding: 22px 0 24px; }
  .iap-shop-hero__grid { grid-template-columns: minmax(0, 1fr); gap: 15px; }
  .iap-shop-hero h1 { font-size: clamp(34px, 10.6vw, 47px); }
  .iap-shop-hero__stat {
    display: flex;
    min-height: 0;
    align-items: baseline;
    justify-content: flex-start;
    gap: 8px;
    padding: 13px 15px;
    border-radius: 15px;
    text-align: left;
  }
  .iap-shop-hero__stat strong { font-size: 27px; }
  .iap-subcategory-strip { padding-block: 12px; }
  .iap-shop-content { padding-top: 28px; }
  .iap-shop-toolbar { gap: 7px; }
  .iap-shop-toolbar > p,
  .iap-shop-toolbar .woocommerce-result-count { overflow: hidden; font-size: 11px; text-overflow: ellipsis; white-space: nowrap; }
  .iap-product-card__body { min-height: 194px; padding: 12px; }
  .iap-product-card h2,
  .woocommerce ul.products li.product .woocommerce-loop-product__title { min-height: 2.8em; font-size: 13px; }
  .iap-product-form { font-size: 10px; }
  .iap-price strong,
  .woocommerce ul.products li.product .price ins { font-size: 16px; }
  .iap-single-product__summary { padding: 22px 17px; border-radius: 19px; }
  .iap-single-product__summary .product_title { font-size: clamp(32px, 9.5vw, 42px); }
  .iap-mobile-buybar { bottom: max(10px, env(safe-area-inset-bottom)); }
}

@media (max-width: 430px) {
  .iap-header-main { grid-template-columns: 46px minmax(0, 1fr) 46px; gap: 7px; }
  .iap-logo-wrap .custom-logo-link,
  .iap-logo-wrap .iap-logo { width: min(154px, 44vw); }
  .iap-mobile-nav { grid-template-columns: minmax(18px, 8vw) minmax(0, 1fr); }
  .iap-mobile-drawer { border-radius: 22px 0 0 22px; }
  .iap-mobile-drawer .iap-mobile-menu__header { min-height: 74px; padding-left: 17px; }
  .iap-mobile-drawer .iap-mobile-search { padding-inline: 17px; }
  .iap-mobile-drawer nav { padding-inline: 17px; }
  .iap-home-hero__visual { min-height: 235px; }
  .iap-hero-consult-card { top: 10%; font-size: 11px; }
  ul.products.iap-product-grid,
  .woocommerce ul.products.iap-product-grid,
  .woocommerce ul.products { gap: 9px; }
  .iap-product-card__body { min-height: 184px; padding: 10px; }
  .iap-card-add .button,
  .iap-card-cart,
  .woocommerce ul.products li.product .button { width: 40px; min-width: 40px; height: 40px; min-height: 40px; }
}

@media (max-width: 350px) {
  .iap-container { width: min(calc(100% - 20px), var(--iap-container)); }
  .iap-logo-wrap .custom-logo-link,
  .iap-logo-wrap .iap-logo { width: 132px; }
  .iap-home-hero__copy { padding-inline: 17px; }
  .iap-home-hero h1 { font-size: 36px; }
  .iap-home-hero__visual { min-height: 210px; }
  .iap-hero-consult-card { width: 82%; }
}

@media (max-height: 520px) and (orientation: landscape) {
  .iap-mobile-drawer .iap-mobile-menu__header { min-height: 62px; padding-top: 8px; padding-bottom: 8px; }
  .iap-mobile-drawer .iap-mobile-search { padding-top: 12px; }
  .iap-mobile-drawer nav > a,
  .iap-mobile-drawer details > summary { min-height: 48px; }
}

@media (prefers-reduced-motion: reduce) {
  .iap-mobile-nav__backdrop,
  .iap-mobile-drawer { transition: none !important; }
}

/* v3 final consistency and progressive-enhancement hardening */
.iap-footer-cta-row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 18px;
  margin-top: 25px;
}
.iap-footer-cta-row .iap-text-link { color: var(--iap-white); }
.iap-footer-cta-row .iap-text-link:hover,
.iap-footer-cta-row .iap-text-link:focus-visible { color: #ccebd9; }

.iap-contact-form-layout {
  display: grid;
  grid-template-columns: minmax(280px, .72fr) minmax(0, 1.28fr);
  align-items: start;
  gap: clamp(34px, 6vw, 88px);
}
.iap-contact-form-layout > * { min-width: 0; }
.iap-contact-form-layout > div:first-child { position: sticky; top: 158px; }
.iap-contact-form-layout > div:first-child h2 {
  max-width: 610px;
  margin-bottom: 18px;
  font-size: clamp(34px, 4vw, 57px);
  line-height: 1.03;
  letter-spacing: -.05em;
}
.iap-contact-form-layout > div:first-child > p { max-width: 650px; color: var(--iap-ink-soft); }
.iap-contact-form-layout .iap-form {
  padding: clamp(24px, 4vw, 42px);
  border: 1px solid var(--iap-line);
  border-radius: 25px;
  background: var(--iap-white);
  box-shadow: var(--iap-shadow-sm);
}
.iap-contact-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.iap-contact-cards a { min-width: 0; }
.iap-contact-cards strong,
.iap-contact-cards em { overflow-wrap: anywhere; }

.iap-shop-toolbar__count { min-width: 0; margin-right: auto; }
.iap-shop-toolbar__count .woocommerce-result-count { margin: 0; }
.iap-shop-toolbar__sort { flex: 0 1 auto; }
.iap-shop-toolbar__sort .woocommerce-ordering { margin: 0; }
.iap-shop-toolbar__sort select { max-width: 100%; }

.iap-field input[aria-invalid="true"],
.iap-field textarea[aria-invalid="true"],
.iap-field select[aria-invalid="true"] {
  border-color: var(--iap-error);
  box-shadow: 0 0 0 3px rgba(180, 55, 44, .10);
}
.iap-field-error:not(:empty) { display: block; margin-top: 6px; }
.iap-form-status:focus { outline: 3px solid rgba(14, 107, 92, .22); outline-offset: 3px; }

/* With JavaScript disabled the filter controls remain ordinary, visible form
   controls rather than a permanently translated off-canvas panel. */
html.no-js .iap-filter-toggle,
html.no-js [data-filter-close],
html.no-js .iap-filter-backdrop { display: none !important; }

@media (max-width: 920px) {
  html.no-js .iap-filter-panel {
    position: static;
    z-index: auto;
    top: auto;
    bottom: auto;
    left: auto;
    width: 100%;
    max-width: none;
    max-height: none;
    margin-bottom: 24px;
    overflow: visible;
    visibility: visible;
    transform: none;
    border-radius: 20px;
    opacity: 1;
    pointer-events: auto;
    box-shadow: none;
  }
  html.no-js .iap-shop-layout { grid-template-columns: minmax(0, 1fr); }
  .iap-contact-form-layout { grid-template-columns: minmax(0, 1fr); gap: 35px; }
  .iap-contact-form-layout > div:first-child { position: static; }
}

@media (max-width: 680px) {
  .iap-footer-cta-row { align-items: stretch; flex-direction: column; }
  .iap-footer-cta-row .iap-btn,
  .iap-footer-cta-row .iap-text-link { width: 100%; justify-content: center; }
  .iap-contact-cards { grid-template-columns: minmax(0, 1fr); }
  .iap-contact-form-layout .iap-form { padding: 20px 15px; border-radius: 19px; }
  .iap-shop-toolbar {
    grid-template-columns: auto minmax(0, 1fr) auto;
  }
  .iap-shop-toolbar__count { grid-column: 2; grid-row: 1; margin: 0; }
  .iap-shop-toolbar__sort { grid-column: 1 / -1; grid-row: 2; width: 100%; }
  .iap-shop-toolbar__sort .woocommerce-ordering,
  .iap-shop-toolbar__sort select { width: 100%; }
}

/* Final commerce-control and mobile contact refinements. */
.iap-shop-toolbar__sort {
  position: relative;
  min-width: min(220px, 100%);
}
.iap-shop-toolbar__sort::after {
  position: absolute;
  top: 50%;
  right: 15px;
  width: 8px;
  height: 8px;
  border-right: 2px solid var(--iap-ink-soft);
  border-bottom: 2px solid var(--iap-ink-soft);
  content: "";
  pointer-events: none;
  transform: translateY(-65%) rotate(45deg);
}
.iap-shop-toolbar__sort select {
  width: 100%;
  min-height: 46px;
  padding: 0 42px 0 14px;
  appearance: none;
  border: 1px solid var(--iap-line-strong);
  border-radius: 13px;
  background: var(--iap-white);
  color: var(--iap-ink);
  font-size: 13px;
  font-weight: 720;
  cursor: pointer;
}
.iap-shop-toolbar__sort select:focus-visible {
  border-color: var(--iap-green);
  outline: 3px solid rgba(14, 107, 92, .14);
  outline-offset: 2px;
}

@media (max-width: 768px) {
  .iap-contact-cards a > span { grid-column: 1; grid-row: 1 / span 3; }
  .iap-contact-cards a > small,
  .iap-contact-cards a > strong,
  .iap-contact-cards a > em {
    grid-column: 2;
    min-width: 0;
    width: 100%;
  }
  .iap-contact-cards strong {
    word-break: normal;
    overflow-wrap: anywhere;
  }
}
