/* =========================================================
   AllDent — Dental e-commerce
   Stylesheet · v2 (pill-rounded, modern)
   ========================================================= */

/* ---------- 1. Reset & base ---------- */
*,
*::before,
*::after {
  box-sizing: border-box;
}

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

body {
  margin: 0;
  font-family: "Manrope", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  font-size: 16px;
  line-height: 1.55;
  color: var(--color-text);
  background: var(--color-bg);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

img {
  max-width: 100%;
  display: block;
}

button {
  font-family: inherit;
  cursor: pointer;
}

a {
  color: inherit;
  text-decoration: none;
}

ul,
ol {
  margin: 0;
  padding: 0;
  list-style: none;
}

h1,
h2,
h3,
h4,
h5,
h6,
p {
  margin: 0;
}

input,
textarea,
select {
  font-family: inherit;
  font-size: inherit;
  color: inherit;
}

::selection {
  background: var(--color-primary);
  color: #fff;
}

/* ---------- 2. Design tokens ---------- */
:root {
  /* Colors */
  --color-bg: #ffffff;
  --color-bg-soft: #f7f9fc;
  --color-bg-tint: #eef4fb;
  --color-text: #0f1a2e;
  --color-text-muted: #6b7689;
  --color-text-soft: #8b95a8;
  --color-border: #e6ebf2;
  --color-border-strong: #d3dbe6;
  --color-primary: #2A7EC0;
  --color-primary-hover: #1f6aa3;
  --color-primary-soft: #eaf3fa;
  --color-accent: #ffb547;
  --color-success: #1f9a5f;
  --color-warning: #d97a1e;
  --color-danger: #d04848;

  /* Type */
  --font-sans: "Manrope", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;

  /* Sizes */
  --container: 1440px;
  --radius-xs: 6px;
  --radius-sm: 8px;
  --radius-md: 10px;
  --radius-lg: 14px;
  --radius-xl: 18px;
  --radius-pill: 999px;

  /* Shadows */
  --shadow-sm: 0 1px 2px rgba(15, 26, 46, 0.04), 0 1px 1px rgba(15, 26, 46, 0.03);
  --shadow-md: 0 6px 22px rgba(15, 26, 46, 0.06);
  --shadow-lg: 0 18px 50px rgba(15, 26, 46, 0.1);

  /* Transitions */
  --t-fast: 150ms ease;
  --t-base: 220ms ease;
  --t-slow: 380ms ease;
}

/* ---------- 3. Utilities ---------- */
.container {
  width: 100%;
  max-width: var(--container);
  margin: 0 auto;
  padding: 0 24px;
}

.section {
  padding: 80px 0;
}

.section--soft {
  background: var(--color-bg-soft);
}

.section--tint {
  background: var(--color-bg-tint);
}

.section-head {
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  gap: 24px;
  margin-bottom: 40px;
  flex-wrap: wrap;
}

.section-title {
  font-size: clamp(28px, 3vw, 40px);
  font-weight: 700;
  letter-spacing: -0.02em;
  line-height: 1.15;
  color: var(--color-text);
}

.section-subtitle {
  font-size: 16px;
  color: var(--color-text-muted);
  margin-top: 8px;
  max-width: 640px;
}

.section-link {
  color: var(--color-primary);
  font-weight: 600;
  font-size: 15px;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  transition: gap var(--t-fast);
}

.section-link:hover {
  gap: 10px;
}

.eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: 13px;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--color-primary);
  margin-bottom: 16px;
}

.eyebrow::before {
  content: "";
  width: 18px;
  height: 2px;
  background: var(--color-primary);
  border-radius: 2px;
}

/* ---------- 4. Buttons ---------- */
.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 12px 22px;
  border-radius: var(--radius-pill);
  font-weight: 600;
  font-size: 15px;
  border: 1px solid transparent;
  background: transparent;
  color: var(--color-text);
  transition: all var(--t-base);
  white-space: nowrap;
  text-align: center;
}

.btn--primary {
  background: var(--color-primary);
  color: #fff;
}

.btn--primary:hover {
  background: var(--color-primary-hover);
  transform: translateY(-1px);
  box-shadow: 0 8px 22px rgba(42, 126, 192, 0.28);
}

.btn--secondary {
  background: #fff;
  border-color: var(--color-border-strong);
  color: var(--color-text);
}

.btn--secondary:hover {
  border-color: var(--color-primary);
  color: var(--color-primary);
}

.btn--dark {
  background: var(--color-text);
  color: #fff;
}

.btn--dark:hover {
  background: #1c2c4a;
  transform: translateY(-1px);
}

.btn--ghost {
  background: transparent;
  color: var(--color-text);
}

.btn--ghost:hover {
  background: var(--color-bg-soft);
}

.btn--lg {
  padding: 16px 30px;
  font-size: 16px;
}

.btn--sm {
  padding: 8px 14px;
  font-size: 13px;
}

.btn--block {
  width: 100%;
}

/* ---------- 5. Header ---------- */
.header {
  position: sticky;
  top: 0;
  z-index: 100;
  background: #fff;
  border-bottom: 1px solid var(--color-border);
}

.header__top {
  background: #f7faff;
  color: var(--color-text);
  font-size: 13px;
  border-bottom: 1px solid #e2ecf5;
}

.header__top-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  height: 44px;
  gap: 24px;
}

.header__top-left {
  display: flex;
  align-items: center;
  gap: 12px;
}

.header__top-left span {
  display: inline-flex;
  align-items: center;
  gap: 8px;
}

.header__top-left svg {
  width: 14px;
  height: 14px;
  opacity: 0.7;
  color: var(--color-text);
}

.header__top-divider {
  opacity: 0.35;
}

.header__top-right {
  display: flex;
  align-items: center;
  gap: 10px;
}

.header__top-link {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 7px 14px;
  border-radius: var(--radius-pill);
  color: var(--color-text);
  font-weight: 700;
  font-size: 13px;
  background: #fff;
  border: 1px solid var(--color-border);
  transition: all var(--t-fast);
  white-space: nowrap;
}

.header__top-link:hover {
  border-color: var(--color-primary);
  color: var(--color-primary);
}

.header__top-link:hover {
  background: rgba(255, 255, 255, 0.08);
}

.header__top-link svg {
  width: 14px;
  height: 14px;
}

.header__top-link .caret {
  width: 12px;
  height: 12px;
  opacity: 0.6;
}

/* Phone dropdown */
.phone-drop {
  position: relative;
}

.phone-drop__menu {
  position: absolute;
  top: calc(100% + 8px);
  right: 0;
  min-width: 240px;
  background: #fff;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  box-shadow: var(--shadow-lg);
  padding: 8px;
  opacity: 0;
  transform: translateY(8px);
  pointer-events: none;
  transition: all var(--t-base);
  z-index: 110;
}

.phone-drop.is-open .phone-drop__menu {
  opacity: 1;
  transform: translateY(0);
  pointer-events: auto;
}

.phone-drop__menu a {
  display: flex;
  flex-direction: column;
  padding: 10px 14px;
  border-radius: var(--radius-sm);
  color: var(--color-text);
  transition: background var(--t-fast);
}

.phone-drop__menu a:hover {
  background: var(--color-bg-soft);
}

.phone-drop__menu strong {
  font-size: 15px;
  font-weight: 700;
}

.phone-drop__menu span {
  font-size: 12px;
  color: var(--color-text-muted);
  margin-top: 2px;
}

.phone-drop__menu .phone-drop__cb {
  border-top: 1px solid var(--color-border);
  margin-top: 4px;
  padding-top: 12px;
  font-size: 13px;
  font-weight: 600;
  color: var(--color-primary);
}

/* Lang switch */
.lang-switch {
  display: inline-flex;
  background: transparent;
  border-radius: var(--radius-pill);
  padding: 0;
  gap: 4px;
}

.lang-switch button {
  border: 0;
  background: transparent;
  font-size: 12px;
  font-weight: 700;
  padding: 5px 12px;
  color: var(--color-text-muted);
  border-radius: var(--radius-pill);
  transition: all var(--t-fast);
  letter-spacing: 0.02em;
}

.lang-switch button:hover {
  color: var(--color-text);
}

.lang-switch button.is-active {
  background: var(--color-primary);
  color: #fff;
}

/* Mobile drawer lang switch (light) */
.drawer .lang-switch {
  background: var(--color-bg-soft);
}

.drawer .lang-switch button {
  color: var(--color-text-muted);
}

.drawer .lang-switch button.is-active {
  background: var(--color-primary);
  color: #fff;
}

/* Main header row */
.header__main {
  display: flex;
  align-items: center;
  gap: 16px;
  height: 92px;
}

.logo {
  display: inline-flex;
  align-items: center;
  flex-shrink: 0;
}

.logo img {
  height: 46px;
  width: auto;
  display: block;
}

.footer .logo img {
  height: 64px;
  width: auto;
  background: transparent;
}

/* Catalog CTA */
.catalog-cta-wrap {
  position: relative;
  flex-shrink: 0;
}

.catalog-cta {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 14px 22px;
  border: 0;
  border-radius: var(--radius-pill);
  background: var(--color-primary);
  color: #fff;
  font-weight: 700;
  font-size: 15px;
  letter-spacing: 0.01em;
  transition: all var(--t-base);
}

.catalog-cta:hover {
  background: var(--color-primary-hover);
  transform: translateY(-1px);
  box-shadow: 0 8px 22px rgba(42, 126, 192, 0.28);
}

.catalog-cta svg {
  width: 18px;
  height: 18px;
}

.nav__item.is-open .catalog-cta {
  background: var(--color-primary-hover);
}

/* Search bar */
.header__search {
  flex: 1;
  display: flex;
  align-items: center;
  height: 52px;
  background: var(--color-bg-soft);
  border: 1px solid transparent;
  border-radius: var(--radius-pill);
  padding: 0 6px 0 20px;
  transition: all var(--t-fast);
}

.header__search:focus-within {
  background: #fff;
  border-color: var(--color-primary);
  box-shadow: 0 0 0 4px rgba(42, 126, 192, 0.12);
}

.header__search > svg {
  width: 18px;
  height: 18px;
  color: var(--color-text-muted);
  flex-shrink: 0;
}

.header__search input {
  flex: 1;
  height: 100%;
  border: 0;
  background: transparent;
  font-size: 15px;
  padding: 0 14px;
  outline: none;
  color: var(--color-text);
}

.header__search input::placeholder {
  color: var(--color-text-soft);
}

.header__search button[type="submit"] {
  height: 40px;
  padding: 0 22px;
  border: 0;
  border-radius: var(--radius-pill);
  background: var(--color-primary);
  color: #fff;
  font-weight: 700;
  font-size: 14px;
  transition: background var(--t-fast);
}

.header__search button[type="submit"]:hover {
  background: var(--color-primary-hover);
}

.header__search--mobile {
  background: var(--color-bg-soft);
  border: 1px solid var(--color-border);
}

.header__search--mobile button[type="submit"] {
  display: none;
}

/* Action pills */
.header__actions {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-shrink: 0;
}

.action-pill {
  position: relative;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  height: 52px;
  padding: 0 16px;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-pill);
  background: #fff;
  color: var(--color-text);
  font-weight: 600;
  font-size: 14px;
  transition: all var(--t-fast);
  white-space: nowrap;
}

.action-pill:hover {
  border-color: var(--color-primary);
  color: var(--color-primary);
}

.action-pill svg {
  width: 18px;
  height: 18px;
}

.action-pill--icon {
  width: 52px;
  padding: 0;
  justify-content: center;
}

/* Hide the (decorative) badge on the heart icon — user request */
.action-pill--icon .action-pill__count {
  display: none;
}

.action-pill__count {
  min-width: 22px;
  height: 22px;
  border-radius: var(--radius-pill);
  background: var(--color-bg-soft);
  color: var(--color-text);
  font-size: 12px;
  font-weight: 700;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0 7px;
}

.action-pill__count--primary {
  background: var(--color-primary);
  color: #fff;
}

/* Cart pill — simplified to icon + corner badge */
.action-pill--cart {
  position: relative;
  width: 52px;
  padding: 0;
  justify-content: center;
  background: var(--color-primary);
  border-color: var(--color-primary);
  color: #fff;
  overflow: visible;
}

.action-pill--cart:hover {
  background: var(--color-primary-hover);
  border-color: var(--color-primary-hover);
  color: #fff;
  transform: translateY(-1px);
  box-shadow: 0 8px 22px rgba(42, 126, 192, 0.3);
}

.action-pill--cart > span:not(.action-pill__count) {
  display: none;
}

.action-pill--cart .action-pill__count {
  position: absolute;
  top: -4px;
  right: -4px;
  min-width: 22px;
  height: 22px;
  background: #fff;
  color: var(--color-primary);
  font-size: 11px;
  font-weight: 800;
  border: 2px solid var(--color-primary);
  margin: 0;
  box-shadow: 0 2px 8px rgba(42, 126, 192, 0.3);
}

.burger {
  width: 52px;
  height: 52px;
  display: none;
  place-items: center;
  background: var(--color-bg-soft);
  border: 0;
  border-radius: var(--radius-pill);
  color: var(--color-text);
}

.burger svg {
  width: 22px;
  height: 22px;
}

/* ---------- 6. Mega menu ---------- */
.mega {
  position: absolute;
  top: calc(100% + 12px);
  left: 0;
  width: min(1180px, calc(100vw - 48px));
  background: #fff;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-lg);
  padding: 28px;
  opacity: 0;
  transform: translateY(8px);
  pointer-events: none;
  transition: opacity var(--t-base), transform var(--t-base);
  z-index: 90;
}

.nav__item.is-open .mega {
  opacity: 1;
  transform: translateY(0);
  pointer-events: auto;
}

.mega--cats {
  position: fixed;
  top: var(--header-h, 130px);
  left: 50%;
  width: min(1320px, calc(100vw - 48px));
  padding: 24px 24px 20px;
  transform: translate(-50%, 8px);
}

.nav__item.is-open .mega--cats {
  transform: translate(-50%, 0);
}

.mega__cats {
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  gap: 18px;
}

.mega-cat {
  display: flex;
  flex-direction: column;
  text-decoration: none;
  color: var(--color-text);
  border-radius: var(--radius-md);
  padding: 6px;
  transition: background var(--t-fast);
}

.mega-cat:hover {
  background: var(--color-bg-soft);
}

.mega-cat__media {
  aspect-ratio: 1 / 1;
  border-radius: var(--radius-sm);
  overflow: hidden;
  background: var(--color-bg-soft);
  margin-bottom: 10px;
}

.mega-cat__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform var(--t-base);
}

.mega-cat:hover .mega-cat__media img {
  transform: scale(1.04);
}

.mega-cat__title {
  font-size: 14px;
  font-weight: 700;
  line-height: 1.3;
  margin: 0 4px 8px;
  text-wrap: balance;
}

.mega-cat__links {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.mega-cat__links a {
  font-size: 13px;
  color: var(--color-text-muted);
  text-decoration: none;
  padding: 3px 4px;
  border-radius: 6px;
  line-height: 1.4;
  transition: color var(--t-fast), background var(--t-fast);
}

.mega-cat__links a:hover {
  color: var(--color-primary);
  background: rgba(42, 126, 192, 0.06);
}

.mega-cat__more {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  color: var(--color-primary) !important;
  font-weight: 600;
  margin-top: 4px;
}

@media (max-width: 960px) {
  .mega__cats {
    grid-template-columns: repeat(3, 1fr);
  }
}

@media (max-width: 600px) {
  .mega__cats {
    grid-template-columns: repeat(2, 1fr);
  }
}

.mega__grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 28px;
}

.mega__col {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.mega__group-title {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 0.02em;
  text-transform: uppercase;
  color: var(--color-text);
  padding-bottom: 10px;
  border-bottom: 1px solid var(--color-border);
}

.mega__group-title .tag {
  font-size: 10px;
  letter-spacing: 0.06em;
  background: var(--color-primary-soft);
  color: var(--color-primary);
  padding: 3px 8px;
  border-radius: var(--radius-pill);
  text-transform: uppercase;
  font-weight: 700;
}

.mega__link {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 6px 10px;
  margin: 0 -10px;
  border-radius: var(--radius-pill);
  font-size: 14px;
  color: var(--color-text);
  transition: all var(--t-fast);
}

.mega__link::before {
  content: "";
  width: 4px;
  height: 4px;
  border-radius: 999px;
  background: var(--color-border-strong);
  transition: all var(--t-fast);
}

.mega__link:hover {
  background: var(--color-bg-soft);
  color: var(--color-primary);
}

.mega__link:hover::before {
  background: var(--color-primary);
  transform: scale(1.6);
}

.mega__feature {
  background: var(--color-bg-tint);
  border-radius: var(--radius-md);
  padding: 22px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  gap: 16px;
  min-height: 240px;
}

.mega__feature h4 {
  font-size: 18px;
  font-weight: 700;
  line-height: 1.25;
  color: var(--color-text);
}

.mega__feature p {
  font-size: 13px;
  color: var(--color-text-muted);
  line-height: 1.5;
}

/* ---------- 7. Drawers ---------- */
.drawer {
  position: fixed;
  inset: 0;
  z-index: 200;
  visibility: hidden;
  pointer-events: none;
}

.drawer.is-open {
  visibility: visible;
  pointer-events: auto;
}

.drawer__backdrop {
  position: absolute;
  inset: 0;
  background: rgba(15, 26, 46, 0.5);
  backdrop-filter: blur(4px);
  -webkit-backdrop-filter: blur(4px);
  opacity: 0;
  transition: opacity var(--t-base);
}

.drawer.is-open .drawer__backdrop {
  opacity: 1;
}

.drawer__panel {
  position: absolute;
  top: 0;
  bottom: 0;
  right: 0;
  width: min(440px, 92vw);
  background: #fff;
  display: flex;
  flex-direction: column;
  transform: translateX(100%);
  transition: transform var(--t-slow);
}

.drawer--left .drawer__panel {
  right: auto;
  left: 0;
  transform: translateX(-100%);
}

.drawer.is-open .drawer__panel {
  transform: translateX(0);
}

.drawer__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 20px 22px;
  border-bottom: 1px solid var(--color-border);
}

.drawer__head h3 {
  font-size: 18px;
  font-weight: 700;
}

.drawer__body {
  flex: 1;
  overflow-y: auto;
  padding: 22px;
}

.drawer__foot {
  padding: 22px;
  border-top: 1px solid var(--color-border);
}

.icon-btn {
  width: 40px;
  height: 40px;
  display: grid;
  place-items: center;
  background: var(--color-bg-soft);
  border: 0;
  border-radius: var(--radius-pill);
  color: var(--color-text);
  transition: background var(--t-fast);
}

.icon-btn:hover {
  background: var(--color-border);
}

.icon-btn svg {
  width: 18px;
  height: 18px;
}

/* Cart line in drawer */
.cart-line {
  display: grid;
  grid-template-columns: 72px 1fr auto;
  gap: 14px;
  align-items: center;
  padding-bottom: 14px;
  border-bottom: 1px solid var(--color-border);
}

.cart-line__media {
  aspect-ratio: 1/1;
  background: var(--color-bg-soft);
  border-radius: var(--radius-sm);
  background-image: repeating-linear-gradient(
    45deg,
    rgba(15, 26, 46, 0.04),
    rgba(15, 26, 46, 0.04) 6px,
    transparent 6px,
    transparent 12px
  );
}

.cart-line__brand {
  font-size: 11px;
  font-weight: 700;
  color: var(--color-primary);
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.cart-line__name {
  font-size: 14px;
  font-weight: 600;
  margin-top: 4px;
}

.cart-line__meta {
  font-size: 13px;
  color: var(--color-text-muted);
  margin-top: 4px;
}

.cart-line__total {
  font-weight: 700;
}

/* Mobile nav */
.m-nav__group {
  border-bottom: 1px solid var(--color-border);
}

.m-nav__group:last-child {
  border-bottom: 0;
}

.m-nav__head {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 14px 0;
  background: transparent;
  border: 0;
  font-size: 16px;
  font-weight: 600;
  color: var(--color-text);
  text-align: left;
}

.m-nav__head svg {
  width: 16px;
  height: 16px;
  transition: transform var(--t-base);
}

.m-nav__group.is-open .m-nav__head svg {
  transform: rotate(180deg);
}

.m-nav__sub {
  display: none;
  padding-bottom: 12px;
}

.m-nav__group.is-open .m-nav__sub {
  display: block;
}

.m-nav__sub a {
  display: block;
  padding: 8px 0 8px 14px;
  font-size: 14px;
  color: var(--color-text-muted);
  border-left: 2px solid var(--color-border);
}

.m-nav__sub a:hover {
  color: var(--color-primary);
  border-left-color: var(--color-primary);
}

/* ---------- 8. Hero / Promo banner ---------- */
.hero-banner {
  padding: 32px 0 8px;
  background: var(--color-bg);
}

.promo-slider {
  position: relative;
}

.promo-slider__viewport {
  position: relative;
  overflow: hidden;
  border-radius: var(--radius-xl);
}

.promo-slider__track {
  display: flex;
  width: 100%;
}

.promo-slider__track > .promo-banner {
  flex: 0 0 100%;
  min-width: 0;
  transition: transform var(--t-base) ease;
  border-radius: 0;
}

.promo-slider__nav {
  position: absolute;
  top: 50%;
  width: 44px;
  height: 44px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.92);
  border: 1px solid var(--color-border);
  box-shadow: var(--shadow-sm);
  display: grid;
  place-items: center;
  transform: translateY(-50%);
  cursor: pointer;
  color: var(--color-text);
  z-index: 3;
  transition: background var(--t-fast), transform var(--t-fast);
}

.promo-slider__nav:hover {
  background: #fff;
  transform: translateY(-50%) scale(1.06);
}

.promo-slider__nav svg {
  width: 18px;
  height: 18px;
}

.promo-slider__nav--prev {
  left: 16px;
}

.promo-slider__nav--next {
  right: 16px;
}

@media (max-width: 700px) {
  .promo-slider__nav {
    width: 36px;
    height: 36px;
  }
  .promo-slider__nav--prev {
    left: 8px;
  }
  .promo-slider__nav--next {
    right: 8px;
  }
}

.promo-banner {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: flex-end;
  padding: 0 7% 0 50%;
  background-color: #fff;
  background-repeat: no-repeat;
  background-position: center center;
  background-size: cover;
  border-radius: var(--radius-xl);
  overflow: hidden;
  aspect-ratio: 1490 / 460;
  max-height: 420px;
}

.promo-banner__body {
  position: relative;
  z-index: 2;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 18px;
  max-width: 540px;
}

.promo-banner__title {
  font-family: var(--font-heading, inherit);
  font-size: clamp(32px, 4.2vw, 56px);
  font-weight: 400;
  line-height: 1.05;
  letter-spacing: 0.01em;
  text-transform: uppercase;
  color: var(--color-text);
  margin: 0;
  text-wrap: balance;
}

.promo-banner__lead {
  font-size: 15px;
  line-height: 1.55;
  color: var(--color-text-muted);
  max-width: 480px;
  margin: 0;
}

.promo-banner__body .btn {
  margin-top: 8px;
}

/* Turquoise decorative half-moons in corners (like reference) */
.promo-banner__deco {
  position: absolute;
  width: 130px;
  height: 130px;
  pointer-events: none;
  z-index: 0;
}

.promo-banner__deco--tl {
  top: 24px;
  left: -32px;
}

.promo-banner__deco--tl::before,
.promo-banner__deco--tl::after,
.promo-banner__deco--br::before,
.promo-banner__deco--br::after {
  content: "";
  position: absolute;
  border-radius: 50%;
}

.promo-banner__deco--tl::before {
  width: 78px;
  height: 78px;
  background: #5cc3cf;
  clip-path: polygon(0 0, 100% 0, 100% 50%, 0 50%);
  top: 0;
  left: 0;
}

.promo-banner__deco--tl::after {
  width: 96px;
  height: 96px;
  border: 4px solid #b9e2e7;
  background: transparent;
  top: 14px;
  left: 40px;
  clip-path: polygon(0 50%, 100% 50%, 100% 100%, 0 100%);
}

.promo-banner__deco--br {
  bottom: 24px;
  right: -32px;
}

.promo-banner__deco--br::before {
  width: 78px;
  height: 78px;
  background: #5cc3cf;
  clip-path: polygon(0 50%, 100% 50%, 100% 100%, 0 100%);
  bottom: 0;
  right: 0;
}

.promo-banner__deco--br::after {
  width: 96px;
  height: 96px;
  border: 4px solid #b9e2e7;
  background: transparent;
  bottom: 14px;
  right: 40px;
  clip-path: polygon(0 0, 100% 0, 100% 50%, 0 50%);
}

.promo-banner__dots {
  display: flex;
  justify-content: center;
  gap: 8px;
  margin-top: 20px;
}

.promo-banner__dots span {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: #c2cbd8;
  cursor: pointer;
  transition: background var(--t-fast), transform var(--t-fast);
}

.promo-banner__dots span.is-active {
  background: var(--color-text);
  transform: scale(1.15);
}

@media (max-width: 900px) {
  .promo-banner {
    padding: 56% 24px 28px;
    aspect-ratio: auto !important;
    background-size: 100% auto;
    background-position: top center;
    text-align: left;
  }
  .promo-banner__title {
    font-size: 26px;
  }
  .promo-banner__body {
    max-width: 100%;
  }
  .promo-banner__deco {
    transform: scale(0.6);
  }
}

/* ---------- 8b. Legacy hero (kept for inner pages) ---------- */
.hero {
  padding: 40px 0 80px;
  background: var(--color-bg);
}

.hero__inner {
  background: var(--color-bg-tint);
  border-radius: var(--radius-xl);
  padding: 56px 64px;
  display: grid;
  grid-template-columns: 1.05fr 1fr;
  gap: 48px;
  align-items: center;
  position: relative;
  overflow: hidden;
}

.hero__inner::after {
  content: "";
  position: absolute;
  inset: auto auto -30% -10%;
  width: 360px;
  height: 360px;
  background: radial-gradient(circle, rgba(42, 126, 192, 0.18), transparent 70%);
  pointer-events: none;
}

.hero__title {
  font-size: clamp(34px, 4.2vw, 56px);
  font-weight: 800;
  line-height: 1.05;
  letter-spacing: -0.025em;
  color: var(--color-text);
  position: relative;
}

.hero__title em {
  font-style: normal;
  color: var(--color-primary);
}

.hero__lead {
  margin-top: 20px;
  font-size: 17px;
  line-height: 1.55;
  color: var(--color-text-muted);
  max-width: 520px;
  position: relative;
}

.hero__ctas {
  display: flex;
  gap: 12px;
  margin-top: 28px;
  flex-wrap: wrap;
  position: relative;
}

.hero__perks {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 18px;
  margin-top: 40px;
  border-top: 1px solid rgba(15, 26, 46, 0.08);
  padding-top: 24px;
  position: relative;
}

.hero__perk {
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.hero__perk strong {
  font-size: 14px;
  font-weight: 700;
  color: var(--color-text);
  display: inline-flex;
  align-items: center;
  gap: 8px;
}

.hero__perk strong svg {
  width: 16px;
  height: 16px;
  color: var(--color-primary);
}

.hero__perk span {
  font-size: 13px;
  color: var(--color-text-muted);
  line-height: 1.4;
}

.hero__visual {
  position: relative;
  aspect-ratio: 5/6;
  border-radius: var(--radius-lg);
  overflow: hidden;
  background: #fff;
  box-shadow: var(--shadow-md);
}

.hero__visual-placeholder {
  position: absolute;
  inset: 0;
  background-image: repeating-linear-gradient(
    45deg,
    rgba(42, 126, 192, 0.06),
    rgba(42, 126, 192, 0.06) 8px,
    transparent 8px,
    transparent 16px
  );
  /* hide placeholder labels — stripes only */
  font-size: 0;
  color: transparent;
}

.hero__chip {
  position: absolute;
  background: #fff;
  border-radius: var(--radius-pill);
  padding: 12px 18px 12px 12px;
  box-shadow: var(--shadow-md);
  display: flex;
  align-items: center;
  gap: 12px;
  font-size: 13px;
}

.hero__chip-icon {
  width: 36px;
  height: 36px;
  border-radius: var(--radius-pill);
  background: var(--color-primary-soft);
  color: var(--color-primary);
  display: grid;
  place-items: center;
}

.hero__chip-icon svg {
  width: 16px;
  height: 16px;
}

.hero__chip strong {
  display: block;
  font-weight: 700;
  color: var(--color-text);
  font-size: 13px;
}

.hero__chip span {
  color: var(--color-text-muted);
  font-size: 11px;
}

.hero__chip--tl {
  top: 24px;
  left: -24px;
}

.hero__chip--br {
  bottom: 28px;
  right: -20px;
}

/* ---------- 9. Promo banners ---------- */
.promo-strip {
  display: grid;
  grid-template-columns: 2fr 1fr 1fr;
  gap: 16px;
}

.promo-card {
  position: relative;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  padding: 28px 30px;
  border-radius: var(--radius-lg);
  overflow: hidden;
  min-height: 200px;
  color: var(--color-text);
  text-decoration: none;
  transition: transform var(--t-base);
}

.promo-card:hover {
  transform: translateY(-2px);
}

.promo-card--primary {
  background: linear-gradient(135deg, #2A7EC0 0%, #1f6aa3 100%);
  color: #fff;
  grid-row: span 1;
}

.promo-card--soft {
  background: var(--color-bg-tint);
}

.promo-card--dark {
  background: var(--color-text);
  color: #fff;
}

.promo-card--accent {
  background: linear-gradient(135deg, #ffe4b3 0%, #ffd28a 100%);
}

.promo-card__eyebrow {
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  margin-bottom: 14px;
  opacity: 0.8;
}

.promo-card h3 {
  font-size: clamp(20px, 1.6vw, 26px);
  font-weight: 800;
  letter-spacing: -0.015em;
  line-height: 1.15;
  margin-bottom: 8px;
  max-width: 280px;
}

.promo-card p {
  font-size: 14px;
  opacity: 0.85;
  max-width: 360px;
  line-height: 1.5;
}

.promo-card__cta {
  margin-top: 18px;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 10px 20px;
  border-radius: var(--radius-pill);
  background: rgba(255, 255, 255, 0.15);
  color: inherit;
  font-weight: 600;
  font-size: 14px;
  width: fit-content;
  transition: all var(--t-fast);
}

.promo-card--primary .promo-card__cta {
  background: rgba(255, 255, 255, 0.2);
}

.promo-card--soft .promo-card__cta {
  background: #fff;
  color: var(--color-text);
}

.promo-card--accent .promo-card__cta {
  background: var(--color-text);
  color: #fff;
}

.promo-card__cta:hover {
  transform: translateX(4px);
}

.promo-card__visual {
  position: absolute;
  right: -20px;
  bottom: -20px;
  width: 160px;
  height: 160px;
  border-radius: 999px;
  background: radial-gradient(circle, rgba(255, 255, 255, 0.2), transparent 70%);
  pointer-events: none;
}

.promo-card--soft .promo-card__visual {
  background: radial-gradient(circle, rgba(42, 126, 192, 0.15), transparent 70%);
}

.promo-card__badge {
  position: absolute;
  top: 22px;
  right: 22px;
  background: rgba(255, 255, 255, 0.25);
  font-size: 11px;
  font-weight: 700;
  padding: 5px 12px;
  border-radius: var(--radius-pill);
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.promo-card--soft .promo-card__badge,
.promo-card--accent .promo-card__badge {
  background: var(--color-text);
  color: #fff;
}

/* Catalog sidebar banner */
.banner-stack {
  display: flex;
  flex-direction: column;
  gap: 16px;
  position: sticky;
  top: 160px;
}

.banner-card {
  border-radius: var(--radius-lg);
  padding: 26px;
  background: var(--color-bg-tint);
  position: relative;
  overflow: hidden;
}

.banner-card--primary {
  background: linear-gradient(135deg, #2A7EC0 0%, #1f6aa3 100%);
  color: #fff;
}

.banner-card--dark {
  background: var(--color-text);
  color: #fff;
}

.banner-card h4 {
  font-size: 19px;
  font-weight: 800;
  letter-spacing: -0.015em;
  line-height: 1.2;
  margin-bottom: 8px;
}

.banner-card p {
  font-size: 13px;
  opacity: 0.85;
  line-height: 1.5;
  margin-bottom: 16px;
}

.banner-card__cta {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 9px 16px;
  border-radius: var(--radius-pill);
  background: #fff;
  color: var(--color-text);
  font-weight: 600;
  font-size: 13px;
  transition: transform var(--t-fast);
}

.banner-card--primary .banner-card__cta,
.banner-card--dark .banner-card__cta {
  background: #fff;
  color: var(--color-text);
}

.banner-card--default .banner-card__cta {
  background: var(--color-text);
  color: #fff;
}

.banner-card__cta:hover {
  transform: translateX(3px);
}

.banner-card__decor {
  position: absolute;
  right: -30px;
  bottom: -30px;
  width: 120px;
  height: 120px;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.1);
}

.banner-card--default .banner-card__decor {
  background: rgba(42, 126, 192, 0.1);
}

/* Empty banner slot — placeholder where user will paste a real ad/banner image */
.banner-slot {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  gap: 8px;
  aspect-ratio: 4/5;
  background: #fff;
  border: 1px dashed var(--color-border-strong);
  border-radius: var(--radius-lg);
  text-align: center;
  padding: 24px;
  background-image: repeating-linear-gradient(
    45deg,
    rgba(42, 126, 192, 0.04),
    rgba(42, 126, 192, 0.04) 8px,
    transparent 8px,
    transparent 16px
  );
  transition: all var(--t-base);
  text-decoration: none;
  color: var(--color-text-muted);
}

.banner-slot:hover {
  border-color: var(--color-primary);
  background-color: var(--color-primary-soft);
}

.banner-slot__icon {
  width: 44px;
  height: 44px;
  border-radius: var(--radius-pill);
  background: var(--color-primary-soft);
  color: var(--color-primary);
  display: grid;
  place-items: center;
  margin-bottom: 4px;
}

.banner-slot__icon svg {
  width: 22px;
  height: 22px;
}

.banner-slot__label {
  font-family: ui-monospace, "JetBrains Mono", monospace;
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.04em;
  color: var(--color-text-soft);
  text-transform: uppercase;
}

.banner-slot__size {
  font-family: ui-monospace, "JetBrains Mono", monospace;
  font-size: 11px;
  color: var(--color-text-soft);
  opacity: 0.7;
}

/* ---------- 10. Categories ---------- */
.cat-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 20px;
}

.cat-card {
  position: relative;
  display: flex;
  flex-direction: column;
  padding: 28px;
  background: #fff;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-lg);
  transition: all var(--t-base);
  min-height: 240px;
  overflow: hidden;
}

.cat-card:hover {
  border-color: var(--color-primary);
  transform: translateY(-2px);
  box-shadow: var(--shadow-md);
}

.cat-card__icon {
  width: 52px;
  height: 52px;
  border-radius: var(--radius-pill);
  background: var(--color-primary-soft);
  color: var(--color-primary);
  display: grid;
  place-items: center;
  margin-bottom: 18px;
}

.cat-card__icon svg {
  width: 24px;
  height: 24px;
}

.cat-card__title {
  font-size: 19px;
  font-weight: 700;
  margin-bottom: 8px;
}

.cat-card__desc {
  font-size: 14px;
  color: var(--color-text-muted);
  line-height: 1.5;
  margin-bottom: 18px;
  flex: 1;
}

.cat-card__count {
  position: absolute;
  top: 24px;
  right: 24px;
  font-size: 12px;
  font-weight: 600;
  color: var(--color-text-muted);
  background: var(--color-bg-soft);
  padding: 5px 12px;
  border-radius: var(--radius-pill);
}

.cat-card__link {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-weight: 600;
  font-size: 14px;
  color: var(--color-primary);
}

.cat-card__link svg {
  width: 14px;
  height: 14px;
  transition: transform var(--t-base);
}

.cat-card:hover .cat-card__link svg {
  transform: translateX(4px);
}

/* ---------- 11. Product card ---------- */
.product-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 20px;
}

.product-grid--6 {
  grid-template-columns: repeat(6, 1fr);
  gap: 14px;
}

.product-grid--6 .product-card__body {
  padding: 0 12px 14px;
}

.product-grid--6 .product-card__brand {
  font-size: 11px;
}

.product-grid--6 .product-card__name {
  font-size: 13px;
  line-height: 1.35;
  margin-bottom: 8px;
  min-height: 36px;
}

.product-grid--6 .product-card__meta {
  font-size: 11px;
  margin-bottom: 10px;
}

.product-grid--6 .product-card__price {
  font-size: 18px;
}

.product-grid--6 .product-card__price small {
  font-size: 13px;
}

.product-grid--6 .product-card__cart {
  width: 36px;
  height: 36px;
}

.product-grid--6 .product-card__cart svg {
  width: 16px;
  height: 16px;
}

.product-grid--6 .product-card__fav {
  width: 30px;
  height: 30px;
}

.product-grid--6 .product-card__fav svg {
  width: 14px;
  height: 14px;
}

.product-grid--6 .product-card__badge {
  top: 10px;
  left: 10px;
  font-size: 10px;
  padding: 4px 9px;
}

/* category banner card inside 6-col grid */
.cat-banner-card {
  position: relative;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  padding: 22px;
  background: linear-gradient(140deg, var(--color-primary), var(--color-primary-hover));
  color: #fff;
  border-radius: var(--radius-lg);
  overflow: hidden;
  min-height: 100%;
  text-decoration: none;
  transition: transform var(--t-base);
}

.cat-banner-card:hover {
  transform: translateY(-2px);
}

.cat-banner-card::before {
  content: "";
  position: absolute;
  width: 220px;
  height: 220px;
  right: -80px;
  bottom: -80px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.1);
  pointer-events: none;
}

.cat-banner-card--accent {
  background: linear-gradient(140deg, var(--color-accent), #c66617);
}

.cat-banner-card--dark {
  background: linear-gradient(140deg, var(--color-text), #1f2d44);
}


/* v1.1.09: image promo card for homepage Multi/CAD-CAM section */
.cat-banner-card--image {
  padding: 0;
  background: #f3f7fb;
  border: 1px solid var(--color-border);
  box-shadow: none;
}

.cat-banner-card--image::before {
  display: none;
}

.cat-banner-card--image:hover {
  transform: translateY(-2px);
}

.cat-banner-card--image .cat-banner-card__image {
  display: block;
  width: 100%;
  height: 100%;
  min-height: 100%;
  object-fit: cover;
  object-position: center;
}

.cat-banner-card__eyebrow {
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.75);
  margin-bottom: 8px;
  position: relative;
}

.cat-banner-card__title {
  font-size: 18px;
  font-weight: 700;
  line-height: 1.2;
  margin-bottom: 6px;
  position: relative;
  text-wrap: balance;
}

.cat-banner-card__cta {
  font-size: 13px;
  font-weight: 600;
  position: relative;
  margin-top: auto;
}

@media (max-width: 1180px) {
  .product-grid.product-grid--6 {
    grid-template-columns: repeat(4, 1fr);
  }
}

@media (max-width: 820px) {
  .product-grid.product-grid--6 {
    grid-template-columns: repeat(3, 1fr);
  }
}

@media (max-width: 560px) {
  .product-grid.product-grid--6 {
    grid-template-columns: repeat(2, 1fr);
  }
}

.product-card {
  display: flex;
  flex-direction: column;
  background: #fff;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-lg);
  overflow: hidden;
  transition: all var(--t-base);
  position: relative;
}

.product-card:hover {
  border-color: var(--color-primary);
  box-shadow: var(--shadow-md);
  transform: translateY(-2px);
}

.product-card__media {
  position: relative;
  aspect-ratio: 1/1;
  background: var(--color-bg-soft);
  display: grid;
  place-items: center;
  overflow: hidden;
  margin: 8px;
  border-radius: var(--radius-md);
}

.product-card__placeholder {
  position: absolute;
  inset: 0;
  background-image: repeating-linear-gradient(
    45deg,
    rgba(15, 26, 46, 0.03),
    rgba(15, 26, 46, 0.03) 8px,
    transparent 8px,
    transparent 16px
  );
  /* hide placeholder labels — visual stripes only */
  font-size: 0;
  color: transparent;
}

.product-card__badge {
  position: absolute;
  top: 12px;
  left: 12px;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.02em;
  text-transform: uppercase;
  padding: 5px 11px;
  border-radius: var(--radius-pill);
  background: #fff;
}

.badge--in-stock {
  color: var(--color-success);
  border: 1px solid rgba(31, 154, 95, 0.25);
}

.badge--preorder {
  color: var(--color-warning);
  border: 1px solid rgba(217, 122, 30, 0.25);
}

.badge--new {
  background: var(--color-primary);
  color: #fff;
  border: 1px solid var(--color-primary);
}

.badge--sale {
  background: var(--color-danger);
  color: #fff;
  border: 1px solid var(--color-danger);
  font-size: 12px;
  font-weight: 800;
  padding: 6px 12px;
  letter-spacing: 0.02em;
}

.product-card__fav {
  width: 42px;
  height: 42px;
  border-radius: var(--radius-pill);
  background: #fff;
  border: 1px solid var(--color-border);
  display: grid;
  place-items: center;
  color: var(--color-text-muted);
  transition: all var(--t-fast);
  flex-shrink: 0;
}

.product-card__fav:hover {
  color: var(--color-danger);
  border-color: var(--color-danger);
}

.product-card__fav.is-active {
  color: var(--color-danger);
  background: #fff5f5;
  border-color: var(--color-danger);
}

.product-card__fav svg {
  width: 18px;
  height: 18px;
}

.product-card__body {
  padding: 8px 20px 20px;
  display: flex;
  flex-direction: column;
  flex: 1;
  gap: 8px;
}

.product-card__brand {
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--color-primary);
}

.product-card__name {
  font-size: 15px;
  font-weight: 600;
  line-height: 1.35;
  color: var(--color-text);
  margin-bottom: 4px;
  flex: 1;
}

.product-card__name a:hover {
  color: var(--color-primary);
}

.product-card__meta {
  font-size: 12px;
  color: var(--color-text-muted);
}

.product-card__foot {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  margin-top: 12px;
}

.product-card__foot-actions {
  display: inline-flex;
  align-items: center;
  gap: 8px;
}

.product-card__price {
  font-size: 20px;
  font-weight: 800;
  letter-spacing: -0.01em;
  color: var(--color-text);
}

.product-card__price small {
  font-size: 13px;
  font-weight: 600;
  color: var(--color-text-muted);
  margin-left: 2px;
}

.product-card__cart {
  width: 42px;
  height: 42px;
  border-radius: var(--radius-pill);
  background: var(--color-primary);
  color: #fff;
  border: 0;
  display: grid;
  place-items: center;
  transition: all var(--t-base);
}

.product-card__cart:hover {
  background: var(--color-primary-hover);
  transform: scale(1.05);
}

.product-card__cart svg {
  width: 18px;
  height: 18px;
}

/* ---------- 12. Brands ---------- */
.brand-row {
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  gap: 16px;
}

.brand-tile {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 28px 16px;
  background: #fff;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-lg);
  font-weight: 700;
  font-size: 18px;
  letter-spacing: -0.01em;
  color: var(--color-text);
  transition: all var(--t-base);
  min-height: 110px;
  text-align: center;
}

.brand-tile:hover {
  border-color: var(--color-primary);
  color: var(--color-primary);
  transform: translateY(-2px);
}

.brand-tile small {
  display: block;
  font-size: 11px;
  font-weight: 600;
  color: var(--color-text-muted);
  text-transform: uppercase;
  letter-spacing: 0.06em;
  margin-top: 6px;
}

/* ---------- 13. Why us ---------- */
.why-grid {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 20px;
}

.why-card {
  background: #fff;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-lg);
  padding: 26px;
  display: flex;
  flex-direction: column;
  gap: 14px;
  transition: all var(--t-base);
}

.why-card:hover {
  border-color: var(--color-primary);
  transform: translateY(-2px);
}

.why-card__num {
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.1em;
  color: var(--color-text-soft);
}

.why-card__icon {
  width: 48px;
  height: 48px;
  border-radius: var(--radius-pill);
  background: var(--color-primary-soft);
  color: var(--color-primary);
  display: grid;
  place-items: center;
}

.why-card__icon svg {
  width: 22px;
  height: 22px;
}

.why-card__title {
  font-size: 16px;
  font-weight: 700;
  line-height: 1.3;
}

.why-card__desc {
  font-size: 13px;
  color: var(--color-text-muted);
  line-height: 1.5;
}

/* ---------- 14. Courses ---------- */
.course-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 22px;
}

.course-card {
  display: flex;
  flex-direction: column;
  background: #fff;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-lg);
  overflow: hidden;
  transition: all var(--t-base);
}

.course-card:hover {
  border-color: var(--color-primary);
  box-shadow: var(--shadow-md);
  transform: translateY(-2px);
}

.course-card__media {
  aspect-ratio: 16/9;
  background: var(--color-bg-tint);
  position: relative;
  margin: 8px;
  border-radius: var(--radius-md);
}

.course-card__date {
  position: absolute;
  bottom: 14px;
  left: 14px;
  background: #fff;
  border-radius: var(--radius-md);
  padding: 8px 14px;
  text-align: center;
  box-shadow: var(--shadow-sm);
  font-size: 11px;
  font-weight: 600;
  color: var(--color-text-muted);
  letter-spacing: 0.08em;
  text-transform: uppercase;
  line-height: 1;
}

.course-card__date strong {
  display: block;
  font-size: 22px;
  letter-spacing: -0.02em;
  color: var(--color-text);
  margin-bottom: 4px;
}

.course-card__tag {
  position: absolute;
  top: 14px;
  left: 14px;
  background: rgba(255, 255, 255, 0.95);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  padding: 5px 12px;
  border-radius: var(--radius-pill);
  color: var(--color-primary);
}

.course-card__body {
  padding: 8px 22px 22px;
  display: flex;
  flex-direction: column;
  gap: 10px;
  flex: 1;
}

.course-card__title {
  font-size: 18px;
  font-weight: 700;
  line-height: 1.3;
  color: var(--color-text);
}

.course-card__desc {
  font-size: 14px;
  color: var(--color-text-muted);
  line-height: 1.5;
  flex: 1;
}

.course-card__foot {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding-top: 12px;
  border-top: 1px solid var(--color-border);
  font-size: 13px;
  color: var(--color-text-muted);
}

.course-card__foot a {
  font-weight: 600;
  color: var(--color-primary);
  display: inline-flex;
  align-items: center;
  gap: 4px;
}

.course-card.is-done {
  opacity: 0.85;
}

.course-card.is-done .course-card__date {
  background: var(--color-bg-soft);
}

.course-card__status {
  background: var(--color-bg-soft);
  color: var(--color-text-muted);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  padding: 5px 12px;
  border-radius: var(--radius-pill);
  align-self: flex-start;
}

/* ---------- 15. Footer ---------- */
.footer {
  background: var(--color-bg-soft);
  color: var(--color-text-muted);
  padding: 40px 0 0;
  border-top: 1px solid var(--color-border);
}

.footer__grid {
  display: grid;
  grid-template-columns: 1.4fr 1.2fr 1.2fr;
  gap: 48px;
  padding-bottom: 28px;
  border-bottom: 1px solid var(--color-border);
}

.footer__brand {
  display: flex;
  flex-direction: column;
  gap: 20px;
  align-items: flex-start;
}

.footer__brand .logo img {
  height: 48px;
  width: auto;
  background: transparent;
}

.footer__brand-note {
  font-size: 13px;
  color: var(--color-text-soft);
  line-height: 1.6;
  max-width: 280px;
}

.footer .logo {
  color: var(--color-text);
}

.footer__col h4 {
  color: var(--color-text);
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  margin: 0 0 18px;
}

.footer__col ul {
  display: flex;
  flex-direction: column;
  gap: 10px;
  list-style: none;
  padding: 0;
  margin: 0;
}

.footer__col a {
  font-size: 14px;
  color: var(--color-text-muted);
  transition: color var(--t-fast);
}

.footer__col a:hover {
  color: var(--color-primary);
}

.footer__info li {
  font-size: 14px;
  color: var(--color-text-muted);
  line-height: 1.5;
}

.footer__info li strong {
  display: block;
  color: var(--color-text);
  font-weight: 600;
  font-size: 14px;
  margin-bottom: 2px;
}

.footer__info li span {
  color: var(--color-text-soft);
  font-size: 13px;
}

.footer__bottom {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 16px 28px;
  padding: 22px 0;
  border-top: 1px solid var(--color-border);
  font-size: 13px;
  color: var(--color-text-soft);
}

.footer__bottom-nav {
  display: flex;
  flex-wrap: wrap;
  gap: 4px 22px;
}

.footer__bottom-nav a {
  font-size: 13px;
  color: var(--color-text-soft);
  transition: color var(--t-fast);
}

.footer__bottom-nav a:hover {
  color: var(--color-primary);
}

.footer__social {
  display: flex;
  gap: 8px;
}

.footer__social a {
  width: 40px;
  height: 40px;
  display: grid;
  place-items: center;
  border-radius: var(--radius-pill);
  background: #fff;
  border: 1px solid var(--color-border);
  color: var(--color-text-muted);
  transition: all var(--t-fast);
}

.footer__social a:hover {
  background: var(--color-primary);
  border-color: var(--color-primary);
  color: #fff;
}

.footer__social svg {
  width: 16px;
  height: 16px;
}

@media (max-width: 920px) {
  .footer__grid {
    grid-template-columns: 1fr 1fr;
    gap: 36px;
  }
  .footer__brand {
    grid-column: 1 / -1;
  }
}

@media (max-width: 540px) {
  .footer__grid {
    grid-template-columns: 1fr;
    gap: 28px;
  }
}

/* ---------- 16. Page header (inner pages) ---------- */
.page-head {
  background: var(--color-bg-soft);
  padding: 36px 0 44px;
  border-bottom: 1px solid var(--color-border);
}

.breadcrumbs {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
  font-size: 13px;
  color: var(--color-text-muted);
  margin-bottom: 18px;
}

.breadcrumbs a:hover {
  color: var(--color-primary);
}

.breadcrumbs span {
  color: var(--color-text);
  font-weight: 500;
}

.breadcrumbs svg {
  width: 12px;
  height: 12px;
  opacity: 0.5;
}

.page-title {
  font-size: clamp(28px, 3.5vw, 44px);
  font-weight: 800;
  letter-spacing: -0.025em;
  line-height: 1.1;
  color: var(--color-text);
}

.page-subtitle {
  margin-top: 12px;
  font-size: 16px;
  color: var(--color-text-muted);
  max-width: 640px;
}

/* ---------- 17. Catalog page layout (banners replace sidebar) ---------- */
.catalog-layout {
  display: grid;
  grid-template-columns: 300px 1fr;
  gap: 32px;
  padding: 40px 0 80px;
}

.catalog-toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 24px;
  gap: 16px;
  flex-wrap: wrap;
}

.catalog-toolbar__left {
  font-size: 14px;
  color: var(--color-text-muted);
}

.catalog-toolbar__left strong {
  color: var(--color-text);
}

.catalog-toolbar__right {
  display: flex;
  align-items: center;
  gap: 12px;
}

/* Category pill filter row */
.cat-pills {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: 24px;
}

.cat-pill {
  padding: 10px 18px;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-pill);
  background: #fff;
  font-size: 14px;
  font-weight: 600;
  color: var(--color-text);
  transition: all var(--t-fast);
  display: inline-flex;
  align-items: center;
  gap: 8px;
  text-decoration: none;
}

.cat-pill:hover {
  border-color: var(--color-primary);
  color: var(--color-primary);
}

.cat-pill.is-active {
  background: var(--color-text);
  color: #fff;
  border-color: var(--color-text);
}

.cat-pill .count {
  font-size: 11px;
  font-weight: 600;
  padding: 2px 7px;
  border-radius: var(--radius-pill);
  background: var(--color-bg-soft);
  color: var(--color-text-muted);
}

.cat-pill.is-active .count {
  background: rgba(255, 255, 255, 0.15);
  color: #fff;
}

.select {
  padding: 10px 40px 10px 16px;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-pill);
  background: #fff;
  font-size: 14px;
  font-weight: 600;
  appearance: none;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%236b7689' stroke-width='2.5'><polyline points='6 9 12 15 18 9'/></svg>");
  background-repeat: no-repeat;
  background-position: right 16px center;
  color: var(--color-text);
}

.view-toggle {
  display: inline-flex;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-pill);
  padding: 3px;
  background: #fff;
}

.view-toggle button {
  width: 38px;
  height: 36px;
  display: grid;
  place-items: center;
  border: 0;
  background: transparent;
  color: var(--color-text-muted);
  border-radius: var(--radius-pill);
  transition: all var(--t-fast);
}

.view-toggle button.is-active {
  background: var(--color-text);
  color: #fff;
}

.view-toggle svg {
  width: 16px;
  height: 16px;
}

.catalog-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 20px;
}

.catalog-grid.is-list {
  grid-template-columns: 1fr;
}

.catalog-grid.is-list .product-card {
  display: grid;
  grid-template-columns: 220px 1fr;
}

.catalog-grid.is-list .product-card__media {
  aspect-ratio: 1/1;
}

.pagination {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  margin-top: 40px;
}

.pagination button,
.pagination a {
  min-width: 40px;
  height: 40px;
  padding: 0 14px;
  display: grid;
  place-items: center;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-pill);
  background: #fff;
  font-size: 14px;
  font-weight: 600;
  color: var(--color-text);
  transition: all var(--t-fast);
}

.pagination .is-active {
  background: var(--color-primary);
  color: #fff;
  border-color: var(--color-primary);
}

.pagination button:hover:not(.is-active),
.pagination a:hover:not(.is-active) {
  border-color: var(--color-primary);
  color: var(--color-primary);
}

/* ---------- 18. Product page ---------- */
.product-layout {
  display: grid;
  grid-template-columns: 1.1fr 1fr;
  gap: 56px;
  padding: 40px 0 64px;
}

.gallery__main {
  aspect-ratio: 1/1;
  background: var(--color-bg-soft);
  border-radius: var(--radius-lg);
  position: relative;
  overflow: hidden;
  margin-bottom: 14px;
}

.gallery__main .product-card__placeholder {
  font-size: 0;
  color: transparent;
}

.gallery__thumbs {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 10px;
}

.gallery__thumb {
  aspect-ratio: 1/1;
  background: var(--color-bg-soft);
  border: 2px solid var(--color-border);
  border-radius: var(--radius-md);
  cursor: pointer;
  position: relative;
  overflow: hidden;
  transition: all var(--t-fast);
}

.gallery__thumb.is-active {
  border-color: var(--color-primary);
}

.gallery__thumb:hover {
  border-color: var(--color-primary);
}

.product-detail__brand {
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--color-primary);
  margin-bottom: 10px;
}

.product-detail__title {
  font-size: clamp(24px, 3vw, 34px);
  font-weight: 800;
  line-height: 1.15;
  letter-spacing: -0.02em;
  margin-bottom: 14px;
}

.product-detail__meta {
  display: flex;
  align-items: center;
  gap: 16px;
  margin-bottom: 24px;
  font-size: 14px;
  color: var(--color-text-muted);
  flex-wrap: wrap;
}

.product-detail__price {
  font-size: 40px;
  font-weight: 800;
  letter-spacing: -0.02em;
  margin-bottom: 8px;
}

.product-detail__price small {
  font-size: 16px;
  font-weight: 600;
  color: var(--color-text-muted);
  margin-left: 6px;
}

.product-detail__price-note {
  font-size: 13px;
  color: var(--color-text-muted);
  margin-bottom: 28px;
}

.option-group {
  margin-bottom: 24px;
}

.option-group__label {
  display: flex;
  justify-content: space-between;
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 0.02em;
  text-transform: uppercase;
  color: var(--color-text-muted);
  margin-bottom: 12px;
}

.option-group__label strong {
  color: var(--color-text);
  font-weight: 700;
}

.option-list {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.option-chip {
  padding: 10px 16px;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-pill);
  background: #fff;
  font-size: 14px;
  font-weight: 500;
  transition: all var(--t-fast);
}

.option-chip:hover {
  border-color: var(--color-primary);
  color: var(--color-primary);
}

.option-chip.is-active {
  border-color: var(--color-primary);
  background: var(--color-primary);
  color: #fff;
  font-weight: 600;
}

.cart-row {
  display: grid;
  grid-template-columns: auto 1fr auto;
  gap: 12px;
  align-items: stretch;
  margin-bottom: 16px;
}

.qty {
  display: inline-flex;
  align-items: center;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-pill);
  overflow: hidden;
  background: #fff;
}

.qty button {
  width: 48px;
  height: 56px;
  border: 0;
  background: transparent;
  font-size: 20px;
  font-weight: 600;
  color: var(--color-text);
  transition: background var(--t-fast);
}

.qty button:hover {
  background: var(--color-bg-soft);
}

.qty input {
  width: 50px;
  height: 56px;
  text-align: center;
  border: 0;
  font-size: 15px;
  font-weight: 600;
  background: transparent;
}

.qty input:focus {
  outline: none;
}

.btn--cart {
  height: 56px;
  font-size: 15px;
}

.btn--fav {
  width: 56px;
  height: 56px;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-pill);
  background: #fff;
  display: grid;
  place-items: center;
  color: var(--color-text-muted);
  transition: all var(--t-fast);
}

.btn--fav:hover {
  color: var(--color-danger);
  border-color: var(--color-danger);
}

.product-detail__perks {
  background: var(--color-bg-soft);
  border-radius: var(--radius-md);
  padding: 20px 22px;
  display: flex;
  flex-direction: column;
  gap: 12px;
  margin-top: 18px;
}

.product-detail__perk {
  display: flex;
  align-items: center;
  gap: 12px;
  font-size: 13px;
  color: var(--color-text-muted);
}

.product-detail__perk svg {
  width: 18px;
  height: 18px;
  color: var(--color-primary);
  flex-shrink: 0;
}

.product-detail__perk strong {
  color: var(--color-text);
  font-weight: 600;
}

/* Tabs */
.tabs {
  margin-top: 24px;
}

.tabs__head {
  display: flex;
  gap: 4px;
  border-bottom: 1px solid var(--color-border);
  margin-bottom: 28px;
  overflow-x: auto;
}

.tabs__btn {
  padding: 14px 18px;
  border: 0;
  background: transparent;
  font-size: 15px;
  font-weight: 600;
  color: var(--color-text-muted);
  position: relative;
  white-space: nowrap;
  transition: color var(--t-fast);
}

.tabs__btn::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: -1px;
  height: 2px;
  background: transparent;
  border-radius: 2px;
  transition: background var(--t-fast);
}

.tabs__btn.is-active {
  color: var(--color-text);
}

.tabs__btn.is-active::after {
  background: var(--color-primary);
}

.tabs__panel {
  display: none;
  font-size: 15px;
  line-height: 1.65;
  color: var(--color-text-muted);
}

.tabs__panel.is-active {
  display: block;
}

.tabs__panel p + p {
  margin-top: 14px;
}

.spec-table {
  width: 100%;
  border-collapse: collapse;
}

.spec-table tr {
  border-bottom: 1px solid var(--color-border);
}

.spec-table td {
  padding: 14px 0;
  font-size: 14px;
  vertical-align: top;
}

.spec-table td:first-child {
  width: 40%;
  color: var(--color-text-muted);
}

.spec-table td:last-child {
  color: var(--color-text);
  font-weight: 500;
}

/* ---------- 19. Modal ---------- */
.modal {
  position: fixed;
  inset: 0;
  z-index: 300;
  visibility: hidden;
  pointer-events: none;
  display: grid;
  place-items: center;
  padding: 24px;
}

.modal.is-open {
  visibility: visible;
  pointer-events: auto;
}

.modal__backdrop {
  position: absolute;
  inset: 0;
  background: rgba(15, 26, 46, 0.5);
  backdrop-filter: blur(4px);
  -webkit-backdrop-filter: blur(4px);
  opacity: 0;
  transition: opacity var(--t-base);
}

.modal.is-open .modal__backdrop {
  opacity: 1;
}

.modal__panel {
  position: relative;
  width: 100%;
  max-width: 460px;
  background: #fff;
  border-radius: var(--radius-lg);
  padding: 36px 32px 32px;
  transform: translateY(20px) scale(0.98);
  opacity: 0;
  transition: all var(--t-base);
  box-shadow: var(--shadow-lg);
}

.modal.is-open .modal__panel {
  transform: translateY(0) scale(1);
  opacity: 1;
}

.modal__close {
  position: absolute;
  top: 14px;
  right: 14px;
  width: 40px;
  height: 40px;
  border-radius: var(--radius-pill);
  background: var(--color-bg-soft);
  border: 0;
  color: var(--color-text-muted);
  display: grid;
  place-items: center;
}

.modal__close:hover {
  background: var(--color-border);
}

.modal__close svg {
  width: 16px;
  height: 16px;
}

.modal__title {
  font-size: 22px;
  font-weight: 800;
  letter-spacing: -0.02em;
  margin-bottom: 6px;
}

.modal__lead {
  font-size: 14px;
  color: var(--color-text-muted);
  margin-bottom: 22px;
}

/* ---------- 20. Forms ---------- */
.form-row {
  display: flex;
  flex-direction: column;
  gap: 6px;
  margin-bottom: 14px;
}

.form-row label {
  font-size: 13px;
  font-weight: 600;
  color: var(--color-text);
}

.form-row input,
.form-row textarea,
.form-row select {
  width: 100%;
  padding: 14px 18px;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  background: #fff;
  font-size: 15px;
  transition: border-color var(--t-fast), box-shadow var(--t-fast);
}

.form-row input:focus,
.form-row textarea:focus,
.form-row select:focus {
  outline: none;
  border-color: var(--color-primary);
  box-shadow: 0 0 0 4px rgba(42, 126, 192, 0.12);
}

.form-row textarea {
  min-height: 120px;
  resize: vertical;
  font-family: inherit;
  border-radius: var(--radius-md);
}

.form-success {
  display: none;
  padding: 14px 18px;
  border-radius: var(--radius-md);
  background: rgba(31, 154, 95, 0.1);
  color: var(--color-success);
  font-size: 14px;
  font-weight: 600;
  margin-top: 10px;
}

.form-success.is-visible {
  display: block;
}

/* ---------- 21. About / Delivery / Contacts content ---------- */
.about-grid {
  display: grid;
  grid-template-columns: 1.1fr 1fr;
  gap: 56px;
  align-items: center;
}

.about-grid p {
  font-size: 17px;
  line-height: 1.65;
  color: var(--color-text-muted);
  margin-bottom: 16px;
}

.about-grid p strong {
  color: var(--color-text);
}

.about-stats {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 16px;
  margin-top: 28px;
}

.stat {
  background: #fff;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-lg);
  padding: 22px;
}

.stat__num {
  font-size: 32px;
  font-weight: 800;
  letter-spacing: -0.02em;
  color: var(--color-primary);
  margin-bottom: 4px;
}

.stat__label {
  font-size: 13px;
  color: var(--color-text-muted);
  line-height: 1.4;
}

.about-visual {
  aspect-ratio: 4/5;
  background: linear-gradient(135deg, #d6e6f7 0%, #f0f6fc 100%);
  border-radius: var(--radius-lg);
  position: relative;
  overflow: hidden;
}

.process-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 20px;
  counter-reset: step;
}

.process-card {
  background: #fff;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-lg);
  padding: 26px;
  position: relative;
  counter-increment: step;
}

.process-card::before {
  content: counter(step, decimal-leading-zero);
  display: block;
  font-size: 13px;
  font-weight: 700;
  color: var(--color-primary);
  letter-spacing: 0.06em;
  margin-bottom: 16px;
}

.process-card h3 {
  font-size: 17px;
  font-weight: 700;
  margin-bottom: 8px;
}

.process-card p {
  font-size: 14px;
  color: var(--color-text-muted);
  line-height: 1.5;
}

/* Delivery */
.info-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 22px;
}

.info-card {
  background: #fff;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-lg);
  padding: 30px;
}

.info-card__icon {
  width: 52px;
  height: 52px;
  border-radius: var(--radius-pill);
  background: var(--color-primary-soft);
  color: var(--color-primary);
  display: grid;
  place-items: center;
  margin-bottom: 18px;
}

.info-card__icon svg {
  width: 24px;
  height: 24px;
}

.info-card h3 {
  font-size: 20px;
  font-weight: 700;
  margin-bottom: 12px;
}

.info-card ul {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.info-card li {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  font-size: 14px;
  line-height: 1.55;
  color: var(--color-text-muted);
}

.info-card li::before {
  content: "";
  width: 6px;
  height: 6px;
  margin-top: 9px;
  border-radius: 999px;
  background: var(--color-primary);
  flex-shrink: 0;
}

.info-card li strong {
  color: var(--color-text);
  font-weight: 600;
}

.notice {
  margin-top: 28px;
  padding: 24px 28px;
  background: var(--color-primary-soft);
  border-radius: var(--radius-lg);
  font-size: 15px;
  color: var(--color-text);
  line-height: 1.6;
  display: flex;
  gap: 16px;
  align-items: flex-start;
}

.notice::before {
  content: "i";
  flex-shrink: 0;
  width: 28px;
  height: 28px;
  border-radius: var(--radius-pill);
  background: var(--color-primary);
  color: #fff;
  display: grid;
  place-items: center;
  font-weight: 800;
  font-style: italic;
  font-size: 16px;
  font-family: "Manrope", serif;
}

.notice strong {
  color: var(--color-primary);
  font-weight: 700;
}

/* Contacts */
.contacts-grid {
  display: grid;
  grid-template-columns: 1fr 1.1fr;
  gap: 48px;
}

.contacts-list {
  display: flex;
  flex-direction: column;
  gap: 14px;
}

.contacts-item {
  display: flex;
  gap: 16px;
  align-items: flex-start;
  padding: 22px 24px;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-lg);
  background: #fff;
  transition: all var(--t-base);
}

.contacts-item:hover {
  border-color: var(--color-primary);
  transform: translateY(-1px);
}

.contacts-item__icon {
  width: 46px;
  height: 46px;
  border-radius: var(--radius-pill);
  background: var(--color-primary-soft);
  color: var(--color-primary);
  display: grid;
  place-items: center;
  flex-shrink: 0;
}

.contacts-item__icon svg {
  width: 20px;
  height: 20px;
}

.contacts-item h4 {
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--color-text-muted);
  margin-bottom: 6px;
}

.contacts-item p {
  font-size: 16px;
  font-weight: 600;
  color: var(--color-text);
  line-height: 1.4;
}

.contacts-item p a:hover {
  color: var(--color-primary);
}

.contacts-channels {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 10px;
  margin-top: 8px;
}

.channel-btn {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 6px;
  padding: 18px 8px;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-lg);
  background: #fff;
  font-size: 13px;
  font-weight: 600;
  color: var(--color-text);
  transition: all var(--t-base);
}

.channel-btn:hover {
  border-color: var(--color-primary);
  background: var(--color-primary-soft);
  color: var(--color-primary);
}

.channel-btn svg {
  width: 22px;
  height: 22px;
}

.map-placeholder {
  aspect-ratio: 16/11;
  background: var(--color-bg-tint);
  border-radius: var(--radius-lg);
  border: 1px solid var(--color-border);
  position: relative;
  margin-top: 20px;
  overflow: hidden;
}

.contacts-form {
  background: #fff;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-lg);
  padding: 34px;
}

.contacts-form h3 {
  font-size: 22px;
  font-weight: 700;
  margin-bottom: 8px;
}

.contacts-form p {
  font-size: 14px;
  color: var(--color-text-muted);
  margin-bottom: 22px;
}

/* Courses */
.tags-row {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: 32px;
}

.tag-chip {
  padding: 9px 16px;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-pill);
  background: #fff;
  font-size: 13px;
  font-weight: 600;
  color: var(--color-text);
  transition: all var(--t-fast);
}

.tag-chip:hover {
  border-color: var(--color-primary);
  color: var(--color-primary);
}

.tag-chip.is-active {
  background: var(--color-text);
  color: #fff;
  border-color: var(--color-text);
}

/* ---------- 22. Fade-up animation on scroll ---------- */
.fade-up {
  opacity: 0;
  transform: translateY(16px);
  transition: opacity 600ms ease, transform 600ms ease;
}

.fade-up.is-visible {
  opacity: 1;
  transform: translateY(0);
}

/* ---------- 23. Responsive ---------- */
@media (max-width: 1200px) {
  .header__top-left span:nth-child(3),
  .header__top-left .header__top-divider {
    display: none;
  }
  .logo__text small {
    display: none;
  }
}

@media (max-width: 1024px) {
  .header__top {
    display: none;
  }
  .header__main {
    height: 76px;
    gap: 10px;
  }
  .action-pill span:not(.action-pill__count):not(.action-pill__total) {
    display: none;
  }
  .action-pill__total {
    display: none;
  }
  .action-pill {
    width: 52px;
    padding: 0;
    justify-content: center;
  }
  .burger {
    display: grid;
  }
  .catalog-cta {
    padding: 14px 16px;
  }

  .hero__inner {
    grid-template-columns: 1fr;
    gap: 40px;
    padding: 40px 32px;
  }
  .hero__visual {
    aspect-ratio: 4/3;
    max-width: 560px;
  }

  .mega {
    width: calc(100vw - 32px);
    left: -16px;
  }
  .mega__grid {
    grid-template-columns: repeat(3, 1fr);
  }

  .promo-strip {
    grid-template-columns: 1fr 1fr;
  }
  .promo-card--primary {
    grid-column: span 2;
  }

  .cat-grid,
  .product-grid,
  .course-grid {
    grid-template-columns: repeat(3, 1fr);
  }
  .why-grid {
    grid-template-columns: repeat(3, 1fr);
  }
  .brand-row {
    grid-template-columns: repeat(3, 1fr);
  }

  .catalog-layout {
    grid-template-columns: 1fr;
  }
  .banner-stack {
    flex-direction: row;
    overflow-x: auto;
    position: static;
  }
  .banner-stack .banner-card {
    min-width: 280px;
    flex-shrink: 0;
  }
  .catalog-grid {
    grid-template-columns: repeat(3, 1fr);
  }

  .product-layout {
    grid-template-columns: 1fr;
    gap: 36px;
  }
  .gallery__main {
    max-width: 560px;
  }
  .gallery__thumbs {
    max-width: 560px;
    grid-template-columns: repeat(6, 1fr);
  }

  .about-grid,
  .contacts-grid {
    grid-template-columns: 1fr;
    gap: 36px;
  }

  .process-grid {
    grid-template-columns: repeat(2, 1fr);
  }

  .footer__grid {
    grid-template-columns: 1fr 1fr;
    gap: 36px;
  }
}

@media (max-width: 720px) {
  .section {
    padding: 56px 0;
  }
  .container {
    padding: 0 16px;
  }

  .header__main {
    gap: 8px;
    height: 68px;
  }
  .logo {
    font-size: 18px;
  }
  .logo__mark {
    width: 38px;
    height: 38px;
    font-size: 15px;
  }
  .header__search {
    display: none;
  }
  .catalog-cta {
    width: 44px;
    height: 44px;
    padding: 0;
    justify-content: center;
  }
  .catalog-cta span,
  .catalog-cta {
    font-size: 0;
  }
  .catalog-cta svg {
    width: 20px;
    height: 20px;
  }
  .action-pill,
  .action-pill--cart {
    width: 44px;
    height: 44px;
  }
  .burger {
    width: 44px;
    height: 44px;
  }

  .hero {
    padding: 28px 0 56px;
  }
  .hero__inner {
    padding: 32px 24px;
    border-radius: var(--radius-lg);
  }
  .hero__perks {
    grid-template-columns: 1fr;
    gap: 14px;
  }
  .hero__chip {
    padding: 10px 14px 10px 8px;
  }
  .hero__chip--tl {
    left: 12px;
    top: 12px;
  }
  .hero__chip--br {
    right: 12px;
    bottom: 12px;
  }

  .promo-strip {
    grid-template-columns: 1fr;
  }
  .promo-card--primary {
    grid-column: span 1;
  }
  .promo-card {
    min-height: 160px;
    padding: 24px;
  }

  .cat-grid,
  .product-grid,
  .course-grid {
    grid-template-columns: repeat(2, 1fr);
    gap: 14px;
  }

  .product-card__body {
    padding: 6px 14px 16px;
  }
  .product-card__price {
    font-size: 17px;
  }
  .product-card__cart {
    width: 38px;
    height: 38px;
  }

  .why-grid {
    grid-template-columns: repeat(2, 1fr);
  }

  .brand-row {
    grid-template-columns: repeat(2, 1fr);
  }

  .catalog-grid {
    grid-template-columns: repeat(2, 1fr);
    gap: 14px;
  }
  .catalog-grid.is-list .product-card {
    grid-template-columns: 1fr;
  }

  .gallery__thumbs {
    grid-template-columns: repeat(5, 1fr);
  }

  .product-detail__price {
    font-size: 32px;
  }
  .cart-row {
    grid-template-columns: auto 1fr;
  }
  .btn--fav {
    grid-column: span 2;
  }

  .process-grid {
    grid-template-columns: 1fr;
  }

  .footer {
    padding: 56px 0 0;
  }
  .footer__grid {
    grid-template-columns: 1fr;
    gap: 32px;
    padding-bottom: 40px;
  }
  .footer__bottom {
    justify-content: flex-start;
    flex-direction: column;
    align-items: flex-start;
  }
}

@media (max-width: 480px) {
  .section-head {
    align-items: flex-start;
  }
  .hero__title {
    font-size: 32px;
  }
  .hero__lead {
    font-size: 16px;
  }
  .why-grid {
    grid-template-columns: 1fr;
  }
}

/* ---------- 18. Service banner ---------- */
.service-banner {
  display: grid;
  grid-template-columns: 1.05fr 1fr;
  gap: 48px;
  align-items: center;
  padding: 56px;
  background: var(--color-text);
  color: #e8edf5;
  border-radius: var(--radius-xl);
  position: relative;
  overflow: hidden;
}

.service-banner::before {
  content: "";
  position: absolute;
  width: 480px;
  height: 480px;
  right: -120px;
  top: -180px;
  background: radial-gradient(circle, rgba(42, 126, 192, 0.32), transparent 70%);
  pointer-events: none;
}

.service-banner__main {
  position: relative;
  z-index: 1;
}

.service-banner__main .eyebrow {
  color: var(--color-accent);
}

.service-banner__title {
  font-size: 38px;
  font-weight: 800;
  line-height: 1.15;
  color: #fff;
  margin: 14px 0 16px;
  letter-spacing: -0.01em;
  text-wrap: balance;
}

.service-banner__lead {
  font-size: 16px;
  line-height: 1.65;
  color: #b9c3d4;
  max-width: 520px;
  margin-bottom: 28px;
}

.service-banner__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
}

.service-banner__actions .btn--ghost {
  background: rgba(255, 255, 255, 0.06);
  color: #fff;
  border: 1px solid rgba(255, 255, 255, 0.16);
}

.service-banner__actions .btn--ghost:hover {
  background: rgba(255, 255, 255, 0.12);
}

.service-banner__list {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 18px;
  position: relative;
  z-index: 1;
}

.service-banner__list li {
  display: flex;
  align-items: flex-start;
  gap: 14px;
  padding: 20px;
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(255, 255, 255, 0.07);
  border-radius: var(--radius-md);
}

.service-banner__icon {
  width: 40px;
  height: 40px;
  border-radius: 12px;
  background: rgba(42, 126, 192, 0.16);
  color: #7cb6e8;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.service-banner__icon svg {
  width: 20px;
  height: 20px;
}

.service-banner__list strong {
  display: block;
  color: #fff;
  font-size: 15px;
  font-weight: 600;
  margin-bottom: 4px;
}

.service-banner__list span {
  display: block;
  font-size: 13px;
  color: #8a95a8;
  line-height: 1.45;
}

@media (max-width: 960px) {
  .service-banner {
    grid-template-columns: 1fr;
    padding: 40px 28px;
    gap: 36px;
  }
  .service-banner__title {
    font-size: 30px;
  }
}

@media (max-width: 560px) {
  .service-banner__list {
    grid-template-columns: 1fr;
  }
}

/* ---------- 19. Admin course block ---------- */
.admin-course {
  display: grid;
  grid-template-columns: 1.1fr 1fr;
  gap: 56px;
  align-items: center;
}

.admin-course__body {
  max-width: 560px;
}

.admin-course__title {
  font-size: 34px;
  font-weight: 800;
  line-height: 1.18;
  letter-spacing: -0.01em;
  margin: 14px 0 16px;
  text-wrap: balance;
}

.admin-course__lead {
  font-size: 16px;
  line-height: 1.65;
  color: var(--color-text-muted);
  margin-bottom: 22px;
}

.admin-course__points {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px 28px;
  margin-bottom: 28px;
}

.admin-course__points li {
  position: relative;
  padding-left: 26px;
  font-size: 14px;
  color: var(--color-text);
}

.admin-course__points li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 6px;
  width: 16px;
  height: 16px;
  border-radius: 50%;
  background: var(--color-primary-soft);
  border: 2px solid var(--color-primary);
}

.admin-course__points li::after {
  content: "";
  position: absolute;
  left: 5px;
  top: 11px;
  width: 6px;
  height: 3px;
  border-left: 2px solid var(--color-primary);
  border-bottom: 2px solid var(--color-primary);
  transform: rotate(-45deg);
}

.admin-course__visual {
  display: grid;
  gap: 16px;
}

.admin-course__card {
  background: #fff;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  padding: 22px 24px;
  box-shadow: var(--shadow-sm);
  position: relative;
}

.admin-course__card--alt {
  margin-left: 48px;
  background: var(--color-text);
  color: #fff;
  border-color: transparent;
}

.admin-course__card--alt .admin-course__card-eyebrow {
  color: var(--color-accent);
}

.admin-course__card--alt span {
  color: #b9c3d4;
}

.admin-course__card-eyebrow {
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--color-primary);
  margin-bottom: 8px;
}

.admin-course__card strong {
  display: block;
  font-size: 18px;
  font-weight: 700;
  margin-bottom: 4px;
}

.admin-course__card span {
  display: block;
  font-size: 13px;
  color: var(--color-text-muted);
}

@media (max-width: 960px) {
  .admin-course {
    grid-template-columns: 1fr;
    gap: 36px;
  }
  .admin-course__card--alt {
    margin-left: 0;
  }
  .admin-course__title {
    font-size: 28px;
  }
}

@media (max-width: 560px) {
  .admin-course__points {
    grid-template-columns: 1fr;
  }
}

/* ---------- 20. Suture banner ---------- */
.suture-banner {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 32px;
  align-items: center;
  padding: 48px 56px;
  background: linear-gradient(135deg, #eef9f3, #e6f5ee);
  border-radius: var(--radius-xl);
  position: relative;
  overflow: hidden;
}

.suture-banner__visual {
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
}

.suture-banner__visual svg {
  width: 100%;
  max-width: 380px;
  height: auto;
}

.suture-banner__title {
  font-size: 40px;
  font-weight: 800;
  line-height: 1.1;
  letter-spacing: -0.02em;
  margin: 12px 0 14px;
  color: var(--color-text);
  text-wrap: balance;
}

.suture-banner__lead {
  font-size: 16px;
  line-height: 1.6;
  color: var(--color-text-muted);
  max-width: 440px;
  margin-bottom: 24px;
}

@media (max-width: 860px) {
  .suture-banner {
    grid-template-columns: 1fr;
    padding: 36px 24px;
    gap: 16px;
  }
  .suture-banner__visual {
    order: -1;
  }
  .suture-banner__title {
    font-size: 30px;
  }
}

/* ---------- 20. Reviews ---------- */
.review-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
}

.review-card {
  display: flex;
  flex-direction: column;
  gap: 18px;
  background: #fff;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-lg);
  padding: 28px;
  transition: border-color var(--t-base), transform var(--t-base), box-shadow var(--t-base);
}

.review-card:hover {
  border-color: var(--color-border-strong);
  transform: translateY(-2px);
  box-shadow: var(--shadow-md);
}

.review-card__stars {
  display: flex;
  gap: 2px;
  color: #f5a623;
}

.review-card__stars svg {
  width: 18px;
  height: 18px;
}

.review-card__quote {
  font-size: 15px;
  line-height: 1.65;
  color: var(--color-text);
  margin: 0;
  flex: 1;
}

.review-card__author {
  display: flex;
  align-items: center;
  gap: 13px;
  padding-top: 18px;
  border-top: 1px solid var(--color-border);
}

.review-card__avatar {
  width: 46px;
  height: 46px;
  flex-shrink: 0;
  border-radius: var(--radius-pill);
  background: var(--color-primary-soft);
  color: var(--color-primary);
  display: grid;
  place-items: center;
  font-weight: 700;
  font-size: 16px;
}

.review-card__name {
  font-weight: 700;
  font-size: 15px;
  color: var(--color-text);
}

.review-card__role {
  font-size: 13px;
  color: var(--color-text-muted);
  margin-top: 1px;
}

/* Reviews horizontal rail */
.review-rail {
  display: flex;
  gap: 24px;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  scroll-behavior: smooth;
  padding: 4px 2px 14px;
  margin: 0 -2px;
  -ms-overflow-style: none;
  scrollbar-width: none;
}

.review-rail::-webkit-scrollbar {
  display: none;
}

.review-rail .review-card {
  flex: 0 0 380px;
  scroll-snap-align: start;
}

.review-nav {
  display: flex;
  gap: 10px;
  align-self: flex-end;
}

.review-nav button {
  width: 46px;
  height: 46px;
  border-radius: var(--radius-pill);
  border: 1px solid var(--color-border-strong);
  background: #fff;
  color: var(--color-text);
  display: grid;
  place-items: center;
  cursor: pointer;
  transition: all var(--t-fast);
}

.review-nav button:hover:not(:disabled) {
  background: var(--color-primary);
  border-color: var(--color-primary);
  color: #fff;
}

.review-nav button:disabled {
  opacity: 0.38;
  cursor: default;
}

.review-nav button svg {
  width: 20px;
  height: 20px;
}

@media (max-width: 560px) {
  .review-rail .review-card {
    flex-basis: 86%;
  }
}

/* ---------- 21. Blog cards ---------- */
.blog-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 26px;
}

.blog-card {
  display: flex;
  flex-direction: column;
  background: #fff;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-lg);
  overflow: hidden;
  transition: border-color var(--t-base), transform var(--t-base), box-shadow var(--t-base);
}

.blog-card:hover {
  border-color: var(--color-border-strong);
  transform: translateY(-3px);
  box-shadow: var(--shadow-lg);
}

.blog-card:hover .blog-card__title a {
  color: var(--color-primary);
}

.blog-card__media {
  position: relative;
  aspect-ratio: 16 / 10;
  background: var(--color-bg-soft);
  background-image: repeating-linear-gradient(
    45deg,
    rgba(42, 126, 192, 0.05),
    rgba(42, 126, 192, 0.05) 8px,
    transparent 8px,
    transparent 16px
  );
  display: grid;
  place-items: center;
  overflow: hidden;
}

.blog-card__media span {
  font-family: ui-monospace, "SF Mono", Menlo, monospace;
  font-size: 11px;
  letter-spacing: 0.04em;
  color: var(--color-text-soft);
}

.blog-card__media img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.blog-card__cat {
  position: absolute;
  top: 14px;
  left: 14px;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  padding: 5px 12px;
  border-radius: var(--radius-pill);
  background: #fff;
  color: var(--color-primary);
  box-shadow: var(--shadow-sm);
}

.blog-card__body {
  display: flex;
  flex-direction: column;
  gap: 10px;
  padding: 22px 24px 24px;
  flex: 1;
}

.blog-card__date {
  font-size: 13px;
  color: var(--color-text-soft);
  display: flex;
  align-items: center;
  gap: 7px;
}

.blog-card__date svg {
  width: 14px;
  height: 14px;
}

.blog-card__title {
  font-size: 18px;
  font-weight: 700;
  line-height: 1.35;
  letter-spacing: -0.01em;
  margin: 0;
  text-wrap: balance;
}

.blog-card__title a {
  color: var(--color-text);
  transition: color var(--t-fast);
}

.blog-card__excerpt {
  font-size: 14px;
  line-height: 1.6;
  color: var(--color-text-muted);
  margin: 0;
}

.blog-card__more {
  margin-top: auto;
  padding-top: 6px;
  font-size: 14px;
  font-weight: 600;
  color: var(--color-primary);
  display: inline-flex;
  align-items: center;
  gap: 7px;
  transition: gap var(--t-fast);
}

.blog-card__more svg {
  width: 15px;
  height: 15px;
}

.blog-card:hover .blog-card__more {
  gap: 11px;
}

.section-cta {
  display: flex;
  justify-content: center;
  margin-top: 44px;
}

/* ---------- 22. Blog listing page ---------- */
.blog-featured {
  display: grid;
  grid-template-columns: 1.15fr 1fr;
  gap: 0;
  background: #fff;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-lg);
  overflow: hidden;
  margin-bottom: 48px;
}

.blog-featured__media {
  position: relative;
  min-height: 340px;
  background: var(--color-bg-soft);
  background-image: repeating-linear-gradient(
    45deg,
    rgba(42, 126, 192, 0.05),
    rgba(42, 126, 192, 0.05) 8px,
    transparent 8px,
    transparent 16px
  );
  display: grid;
  place-items: center;
}

.blog-featured__media span {
  font-family: ui-monospace, "SF Mono", Menlo, monospace;
  font-size: 12px;
  color: var(--color-text-soft);
}

.blog-featured__body {
  padding: 44px 44px;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 16px;
}

.blog-featured__cat {
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  padding: 6px 13px;
  border-radius: var(--radius-pill);
  background: var(--color-primary-soft);
  color: var(--color-primary);
}

.blog-featured__title {
  font-size: clamp(24px, 2.4vw, 32px);
  font-weight: 800;
  line-height: 1.2;
  letter-spacing: -0.02em;
  color: var(--color-text);
  text-wrap: balance;
}

.blog-featured__excerpt {
  font-size: 15px;
  line-height: 1.65;
  color: var(--color-text-muted);
}

.blog-featured__meta {
  font-size: 13px;
  color: var(--color-text-soft);
  margin-top: auto;
}

.blog-filter {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-bottom: 34px;
}

.blog-filter button {
  padding: 9px 18px;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-pill);
  background: #fff;
  font-size: 14px;
  font-weight: 600;
  color: var(--color-text-muted);
  cursor: pointer;
  transition: all var(--t-fast);
}

.blog-filter button:hover {
  border-color: var(--color-primary);
  color: var(--color-primary);
}

.blog-filter button.is-active {
  background: var(--color-primary);
  border-color: var(--color-primary);
  color: #fff;
}

.pagination {
  display: flex;
  justify-content: center;
  gap: 8px;
  margin-top: 48px;
}

.pagination a {
  min-width: 42px;
  height: 42px;
  padding: 0 12px;
  display: grid;
  place-items: center;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  background: #fff;
  font-size: 14px;
  font-weight: 600;
  color: var(--color-text-muted);
  transition: all var(--t-fast);
}

.pagination a:hover {
  border-color: var(--color-primary);
  color: var(--color-primary);
}

.pagination a.is-active {
  background: var(--color-primary);
  border-color: var(--color-primary);
  color: #fff;
}

/* ---------- 23. Article page ---------- */
.article {
  max-width: 760px;
  margin: 0 auto;
}

.article__cover {
  position: relative;
  aspect-ratio: 16 / 8;
  border-radius: var(--radius-lg);
  background: var(--color-bg-soft);
  background-image: repeating-linear-gradient(
    45deg,
    rgba(42, 126, 192, 0.05),
    rgba(42, 126, 192, 0.05) 8px,
    transparent 8px,
    transparent 16px
  );
  display: grid;
  place-items: center;
  margin-bottom: 40px;
  overflow: hidden;
}

.article__cover span {
  font-family: ui-monospace, "SF Mono", Menlo, monospace;
  font-size: 12px;
  color: var(--color-text-soft);
}

.article__meta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px 18px;
  font-size: 14px;
  color: var(--color-text-soft);
}

.article__meta .blog-featured__cat {
  background: var(--color-primary-soft);
}

.article__meta-item {
  display: inline-flex;
  align-items: center;
  gap: 7px;
}

.article__meta-item svg {
  width: 15px;
  height: 15px;
}

.prose {
  font-size: 16.5px;
  line-height: 1.75;
  color: #36404f;
}

.prose > * + * {
  margin-top: 22px;
}

.prose h2 {
  font-size: 26px;
  font-weight: 800;
  line-height: 1.25;
  letter-spacing: -0.01em;
  color: var(--color-text);
  margin-top: 44px;
  margin-bottom: 4px;
}

.prose h3 {
  font-size: 20px;
  font-weight: 700;
  color: var(--color-text);
  margin-top: 32px;
}

.prose p {
  margin: 0;
}

.prose strong {
  color: var(--color-text);
  font-weight: 700;
}

.prose ul,
.prose ol {
  padding-left: 22px;
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.prose li::marker {
  color: var(--color-primary);
}

.prose blockquote {
  margin: 30px 0;
  padding: 22px 26px;
  border-left: 3px solid var(--color-primary);
  background: var(--color-bg-soft);
  border-radius: 0 var(--radius-md) var(--radius-md) 0;
  font-size: 18px;
  line-height: 1.6;
  color: var(--color-text);
  font-weight: 500;
}

.prose figure {
  margin: 32px 0;
}

.prose figure .blog-card__media {
  aspect-ratio: 16 / 9;
  border-radius: var(--radius-md);
}

.prose figcaption {
  margin-top: 10px;
  font-size: 13px;
  color: var(--color-text-soft);
  text-align: center;
}

.article__share {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-top: 48px;
  padding-top: 28px;
  border-top: 1px solid var(--color-border);
}

.article__share-label {
  font-size: 14px;
  font-weight: 600;
  color: var(--color-text-muted);
}

.article__share a {
  width: 40px;
  height: 40px;
  display: grid;
  place-items: center;
  border-radius: var(--radius-pill);
  background: #fff;
  border: 1px solid var(--color-border);
  color: var(--color-text-muted);
  transition: all var(--t-fast);
}

.article__share a:hover {
  background: var(--color-primary);
  border-color: var(--color-primary);
  color: #fff;
}

.article__share svg {
  width: 16px;
  height: 16px;
}

@media (max-width: 920px) {
  .review-grid,
  .blog-grid {
    grid-template-columns: repeat(2, 1fr);
  }
  .blog-featured {
    grid-template-columns: 1fr;
  }
  .blog-featured__media {
    min-height: 240px;
  }
}

@media (max-width: 620px) {
  .review-grid,
  .blog-grid {
    grid-template-columns: 1fr;
  }
  .blog-featured__body {
    padding: 28px 24px;
  }
}

/* ---------- 24. About text panels + category grid ---------- */
.about-panel {
  border-radius: var(--radius-lg);
  padding: 40px 44px;
  margin-bottom: 28px;
}

.about-panel:last-of-type {
  margin-bottom: 0;
}

.about-panel--blue {
  background: var(--color-primary-soft);
}

.about-panel--cream {
  background: #fdf6e6;
}

.about-panel p {
  font-size: 16px;
  line-height: 1.7;
  color: #36404f;
  margin: 0;
}

.about-panel p + p {
  margin-top: 18px;
}

.about-panel strong {
  color: var(--color-text);
  font-weight: 700;
}

.cat-row {
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  gap: 22px;
}

.cat-tile {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 14px;
  text-align: center;
}

.cat-tile__thumb {
  width: 100%;
  aspect-ratio: 1 / 1;
  border-radius: var(--radius-pill);
  background: var(--color-bg-soft);
  background-image: repeating-linear-gradient(
    45deg,
    rgba(42, 126, 192, 0.05),
    rgba(42, 126, 192, 0.05) 8px,
    transparent 8px,
    transparent 16px
  );
  display: grid;
  place-items: center;
  overflow: hidden;
  transition: transform var(--t-base), box-shadow var(--t-base);
}

.cat-tile__thumb span {
  font-family: ui-monospace, "SF Mono", Menlo, monospace;
  font-size: 10px;
  letter-spacing: 0.03em;
  color: var(--color-text-soft);
  padding: 0 8px;
}

.cat-tile__thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.cat-tile:hover .cat-tile__thumb {
  transform: translateY(-4px);
  box-shadow: var(--shadow-md);
}

.cat-tile__label {
  font-size: 14px;
  font-weight: 600;
  line-height: 1.35;
  color: var(--color-text);
  text-wrap: balance;
  transition: color var(--t-fast);
}

.cat-tile:hover .cat-tile__label {
  color: var(--color-primary);
}

@media (max-width: 1080px) {
  .cat-row {
    grid-template-columns: repeat(3, 1fr);
    gap: 28px;
  }
}

@media (max-width: 860px) {
  .about-panel {
    padding: 30px 26px;
  }
}

@media (max-width: 560px) {
  .cat-row {
    grid-template-columns: repeat(2, 1fr);
  }
}

/* ---------- 25. Payment / delivery panels ---------- */
.pay-panel {
  border-radius: var(--radius-lg);
  padding: 40px 44px;
  margin-bottom: 28px;
  text-align: center;
}

.pay-panel--blue {
  background: var(--color-primary-soft);
}

.pay-panel--cream {
  background: #fdf6e6;
}

.pay-panel--white {
  background: #fff;
  border: 1px solid var(--color-border);
}

.pay-panel__title {
  font-size: 28px;
  font-weight: 800;
  letter-spacing: -0.01em;
  color: var(--color-text);
  margin: 0 0 22px;
}

.pay-panel p {
  font-size: 16px;
  line-height: 1.7;
  color: #36404f;
  margin: 0;
}

.pay-panel p + p {
  margin-top: 18px;
}

.pay-panel strong {
  color: var(--color-text);
  font-weight: 700;
}

.pay-lines {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.pay-lines li {
  font-size: 16px;
  line-height: 1.6;
  color: #36404f;
}

.pay-group + .pay-group {
  margin-top: 22px;
}

.pay-novaposhta {
  font-size: 30px;
  font-weight: 800;
  letter-spacing: 0.02em;
  color: #da291c;
  margin: 22px 0;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
}

.pay-novaposhta__mark {
  width: 38px;
  height: 38px;
  border-radius: var(--radius-pill);
  background: #da291c;
  color: #fff;
  display: grid;
  place-items: center;
}

.pay-novaposhta__mark svg {
  width: 22px;
  height: 22px;
}

.pay-check {
  width: 64px;
  height: 64px;
  border-radius: var(--radius-pill);
  background: var(--color-success, #2fae5f);
  color: #fff;
  display: grid;
  place-items: center;
  margin: 0 auto 26px;
  box-shadow: 0 8px 20px rgba(47, 174, 95, 0.28);
}

.pay-check svg {
  width: 34px;
  height: 34px;
}

.pay-phones {
  display: flex;
  flex-direction: column;
  gap: 14px;
  align-items: center;
  margin-top: 22px;
}

.pay-phones a {
  font-size: 26px;
  font-weight: 800;
  color: var(--color-primary);
  letter-spacing: -0.01em;
}

.pay-phones a:hover {
  color: var(--color-primary-hover);
}

@media (max-width: 860px) {
  .pay-panel {
    padding: 30px 22px;
  }
  .pay-panel__title {
    font-size: 23px;
  }
  .pay-phones a {
    font-size: 22px;
  }
}

/* v1.0.18 catalog submenu fixes */

.mega-cat__links .is-extra {
  display: none;
}
.mega-cat.is-expanded .mega-cat__links .is-extra {
  display: block;
}
.mega-cat__more {
  border: 0;
  background: transparent;
  cursor: pointer;
  padding: 3px 4px;
}
.mega-cat.is-expanded .mega-cat__more svg {
  transform: rotate(180deg);
}
.m-catalog-group {
  display: grid;
  gap: 6px;
}
.m-catalog-sublinks {
  display: grid;
  gap: 6px;
  padding: 0 0 8px 52px;
}
.m-catalog-sublinks a {
  color: var(--color-text-muted);
  font-size: 13px;
  text-decoration: none;
  line-height: 1.35;
}
.m-catalog-sublinks a:hover {
  color: var(--color-primary);
}

/* AllDent v1.0.19: product cards should match old site — no long descriptions in cards. */
.product-card__meta{display:none!important;}

/* v1.0.20: product cards should be clean like old AllDent cards */
.product-card__meta,
.woocommerce-loop-product__description,
ul.products li.product .woocommerce-loop-product__description,
ul.products li.product .short-description,
ul.products li.product .product-card__meta {
  display: none !important;
}
.product-card__body > p:not(.price) {
  display: none !important;
}


/* AllDent v1.0.24 — category content + old InSales image fix */
.ad-cat-content-section {
  padding: 36px 0 64px;
}

.ad-cat-content {
  margin-top: 28px;
  background: #fff;
  border: 1px solid var(--color-border);
  border-radius: 28px;
  padding: 28px;
}

.ad-cat-content__grid {
  display: grid;
  grid-template-columns: minmax(0, 0.95fr) minmax(0, 1.05fr);
  gap: 32px;
  align-items: start;
}

.ad-cat-content__grid--single {
  grid-template-columns: 1fr;
}

.ad-cat-content__image img {
  display: block;
  width: 100%;
  max-width: 100%;
  height: auto !important;
  border-radius: 20px;
  object-fit: contain;
  background: #fff;
}

.ad-cat-content__body {
  font-size: 15px;
  line-height: 1.7;
  color: var(--color-text-muted);
}

.ad-cat-content__body h2,
.ad-cat-content__body h3,
.ad-cat-content__body h4 {
  color: var(--color-text);
  margin: 0 0 16px;
  line-height: 1.25;
}

.ad-cat-content__body p {
  margin: 0;
}

.ad-cat-content__body p + p {
  margin-top: 14px;
}

.ad-cat-content__body ul,
.ad-cat-content__body ol,
.tabs__panel ul,
.tabs__panel ol {
  margin: 14px 0;
  padding-left: 22px;
  list-style: revert;
}

.ad-cat-content__body img,
.tabs__panel img,
.woocommerce-Tabs-panel img {
  display: block;
  max-width: 100% !important;
  width: auto !important;
  height: auto !important;
  margin: 0 auto 18px;
  border-radius: 16px;
}

.ad-cat-content__body table,
.tabs__panel table,
.woocommerce-Tabs-panel table {
  width: 100%;
  max-width: 100%;
  display: block;
  overflow-x: auto;
  border-collapse: collapse;
}

.ad-cat-content__body iframe,
.tabs__panel iframe,
.woocommerce-Tabs-panel iframe {
  max-width: 100%;
}

.tabs__panel,
.woocommerce-Tabs-panel {
  overflow-wrap: anywhere;
}

@media (max-width: 991px) {
  .ad-cat-content {
    padding: 20px;
    border-radius: 20px;
  }

  .ad-cat-content__grid {
    grid-template-columns: 1fr;
    gap: 20px;
  }
}


.product-detail__short-description {
  margin: 18px 0 18px;
  padding: 18px 20px;
  border-radius: 18px;
  background: #fff7dc;
  color: var(--color-text);
  font-size: 14px;
  line-height: 1.55;
}

.product-detail__short-description p {
  margin: 0;
}

.product-detail__short-description p + p,
.product-detail__short-description ul + p,
.product-detail__short-description p + ul {
  margin-top: 10px;
}

.product-detail__short-description ul,
.product-detail__short-description ol {
  margin: 10px 0 0;
  padding-left: 20px;
  list-style: revert;
}

.product-detail__short-description li + li {
  margin-top: 4px;
}

.product-detail__short-description strong {
  font-weight: 800;
}

.product-detail__short-description img {
  display: block;
  max-width: 100% !important;
  width: auto !important;
  height: auto !important;
  margin: 10px auto;
}

.product-detail__short-description .Box1,
.product-detail__short-description .Box2,
.product-detail__short-description .Box3,
.product-detail__short-description .Box {
  margin: 0;
  padding: 0;
  background: transparent;
  border: 0;
}

@media (max-width: 767px) {
  .product-detail__short-description {
    margin: 14px 0 16px;
    padding: 15px 16px;
    border-radius: 16px;
    font-size: 13px;
  }
}


/* AllDent v1.0.26 — category bottom blocks, product description cards and product reviews */
.ad-description-content {
  max-width: 980px;
  color: var(--color-text-muted);
}

.ad-description-content > p,
.ad-description-content > ul,
.ad-description-content > ol,
.ad-description-content > blockquote,
.ad-description-content > div:not(.ad-info-card),
.ad-description-content .Box1,
.ad-description-content .Box2,
.ad-description-content .Box3,
.ad-description-content .Box4,
.ad-description-content .Box,
.ad-cat-content__body > p,
.ad-cat-content__body > ul,
.ad-cat-content__body > ol,
.ad-cat-content__body > div,
.ad-info-card {
  background: #fff;
  border: 1px solid var(--color-border);
  border-radius: 22px;
  padding: 24px 28px;
  box-shadow: 0 14px 34px rgba(20, 41, 72, 0.06);
}

.ad-description-content > * + *,
.ad-cat-content__body > * + * {
  margin-top: 18px !important;
}

.ad-description-content h2,
.ad-description-content h3,
.ad-description-content h4,
.ad-cat-content__body h2,
.ad-cat-content__body h3,
.ad-cat-content__body h4 {
  color: var(--color-text);
  font-weight: 800;
}

.ad-description-content strong,
.ad-cat-content__body strong {
  color: var(--color-text);
  font-weight: 800;
}

.ad-description-content a,
.ad-cat-content__body a {
  color: var(--color-primary);
  text-decoration: underline;
  text-underline-offset: 3px;
}

.ad-description-content img,
.ad-cat-content__body img {
  display: block;
  max-width: 100% !important;
  width: auto !important;
  height: auto !important;
  margin: 0 auto 18px !important;
  border-radius: 18px;
}

.ad-description-content > p:has(> img),
.ad-cat-content__body > p:has(> img) {
  padding: 0;
  border: 0;
  box-shadow: none;
  background: transparent;
}

.ad-description-content > p:has(> img) img,
.ad-cat-content__body > p:has(> img) img {
/*   width: 100% !important; */
  border-radius: 22px;
  box-shadow: 0 14px 34px rgba(20, 41, 72, 0.06);
}

.product-detail__short-description {
  background: transparent;
  padding: 0;
  border-radius: 0;
}

.product-detail__short-description > div,
.product-detail__short-description > p,
.product-detail__short-description > ul,
.product-detail__short-description > ol {
  padding: 18px 22px;
  border-radius: 18px;
  background: #eef6ff;
}

.product-detail__short-description .Box1,
.product-detail__short-description .Box2,
.product-detail__short-description .Box3,
.product-detail__short-description .Box {
  padding: 18px 22px;
  border-radius: 18px;
  background: #fff7dc;
}

.ad-cat-links-panel {
  display: grid;
  gap: 16px;
  margin-top: 18px;
}

.ad-cat-link-pill {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 18px 26px;
  border-radius: 999px;
  background: #eef6ff;
  color: var(--color-primary);
  font-weight: 600;
  text-decoration: underline;
  text-underline-offset: 3px;
}

.ad-cat-link-pill span {
  color: #f42b7f;
  font-size: 22px;
  line-height: 1;
}

.ad-tab-count {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 20px;
  height: 20px;
  margin-left: 6px;
  padding: 0 6px;
  border-radius: 999px;
  background: var(--color-primary);
  color: #fff;
  font-size: 12px;
  font-weight: 800;
}

.ad-product-reviews,
.ad-product-reviews #reviews,
.ad-product-reviews #comments,
.ad-product-reviews #review_form_wrapper {
  max-width: 980px;
}

.ad-product-reviews #reviews {
  display: grid;
  gap: 22px;
}

.ad-product-reviews #comments,
.ad-product-reviews #review_form_wrapper {
  background: #fff;
  border: 1px solid var(--color-border);
  border-radius: 24px;
  padding: 26px;
  box-shadow: 0 14px 34px rgba(20, 41, 72, 0.06);
}

.ad-product-reviews .woocommerce-Reviews-title,
.ad-product-reviews #reply-title {
  display: block;
  margin: 0 0 16px;
  color: var(--color-text);
  font-size: 22px;
  font-weight: 800;
}

.ad-product-reviews .commentlist {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 14px;
}

.ad-product-reviews .comment_container {
  padding: 18px;
  border-radius: 18px;
  background: #f7faff;
}

.ad-product-reviews .comment-text {
  color: var(--color-text-muted);
  font-size: 14px;
  line-height: 1.6;
}

.ad-product-reviews .meta {
  margin: 0 0 8px;
  color: var(--color-text);
  font-weight: 700;
}

.ad-product-reviews .star-rating,
.ad-product-reviews .stars {
  color: #f4a41c;
}

.ad-product-reviews .comment-form {
  display: grid;
  gap: 14px;
}

.ad-product-reviews .comment-form label {
  display: block;
  margin-bottom: 6px;
  font-weight: 700;
  color: var(--color-text);
}

.ad-product-reviews .comment-form input[type="text"],
.ad-product-reviews .comment-form input[type="email"],
.ad-product-reviews .comment-form textarea,
.ad-product-reviews .comment-form select {
  width: 100%;
  border: 1px solid var(--color-border);
  border-radius: 14px;
  padding: 13px 14px;
  background: #f7faff;
  color: var(--color-text);
}

.ad-product-reviews .form-submit .submit {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 48px;
  padding: 0 24px;
  border: 0;
  border-radius: 999px;
  background: var(--color-primary);
  color: #fff;
  font-weight: 800;
  cursor: pointer;
}

@media (max-width: 767px) {
  .ad-description-content > p,
  .ad-description-content > ul,
  .ad-description-content > ol,
  .ad-description-content > blockquote,
  .ad-description-content > div:not(.ad-info-card),
  .ad-description-content .Box1,
  .ad-description-content .Box2,
  .ad-description-content .Box3,
  .ad-description-content .Box4,
  .ad-description-content .Box,
  .ad-cat-content__body > p,
  .ad-cat-content__body > ul,
  .ad-cat-content__body > ol,
  .ad-cat-content__body > div,
  .ad-info-card,
  .ad-product-reviews #comments,
  .ad-product-reviews #review_form_wrapper {
    padding: 18px;
    border-radius: 18px;
  }

  .ad-cat-link-pill {
    padding: 16px 18px;
    border-radius: 20px;
  }
}


/* AllDent v1.0.27 — polished old InSales content cards + reviews moderation UI */
.ad-product-tabs-section {
  padding-top: 10px;
}

.ad-description-content {
  max-width: 1040px;
  display: grid;
  gap: 22px;
  color: var(--color-text-muted);
}

.ad-description-content > * {
  margin-top: 0 !important;
}

.ad-description-content > p:empty,
.ad-description-content > div:empty,
.ad-description-content > ul:empty,
.ad-description-content > ol:empty,
.product-detail__short-description > p:empty,
.product-detail__short-description > div:empty {
  display: none !important;
}

.ad-description-content > p,
.ad-description-content > ul,
.ad-description-content > ol,
.ad-description-content > blockquote,
.ad-description-content > div:not(.ad-desc-media):not(.ad-desc-video),
.ad-description-content .Box1,
.ad-description-content .Box2,
.ad-description-content .Box3,
.ad-description-content .Box4,
.ad-description-content .Box,
.ad-info-card {
  background: #fff;
  border: 1px solid #e6edf7;
  border-radius: 24px;
  padding: 28px 32px;
  box-shadow: 0 18px 44px rgba(20, 41, 72, 0.07);
}

.ad-description-content > p:first-child,
.ad-description-content > div:first-child:not(.ad-desc-media):not(.ad-desc-video),
.ad-description-content .Box1:first-child,
.ad-description-content .Box:first-child {
  background: linear-gradient(180deg, #f5f9ff 0%, #ffffff 100%);
}

.ad-description-content .Box1,
.ad-description-content .Box {
  background: #eef6ff;
}

.ad-description-content .Box2,
.ad-description-content .Box3,
.ad-description-content .Box4,
.ad-description-content blockquote {
  background: #fff7dc;
  border-color: #ffe8a8;
}

.ad-description-content h2,
.ad-description-content h3,
.ad-description-content h4 {
  margin: 0 0 12px;
  color: var(--color-text);
  font-weight: 900;
  line-height: 1.25;
}

.ad-description-content h2 strong,
.ad-description-content h3 strong,
.ad-description-content h4 strong,
.ad-description-content strong {
  color: var(--color-text);
  font-weight: 900;
}

.ad-description-content h2 > span,
.ad-description-content h3 > span,
.ad-description-content h4 > span,
.ad-description-content h2:first-letter,
.ad-description-content h3:first-letter {
  color: #f42b7f;
}

.ad-description-content p {
  margin: 0;
}

.ad-description-content p + p,
.ad-description-content ul + p,
.ad-description-content ol + p,
.ad-description-content p + ul,
.ad-description-content p + ol {
  margin-top: 14px;
}

.ad-description-content ul,
.ad-description-content ol {
  margin: 12px 0 0;
  padding-left: 22px;
  list-style: revert;
}

.ad-description-content li + li {
  margin-top: 7px;
}

.ad-description-content a {
  color: var(--color-primary);
  text-decoration: underline;
  text-underline-offset: 4px;
  font-weight: 600;
}

.ad-description-content .ad-desc-media,
.ad-description-content .ad-desc-video {
  padding: 0 !important;
  border: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}

.ad-description-content img,
.ad-description-content .ad-desc-media img,
.ad-cat-content__body img,
.tabs__panel img {
  display: block;
  max-width: 100% !important;
  width: auto !important;
  height: auto !important;
  margin: 0 auto !important;
  border-radius: 24px;
}

.ad-description-content .ad-desc-media img,
.ad-description-content > img {
  width: 100% !important;
  box-shadow: 0 18px 44px rgba(20, 41, 72, 0.07);
}

.ad-description-content iframe,
.ad-description-content video,
.ad-description-content .ad-desc-video iframe {
  display: block;
  width: 100%;
  max-width: 100%;
  aspect-ratio: 16 / 9;
  border: 0;
  border-radius: 24px;
  overflow: hidden;
  box-shadow: 0 18px 44px rgba(20, 41, 72, 0.07);
}

.ad-description-content table {
  width: 100%;
  overflow: hidden;
  border-radius: 20px;
  border-collapse: separate;
  border-spacing: 0;
  background: #fff;
  border: 1px solid #e6edf7;
}

.ad-description-content table td,
.ad-description-content table th {
  padding: 14px 18px;
  border-bottom: 1px solid #eaf0f8;
  vertical-align: middle;
}

.ad-description-content table tr:nth-child(even) td {
  background: #f6f8fc;
}

.product-detail__short-description {
  display: grid;
  gap: 12px;
  background: transparent !important;
  padding: 0 !important;
}

.product-detail__short-description > p,
.product-detail__short-description > div,
.product-detail__short-description > ul,
.product-detail__short-description > ol,
.product-detail__short-description .Box1,
.product-detail__short-description .Box2,
.product-detail__short-description .Box3,
.product-detail__short-description .Box {
  margin: 0 !important;
  padding: 22px 26px !important;
  border-radius: 22px !important;
  border: 1px solid #e6edf7;
  background: #eef6ff !important;
  box-shadow: 0 14px 30px rgba(20, 41, 72, 0.05);
}

.product-detail__short-description .Box1,
.product-detail__short-description .Box {
  background: #fff7dc !important;
  border-color: #ffe8a8;
}

.product-detail__short-description .Box2,
.product-detail__short-description .Box3 {
  background: #eef6ff !important;
}

.product-detail__short-description strong {
  font-weight: 900;
  color: var(--color-text);
}

.product-detail__short-description a {
  color: var(--color-primary);
  font-weight: 700;
  text-decoration: underline;
  text-underline-offset: 3px;
}

.product-detail__short-description img {
  max-width: 100% !important;
  width: auto !important;
  height: auto !important;
  margin: 8px auto !important;
  border-radius: 18px;
}

.ad-product-reviews #comments,
.ad-product-reviews #review_form_wrapper {
  background: #fff;
  border: 1px solid #e6edf7;
  border-radius: 28px;
  padding: 30px;
  box-shadow: 0 18px 44px rgba(20, 41, 72, 0.07);
}

.ad-product-reviews #comments + #review_form_wrapper {
  margin-top: 22px;
}

.ad-product-reviews .woocommerce-Reviews-title,
.ad-product-reviews #reply-title {
  font-size: 24px;
  font-weight: 900;
  color: var(--color-text);
}

.ad-product-reviews .commentlist {
  display: grid;
  gap: 16px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.ad-product-reviews .comment_container {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 14px;
  padding: 20px;
  border: 1px solid #e6edf7;
  border-radius: 22px;
  background: #f8fbff;
}

.ad-product-reviews .avatar {
  width: 46px;
  height: 46px;
  border-radius: 50%;
}

.ad-product-reviews .comment-text {
  padding: 0 !important;
  border: 0 !important;
  color: var(--color-text-muted);
  line-height: 1.65;
}

.ad-product-reviews .meta {
  margin: 4px 0 8px;
  color: var(--color-text);
  font-weight: 800;
}

.ad-product-reviews .star-rating {
  float: none;
  margin: 0 0 8px;
  color: #f4a41c;
}

.ad-product-reviews .comment-form-rating {
  padding: 18px 20px;
  border-radius: 18px;
  background: #fff7dc;
}

.ad-product-reviews .comment-form-rating label {
  margin-bottom: 10px;
}

.ad-product-reviews p.stars {
  display: inline-flex;
  gap: 6px;
  margin: 0 !important;
}

.ad-product-reviews p.stars a {
  position: relative;
  width: 30px;
  height: 30px;
  overflow: hidden;
  text-indent: -999px;
  border-radius: 50%;
  background: #fff;
  border: 1px solid #ffd67b;
}

.ad-product-reviews p.stars a::before {
  content: "★";
  position: absolute;
  inset: 0;
  text-indent: 0;
  display: grid;
  place-items: center;
  color: #f4a41c;
  font-size: 18px;
}

.ad-product-reviews .comment-form-author,
.ad-product-reviews .comment-form-email,
.ad-product-reviews .comment-form-comment {
  margin: 0;
}

.ad-product-reviews .comment-form input[type="text"],
.ad-product-reviews .comment-form input[type="email"],
.ad-product-reviews .comment-form textarea {
  background: #f8fbff;
  border: 1px solid #dfe8f5;
  border-radius: 18px;
  padding: 14px 16px;
}

.ad-product-reviews .form-submit .submit {
  min-height: 50px;
  padding: 0 28px;
  border-radius: 999px;
  background: var(--color-primary);
  color: #fff;
  font-weight: 900;
}

.ad-product-reviews .comment-awaiting-moderation {
  display: inline-block;
  margin-top: 10px;
  padding: 10px 14px;
  border-radius: 14px;
  background: #fff7dc;
  color: var(--color-text);
  font-weight: 700;
}

@media (max-width: 767px) {
  .ad-description-content {
    gap: 16px;
  }

  .ad-description-content > p,
  .ad-description-content > ul,
  .ad-description-content > ol,
  .ad-description-content > blockquote,
  .ad-description-content > div:not(.ad-desc-media):not(.ad-desc-video),
  .ad-description-content .Box1,
  .ad-description-content .Box2,
  .ad-description-content .Box3,
  .ad-description-content .Box4,
  .ad-description-content .Box,
  .ad-info-card,
  .product-detail__short-description > p,
  .product-detail__short-description > div,
  .product-detail__short-description > ul,
  .product-detail__short-description > ol,
  .ad-product-reviews #comments,
  .ad-product-reviews #review_form_wrapper {
    padding: 18px !important;
    border-radius: 18px !important;
  }

  .ad-product-reviews .comment_container {
    grid-template-columns: 1fr;
  }
}

/* AllDent v1.0.28 — compact old-site styled product content, better reviews and search result UI */
.ad-product-page .product-layout {
  align-items: flex-start;
}

.product-detail__short-description {
  display: grid;
  gap: 10px;
  margin: 14px 0 16px;
  font-size: 13.5px;
  line-height: 1.55;
  color: var(--color-text);
}

.product-detail__short-description > p,
.product-detail__short-description > div,
.product-detail__short-description > ul,
.product-detail__short-description > ol,
.product-detail__short-description .Box1,
.product-detail__short-description .Box2,
.product-detail__short-description .Box3,
.product-detail__short-description .Box4,
.product-detail__short-description .Box,
.product-detail__short-description .ad-desc-card {
  margin: 0 !important;
  padding: 15px 18px !important;
  border-radius: 16px !important;
  border: 1px solid #dfeaf7 !important;
  background: #eef6ff !important;
  box-shadow: none !important;
}

.product-detail__short-description > :nth-child(2n),
.product-detail__short-description .Box2,
.product-detail__short-description .Box4 {
  background: #fff5d9 !important;
  border-color: #ffe5a3 !important;
}

.product-detail__short-description p,
.product-detail__short-description ul,
.product-detail__short-description ol {
  margin: 0 !important;
}

.product-detail__short-description p + p,
.product-detail__short-description ul + p,
.product-detail__short-description p + ul,
.product-detail__short-description p + ol {
  margin-top: 9px !important;
}

.product-detail__short-description ul,
.product-detail__short-description ol {
  padding-left: 18px !important;
  list-style: revert !important;
}

.product-detail__short-description li + li {
  margin-top: 5px;
}

.product-detail__short-description strong,
.product-detail__short-description b {
  color: var(--color-text) !important;
  font-weight: 900 !important;
}

.product-detail__short-description a {
  color: var(--color-primary) !important;
  font-weight: 800;
  text-decoration: underline;
  text-underline-offset: 3px;
}

.product-detail__short-description img,
.product-detail__short-description .ad-desc-media img {
  display: block;
  width: auto !important;
  max-width: 100% !important;
  max-height: 125px !important;
  height: auto !important;
  object-fit: contain;
  margin: 6px auto !important;
  border-radius: 12px !important;
  box-shadow: none !important;
}

.product-detail__short-description .ad-desc-media,
.product-detail__short-description .ad-desc-video {
  padding: 12px 16px !important;
}

.ad-description-content {
  max-width: 1040px;
  display: grid;
  gap: 18px;
  color: var(--color-text-muted);
  font-size: 15px;
  line-height: 1.72;
}

.ad-description-content > p,
.ad-description-content > ul,
.ad-description-content > ol,
.ad-description-content > blockquote,
.ad-description-content > div:not(.ad-desc-media):not(.ad-desc-video):not(.ad-desc-table-wrap):not(.ad-desc-card):not([class*="Box"]),
.ad-description-content > h2,
.ad-description-content > h3,
.ad-description-content > h4 {
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  padding: 0 !important;
  border-radius: 0 !important;
  max-width: 900px;
}

.ad-description-content > .ad-desc-card,
.ad-description-content > .Box,
.ad-description-content > .Box1,
.ad-description-content > .Box2,
.ad-description-content > .Box3,
.ad-description-content > .Box4,
.ad-description-content .Box,
.ad-description-content .Box1,
.ad-description-content .Box2,
.ad-description-content .Box3,
.ad-description-content .Box4,
.ad-description-content .ad-info-card {
  background: #fff !important;
  border: 1px solid #dfeaf7 !important;
  border-radius: 18px !important;
  padding: 22px 26px !important;
  box-shadow: none !important;
  max-width: 940px;
}

.ad-description-content > .Box1,
.ad-description-content > .Box,
.ad-description-content .Box1,
.ad-description-content .ad-desc-card--blue {
  background: #eef6ff !important;
}

.ad-description-content > .Box2,
.ad-description-content > .Box3,
.ad-description-content .Box2,
.ad-description-content .Box3,
.ad-description-content blockquote,
.ad-description-content .ad-desc-card--yellow {
  background: #fff6dc !important;
  border-color: #ffe6a8 !important;
}

.ad-description-content > .ad-desc-card--white {
  background: #fff !important;
}

.ad-description-content > *:empty,
.ad-description-content p:empty,
.ad-description-content div:empty,
.product-detail__short-description > *:empty,
.product-detail__short-description p:empty,
.product-detail__short-description div:empty {
  display: none !important;
}

.ad-description-content div:has(> br:only-child),
.ad-description-content p:has(> br:only-child),
.product-detail__short-description div:has(> br:only-child),
.product-detail__short-description p:has(> br:only-child) {
  display: none !important;
}

.ad-description-content h2,
.ad-description-content h3,
.ad-description-content h4 {
  color: var(--color-text) !important;
  line-height: 1.25;
  font-weight: 900;
}

.ad-description-content h2,
.ad-description-content h3 {
  font-size: clamp(21px, 2vw, 28px);
}

.ad-description-content h4 {
  font-size: 18px;
}

.ad-description-content h2 strong,
.ad-description-content h3 strong,
.ad-description-content h4 strong,
.ad-description-content strong,
.ad-description-content b {
  color: var(--color-text) !important;
  font-weight: 900 !important;
}

.ad-description-content h2 strong:first-child,
.ad-description-content h3 strong:first-child,
.ad-description-content h4 strong:first-child,
.ad-description-content h2 span:first-child,
.ad-description-content h3 span:first-child,
.ad-description-content h4 span:first-child {
  color: #f42b7f !important;
}

.ad-description-content p {
  margin: 0;
}

.ad-description-content p + p,
.ad-description-content ul + p,
.ad-description-content ol + p,
.ad-description-content p + ul,
.ad-description-content p + ol {
  margin-top: 12px;
}

.ad-description-content ul,
.ad-description-content ol {
  margin: 10px 0 0;
  padding-left: 22px;
  list-style: revert;
}

.ad-description-content li + li {
  margin-top: 6px;
}

.ad-description-content a {
  color: var(--color-primary) !important;
  font-weight: 800;
  text-decoration: underline;
  text-underline-offset: 4px;
}

.ad-description-content .ad-desc-table-wrap {
  max-width: 880px;
  overflow: hidden;
  border-radius: 18px;
  border: 1px solid #dfeaf7;
  background: #fff;
  box-shadow: none;
}

.ad-description-content table {
  width: 100% !important;
  table-layout: fixed;
  border-collapse: collapse !important;
  border: 0 !important;
  background: transparent !important;
}

.ad-description-content table td,
.ad-description-content table th {
  padding: 13px 18px !important;
  border: 0 !important;
  border-bottom: 1px solid #e6edf7 !important;
  color: var(--color-text-muted);
  vertical-align: top;
}

.ad-description-content table tr:last-child td,
.ad-description-content table tr:last-child th {
  border-bottom: 0 !important;
}

.ad-description-content table tr:nth-child(even) td,
.ad-description-content table tr:nth-child(even) th {
  background: #f4f7fb !important;
}

.ad-description-content .ad-desc-media,
.ad-description-content .ad-desc-video {
  max-width: 940px;
  padding: 0 !important;
  border: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}

.ad-description-content img,
.ad-description-content .ad-desc-media img,
.ad-cat-content__body img,
.tabs__panel img {
  display: block;
  max-width: 100% !important;
  width: auto !important;
  height: auto !important;
  margin: 0 auto 16px !important;
  border-radius: 16px;
}

.ad-description-content .ad-desc-media img,
.ad-description-content > img {
  width: auto !important;
  max-height: 520px;
  object-fit: contain;
  box-shadow: none !important;
}

.ad-description-content iframe,
.ad-description-content video,
.ad-description-content .ad-desc-video iframe {
  display: block;
  width: 100%;
  max-width: 940px;
  aspect-ratio: 16 / 9;
  border: 0;
  border-radius: 18px;
  overflow: hidden;
  box-shadow: none !important;
}

.ad-product-reviews #comments,
.ad-product-reviews #review_form_wrapper {
  background: #fff;
  border: 1px solid #dfeaf7;
  border-radius: 22px;
  padding: 24px;
  box-shadow: none;
}

.ad-product-reviews .woocommerce-Reviews-title,
.ad-product-reviews #reply-title {
  font-size: 22px;
  font-weight: 900;
  color: var(--color-text);
}

.ad-product-reviews .comment_container {
  border: 1px solid #dfeaf7;
  border-radius: 18px;
  background: #f8fbff;
  box-shadow: none;
}

.ad-product-reviews .star-rating,
.ad-product-reviews p.stars a::before {
  color: #f4a41c !important;
}

.ad-product-reviews .comment-form-rating {
  background: #fff6dc;
  border: 1px solid #ffe6a8;
}

.ad-product-reviews .form-submit .submit {
  background: var(--color-primary) !important;
  color: #fff !important;
  border: 0 !important;
}

.search .page-title,
.post-type-archive-product .page-title {
  max-width: 980px;
}

@media (max-width: 991px) {
  .product-detail__short-description {
    font-size: 13px;
  }

  .product-detail__short-description > p,
  .product-detail__short-description > div,
  .product-detail__short-description > ul,
  .product-detail__short-description > ol,
  .product-detail__short-description .Box1,
  .product-detail__short-description .Box2,
  .product-detail__short-description .Box3,
  .product-detail__short-description .Box4,
  .product-detail__short-description .Box,
  .product-detail__short-description .ad-desc-card,
  .ad-description-content > .ad-desc-card,
  .ad-description-content > .Box,
  .ad-description-content > .Box1,
  .ad-description-content > .Box2,
  .ad-description-content > .Box3,
  .ad-description-content > .Box4,
  .ad-description-content .Box,
  .ad-description-content .Box1,
  .ad-description-content .Box2,
  .ad-description-content .Box3,
  .ad-description-content .Box4,
  .ad-description-content .ad-info-card {
    padding: 17px !important;
    border-radius: 16px !important;
  }

  .ad-description-content .ad-desc-table-wrap {
    max-width: 100%;
    overflow-x: auto;
  }

  .ad-description-content table {
    min-width: 560px;
  }
}


/* AllDent v1.0.29 — old AllDent sidebar, category promo strip, compact product info and clean reviews */
.ad-catalog-sidebar {
  min-width: 0;
}

.ad-catalog-sidebar__box {
  background: transparent;
  border: 0;
}

.ad-catalog-sidebar__title {
  margin: 0 0 14px;
  color: var(--color-text);
  font-size: 18px;
  line-height: 1.2;
  font-weight: 800;
}

.ad-catalog-tree {
  display: grid;
  gap: 0;
}

.ad-catalog-tree__group {
  border-bottom: 1px solid #edf1f6;
}

.ad-catalog-tree__parent {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  padding: 9px 0;
  color: #2d3544;
  text-decoration: none;
  font-size: 15px;
  line-height: 1.35;
  font-weight: 500;
}

.ad-catalog-tree__parent:hover,
.ad-catalog-tree__children a:hover {
  color: var(--color-primary);
}

.ad-catalog-tree__chev {
  color: #1f2937;
  font-size: 16px;
  line-height: 1;
  transform: translateY(-1px);
}

.ad-catalog-tree__children {
  display: grid;
  gap: 0;
  padding: 0 0 8px 14px;
}

.ad-catalog-tree__children a {
  display: block;
  padding: 5px 0;
  color: #596579;
  text-decoration: none;
  font-size: 14px;
  line-height: 1.35;
  font-weight: 400;
}

.ad-sidebar-banners {
  display: grid;
  gap: 16px;
  margin-top: 22px;
}

.ad-sidebar-banner {
  display: block;
  overflow: hidden;
  border-radius: 16px;
  background: #fff;
  border: 1px solid #edf1f6;
  box-shadow: 0 6px 18px rgba(20, 41, 72, 0.05);
}

.ad-sidebar-banner img {
  display: block;
  width: 100%;
  height: auto;
}

.catalog-layout {
  grid-template-columns: 300px minmax(0, 1fr) !important;
  align-items: flex-start;
}

.catalog-layout > .ad-catalog-sidebar,
.ad-product-shell > .ad-catalog-sidebar {
  position: sticky;
  top: 118px;
}

.ad-product-shell {
  display: grid;
  grid-template-columns: 300px minmax(0, 1fr);
  gap: 32px;
  align-items: flex-start;
  padding: 34px 0 46px;
}

.ad-product-main {
  min-width: 0;
}

.ad-product-page .product-layout {
  grid-template-columns: minmax(0, 1.02fr) minmax(360px, 0.98fr) !important;
  gap: 34px !important;
  padding: 0 !important;
}

.ad-category-promo-strip {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  min-height: 56px;
  margin: 0 0 28px;
  padding: 12px 28px;
  overflow: hidden;
  border-radius: 999px;
  color: #fff;
  background: linear-gradient(100deg, #b45bb8, #e94375, #25c7b6, #2f86c9, #b45bb8);
  background-size: 320% 100%;
  animation: adCategoryPromoFlow 10s ease-in-out infinite;
}

.ad-category-promo-strip span {
  font-size: clamp(22px, 2.2vw, 32px);
  line-height: 1;
  font-weight: 400;
  letter-spacing: 0.01em;
}

.ad-category-promo-strip small {
  color: rgba(255,255,255,.88);
  font-size: 15px;
  line-height: 1.2;
}

@keyframes adCategoryPromoFlow {
  0%, 100% { background-position: 0% 50%; }
  50% { background-position: 100% 50%; }
}

.product-detail__title {
  margin-bottom: 10px;
}

.product-detail__short-description {
  gap: 8px !important;
  margin: 12px 0 12px !important;
  font-size: 12.5px !important;
  line-height: 1.45 !important;
}

.product-detail__short-description > p,
.product-detail__short-description > div,
.product-detail__short-description > ul,
.product-detail__short-description > ol,
.product-detail__short-description .Box1,
.product-detail__short-description .Box2,
.product-detail__short-description .Box3,
.product-detail__short-description .Box4,
.product-detail__short-description .Box,
.product-detail__short-description .ad-desc-card {
  padding: 12px 16px !important;
  border-radius: 15px !important;
  border: 1px solid #dce8f5 !important;
  background: #eef6ff !important;
  box-shadow: none !important;
}

.product-detail__short-description > :nth-child(2n),
.product-detail__short-description .Box1,
.product-detail__short-description .Box,
.product-detail__short-description .ad-desc-card--yellow {
  background: #fff6dc !important;
  border-color: #ffe5a3 !important;
}

.product-detail__short-description ul,
.product-detail__short-description ol {
  margin: 6px 0 0 !important;
  padding-left: 18px !important;
}

.product-detail__short-description li + li {
  margin-top: 3px !important;
}

.product-detail__short-description img,
.product-detail__short-description .ad-desc-media img,
.product-detail__short-description svg {
  width: auto !important;
  max-width: 100% !important;
  max-height: 44px !important;
  height: auto !important;
  object-fit: contain !important;
  margin: 5px 8px 5px 0 !important;
  border-radius: 8px !important;
  box-shadow: none !important;
}

.product-detail__price {
  margin-top: 10px !important;
}

.ad-product-purchase {
  margin-top: 12px !important;
}

.ad-description-content {
  gap: 14px !important;
  font-size: 15px !important;
  line-height: 1.65 !important;
}

.ad-description-content > .ad-desc-card,
.ad-description-content > .Box,
.ad-description-content > .Box1,
.ad-description-content > .Box2,
.ad-description-content > .Box3,
.ad-description-content > .Box4,
.ad-description-content .Box,
.ad-description-content .Box1,
.ad-description-content .Box2,
.ad-description-content .Box3,
.ad-description-content .Box4,
.ad-description-content .ad-info-card {
  max-width: 940px !important;
  padding: 20px 26px !important;
  border-radius: 16px !important;
  box-shadow: none !important;
}

.ad-description-content > p,
.ad-description-content > ul,
.ad-description-content > ol,
.ad-description-content > blockquote,
.ad-description-content > div:not(.ad-desc-media):not(.ad-desc-video):not(.ad-desc-table-wrap):not(.ad-desc-card):not([class*="Box"]),
.ad-description-content > h2,
.ad-description-content > h3,
.ad-description-content > h4 {
  max-width: 940px !important;
}

.ad-description-content .ad-desc-table-wrap {
  display: inline-block !important;
  width: auto !important;
  max-width: 100% !important;
  overflow-x: auto;
  border-radius: 16px !important;
  box-shadow: none !important;
}

.ad-description-content table {
  width: auto !important;
  min-width: 0 !important;
  table-layout: auto !important;
}

.ad-description-content table td,
.ad-description-content table th {
  min-width: 170px;
  padding: 12px 18px !important;
}

.ad-description-content img[src*="lamp"],
.ad-description-content img[src*="idea"],
.ad-description-content img[src*="icon"],
.ad-description-content img[width="64"],
.ad-description-content img[height="64"] {
  max-height: 42px !important;
  width: auto !important;
  margin: 4px 10px 4px 0 !important;
  display: inline-block !important;
  vertical-align: middle;
}

.ad-product-reviews #comments,
.ad-product-reviews #review_form_wrapper {
  max-width: 960px;
  padding: 26px 30px !important;
  border-radius: 22px !important;
  background: #fff !important;
  border: 1px solid #dfeaf7 !important;
  box-shadow: none !important;
}

.ad-product-reviews .woocommerce-Reviews-title,
.ad-product-reviews #reply-title {
  font-size: 24px !important;
  line-height: 1.25;
  margin: 0 0 18px !important;
}

.ad-product-reviews .comment-form-rating {
  padding: 16px 18px !important;
  border-radius: 16px !important;
  background: #fff6dc !important;
  border: 1px solid #ffe1a0 !important;
}

.ad-product-reviews .comment-form-rating label {
  margin: 0 0 12px !important;
}

.ad-product-reviews p.stars,
.ad-product-reviews p.stars span {
  display: flex !important;
  align-items: center;
  gap: 8px;
  margin: 0 !important;
}

.ad-product-reviews p.stars a,
.woocommerce .ad-product-reviews p.stars a {
  position: relative !important;
  display: inline-grid !important;
  place-items: center;
  flex: 0 0 34px;
  width: 34px !important;
  height: 34px !important;
  margin: 0 !important;
  overflow: hidden !important;
  border-radius: 999px !important;
  border: 1px solid #ffd077 !important;
  background: #fff !important;
  color: transparent !important;
  font-size: 0 !important;
  line-height: 0 !important;
  text-indent: 0 !important;
  text-decoration: none !important;
}

.ad-product-reviews p.stars a::before,
.woocommerce .ad-product-reviews p.stars a::before {
  content: "★" !important;
  position: static !important;
  display: block !important;
  width: auto !important;
  height: auto !important;
  color: #d6deea !important;
  font-size: 19px !important;
  line-height: 1 !important;
  text-indent: 0 !important;
  opacity: 1 !important;
}

.ad-product-reviews p.stars:hover a::before,
.ad-product-reviews p.stars.selected a.active::before,
.ad-product-reviews p.stars.selected a:not(.active)::before,
.ad-product-reviews p.stars a:hover::before,
.ad-product-reviews p.stars a.active::before {
  color: #f4a41c !important;
}

.ad-product-reviews .comment-awaiting-moderation,
.ad-product-reviews .commentlist .comment:not(.approved) {
  display: none !important;
}

.ad-product-reviews .comment_container {
  padding: 18px !important;
}

@media (max-width: 1180px) {
  .ad-product-shell,
  .catalog-layout {
    grid-template-columns: 260px minmax(0, 1fr) !important;
    gap: 24px !important;
  }

  .ad-product-page .product-layout {
    grid-template-columns: 1fr !important;
  }
}

@media (max-width: 991px) {
  .ad-product-shell,
  .catalog-layout {
    display: block !important;
  }

  .catalog-layout > .ad-catalog-sidebar,
  .ad-product-shell > .ad-catalog-sidebar {
    display: none !important;
  }

  .ad-category-promo-strip {
    border-radius: 22px;
    text-align: center;
    flex-direction: column;
    gap: 4px;
    min-height: 70px;
  }
}

/* AllDent v1.0.30 — sidebar accordion, old-site banners, product layout spacing and custom reviews */
.ad-catalog-tree__parent-row {
  display: flex;
  align-items: center;
  gap: 8px;
  border-bottom: 0;
}

.ad-catalog-tree__parent {
  flex: 1 1 auto;
  justify-content: flex-start !important;
}

.ad-catalog-tree__toggle {
  flex: 0 0 28px;
  width: 28px;
  height: 28px;
  display: inline-grid;
  place-items: center;
  border: 0;
  background: transparent;
  color: #1f2937;
  cursor: pointer;
  border-radius: 8px;
  transition: background .2s ease, color .2s ease, transform .2s ease;
}

.ad-catalog-tree__toggle:hover {
  background: #f1f6fc;
  color: var(--color-primary);
}

.ad-catalog-tree__toggle svg {
  width: 15px;
  height: 15px;
  transition: transform .22s ease;
}

.ad-catalog-tree__group.is-open > .ad-catalog-tree__parent-row > .ad-catalog-tree__toggle svg {
  transform: rotate(180deg);
}

.ad-catalog-tree__children[hidden] {
  display: none !important;
}

.ad-catalog-tree__children {
  animation: adSidebarOpen .18s ease;
}

@keyframes adSidebarOpen {
  from { opacity: 0; transform: translateY(-3px); }
  to { opacity: 1; transform: translateY(0); }
}

.ad-sidebar-banners {
  gap: 18px !important;
  margin-top: 26px !important;
}

.ad-sidebar-course-card,
.ad-sidebar-banner {
  display: block;
  border-radius: 18px !important;
  border: 1px solid #e6edf6 !important;
  background: #fff !important;
  overflow: hidden;
  box-shadow: 0 8px 24px rgba(18, 38, 70, .06) !important;
  text-decoration: none !important;
  color: var(--color-text) !important;
}

.ad-sidebar-course-card {
  padding: 18px 18px 20px;
}

.ad-sidebar-course-card img {
  display: block;
  width: 100%;
  height: auto;
  border-radius: 14px;
  margin: 0 0 15px;
}

.ad-sidebar-course-card strong,
.ad-sidebar-course-card b,
.ad-sidebar-course-card span,
.ad-sidebar-course-card p {
  display: block;
}

.ad-sidebar-course-card strong {
  margin-bottom: 4px;
  font-size: 14px;
  line-height: 1.25;
  font-weight: 800;
}

.ad-sidebar-course-card span {
  margin-bottom: 14px;
  color: #6c778a;
  font-size: 13px;
}

.ad-sidebar-course-card b {
  margin-bottom: 3px;
  font-size: 13px;
  font-weight: 800;
}

.ad-sidebar-course-card p {
  margin: 0;
  color: #4f5f76;
  font-size: 13px;
  line-height: 1.45;
}

.ad-sidebar-banner img {
  width: 100% !important;
  height: auto !important;
  display: block !important;
  border-radius: 0 !important;
}

.ad-product-top--with-sidebar {
  padding-bottom: 34px !important;
}

.ad-product-shell {
  grid-template-columns: 300px minmax(0, 1fr) !important;
  gap: 34px !important;
  align-items: start !important;
}

.ad-product-main {
  display: flex;
  flex-direction: column;
  min-width: 0;
  gap: 34px;
}

.ad-product-main .product-layout {
  margin-bottom: 0 !important;
}

.ad-related-inline {
  margin: 4px 0 0;
  padding: 0;
}

.ad-related-inline .section-head {
  display: flex;
  align-items: center;
  gap: 18px;
  margin: 0 0 16px;
}

.ad-related-inline .section-title {
  font-size: 22px;
  line-height: 1.25;
  font-weight: 500;
}

.ad-related-inline .section-head::after {
  content: "";
  flex: 1 1 auto;
  height: 1px;
  background: #e8eef6;
}

.product-grid--5 {
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 14px;
}

.product-grid--5 .product-card {
  min-height: 0;
}

.product-grid--5 .product-card__media {
  min-height: 168px;
}

.product-grid--5 .product-card__title {
  font-size: 14px;
}

.product-grid--5 .price,
.product-grid--5 .product-card__price {
  font-size: 20px;
}

.ad-product-tabs-section--inline {
  padding: 0 !important;
  margin: 0 !important;
}

.ad-product-tabs-section--inline .container {
  width: 100%;
  max-width: none;
  padding: 0;
}

.ad-product-tabs-section--inline .tabs__head {
  margin-top: 0 !important;
}

.ad-category-promo-strip {
  max-width: 100%;
  min-height: 54px !important;
  margin: 0 0 30px !important;
  border-radius: 999px !important;
  background: linear-gradient(100deg, #ce4d99 0%, #ef4867 42%, #f15a61 56%, #ce4d99 100%) !important;
  background-size: 230% 100% !important;
  animation: adOldPromoFlow 8s ease-in-out infinite !important;
  box-shadow: none !important;
}

@keyframes adOldPromoFlow {
  0%, 100% { background-position: 0% 50%; }
  50% { background-position: 100% 50%; }
}

.ad-category-promo-strip span {
  font-size: clamp(20px, 2vw, 28px) !important;
  font-weight: 400 !important;
}

.ad-category-promo-strip small {
  color: rgba(30, 42, 65, .72) !important;
  font-size: 14px !important;
}

.product-detail__short-description {
  margin: 10px 0 12px !important;
  gap: 10px !important;
  font-size: 13px !important;
  line-height: 1.45 !important;
}

.product-detail__short-description > p,
.product-detail__short-description > div,
.product-detail__short-description > ul,
.product-detail__short-description > ol,
.product-detail__short-description .Box,
.product-detail__short-description .Box1,
.product-detail__short-description .Box2,
.product-detail__short-description .Box3,
.product-detail__short-description .Box4,
.product-detail__short-description .ad-desc-card {
  padding: 15px 18px !important;
  border-radius: 15px !important;
  box-shadow: none !important;
}

.product-detail__short-description img,
.product-detail__short-description svg,
.product-detail__short-description .ad-desc-media img {
  width: auto !important;
  max-width: 100% !important;
  max-height: 34px !important;
  object-fit: contain !important;
}

.product-detail__short-description .ad-desc-media:has(img:only-child),
.product-detail__short-description .ad-desc-card:empty,
.product-detail__short-description .Box:empty,
.product-detail__short-description .Box1:empty,
.product-detail__short-description .Box2:empty,
.product-detail__short-description .Box3:empty,
.product-detail__short-description .Box4:empty {
  display: none !important;
}

.product-detail__perks {
  margin-top: 16px !important;
  padding: 16px 18px !important;
}

.product-detail__perk svg {
  width: 18px !important;
  height: 18px !important;
}

.ad-description-content {
  max-width: 100%;
  gap: 18px !important;
  font-size: 15px !important;
  line-height: 1.66 !important;
}

.ad-description-content > .ad-desc-card,
.ad-description-content > .Box,
.ad-description-content > .Box1,
.ad-description-content > .Box2,
.ad-description-content > .Box3,
.ad-description-content > .Box4,
.ad-description-content .Box,
.ad-description-content .Box1,
.ad-description-content .Box2,
.ad-description-content .Box3,
.ad-description-content .Box4,
.ad-description-content .ad-info-card {
  max-width: 100% !important;
  padding: 22px 28px !important;
  border-radius: 18px !important;
  border: 1px solid #dfeaf7 !important;
  background: #fff !important;
  box-shadow: none !important;
}

.ad-description-content > .ad-desc-card:empty,
.ad-description-content > .Box:empty,
.ad-description-content > .Box1:empty,
.ad-description-content > .Box2:empty,
.ad-description-content > .Box3:empty,
.ad-description-content > .Box4:empty,
.ad-description-content .ad-info-card:empty {
  display: none !important;
}

.ad-description-content h2,
.ad-description-content h3,
.ad-description-content h4 {
  color: #111b31;
  font-weight: 800;
}

.ad-description-content h2 strong,
.ad-description-content h3 strong,
.ad-description-content h4 strong,
.ad-description-content strong:first-child {
  color: #ef2e78;
}

.ad-description-content .ad-desc-table-wrap {
  display: block !important;
  width: 100% !important;
  max-width: 920px !important;
  overflow: hidden !important;
  border: 1px solid #dfe5ee !important;
  border-radius: 18px !important;
  background: #fff !important;
  box-shadow: none !important;
}

.ad-description-content table {
  width: 100% !important;
  min-width: 0 !important;
  border-collapse: collapse !important;
  table-layout: fixed !important;
}

.ad-description-content table td,
.ad-description-content table th {
  width: 50% !important;
  min-width: 0 !important;
  padding: 12px 18px !important;
  border-color: #e3e8f0 !important;
  text-align: center;
}

.ad-description-content table tr:nth-child(even) td,
.ad-description-content table tr:nth-child(even) th {
  background: #f4f6fa !important;
}

.ad-description-content img[src*="lamp"],
.ad-description-content img[src*="idea"],
.ad-description-content img[src*="icon"],
.ad-description-content img[width="64"],
.ad-description-content img[height="64"] {
  max-height: 26px !important;
  width: auto !important;
  margin: 0 8px 0 0 !important;
  vertical-align: middle;
}

.ad-description-content .ad-desc-media img:not([src*="lamp"]):not([src*="idea"]):not([src*="icon"]),
.ad-description-content > p > img,
.ad-description-content > img {
  display: block !important;
  width: 50% !important;
  max-width: 100% !important;
  height: auto !important;
  border-radius: 18px !important;
  object-fit: contain !important;
}

.ad-description-content .ad-desc-media {
  max-width: 100% !important;
}

.ad-product-reviews #comments,
.ad-product-reviews #review_form_wrapper,
.ad-reviews-list-wrap,
.ad-review-form-wrap {
  max-width: 960px !important;
  border: 1px solid #dfeaf7 !important;
  border-radius: 20px !important;
  background: #fff !important;
  padding: 26px 30px !important;
  box-shadow: 0 12px 28px rgba(18, 38, 70, .04) !important;
}

.ad-review-form-wrap {
  margin-top: 28px;
}

.ad-reviews-title,
.ad-review-form-title,
.ad-product-reviews .woocommerce-Reviews-title,
.ad-product-reviews #reply-title {
  margin: 0 0 18px !important;
  color: #111b31 !important;
  font-size: 24px !important;
  line-height: 1.25 !important;
  font-weight: 800 !important;
}

.ad-reviews-empty,
.ad-review-note {
  color: #68758b;
  font-size: 15px;
  margin: 0 0 18px;
}

.ad-review-list {
  display: grid;
  gap: 14px;
  padding: 0;
  margin: 0;
  list-style: none;
}

.ad-review-item {
  display: grid;
  grid-template-columns: 58px minmax(0, 1fr);
  gap: 18px;
  padding: 18px;
  border: 1px solid #e4ecf6;
  border-radius: 18px;
  background: #f8fbff;
}

.ad-review-avatar img {
  width: 58px;
  height: 58px;
  border-radius: 999px;
}

.ad-review-head {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
  margin-bottom: 6px;
}

.ad-review-head strong {
  color: #111b31;
  font-weight: 800;
}

.ad-review-head span {
  color: #8190a5;
  font-size: 13px;
}

.ad-review-stars {
  display: flex;
  gap: 2px;
  margin-bottom: 8px;
  color: #d8e1ee;
  font-size: 17px;
  line-height: 1;
}

.ad-review-stars .is-filled {
  color: #ffb21c;
}

.ad-review-text,
.ad-review-text p {
  margin: 0;
  color: #59677d;
  font-size: 15px;
  line-height: 1.55;
}

.ad-review-form .comment-form-rating,
.ad-review-rating-field {
  margin: 0 0 18px !important;
  padding: 18px !important;
  border-radius: 16px !important;
  border: 1px solid #ffe3a6 !important;
  background: #fff7df !important;
}

.ad-review-form label {
  display: block;
  margin: 0 0 8px;
  color: #111b31;
  font-size: 14px;
  font-weight: 800;
}

.ad-rating-picker {
  display: flex;
  gap: 8px;
}

.ad-rating-picker button {
  display: grid;
  place-items: center;
  width: 38px;
  height: 38px;
  border-radius: 50%;
  border: 1px solid #ffd37a;
  background: #fff;
  color: #d5deea;
  font-size: 21px;
  line-height: 1;
  cursor: pointer;
  transition: color .15s ease, background .15s ease, border-color .15s ease, transform .15s ease;
}

.ad-rating-picker button.is-lit,
.ad-rating-picker button.is-selected {
  color: #ffb21c;
  border-color: #ffbd45;
  background: #fffaf0;
}

.ad-rating-picker button:hover {
  transform: translateY(-1px);
}

.ad-review-form .comment-form-comment,
.ad-review-form .comment-form-author,
.ad-review-form .comment-form-email {
  margin: 0 0 16px !important;
}

.ad-review-form input[type="text"],
.ad-review-form input[type="email"],
.ad-review-form textarea {
  width: 100% !important;
  border: 1px solid #dce8f5 !important;
  background: #f8fbff !important;
  border-radius: 16px !important;
  color: #111b31 !important;
  font-size: 15px !important;
  outline: 0 !important;
}

.ad-review-form input[type="text"],
.ad-review-form input[type="email"] {
  min-height: 48px !important;
  padding: 0 16px !important;
}

.ad-review-form textarea {
  min-height: 150px !important;
  padding: 14px 16px !important;
  resize: vertical;
}

.ad-review-form .comment-form-cookies-consent label {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  color: #46556b;
  font-weight: 600;
}

.ad-review-form .comment-form-cookies-consent input {
  margin-top: 2px;
}

.ad-review-submit,
.ad-product-reviews .form-submit .submit {
  min-width: 150px !important;
  min-height: 50px !important;
  border-radius: 999px !important;
  background: var(--color-primary) !important;
  color: #fff !important;
  border: 0 !important;
  font-weight: 800 !important;
}

.ad-product-reviews p.stars,
.ad-product-reviews p.stars span,
.ad-product-reviews .comment-form-rating > p.stars {
  display: none !important;
}

.ad-product-reviews .comment-awaiting-moderation,
.ad-product-reviews .commentlist .comment:not(.approved),
.ad-product-reviews .commentlist .review:not(.approved) {
  display: none !important;
}

@media (max-width: 1180px) {
  .ad-product-shell,
  .catalog-layout {
    grid-template-columns: 260px minmax(0, 1fr) !important;
  }
  .ad-product-page .product-layout {
    grid-template-columns: minmax(0, 1fr) !important;
  }
  .product-grid--5 {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

@media (max-width: 900px) {
  .ad-product-shell,
  .catalog-layout {
    grid-template-columns: 1fr !important;
  }
  .catalog-layout > .ad-catalog-sidebar,
  .ad-product-shell > .ad-catalog-sidebar {
    position: static !important;
  }
  .ad-sidebar-banners {
    display: none !important;
  }
  .product-grid--5 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .ad-category-promo-strip {
    min-height: 48px !important;
    padding: 10px 18px !important;
  }
  .ad-category-promo-strip span {
    font-size: 20px !important;
  }
  .ad-category-promo-strip small {
    font-size: 12px !important;
  }
}

@media (max-width: 560px) {
  .product-grid--5 {
    grid-template-columns: 1fr 1fr;
    gap: 10px;
  }
  .ad-review-item {
    grid-template-columns: 1fr;
  }
  .ad-product-reviews #comments,
  .ad-product-reviews #review_form_wrapper,
  .ad-reviews-list-wrap,
  .ad-review-form-wrap {
    padding: 20px 16px !important;
  }
}


/* AllDent v1.0.31 — safe visual polish: specs spacing, orange review stars, 4 related cards, card prices. */
.tabs__panel[data-tab="specs"] table,
.tabs__panel[data-tab="specs"] .woocommerce-product-attributes {
  width: 100%;
  max-width: 760px;
  border-collapse: collapse;
  margin: 4px 0 0;
  color: #5f6f86;
  font-size: 15px;
}
.tabs__panel[data-tab="specs"] tr,
.tabs__panel[data-tab="specs"] .woocommerce-product-attributes-item {
  border-bottom: 1px solid #e1e8f2;
}
.tabs__panel[data-tab="specs"] th,
.tabs__panel[data-tab="specs"] td,
.tabs__panel[data-tab="specs"] .woocommerce-product-attributes-item__label,
.tabs__panel[data-tab="specs"] .woocommerce-product-attributes-item__value {
  padding: 15px 16px;
  vertical-align: top;
  text-align: left;
  line-height: 1.5;
}
.tabs__panel[data-tab="specs"] th,
.tabs__panel[data-tab="specs"] .woocommerce-product-attributes-item__label {
  width: 190px;
  color: #5f6f86;
  font-weight: 800;
  white-space: nowrap;
}
.tabs__panel[data-tab="specs"] .woocommerce-product-attributes-item__label::after {
  content: ":";
  margin-left: 2px;
}
.tabs__panel[data-tab="specs"] td,
.tabs__panel[data-tab="specs"] .woocommerce-product-attributes-item__value {
  color: #5f6f86;
}
.tabs__panel[data-tab="specs"] .woocommerce-product-attributes-item__value p {
  display: inline;
  margin: 0;
}

.ad-related-inline {
  max-width: 100%;
  margin-top: 8px !important;
}
.product-grid--4,
.product-grid--related {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  gap: 16px !important;
}
.product-grid--4 .product-card,
.product-grid--related .product-card {
  min-width: 0;
  min-height: 0;
}
.product-grid--4 .product-card__media,
.product-grid--related .product-card__media {
  min-height: 180px;
}
.product-grid--4 .product-card__name,
.product-grid--related .product-card__name {
  font-size: 15px;
  line-height: 1.35;
}
.product-grid--4 .product-card__price,
.product-grid--related .product-card__price {
  font-size: 20px;
  line-height: 1.12;
}

.product-card__foot {
  align-items: flex-end;
}
.product-card__price {
  min-width: 0;
  max-width: calc(100% - 92px);
  line-height: 1.14;
  overflow-wrap: normal;
  word-break: normal;
}
.product-card__price .woocommerce-Price-amount,
.product-card__price bdi {
  white-space: nowrap;
}
.product-card__price del,
.product-card__price ins {
  display: block;
}
.product-card__price del {
  margin: 0 0 4px;
  color: #7a879a;
  font-size: 15px;
  line-height: 1.1;
  font-weight: 600;
  opacity: .9;
}
.product-card__price ins {
  color: #101b31;
  font-size: 20px;
  line-height: 1.12;
  font-weight: 900;
  text-decoration: none;
}
.product-card__price--sale,
.product-card__price .price {
  display: block;
}
.product-card__price:empty {
  display: none;
}

.product-detail__price.has-sale {
  width: fit-content;
  max-width: 100%;
  display: flex !important;
  flex-wrap: wrap;
  align-items: flex-end;
  gap: 8px 14px;
  margin: 12px 0 16px !important;
  padding: 0 !important;
  border: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}
.product-detail__price.has-sale del {
  color: #77859a;
  font-size: 17px;
  line-height: 1.15;
  font-weight: 600;
  opacity: .9;
}
.product-detail__price.has-sale ins {
  display: inline-flex;
  align-items: baseline;
  gap: 4px;
  color: #101b31;
  font-size: clamp(32px, 3vw, 42px);
  line-height: 1;
  font-weight: 900;
  text-decoration: none;
}
.product-detail__price.has-sale .woocommerce-Price-currencySymbol {
  font-size: .42em;
  color: #6d7b90;
  margin-left: 3px;
}

.ad-review-form-wrap,
.ad-reviews-list-wrap {
  max-width: 1000px !important;
  padding: 24px 28px !important;
  border-radius: 22px !important;
  box-shadow: none !important;
}
.ad-review-form-title,
.ad-reviews-title {
  font-size: 24px !important;
  font-weight: 800 !important;
}
.ad-review-rating-field,
.ad-review-form .comment-form-rating {
  padding: 0 !important;
  border: 0 !important;
  background: transparent !important;
}
.ad-rating-picker {
  display: inline-flex !important;
  flex-direction: row !important;
  gap: 4px !important;
  padding: 2px 0 4px;
}
.ad-rating-picker button {
  width: 32px !important;
  height: 32px !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  color: #b7bfcc !important;
  font-size: 30px !important;
  line-height: 1 !important;
  box-shadow: none !important;
  transform: none !important;
}
.ad-rating-picker button.is-lit,
.ad-rating-picker button.is-selected {
  color: #ff9f00 !important;
  background: transparent !important;
}
.ad-review-stars {
  color: #b7bfcc !important;
  gap: 3px !important;
  font-size: 22px !important;
}
.ad-review-stars .is-filled {
  color: #ff9f00 !important;
}
.ad-review-item {
  background: #f8fbff !important;
  border-color: #dfeaf7 !important;
  border-radius: 18px !important;
}
.ad-review-form input[type="text"],
.ad-review-form input[type="email"],
.ad-review-form textarea {
  background: #f8fbff !important;
}
.ad-product-reviews .comment-awaiting-moderation,
.ad-product-reviews .woocommerce-message,
.ad-product-reviews .woocommerce-info {
  display: none !important;
}

@media (max-width: 1180px) {
  .product-grid--4,
  .product-grid--related {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  }
}
@media (max-width: 900px) {
  .product-grid--4,
  .product-grid--related {
    display: flex !important;
    overflow-x: auto;
    gap: 12px !important;
    scroll-snap-type: x mandatory;
    padding: 2px 2px 12px;
    margin: 0 -2px;
    -webkit-overflow-scrolling: touch;
  }
  .product-grid--4 .product-card,
  .product-grid--related .product-card {
    flex: 0 0 calc(50% - 8px);
    scroll-snap-align: start;
  }
  .product-grid--4::-webkit-scrollbar,
  .product-grid--related::-webkit-scrollbar {
    height: 4px;
  }
  .product-grid--4::-webkit-scrollbar-thumb,
  .product-grid--related::-webkit-scrollbar-thumb {
    background: #cdd9e8;
    border-radius: 999px;
  }
}
@media (max-width: 640px) {
  .tabs__panel[data-tab="specs"] th,
  .tabs__panel[data-tab="specs"] td,
  .tabs__panel[data-tab="specs"] .woocommerce-product-attributes-item__label,
  .tabs__panel[data-tab="specs"] .woocommerce-product-attributes-item__value {
    display: block;
    width: 100%;
    padding: 10px 0;
  }
  .tabs__panel[data-tab="specs"] tr,
  .tabs__panel[data-tab="specs"] .woocommerce-product-attributes-item {
    display: block;
    padding: 12px 0;
  }
  .product-card__price {
    max-width: calc(100% - 78px);
    font-size: 18px;
  }
  .product-card__price ins {
    font-size: 18px;
  }
  .product-card__price del {
    font-size: 13px;
  }
  .ad-rating-picker button {
    width: 30px !important;
    height: 30px !important;
    font-size: 28px !important;
  }
}


/* AllDent v1.0.32 — safe fixes: visible review stars + legacy HTML tables without vertical text. */

/* WooCommerce default review stars fallback — do not hide them, style them as normal orange stars. */
.ad-product-reviews .comment-form-rating p.stars,
.ad-product-reviews .comment-form-rating p.stars span,
.woocommerce .ad-product-reviews .comment-form-rating p.stars,
.woocommerce .ad-product-reviews .comment-form-rating p.stars span {
  display: inline-flex !important;
  align-items: center !important;
  gap: 4px !important;
  margin: 0 !important;
  padding: 0 !important;
  line-height: 1 !important;
}

.ad-product-reviews .comment-form-rating p.stars a,
.woocommerce .ad-product-reviews .comment-form-rating p.stars a {
  position: relative !important;
  display: inline-grid !important;
  place-items: center !important;
  width: 32px !important;
  height: 32px !important;
  min-width: 32px !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow: hidden !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  color: transparent !important;
  text-indent: -9999px !important;
  text-decoration: none !important;
  font-size: 0 !important;
  line-height: 0 !important;
}

.ad-product-reviews .comment-form-rating p.stars a::before,
.woocommerce .ad-product-reviews .comment-form-rating p.stars a::before {
  content: "★" !important;
  position: absolute !important;
  inset: 0 !important;
  display: grid !important;
  place-items: center !important;
  width: 32px !important;
  height: 32px !important;
  color: #b8c0cc !important;
  font-family: Arial, sans-serif !important;
  font-size: 31px !important;
  line-height: 1 !important;
  text-indent: 0 !important;
  opacity: 1 !important;
}

.ad-product-reviews .comment-form-rating p.stars a.is-lit::before,
.ad-product-reviews .comment-form-rating p.stars a.is-selected::before,
.ad-product-reviews .comment-form-rating p.stars.selected a.active::before,
.woocommerce .ad-product-reviews .comment-form-rating p.stars a.is-lit::before,
.woocommerce .ad-product-reviews .comment-form-rating p.stars a.is-selected::before,
.woocommerce .ad-product-reviews .comment-form-rating p.stars.selected a.active::before {
  color: #ff9f00 !important;
}

/* Our custom picker, if comments.php is used, stays visible too. */
.ad-rating-picker,
.ad-review-rating-field .ad-rating-picker {
  display: inline-flex !important;
  flex-direction: row !important;
  align-items: center !important;
  gap: 4px !important;
  visibility: visible !important;
  opacity: 1 !important;
}

.ad-rating-picker button {
  color: #b8c0cc !important;
}
.ad-rating-picker button.is-lit,
.ad-rating-picker button.is-selected {
  color: #ff9f00 !important;
}

/* Do not show the submitted review on the frontend until admin approves it. */
.ad-product-reviews .comment-awaiting-moderation,
.ad-product-reviews .woocommerce-message,
.ad-product-reviews .woocommerce-info,
.ad-product-reviews .commentlist .comment:not(.approved),
.ad-product-reviews .commentlist .review:not(.approved) {
  display: none !important;
}

/* Legacy InSales description tables: keep the original HTML readable and stop letters from stacking vertically. */
.ad-description-content .ad-desc-table-wrap {
  display: block !important;
  width: 100% !important;
  max-width: 960px !important;
  overflow-x: auto !important;
  overflow-y: visible !important;
  border: 1px solid #dfe5ee !important;
  border-radius: 18px !important;
  background: #fff !important;
  box-shadow: none !important;
}

.ad-description-content table {
  width: 100% !important;
/*   min-width: 640px !important; */
  table-layout: auto !important;
  border-collapse: collapse !important;
  border-spacing: 0 !important;
  background: #fff !important;
}

.ad-description-content table td,
.ad-description-content table th {
  width: auto !important;
  min-width: 160px !important;
  max-width: none !important;
  padding: 13px 16px !important;
  border: 1px solid #e5eaf2 !important;
  color: #56637a !important;
  text-align: center !important;
  vertical-align: middle !important;
  white-space: normal !important;
  word-break: normal !important;
  overflow-wrap: normal !important;
  hyphens: none !important;
}

.ad-description-content table th,
.ad-description-content table tr:first-child td {
  background: #f4f6fa !important;
  color: #111b31 !important;
  font-weight: 700 !important;
}

.ad-description-content table img {
  display: block !important;
  width: auto !important;
  max-width: 100% !important;
  max-height: 240px !important;
  height: auto !important;
  margin: 0 auto !important;
  object-fit: contain !important;
  border-radius: 0 !important;
}

/* Keep pink headings and old-site text accenting, without repainting the whole content. */
.ad-description-content h2 strong:first-child,
.ad-description-content h3 strong:first-child,
.ad-description-content h4 strong:first-child,
.ad-description-content h2 span:first-child,
.ad-description-content h3 span:first-child,
.ad-description-content h4 span:first-child,
.ad-description-content .pink,
.ad-description-content .red,
.ad-description-content [style*="#ff"],
.ad-description-content [style*="pink"] {
  color: #ef2e78 !important;
}

@media (max-width: 767px) {
  .ad-description-content .ad-desc-table-wrap {
    max-width: 100% !important;
  }
  .ad-description-content table {
    min-width: 680px !important;
  }
  .ad-product-reviews .comment-form-rating p.stars a,
  .woocommerce .ad-product-reviews .comment-form-rating p.stars a,
  .ad-product-reviews .comment-form-rating p.stars a::before,
  .woocommerce .ad-product-reviews .comment-form-rating p.stars a::before {
    width: 28px !important;
    height: 28px !important;
    min-width: 28px !important;
    font-size: 27px !important;
  }
}


/* AllDent v1.0.33 — safe visual fixes: large legacy images, compact card prices and clean pagination. */
.ad-description-content .ad-desc-media,
.ad-description-content > p:has(> img:only-child),
.ad-description-content > div:not(.ad-desc-table-wrap):not(.ad-desc-card):not([class*="Box"]):has(> img:only-child),
.ad-description-content > div:not(.ad-desc-table-wrap):not(.ad-desc-card):not([class*="Box"]):has(> p > img:only-child) {
  display: block !important;
  width: 100% !important;
  max-width: 1040px !important;
  padding: 0 !important;
  margin: 0 0 18px !important;
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
}

.ad-description-content .ad-desc-media > img,
.ad-description-content > p > img:only-child,
.ad-description-content > div:not(.ad-desc-table-wrap):not(.ad-desc-card):not([class*="Box"]) > img:only-child,
.ad-description-content > div:not(.ad-desc-table-wrap):not(.ad-desc-card):not([class*="Box"]) > p > img:only-child {
  display: block !important;
/*   width: 100% !important; */
  max-width: 100% !important;
  height: auto !important;
  max-height: none !important;
  margin: 0 auto 18px !important;
  object-fit: contain !important;
  border-radius: 18px !important;
  box-shadow: none !important;
}

.ad-description-content .ad-desc-table-wrap img,
.ad-description-content table img,
.product-detail__short-description img,
.product-detail__short-description svg {
  width: auto !important;
  max-height: revert !important;
}

.product-card__price {
  display: block !important;
  max-width: calc(100% - 82px) !important;
  color: #101b31 !important;
  font-size: clamp(18px, 1.4vw, 22px) !important;
  font-weight: 900 !important;
  line-height: 1.12 !important;
  letter-spacing: -.01em;
}
.product-card__price .ad-card-price-from {
  color: #7a879a !important;
  font-size: .72em !important;
  font-weight: 700 !important;
  margin-right: 3px;
  text-transform: lowercase;
}
.product-card__price .woocommerce-Price-amount,
.product-card__price bdi,
.product-card__price .woocommerce-Price-currencySymbol {
  white-space: nowrap !important;
}
.product-card__price .woocommerce-Price-currencySymbol {
  font-size: .72em !important;
  color: #66758b !important;
  margin-left: 3px;
}
.product-card__price del,
.product-card__price ins {
  white-space: nowrap !important;
}
.product-card__price del + ins,
.product-card__price del + .ad-card-price-from,
.product-card__price ins + .ad-card-price-from {
  margin-top: 3px;
}
.product-card__actions {
  flex-shrink: 0;
}
.product-card__foot {
  gap: 8px !important;
}

.woocommerce-pagination.ad-pagination {
  width: 100%;
  margin: 34px 0 8px !important;
  display: flex;
  justify-content: center;
}
.woocommerce-pagination.ad-pagination ul.page-numbers {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  gap: 8px;
  list-style: none !important;
  padding: 0 !important;
  margin: 0 !important;
  border: 0 !important;
}
.woocommerce-pagination.ad-pagination ul.page-numbers li {
  list-style: none !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
}
.woocommerce-pagination.ad-pagination .page-numbers:not(ul) {
  min-width: 38px;
  height: 38px;
  padding: 0 12px;
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  border: 1px solid #dce8f5;
  border-radius: 999px;
  background: #fff;
  color: #526179;
  text-decoration: none !important;
  font-size: 14px;
  font-weight: 800;
  line-height: 1;
  transition: background .2s ease, color .2s ease, border-color .2s ease, transform .2s ease;
}
.woocommerce-pagination.ad-pagination a.page-numbers:hover {
  background: #eef6ff;
  border-color: var(--color-primary);
  color: var(--color-primary);
  transform: translateY(-1px);
}
.woocommerce-pagination.ad-pagination .page-numbers.current {
  background: var(--color-primary);
  border-color: var(--color-primary);
  color: #fff;
}
.woocommerce-pagination.ad-pagination .page-numbers.prev,
.woocommerce-pagination.ad-pagination .page-numbers.next {
  min-width: 42px;
  font-size: 22px;
  font-weight: 700;
  padding-bottom: 2px;
}
.woocommerce-pagination.ad-pagination .page-numbers.dots {
  border-color: transparent;
  background: transparent;
  min-width: 22px;
  padding: 0;
}

@media (max-width: 900px) {
  .ad-description-content .ad-desc-media,
  .ad-description-content > p:has(> img:only-child),
  .ad-description-content > div:not(.ad-desc-table-wrap):not(.ad-desc-card):not([class*="Box"]):has(> img:only-child),
  .ad-description-content > div:not(.ad-desc-table-wrap):not(.ad-desc-card):not([class*="Box"]):has(> p > img:only-child) {
    max-width: 100% !important;
  }
  .product-card__price {
    max-width: calc(100% - 72px) !important;
    font-size: 18px !important;
  }
  .woocommerce-pagination.ad-pagination {
    margin-top: 26px !important;
  }
  .woocommerce-pagination.ad-pagination ul.page-numbers {
    gap: 6px;
    flex-wrap: wrap;
  }
  .woocommerce-pagination.ad-pagination .page-numbers:not(ul) {
    min-width: 34px;
    height: 34px;
    padding: 0 10px;
    font-size: 13px;
  }
  .woocommerce-pagination.ad-pagination .page-numbers.prev,
  .woocommerce-pagination.ad-pagination .page-numbers.next {
    min-width: 38px;
    font-size: 20px;
  }
}

/* ---------- v1.0.34: delivery/about page safe layout fixes ---------- */
.delivery-section {
  padding-bottom: 18px;
}

.delivery-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 22px;
  align-items: stretch;
}

.delivery-grid .pay-panel {
  margin-bottom: 0;
  text-align: left;
}

.delivery-card {
  min-height: 100%;
  padding: 28px 30px;
  border-radius: 22px;
  box-shadow: 0 10px 26px rgba(10, 34, 68, 0.04);
}

.delivery-card .pay-panel__title {
  margin-bottom: 16px;
  font-size: 24px;
  line-height: 1.18;
  text-align: left;
}

.delivery-card p,
.delivery-card .pay-lines li {
  font-size: 15px;
  line-height: 1.62;
}

.delivery-card p + .pay-lines,
.delivery-card .pay-lines + p,
.delivery-card p + p {
  margin-top: 12px;
}

.delivery-card .pay-lines {
  gap: 7px;
}

.delivery-card--np {
  grid-column: span 1;
}

.delivery-card--attention {
  position: relative;
  padding-left: 104px;
}

.delivery-card--attention .pay-check {
  position: absolute;
  left: 28px;
  top: 76px;
  width: 54px;
  height: 54px;
  margin: 0;
  animation: adDeliveryCheckPulse 1.85s ease-in-out infinite;
}

.delivery-card--attention .pay-check svg {
  width: 28px;
  height: 28px;
}

@keyframes adDeliveryCheckPulse {
  0%, 100% {
    transform: scale(1);
    box-shadow: 0 8px 20px rgba(47, 174, 95, 0.22), 0 0 0 0 rgba(47, 174, 95, 0.24);
  }
  50% {
    transform: scale(1.06);
    box-shadow: 0 12px 28px rgba(47, 174, 95, 0.26), 0 0 0 12px rgba(47, 174, 95, 0.08);
  }
}

.delivery-split {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
  margin-top: 16px;
}

.delivery-split > div {
  border-radius: 14px;
  background: rgba(255, 255, 255, 0.55);
  border: 1px solid rgba(227, 235, 246, 0.8);
  padding: 14px 16px;
}

.pay-novaposhta {
  justify-content: flex-start;
  gap: 10px;
  margin: 16px 0 0;
  font-size: 22px;
  letter-spacing: 0;
  text-transform: uppercase;
}

.pay-novaposhta__mark {
  width: 34px;
  height: 34px;
  flex: 0 0 34px;
  border-radius: 10px;
}

.pay-novaposhta__mark svg {
  width: 20px;
  height: 20px;
}

.pay-novaposhta__text {
  color: #da291c;
  font-weight: 900;
}

.delivery-card .pay-phones {
  align-items: flex-start;
  gap: 8px;
  margin-top: 14px;
}

.delivery-card .pay-phones a {
  font-size: 18px;
  line-height: 1.2;
}

.section-page-categories {
  padding-bottom: 48px;
}

.cat-row--page-links .cat-tile {
  align-items: stretch;
  text-align: center;
}

.cat-row--page-links .cat-tile__thumb {
  border-radius: 18px;
  aspect-ratio: 1.15 / 1;
  background-image: none;
  box-shadow: 0 8px 18px rgba(10, 34, 68, 0.05);
}

.cat-row--page-links .cat-tile__thumb img {
  display: block;
}

.cat-row--page-links .cat-tile__label {
  min-height: 38px;
  display: flex;
  align-items: flex-start;
  justify-content: center;
}

@media (max-width: 1024px) {
  .delivery-grid {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 640px) {
  .delivery-card {
    padding: 24px 18px;
    border-radius: 18px;
  }
  .delivery-card--attention {
    padding-left: 18px;
    padding-top: 92px;
  }
  .delivery-card--attention .pay-check {
    left: 18px;
    top: 24px;
  }
  .delivery-split {
    grid-template-columns: 1fr;
  }
  .pay-novaposhta {
    font-size: 19px;
  }
  .cat-row--page-links .cat-tile__thumb {
    border-radius: 16px;
  }
}

/* ---------- v1.0.41: safe logo, delivery icon and page category images ---------- */
.header .logo img,
.header__main .logo img,
.header__top .logo img {
  height: 52px;
  width: auto;
  max-width: 178px;
  object-fit: contain;
}

.footer__brand .logo img,
.footer .logo img {
  height: 62px;
  width: auto;
  max-width: 220px;
  object-fit: contain;
}

.pay-novaposhta__mark--image {
  background: transparent !important;
  border-radius: 10px !important;
  overflow: hidden;
  box-shadow: 0 8px 18px rgba(218, 41, 28, 0.12);
}

.pay-novaposhta__mark--image img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.delivery-card--attention .pay-check {
  top: 46px !important;
}

.delivery-card--attention {
  padding-left: 104px;
}

.cat-row--page-links .cat-tile__thumb {
  padding: 0 !important;
  background: #f4f7fb !important;
}

.cat-row--page-links .cat-tile__thumb img {
  width: 100% !important;
  height: 100% !important;
  object-fit: contain !important;
  object-position: center center !important;
}

@media (max-width: 768px) {
  .header .logo img,
  .header__main .logo img,
  .header__top .logo img {
    height: 42px;
    max-width: 150px;
  }
  .footer__brand .logo img,
  .footer .logo img {
    height: 54px;
    max-width: 190px;
  }
}

@media (max-width: 640px) {
  .delivery-card--attention .pay-check {
    top: 22px !important;
  }
}


/* ---------- v1.0.42: transparent footer logo + no-crop page category thumbnails ---------- */
.footer__brand .logo,
.footer .logo {
  background: transparent !important;
  background-color: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  padding: 0 !important;
}
.footer__brand .logo::before,
.footer__brand .logo::after,
.footer .logo::before,
.footer .logo::after {
  display: none !important;
  content: none !important;
}
.footer__brand .logo img,
.footer .logo img,
.footer img[src*="logo"] {
  background: transparent !important;
  background-color: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  padding: 0 !important;
  mix-blend-mode: normal !important;
}

/* Нижні категорії на сторінках: картинка має вміщуватись повністю, без обрізання */
.cat-row--page-links .cat-tile__thumb,
.section-page-categories .cat-tile__thumb,
.page-template-page-about .cat-tile__thumb,
.page-template-page-delivery .cat-tile__thumb,
body .cat-row.cat-row--page-links .cat-tile__thumb {
  aspect-ratio: 1.48 / 1 !important;
  height: auto !important;
  min-height: 0 !important;
  max-height: none !important;
  padding: 0 !important;
  border-radius: 18px !important;
  background: #f5f7fb !important;
  background-image: none !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  overflow: hidden !important;
}
.cat-row--page-links .cat-tile__thumb img,
.section-page-categories .cat-tile__thumb img,
.page-template-page-about .cat-tile__thumb img,
.page-template-page-delivery .cat-tile__thumb img,
body .cat-row.cat-row--page-links .cat-tile__thumb img {
  width: 100% !important;
  height: 100% !important;
  min-width: 0 !important;
  min-height: 0 !important;
  max-width: 100% !important;
  max-height: 100% !important;
  object-fit: contain !important;
  object-position: center center !important;
  display: block !important;
  transform: none !important;
}
.cat-row--page-links .cat-tile:hover .cat-tile__thumb img,
.section-page-categories .cat-tile:hover .cat-tile__thumb img {
  transform: none !important;
}
@media (max-width: 768px) {
  .cat-row--page-links .cat-tile__thumb,
  .section-page-categories .cat-tile__thumb,
  body .cat-row.cat-row--page-links .cat-tile__thumb {
    aspect-ratio: 1.35 / 1 !important;
    border-radius: 16px !important;
  }
}

/* ==========================================================
   v1.0.43 — top header menu + visible phones
   Safe header-only styling. Product/card/cart logic is untouched.
   ========================================================== */
.header__top-inner {
  min-height: 42px;
  height: auto;
  gap: 18px;
}
.header__top-left {
  flex: 1 1 auto;
  min-width: 0;
  overflow: hidden;
}
.header-top-menu {
  display: flex;
  align-items: center;
  flex-wrap: nowrap;
  gap: 0;
  min-width: 0;
  max-width: 100%;
  overflow: hidden;
}
.header-top-menu a {
  display: inline-flex;
  align-items: center;
  min-height: 24px;
  padding: 3px 9px;
  border-right: 1px solid #d6e2ef;
  color: #4b5d72;
  font-size: 12px;
  line-height: 1.15;
  font-weight: 650;
  letter-spacing: -0.01em;
  white-space: nowrap;
  transition: color var(--t-fast);
}
.header-top-menu a:first-child {
  padding-left: 0;
}
.header-top-menu a:last-child {
  border-right: 0;
}
.header-top-menu a:hover {
  color: var(--color-primary);
}
.header-phones {
  display: flex;
  align-items: center;
  flex: 0 0 auto;
  gap: 7px;
}
.header-phone {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
  min-height: 30px;
  padding: 6px 10px;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-pill);
  background: #fff;
  color: var(--color-text);
  font-size: 12.5px;
  line-height: 1;
  font-weight: 800;
  white-space: nowrap;
  transition: border-color var(--t-fast), color var(--t-fast), box-shadow var(--t-fast);
}
.header-phone:hover {
  border-color: rgba(40, 136, 205, 0.45);
  color: var(--color-primary);
  box-shadow: 0 7px 18px rgba(23, 70, 114, 0.08);
}
.header-phone svg {
  width: 14px;
  height: 14px;
  flex: 0 0 14px;
}
@media (max-width: 1320px) {
  .header-top-menu a {
    padding-left: 6px;
    padding-right: 6px;
    font-size: 11.5px;
  }
  .header-phone {
    padding-left: 8px;
    padding-right: 8px;
    font-size: 12px;
  }
}
@media (max-width: 1160px) {
  .header__top-inner {
    gap: 10px;
  }
  .header-top-menu {
    overflow-x: auto;
    overflow-y: hidden;
    scrollbar-width: none;
  }
  .header-top-menu::-webkit-scrollbar {
    display: none;
  }
  .header-phone:first-child svg {
    display: none;
  }
}


/* ==========================================================
   v1.0.44 — no shadows, safer page category thumbnails,
   delivery attention icon top-left
   Only CSS/layout overrides. Product data, cart logic and imports are untouched.
   ========================================================== */

/* remove small unwanted shadows in header/page panels */
.header-phone,
.header-phone:hover,
.header-action,
.header-action:hover,
.header-cart,
.header-cart:hover,
.header-profile,
.header-profile:hover,
.header-wishlist,
.header-wishlist:hover,
.delivery-card,
.delivery-split > div,
.pay-panel,
.pay-panel--white,
.cat-row--page-links .cat-tile__thumb,
.section-page-categories .cat-tile__thumb,
.page-template-page-about .cat-tile__thumb,
.page-template-page-delivery .cat-tile__thumb {
  box-shadow: none !important;
}

/* delivery/about bottom category blocks: bigger, no side blue lines, no crop */
.section-page-categories {
  padding-top: 4px !important;
}
.cat-row--page-links {
  align-items: start !important;
  gap: 22px !important;
}
.cat-row--page-links .cat-tile,
.section-page-categories .cat-tile,
.page-template-page-about .cat-tile,
.page-template-page-delivery .cat-tile {
  gap: 10px !important;
  text-decoration: none !important;
}
.cat-row--page-links .cat-tile__thumb,
.section-page-categories .cat-tile__thumb,
.page-template-page-about .cat-tile__thumb,
.page-template-page-delivery .cat-tile__thumb,
body .cat-row.cat-row--page-links .cat-tile__thumb {
  width: 100% !important;
  height: 158px !important;
  aspect-ratio: auto !important;
  min-height: 158px !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 18px !important;
  background: #f6f8fb !important;
  background-image: none !important;
  outline: 0 !important;
  overflow: hidden !important;
  box-shadow: none !important;
  transform: none !important;
}
.cat-row--page-links .cat-tile__thumb img,
.section-page-categories .cat-tile__thumb img,
.page-template-page-about .cat-tile__thumb img,
.page-template-page-delivery .cat-tile__thumb img,
body .cat-row.cat-row--page-links .cat-tile__thumb img {
  width: 100% !important;
  height: 100% !important;
  min-width: 0 !important;
  min-height: 0 !important;
  max-width: 100% !important;
  max-height: 100% !important;
  object-fit: contain !important;
  object-position: center center !important;
  display: block !important;
  transform: none !important;
  filter: none !important;
}
.cat-row--page-links .cat-tile:hover .cat-tile__thumb,
.section-page-categories .cat-tile:hover .cat-tile__thumb,
.cat-row--page-links .cat-tile:hover .cat-tile__thumb img,
.section-page-categories .cat-tile:hover .cat-tile__thumb img {
  transform: none !important;
  box-shadow: none !important;
}
.cat-row--page-links .cat-tile__label,
.section-page-categories .cat-tile__label {
  min-height: 34px !important;
  padding: 0 2px !important;
  line-height: 1.22 !important;
}

/* delivery page: flatter cards and compact clean text */
.delivery-grid {
  gap: 20px !important;
}
.delivery-card {
  border-radius: 22px !important;
  border-color: #dfeaf5 !important;
  box-shadow: none !important;
}
.delivery-split > div {
  box-shadow: none !important;
}

/* move green check in the attention panel to the upper-left corner */
.delivery-card--attention {
  position: relative !important;
  padding: 28px 30px 28px 116px !important;
}
.delivery-card--attention .pay-check {
  left: 30px !important;
  top: 28px !important;
  width: 58px !important;
  height: 58px !important;
  margin: 0 !important;
  box-shadow: none !important;
}
.delivery-card--attention .pay-panel__title {
  margin-top: 2px !important;
}
.delivery-card--attention .pay-check::before,
.delivery-card--attention .pay-check::after {
  box-shadow: none !important;
}
@keyframes adDeliveryCheckPulse {
  0%, 100% { transform: none; box-shadow: none; }
  50% { transform: none; box-shadow: none; }
}

@media (max-width: 1180px) {
  .cat-row--page-links .cat-tile__thumb,
  .section-page-categories .cat-tile__thumb,
  .page-template-page-about .cat-tile__thumb,
  .page-template-page-delivery .cat-tile__thumb,
  body .cat-row.cat-row--page-links .cat-tile__thumb {
    height: 140px !important;
    min-height: 140px !important;
  }
}

@media (max-width: 768px) {
  .cat-row--page-links .cat-tile__thumb,
  .section-page-categories .cat-tile__thumb,
  .page-template-page-about .cat-tile__thumb,
  .page-template-page-delivery .cat-tile__thumb,
  body .cat-row.cat-row--page-links .cat-tile__thumb {
    height: 132px !important;
    min-height: 132px !important;
    border-radius: 16px !important;
  }
  .delivery-card--attention {
    padding: 96px 20px 24px 20px !important;
  }
  .delivery-card--attention .pay-check {
    left: 20px !important;
    top: 22px !important;
  }
}

@media (max-width: 560px) {
  .cat-row--page-links .cat-tile__thumb,
  .section-page-categories .cat-tile__thumb,
  .page-template-page-about .cat-tile__thumb,
  .page-template-page-delivery .cat-tile__thumb,
  body .cat-row.cat-row--page-links .cat-tile__thumb {
    height: 112px !important;
    min-height: 112px !important;
  }
}

/* AllDent v1.0.45 — NeoBiotech promo only + blue gradient, safer page category images */
.ad-category-promo-strip,
.ad-category-promo-strip--neobiotech {
  background: linear-gradient(100deg, #1976bd 0%, #2f8fda 34%, #69c8f2 68%, #1676bd 100%) !important;
  background-size: 260% 100% !important;
  animation: adCategoryPromoBlueFlow 9s ease-in-out infinite !important;
  box-shadow: none !important;
  border: 0 !important;
}
.ad-category-promo-strip::before,
.ad-category-promo-strip::after {
  display: none !important;
  content: none !important;
}
.ad-category-promo-strip span {
  color: #fff !important;
  font-weight: 700 !important;
}
.ad-category-promo-strip small {
  color: rgba(255,255,255,.92) !important;
}
@keyframes adCategoryPromoBlueFlow {
  0%, 100% { background-position: 0% 50%; }
  50% { background-position: 100% 50%; }
}

/* stronger no-crop category cards on delivery/about */
.cat-row--page-links,
.section-page-categories .cat-row {
  align-items: start !important;
}
.cat-row--page-links .cat-tile,
.section-page-categories .cat-tile,
.page-template-page-about .cat-tile,
.page-template-page-delivery .cat-tile {
  min-width: 0 !important;
}
.cat-row--page-links .cat-tile__thumb,
.section-page-categories .cat-tile__thumb,
.page-template-page-about .cat-tile__thumb,
.page-template-page-delivery .cat-tile__thumb,
body .cat-row.cat-row--page-links .cat-tile__thumb {
  height: 210px !important;
  min-height: 210px !important;
  max-height: none !important;
  background: #f7f9fc !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  overflow: hidden !important;
}
.cat-row--page-links .cat-tile__thumb img,
.section-page-categories .cat-tile__thumb img,
.page-template-page-about .cat-tile__thumb img,
.page-template-page-delivery .cat-tile__thumb img,
body .cat-row.cat-row--page-links .cat-tile__thumb img {
  width: 100% !important;
  height: 100% !important;
  object-fit: contain !important;
  object-position: center center !important;
  padding: 0 !important;
  margin: 0 auto !important;
}
@media (max-width: 1180px) {
  .cat-row--page-links .cat-tile__thumb,
  .section-page-categories .cat-tile__thumb,
  .page-template-page-about .cat-tile__thumb,
  .page-template-page-delivery .cat-tile__thumb,
  body .cat-row.cat-row--page-links .cat-tile__thumb {
    height: 156px !important;
    min-height: 156px !important;
  }
}
@media (max-width: 768px) {
  .cat-row--page-links .cat-tile__thumb,
  .section-page-categories .cat-tile__thumb,
  .page-template-page-about .cat-tile__thumb,
  .page-template-page-delivery .cat-tile__thumb,
  body .cat-row.cat-row--page-links .cat-tile__thumb {
    height: 160px !important;
    min-height: 160px !important;
  }
}

/* AllDent v1.0.46 — safe promo UI */
.ad-category-promo-strip--ubgen {
  background: linear-gradient(100deg, #176db3 0%, #29a3df 45%, #61c8f1 75%, #145fa2 100%) !important;
  background-size: 260% 100% !important;
  animation: adCategoryPromoBlueFlow 9s ease-in-out infinite !important;
  box-shadow: none !important;
  border: 0 !important;
}
.ad-category-promo-strip small {
  display: inline-block !important;
  max-width: 760px !important;
  line-height: 1.25 !important;
  vertical-align: middle !important;
}
.ad-promo-progress {
  margin: 0 0 22px !important;
  padding: 18px !important;
  border: 1px solid #d8e8f8 !important;
  border-radius: 22px !important;
  background: linear-gradient(180deg, #ffffff 0%, #f7fbff 100%) !important;
  box-shadow: none !important;
}
.ad-promo-progress__head {
  margin: 0 0 12px !important;
  color: #06152e !important;
  font-size: 22px !important;
  line-height: 1.2 !important;
  font-weight: 900 !important;
}
.ad-promo-progress__item {
  position: relative !important;
  display: grid !important;
  grid-template-columns: 180px 1fr !important;
  gap: 12px !important;
  align-items: start !important;
  margin-top: 10px !important;
  padding: 14px 16px !important;
  border: 1px solid #dce8f5 !important;
  border-radius: 16px !important;
  background: #fff !important;
}
.ad-promo-progress__item::before {
  content: '' !important;
  position: absolute !important;
  left: 0 !important;
  top: 14px !important;
  bottom: 14px !important;
  width: 4px !important;
  border-radius: 99px !important;
  background: #2b83c8 !important;
}
.ad-promo-progress__item.is-active {
  border-color: rgba(34, 166, 98, .35) !important;
  background: #f4fff8 !important;
}
.ad-promo-progress__item.is-active::before { background: #24a65b !important; }
.ad-promo-progress__item strong {
  color: #071630 !important;
  font-weight: 900 !important;
}
.ad-promo-progress__item span {
  color: #53647b !important;
  font-size: 14px !important;
  line-height: 1.45 !important;
}
@media (max-width: 768px) {
  .ad-category-promo-strip { align-items: center !important; gap: 6px !important; }
  .ad-category-promo-strip small { max-width: 100% !important; font-size: 12px !important; }
  .ad-promo-progress__item { grid-template-columns: 1fr !important; gap: 5px !important; padding-left: 18px !important; }
}


/* AllDent v1.0.47 — safe product exchange block removal fallback + cart item attributes inline */
.product-detail__short-description .wp-block-file:has(a[href*="dezintegr"]),
.product-detail__short-description .wp-block-file:has(a[href*="blank"]),
.product-detail__short-description .ad-desc-card:has(a[href*="dezintegr"]),
.product-detail__short-description .ad-desc-card:has(a[href*="blank"]),
.product-detail__short-description .ad-info-card:has(a[href*="dezintegr"]),
.product-detail__short-description .ad-info-card:has(a[href*="blank"]),
.product-detail__short-description .ad-desc-media:has(a[href*="dezintegr"]),
.product-detail__short-description .ad-desc-media:has(a[href*="blank"]),
.ad-description-content .wp-block-file:has(a[href*="dezintegr"]),
.ad-description-content .wp-block-file:has(a[href*="blank"]),
.ad-description-content .ad-desc-card:has(a[href*="dezintegr"]),
.ad-description-content .ad-desc-card:has(a[href*="blank"]),
.ad-description-content .ad-info-card:has(a[href*="dezintegr"]),
.ad-description-content .ad-info-card:has(a[href*="blank"]) {
  display: none !important;
}

.ad-cart-page .woocommerce-cart-form .product-name .variation,
.ad-wc-system-page .woocommerce-cart-form .product-name .variation,
.woocommerce-cart-form .product-name .variation {
  display: flex !important;
  flex-wrap: wrap !important;
  align-items: center !important;
  gap: 4px 14px !important;
  margin: 7px 0 0 !important;
  max-width: 680px !important;
  color: #5f6f86 !important;
  font-size: 13px !important;
  line-height: 1.35 !important;
}
.ad-cart-page .woocommerce-cart-form .product-name .variation dt,
.ad-wc-system-page .woocommerce-cart-form .product-name .variation dt,
.woocommerce-cart-form .product-name .variation dt {
  float: none !important;
  display: inline-flex !important;
  align-items: center !important;
  margin: 0 4px 0 0 !important;
  padding: 0 !important;
  font-weight: 700 !important;
  color: #6a7890 !important;
}
.ad-cart-page .woocommerce-cart-form .product-name .variation dd,
.ad-wc-system-page .woocommerce-cart-form .product-name .variation dd,
.woocommerce-cart-form .product-name .variation dd {
  float: none !important;
  display: inline-flex !important;
  align-items: center !important;
  margin: 0 12px 0 -10px !important;
  padding: 0 !important;
  color: #243247 !important;
}
.ad-cart-page .woocommerce-cart-form .product-name .variation dd p,
.ad-wc-system-page .woocommerce-cart-form .product-name .variation dd p,
.woocommerce-cart-form .product-name .variation dd p {
  margin: 0 !important;
  display: inline !important;
}
.ad-cart-page .woocommerce-cart-form .product-name .variation br,
.ad-wc-system-page .woocommerce-cart-form .product-name .variation br,
.woocommerce-cart-form .product-name .variation br {
  display: none !important;
}
@media (max-width: 767px) {
  .ad-cart-page .woocommerce-cart-form .product-name .variation,
  .ad-wc-system-page .woocommerce-cart-form .product-name .variation,
  .woocommerce-cart-form .product-name .variation {
    gap: 3px 10px !important;
    font-size: 12px !important;
  }
}

/* AllDent v1.0.48 — stable review rating fill + certificates/catalogs page. Safe CSS only. */
.ad-rating-picker {
  display: inline-flex !important;
  align-items: center !important;
  gap: 5px !important;
}
.ad-rating-picker button,
.ad-product-reviews .ad-rating-picker button {
  appearance: none !important;
  -webkit-appearance: none !important;
  width: 34px !important;
  height: 34px !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  color: #b7bfcc !important;
  font-size: 30px !important;
  line-height: 1 !important;
  cursor: pointer !important;
  box-shadow: none !important;
  transform: none !important;
  text-shadow: none !important;
}
.ad-rating-picker button.is-filled,
.ad-rating-picker button.is-lit,
.ad-rating-picker button.is-selected,
.ad-product-reviews .ad-rating-picker button.is-filled,
.ad-product-reviews .ad-rating-picker button.is-lit,
.ad-product-reviews .ad-rating-picker button.is-selected {
  color: #ff9f00 !important;
  background: transparent !important;
}
.ad-rating-picker button:hover,
.ad-rating-picker button:focus-visible {
  color: #ff9f00 !important;
  outline: none !important;
}
.ad-review-rating-field,
.ad-review-form .comment-form-rating {
  border: 1px solid #ffe0a3 !important;
  background: #fff7df !important;
  border-radius: 16px !important;
  padding: 18px !important;
}
.ad-review-stars span { color: #b7bfcc !important; }
.ad-review-stars span.is-filled { color: #ff9f00 !important; }

.ad-docs-main { background: #fff; }
.ad-docs-page { padding: 34px 0 78px; }
.ad-docs-breadcrumbs { margin-bottom: 20px; }
.ad-docs-head { max-width: 900px; margin: 0 0 28px; }
.ad-docs-head h1 {
  margin: 0 0 12px;
  color: #111c32;
  font-size: clamp(34px, 4vw, 56px);
  line-height: 1.05;
  font-weight: 900;
  letter-spacing: -0.04em;
}
.ad-docs-head p {
  margin: 0;
  color: #607087;
  font-size: 17px;
  line-height: 1.55;
}
.ad-docs-tabs {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin: 0 0 26px;
}
.ad-docs-tabs button {
  border: 1px solid #dce8f6;
  border-radius: 999px;
  background: #fff;
  color: #243247;
  padding: 12px 20px;
  font-size: 14px;
  font-weight: 800;
  cursor: pointer;
  transition: .18s ease;
}
.ad-docs-tabs button:hover,
.ad-docs-tabs button.is-active {
  border-color: #2d84c8;
  background: #2d84c8;
  color: #fff;
}
.ad-docs-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 24px;
}
.ad-doc-card {
  display: flex;
  flex-direction: column;
  min-height: 100%;
  overflow: hidden;
  border: 1px solid #e1e9f4;
  border-radius: 22px;
  background: #fff;
  box-shadow: none;
}
.ad-doc-card[hidden] { display: none !important; }
.ad-doc-card__media {
  display: grid;
  place-items: center;
  height: 290px;
  padding: 22px;
  background: #f2f4f7;
}
.ad-doc-card__media img {
  display: block;
  max-width: 100%;
  max-height: 100%;
  width: auto;
  height: auto;
  object-fit: contain;
}
.ad-doc-card__placeholder {
  display: grid;
  place-items: center;
  width: 100%;
  height: 100%;
  border-radius: 18px;
  background: linear-gradient(135deg, #eef6ff, #fff3f8);
  color: #2d84c8;
  font-weight: 900;
}
.ad-doc-card__body { padding: 18px 20px 12px; }
.ad-doc-card__type {
  display: inline-flex;
  margin: 0 0 8px;
  color: #ff3f8f;
  font-size: 12px;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: .08em;
}
.ad-doc-card__brand {
  margin: -3px 0 8px;
  color: #718199;
  font-size: 13px;
  font-weight: 700;
}
.ad-doc-card h3 {
  margin: 0;
  color: #111c32;
  font-size: 18px;
  line-height: 1.25;
  font-weight: 900;
}
.ad-doc-card__actions {
  margin-top: auto;
  border-top: 1px solid #e1e9f4;
}
.ad-doc-card__link {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 58px;
  padding: 13px 16px;
  color: #ff3f8f;
  font-size: 15px;
  font-weight: 900;
  text-align: center;
  text-decoration: none;
  border-bottom: 1px solid #e1e9f4;
  transition: .18s ease;
}
.ad-doc-card__link:last-child { border-bottom: 0; }
.ad-doc-card__link:hover { background: #fff5fa; color: #e92979; }
.ad-docs-empty {
  padding: 30px;
  border: 1px dashed #cbd9ea;
  border-radius: 22px;
  background: #f8fbff;
  color: #5f6f86;
}
.ad-docs-empty h2 { margin: 0 0 8px; color: #111c32; }
@media (max-width: 1180px) {
  .ad-docs-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 820px) {
  .ad-docs-page { padding: 24px 0 56px; }
  .ad-docs-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
  .ad-doc-card__media { height: 230px; padding: 16px; }
}
@media (max-width: 560px) {
  .ad-docs-grid { grid-template-columns: 1fr; }
  .ad-doc-card__media { height: 260px; }
}

/* AllDent v1.0.51 — safe reviews anchor + RU certificates page support. */
html {
  scroll-behavior: smooth;
}
#reviews {
  scroll-margin-top: 145px;
}
@media (max-width: 767px) {
  #reviews {
    scroll-margin-top: 92px;
  }
}

/* AllDent v1.0.51 — safe variable product selected label cleanup.
   Fixes WooCommerce default single-variation text/description appearing near add-to-cart.
   Does not touch product data, variation IDs, cart logic, prices, imports or Polylang. */
.single-product .ad-product-purchase form.variations_form .single_variation,
.single-product .ad-product-purchase form.variations_form .woocommerce-variation.single_variation,
.single-product .ad-product-purchase form.variations_form .woocommerce-variation-description,
.single-product .ad-product-purchase form.variations_form .woocommerce-variation-availability {
  display: none !important;
  visibility: hidden !important;
  height: 0 !important;
  min-height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow: hidden !important;
}

.single-product .ad-product-purchase form.variations_form .single_variation_wrap {
  width: 100%;
}

.single-product .ad-product-purchase form.variations_form .woocommerce-variation-add-to-cart,
.single-product .ad-product-purchase form.variations_form .variations_button {
  display: flex !important;
  align-items: center;
  gap: 14px;
  width: 100%;
  margin-top: 18px;
}

.single-product .ad-product-purchase form.variations_form .woocommerce-variation-add-to-cart .qty,
.single-product .ad-product-purchase form.variations_form .variations_button .qty {
  flex: 0 0 auto;
}

.single-product .ad-product-purchase form.variations_form .single_add_to_cart_button {
  flex: 1 1 auto;
  min-width: 220px;
}

@media (max-width: 640px) {
  .single-product .ad-product-purchase form.variations_form .woocommerce-variation-add-to-cart,
  .single-product .ad-product-purchase form.variations_form .variations_button {
    flex-wrap: wrap;
  }
  .single-product .ad-product-purchase form.variations_form .single_add_to_cart_button {
    min-width: 0;
    width: 100%;
  }
}


/* AllDent v1.0.54 — safe single product price range fix.
   Fixes visible WooCommerce screen-reader price text and broken variable price layout only.
   Does not touch product data, variations, cart, checkout, imports or Polylang. */
.screen-reader-text,
.product-detail__price .screen-reader-text,
.woocommerce .screen-reader-text {
  border: 0 !important;
  clip: rect(1px, 1px, 1px, 1px) !important;
  clip-path: inset(50%) !important;
  height: 1px !important;
  margin: -1px !important;
  overflow: hidden !important;
  padding: 0 !important;
  position: absolute !important;
  width: 1px !important;
  word-wrap: normal !important;
}
.product-detail__price .ad-single-price-range,
.product-detail__price .ad-single-price {
  display: inline-flex !important;
  align-items: baseline !important;
  flex-wrap: nowrap !important;
  gap: 10px !important;
  max-width: 100% !important;
  white-space: nowrap !important;
  color: #071833 !important;
  font-weight: 900 !important;
  line-height: 1 !important;
  font-size: clamp(30px, 3vw, 42px) !important;
  letter-spacing: -0.03em !important;
}
.product-detail__price .ad-single-price-range__amount {
  display: inline-flex !important;
  align-items: baseline !important;
  white-space: nowrap !important;
}
.product-detail__price .ad-single-price-range__separator {
  display: inline-block !important;
  color: #071833 !important;
  font-weight: 900 !important;
  line-height: 1 !important;
}
.product-detail__price .woocommerce-Price-amount,
.product-detail__price .woocommerce-Price-currencySymbol {
  white-space: nowrap !important;
}
.product-detail__price .ad-single-price-range .woocommerce-Price-currencySymbol,
.product-detail__price .ad-single-price .woocommerce-Price-currencySymbol {
  font-size: .42em !important;
  color: #6d7b90 !important;
  margin-left: 4px !important;
}
@media (max-width: 560px) {
  .product-detail__price .ad-single-price-range,
  .product-detail__price .ad-single-price {
    font-size: clamp(26px, 8vw, 34px) !important;
    gap: 7px !important;
  }
}

/* AllDent v1.0.54 — safer faster home NeoBiotech output + improved mobile catalog drawer. */
.home-mobile-more {
  display: none;
}

@media (max-width: 560px) {
  .section--home-neo .product-grid--6 > .product-card:nth-of-type(n+5) {
    display: none !important;
  }
  .section--home-neo .section-head .section-link {
    display: none;
  }
  .section--home-neo .home-mobile-more {
    display: flex;
    justify-content: center;
    margin-top: 18px;
  }
  .section--home-neo .home-mobile-more .btn {
    width: 100%;
    max-width: 320px;
  }
}

.mobile-catalog-drawer .drawer__panel {
  width: min(420px, 94vw);
}

.mobile-catalog-drawer .drawer__body {
  background: #f7faff;
}

.mobile-catalog-drawer .m-catalog-list {
  display: grid;
  gap: 10px;
  padding-bottom: 4px;
}

.mobile-catalog-drawer .m-catalog-group {
  display: block;
  border: 1px solid #dfeaf6;
  border-radius: 18px;
  background: #fff;
  overflow: hidden;
}

.mobile-catalog-drawer .m-catalog-card {
  display: grid;
  grid-template-columns: 1fr 42px;
  align-items: stretch;
}

.mobile-catalog-drawer .m-catalog-link {
  display: grid;
  grid-template-columns: 50px 1fr;
  align-items: center;
  gap: 12px;
  padding: 10px 12px;
  min-width: 0;
  color: #111c32;
  text-decoration: none;
}

.mobile-catalog-drawer .m-catalog-link img {
  width: 50px;
  height: 50px;
  object-fit: contain;
  border-radius: 12px;
  background: #f1f5fa;
}

.mobile-catalog-drawer .m-catalog-link span {
  min-width: 0;
  font-weight: 800;
  font-size: 14px;
  line-height: 1.25;
  color: #27344d;
}

.mobile-catalog-drawer .m-catalog-toggle {
  display: grid;
  place-items: center;
  width: 42px;
  height: 100%;
  min-height: 70px;
  border: 0;
  border-left: 1px solid #edf3fa;
  background: #fff;
  color: #2d84c8;
}

.mobile-catalog-drawer .m-catalog-toggle svg {
  width: 17px;
  height: 17px;
  transition: transform .2s ease;
}

.mobile-catalog-drawer .m-catalog-group.is-open .m-catalog-toggle svg {
  transform: rotate(180deg);
}

.mobile-catalog-drawer .m-catalog-sublinks[hidden] {
  display: none !important;
}

.mobile-catalog-drawer .m-catalog-sublinks {
  display: grid;
  gap: 0;
  padding: 4px 12px 12px 74px;
  border-top: 1px solid #edf3fa;
  background: linear-gradient(180deg, #fff, #fbfdff);
}

.mobile-catalog-drawer .m-catalog-sublinks a {
  display: block;
  padding: 9px 0;
  border-left: 0;
  color: #65738a;
  font-size: 13px;
  line-height: 1.3;
  text-decoration: none;
}

.mobile-catalog-drawer .m-catalog-sublinks a:hover {
  color: #2d84c8;
}

/* AllDent v1.0.55 — safe visual fixes for page category tiles, document covers and sale prices.
   Only CSS/layout and product-card price display were changed. Product data, variations, cart, checkout and imports are not touched. */
.section-page-categories .cat-row--page-links,
.page-template-page-about .cat-row--page-links,
.page-template-page-delivery .cat-row--page-links,
.cat-row.cat-row--page-links {
  align-items: flex-start !important;
  gap: 28px !important;
}
.section-page-categories .cat-row--page-links .cat-tile,
.page-template-page-about .cat-row--page-links .cat-tile,
.page-template-page-delivery .cat-row--page-links .cat-tile,
.cat-row.cat-row--page-links .cat-tile {
  width: calc((100% - 140px) / 6) !important;
  min-width: 0 !important;
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  padding: 0 !important;
  text-decoration: none !important;
}
.section-page-categories .cat-row--page-links .cat-tile__thumb,
.page-template-page-about .cat-row--page-links .cat-tile__thumb,
.page-template-page-delivery .cat-row--page-links .cat-tile__thumb,
.cat-row.cat-row--page-links .cat-tile__thumb {
  width: 100% !important;
  height: 156px !important;
  min-height: 156px !important;
  border-radius: 14px !important;
  overflow: hidden !important;
  background: #f2f5fa !important;
  box-shadow: none !important;
  border: 0 !important;
  padding: 0 !important;
  display: block !important;
}
.section-page-categories .cat-row--page-links .cat-tile__thumb img,
.page-template-page-about .cat-row--page-links .cat-tile__thumb img,
.page-template-page-delivery .cat-row--page-links .cat-tile__thumb img,
.cat-row.cat-row--page-links .cat-tile__thumb img {
  width: 100% !important;
  height: 100% !important;
  max-width: none !important;
  max-height: none !important;
  object-fit: cover !important;
  object-position: center !important;
  display: block !important;
  filter: grayscale(1) opacity(.78) !important;
  transform: none !important;
}
.section-page-categories .cat-row--page-links .cat-tile__label,
.page-template-page-about .cat-row--page-links .cat-tile__label,
.page-template-page-delivery .cat-row--page-links .cat-tile__label,
.cat-row.cat-row--page-links .cat-tile__label {
  margin-top: 12px !important;
  font-size: 14px !important;
  line-height: 1.25 !important;
  font-weight: 800 !important;
  color: #071833 !important;
  text-align: center !important;
}
.ad-doc-card__media {
  height: 360px !important;
  padding: 0 !important;
  background: #eef3f8 !important;
  overflow: hidden !important;
  border-radius: 22px 22px 0 0 !important;
}
.ad-doc-card__media img {
  width: 100% !important;
  height: 100% !important;
  max-width: none !important;
  max-height: none !important;
  object-fit: cover !important;
  object-position: center !important;
  display: block !important;
}
.product-card__badge.badge--sale,
.badge--sale {
  top: 16px !important;
  left: 16px !important;
  right: auto !important;
  min-width: 58px !important;
  height: 36px !important;
  padding: 0 14px !important;
  border-radius: 999px !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  background: #d94b52 !important;
  color: #fff !important;
  font-size: 14px !important;
  line-height: 1 !important;
  font-weight: 900 !important;
  letter-spacing: -.02em !important;
  z-index: 3 !important;
}
.product-card__price .ad-card-sale-price,
.product-card__price--sale .ad-card-sale-price {
  display: grid !important;
  gap: 3px !important;
  align-items: start !important;
}
.product-card__price .ad-card-sale-price del,
.product-card__price--sale del {
  display: block !important;
  color: #8a96a8 !important;
  font-size: 14px !important;
  line-height: 1.1 !important;
  font-weight: 700 !important;
  text-decoration: line-through !important;
  opacity: .95 !important;
  margin: 0 !important;
}
.product-card__price .ad-card-sale-price ins,
.product-card__price--sale ins {
  display: inline-flex !important;
  align-items: baseline !important;
  gap: 4px !important;
  color: #071833 !important;
  font-size: 23px !important;
  line-height: 1.05 !important;
  font-weight: 900 !important;
  text-decoration: none !important;
  margin: 0 !important;
}
.product-card__price .ad-card-sale-price ins .woocommerce-Price-currencySymbol,
.product-card__price .ad-card-sale-price del .woocommerce-Price-currencySymbol,
.product-card__price--sale ins .woocommerce-Price-currencySymbol,
.product-card__price--sale del .woocommerce-Price-currencySymbol {
  font-size: .72em !important;
}
@media (max-width: 1180px) {
  .section-page-categories .cat-row--page-links,
  .page-template-page-about .cat-row--page-links,
  .page-template-page-delivery .cat-row--page-links,
  .cat-row.cat-row--page-links { gap: 18px !important; }
  .section-page-categories .cat-row--page-links .cat-tile,
  .page-template-page-about .cat-row--page-links .cat-tile,
  .page-template-page-delivery .cat-row--page-links .cat-tile,
  .cat-row.cat-row--page-links .cat-tile { width: calc((100% - 54px) / 4) !important; }
}
@media (max-width: 767px) {
  .section-page-categories .cat-row--page-links,
  .page-template-page-about .cat-row--page-links,
  .page-template-page-delivery .cat-row--page-links,
  .cat-row.cat-row--page-links {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 16px !important;
  }
  .section-page-categories .cat-row--page-links .cat-tile,
  .page-template-page-about .cat-row--page-links .cat-tile,
  .page-template-page-delivery .cat-row--page-links .cat-tile,
  .cat-row.cat-row--page-links .cat-tile { width: 100% !important; }
  .section-page-categories .cat-row--page-links .cat-tile__thumb,
  .page-template-page-about .cat-row--page-links .cat-tile__thumb,
  .page-template-page-delivery .cat-row--page-links .cat-tile__thumb,
  .cat-row.cat-row--page-links .cat-tile__thumb { height: 132px !important; min-height: 132px !important; }
  .ad-doc-card__media { height: 300px !important; }
}

/* AllDent v1.0.59 — safe review radio stars + brighter cart/checkout promo progress. */
.ad-review-rating-field .ad-review-rating-label {
  display: block !important;
  margin: 0 0 12px !important;
  color: #111b31 !important;
  font-size: 14px !important;
  font-weight: 800 !important;
}
.ad-review-rating-field .ad-rating-radios {
  display: inline-flex !important;
  flex-direction: row-reverse !important;
  justify-content: flex-end !important;
  align-items: center !important;
  gap: 8px !important;
}
.ad-review-rating-field .ad-rating-radios input {
  position: absolute !important;
  opacity: 0 !important;
  width: 1px !important;
  height: 1px !important;
  pointer-events: none !important;
}
.ad-review-rating-field .ad-rating-radios label {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 34px !important;
  height: 34px !important;
  margin: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  color: #b7bfcc !important;
  font-size: 31px !important;
  line-height: 1 !important;
  cursor: pointer !important;
  transition: color .15s ease, transform .15s ease !important;
}
.ad-review-rating-field .ad-rating-radios label:hover,
.ad-review-rating-field .ad-rating-radios label:hover ~ label,
.ad-review-rating-field .ad-rating-radios input:checked ~ label {
  color: #ff9f00 !important;
}
.ad-review-rating-field .ad-rating-radios label:hover {
  transform: translateY(-1px) !important;
}
.ad-review-rating-field .ad-rating-radios input:focus-visible + label {
  outline: 2px solid rgba(45,132,200,.35) !important;
  outline-offset: 3px !important;
  border-radius: 8px !important;
}

.ad-promo-progress {
  margin: 0 0 28px !important;
  padding: 22px !important;
  border: 1px solid #d7e8fb !important;
  border-radius: 22px !important;
  background: linear-gradient(135deg, #f3f9ff 0%, #ffffff 48%, #f7fbff 100%) !important;
  box-shadow: none !important;
}
.ad-promo-progress__head {
  margin: 0 0 16px !important;
  color: #071833 !important;
  font-size: 24px !important;
  line-height: 1.15 !important;
  font-weight: 900 !important;
}
.ad-promo-progress__item {
  position: relative !important;
  display: block !important;
  padding: 16px 18px !important;
  margin: 0 0 12px !important;
  border: 1px solid #d9e9fb !important;
  border-radius: 18px !important;
  background: #fff !important;
  overflow: hidden !important;
}
.ad-promo-progress__item:last-child {
  margin-bottom: 0 !important;
}
.ad-promo-progress__item::before {
  display: none !important;
}
.ad-promo-progress__top {
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: 12px !important;
  margin-bottom: 8px !important;
}
.ad-promo-progress__top strong,
.ad-promo-progress__item strong {
  display: block !important;
  color: #071833 !important;
  font-size: 16px !important;
  line-height: 1.25 !important;
  font-weight: 900 !important;
}
.ad-promo-progress__top em {
  flex: 0 0 auto !important;
  padding: 7px 12px !important;
  border-radius: 999px !important;
  background: #1fae62 !important;
  color: #fff !important;
  font-size: 12px !important;
  line-height: 1 !important;
  font-style: normal !important;
  font-weight: 900 !important;
}
.ad-promo-progress__item span {
  display: block !important;
  color: #4e5d73 !important;
  font-size: 14px !important;
  line-height: 1.45 !important;
  font-weight: 600 !important;
  margin: 0 0 12px !important;
}
.ad-promo-bar {
  position: relative !important;
  width: 100% !important;
  height: 12px !important;
  border-radius: 999px !important;
  background: #e9f1fa !important;
  overflow: hidden !important;
  box-shadow: inset 0 0 0 1px rgba(37, 105, 170, .05) !important;
}
.ad-promo-bar i {
  display: block !important;
  width: 0;
  height: 100% !important;
  border-radius: inherit !important;
  background: linear-gradient(90deg, #2d84c8, #47b3ff) !important;
  transition: width .25s ease !important;
}
.ad-promo-progress__item.is-active {
  border-color: #bfe8d2 !important;
  background: linear-gradient(135deg, #f1fff7, #ffffff) !important;
}
.ad-promo-progress__item.is-active .ad-promo-bar {
  background: #dff7ea !important;
}
.ad-promo-progress__item.is-active .ad-promo-bar i {
  background: linear-gradient(90deg, #20a95f, #68d997) !important;
}
.ad-promo-progress__meta {
  display: flex !important;
  justify-content: space-between !important;
  gap: 10px !important;
  margin-top: 7px !important;
  color: #2d84c8 !important;
  font-size: 13px !important;
  line-height: 1.35 !important;
  font-weight: 800 !important;
}
@media (max-width: 767px) {
  .ad-promo-progress {
    padding: 16px !important;
    border-radius: 18px !important;
  }
  .ad-promo-progress__head {
    font-size: 20px !important;
  }
  .ad-promo-progress__top {
    align-items: flex-start !important;
    flex-direction: column !important;
    gap: 8px !important;
  }
  .ad-promo-progress__item {
    padding: 14px !important;
  }
}


/* AllDent v1.0.60 — safe checkout promo placement, fixed review stars and page category thumbnails.
   UI-only: does not change product data, prices, variations, cart calculations, import data or Polylang links. */
.ad-review-rating-field .ad-rating-radios {
  display: inline-flex !important;
  flex-direction: row-reverse !important;
  justify-content: flex-end !important;
  align-items: center !important;
  gap: 8px !important;
}
.ad-review-rating-field .ad-rating-radios label {
  color: #b7bfcc !important;
}
.ad-review-rating-field .ad-rating-radios label.is-lit,
.ad-review-rating-field .ad-rating-radios label.is-selected,
.ad-review-rating-field .ad-rating-radios input:checked + label {
  color: #ff9f00 !important;
}
.ad-review-rating-field .ad-rating-radios:hover label:not(.is-lit) {
  color: #b7bfcc !important;
}
.ad-review-rating-field .ad-rating-radios label:hover {
  color: #ff9f00 !important;
}

.ad-checkout-page .woocommerce-checkout .ad-promo-progress--checkout,
.woocommerce-checkout-review-order .ad-promo-progress--checkout {
  margin: 18px 0 20px !important;
  padding: 16px !important;
  border-radius: 18px !important;
  border: 1px solid #d7e8fb !important;
  background: linear-gradient(135deg, #f5faff 0%, #ffffff 100%) !important;
  box-shadow: none !important;
}
.ad-checkout-page .woocommerce-checkout .ad-promo-progress--checkout .ad-promo-progress__head,
.woocommerce-checkout-review-order .ad-promo-progress--checkout .ad-promo-progress__head {
  margin: 0 0 12px !important;
  font-size: 18px !important;
  line-height: 1.2 !important;
}
.ad-checkout-page .woocommerce-checkout .ad-promo-progress--checkout .ad-promo-progress__item,
.woocommerce-checkout-review-order .ad-promo-progress--checkout .ad-promo-progress__item {
  padding: 12px 13px !important;
  margin: 0 0 10px !important;
  border-radius: 14px !important;
}
.ad-checkout-page .woocommerce-checkout .ad-promo-progress--checkout .ad-promo-progress__top,
.woocommerce-checkout-review-order .ad-promo-progress--checkout .ad-promo-progress__top {
  margin-bottom: 6px !important;
}
.ad-checkout-page .woocommerce-checkout .ad-promo-progress--checkout .ad-promo-progress__top strong,
.woocommerce-checkout-review-order .ad-promo-progress--checkout .ad-promo-progress__top strong {
  font-size: 14px !important;
}
.ad-checkout-page .woocommerce-checkout .ad-promo-progress--checkout .ad-promo-progress__item span,
.woocommerce-checkout-review-order .ad-promo-progress--checkout .ad-promo-progress__item span {
  margin: 0 0 9px !important;
  font-size: 12.5px !important;
  line-height: 1.35 !important;
  font-weight: 600 !important;
}
.ad-checkout-page .woocommerce-checkout .ad-promo-progress--checkout .ad-promo-bar,
.woocommerce-checkout-review-order .ad-promo-progress--checkout .ad-promo-bar {
  height: 9px !important;
}
.ad-checkout-page .woocommerce-checkout .ad-promo-progress--checkout .ad-promo-progress__meta,
.woocommerce-checkout-review-order .ad-promo-progress--checkout .ad-promo-progress__meta {
  font-size: 12px !important;
  margin-top: 6px !important;
}
.ad-cart-page .ad-promo-progress--cart {
  margin: 0 0 22px !important;
  padding: 18px !important;
}

.section-page-categories .cat-row--page-links,
.page-template-page-about .cat-row--page-links,
.page-template-page-delivery .cat-row--page-links,
.cat-row.cat-row--page-links {
  display: grid !important;
  grid-template-columns: repeat(6, minmax(0, 1fr)) !important;
  align-items: start !important;
  gap: 24px !important;
}
.section-page-categories .cat-row--page-links .cat-tile,
.page-template-page-about .cat-row--page-links .cat-tile,
.page-template-page-delivery .cat-row--page-links .cat-tile,
.cat-row.cat-row--page-links .cat-tile {
  width: 100% !important;
  min-width: 0 !important;
  max-width: none !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: stretch !important;
  gap: 12px !important;
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  padding: 0 !important;
  text-decoration: none !important;
}
.section-page-categories .cat-row--page-links .cat-tile__thumb,
.page-template-page-about .cat-row--page-links .cat-tile__thumb,
.page-template-page-delivery .cat-row--page-links .cat-tile__thumb,
.cat-row.cat-row--page-links .cat-tile__thumb {
  width: 100% !important;
  height: auto !important;
  min-height: 0 !important;
  aspect-ratio: 1 / 1 !important;
  border-radius: 18px !important;
  overflow: hidden !important;
  background: #f3f6fb !important;
  display: block !important;
  padding: 0 !important;
}
.section-page-categories .cat-row--page-links .cat-tile__thumb img,
.page-template-page-about .cat-row--page-links .cat-tile__thumb img,
.page-template-page-delivery .cat-row--page-links .cat-tile__thumb img,
.cat-row.cat-row--page-links .cat-tile__thumb img {
  width: 100% !important;
  height: 100% !important;
  max-width: none !important;
  max-height: none !important;
  min-width: 0 !important;
  min-height: 0 !important;
  object-fit: cover !important;
  object-position: center center !important;
  display: block !important;
  filter: none !important;
  opacity: 1 !important;
  transform: none !important;
}
.section-page-categories .cat-row--page-links .cat-tile__label,
.page-template-page-about .cat-row--page-links .cat-tile__label,
.page-template-page-delivery .cat-row--page-links .cat-tile__label,
.cat-row.cat-row--page-links .cat-tile__label {
  margin-top: 0 !important;
  min-height: 0 !important;
  color: #071833 !important;
  font-size: 14px !important;
  line-height: 1.2 !important;
  font-weight: 900 !important;
  text-align: center !important;
}
@media (max-width: 1180px) {
  .section-page-categories .cat-row--page-links,
  .page-template-page-about .cat-row--page-links,
  .page-template-page-delivery .cat-row--page-links,
  .cat-row.cat-row--page-links {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    gap: 22px !important;
  }
}
@media (max-width: 767px) {
  .section-page-categories .cat-row--page-links,
  .page-template-page-about .cat-row--page-links,
  .page-template-page-delivery .cat-row--page-links,
  .cat-row.cat-row--page-links {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 16px !important;
  }
  .section-page-categories .cat-row--page-links .cat-tile__thumb,
  .page-template-page-about .cat-row--page-links .cat-tile__thumb,
  .page-template-page-delivery .cat-row--page-links .cat-tile__thumb,
  .cat-row.cat-row--page-links .cat-tile__thumb {
    aspect-ratio: 1.05 / 1 !important;
    border-radius: 16px !important;
  }
  .ad-checkout-page .woocommerce-checkout .ad-promo-progress--checkout,
  .woocommerce-checkout-review-order .ad-promo-progress--checkout {
    margin: 14px 0 16px !important;
    padding: 14px !important;
  }
}


/* AllDent v1.0.61 — right-side promo placement, true left-to-right review stars, fuller page category thumbs. */
.ad-review-rating-field .ad-rating-radios {
  display: inline-flex !important;
  flex-direction: row !important;
  justify-content: flex-start !important;
  align-items: center !important;
  gap: 6px !important;
}
.ad-review-rating-field .ad-rating-radios label {
  order: initial !important;
  width: 36px !important;
  height: 36px !important;
  font-size: 34px !important;
  color: #b7bfcc !important;
  transform: none !important;
}
.ad-review-rating-field .ad-rating-radios label.is-lit,
.ad-review-rating-field .ad-rating-radios label.is-selected,
.ad-review-rating-field .ad-rating-radios input:checked + label {
  color: #ff9f00 !important;
}
.ad-review-rating-field .ad-rating-radios:hover label:not(.is-lit):not(.is-selected) {
  color: #b7bfcc !important;
}
.ad-review-rating-field .ad-rating-radios label:hover {
  color: #ff9f00 !important;
}

.ad-checkout-page form.checkout.woocommerce-checkout > .ad-promo-progress--checkout {
  grid-column: 2 !important;
  grid-row: 2 !important;
  margin: 0 !important;
  padding: 12px 28px 16px !important;
  border: 1px solid var(--color-border) !important;
  border-top: 0 !important;
  border-bottom: 0 !important;
  border-radius: 0 !important;
  background: #f7f9fc !important;
  box-shadow: none !important;
}
.ad-checkout-page form.checkout.woocommerce-checkout > .ad-promo-progress--checkout .ad-promo-progress__head {
  margin-bottom: 10px !important;
  font-size: 20px !important;
}
.ad-checkout-page form.checkout.woocommerce-checkout > #order_review {
  grid-row: 3 !important;
}
.ad-cart-page .cart_totals .ad-promo-progress--cart {
  margin: 0 0 18px !important;
  padding: 16px !important;
  border-radius: 18px !important;
}
.ad-cart-page .cart_totals .ad-promo-progress--cart .ad-promo-progress__head {
  font-size: 18px !important;
  margin-bottom: 12px !important;
}

.section-page-categories .cat-row--page-links .cat-tile__thumb,
.page-template-page-about .cat-row--page-links .cat-tile__thumb,
.page-template-page-delivery .cat-row--page-links .cat-tile__thumb,
.cat-row.cat-row--page-links .cat-tile__thumb {
  height: 180px !important;
  min-height: 180px !important;
  aspect-ratio: auto !important;
  background: #f3f6fb !important;
}
.section-page-categories .cat-row--page-links .cat-tile__thumb img,
.page-template-page-about .cat-row--page-links .cat-tile__thumb img,
.page-template-page-delivery .cat-row--page-links .cat-tile__thumb img,
.cat-row.cat-row--page-links .cat-tile__thumb img {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  object-position: center center !important;
  transform: scale(1.06) !important;
}

@media (max-width: 1080px) {
  .ad-checkout-page form.checkout.woocommerce-checkout > .ad-promo-progress--checkout {
    margin: 0 0 16px !important;
    padding: 14px 18px !important;
    border: 1px solid var(--color-border) !important;
    border-radius: 18px !important;
  }
}
@media (max-width: 767px) {
  .ad-review-rating-field .ad-rating-radios label {
    width: 32px !important;
    height: 32px !important;
    font-size: 30px !important;
  }
  .section-page-categories .cat-row--page-links .cat-tile__thumb,
  .page-template-page-about .cat-row--page-links .cat-tile__thumb,
  .page-template-page-delivery .cat-row--page-links .cat-tile__thumb,
  .cat-row.cat-row--page-links .cat-tile__thumb {
    height: 138px !important;
    min-height: 138px !important;
  }
}


/* AllDent v1.0.62 — final safe fixes: review stars fill correctly with CSS fallback + transparent right promo block. */
.ad-review-rating-field .ad-rating-radios {
  display: inline-flex !important;
  flex-direction: row-reverse !important;
  justify-content: flex-end !important;
  align-items: center !important;
  gap: 7px !important;
}
.ad-review-rating-field .ad-rating-radios input {
  position: absolute !important;
  opacity: 0 !important;
  width: 1px !important;
  height: 1px !important;
  pointer-events: none !important;
}
.ad-review-rating-field .ad-rating-radios label {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 34px !important;
  height: 34px !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  background: transparent !important;
  color: #b7bfcc !important;
  font-size: 33px !important;
  line-height: 1 !important;
  cursor: pointer !important;
  transform: none !important;
  transition: color .15s ease, transform .15s ease !important;
}
.ad-review-rating-field .ad-rating-radios label.is-lit,
.ad-review-rating-field .ad-rating-radios label.is-selected,
.ad-review-rating-field .ad-rating-radios input:checked ~ label,
.ad-review-rating-field .ad-rating-radios label:hover,
.ad-review-rating-field .ad-rating-radios label:hover ~ label {
  color: #ff9f00 !important;
}
.ad-review-rating-field .ad-rating-radios label:hover {
  transform: translateY(-1px) !important;
}
.ad-review-rating-field .ad-rating-radios input:focus-visible + label {
  outline: 2px solid rgba(45,132,200,.35) !important;
  outline-offset: 3px !important;
  border-radius: 8px !important;
}

.ad-checkout-page form.checkout.woocommerce-checkout > .ad-promo-progress--checkout {
  grid-column: 2 !important;
  grid-row: 2 !important;
  margin: 0 !important;
  padding: 14px 28px 20px !important;
  border: 1px solid var(--color-border) !important;
  border-top: 0 !important;
  border-bottom: 0 !important;
  border-radius: 0 !important;
  background: #f7f9fc !important;
  box-shadow: none !important;
}
.ad-checkout-page form.checkout.woocommerce-checkout > #order_review {
  grid-row: 3 !important;
}
.ad-checkout-page form.checkout.woocommerce-checkout > .ad-promo-progress--checkout .ad-promo-progress__head,
.ad-cart-page .cart_totals .ad-promo-progress--cart .ad-promo-progress__head {
  margin: 0 0 14px !important;
  font-size: 21px !important;
  line-height: 1.2 !important;
}
.ad-checkout-page form.checkout.woocommerce-checkout > .ad-promo-progress--checkout .ad-promo-progress__item,
.ad-cart-page .cart_totals .ad-promo-progress--cart .ad-promo-progress__item {
  margin: 0 0 12px !important;
  padding: 15px 16px !important;
  border: 1px solid #d5e8fb !important;
  border-radius: 16px !important;
  background: transparent !important;
  box-shadow: none !important;
}
.ad-checkout-page form.checkout.woocommerce-checkout > .ad-promo-progress--checkout .ad-promo-progress__item:last-child,
.ad-cart-page .cart_totals .ad-promo-progress--cart .ad-promo-progress__item:last-child {
  margin-bottom: 0 !important;
}
.ad-checkout-page form.checkout.woocommerce-checkout > .ad-promo-progress--checkout .ad-promo-progress__item span,
.ad-cart-page .cart_totals .ad-promo-progress--cart .ad-promo-progress__item span {
  margin-bottom: 11px !important;
}
.ad-cart-page .cart_totals .ad-promo-progress--cart {
  margin: 0 0 20px !important;
  padding: 0 0 20px !important;
  border: 0 !important;
  border-bottom: 1px solid var(--color-border) !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}
.ad-promo-progress__item.is-active {
  background: transparent !important;
}
@media (max-width: 1080px) {
  .ad-checkout-page form.checkout.woocommerce-checkout > .ad-promo-progress--checkout {
    margin: 0 0 18px !important;
    padding: 16px !important;
    border: 1px solid var(--color-border) !important;
    border-radius: 18px !important;
    background: transparent !important;
  }
}
@media (max-width: 767px) {
  .ad-review-rating-field .ad-rating-radios label {
    width: 31px !important;
    height: 31px !important;
    font-size: 30px !important;
  }
}


/* AllDent v1.0.63 — old collection SEO category content polish. */
.ad-cat-content-section {
  margin-top: 42px !important;
}
.ad-cat-content {
  border-radius: 22px !important;
  background: #fff8ea !important;
  border: 1px solid #f2dfbd !important;
  box-shadow: none !important;
}
.ad-cat-content__body h2,
.ad-cat-content__body h3 {
  margin: 0 0 14px !important;
  color: #071833 !important;
  font-weight: 900 !important;
}
.ad-cat-content__body p {
  color: #1d2b44 !important;
  line-height: 1.7 !important;
}
.ad-cat-links-panel {
  margin-top: 18px !important;
}


/* AllDent v1.0.65 — legacy info-only collection pages. */
.ad-cat-content-section--info {
  margin-top: 0 !important;
}
.ad-cat-content-section--info .ad-cat-content {
  padding: 0 !important;
  border: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}
.ad-cat-content-section--info .ad-cat-content__grid,
.ad-cat-content-section--info .ad-cat-content__grid--single {
  display: block !important;
}
.ad-cat-content-section--info .ad-cat-content__body {
  max-width: 100% !important;
}
.ad-legacy-info {
  color: #111b31;
  font-size: 17px;
  line-height: 1.65;
}
.ad-legacy-info__hero {
  margin: 0 0 42px;
  border-radius: 18px;
  overflow: hidden;
  background: #f5f8fc;
}
.ad-legacy-info__hero img {
  display: block;
  width: 100%;
  max-height: 360px;
  object-fit: cover;
  object-position: center;
}
.ad-legacy-info__hero--compact img {
  max-height: 300px;
}
.ad-legacy-info h2 {
  margin: 0 0 8px;
  font-size: clamp(26px, 3vw, 38px);
  line-height: 1.2;
  font-weight: 900;
}
.ad-legacy-info h3 {
  margin: 34px 0 10px;
  font-size: clamp(21px, 2.2vw, 28px);
  line-height: 1.25;
  font-weight: 900;
}
.ad-legacy-info p {
  margin: 0 0 20px;
}
.ad-legacy-info__lead {
  max-width: 920px;
  font-size: clamp(22px, 2.6vw, 34px);
  line-height: 1.32;
  font-weight: 500;
}
.ad-legacy-info__gallery {
  display: grid;
  grid-template-columns: 1.2fr .75fr 1.2fr;
  gap: 14px;
  margin: 42px 0;
}
.ad-legacy-info__gallery img {
  width: 100%;
  height: 285px;
  object-fit: cover;
  border-radius: 16px;
  background: #f3f6fb;
}
@media (max-width: 900px) {
  .ad-legacy-info__gallery {
    grid-template-columns: 1fr;
  }
  .ad-legacy-info__gallery img {
    height: auto;
    max-height: 360px;
  }
}


/* AllDent v1.0.66 — flexible category bottom blocks. */
.ad-cat-flex {
  display: grid;
  gap: 24px;
  margin-top: 26px;
}
.ad-cat-flex__block {
  color: #111b31;
}
.ad-cat-flex__block--card,
.ad-cat-flex__block--notice {
  padding: 24px;
  border: 1px solid #dce8f6;
  border-radius: 22px;
  background: #fff;
  box-shadow: 0 16px 36px rgba(17, 38, 76, .045);
}
.ad-cat-flex__block--wide {
  margin-left: calc((var(--container-pad, 0px)) * -1);
  margin-right: calc((var(--container-pad, 0px)) * -1);
}
.ad-cat-flex__eyebrow {
  margin-bottom: 8px;
  color: var(--color-primary);
  font-size: 13px;
  line-height: 1.3;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: .08em;
}
.ad-cat-flex h2,
.ad-cat-flex h3 {
  margin: 0 0 12px;
  color: #111b31;
  line-height: 1.2;
  font-weight: 900;
}
.ad-cat-flex h2 {
  font-size: clamp(25px, 3vw, 38px);
}
.ad-cat-flex h3 {
  font-size: clamp(20px, 2.2vw, 28px);
}
.ad-cat-flex__text,
.ad-cat-flex__text p,
.ad-cat-flex figcaption,
.ad-cat-flex figcaption p {
  color: #33415c;
  font-size: 16px;
  line-height: 1.65;
}
.ad-cat-flex__text p,
.ad-cat-flex figcaption p {
  margin: 0 0 14px;
}
.ad-cat-flex__text p:last-child,
.ad-cat-flex figcaption p:last-child {
  margin-bottom: 0;
}
.ad-cat-flex__text ul,
.ad-cat-flex__text ol {
  margin: 0 0 16px 22px;
}
.ad-cat-flex-image {
  margin: 0;
}
.ad-cat-flex-image img {
  display: block;
  width: 100%;
  max-height: 520px;
  object-fit: cover;
  border-radius: 20px;
  background: #f3f6fb;
}
.ad-cat-flex-image figcaption {
  margin-top: 14px;
}
.ad-cat-flex-video {
  position: relative;
  width: 100%;
  aspect-ratio: 16 / 9;
  overflow: hidden;
  border-radius: 20px;
  background: #eef4fb;
}
.ad-cat-flex-video iframe,
.ad-cat-flex-video video {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  border: 0;
}
.ad-cat-flex-gallery {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
}
.ad-cat-flex-gallery img {
  display: block;
  width: 100%;
  height: 260px;
  object-fit: cover;
  border-radius: 18px;
  background: #f3f6fb;
}
.ad-cat-flex-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 48px;
  padding: 0 24px;
  border-radius: 999px;
  background: var(--color-primary);
  color: #fff !important;
  font-weight: 900;
  text-decoration: none !important;
}
.ad-cat-flex-btn:hover {
  filter: brightness(.96);
}
.ad-cat-flex__block--two-columns {
  display: grid;
  grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr);
  gap: 22px;
  align-items: center;
}
.ad-cat-flex__block--spacer {
  min-height: 22px;
}
@media (max-width: 900px) {
  .ad-cat-flex-gallery {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .ad-cat-flex-gallery img {
    height: 210px;
  }
  .ad-cat-flex__block--two-columns {
    grid-template-columns: 1fr;
  }
}
@media (max-width: 560px) {
  .ad-cat-flex__block--card,
  .ad-cat-flex__block--notice {
    padding: 18px;
    border-radius: 18px;
  }
  .ad-cat-flex-gallery {
    grid-template-columns: 1fr;
  }
  .ad-cat-flex-gallery img {
    height: auto;
    max-height: 360px;
  }
}


/* AllDent v1.0.67 — hide empty product gallery thumb boxes. */
.gallery__thumb[aria-hidden="true"],
.gallery__thumb:empty {
  display: none !important;
}
.gallery__thumbs {
  align-items: center;
}


/* AllDent v1.0.73 — safe mobile fix for pasted category SEO content.
   Only affects category bottom content blocks; product grids/cards/data are untouched. */
.ad-cat-content-section,
.ad-cat-content,
.ad-cat-content__grid,
.ad-cat-content__body,
.ad-cat-flex,
.ad-cat-flex__block {
  max-width: 100%;
  box-sizing: border-box;
}

.ad-cat-content__body img,
.ad-cat-content__body video,
.ad-cat-content__body iframe,
.ad-cat-content__body embed,
.ad-cat-content__body object,
.ad-cat-flex img,
.ad-cat-flex video,
.ad-cat-flex iframe,
.ad-cat-flex embed,
.ad-cat-flex object {
  max-width: 100%;
  box-sizing: border-box;
}

.ad-cat-content__body img,
.ad-cat-flex img {
  height: auto;
}

.ad-cat-content__body iframe,
.ad-cat-flex iframe {
  width: 100%;
}

@media (max-width: 767px) {
  .ad-cat-content-section {
    width: 100%;
    max-width: 100%;
    overflow: hidden;
    padding-left: 0 !important;
    padding-right: 0 !important;
  }

  .ad-cat-content,
  .ad-cat-content__grid,
  .ad-cat-content__body,
  .ad-cat-flex,
  .ad-cat-flex__block,
  .ad-cat-flex__text {
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
    overflow: hidden;
  }

  .ad-cat-content {
    padding-left: 14px !important;
    padding-right: 14px !important;
    border-radius: 18px !important;
  }

  .ad-cat-content__body *,
  .ad-cat-flex * {
    max-width: 100% !important;
    box-sizing: border-box !important;
  }

  .ad-cat-content__body p,
  .ad-cat-content__body div,
  .ad-cat-content__body span,
  .ad-cat-content__body li,
  .ad-cat-content__body strong,
  .ad-cat-content__body b,
  .ad-cat-flex p,
  .ad-cat-flex div,
  .ad-cat-flex span,
  .ad-cat-flex li,
  .ad-cat-flex strong,
  .ad-cat-flex b {
    white-space: normal !important;
    overflow-wrap: anywhere !important;
    word-break: normal !important;
  }

  .ad-cat-content__body img,
  .ad-cat-content__body video,
  .ad-cat-content__body iframe,
  .ad-cat-content__body embed,
  .ad-cat-content__body object,
  .ad-cat-flex img,
  .ad-cat-flex video,
  .ad-cat-flex iframe,
  .ad-cat-flex embed,
  .ad-cat-flex object {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    height: auto !important;
    margin-left: auto !important;
    margin-right: auto !important;
  }

  .ad-cat-content__body iframe,
  .ad-cat-content__body embed,
  .ad-cat-content__body object,
  .ad-cat-flex iframe,
  .ad-cat-flex embed,
  .ad-cat-flex object {
    aspect-ratio: 16 / 9;
    min-height: 190px;
    border: 0;
  }

  .ad-cat-content__body table,
  .ad-cat-flex table {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    overflow-x: auto !important;
    -webkit-overflow-scrolling: touch;
    table-layout: auto !important;
    white-space: normal !important;
  }

  .ad-cat-content__body tbody,
  .ad-cat-content__body tr,
  .ad-cat-content__body td,
  .ad-cat-content__body th,
  .ad-cat-flex tbody,
  .ad-cat-flex tr,
  .ad-cat-flex td,
  .ad-cat-flex th {
    max-width: 100% !important;
    white-space: normal !important;
  }

  .ad-cat-flex__block--card,
  .ad-cat-flex__block--notice,
  .ad-cat-flex-image,
  .ad-cat-flex-video {
    width: 100% !important;
    max-width: 100% !important;
    overflow: hidden !important;
  }

  .ad-cat-flex__block--card,
  .ad-cat-flex__block--notice {
    padding: 18px 16px !important;
  }

  .ad-cat-flex h2 {
    font-size: 24px !important;
    line-height: 1.25 !important;
  }

  .ad-cat-flex h3 {
    font-size: 19px !important;
    line-height: 1.3 !important;
  }

  .ad-cat-flex__text,
  .ad-cat-flex__text p,
  .ad-cat-content__body,
  .ad-cat-content__body p,
  .ad-cat-content__body li {
    font-size: 15px !important;
    line-height: 1.55 !important;
  }
}


/* AllDent v1.0.77 — variation SKU display update. */
.ad-product-sku {
  transition: color .15s ease;
}


/* AllDent v1.0.81 — visible stock line on product page. */
.ad-product-stock {
  display: flex;
  align-items: center;
  gap: 7px;
  margin: 0 0 14px;
  padding: 12px 16px;
  border-radius: 16px;
  background: #f5f8fc;
  color: #6f7b8f;
  font-size: 15px;
  line-height: 1.25;
  font-weight: 800;
}
.ad-product-stock strong {
  font-weight: 900;
}
.ad-product-stock.is-in-stock strong {
  color: #09a331;
}
.ad-product-stock.is-out-of-stock strong {
  color: #dd3f4f;
}
.product-detail__price + .ad-product-purchase,
.ad-product-stock + .product-detail__price {
  margin-top: 0;
}
@media (max-width: 767px) {
  .ad-product-stock {
    padding: 10px 13px;
    border-radius: 14px;
    font-size: 14px;
  }
}


/* AllDent v1.0.83 — blue background for category bottom SEO/content blocks. */
.ad-cat-content-section .ad-cat-content,
.ad-cat-content-section .ad-cat-flex__block--card,
.ad-cat-content-section .ad-cat-flex__block--notice,
.ad-cat-content-section .ad-category-links,
.ad-cat-content-section .ad-cat-links-panel,
.ad-cat-content-section .ad-cat-content-links,
.ad-cat-content-section .ad-cat-content__links,
.ad-cat-content-section .ad-cat-flex-image,
.ad-cat-content-section .ad-cat-flex-video {
  background: #f1f8ff !important;
  border-color: #cfe4fb !important;
}

.ad-cat-content-section .ad-cat-content {
  box-shadow: 0 18px 40px rgba(45, 132, 200, .07) !important;
}

.ad-cat-content-section .ad-cat-content__body,
.ad-cat-content-section .ad-cat-flex__block {
  color: #11223d;
}

.ad-cat-content-section .ad-cat-content a,
.ad-cat-content-section .ad-cat-flex a {
  color: #2d84c8;
}

.ad-cat-content-section--info .ad-cat-content {
  background: #f1f8ff !important;
  border: 1px solid #cfe4fb !important;
  box-shadow: 0 18px 40px rgba(45, 132, 200, .07) !important;
}

@media (max-width: 767px) {
  .ad-cat-content-section .ad-cat-content,
  .ad-cat-content-section .ad-cat-flex__block--card,
  .ad-cat-content-section .ad-cat-flex__block--notice {
    background: #f1f8ff !important;
    border-color: #cfe4fb !important;
  }
}


/* AllDent v1.0.84 — slightly lower variable option buttons. */
.single-product .option-list,
.single-product .ad-variable-option .option-list {
  gap: 10px !important;
}

.single-product .option-chip,
.single-product .ad-variable-option .option-chip {
  min-height: 38px !important;
  height: 38px !important;
  padding: 0 20px !important;
  border-radius: 999px !important;
  line-height: 1.1 !important;
}

.single-product .ad-variable-option {
  margin-bottom: 20px !important;
}

.single-product .ad-variable-option .option-group__label {
  margin-bottom: 10px !important;
}

@media (max-width: 767px) {
  .single-product .option-list,
  .single-product .ad-variable-option .option-list {
    gap: 8px !important;
  }

  .single-product .option-chip,
  .single-product .ad-variable-option .option-chip {
    min-height: 34px !important;
    height: 34px !important;
    padding: 0 15px !important;
    font-size: 13px !important;
  }

  .single-product .ad-variable-option {
    margin-bottom: 16px !important;
  }
}


/* AllDent v1.0.90 — info pages SEO content spacing like ordinary category SEO blocks.
   CSS only for the three information category pages. */
.ad-cat-content-section--info {
  padding-top: 18px !important;
}

.ad-cat-content-section--info .ad-cat-content {
  margin-top: 0 !important;
  padding: 28px !important;
  border: 1px solid #cfe4fb !important;
  border-radius: 28px !important;
  background: #f1f8ff !important;
  box-shadow: 0 18px 40px rgba(45, 132, 200, .07) !important;
}

.ad-cat-content-section--info .ad-cat-content__grid,
.ad-cat-content-section--info .ad-cat-content__grid--single {
  display: block !important;
  width: 100% !important;
  min-width: 0 !important;
}

.ad-cat-content-section--info .ad-cat-content__image {
  margin: 0 0 22px !important;
}

.ad-cat-content-section--info .ad-cat-content__image img {
  width: 100% !important;
  max-width: 100% !important;
  border-radius: 20px !important;
}

.ad-cat-content-section--info .ad-cat-content__body {
  display: block !important;
  width: 100% !important;
  min-width: 0 !important;
  overflow: visible !important;
}

/* Give pasted SEO sections the same "white card inside blue panel" spacing as normal categories. */
.ad-cat-content-section--info .ad-cat-content__body > div,
.ad-cat-content-section--info .ad-cat-content__body > section,
.ad-cat-content-section--info .ad-cat-content__body > article,
.ad-cat-content-section--info .ad-cat-content__body > table,
.ad-cat-content-section--info .ad-cat-content__body > blockquote {
  max-width: 100% !important;
  margin: 0 0 22px !important;
  padding: 24px 28px !important;
  border: 1px solid #dce8f6 !important;
  border-radius: 22px !important;
  background: #fff !important;
  box-sizing: border-box !important;
  box-shadow: 0 12px 26px rgba(17, 38, 76, .035) !important;
}

.ad-cat-content-section--info .ad-cat-content__body > div:last-child,
.ad-cat-content-section--info .ad-cat-content__body > section:last-child,
.ad-cat-content-section--info .ad-cat-content__body > article:last-child,
.ad-cat-content-section--info .ad-cat-content__body > table:last-child,
.ad-cat-content-section--info .ad-cat-content__body > blockquote:last-child {
  margin-bottom: 0 !important;
}

/* Direct headings/paragraphs without wrapper still get comfortable inner spacing. */
.ad-cat-content-section--info .ad-cat-content__body > h2,
.ad-cat-content-section--info .ad-cat-content__body > h3,
.ad-cat-content-section--info .ad-cat-content__body > h4,
.ad-cat-content-section--info .ad-cat-content__body > p,
.ad-cat-content-section--info .ad-cat-content__body > ul,
.ad-cat-content-section--info .ad-cat-content__body > ol {
  max-width: 100% !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
}

.ad-cat-content-section--info .ad-cat-content__body > h2:first-child,
.ad-cat-content-section--info .ad-cat-content__body > h3:first-child,
.ad-cat-content-section--info .ad-cat-content__body > h4:first-child,
.ad-cat-content-section--info .ad-cat-content__body > p:first-child {
  margin-top: 0 !important;
}

/* Large images inside pasted content should not stick to card borders. */
.ad-cat-content-section--info .ad-cat-content__body img {
  max-width: 100% !important;
  height: auto !important;
  border-radius: 18px !important;
}

@media (max-width: 991px) {
  .ad-cat-content-section--info .ad-cat-content {
    padding: 22px !important;
    border-radius: 22px !important;
  }

  .ad-cat-content-section--info .ad-cat-content__body > div,
  .ad-cat-content-section--info .ad-cat-content__body > section,
  .ad-cat-content-section--info .ad-cat-content__body > article,
  .ad-cat-content-section--info .ad-cat-content__body > table,
  .ad-cat-content-section--info .ad-cat-content__body > blockquote {
    padding: 20px !important;
    border-radius: 18px !important;
  }
}

@media (max-width: 560px) {
  .ad-cat-content-section--info {
    padding-top: 8px !important;
  }

  .ad-cat-content-section--info .ad-cat-content {
    padding: 16px !important;
    border-radius: 18px !important;
  }

  .ad-cat-content-section--info .ad-cat-content__body > div,
  .ad-cat-content-section--info .ad-cat-content__body > section,
  .ad-cat-content-section--info .ad-cat-content__body > article,
  .ad-cat-content-section--info .ad-cat-content__body > table,
  .ad-cat-content-section--info .ad-cat-content__body > blockquote {
    margin-bottom: 16px !important;
    padding: 16px !important;
    border-radius: 16px !important;
  }
}


/* AllDent v1.0.91 — product image/content polish.
   Product page CSS only: no product data or WooCommerce logic is modified. */

/* Main product image: remove grey side background feeling and let the product photo use the block better. */
.single-product .gallery__main {
  background: #fff !important;
  padding: 0 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
}

.single-product .gallery__main img,
.single-product .gallery__main .ad-gallery-main-img {
  display: block !important;
  width: 100% !important;
  height: 100% !important;
  max-width: none !important;
  max-height: none !important;
  object-fit: contain !important;
  object-position: center !important;
  background: #fff !important;
}

.single-product .gallery__thumb {
  background: #fff !important;
}

.single-product .gallery__thumb img {
  width: 100% !important;
  height: 100% !important;
  object-fit: contain !important;
  background: #fff !important;
}

/* Article/SKU line should be right before the price. */
.single-product .ad-product-sku-line {
  margin: 10px 0 8px !important;
  color: #6f7b8f;
  font-size: 14px;
  line-height: 1.35;
}

.single-product .ad-product-sku-line .ad-product-sku {
  display: inline-block;
}

/* Description images from old InSales should not become huge full-width banners. */
.single-product .tabs__panel img,
.single-product .woocommerce-Tabs-panel img,
.single-product .woocommerce-product-details__short-description img,
.single-product .entry-summary img,
.single-product .product-detail__short-description img {
  width: auto !important;
  height: auto !important;
  max-width: min(100%, 640px) !important;
  max-height: none !important;
  object-fit: contain !important;
  margin: 18px auto !important;
}

/* If an old description has several technical images together, keep them compact and centered. */
.single-product .tabs__panel p > img,
.single-product .woocommerce-Tabs-panel p > img,
.single-product .tabs__panel div > img,
.single-product .woocommerce-Tabs-panel div > img {
  display: block !important;
}

/* Very large legacy illustration blocks get a sane desktop width, like on old site. */
.single-product .tabs__panel img.size-full,
.single-product .woocommerce-Tabs-panel img.size-full,
.single-product .tabs__panel img[class*="wp-image"],
.single-product .woocommerce-Tabs-panel img[class*="wp-image"] {
  max-width: min(100%, 680px) !important;
}

@media (max-width: 767px) {
  .single-product .gallery__main img,
  .single-product .gallery__main .ad-gallery-main-img {
    width: 100% !important;
    height: 100% !important;
  }

  .single-product .tabs__panel img,
  .single-product .woocommerce-Tabs-panel img,
  .single-product .woocommerce-product-details__short-description img,
  .single-product .entry-summary img,
  .single-product .product-detail__short-description img {
    max-width: 100% !important;
    margin: 14px auto !important;
  }

  .single-product .ad-product-sku-line {
    font-size: 13px;
    margin: 8px 0 6px !important;
  }
}


/* AllDent v1.0.92 — stricter old InSales product description image sizing.
   Overrides earlier legacy rules that made standalone description images 100%/1040px wide. */
.single-product .ad-product-tabs-section .ad-description-content .ad-desc-media,
.single-product .ad-product-tabs-section .ad-description-content > p:has(> img:only-child),
.single-product .ad-product-tabs-section .ad-description-content > div:has(> img:only-child),
.single-product .ad-product-tabs-section .ad-description-content > div:has(> p > img:only-child),
.single-product .ad-product-tabs-section .ad-description-content [class*="Box"]:has(img),
.single-product .ad-product-tabs-section .ad-description-content [class*="box"]:has(img) {
  width: auto !important;

    margin: 24px auto !important;
    padding-left: 24px !important;
    padding-right: 24px !important;
    text-align: center !important;
}

.single-product .ad-product-tabs-section .ad-description-content .ad-desc-media > img,
.single-product .ad-product-tabs-section .ad-description-content > img,
.single-product .ad-product-tabs-section .ad-description-content > p > img:only-child,
.single-product .ad-product-tabs-section .ad-description-content > div > img:only-child,
.single-product .ad-product-tabs-section .ad-description-content > div > p > img:only-child,
.single-product .ad-product-tabs-section .ad-description-content [class*="Box"] img,
.single-product .ad-product-tabs-section .ad-description-content [class*="box"] img,
.single-product .ad-product-tabs-section .tabs__panel .ad-description-content img,
.single-product .ad-product-tabs-section .woocommerce-Tabs-panel .ad-description-content img {
  display: block !important;
  width: auto !important;
  max-width: 620px !important;
  height: auto !important;
  max-height: none !important;
  margin: 18px auto !important;
  object-fit: contain !important;
  object-position: center !important;
  border-radius: 14px !important;
  box-shadow: none !important;
}

/* Some imported images have hard width attributes or parent containers;
   this keeps them compact even when older rules say width:100%. */
.single-product .ad-product-tabs-section .ad-description-content .ad-desc-media > img[width],
.single-product .ad-product-tabs-section .ad-description-content img[style],
.single-product .ad-product-tabs-section .ad-description-content img[width] {
  width: auto !important;
  max-width: 620px !important;
}

/* Text cards remain full width; only media inside them is compact. */
.single-product .ad-product-tabs-section .ad-description-content .ad-desc-card img,
.single-product .ad-product-tabs-section .ad-description-content .ad-info-card img {
  width: auto !important;
  max-width: 620px !important;
  height: auto !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

/* If the old content contains two/three technical images in a row, keep each one readable but not oversized. */
.single-product .ad-product-tabs-section .ad-description-content img + img {
  margin-top: 12px !important;
}

@media (max-width: 767px) {
  .single-product .ad-product-tabs-section .ad-description-content .ad-desc-media,
  .single-product .ad-product-tabs-section .ad-description-content > p:has(> img:only-child),
  .single-product .ad-product-tabs-section .ad-description-content > div:has(> img:only-child),
  .single-product .ad-product-tabs-section .ad-description-content > div:has(> p > img:only-child),
  .single-product .ad-product-tabs-section .ad-description-content [class*="Box"]:has(img),
  .single-product .ad-product-tabs-section .ad-description-content [class*="box"]:has(img) {
    max-width: 100% !important;
    margin: 18px auto !important;
  }

  .single-product .ad-product-tabs-section .ad-description-content .ad-desc-media > img,
  .single-product .ad-product-tabs-section .ad-description-content > img,
  .single-product .ad-product-tabs-section .ad-description-content > p > img:only-child,
  .single-product .ad-product-tabs-section .ad-description-content > div > img:only-child,
  .single-product .ad-product-tabs-section .ad-description-content > div > p > img:only-child,
  .single-product .ad-product-tabs-section .ad-description-content [class*="Box"] img,
  .single-product .ad-product-tabs-section .ad-description-content [class*="box"] img,
  .single-product .ad-product-tabs-section .tabs__panel .ad-description-content img,
  .single-product .ad-product-tabs-section .woocommerce-Tabs-panel .ad-description-content img,
  .single-product .ad-product-tabs-section .ad-description-content img[style],
  .single-product .ad-product-tabs-section .ad-description-content img[width] {
    max-width: 100% !important;
    width: auto !important;
  }
}


/* AllDent v1.0.93 — keep description blocks full width, reduce only images.
   Fixes v1.0.92 where wrappers/sections with images could become too narrow. */
.single-product .ad-product-tabs-section .ad-description-content,
.single-product .ad-product-tabs-section .tabs__panel,
.single-product .ad-product-tabs-section .woocommerce-Tabs-panel {
  width: 100% !important;
  max-width: none !important;
}

/* Do NOT narrow text/section wrappers. Only media inside should be compact. */
.single-product .ad-product-tabs-section .ad-description-content .ad-desc-card,
.single-product .ad-product-tabs-section .ad-description-content .ad-info-card,
.single-product .ad-product-tabs-section .ad-description-content [class*="Box"],
.single-product .ad-product-tabs-section .ad-description-content [class*="box"],
.single-product .ad-product-tabs-section .ad-description-content > div,
.single-product .ad-product-tabs-section .ad-description-content > section,
.single-product .ad-product-tabs-section .ad-description-content > article {
  width: 100% !important;
  max-width: none !important;
  text-align: inherit !important;
  box-sizing: border-box !important;
}

/* Standalone image wrappers can stay full-width, but the image itself stays normal size. */
.single-product .ad-product-tabs-section .ad-description-content .ad-desc-media,
.single-product .ad-product-tabs-section .ad-description-content > p:has(> img:only-child),
.single-product .ad-product-tabs-section .ad-description-content > div:has(> img:only-child),
.single-product .ad-product-tabs-section .ad-description-content > div:has(> p > img:only-child) {
  width: 100% !important;
  max-width: none !important;
  margin: 22px 0 !important;
  padding: 0 !important;
  text-align: center !important;
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
}

/* Actual images in product descriptions: compact like old site, centered, not huge. */
.single-product .ad-product-tabs-section .ad-description-content img,
.single-product .ad-product-tabs-section .ad-description-content .ad-desc-media > img,
.single-product .ad-product-tabs-section .ad-description-content .ad-desc-card img,
.single-product .ad-product-tabs-section .ad-description-content .ad-info-card img,
.single-product .ad-product-tabs-section .ad-description-content [class*="Box"] img,
.single-product .ad-product-tabs-section .ad-description-content [class*="box"] img,
.single-product .ad-product-tabs-section .ad-description-content img[style],
.single-product .ad-product-tabs-section .ad-description-content img[width] {
  display: block !important;
  width: auto !important;
  max-width: min(100%, 580px) !important;
  height: auto !important;
  max-height: none !important;
  margin: 18px auto !important;
  object-fit: contain !important;
  object-position: center !important;
}


.single-product .ad-product-tabs-section .ad-description-content img[height][width] {
  max-width: min(100%, 580px) !important;
}

@media (max-width: 767px) {
  .single-product .ad-product-tabs-section .ad-description-content img,
  .single-product .ad-product-tabs-section .ad-description-content .ad-desc-media > img,
  .single-product .ad-product-tabs-section .ad-description-content .ad-desc-card img,
  .single-product .ad-product-tabs-section .ad-description-content .ad-info-card img,
  .single-product .ad-product-tabs-section .ad-description-content [class*="Box"] img,
  .single-product .ad-product-tabs-section .ad-description-content [class*="box"] img,
  .single-product .ad-product-tabs-section .ad-description-content img[style],
  .single-product .ad-product-tabs-section .ad-description-content img[width] {
    max-width: 100% !important;
  }
}


/* AllDent v1.0.94 — product description image size like old site + side padding.
   Keeps description/text blocks full width, only makes legacy media images visually smaller. */
.single-product .ad-product-tabs-section .ad-description-content {
  padding-left: 22px !important;
  padding-right: 22px !important;
  box-sizing: border-box !important;
}

/* wrappers stay full width, so text does not get narrow */
.single-product .ad-product-tabs-section .ad-description-content .ad-desc-media,
.single-product .ad-product-tabs-section .ad-description-content > p:has(> img:only-child),
.single-product .ad-product-tabs-section .ad-description-content > div:has(> img:only-child),
.single-product .ad-product-tabs-section .ad-description-content > div:has(> p > img:only-child) {
  width: 100% !important;
  max-width: none !important;
  margin: 22px 0 !important;
  padding: 0 !important;
  text-align: center !important;
}

/* actual old InSales media pictures — compact and centered */
.single-product .ad-product-tabs-section .ad-description-content .ad-desc-media img,
.single-product .ad-product-tabs-section .ad-description-content > p > img:only-child,
.single-product .ad-product-tabs-section .ad-description-content > div > img:only-child,
.single-product .ad-product-tabs-section .ad-description-content > div > p > img:only-child {
  display: block !important;
  width: 50% !important;
  max-width: 620px !important;
  min-width: 360px !important;
  height: auto !important;
  max-height: none !important;
  margin: 18px auto !important;
  padding-left: 20px !important;
  padding-right: 20px !important;
  box-sizing: border-box !important;
  object-fit: contain !important;
  object-position: center !important;
}

/* images inside normal text/cards should also not become huge */
.single-product .ad-product-tabs-section .ad-description-content .ad-desc-card img,
.single-product .ad-product-tabs-section .ad-description-content .ad-info-card img,
.single-product .ad-product-tabs-section .ad-description-content [class*="Box"] img,
.single-product .ad-product-tabs-section .ad-description-content [class*="box"] img {
  display: block !important;
  width: auto !important;
  max-width: 620px !important;
  height: auto !important;
  margin: 18px auto !important;
  padding-left: 20px !important;
  padding-right: 20px !important;
  box-sizing: border-box !important;
  object-fit: contain !important;
}

@media (max-width: 991px) {
  .single-product .ad-product-tabs-section .ad-description-content {
    padding-left: 16px !important;
    padding-right: 16px !important;
  }

  .single-product .ad-product-tabs-section .ad-description-content .ad-desc-media img,
  .single-product .ad-product-tabs-section .ad-description-content > p > img:only-child,
  .single-product .ad-product-tabs-section .ad-description-content > div > img:only-child,
  .single-product .ad-product-tabs-section .ad-description-content > div > p > img:only-child {
    width: 68% !important;
    min-width: 0 !important;
    max-width: 620px !important;
  }
}

@media (max-width: 767px) {
  .single-product .ad-product-tabs-section .ad-description-content {
    padding-left: 0 !important;
    padding-right: 0 !important;
  }

  .single-product .ad-product-tabs-section .ad-description-content .ad-desc-media img,
  .single-product .ad-product-tabs-section .ad-description-content > p > img:only-child,
  .single-product .ad-product-tabs-section .ad-description-content > div > img:only-child,
  .single-product .ad-product-tabs-section .ad-description-content > div > p > img:only-child,
  .single-product .ad-product-tabs-section .ad-description-content .ad-desc-card img,
  .single-product .ad-product-tabs-section .ad-description-content .ad-info-card img,
  .single-product .ad-product-tabs-section .ad-description-content [class*="Box"] img,
  .single-product .ad-product-tabs-section .ad-description-content [class*="box"] img {
    width: auto !important;
    max-width: 100% !important;
    min-width: 0 !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
  }
}


/* AllDent v1.0.95 — RU/UA description cards + mobile clipping fix.
   Keeps user's image sizing; fixes only structure/spacing and mobile overflow. */
.single-product .ad-product-tabs-section .ad-description-content {
  width: 100% !important;
  max-width: none !important;
  box-sizing: border-box !important;
  overflow-x: hidden !important;
}

.single-product .ad-product-tabs-section .ad-description-content .ad-desc-card--legacy-section {
  width: 100% !important;
  max-width: none !important;
  margin: 0 0 24px !important;
  padding: 28px 34px !important;
  border: 1px solid #d8e6f5 !important;
  border-radius: 24px !important;
  background: #fff !important;
  box-shadow: 0 14px 34px rgba(20, 41, 72, 0.06) !important;
  box-sizing: border-box !important;
  text-align: center;
}

.single-product .ad-product-tabs-section .ad-description-content .ad-desc-card--legacy-section:last-child {
  margin-bottom: 0 !important;
}

.single-product .ad-product-tabs-section .ad-description-content .ad-desc-card--legacy-section > *:first-child {
  margin-top: 0 !important;
}

.single-product .ad-product-tabs-section .ad-description-content .ad-desc-card--legacy-section > *:last-child {
  margin-bottom: 0 !important;
}

.single-product .ad-product-tabs-section .ad-description-content .ad-desc-card--legacy-section p,
.single-product .ad-product-tabs-section .ad-description-content .ad-desc-card--legacy-section li {
  overflow-wrap: anywhere;
}

.single-product .ad-product-tabs-section .ad-description-content .ad-desc-card--legacy-section img {
  max-width: 100%;
}

@media (max-width: 767px) {
  .single-product .ad-product-tabs-section,
  .single-product .ad-product-tabs-section .tabs,
  .single-product .ad-product-tabs-section .tabs__panel,
  .single-product .ad-product-tabs-section .ad-description-content {
    max-width: 100% !important;
    overflow-x: hidden !important;
  }

  .single-product .ad-product-tabs-section .ad-description-content {
    padding-left: 10px !important;
    padding-right: 10px !important;
  }

  .single-product .ad-product-tabs-section .ad-description-content > *,
  .single-product .ad-product-tabs-section .ad-description-content .ad-desc-card,
  .single-product .ad-product-tabs-section .ad-description-content .ad-info-card,
  .single-product .ad-product-tabs-section .ad-description-content .ad-desc-card--legacy-section,
  .single-product .ad-product-tabs-section .ad-description-content .Box,
  .single-product .ad-product-tabs-section .ad-description-content .Box1,
  .single-product .ad-product-tabs-section .ad-description-content .Box2,
  .single-product .ad-product-tabs-section .ad-description-content .Box3,
  .single-product .ad-product-tabs-section .ad-description-content .Box4 {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    box-sizing: border-box !important;
  }

  .single-product .ad-product-tabs-section .ad-description-content .ad-desc-card--legacy-section,
  .single-product .ad-product-tabs-section .ad-description-content .ad-desc-card,
  .single-product .ad-product-tabs-section .ad-description-content .ad-info-card,
  .single-product .ad-product-tabs-section .ad-description-content .Box,
  .single-product .ad-product-tabs-section .ad-description-content .Box1,
  .single-product .ad-product-tabs-section .ad-description-content .Box2,
  .single-product .ad-product-tabs-section .ad-description-content .Box3,
  .single-product .ad-product-tabs-section .ad-description-content .Box4 {
    padding: 16px 14px !important;
    border-radius: 18px !important;
  }

  .single-product .ad-product-tabs-section .ad-description-content img {
    max-width: 100% !important;
    min-width: 0 !important;
    height: auto !important;
  }
}


/* AllDent v1.0.96 — mobile description images 100% width + RU cards safety.
   Desktop image sizing from the user's template is untouched. */
@media (max-width: 767px) {
  .single-product .ad-product-tabs-section .ad-description-content .ad-desc-media img,
  .single-product .ad-product-tabs-section .ad-description-content > p > img:only-child,
  .single-product .ad-product-tabs-section .ad-description-content > div > img:only-child,
  .single-product .ad-product-tabs-section .ad-description-content > div > p > img:only-child,
  .single-product .ad-product-tabs-section .ad-description-content .Box img,
  .single-product .ad-product-tabs-section .ad-description-content .Box1 img,
  .single-product .ad-product-tabs-section .ad-description-content .Box2 img,
  .single-product .ad-product-tabs-section .ad-description-content .Box3 img,
  .single-product .ad-product-tabs-section .ad-description-content .Box4 img,
  .single-product .ad-product-tabs-section .ad-description-content .ad-desc-card img,
  .single-product .ad-product-tabs-section .ad-description-content .ad-info-card img,
  .single-product .ad-product-tabs-section .ad-description-content .ad-desc-card--legacy-section img {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    height: auto !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
    box-sizing: border-box !important;
  }

  .single-product .ad-product-tabs-section .ad-description-content .ad-desc-media,
  .single-product .ad-product-tabs-section .ad-description-content > p:has(> img:only-child),
  .single-product .ad-product-tabs-section .ad-description-content > div:has(> img:only-child),
  .single-product .ad-product-tabs-section .ad-description-content > div:has(> p > img:only-child) {
    width: 100% !important;
    max-width: 100% !important;
    overflow: hidden !important;
  }
}

.single-product .ad-product-tabs-section .ad-description-content .ad-desc-card--legacy-section {
  width: 100% !important;
  max-width: none !important;
  box-sizing: border-box !important;
}

/* AllDent v1.1.00 — product description images keep their own size.
   Overrides previous 50%/100% rules so imported images are not forced to the same width.
   Images keep natural/admin size, but still cannot overflow the product description block. */
.single-product .ad-product-tabs-section .ad-description-content .ad-desc-media,
.single-product .ad-product-tabs-section .ad-description-content > p:has(> img:only-child),
.single-product .ad-product-tabs-section .ad-description-content > div:has(> img:only-child),
.single-product .ad-product-tabs-section .ad-description-content > div:has(> p > img:only-child) {
  width: 100% !important;
  max-width: 100% !important;
  margin: 22px auto !important;
  padding: 0 !important;
  text-align: center !important;
  overflow: visible !important;
  box-sizing: border-box !important;
}

/* Actual images: no forced equal width. */
.single-product .ad-product-tabs-section .ad-description-content img,
.single-product .ad-product-tabs-section .ad-description-content .ad-desc-media img,
.single-product .ad-product-tabs-section .ad-description-content > p > img:only-child,
.single-product .ad-product-tabs-section .ad-description-content > div > img:only-child,
.single-product .ad-product-tabs-section .ad-description-content > div > p > img:only-child,
.single-product .ad-product-tabs-section .ad-description-content .Box img,
.single-product .ad-product-tabs-section .ad-description-content .Box1 img,
.single-product .ad-product-tabs-section .ad-description-content .Box2 img,
.single-product .ad-product-tabs-section .ad-description-content .Box3 img,
.single-product .ad-product-tabs-section .ad-description-content .Box4 img,
.single-product .ad-product-tabs-section .ad-description-content .ad-desc-card img,
.single-product .ad-product-tabs-section .ad-description-content .ad-info-card img,
.single-product .ad-product-tabs-section .ad-description-content .ad-desc-card--legacy-section img {
  display: block !important;
  width: auto !important;
  min-width: 0 !important;
  max-width: 100% !important;
  height: auto !important;
  max-height: none !important;
  margin: 18px auto !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
  box-sizing: border-box !important;
  object-fit: contain !important;
  object-position: center !important;
}

/* Images with inline width/height from old InSales/admin should also keep their own dimensions,
   but never break the layout. */
.single-product .ad-product-tabs-section .ad-description-content img[style],
.single-product .ad-product-tabs-section .ad-description-content img[width],
.single-product .ad-product-tabs-section .ad-description-content img[height] {
  width: auto !important;
  max-width: 100% !important;
  height: auto !important;
}

/* Mobile: still natural width, but capped by screen so nothing is cut off. */
@media (max-width: 767px) {
  .single-product .ad-product-tabs-section .ad-description-content,
  .single-product .ad-product-tabs-section .ad-description-content .ad-desc-media,
  .single-product .ad-product-tabs-section .ad-description-content > p:has(> img:only-child),
  .single-product .ad-product-tabs-section .ad-description-content > div:has(> img:only-child),
  .single-product .ad-product-tabs-section .ad-description-content > div:has(> p > img:only-child) {
    overflow-x: hidden !important;
  }

  .single-product .ad-product-tabs-section .ad-description-content img,
  .single-product .ad-product-tabs-section .ad-description-content .ad-desc-media img,
  .single-product .ad-product-tabs-section .ad-description-content > p > img:only-child,
  .single-product .ad-product-tabs-section .ad-description-content > div > img:only-child,
  .single-product .ad-product-tabs-section .ad-description-content > div > p > img:only-child,
  .single-product .ad-product-tabs-section .ad-description-content .Box img,
  .single-product .ad-product-tabs-section .ad-description-content .Box1 img,
  .single-product .ad-product-tabs-section .ad-description-content .Box2 img,
  .single-product .ad-product-tabs-section .ad-description-content .Box3 img,
  .single-product .ad-product-tabs-section .ad-description-content .Box4 img,
  .single-product .ad-product-tabs-section .ad-description-content .ad-desc-card img,
  .single-product .ad-product-tabs-section .ad-description-content .ad-info-card img,
  .single-product .ad-product-tabs-section .ad-description-content .ad-desc-card--legacy-section img {
    width: auto !important;
    max-width: 100% !important;
    min-width: 0 !important;
    height: auto !important;
  }
}


/* AllDent v1.1.01 — preserve original imported description/table styles.
   Removes the forced custom table look and lets old InSales/admin inline table styles show on frontend. */
.single-product .ad-product-tabs-section .ad-description-content .ad-desc-table-wrap {
  display: block !important;
  width: fit-content !important;
  max-width: 100% !important;
  margin: 22px auto !important;
  padding: 0 !important;
  overflow-x: auto !important;
  overflow-y: hidden !important;
  -webkit-overflow-scrolling: touch;
  box-sizing: border-box !important;
}

/* Do not force table color/width/borders. Use the HTML from product description. */
.single-product .ad-product-tabs-section .ad-description-content .ad-desc-table-wrap table,
.single-product .ad-product-tabs-section .ad-description-content table {
  max-width: 100% !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

/* If a generated card contains only a table, do not add an extra huge blue bordered card around it. */
.single-product .ad-product-tabs-section .ad-description-content .ad-desc-card--legacy-section:has(.ad-desc-table-wrap:only-child),
.single-product .ad-product-tabs-section .ad-description-content .ad-desc-card:has(.ad-desc-table-wrap:only-child),
.single-product .ad-product-tabs-section .ad-description-content .ad-info-card:has(.ad-desc-table-wrap:only-child),
.single-product .ad-product-tabs-section .ad-description-content .Box:has(.ad-desc-table-wrap:only-child),
.single-product .ad-product-tabs-section .ad-description-content .Box1:has(.ad-desc-table-wrap:only-child),
.single-product .ad-product-tabs-section .ad-description-content .Box2:has(.ad-desc-table-wrap:only-child),
.single-product .ad-product-tabs-section .ad-description-content .Box3:has(.ad-desc-table-wrap:only-child),
.single-product .ad-product-tabs-section .ad-description-content .Box4:has(.ad-desc-table-wrap:only-child) {
  width: 100% !important;
  max-width: 100% !important;
  margin: 0 0 24px !important;
  padding: 0 !important;
  border: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}

/* Lists: keep bullets and text readable from the left, while headings can stay centered. */
.single-product .ad-product-tabs-section .ad-description-content ul,
.single-product .ad-product-tabs-section .ad-description-content ol {
  text-align: left !important;
  list-style-position: outside !important;
  padding-left: 24px !important;
}

.single-product .ad-product-tabs-section .ad-description-content li {
  text-align: left !important;
}

/* Mobile safety without changing original desktop table design. */
@media (max-width: 767px) {
  .single-product .ad-product-tabs-section .ad-description-content {
    overflow-x: hidden !important;
  }

  .single-product .ad-product-tabs-section .ad-description-content .ad-desc-table-wrap {
    width: 100% !important;
    max-width: 100% !important;
    overflow-x: auto !important;
  }

  .single-product .ad-product-tabs-section .ad-description-content .ad-desc-table-wrap table,
  .single-product .ad-product-tabs-section .ad-description-content table {
    max-width: none !important;
  }

  .single-product .ad-product-tabs-section .ad-description-content img {
    max-width: 100% !important;
    height: auto !important;
  }
}


/* AllDent v1.1.02 — large first banner in product descriptions.
   Only the first description media/banner is enlarged like on the old site.
   All other description images keep the user's current sizing. */
.single-product .ad-product-tabs-section .ad-description-content > .ad-desc-media:first-child,
.single-product .ad-product-tabs-section .ad-description-content > p:first-child:has(> img:only-child),
.single-product .ad-product-tabs-section .ad-description-content > div:first-child:has(> img:only-child) {
  width: 100% !important;
  max-width: 100% !important;
  margin: 0 auto 26px !important;
  padding: 0 !important;
  text-align: center !important;
  overflow: hidden !important;
  border-radius: 22px !important;
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  box-sizing: border-box !important;
}

.single-product .ad-product-tabs-section .ad-description-content > .ad-desc-media:first-child img,
.single-product .ad-product-tabs-section .ad-description-content > p:first-child > img:only-child,
.single-product .ad-product-tabs-section .ad-description-content > div:first-child > img:only-child {
  display: block !important;
  width: 100% !important;
  max-width: 100% !important;
  min-width: 0 !important;
  height: auto !important;
  max-height: none !important;
  margin: 0 auto !important;
  padding: 0 !important;
  border-radius: 22px !important;
  object-fit: contain !important;
  object-position: center !important;
  box-sizing: border-box !important;
}

/* If the first banner is inside a generated section/card, make only that card behave like a banner. */
.single-product .ad-product-tabs-section .ad-description-content > .ad-desc-card--legacy-section:first-child:has(> .ad-desc-media:first-child),
.single-product .ad-product-tabs-section .ad-description-content > .ad-desc-card:first-child:has(> .ad-desc-media:first-child),
.single-product .ad-product-tabs-section .ad-description-content > .ad-info-card:first-child:has(> .ad-desc-media:first-child) {
  padding: 0 !important;
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  overflow: hidden !important;
}

.single-product .ad-product-tabs-section .ad-description-content > .ad-desc-card--legacy-section:first-child > .ad-desc-media:first-child,
.single-product .ad-product-tabs-section .ad-description-content > .ad-desc-card:first-child > .ad-desc-media:first-child,
.single-product .ad-product-tabs-section .ad-description-content > .ad-info-card:first-child > .ad-desc-media:first-child {
  width: 100% !important;
  max-width: 100% !important;
  margin: 0 auto !important;
}

.single-product .ad-product-tabs-section .ad-description-content > .ad-desc-card--legacy-section:first-child > .ad-desc-media:first-child img,
.single-product .ad-product-tabs-section .ad-description-content > .ad-desc-card:first-child > .ad-desc-media:first-child img,
.single-product .ad-product-tabs-section .ad-description-content > .ad-info-card:first-child > .ad-desc-media:first-child img {
  width: 100% !important;
  max-width: 100% !important;
  max-height: none !important;
  margin: 0 auto !important;
  border-radius: 22px !important;
}

@media (max-width: 767px) {
  .single-product .ad-product-tabs-section .ad-description-content > .ad-desc-media:first-child,
  .single-product .ad-product-tabs-section .ad-description-content > p:first-child:has(> img:only-child),
  .single-product .ad-product-tabs-section .ad-description-content > div:first-child:has(> img:only-child),
  .single-product .ad-product-tabs-section .ad-description-content > .ad-desc-card--legacy-section:first-child > .ad-desc-media:first-child,
  .single-product .ad-product-tabs-section .ad-description-content > .ad-desc-card:first-child > .ad-desc-media:first-child,
  .single-product .ad-product-tabs-section .ad-description-content > .ad-info-card:first-child > .ad-desc-media:first-child {
    border-radius: 16px !important;
    margin-bottom: 18px !important;
  }

  .single-product .ad-product-tabs-section .ad-description-content > .ad-desc-media:first-child img,
  .single-product .ad-product-tabs-section .ad-description-content > p:first-child > img:only-child,
  .single-product .ad-product-tabs-section .ad-description-content > div:first-child > img:only-child,
  .single-product .ad-product-tabs-section .ad-description-content > .ad-desc-card--legacy-section:first-child > .ad-desc-media:first-child img,
  .single-product .ad-product-tabs-section .ad-description-content > .ad-desc-card:first-child > .ad-desc-media:first-child img,
  .single-product .ad-product-tabs-section .ad-description-content > .ad-info-card:first-child > .ad-desc-media:first-child img {
    width: 100% !important;
    max-width: 100% !important;
    border-radius: 16px !important;
  }
}


/* AllDent v1.1.04 — responsive video in category SEO content. */
.ad-cat-content__body .ad-cat-video-embed,
.ad-cat-flex .ad-cat-video-embed,
.ad-cat-flex-video {
  position: relative;
  display: block;
  width: 100%;
  max-width: 980px;
  aspect-ratio: 16 / 9;
  margin: 22px auto;
  overflow: hidden;
  border-radius: 20px;
  background: #eef4fb;
}

.ad-cat-content__body .ad-cat-video-embed iframe,
.ad-cat-flex .ad-cat-video-embed iframe,
.ad-cat-flex-video iframe,
.ad-cat-flex-video video {
  position: absolute;
  inset: 0;
  display: block;
  width: 100% !important;
  height: 100% !important;
  border: 0 !important;
}

.ad-cat-content__body iframe[src*="youtube"],
.ad-cat-content__body iframe[src*="youtu.be"],
.ad-cat-content__body iframe[src*="vimeo"],
.ad-cat-flex iframe[src*="youtube"],
.ad-cat-flex iframe[src*="youtu.be"],
.ad-cat-flex iframe[src*="vimeo"] {
  max-width: 100%;
  border: 0;
  border-radius: 20px;
}

@media (max-width: 767px) {
  .ad-cat-content__body .ad-cat-video-embed,
  .ad-cat-flex .ad-cat-video-embed,
  .ad-cat-flex-video {
    border-radius: 16px;
    margin: 18px auto;
  }
}

/*  */
.single-product .reset_variations,
.single-product .woocommerce div.product form.cart .reset_variations,
.single-product .variations_form .reset_variations {
  display: none !important;
}

/* AllDent v1.1.11 — homepage AlphaBio sections only.
   Desktop matches old layout closer: 6 products + image banner per row.
   Mobile/tablet keeps the existing safe grid rules. */
@media (min-width: 1181px) {
  .section--home-alpha-grid .product-grid--6 {
    grid-template-columns: repeat(7, minmax(0, 1fr));
  }

  .section--home-alpha-grid .product-grid--6 .product-card__name {
    font-size: 12.5px;
  }

  .section--home-alpha-grid .cat-banner-card--image {
    min-height: 100%;
  }
}

/* AllDent v1.1.14 — AlphaBio nested categories and top child cards */
.ad-catalog-tree__child-group {
  display: block;
}
.ad-catalog-tree__child-row {
  display: grid;
  grid-template-columns: 1fr 24px;
  align-items: center;
  gap: 6px;
}
.ad-catalog-tree__child-row > a {
  display: block;
  padding: 8px 0;
  color: #65738a;
  font-size: 14px;
  line-height: 1.35;
  text-decoration: none;
}
.ad-catalog-tree__child-row > a:hover {
  color: #2d84c8;
}
.ad-catalog-tree__toggle--child {
  width: 24px;
  height: 24px;
  min-width: 24px;
  border: 0;
  background: transparent;
  display: grid;
  place-items: center;
  color: #2b384d;
  padding: 0;
  cursor: pointer;
}
.ad-catalog-tree__toggle--child svg {
  width: 14px;
  height: 14px;
  transition: transform .18s ease;
}
.ad-catalog-tree__child-group.is-open > .ad-catalog-tree__child-row .ad-catalog-tree__toggle--child svg {
  transform: rotate(180deg);
}
.ad-catalog-tree__subchildren[hidden] {
  display: none !important;
}
.ad-catalog-tree__subchildren {
  display: grid;
  gap: 0;
  padding: 0 0 4px 18px;
}
.ad-catalog-tree__subchildren > a {
  display: block;
  padding: 7px 0;
  color: #65738a;
  font-size: 14px;
  line-height: 1.35;
  text-decoration: none;
}
.ad-catalog-tree__subchildren > a:hover {
  color: #2d84c8;
}

.ad-category-children {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 152px));
  gap: 18px;
  margin: 0 0 28px;
  padding: 0;
}
.ad-category-child-card {
  display: grid;
  gap: 10px;
  align-content: start;
  text-decoration: none;
  color: #1d2a3f;
}
.ad-category-child-card__img {
  width: 152px;
  height: 152px;
  border-radius: 14px;
  background: #fff;
  display: grid;
  place-items: center;
  overflow: hidden;
}
.ad-category-child-card__img img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  display: block;
}
.ad-category-child-card__title {
  display: block;
  font-size: 15px;
  line-height: 1.35;
  color: #27344d;
}
.ad-category-child-card:hover .ad-category-child-card__title {
  color: #2d84c8;
}
@media (max-width: 767px) {
  .ad-category-children {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 10px;
    margin-bottom: 22px;
  }
  .ad-category-child-card__img {
    width: 100%;
    height: auto;
    aspect-ratio: 1 / 1;
    border-radius: 12px;
  }
  .ad-category-child-card__title {
    font-size: 13px;
  }
}


/* AllDent v1.1.16 — reliable nested catalog arrows. */
.ad-catalog-tree__child-row .ad-catalog-tree__toggle--child{position:relative;z-index:2;pointer-events:auto;}
.ad-catalog-tree__child-group:not(.is-open) > .ad-catalog-tree__subchildren{display:none!important;}
.ad-catalog-tree__group.is-open > .ad-catalog-tree__parent-row > .ad-catalog-tree__toggle svg{transform:rotate(180deg);}

/* AllDent v1.1.22 — move product sale badge to right side and make pill smaller. */
.product-card .product-card__badge.badge--sale,
.product-card .badge--sale {
  top: 12px !important;
  right: 12px !important;
  left: auto !important;
  min-width: 46px !important;
  height: 30px !important;
  padding: 0 10px !important;
  border-radius: 999px !important;
  font-size: 12px !important;
  line-height: 1 !important;
  font-weight: 900 !important;
  letter-spacing: -0.02em !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  z-index: 5 !important;
}
@media (max-width: 767px) {
  .product-card .product-card__badge.badge--sale,
  .product-card .badge--sale {
    top: 10px !important;
    right: 10px !important;
    min-width: 42px !important;
    height: 28px !important;
    padding: 0 9px !important;
    font-size: 11px !important;
  }
}


/* AllDent v1.1.24 — safe mobile home horizontal product sliders + compact mobile cart.
   CSS/layout only: product data, prices, variations, catalog, checkout calculations and import logic are untouched. */
@media (max-width: 767px) {
  .ad-home-page .section > .container > .product-grid.product-grid--6 {
    display: flex !important;
    grid-template-columns: none !important;
    flex-wrap: nowrap !important;
    gap: 12px !important;
    overflow-x: auto !important;
    overflow-y: visible !important;
    scroll-snap-type: x mandatory;
    -webkit-overflow-scrolling: touch;
    padding: 0 16px 12px !important;
    margin-left: -16px !important;
    margin-right: -16px !important;
    scrollbar-width: thin;
  }
  .ad-home-page .section > .container > .product-grid.product-grid--6::after {
    content: "";
    display: block;
    flex: 0 0 4px;
  }
  .ad-home-page .section > .container > .product-grid.product-grid--6 > .product-card,
  .ad-home-page .section > .container > .product-grid.product-grid--6 > .cat-banner-card {
    flex: 0 0 clamp(142px, 44vw, 174px) !important;
    width: clamp(142px, 44vw, 174px) !important;
    min-width: clamp(142px, 44vw, 174px) !important;
    scroll-snap-align: start;
  }
  .ad-home-page .section > .container > .product-grid.product-grid--6 > .cat-banner-card--image {
    min-height: 252px !important;
  }
  .ad-home-page .section > .container > .product-grid.product-grid--6 .product-card__media {
    margin: 6px !important;
  }
  .ad-home-page .section > .container > .product-grid.product-grid--6 .product-card__body {
    padding: 2px 10px 12px !important;
    gap: 6px !important;
  }
  .ad-home-page .section > .container > .product-grid.product-grid--6 .product-card__brand {
    font-size: 10px !important;
    line-height: 1.25 !important;
  }
  .ad-home-page .section > .container > .product-grid.product-grid--6 .product-card__name {
    font-size: 12.5px !important;
    line-height: 1.3 !important;
    min-height: 50px !important;
  }
  .ad-home-page .section > .container > .product-grid.product-grid--6 .product-card__foot {
    margin-top: 8px !important;
    gap: 6px !important;
  }
  .ad-home-page .section > .container > .product-grid.product-grid--6 .product-card__price {
    font-size: 17px !important;
    line-height: 1.05 !important;
  }
  .ad-home-page .section > .container > .product-grid.product-grid--6 .product-card__price small {
    font-size: 10px !important;
  }
  .ad-home-page .section > .container > .product-grid.product-grid--6 .product-card__fav,
  .ad-home-page .section > .container > .product-grid.product-grid--6 .product-card__cart {
    width: 34px !important;
    height: 34px !important;
  }
  .ad-home-page .section > .container > .product-grid.product-grid--6 .product-card__fav svg,
  .ad-home-page .section > .container > .product-grid.product-grid--6 .product-card__cart svg {
    width: 15px !important;
    height: 15px !important;
  }
  .ad-home-page .section > .container > .product-grid.product-grid--6 .product-card__badge {
    top: 8px !important;
    right: 8px !important;
    left: auto !important;
  }
}

@media (max-width: 767px) {
  .ad-cart-page .woocommerce,
  .ad-wc-system-page .woocommerce {
    width: 100% !important;
    max-width: 100% !important;
    overflow: visible !important;
  }
  .ad-cart-page .woocommerce-cart-form,
  .ad-wc-system-page .woocommerce-cart-form {
    width: 100% !important;
    max-width: 100% !important;
    padding: 12px !important;
    border-radius: 18px !important;
    overflow: hidden !important;
    box-sizing: border-box !important;
  }
  .ad-cart-page table.shop_table.cart,
  .ad-wc-system-page table.shop_table.cart,
  .ad-cart-page .woocommerce-cart-form__contents,
  .ad-wc-system-page .woocommerce-cart-form__contents {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    border: 0 !important;
    border-collapse: separate !important;
    border-spacing: 0 !important;
    overflow: visible !important;
  }
  .ad-cart-page table.shop_table.cart thead,
  .ad-wc-system-page table.shop_table.cart thead {
    display: none !important;
  }
  .ad-cart-page table.shop_table.cart tbody,
  .ad-wc-system-page table.shop_table.cart tbody {
    display: block !important;
    width: 100% !important;
  }
  .ad-cart-page table.shop_table.cart tr.cart_item,
  .ad-wc-system-page table.shop_table.cart tr.cart_item {
    position: relative !important;
    display: grid !important;
    grid-template-columns: 74px minmax(0, 1fr) !important;
    grid-template-areas:
      "remove name"
      "thumb name"
      "thumb price"
      "thumb qty"
      "thumb subtotal" !important;
    gap: 8px 12px !important;
    align-items: start !important;
    width: 100% !important;
    margin: 0 0 12px !important;
    padding: 12px !important;
    border: 1px solid #d9e8f8 !important;
    border-radius: 18px !important;
    background: #fff !important;
    box-shadow: none !important;
    box-sizing: border-box !important;
  }
  .ad-cart-page table.shop_table.cart tr.cart_item td,
  .ad-wc-system-page table.shop_table.cart tr.cart_item td {
    display: block !important;
    width: auto !important;
    max-width: 100% !important;
    min-width: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    text-align: left !important;
    box-sizing: border-box !important;
  }
  .ad-cart-page table.shop_table.cart tr.cart_item td::before,
  .ad-wc-system-page table.shop_table.cart tr.cart_item td::before {
    display: none !important;
    content: none !important;
  }
  .ad-cart-page table.shop_table.cart td.product-remove,
  .ad-wc-system-page table.shop_table.cart td.product-remove {
    grid-area: remove !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 34px !important;
    height: 34px !important;
  }
  .ad-cart-page table.shop_table.cart td.product-remove a.remove,
  .ad-wc-system-page table.shop_table.cart td.product-remove a.remove {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 32px !important;
    height: 32px !important;
    min-width: 32px !important;
    border-radius: 999px !important;
    background: #f3f7fb !important;
    color: #62738c !important;
    font-size: 20px !important;
    line-height: 1 !important;
    text-decoration: none !important;
  }
  .ad-cart-page table.shop_table.cart td.product-thumbnail,
  .ad-wc-system-page table.shop_table.cart td.product-thumbnail {
    grid-area: thumb !important;
    display: block !important;
    width: 74px !important;
    min-width: 74px !important;
  }
  .ad-cart-page table.shop_table.cart td.product-thumbnail a,
  .ad-wc-system-page table.shop_table.cart td.product-thumbnail a {
    display: block !important;
    width: 74px !important;
    height: 74px !important;
    border-radius: 13px !important;
    background: #f4f8fc !important;
    overflow: hidden !important;
  }
  .ad-cart-page table.shop_table.cart td.product-thumbnail img,
  .ad-wc-system-page table.shop_table.cart td.product-thumbnail img {
    display: block !important;
    width: 74px !important;
    height: 74px !important;
    max-width: 74px !important;
    object-fit: contain !important;
    object-position: center !important;
    padding: 6px !important;
    box-sizing: border-box !important;
  }
  .ad-cart-page table.shop_table.cart td.product-name,
  .ad-wc-system-page table.shop_table.cart td.product-name {
    grid-area: name !important;
    padding-top: 1px !important;
    color: #071833 !important;
    font-size: 14px !important;
    line-height: 1.35 !important;
    font-weight: 800 !important;
    overflow-wrap: anywhere !important;
    word-break: normal !important;
  }
  .ad-cart-page table.shop_table.cart td.product-name a,
  .ad-wc-system-page table.shop_table.cart td.product-name a {
    color: #071833 !important;
    text-decoration: none !important;
  }
  .ad-cart-page table.shop_table.cart td.product-price,
  .ad-wc-system-page table.shop_table.cart td.product-price {
    grid-area: price !important;
    color: #071833 !important;
    font-size: 14px !important;
    font-weight: 900 !important;
    white-space: normal !important;
  }
  .ad-cart-page table.shop_table.cart td.product-quantity,
  .ad-wc-system-page table.shop_table.cart td.product-quantity {
    grid-area: qty !important;
  }
  .ad-cart-page table.shop_table.cart td.product-quantity .quantity,
  .ad-wc-system-page table.shop_table.cart td.product-quantity .quantity,
  .ad-cart-page table.shop_table.cart td.product-quantity .qty,
  .ad-wc-system-page table.shop_table.cart td.product-quantity .qty {
    max-width: 128px !important;
  }
  .ad-cart-page table.shop_table.cart td.product-quantity input.qty,
  .ad-wc-system-page table.shop_table.cart td.product-quantity input.qty {
    width: 58px !important;
    height: 42px !important;
    min-height: 42px !important;
    font-size: 14px !important;
  }
  .ad-cart-page table.shop_table.cart td.product-subtotal,
  .ad-wc-system-page table.shop_table.cart td.product-subtotal {
    grid-area: subtotal !important;
    color: #071833 !important;
    font-size: 14px !important;
    font-weight: 900 !important;
    white-space: normal !important;
  }
  .ad-cart-page table.shop_table.cart td.product-price .amount,
  .ad-wc-system-page table.shop_table.cart td.product-price .amount,
  .ad-cart-page table.shop_table.cart td.product-subtotal .amount,
  .ad-wc-system-page table.shop_table.cart td.product-subtotal .amount {
    white-space: nowrap !important;
  }
  .ad-cart-page table.shop_table.cart tr:not(.cart_item),
  .ad-wc-system-page table.shop_table.cart tr:not(.cart_item),
  .ad-cart-page table.shop_table.cart td.actions,
  .ad-wc-system-page table.shop_table.cart td.actions {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    padding: 0 !important;
    border: 0 !important;
  }
  .ad-cart-page table.shop_table.cart td.actions .coupon,
  .ad-wc-system-page table.shop_table.cart td.actions .coupon {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 10px !important;
    width: 100% !important;
    margin: 12px 0 !important;
  }
  .ad-cart-page table.shop_table.cart td.actions .coupon input.input-text,
  .ad-wc-system-page table.shop_table.cart td.actions .coupon input.input-text,
  .ad-cart-page table.shop_table.cart td.actions .coupon .input-text,
  .ad-wc-system-page table.shop_table.cart td.actions .coupon .input-text {
    width: 100% !important;
    min-height: 48px !important;
    border: 1px solid #d9e8f8 !important;
    border-radius: 14px !important;
    padding: 0 14px !important;
    box-sizing: border-box !important;
  }
  .ad-cart-page table.shop_table.cart td.actions .button,
  .ad-wc-system-page table.shop_table.cart td.actions .button,
  .ad-cart-page .cart-collaterals .button,
  .ad-wc-system-page .cart-collaterals .button {
    width: 100% !important;
    min-height: 48px !important;
    border-radius: 14px !important;
    white-space: normal !important;
  }
  .ad-cart-page .cart-collaterals,
  .ad-wc-system-page .cart-collaterals,
  .ad-cart-page .cart_totals,
  .ad-wc-system-page .cart_totals {
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
  }
}

@media (max-width: 420px) {
  .ad-cart-page table.shop_table.cart tr.cart_item,
  .ad-wc-system-page table.shop_table.cart tr.cart_item {
    grid-template-columns: 64px minmax(0, 1fr) !important;
    gap: 8px 10px !important;
    padding: 10px !important;
  }
  .ad-cart-page table.shop_table.cart td.product-thumbnail,
  .ad-wc-system-page table.shop_table.cart td.product-thumbnail,
  .ad-cart-page table.shop_table.cart td.product-thumbnail a,
  .ad-wc-system-page table.shop_table.cart td.product-thumbnail a,
  .ad-cart-page table.shop_table.cart td.product-thumbnail img,
  .ad-wc-system-page table.shop_table.cart td.product-thumbnail img {
    width: 64px !important;
    min-width: 64px !important;
    max-width: 64px !important;
    height: 64px !important;
  }
  .ad-cart-page table.shop_table.cart td.product-name,
  .ad-wc-system-page table.shop_table.cart td.product-name {
    font-size: 13px !important;
  }
}

/* AllDent v1.1.25 — small safe mobile left inset for homepage horizontal product sliders only. */
@media (max-width: 767px) {
  .ad-home-page .section > .container > .product-grid.product-grid--6 {
    padding-left: 24px !important;
    padding-right: 24px !important;
    margin-left: -8px !important;
    margin-right: -8px !important;
    scroll-padding-left: 24px !important;
  }
}

/* AllDent v1.1.26 — mobile homepage slider correction.
   Only homepage mobile product rails are affected: all products stay in one horizontal row, no vertical rail scrolling. */
@media (max-width: 767px) {
  .ad-home-page .section > .container > .product-grid.product-grid--6 {
    padding-left: 18px !important;
    padding-right: 18px !important;
    margin-left: -8px !important;
    margin-right: -8px !important;
    scroll-padding-left: 18px !important;
    overflow-x: auto !important;
    overflow-y: hidden !important;
    overscroll-behavior-x: contain;
  }
}

@media (max-width: 560px) {
  .ad-home-page .section--home-neo .product-grid--6 > .product-card:nth-of-type(n+5) {
    display: flex !important;
  }
  .ad-home-page .section--home-neo .home-mobile-more {
    display: none !important;
  }
  .ad-home-page .section--home-neo .section-head .section-link {
    display: inline-flex !important;
  }
}

/* v1.1.32 — трохи ширший контент одиночної статті, без впливу на блог/товари */
@media (min-width: 992px) {
  .ad-article-page .article {
    max-width: 940px;
  }
}

@media (min-width: 1280px) {
  .ad-article-page .article {
    max-width: 960px;
  }
}

/* AllDent v1.1.42 — final UI polish is duplicated in wordpress.css, which loads last. */


/* AllDent v1.1.47 — checkout contact/delivery fields fill the left card width safely. */
.ad-checkout-page #customer_details .woocommerce-billing-fields__field-wrapper,
.ad-checkout-page #customer_details .woocommerce-shipping-fields__field-wrapper,
.ad-checkout-page #customer_details .woocommerce-additional-fields__field-wrapper {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  column-gap: 18px !important;
  row-gap: 0 !important;
  width: 100% !important;
}
.ad-checkout-page #customer_details .form-row,
.ad-checkout-page #customer_details .form-row-first,
.ad-checkout-page #customer_details .form-row-last,
.ad-checkout-page #customer_details .form-row-wide,
.ad-checkout-page #customer_details p[id$="_field"] {
  float: none !important;
  clear: none !important;
  width: 100% !important;
  max-width: none !important;
  box-sizing: border-box !important;
  grid-column: 1 / -1 !important;
  margin: 0 0 14px !important;
}
.ad-checkout-page #customer_details #billing_first_name_field {
  grid-column: 1 / 2 !important;
}
.ad-checkout-page #customer_details #billing_last_name_field {
  grid-column: 2 / 3 !important;
}
.ad-checkout-page #customer_details .form-row input.input-text,
.ad-checkout-page #customer_details .form-row textarea,
.ad-checkout-page #customer_details .form-row select,
.ad-checkout-page #customer_details .select2-container,
.ad-checkout-page #customer_details .select2-container .select2-selection--single,
.ad-checkout-page #customer_details .wc-ukr-shipping-select,
.ad-checkout-page #customer_details [class*="wcus"] select,
.ad-checkout-page #customer_details [class*="wcus"] .select2-container {
  width: 100% !important;
  max-width: none !important;
  box-sizing: border-box !important;
}
@media (max-width: 640px) {
  .ad-checkout-page #customer_details .woocommerce-billing-fields__field-wrapper,
  .ad-checkout-page #customer_details .woocommerce-shipping-fields__field-wrapper,
  .ad-checkout-page #customer_details .woocommerce-additional-fields__field-wrapper {
    display: block !important;
  }
  .ad-checkout-page #customer_details #billing_first_name_field,
  .ad-checkout-page #customer_details #billing_last_name_field {
    grid-column: 1 / -1 !important;
  }
}


/* AllDent v1.1.49 — normal category SEO tables from admin editor. */
.ad-cat-content__body .ad-cat-table-wrap,
.ad-cat-flex .ad-cat-table-wrap {
  width: 100%;
  max-width: 100%;
  margin: 18px 0 24px;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}

.ad-cat-content__body .ad-cat-table-wrap table,
.ad-cat-flex .ad-cat-table-wrap table,
.ad-cat-content__body > table,
.ad-cat-flex table {
  width: auto;
  min-width: 420px;
  max-width: 100%;
  display: table !important;
  border-collapse: collapse !important;
  border-spacing: 0 !important;
  background: #fff;
  border: 1px solid #cfe0f2;
  border-radius: 14px;
  overflow: hidden;
  color: var(--color-text);
}

.ad-cat-content__body .ad-cat-table-wrap th,
.ad-cat-content__body .ad-cat-table-wrap td,
.ad-cat-flex .ad-cat-table-wrap th,
.ad-cat-flex .ad-cat-table-wrap td,
.ad-cat-content__body > table th,
.ad-cat-content__body > table td,
.ad-cat-flex table th,
.ad-cat-flex table td {
  padding: 10px 14px;
  border: 1px solid #cfe0f2;
  vertical-align: middle;
  text-align: left;
  white-space: nowrap;
  line-height: 1.45;
}

.ad-cat-content__body .ad-cat-table-wrap th,
.ad-cat-flex .ad-cat-table-wrap th,
.ad-cat-content__body > table th,
.ad-cat-flex table th {
  background: #f2f7fd;
  font-weight: 800;
  color: var(--color-text);
}

.ad-cat-content__body .ad-cat-table-wrap p,
.ad-cat-flex .ad-cat-table-wrap p {
  margin: 0;
}

@media (max-width: 767px) {
  .ad-cat-content__body .ad-cat-table-wrap table,
  .ad-cat-flex .ad-cat-table-wrap table,
  .ad-cat-content__body > table,
  .ad-cat-flex table {
    min-width: 520px;
  }

  .ad-cat-content__body .ad-cat-table-wrap th,
  .ad-cat-content__body .ad-cat-table-wrap td,
  .ad-cat-flex .ad-cat-table-wrap th,
  .ad-cat-flex .ad-cat-table-wrap td,
  .ad-cat-content__body > table th,
  .ad-cat-content__body > table td,
  .ad-cat-flex table th,
  .ad-cat-flex table td {
    white-space: nowrap !important;
  }
}

/* AllDent v1.1.50 — compact category SEO tables, no huge wrapper fields.
   Only affects bottom SEO/content tables in categories; products/cart/checkout untouched. */
.ad-cat-content__body > .ad-cat-table-wrap,
.ad-cat-content-section--info .ad-cat-content__body > .ad-cat-table-wrap,
.ad-cat-flex .ad-cat-table-wrap {
  display: inline-block !important;
  width: auto !important;
  min-width: 0 !important;
  max-width: 100% !important;
  margin: 12px 0 22px !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  overflow-x: auto !important;
  overflow-y: visible !important;
  -webkit-overflow-scrolling: touch;
  vertical-align: top !important;
}

.ad-cat-content-section .ad-cat-flex__block--html:has(> .ad-cat-table-wrap:only-child),
.ad-cat-content-section--info .ad-cat-content__body > .ad-cat-table-wrap:has(> table:only-child) {
  padding: 0 !important;
  border: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  border-radius: 0 !important;
}

.ad-cat-content__body .ad-cat-table-wrap table,
.ad-cat-flex .ad-cat-table-wrap table,
.ad-cat-content__body > table,
.ad-cat-flex table {
  width: auto !important;
  min-width: 0 !important;
  max-width: 100% !important;
  margin: 0 !important;
  table-layout: auto !important;
  border-collapse: collapse !important;
  border-spacing: 0 !important;
  background: #fff !important;
  border: 1px solid #cfe0f2 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
}

.ad-cat-content__body .ad-cat-table-wrap th,
.ad-cat-content__body .ad-cat-table-wrap td,
.ad-cat-flex .ad-cat-table-wrap th,
.ad-cat-flex .ad-cat-table-wrap td,
.ad-cat-content__body > table th,
.ad-cat-content__body > table td,
.ad-cat-flex table th,
.ad-cat-flex table td {
  padding: 8px 12px !important;
  border: 1px solid #cfe0f2 !important;
  vertical-align: middle !important;
  text-align: left !important;
  white-space: nowrap !important;
  line-height: 1.35 !important;
}

.ad-cat-content__body .ad-cat-table-wrap th,
.ad-cat-flex .ad-cat-table-wrap th,
.ad-cat-content__body > table th,
.ad-cat-flex table th {
  background: #f2f7fd !important;
  font-weight: 800 !important;
}

@media (max-width: 767px) {
  .ad-cat-content__body > .ad-cat-table-wrap,
  .ad-cat-content-section--info .ad-cat-content__body > .ad-cat-table-wrap,
  .ad-cat-flex .ad-cat-table-wrap {
    display: block !important;
    width: 100% !important;
  }

  .ad-cat-content__body .ad-cat-table-wrap table,
  .ad-cat-flex .ad-cat-table-wrap table,
  .ad-cat-content__body > table,
  .ad-cat-flex table {
    min-width: 420px !important;
  }
}

/* AllDent v1.1.52 — compact category SEO cards and video/table wrappers.
   Fixes white SEO blocks overflowing/sticking outside the blue category content panel. */
.ad-cat-content-section .ad-cat-content,
.ad-cat-content-section .ad-cat-content__grid,
.ad-cat-content-section .ad-cat-content__body {
  width: 100% !important;
  max-width: 100% !important;
  min-width: 0 !important;
  box-sizing: border-box !important;
  overflow: hidden !important;
}

.ad-cat-content-section .ad-cat-content__body > p,
.ad-cat-content-section .ad-cat-content__body > ul,
.ad-cat-content-section .ad-cat-content__body > ol,
.ad-cat-content-section .ad-cat-content__body > div,
.ad-cat-content-section .ad-cat-content__body > section,
.ad-cat-content-section .ad-cat-content__body > article,
.ad-cat-content-section .ad-cat-content__body > blockquote,
.ad-cat-content-section .ad-cat-flex__block {
  box-sizing: border-box !important;
  max-width: 100% !important;
}

.ad-cat-content-section .ad-cat-content__body > p:not(:has(img)):not(:has(iframe)):not(:has(table)),
.ad-cat-content-section .ad-cat-content__body > div:not(.ad-cat-table-wrap):not(.ad-cat-video-embed):not(:has(img)):not(:has(iframe)):not(:has(table)) {
  width: fit-content !important;
  max-width: 100% !important;
}

.ad-cat-content-section .ad-cat-content__body > .ad-cat-video-embed,
.ad-cat-content-section .ad-cat-content__body > div.ad-cat-video-embed {
  display: block !important;
  width: min(100%, 980px) !important;
  max-width: 980px !important;
  margin: 22px auto !important;
  padding: 0 !important;
  border: 0 !important;
  box-shadow: none !important;
  background: #eef4fb !important;
  overflow: hidden !important;
}

.ad-cat-content-section .ad-cat-content__body > .ad-cat-table-wrap {
  box-sizing: border-box !important;
  max-width: 100% !important;
}

@media (max-width: 767px) {
  .ad-cat-content-section .ad-cat-content__body > p:not(:has(img)):not(:has(iframe)):not(:has(table)),
  .ad-cat-content-section .ad-cat-content__body > div:not(.ad-cat-table-wrap):not(.ad-cat-video-embed):not(:has(img)):not(:has(iframe)):not(:has(table)) {
    width: 100% !important;
  }
}

/* AllDent v1.0.59 — safe mobile homepage banner images and compact mobile catalog button. */
@media (max-width: 1024px) {
  .header__catalog-burger span {
    display: none !important;
  }

  .header__catalog-burger {
    width: 52px;
    min-width: 52px;
    padding: 0 !important;
    justify-content: center;
  }
}

@media (max-width: 720px) {
  .header__catalog-burger {
    width: 44px;
    min-width: 44px;
    height: 44px;
  }
}

@media (max-width: 900px) {
  .promo-banner[style*="--ad-mobile-bg"] {
    background-image: var(--ad-mobile-bg) !important;
    background-repeat: no-repeat !important;
    background-size: contain !important;
    background-position: top center !important;
    background-color: #fff !important;
  }

  .promo-banner--mobile-kit {
    padding-top: calc(100% + 22px) !important;
  }

  .promo-banner--mobile-service {
    padding-top: calc(115% + 22px) !important;
  }

  .promo-banner--mobile-suture {
    padding-top: calc(66.7% + 22px) !important;
  }
}

@media (max-width: 520px) {
  .hero-banner {
    padding-top: 24px;
  }

  .promo-banner[style*="--ad-mobile-bg"] {
    padding-left: 24px !important;
    padding-right: 24px !important;
    padding-bottom: 30px !important;
  }

  .promo-banner__title {
    font-size: 25px;
    line-height: 1.12;
  }

  .promo-banner__lead {
    font-size: 14px;
    line-height: 1.45;
  }
}

/* AllDent v1.0.60 — safer mobile banner layout: image above text, no overlay; burger button icon-only. */
.header__catalog-burger > span {
  display: none !important;
}

.header__catalog-burger {
  justify-content: center !important;
}

@media (max-width: 900px) {
  .promo-banner[style*="--ad-mobile-bg"] {
    display: block !important;
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    aspect-ratio: auto !important;
    background-image: var(--ad-mobile-bg) !important;
    background-repeat: no-repeat !important;
    background-position: top center !important;
    background-color: #fff !important;
    box-sizing: border-box !important;
    padding-left: 24px !important;
    padding-right: 24px !important;
    padding-bottom: 30px !important;
    overflow: hidden !important;
  }

  .promo-banner[style*="--ad-mobile-bg"] .promo-banner__body {
    position: relative !important;
    z-index: 2 !important;
    width: 100% !important;
    max-width: 100% !important;
    transform: none !important;
    gap: 14px !important;
  }

  .promo-banner[style*="--ad-mobile-bg"] .promo-banner__body .btn {
    margin-top: 2px !important;
  }

  .promo-banner--mobile-kit {
    background-size: 80% auto !important;
    padding-top: calc(80% + 34px) !important;
  }

  .promo-banner--mobile-service {
    background-size: 82% auto !important;
    padding-top: calc(94% + 30px) !important;
  }

  .promo-banner--mobile-suture {
    background-size: 88% auto !important;
    padding-top: calc(59% + 30px) !important;
  }
}

@media (max-width: 520px) {
  .promo-banner[style*="--ad-mobile-bg"] {
    padding-left: 22px !important;
    padding-right: 22px !important;
    padding-bottom: 28px !important;
  }

  .promo-banner--mobile-kit {
    background-size: 78% auto !important;
    padding-top: calc(78% + 36px) !important;
  }

  .promo-banner--mobile-service {
    background-size: 80% auto !important;
    padding-top: calc(92% + 32px) !important;
  }

  .promo-banner--mobile-suture {
    background-size: 86% auto !important;
    padding-top: calc(57% + 32px) !important;
  }

  .promo-banner[style*="--ad-mobile-bg"] .promo-banner__title {
    font-size: 24px !important;
    line-height: 1.12 !important;
    max-width: 100% !important;
  }

  .promo-banner[style*="--ad-mobile-bg"] .promo-banner__lead {
    font-size: 14px !important;
    line-height: 1.45 !important;
    max-width: 100% !important;
  }
}

@media (max-width: 380px) {
  .promo-banner[style*="--ad-mobile-bg"] .promo-banner__title {
    font-size: 23px !important;
  }
}


/* AllDent v1.1.53 — buyer page blue accents + stable document covers on mobile Safari. */
.ad-docs-page .ad-doc-card__type,
.ad-docs-page .ad-doc-card__link {
  color: #2d84c8 !important;
}
.ad-docs-page .ad-doc-card__link:hover,
.ad-docs-page .ad-doc-card__link:focus-visible {
  background: #eef7ff !important;
  color: #176fac !important;
}
.ad-docs-page .ad-doc-card__placeholder {
  background: linear-gradient(135deg, #eef7ff, #dceeff) !important;
  color: #2d84c8 !important;
}
.ad-docs-page .ad-doc-card__media {
  position: relative !important;
  display: block !important;
  padding: 0 !important;
  background: #fff !important;
  overflow: hidden !important;
  line-height: 0 !important;
  border-radius: 22px 22px 0 0 !important;
  -webkit-transform: translateZ(0);
  transform: translateZ(0);
}
.ad-docs-page .ad-doc-card__media > img {
  position: absolute !important;
  inset: 0 !important;
  width: 100% !important;
  height: 100% !important;
  max-width: none !important;
  max-height: none !important;
  min-width: 100% !important;
  min-height: 100% !important;
  object-fit: cover !important;
  object-position: center center !important;
  display: block !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
}
@media (max-width: 767px) {
  .ad-docs-page .ad-doc-card__media {
    height: 315px !important;
  }
}
@media (max-width: 390px) {
  .ad-docs-page .ad-doc-card__media {
    height: 292px !important;
  }
}

/* AllDent — SKU inside the same light plaque as stock status. Visual only. */
.single-product .ad-product-meta-row {
  background: #f5f8fc;
  border-radius: 16px;
}
.single-product .ad-product-meta-row .ad-product-stock {
  background: transparent !important;
}
.single-product .ad-product-sku-label {
  color: #6f7b8f;
  font-weight: 900;
}
.single-product .ad-product-sku-value {
  color: var(--color-primary, #2A7EC0);
  font-weight: 900;
}

/* AllDent v1.1.58 — compact short product info blocks on single product page. Visual only. */
.single-product .product-detail__short-description {
  gap: 8px !important;
  margin: 12px 0 14px !important;
  font-size: 13.5px !important;
  line-height: 1.46 !important;
}
.single-product .product-detail__short-description > p,
.single-product .product-detail__short-description > div,
.single-product .product-detail__short-description > ul,
.single-product .product-detail__short-description > ol,
.single-product .product-detail__short-description .Box1,
.single-product .product-detail__short-description .Box2,
.single-product .product-detail__short-description .Box3,
.single-product .product-detail__short-description .Box4,
.single-product .product-detail__short-description .Box,
.single-product .product-detail__short-description .ad-desc-card {
  padding-top: 12px !important;
  padding-bottom: 12px !important;
}
.single-product .product-detail__short-description p:empty,
.single-product .product-detail__short-description div:empty,
.single-product .product-detail__short-description ul:empty,
.single-product .product-detail__short-description ol:empty {
  display: none !important;
}
.single-product .product-detail__short-description br:first-child,
.single-product .product-detail__short-description br:last-child,
.single-product .product-detail__short-description br + br {
  display: none !important;
}
.single-product .product-detail__short-description p + p,
.single-product .product-detail__short-description ul + p,
.single-product .product-detail__short-description p + ul,
.single-product .product-detail__short-description p + ol {
  margin-top: 7px !important;
}
.single-product .product-detail__short-description li + li {
  margin-top: 4px !important;
}


/* AllDent v1.1.60 — buyer page exchange blank tab + transparent product card media. Safe visual/admin extension only. */
.product-card__media {
  background: transparent !important;
}
.product-card__media img {
  background: transparent !important;
}

/* AllDent v1.1.61 — AlphaBio connection subcategory cards: compact horizontal desktop, vertical mobile list. */
.catalog-main .ad-category-children.ad-category-children--alphabio-implants,
.catalog-main .ad-category-children {
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  gap: 24px !important;
  margin: 0 0 34px !important;
  padding: 0 !important;
  width: 100% !important;
}
.catalog-main .ad-category-child-card {
  display: flex !important;
  align-items: center !important;
  gap: 18px !important;
  min-height: 104px !important;
  padding: 14px 22px !important;
  border: 1px solid #d8e8f8 !important;
  border-radius: 22px !important;
  background: #f6fbff !important;
  color: #071833 !important;
  text-decoration: none !important;
  box-shadow: none !important;
  transition: border-color .15s ease, transform .15s ease, box-shadow .15s ease !important;
}
.catalog-main .ad-category-child-card:hover {
  transform: translateY(-1px) !important;
  border-color: #b9daf4 !important;
  box-shadow: 0 12px 28px rgba(17, 38, 76, .06) !important;
}
.catalog-main .ad-category-child-card__img {
  flex: 0 0 76px !important;
  width: 76px !important;
  height: 76px !important;
  aspect-ratio: auto !important;
  display: block !important;
  border: 0 !important;
  border-radius: 18px !important;
  background: transparent !important;
  overflow: visible !important;
}
.catalog-main .ad-category-child-card__img img {
  width: 76px !important;
  height: 76px !important;
  max-width: 76px !important;
  max-height: 76px !important;
  padding: 0 !important;
  object-fit: contain !important;
  display: block !important;
}
.catalog-main .ad-category-child-card__title {
  min-height: 0 !important;
  display: block !important;
  color: #071833 !important;
  font-size: 14px !important;
  line-height: 1.35 !important;
  font-weight: 800 !important;
  letter-spacing: -0.01em !important;
}
@media (max-width: 767px) {
  .catalog-main .ad-category-children.ad-category-children--alphabio-implants,
  .catalog-main .ad-category-children {
    grid-template-columns: 1fr !important;
    gap: 8px !important;
    margin: 0 0 20px !important;
  }
  .catalog-main .ad-category-child-card {
    min-height: 68px !important;
    padding: 8px 12px !important;
    gap: 12px !important;
    border-radius: 16px !important;
  }
  .catalog-main .ad-category-child-card__img {
    flex-basis: 52px !important;
    width: 52px !important;
    height: 52px !important;
    border-radius: 14px !important;
  }
  .catalog-main .ad-category-child-card__img img {
    width: 52px !important;
    height: 52px !important;
    max-width: 52px !important;
    max-height: 52px !important;
  }
  .catalog-main .ad-category-child-card__title {
    font-size: 13px !important;
    line-height: 1.3 !important;
  }
}



/* AllDent v1.0.61 — restore mobile catalog button text and keep it compact. */
@media (max-width: 767px) {
  .header__catalog-burger {
    width: auto !important;
    min-width: 98px !important;
    height: 45px !important;
    padding: 0 16px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 8px !important;
    font-size: 14px !important;
    line-height: 1 !important;
  }

  .header__catalog-burger > span {
    display: inline-flex !important;
    align-items: center !important;
    color: inherit !important;
    font-size: inherit !important;
    font-weight: 800 !important;
    line-height: 1 !important;
    white-space: nowrap !important;
  }

  .header__catalog-burger svg {
    flex: 0 0 auto !important;
  }
}

/* AllDent v1.0.62 — remove legacy empty height gaps inside product description tables. */
.ad-description-content .ad-desc-table-wrap,
.ad-description-content .ad-desc-card .ad-desc-table-wrap {
  min-height: 0 !important;
  height: auto !important;
}
.ad-description-content table,
.ad-description-content table tbody,
.ad-description-content table thead,
.ad-description-content table tfoot,
.ad-description-content table tr,
.ad-description-content table td,
.ad-description-content table th {
  height: auto !important;
  min-height: 0 !important;
  max-height: none !important;
}
.ad-description-content table tr:empty,
.ad-description-content table td:empty,
.ad-description-content table th:empty {
  display: none !important;
}
.ad-description-content table td,
.ad-description-content table th {
  padding-top: 12px !important;
  padding-bottom: 12px !important;
  vertical-align: middle !important;
}
.ad-description-content table td > p:first-child,
.ad-description-content table th > p:first-child,
.ad-description-content table td > div:first-child,
.ad-description-content table th > div:first-child {
  margin-top: 0 !important;
}
.ad-description-content table td > p:last-child,
.ad-description-content table th > p:last-child,
.ad-description-content table td > div:last-child,
.ad-description-content table th > div:last-child {
  margin-bottom: 0 !important;
}

/* AllDent v1.0.59 table gap hotfix: hide legacy blank breaks before imported product tables */
.single-product .ad-product-tabs-section .ad-description-content .ad-desc-table-wrap > br,
.single-product .ad-product-tabs-section .ad-description-content .ad-desc-table-wrap > p:empty,
.single-product .ad-product-tabs-section .ad-description-content .ad-desc-table-wrap > div:empty,
.single-product .ad-product-tabs-section .ad-description-content .ad-desc-table-wrap > span:empty {
  display: none !important;
  height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
}

.single-product .ad-product-tabs-section .ad-description-content .ad-desc-table-wrap > table:first-child {
  margin-top: 0 !important;
}
