@charset "UTF-8";
:root {
  --dd-color-background: #fff8f2;
  --dd-color-surface: #fff8f2;
  --dd-color-surface-strong: #f8ede3;
  --dd-color-surface-contrast: #fff8f2;
  --dd-color-text: #2b2b2b;
  --dd-color-muted: #474444;
  --dd-color-accent: #8a4e7a;
  --dd-color-accent-dark: #7d436f;
  --dd-color-accent-soft: #e7b4d1;
  --dd-color-border: #eadbcf;
  --dd-color-white: #ffffff;
  --dd-color-shadow: rgba(91, 60, 46, 0.1);
  --dd-gradient-soft: linear-gradient(145deg, #fffdfb 0%, #f6e9df 100%);
  --dd-gradient-hero: radial-gradient(circle at top right, rgba(191, 125, 146, 0.16), transparent 35%), linear-gradient(145deg, #fffefd 0%, #f5e6dc 100%);
  --dd-shadow-card: 0 6px 30px rgba(0, 0, 0, 0.15);
  --dd-shadow-soft: 0 6px 30px rgba(0, 0, 0, 0.15);
  --dd-radius-sm: 12px;
  --dd-radius-md: 20px;
  --dd-radius-lg: 30px;
  --dd-container: min(1240px, calc(100vw - 32px));
  --dd-space-1: 4px;
  --dd-space-2: 8px;
  --dd-space-3: 12px;
  --dd-space-4: 16px;
  --dd-space-5: 24px;
  --dd-space-6: 32px;
  --dd-space-7: 48px;
  --dd-space-8: 64px;
  --dd-space-9: 96px;
}

*,
*::before,
*::after {
  box-sizing: border-box;
}

html {
  scroll-behavior: smooth;
}

body {
  margin: 0;
  font-family: "Sofia Sans", sans-serif;
  background: var(--dd-color-surface);
  color: var(--dd-color-text);
}

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

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

button,
input,
select,
textarea {
  font: inherit;
}

body {
  background: #fff8f2;
}

.dd-site-wrapper {
  display: flex;
  flex-direction: column;
  min-height: 100vh;
  max-width: 1440px;
  margin: 0 auto;
  background: #fff8f2;
  overflow: hidden;
}

.dd-site-main {
  flex: 1;
}

.dd-container {
  width: var(--dd-container);
  margin: 0 auto;
}

.dd-site-main {
  padding: 0 0 var(--dd-space-8);
}

.dd-site-main--commerce {
  padding-top: var(--dd-space-6);
}

.dd-site-main--narrow {
  width: min(840px, calc(100vw - 32px));
  margin: 0 auto;
}

.dd-stack > * + * {
  margin-top: var(--dd-space-5);
}

.screen-reader-text {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.dd-home-section {
  padding: 93px 0;
}

/* Alternating section backgrounds: skip hero (1st), then alternate */
.dd-home-section:nth-of-type(even) {
  background: #f8ede3;
}

.dd-home-section:nth-of-type(odd) {
  background: #fff8f2;
}

.dd-product-grid,
.dd-pricing-grid,
.dd-steps-grid,
.dd-testimonial-grid {
  display: grid;
  gap: var(--dd-space-5);
}

.dd-category-grid {
  display: grid;
  grid-template-columns: repeat(3, 280px);
  justify-content: center;
  gap: 24px 20px;
  padding: 20px;
}

.dd-product-grid {
  display: grid;
  grid-template-columns: repeat(3, 280px);
  justify-content: center;
  gap: 20px;
}

.dd-testimonial-grid {
  display: grid;
  grid-template-columns: repeat(3, 280px);
  justify-content: center;
  gap: 20px;
}

.dd-archive-page .dd-product-grid {
  grid-template-columns: repeat(var(--dd-archive-columns-desktop, 3), minmax(0, 1fr));
}

.dd-breadcrumbs {
  margin-bottom: var(--dd-space-5);
}

.dd-breadcrumbs__list {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  padding: 0;
  margin: 0;
  list-style: none;
  color: var(--dd-color-muted);
  font-size: 0.92rem;
}

.dd-breadcrumbs__item {
  display: inline-flex;
  align-items: center;
  gap: 10px;
}

.dd-breadcrumbs__item:not(:last-child)::after {
  content: "›";
  color: rgba(44, 33, 30, 0.35);
}

.dd-breadcrumbs__item a:hover,
.dd-breadcrumbs__item a:focus-visible {
  color: var(--dd-color-accent-dark);
}

@media (max-width: 960px) {
  .dd-product-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .dd-testimonial-grid {
    grid-template-columns: none;
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
  }

  .dd-pricing-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .dd-category-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .dd-archive-page .dd-product-grid {
    grid-template-columns: repeat(var(--dd-archive-columns-tablet, 2), minmax(0, 1fr));
  }
}
@media (max-width: 680px) {
  .dd-home-section {
    padding: var(--dd-space-7) 0;
  }

  .dd-product-grid {
    grid-template-columns: minmax(280px, 1fr);
  }

  .dd-testimonial-grid {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: var(--dd-space-4);
  }

  .dd-pricing-grid,
.dd-steps-grid {
    grid-template-columns: 1fr;
  }

  .dd-category-grid {
    grid-template-columns: minmax(280px, 1fr);
  }

  .dd-archive-page .dd-product-grid {
    grid-template-columns: repeat(var(--dd-archive-columns-mobile, 1), minmax(0, 1fr));
  }
}
.dd-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--dd-space-2);
  min-height: 42px;
  padding: 9px 43px;
  border: 1px solid #8a4e7a;
  border-radius: 10px;
  background: #8a4e7a;
  color: #fff8f2;
  font-family: "Sofia Sans", sans-serif;
  font-size: 16px;
  font-weight: 700;
  letter-spacing: 0.01em;
  text-decoration: none;
  cursor: pointer;
  transition: transform 0.2s ease, background-color 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease;
}

a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible {
  outline: 3px solid rgba(179, 107, 146, 0.35);
  outline-offset: 3px;
}

.dd-button:hover,
.dd-button:focus-visible {
  background: #7d436f;
  border-color: #7d436f;
  box-shadow: 0 6px 20px rgba(138, 78, 122, 0.3);
  transform: translateY(-1px);
}

.dd-button--ghost {
  background: transparent;
  color: #8a4e7a;
  border: 2px solid #8a4e7a;
  box-shadow: none;
}

.dd-button--ghost:hover,
.dd-button--ghost:focus-visible {
  background: rgba(255, 248, 242, 0.72);
  color: #8a4e7a;
  border-color: #8a4e7a;
}

.dd-button--phone {
  width: fit-content;
}

.dd-button--small {
  min-height: 40px;
  padding: 0.65rem 1.15rem;
  font-size: 0.88rem;
}

.dd-button__icon {
  font-size: 1rem;
  line-height: 1;
}

.dd-button__messenger-icon {
  display: inline-flex;
  align-items: center;
  width: 18px;
  height: 18px;
  flex-shrink: 0;
}

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

/* CTA dropdown for multiple contact channels */
.dd-cta-dropdown {
  position: relative;
  display: inline-flex;
}

.dd-cta-dropdown__trigger {
  cursor: pointer;
}

.dd-cta-dropdown__arrow {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 18px;
  height: 18px;
  margin-left: 8px;
  font-size: 12px;
  line-height: 1;
  opacity: 0.85;
  transition: transform 0.2s ease, opacity 0.15s ease;
}

.dd-cta-dropdown__trigger:hover .dd-cta-dropdown__arrow {
  opacity: 1;
}

.dd-cta-dropdown.is-open .dd-cta-dropdown__arrow {
  transform: rotate(180deg);
}

.dd-cta-dropdown__menu {
  position: absolute;
  top: calc(100% + 8px);
  left: 0;
  right: 0;
  z-index: 10;
  display: flex;
  flex-direction: column;
  background: #fff;
  border-radius: 12px;
  box-shadow: 0 8px 32px rgba(0, 0, 0, 0.15);
  overflow: hidden;
  opacity: 0;
  visibility: hidden;
  transform: translateY(-6px);
  transition: opacity 0.2s ease, transform 0.2s ease, visibility 0.2s ease;
}

.dd-cta-dropdown.is-open .dd-cta-dropdown__menu {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}

.dd-cta-dropdown__item {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 12px 18px;
  color: #2b2b2b;
  font-family: "Sofia Sans", sans-serif;
  font-size: 15px;
  font-weight: 600;
  text-decoration: none;
  transition: background 0.15s ease;
}

.dd-cta-dropdown__item:hover,
.dd-cta-dropdown__item:focus-visible {
  background: #f8ede3;
}

.dd-cta-dropdown__item:not(:last-child) {
  border-bottom: 1px solid #eadbcf;
}

.dd-cta-dropdown__item-icon {
  display: inline-flex;
  align-items: center;
  width: 22px;
  height: 22px;
  flex-shrink: 0;
  color: var(--dd-channel-color, #8a4e7a);
}

.dd-cta-dropdown__item-icon svg {
  width: 22px;
  height: 22px;
}

.dd-cta-dropdown__item-label {
  color: var(--dd-channel-color, #2b2b2b);
}

.dd-section-heading {
  max-width: 720px;
  margin-bottom: var(--dd-space-6);
}

.dd-section-heading--split {
  max-width: none;
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: var(--dd-space-5);
}

.dd-section-heading__eyebrow {
  margin: 0 0 var(--dd-space-3);
  color: var(--dd-color-accent-dark);
  text-transform: uppercase;
  letter-spacing: 0.16em;
  font-size: 0.78rem;
  font-weight: 800;
}

.dd-section-heading__title {
  margin: 0 0 var(--dd-space-3);
  font-family: "Sofia Sans", sans-serif;
  font-size: 30px;
  font-weight: 700;
  line-height: normal;
  color: #2b2b2b;
}

.dd-section-heading__text {
  margin: 0;
  font-size: 1.02rem;
  line-height: 1.75;
  color: var(--dd-color-muted);
}

.dd-page-content,
.entry-content {
  color: var(--dd-color-text);
}

.entry-content > * + * {
  margin-top: var(--dd-space-4);
}

.entry-content p,
.entry-content li {
  line-height: 1.75;
  color: var(--dd-color-muted);
}

.entry-content ul,
.entry-content ol {
  padding-left: 1.25rem;
}

@media (max-width: 680px) {
  .dd-section-heading--split {
    display: grid;
  }
}
.dd-home-section__cta-row,
.dd-empty-state__actions,
.dd-support-zone__actions,
.dd-contact-page__actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: var(--dd-space-3);
}

.dd-support-zone {
  padding: var(--dd-space-5) 0;
}

.dd-support-zone__card {
  display: grid;
  gap: var(--dd-space-5);
  padding: clamp(1.5rem, 3vw, 2.25rem);
  border: 1px solid rgba(234, 219, 207, 0.88);
  border-radius: var(--dd-radius-lg);
  background: var(--dd-gradient-soft);
  box-shadow: var(--dd-shadow-soft);
}

.dd-support-zone__media img {
  width: 100%;
  height: auto;
  border-radius: var(--dd-radius-md);
}

.dd-support-zone__body {
  max-width: 780px;
}

.dd-support-zone__text p {
  margin: 0;
  color: var(--dd-color-muted);
}

.dd-support-zone__widgets {
  margin-top: var(--dd-space-4);
}

.dd-support-zone__widget {
  padding: var(--dd-space-4);
  border-radius: var(--dd-radius-md);
  background: rgba(255, 255, 255, 0.65);
}

/* Back to top button */
.dd-back-to-top {
  position: fixed;
  bottom: 28px;
  right: 28px;
  z-index: 50;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  border: none;
  border-radius: 50%;
  background: #8a4e7a;
  color: #fff;
  box-shadow: 0 4px 16px rgba(138, 78, 122, 0.35);
  cursor: pointer;
  opacity: 0;
  visibility: hidden;
  transform: translateY(10px);
  transition: opacity 0.3s ease, visibility 0.3s ease, transform 0.3s ease, background 0.2s ease;
}

.dd-back-to-top.is-visible {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}

.dd-back-to-top:hover {
  background: #7d436f;
  transform: translateY(-2px);
  box-shadow: 0 6px 20px rgba(138, 78, 122, 0.45);
}

.dd-back-to-top[hidden] {
  display: none;
}

.dd-footer__logo {
  max-width: 190px;
  width: auto;
  height: auto;
}

.dd-announcement-bar {
  background: rgba(179, 107, 146, 0.09);
  border-bottom: 1px solid rgba(232, 214, 198, 0.9);
}

.dd-announcement-bar--soft {
  background: rgba(255, 255, 255, 0.72);
}

.dd-announcement-bar--highlight {
  background: rgba(191, 125, 146, 0.14);
}

.dd-announcement-bar__inner {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: var(--dd-space-3);
  min-height: 48px;
}

.dd-announcement-bar__inner p {
  margin: 0;
  font-size: 0.92rem;
  color: var(--dd-color-text);
}

.dd-header {
  position: sticky;
  top: 0;
  z-index: 100;
  background: #ffffff;
  border-bottom: none;
}

.dd-header__desktop {
  display: flex;
  align-items: center;
  gap: 27px;
  min-height: 101px;
}

.dd-header__brand .custom-logo-link,
.dd-brand {
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.dd-header__brand .custom-logo {
  width: 100px;
  max-width: 100px;
  height: 100px;
  max-height: 100px;
  object-fit: contain;
}

.dd-header__utility-nav .dd-nav__list,
.dd-header__social,
.dd-mobile-nav__social {
  display: flex;
  flex-wrap: wrap;
  gap: var(--dd-space-3);
}

.dd-header__utility-nav .dd-nav__list {
  justify-content: flex-start;
}

.dd-header__utility-nav .dd-nav__list a,
.dd-header__social a,
.dd-mobile-nav__social a {
  min-height: auto;
  font-size: 0.84rem;
  color: var(--dd-color-muted);
}

.dd-brand {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  color: var(--dd-color-accent-dark);
  font-family: "Times New Roman", serif;
  font-size: 1rem;
  font-style: italic;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-decoration: none;
}

.dd-brand__logo {
  width: 100px;
  height: 100px;
  border-radius: 50%;
  object-fit: cover;
  flex-shrink: 0;
}

.dd-nav {
  flex: 1;
  min-width: 0;
  position: relative;
}

.dd-nav__list {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  gap: 16px;
  margin: 0;
  padding: 0;
  list-style: none;
}

/* Top-level items only — submenus opt out via .sub-menu reset below. */
.dd-nav > .dd-nav__list > .menu-item,
.dd-nav > .dd-nav__list > .page_item {
  position: relative;
}

.dd-nav__list > .menu-item > a,
.dd-nav__list > .page_item > a,
.dd-nav__list > li > .dd-nav__link {
  position: relative;
  display: inline-flex;
  align-items: center;
  min-height: 40px;
  color: #2b2b2b;
  font-family: "Sofia Sans", sans-serif;
  font-size: 16px;
  font-weight: 700;
  line-height: normal;
  white-space: nowrap;
  text-transform: uppercase;
  text-decoration: none;
}

.dd-nav__list > .menu-item > a::after,
.dd-nav__list > .page_item > a::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: 0;
  width: 100%;
  height: 2px;
  background: var(--dd-color-accent);
  transform: scaleX(0);
  transform-origin: center;
  transition: transform 0.2s ease;
}

.dd-nav__list > .menu-item > a:hover::after,
.dd-nav__list > .menu-item > a:focus-visible::after,
.dd-nav__list > .page_item > a:hover::after,
.dd-nav__list > .page_item > a:focus-visible::after,
.dd-nav__list > li > a[aria-current=page]::after {
  transform: scaleX(1);
}

/* ─── Desktop dropdown submenus ─────────────────────────────────────────── */
/* Parent disclosure button (emitted by DD_Walker_Nav_Menu when item has children). */
.dd-nav__toggle {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  margin-left: 4px;
  padding: 0;
  border: 0;
  background: transparent;
  color: var(--dd-color-accent-dark, #8a4e7a);
  cursor: pointer;
  border-radius: 999px;
  transition: background 0.15s ease, transform 0.2s ease;
}

.dd-nav__toggle:hover,
.dd-nav__toggle:focus-visible {
  background: rgba(138, 78, 122, 0.1);
}

.dd-nav__toggle::before {
  content: "";
  width: 8px;
  height: 8px;
  border-right: 2px solid currentColor;
  border-bottom: 2px solid currentColor;
  transform: rotate(45deg) translate(-2px, -2px);
  transition: transform 0.2s ease;
}

.dd-nav__toggle[aria-expanded=true]::before {
  transform: rotate(-135deg) translate(-2px, -2px);
}

/* Reset nested ULs and style as dropdown panel.
   Note on `top: 100%` + `padding-top: 4px` instead of `top: calc(100% + 4px)`:
   the latter creates a real 4px gap between parent <a> and submenu where the
   mouse loses :hover, instantly closing the dropdown. With padding-top inside
   the same submenu element, the visual breathing room remains but the hover
   chain is unbroken — mouse never crosses dead pixels. */
.dd-nav .sub-menu,
.dd-nav .children {
  position: absolute;
  top: 100%;
  left: 0;
  z-index: 1000;
  display: none;
  min-width: 240px;
  margin: 0;
  padding: 12px 0 8px;
  list-style: none;
  background: #ffffff;
  border-radius: 12px;
  box-shadow: 0 16px 32px rgba(43, 43, 43, 0.14);
  /* Intentionally no border-top: the parent <a>'s ::after underline
     already provides the brand accent rail when current/hovered. A
     border-top here would double up with that line. */
}

/* Reveal on hover (mouse) or focus-within (keyboard tab into children).
   Walker also flips data-open on the <li> for click/touch via JS. */
.dd-nav__list > .menu-item-has-children:hover > .sub-menu,
.dd-nav__list > .menu-item-has-children:focus-within > .sub-menu,
.dd-nav__list > .menu-item-has-children[data-open=true] > .sub-menu,
.dd-nav__list > .page_item_has_children:hover > .children,
.dd-nav__list > .page_item_has_children:focus-within > .children,
.dd-nav__list > .page_item_has_children[data-open=true] > .children {
  display: block;
}

/* Click-only mode (admin opt-in): disable hover reveal so the disclosure
   button is the only way to open. focus-within still works for keyboard. */
.dd-nav--mode-click_only .dd-nav__list > .menu-item-has-children:hover > .sub-menu,
.dd-nav--mode-click_only .dd-nav__list > .page_item_has_children:hover > .children {
  display: none;
}

.dd-nav--mode-click_only .dd-nav__list > .menu-item-has-children[data-open=true] > .sub-menu,
.dd-nav--mode-click_only .dd-nav__list > .menu-item-has-children:focus-within > .sub-menu,
.dd-nav--mode-click_only .dd-nav__list > .page_item_has_children[data-open=true] > .children,
.dd-nav--mode-click_only .dd-nav__list > .page_item_has_children:focus-within > .children {
  display: block;
}

/* Submenu items — readable, normal-case, brand hover.
   Layout: each <li> is a flex row so the link takes flexible width and
   the disclosure toggle (when present) sits inline at the right edge,
   not stacked below it. Subcategory chevrons must always be reachable
   without the row wrapping. */
.dd-nav .sub-menu .menu-item,
.dd-nav .children .page_item {
  position: relative;
  display: flex;
  align-items: stretch;
  flex-wrap: nowrap;
}

/* Kill any inherited ::after underline from the top-level rule —
   submenu items use background hover instead of an underline scrub. */
.dd-nav .sub-menu a::after,
.dd-nav .children a::after {
  content: none;
  display: none;
}

.dd-nav .sub-menu a,
.dd-nav .children a {
  flex: 1 1 auto;
  display: flex;
  align-items: center;
  min-width: 0;
  min-height: 44px;
  padding: 10px 18px;
  color: #2b2b2b;
  font-family: "Sofia Sans", sans-serif;
  font-size: 14px;
  font-weight: 600;
  line-height: 1.3;
  text-transform: none;
  text-decoration: none;
  white-space: nowrap;
  transition: background 0.15s ease, color 0.15s ease;
}

/* Toggle button inside submenu items — sits at the right edge as a tap
   target. Reused styling rotates the chevron 90° (right-pointing) since
   2nd-level submenus open to the side. */
.dd-nav .sub-menu .dd-nav__toggle,
.dd-nav .children .dd-nav__toggle {
  flex: 0 0 44px;
  width: 44px;
  height: auto;
  align-self: stretch;
  margin-left: 0;
  border-radius: 0;
  color: var(--dd-color-accent-dark, #8a4e7a);
}

.dd-nav .sub-menu .dd-nav__toggle::before,
.dd-nav .children .dd-nav__toggle::before {
  /* Rotate the down-chevron 90° so it points RIGHT — matches the
     side-opening L2 submenu direction, not down. */
  transform: rotate(-45deg) translate(0, 0);
}

.dd-nav .sub-menu .dd-nav__toggle[aria-expanded=true]::before,
.dd-nav .children .dd-nav__toggle[aria-expanded=true]::before {
  /* When L2 is open, point chevron down-right to indicate active state. */
  transform: rotate(45deg) translate(-2px, -2px);
}

.dd-nav .sub-menu .dd-nav__toggle:hover,
.dd-nav .sub-menu .dd-nav__toggle:focus-visible {
  background: rgba(232, 214, 198, 0.5);
}

/* Ensure submenu panels are wide enough for Bulgarian labels.
   "Парти аксесоари" + chevron = ~220px; bump min-width with margin. */
.dd-nav .sub-menu,
.dd-nav .children {
  min-width: 260px;
}

/* Reset accent color on submenu items even when their parent <li> is
   `current-menu-item` / `current-menu-parent` / `current-menu-ancestor`.
   WordPress propagates these classes down the tree, which makes every
   dropdown link appear as if it were the active page (purple text +
   underline). Submenu items should look like normal links until the
   user actually hovers them. */
.dd-nav .sub-menu .current-menu-item > a,
.dd-nav .sub-menu .current-menu-parent > a,
.dd-nav .sub-menu .current-menu-ancestor > a,
.dd-nav .sub-menu .current_page_item > a,
.dd-nav .sub-menu a[aria-current=page] {
  color: var(--dd-color-accent-dark, #8a4e7a);
  font-weight: 700;
}

.dd-nav .sub-menu a:hover,
.dd-nav .sub-menu a:focus-visible,
.dd-nav .children a:hover,
.dd-nav .children a:focus-visible {
  background: rgba(232, 214, 198, 0.35);
  color: var(--dd-color-accent-dark, #8a4e7a);
  outline: none;
}

/* 2nd-level submenus open to the side.
   No margin-left here — that would create a real gap where the mouse
   loses :hover. Instead, the brand-accent border-left + 4px padding-left
   inside the L2 panel handle the visual separation while keeping the
   hover chain unbroken. */
.dd-nav .sub-menu .sub-menu {
  top: -8px;
  left: 100%;
  border-radius: 0 12px 12px 12px;
  border-top: none;
  border-left: 3px solid var(--dd-color-accent, #b36b92);
  padding-left: 4px;
}

/* Reveal L2 submenu — same trigger surface as L1 (hover, focus-within,
   data-open). The original reveal rule only matched > .menu-item-has-children
   direct children of .dd-nav__list which left L2 items invisible.
   This adds reveal for items nested inside any .sub-menu. */
.dd-nav .sub-menu .menu-item-has-children:hover > .sub-menu,
.dd-nav .sub-menu .menu-item-has-children:focus-within > .sub-menu,
.dd-nav .sub-menu .menu-item-has-children[data-open=true] > .sub-menu {
  display: block;
}

/* Click-only mode: L2 also disables hover, requires explicit toggle. */
.dd-nav--mode-click_only .dd-nav .sub-menu .menu-item-has-children:hover > .sub-menu {
  display: none;
}

.dd-nav--mode-click_only .dd-nav .sub-menu .menu-item-has-children[data-open=true] > .sub-menu,
.dd-nav--mode-click_only .dd-nav .sub-menu .menu-item-has-children:focus-within > .sub-menu {
  display: block;
}

/* ─── Per-item icon (emoji prefix from ACF) ────────────────────────────── */
.dd-nav__icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin-right: 6px;
  font-size: 1.05em;
  line-height: 1;
}

/* ─── Always-emphasized item (e.g., Промо) — solid underline always on ─── */
.dd-nav__list > .dd-menu-item--emphasis > a::after {
  transform: scaleX(1);
}

/* ─── Mega panel (per-item ACF flag) ───────────────────────────────────── */
.dd-nav__sub-menu--mega {
  display: grid;
  grid-template-columns: 1fr 280px;
  gap: 24px;
  min-width: 560px;
  max-width: 720px;
  padding: 20px 24px;
}

/* Default sub-menu UL has list-style none; reset for mega so the items
   sit in the left column flowing top-to-bottom while the feature lives
   in the right column. */
.dd-nav__sub-menu--mega .menu-item:not(.dd-nav__mega-feature) {
  display: block;
}

.dd-nav__mega-feature {
  grid-column: 2;
  grid-row: 1/span 99;
  align-self: stretch;
  display: flex;
  flex-direction: column;
  gap: 10px;
  padding: 0;
  background: var(--dd-color-surface-warm, #f8ede3);
  border-radius: 10px;
  overflow: hidden;
}

.dd-nav__mega-image {
  width: 100%;
  height: auto;
  aspect-ratio: 16/10;
  object-fit: cover;
  display: block;
}

.dd-nav__mega-intro {
  margin: 0;
  padding: 6px 14px 14px;
  font-family: "Sofia Sans", sans-serif;
  font-size: 13px;
  font-weight: 500;
  line-height: 1.45;
  color: var(--dd-color-accent-dark, #8a4e7a);
  text-transform: none;
}

/* Below 1024px the mega collapses to a normal stacked dropdown to fit. */
@media (max-width: 1024px) {
  .dd-nav__sub-menu--mega {
    grid-template-columns: 1fr;
    min-width: 240px;
  }

  .dd-nav__mega-feature {
    grid-column: 1;
    grid-row: auto;
  }
}
.dd-header__actions {
  display: flex;
  align-items: center;
  gap: 16px;
  flex-shrink: 0;
}

.dd-header__search {
  display: flex;
  align-items: center;
  width: 200px;
  height: 38px;
  padding: 4px 12px 4px 16px;
  overflow: visible;
  position: relative;
  background: var(--dd-color-surface-strong);
  border: 1px solid var(--dd-color-border);
  border-radius: 999px;
  box-shadow: none;
  transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

.dd-header__search:focus-within {
  border-color: var(--dd-color-accent);
  box-shadow: 0 0 0 3px rgba(138, 78, 122, 0.1);
}

.dd-header__search input {
  flex: 1;
  min-width: 0;
  padding: 0;
  border: 0;
  background: transparent;
  color: var(--dd-color-text);
  font-family: "Sofia Sans", sans-serif;
  font-size: 0.9rem;
  outline: none;
}

.dd-header__search input::placeholder {
  color: var(--dd-color-muted);
  opacity: 0.6;
}

.dd-header__search button {
  flex-shrink: 0;
  width: 28px;
  height: 28px;
  padding: 0;
  border: 0;
  background: transparent;
  color: var(--dd-color-accent);
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: color 0.15s ease;
}

.dd-header__search button:hover {
  color: var(--dd-color-accent-dark);
}

.dd-header__search button svg {
  width: 20px;
  height: 20px;
}

/* Live search results dropdown */
.dd-search-results {
  position: absolute;
  top: calc(100% + 6px);
  left: 0;
  right: 0;
  z-index: 100;
  background: #fff;
  border-radius: 12px;
  box-shadow: 0 8px 32px rgba(0, 0, 0, 0.15);
  overflow: hidden;
  min-width: 300px;
}

.dd-search-results[hidden] {
  display: none;
}

.dd-search-results__item {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 10px 14px;
  text-decoration: none;
  color: #2b2b2b;
  transition: background 0.15s ease;
}

.dd-search-results__item:hover {
  background: var(--dd-color-surface-strong);
}

.dd-search-results__item:not(:last-child) {
  border-bottom: 1px solid var(--dd-color-border);
}

.dd-search-results__thumb {
  width: 40px;
  height: 40px;
  border-radius: 6px;
  object-fit: cover;
  flex-shrink: 0;
}

.dd-search-results__info {
  display: flex;
  flex-direction: column;
  gap: 2px;
  min-width: 0;
}

.dd-search-results__title {
  font-family: "Sofia Sans", sans-serif;
  font-size: 14px;
  font-weight: 600;
  color: #2b2b2b;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.dd-search-results__price {
  font-family: "Sofia Sans", sans-serif;
  font-size: 12px;
  color: var(--dd-color-muted);
}

.dd-search-results__empty {
  padding: 16px;
  text-align: center;
  font-family: "Sofia Sans", sans-serif;
  font-size: 14px;
  color: var(--dd-color-muted);
}

.dd-search-results__error {
  padding: 16px;
  text-align: center;
  font-family: "Sofia Sans", sans-serif;
  font-size: 13px;
  color: #a94a3d;
  background: #f1d9d3;
  border-radius: 4px;
}

.dd-search-results__loading {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 16px;
  font-family: "Sofia Sans", sans-serif;
  font-size: 13px;
  color: var(--dd-color-muted);
}

.dd-search-spinner {
  width: 16px;
  height: 16px;
  border: 2px solid var(--dd-color-border);
  border-top-color: #8a4e7a;
  border-radius: 50%;
  animation: dd-spin 0.6s linear infinite;
}

@keyframes dd-spin {
  to {
    transform: rotate(360deg);
  }
}
.dd-header__phone {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 0;
  border: 0;
  background: transparent;
  text-decoration: none;
}

.dd-header__phone-icon {
  font-size: 16px;
  line-height: 1;
  color: #2b2b2b;
}

.dd-header__phone-label {
  display: none;
}

.dd-header__phone-number {
  color: #2b2b2b;
  font-family: "Sofia Sans", sans-serif;
  font-weight: 700;
  font-size: 16px;
  line-height: normal;
}

.dd-menu-toggle {
  position: relative;
  display: none;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  gap: 4px;
  width: 46px;
  height: 46px;
  padding: 0;
  border: 1px solid var(--dd-color-border);
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.88);
  justify-self: end;
}

.dd-menu-toggle__line {
  width: 18px;
  height: 2px;
  border-radius: 999px;
  background: var(--dd-color-text);
  transition: transform 0.25s ease, opacity 0.25s ease;
}

/* Hamburger → X: stack all lines at center, rotate two.
   Note: .screen-reader-text is :nth-child(1), lines are 2/3/4 */
.dd-menu-toggle[aria-expanded=true] .dd-menu-toggle__line {
  position: absolute;
  top: 50%;
  left: 50%;
  margin-left: -9px;
  margin-top: -1px;
}

.dd-menu-toggle[aria-expanded=true] .dd-menu-toggle__line:nth-child(2) {
  transform: rotate(45deg);
}

.dd-menu-toggle[aria-expanded=true] .dd-menu-toggle__line:nth-child(3) {
  opacity: 0;
}

.dd-menu-toggle[aria-expanded=true] .dd-menu-toggle__line:nth-child(4) {
  transform: rotate(-45deg);
}

.dd-mobile-nav {
  padding: var(--dd-space-4) 0 var(--dd-space-5);
  border-top: 1px solid rgba(232, 214, 198, 0.92);
  background: radial-gradient(circle at top right, rgba(191, 125, 146, 0.1), transparent 34%), rgba(255, 249, 244, 0.98);
}

.dd-mobile-nav__lead {
  margin: 0;
  color: var(--dd-color-muted);
}

.dd-mobile-nav .dd-nav__list {
  display: grid;
  justify-content: stretch;
  gap: var(--dd-space-2);
  padding-top: var(--dd-space-4);
}

.dd-mobile-nav .dd-nav__list a {
  padding: 0.85rem 1rem;
  border-radius: var(--dd-radius-sm);
  background: rgba(255, 255, 255, 0.62);
}

/* ─── Mobile accordion submenus ─────────────────────────────────────────── */
.dd-mobile-nav .dd-nav__list .menu-item {
  display: block;
}

/* Parent row that wraps the link + the disclosure toggle on mobile. */
.dd-mobile-nav .dd-nav__list .menu-item-has-children > a {
  display: inline-flex;
  width: calc(100% - 56px);
  vertical-align: middle;
}

.dd-mobile-nav .dd-nav__toggle {
  width: 48px;
  height: 48px;
  margin-left: 4px;
  border-radius: var(--dd-radius-sm);
  background: rgba(255, 255, 255, 0.62);
  vertical-align: middle;
}

.dd-mobile-nav .sub-menu,
.dd-mobile-nav .children {
  position: static;
  display: none;
  min-width: 0;
  margin: 6px 0 0;
  padding: 6px 0 6px 12px;
  border-top: 0;
  border-left: 2px solid var(--dd-color-accent, #b36b92);
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  list-style: none;
}

.dd-mobile-nav .menu-item-has-children[data-open=true] > .sub-menu,
.dd-mobile-nav .page_item_has_children[data-open=true] > .children {
  display: block;
}

/* Each submenu item in mobile is its own row — link on the left, toggle
   button on the right. Reset the desktop flex-row so mobile gets the
   accordion-style behavior the drawer needs. */
.dd-mobile-nav .sub-menu .menu-item {
  display: flex;
  align-items: stretch;
  flex-wrap: nowrap;
  margin: 0 0 4px;
}

.dd-mobile-nav .sub-menu a,
.dd-mobile-nav .children a {
  flex: 1 1 auto;
  display: flex;
  align-items: center;
  min-width: 0;
  min-height: 44px;
  padding: 0.6rem 0.85rem;
  font-size: 15px;
  text-transform: none;
  font-weight: 600;
  white-space: normal;
  background: rgba(255, 255, 255, 0.45);
  border-radius: 6px;
  color: #2b2b2b;
  text-decoration: none;
}

/* Mobile: per-parent disclosure toggle sits at the row's right edge.
   Tapping it expands the nested ul without navigating. */
.dd-mobile-nav .sub-menu .dd-nav__toggle {
  flex: 0 0 44px;
  width: 44px;
  height: auto;
  align-self: stretch;
  margin-left: 4px;
  border-radius: 6px;
  background: rgba(255, 255, 255, 0.45);
  color: var(--dd-color-accent-dark, #8a4e7a);
}

.dd-mobile-nav .sub-menu .dd-nav__toggle::before {
  /* Mobile: chevron points DOWN (open accordion-style, not side-out) */
  transform: rotate(45deg) translate(-2px, -2px);
}

.dd-mobile-nav .sub-menu .dd-nav__toggle[aria-expanded=true]::before {
  transform: rotate(-135deg) translate(-2px, -2px);
}

/* 3rd-level mobile indent — nested children get a darker rail and
   slightly more indentation so the hierarchy reads at a glance. */
.dd-mobile-nav .sub-menu .sub-menu,
.dd-mobile-nav .children .children {
  margin-left: 8px;
  border-left-color: var(--dd-color-accent-dark, #8a4e7a);
}

.dd-header__search--mobile,
.dd-header__phone--mobile {
  margin-top: var(--dd-space-4);
}

.dd-mobile-nav__cta {
  margin-top: var(--dd-space-4);
}

/* Hide phone + CTA in mobile nav on portrait phones (width < height) */
@media (max-width: 680px) and (orientation: portrait) {
  .dd-header__phone--mobile,
.dd-mobile-nav__cta {
    display: none;
  }
}
.dd-mobile-nav__utility {
  margin-top: var(--dd-space-4);
}

.dd-mobile-nav__utility .dd-nav__list {
  justify-content: flex-start;
  padding-top: 0;
}

.dd-footer {
  margin-top: 0;
  padding: 36px 0 28px;
  border-top: none;
  background: var(--dd-color-surface-warm, #f8ede3);
  font-family: "Sofia Sans", sans-serif;
  font-size: 16px;
  color: #2b2b2b;
  line-height: 1.4;
  text-align: center;
}

/* Minimal footer: brand line (optional) → social row → designer → copyright. */
.dd-footer--minimal .dd-container {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 14px;
}

.dd-footer__brand-line {
  margin: 0;
  font-size: 15px;
  color: rgba(43, 43, 43, 0.7);
  max-width: 640px;
}

.dd-footer__social {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
  gap: 18px;
  margin: 0;
}

.dd-footer__social a {
  color: #2b2b2b;
  text-decoration: none;
  font-weight: 600;
  font-size: 14px;
  transition: color 0.15s ease;
}

.dd-footer__social a:hover,
.dd-footer__social a:focus-visible {
  color: var(--dd-color-accent-dark, #8a4e7a);
}

.dd-footer__designer {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
  margin: 4px 0 0;
  font-size: 14px;
  color: rgba(43, 43, 43, 0.55);
}

.dd-footer__designer a {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  color: rgba(43, 43, 43, 0.7);
  text-decoration: none;
  transition: color 0.2s;
}

.dd-footer__designer a:hover,
.dd-footer__designer a:focus-visible {
  color: var(--dd-color-accent-dark, #8a4e7a);
}

.dd-footer__designer img {
  width: 16px;
  height: 16px;
  border-radius: 2px;
  opacity: 0.75;
}

.dd-footer__copyright {
  margin: 0;
  font-size: 13px;
  color: rgba(43, 43, 43, 0.5);
  letter-spacing: 0.02em;
}

@media (max-width: 960px) {
  .dd-header__desktop > .dd-nav {
    display: none;
  }

  .dd-header__desktop {
    min-height: 78px;
  }

  .dd-menu-toggle {
    display: inline-flex;
    margin-left: auto;
  }

  .dd-header__desktop .dd-header__actions {
    display: none;
  }

  .dd-footer__grid {
    flex-direction: column;
  }
}
@media (max-width: 760px) {
  .dd-header__brand .custom-logo {
    max-width: var(--dd-logo-width-mobile, 140px);
  }

  .dd-announcement-bar__inner {
    padding: 0.55rem 0;
  }

  .dd-footer__grid {
    flex-direction: column;
  }
}
.dd-category-card {
  height: 100%;
}

.dd-category-card__link {
  display: flex;
  flex-direction: column;
  gap: 21px;
  align-items: center;
  justify-content: center;
  min-height: 100%;
  overflow: hidden;
  padding-bottom: 22px;
  background: #fff8f2;
  border: none;
  border-radius: 8px;
  box-shadow: var(--dd-shadow-card);
  text-decoration: none;
}

.dd-category-card__media {
  position: relative;
  overflow: hidden;
  width: 100%;
  aspect-ratio: 1/1;
  border-radius: 8px;
  background: linear-gradient(180deg, #fff8f1 0%, #f4e0d4 100%);
}

.dd-category-card__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: 8px;
  transition: transform 0.25s ease;
}

.dd-category-card:hover .dd-category-card__media img,
.dd-category-card:focus-within .dd-category-card__media img {
  transform: scale(1.04);
}

.dd-category-card__media--empty::before,
.dd-category-card__media--empty::after {
  content: "";
  position: absolute;
}

.dd-category-card__media--empty::before {
  inset: 18%;
  border-radius: 26px;
  border: 1px solid rgba(179, 107, 146, 0.18);
}

.dd-category-card__media--empty::after {
  inset: 32%;
  border-radius: 999px;
  background: radial-gradient(circle, rgba(179, 107, 146, 0.2) 0%, rgba(255, 255, 255, 0) 72%);
}

.dd-category-card__body {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--dd-space-2);
  padding: 0 var(--dd-space-4);
  text-align: center;
}

.dd-category-card--placeholder .dd-category-card__link {
  background: #fff8f2;
  border: none;
  box-shadow: var(--dd-shadow-card);
}

.dd-category-card--placeholder .dd-category-card__media {
  background: radial-gradient(circle at 50% 55%, rgba(179, 107, 146, 0.08) 0%, transparent 65%), linear-gradient(180deg, #fff8f2 0%, #f4e7dc 100%);
}

.dd-category-card--placeholder .dd-category-card__title {
  color: #2b2b2b;
}

.dd-category-card__badge {
  display: none;
}

.dd-category-card__title {
  margin: 0;
  font-family: "Sofia Sans", sans-serif;
  font-size: 16px;
  font-weight: 700;
  line-height: 1.3;
  color: #2b2b2b;
  min-height: calc(1.3em * 2);
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  text-align: center;
}

.dd-category-card__summary {
  display: none;
}

.dd-category-card__cta {
  display: none;
}

.dd-product-card,
.dd-pricing-card,
.dd-step-card,
.dd-testimonial-card {
  height: 100%;
  background: #fff8f2;
  border: none;
  border-radius: 8px;
  box-shadow: var(--dd-shadow-card);
}

.dd-product-card {
  display: flex;
  flex-direction: column;
  gap: 15px;
  align-items: center;
  padding-bottom: 8px;
  height: 100%;
}

.dd-product-card__media {
  position: relative;
  overflow: hidden;
  width: 100%;
  aspect-ratio: 1/1;
  border-radius: 8px;
  background: linear-gradient(180deg, #fff8f1 0%, #f4e0d4 100%);
}

.dd-product-card__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: 8px;
  transition: transform 0.25s ease;
}

.dd-product-card:hover .dd-product-card__media img,
.dd-product-card:focus-within .dd-product-card__media img {
  transform: scale(1.04);
}

.dd-product-card--placeholder {
  background: #fff8f2;
  border: 1px dashed rgba(138, 78, 122, 0.2);
  box-shadow: none;
}

.dd-product-card--placeholder .dd-product-card__media {
  background: radial-gradient(circle at 50% 60%, rgba(138, 78, 122, 0.06) 0%, transparent 60%), linear-gradient(180deg, #fff8f2 0%, #f0dfd5 100%);
}

.dd-product-card--placeholder .dd-product-card__title,
.dd-product-card--placeholder .dd-product-card__meta {
  color: rgba(43, 43, 43, 0.5);
}

.dd-product-card__placeholder {
  position: absolute;
  inset: 16%;
  border-radius: 22px;
  border: 1px solid rgba(191, 125, 146, 0.18);
  background: radial-gradient(circle, rgba(191, 125, 146, 0.2) 0%, rgba(255, 255, 255, 0) 72%);
}

.dd-product-card__body {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 12px;
  padding: 0 var(--dd-space-4);
  text-align: center;
  width: 100%;
  flex: 1 1 auto;
}

.dd-product-card__body .dd-button {
  width: 200px;
  margin-top: auto;
}

.dd-product-card__badge {
  display: none;
}

.dd-product-card__meta {
  margin: 0;
  font-family: "Sofia Sans", sans-serif;
  font-size: 16px;
  font-weight: 700;
  color: #2b2b2b;
  text-transform: none;
  letter-spacing: 0;
}

.dd-product-card__description {
  display: none;
}

.dd-product-card--placeholder .dd-product-card__description {
  display: none;
}

.dd-product-card__title {
  margin: 0;
  font-family: "Sofia Sans", sans-serif;
  font-size: 16px;
  font-weight: 700;
  line-height: 1.3;
  color: #2b2b2b;
  min-height: calc(1.3em * 2);
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.dd-product-card__title a {
  text-decoration: none;
  color: inherit;
}

.dd-pricing-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.dd-pricing-card {
  display: grid;
  gap: var(--dd-space-3);
  padding: var(--dd-space-4);
}

.dd-pricing-card--highlighted {
  border-color: rgba(179, 107, 146, 0.5);
  box-shadow: 0 6px 30px rgba(138, 78, 122, 0.16);
}

.dd-pricing-card__badge {
  width: fit-content;
  padding: 0.3rem 0.75rem;
  border-radius: 999px;
  background: var(--dd-color-accent-soft);
  color: var(--dd-color-accent-dark);
  font-size: 0.78rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.08em;
}

.dd-pricing-card__label {
  margin: 0;
  color: var(--dd-color-accent-dark);
  font-size: 0.75rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.dd-pricing-card__title,
.dd-step-card h3 {
  margin: 0;
}

.dd-pricing-card__price {
  font-size: 1.6rem;
  font-weight: 800;
  color: var(--dd-color-text);
}

.dd-pricing-card__secondary,
.dd-pricing-card__description,
.dd-step-card p,
.dd-testimonial-card cite {
  margin: 0;
  color: var(--dd-color-muted);
}

.dd-step-card {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  width: 280px;
  height: 300px;
  padding: var(--dd-space-6);
  background: #e7b4d1;
  border-radius: 8px;
  box-shadow: 0 6px 30px rgba(0, 0, 0, 0.15);
  text-align: center;
  gap: 30px;
}

.dd-step-card__icon {
  width: 50px;
  height: 50px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.dd-step-card__icon svg {
  width: 50px;
  height: auto;
}

.dd-step-card__index {
  width: 50px;
  height: 50px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: #2b2b2b;
  font-weight: 800;
  font-size: 24px;
}

.dd-step-card h3 {
  font-family: "Sofia Sans", sans-serif;
  font-size: 16px;
  font-weight: 700;
  color: #2b2b2b;
  margin: 0;
}

.dd-step-card p {
  font-family: "Sofia Sans", sans-serif;
  font-size: 12px;
  font-weight: 400;
  color: #2b2b2b;
  line-height: 14px;
  margin: 0;
}

.dd-testimonial-card {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 16px;
  width: 280px;
  height: 360px;
  padding: 32px 28px 22px;
  background: #ece4ed;
  border: none;
  border-radius: 0;
  box-shadow: 0 6px 30px rgba(0, 0, 0, 0.15);
  overflow: hidden;
}

.dd-testimonial-card__rating {
  margin: 0;
  color: #8a4e7a;
  letter-spacing: 0.16em;
  font-size: 1.4rem;
  text-align: center;
  flex: 0 0 auto;
}

.dd-testimonial-card cite {
  margin: 0;
  font-family: "Sofia Sans", sans-serif;
  font-size: 15px;
  font-weight: 700;
  color: #2b2b2b;
  font-style: normal;
  text-align: center;
  flex: 0 0 auto;
}

.dd-testimonial-card blockquote {
  margin: 0;
  font-family: "Sofia Sans", sans-serif;
  font-size: 12px;
  font-weight: 400;
  line-height: 1.5;
  color: #474444;
  text-align: center;
  /* Cap line length so multi-line center alignment doesn't read as
     left-leaning — measure of ~32 characters keeps lines roughly equal
     in width, which the eye reads as actually centered. */
  max-width: 32ch;
  margin-inline: auto;
  flex: 1 1 auto;
  min-height: 0;
  display: -webkit-box;
  -webkit-line-clamp: 6;
  -webkit-box-orient: vertical;
  overflow: hidden;
  text-overflow: ellipsis;
}

.dd-testimonial-card__product {
  margin: 0;
  margin-top: auto;
  padding-top: 12px;
  font-family: "Sofia Sans", sans-serif;
  font-size: 12px;
  font-weight: 600;
  text-align: center;
  color: #8a4e7a;
  border-top: 1px solid rgba(138, 78, 122, 0.15);
  width: 100%;
  flex: 0 0 auto;
}

.dd-testimonial-card__product a {
  color: inherit;
  text-decoration: none;
  word-break: break-word;
}

.dd-testimonial-card__product a:hover,
.dd-testimonial-card__product a:focus-visible {
  text-decoration: underline;
}

@media (max-width: 680px) {
  .dd-pricing-grid {
    grid-template-columns: 1fr;
  }
}
.dd-empty-state {
  padding: var(--dd-space-7) 0;
}

.dd-empty-state__card {
  max-width: 680px;
  margin: 0 auto;
  padding: clamp(2rem, 5vw, 3.5rem);
  text-align: center;
  background: var(--dd-gradient-soft);
  border: 1px solid rgba(232, 214, 198, 0.9);
  border-radius: var(--dd-radius-lg);
  box-shadow: var(--dd-shadow-card);
}

.dd-empty-state__card h2,
.dd-empty-state__card p {
  margin: 0;
}

.dd-empty-state__card p {
  color: var(--dd-color-muted);
}

.dd-empty-state__media img {
  width: min(220px, 100%);
  height: auto;
  margin: 0 auto;
  border-radius: var(--dd-radius-md);
}

.woocommerce-message,
.woocommerce-info,
.woocommerce-error,
.dd-notice {
  padding: var(--dd-space-4);
  margin-bottom: var(--dd-space-5);
  border: 1px solid rgba(232, 214, 198, 0.9);
  border-radius: var(--dd-radius-md);
  background: var(--dd-color-surface-contrast);
  box-shadow: var(--dd-shadow-soft);
}

.onsale,
.stock,
.out-of-stock-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0.4rem 0.75rem;
  border-radius: 999px;
  background: var(--dd-color-accent-soft);
  color: var(--dd-color-accent-dark);
  font-size: 0.82rem;
  font-weight: 800;
}

.woocommerce-pagination ul.page-numbers,
.pagination .nav-links {
  display: flex;
  flex-wrap: wrap;
  gap: var(--dd-space-2);
  justify-content: center;
  padding: 0;
  margin: var(--dd-space-6) 0 0;
  list-style: none;
}

.woocommerce-pagination a,
.woocommerce-pagination span,
.pagination .page-numbers {
  min-width: 2.5rem;
  min-height: 2.5rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0.4rem 0.85rem;
  border-radius: 999px;
  background: var(--dd-color-surface-contrast);
  border: 1px solid rgba(232, 214, 198, 0.9);
}

.woocommerce-pagination .current,
.pagination .current {
  background: var(--dd-color-accent-soft);
  color: var(--dd-color-accent-dark);
}

.dd-home-section--hero {
  padding: 0;
  overflow: hidden;
}

.dd-hero-shell {
  position: relative;
  height: 600px;
  background-color: #e3d1d1;
  background-image: url("../images/hero-bg.png");
  background-position: center;
  background-size: cover;
  background-repeat: no-repeat;
  overflow: hidden;
}

.dd-hero {
  position: relative;
  z-index: 1;
  display: flex;
  align-items: flex-start;
  height: 100%;
  padding-top: 72px;
}

.dd-hero__copy {
  width: 65%;
  padding-left: 75px;
}

.dd-hero__eyebrow {
  margin: 0 0 1rem;
  color: rgba(138, 78, 122, 0.72);
  font-size: 0.9rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.dd-hero__title {
  margin: 0;
  font-family: "Sofia Sans", sans-serif;
  color: #8a4e7a;
  font-size: 55px;
  font-weight: 700;
  line-height: 66px;
}

.dd-hero__lead {
  margin: 60px 0 0;
  font-family: "Sofia Sans", sans-serif;
  color: #8a4e7a;
  font-size: 30px;
  font-weight: 500;
  line-height: 36px;
}

.dd-hero__actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 20px;
  margin-top: 79px;
}

.dd-button--hero-primary,
.dd-button--hero-secondary {
  min-height: 43px;
  padding: 9px 43px;
  border-radius: 10px;
  font-family: "Sofia Sans", sans-serif;
  font-size: 16px;
  font-weight: 700;
  line-height: 25px;
  box-shadow: none;
  text-decoration: none;
  white-space: nowrap;
}

.dd-button--hero-primary {
  background: #8a4e7a;
  border: 1px solid #8a4e7a;
  color: #fff8f2;
}

.dd-button--hero-primary:hover,
.dd-button--hero-primary:focus-visible {
  background: #7d436f;
  border-color: #7d436f;
}

.dd-button--hero-secondary {
  background: transparent;
  color: #8a4e7a;
  border: 2px solid #8a4e7a;
}

.dd-button--hero-secondary:hover,
.dd-button--hero-secondary:focus-visible {
  background: rgba(255, 248, 242, 0.72);
  color: #8a4e7a;
  border-color: #8a4e7a;
}

.dd-button--hero-secondary .dd-button__icon {
  font-size: 16px;
}

.dd-split-section__media img,
.dd-contact-feature__visual img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: var(--dd-radius-lg);
  box-shadow: var(--dd-shadow-card);
}

.dd-product-summary__filling-group-title {
  margin: 0;
  font-size: clamp(1.55rem, 2.5vw, 2.15rem);
  line-height: 1.1;
}

.dd-steps-grid {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 20px;
}

.dd-section-heading--centered {
  margin-inline: auto;
  text-align: center;
}

.dd-section-heading--centered .dd-section-heading__title,
.dd-section-heading--centered .dd-section-heading__text {
  max-width: none;
}

.dd-home-section--categories {
  /* bg from alternation */
}

.dd-home-section--categories .dd-section-heading {
  margin-bottom: 36px;
}

.dd-home-section--categories .dd-section-heading__title {
  margin-bottom: 0;
}

.dd-home-section--categories .dd-home-section__cta-row {
  display: none;
}

.dd-home-section--steps {
  background: #e9cfc6 !important;
}

.dd-home-section--steps .dd-section-heading {
  margin-bottom: 36px;
}

.dd-home-section--steps .dd-home-section__cta-row {
  display: none;
}

/* About section */
.dd-home-section--about {
  position: relative;
  background: #fff8f2 url("../images/about-bg.png") center/cover no-repeat !important;
}

.dd-home-section--about .dd-section-heading {
  margin-bottom: 36px;
}

.dd-about-split {
  display: flex;
  gap: 67px;
  align-items: flex-start;
}

.dd-about-split__media {
  flex-shrink: 0;
  width: 458px;
}

.dd-about-split__img {
  width: 458px;
  height: 458px;
  object-fit: cover;
  box-shadow: 0 6px 30px rgba(0, 0, 0, 0.15);
  display: block;
}

.dd-about-split__copy {
  width: 456px;
  flex-shrink: 0;
  font-family: "Sofia Sans", sans-serif;
  font-size: 16px;
  font-weight: 400;
  line-height: 19px;
  color: #2b2b2b;
}

.dd-about-split__copy p {
  margin: 0 0 19px;
}

.dd-about-split__copy p:last-child {
  margin-bottom: 0;
}

/* Testimonials section */
.dd-home-section.dd-home-section--testimonials {
  background: #F8EDE3;
}

.dd-home-section--testimonials .dd-section-heading {
  margin-bottom: 36px;
}

.dd-home-section--testimonials .dd-testimonial-grid {
  display: flex;
  flex-wrap: nowrap;
  justify-content: center;
  gap: 20px;
  max-width: 1200px;
  margin-left: auto;
  margin-right: auto;
}

/* Cap to 3 cards visually as a final safety net — any 4th+ card from
 * an upstream override never reaches the second row. */
.dd-home-section--testimonials .dd-testimonial-grid > .dd-testimonial-card:nth-child(n+4) {
  display: none;
}

.dd-home-section--testimonials .dd-testimonial-card {
  align-self: stretch;
}

/* Testimonials stacked on mobile/tablet */
@media (max-width: 960px) {
  .dd-home-section--testimonials .dd-testimonial-grid {
    flex-direction: column;
    align-items: center;
    gap: 16px;
  }
}
@media (max-width: 680px) {
  /* Force the grid to be a fully-centered column on phones. The combination
     of `width: 100%` + `align-items: center` on the grid plus
     `margin-inline: auto` on the cards is belt-and-suspenders so any other
     selector cascading width onto cards still ends up centered. */
  .dd-home-section--testimonials .dd-testimonial-grid {
    width: 100%;
    align-items: center;
    justify-content: center;
  }

  .dd-home-section--testimonials .dd-testimonial-card {
    width: 100%;
    max-width: 340px;
    margin-inline: auto;
    height: auto;
    min-height: 280px;
    padding: 28px 22px 22px;
    gap: 14px;
  }

  .dd-home-section--testimonials .dd-testimonial-card blockquote {
    -webkit-line-clamp: 8;
    max-width: none;
  }
}
/* Classic cakes section - cards without CTA button */
.dd-home-section--classic .dd-section-heading {
  margin-bottom: 36px;
}

.dd-home-section--classic .dd-section-heading__eyebrow {
  display: none;
}

.dd-home-section--classic .dd-product-card__body {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 15px;
}

.dd-home-section--classic .dd-product-card__body.dd-stack > * + * {
  margin-top: 0;
}

.dd-home-section--classic .dd-product-card__badge {
  display: none;
}

.dd-home-section--classic .dd-product-card__meta {
  order: 2;
}

.dd-home-section--classic .dd-product-card__title {
  order: 1;
}

.dd-home-section--classic .dd-product-card__description {
  display: none;
}

.dd-home-section--classic .dd-product-card__body .dd-button {
  display: none;
}

.dd-home-section--classic .dd-home-section__cta-row {
  margin-top: 36px;
  justify-content: center;
}

.dd-home-section--classic .dd-home-section__cta-row .dd-button {
  display: inline-flex;
  width: 240px;
  min-height: 42px;
}

/* Popular cakes section - cards WITH CTA button */
.dd-home-section--popular .dd-section-heading {
  margin-bottom: 36px;
}

.dd-home-section--popular .dd-section-heading__eyebrow {
  display: none;
}

.dd-home-section--popular .dd-product-card {
  padding-bottom: 8px;
}

.dd-home-section--popular .dd-product-card__body {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 15px;
}

.dd-home-section--popular .dd-product-card__body.dd-stack > * + * {
  margin-top: 0;
}

.dd-home-section--popular .dd-product-card__badge {
  display: none;
}

.dd-home-section--popular .dd-product-card__meta {
  order: 2;
}

.dd-home-section--popular .dd-product-card__title {
  order: 1;
}

.dd-home-section--popular .dd-product-card__description {
  display: none;
}

.dd-home-section--popular .dd-product-card__body .dd-button {
  order: 3;
  width: 200px;
  background: #8a4e7a;
  border: 1px solid #8a4e7a;
  border-radius: 10px;
  color: #fff8f2;
  font-size: 16px;
  font-weight: 700;
}

.dd-home-section--popular .dd-product-card__body .dd-button:hover {
  background: #7d436f;
  border-color: #7d436f;
}

.dd-home-section--popular .dd-product-card__body .dd-button .dd-button__icon {
  display: none;
}

.dd-home-section--popular .dd-home-section__cta-row {
  display: none;
}

.dd-home-section--catalog-groups {
  padding-top: 0;
}

.dd-catalog-groups {
  display: grid;
  gap: var(--dd-space-6);
}

.dd-catalog-group {
  padding: clamp(1.4rem, 3vw, 2.2rem);
  border-radius: var(--dd-radius-lg);
}

.dd-catalog-group--soft {
  background: radial-gradient(circle at top left, rgba(255, 255, 255, 0.7) 0%, rgba(255, 255, 255, 0) 45%), linear-gradient(180deg, rgba(255, 250, 246, 0.78) 0%, rgba(246, 231, 220, 0.72) 100%);
  border: 1px solid rgba(232, 214, 198, 0.75);
}

.dd-catalog-group__header {
  margin-bottom: var(--dd-space-4);
}

.dd-catalog-group__header .dd-section-heading {
  margin-bottom: 0;
}

.dd-split-section,
.dd-contact-feature {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(2rem, 5vw, 4rem);
  align-items: center;
}

/* Contact section */
.dd-home-section--contact {
  background: #fff8f2 url("../images/about-bg.png") center/cover no-repeat !important;
}

.dd-home-section--contact .dd-section-heading {
  margin-bottom: 36px;
}

.dd-contact-media-row {
  display: flex;
  gap: 53px;
  align-items: flex-start;
  margin-bottom: 30px;
}

.dd-contact-map {
  flex-shrink: 0;
  width: 600px;
  height: 451px;
  overflow: hidden;
  box-shadow: 0 6px 30px rgba(0, 0, 0, 0.15);
}

.dd-contact-map iframe {
  width: 100%;
  height: 451px;
  border: 0;
}

.dd-contact-photo {
  flex-shrink: 0;
  width: 600px;
  height: 451px;
  overflow: hidden;
  box-shadow: 0 6px 30px rgba(0, 0, 0, 0.15);
}

.dd-contact-photo__img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.dd-contact-info-row {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  font-family: "Sofia Sans", sans-serif;
  font-size: 16px;
  color: #2b2b2b;
  line-height: 19px;
}

.dd-contact-details {
  display: flex;
  gap: 24px;
}

.dd-contact-details__group {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.dd-contact-details__group strong {
  font-weight: 700;
}

.dd-contact-details__group a {
  color: #2b2b2b;
  text-decoration: none;
}

.dd-contact-details__group a:hover {
  color: #8a4e7a;
}

.dd-contact-hours {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.dd-contact-hours strong {
  font-weight: 700;
}

.dd-gallery-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--dd-space-4);
}

.dd-gallery-card {
  margin: 0;
  display: grid;
  gap: var(--dd-space-3);
}

.dd-gallery-card__media {
  overflow: hidden;
  border-radius: var(--dd-radius-md);
  box-shadow: var(--dd-shadow-card);
}

.dd-gallery-card__media img {
  width: 100%;
  height: 100%;
  aspect-ratio: 4/5;
  object-fit: cover;
}

.dd-gallery-card figcaption,
.dd-split-section__note {
  margin: 0;
  color: var(--dd-color-muted);
}

.dd-cta-banner {
  display: grid;
  grid-template-columns: minmax(0, 1.1fr) minmax(0, 0.9fr);
  gap: clamp(1.5rem, 4vw, 3rem);
  align-items: center;
  padding: clamp(1.6rem, 4vw, 2.6rem);
  border-radius: var(--dd-radius-lg);
  background: var(--dd-gradient-soft);
  border: 1px solid rgba(232, 214, 198, 0.9);
  box-shadow: var(--dd-shadow-card);
}

.dd-cta-banner__actions {
  display: flex;
  flex-wrap: wrap;
  gap: var(--dd-space-3);
}

.dd-cta-banner__media img {
  width: 100%;
  height: auto;
  border-radius: var(--dd-radius-md);
}

@media (max-width: 960px) {
  .dd-split-section,
.dd-contact-feature,
.dd-cta-banner {
    grid-template-columns: 1fr;
  }

  .dd-steps-grid {
    flex-wrap: wrap;
    gap: 24px;
  }

  .dd-about-split {
    flex-direction: column;
    gap: 36px;
    align-items: center;
  }

  .dd-contact-media-row {
    flex-direction: column;
    gap: 24px;
  }

  .dd-contact-map,
.dd-contact-photo {
    width: 100%;
  }

  .dd-contact-map {
    height: 350px;
  }

  .dd-contact-map iframe {
    height: 350px;
  }

  .dd-contact-photo {
    height: auto;
  }

  .dd-contact-info-row {
    flex-direction: column;
    gap: 24px;
  }

  .dd-about-split__media {
    width: 100%;
    max-width: 458px;
  }

  .dd-about-split__img {
    width: 100%;
    height: auto;
  }

  .dd-about-split__copy {
    width: 100%;
    max-width: 100%;
    flex-shrink: 1;
  }

  .dd-hero-shell {
    height: 520px;
  }

  .dd-hero {
    padding-top: 3rem;
  }

  .dd-hero-shell {
    background-position: 70% center;
  }

  .dd-hero__copy {
    width: 70%;
    padding-left: 1rem;
  }

  .dd-hero__title {
    font-size: clamp(2rem, 5vw, 55px);
    line-height: 1.2;
  }

  .dd-hero__lead {
    font-size: clamp(1.1rem, 2.5vw, 30px);
    line-height: 1.3;
    margin-top: 2rem;
  }

  .dd-hero__actions {
    margin-top: 2rem;
  }
}
@media (max-width: 680px) {
  .dd-hero-shell {
    height: auto;
    background-color: #ffffff;
    background-image: none !important;
  }

  .dd-hero {
    padding-top: 2rem;
    padding-bottom: 2.5rem;
  }

  /* Center the entire hero copy block on phones — eyebrow, title, lead,
     and CTAs all align to the same axis instead of clinging to the left
     gutter, which read as broken on a 430px viewport. */
  .dd-hero__copy {
    width: 100%;
    padding-left: 1rem;
    padding-right: 1rem;
    text-align: center;
    margin-inline: auto;
  }

  .dd-hero__title {
    font-size: 2rem;
    line-height: 1.2;
  }

  .dd-hero__lead {
    margin-top: 1.5rem;
    font-size: 1.1rem;
    line-height: 1.35;
  }

  .dd-hero__actions {
    margin-top: 1.75rem;
    gap: 1rem;
    justify-content: center;
  }

  .dd-button--hero-primary,
.dd-button--hero-secondary {
    white-space: normal;
    padding-inline: 1.3rem;
  }

  .dd-catalog-group {
    padding: var(--dd-space-4);
  }

  .dd-gallery-grid {
    grid-template-columns: 1fr;
  }
}
/* ── Archive page — Figma catalog layout ── */
.dd-archive-page {
  padding-top: var(--dd-space-6);
  padding-bottom: var(--dd-space-8);
  background: #F8EDE3;
}

/* Centered page title — large, bold */
.dd-archive-page__title {
  margin: 0 0 var(--dd-space-5);
  font-family: "Sofia Sans", sans-serif;
  font-size: 36px;
  font-weight: 700;
  color: #2b2b2b;
  text-align: center;
  line-height: 1.2;
}

/* Breadcrumbs sit below title, left-aligned */
.dd-archive-page > .dd-container > .dd-breadcrumbs {
  margin-bottom: var(--dd-space-5);
}

/* ── Sidebar + Content split ── */
.dd-archive-layout {
  display: grid;
  grid-template-columns: 200px 1px 1fr;
  gap: 0 32px;
  align-items: start;
}

/* Vertical divider between sidebar and content */
.dd-archive-layout::before {
  content: "";
  grid-column: 2;
  grid-row: 1;
  width: 1px;
  height: 100%;
  background: var(--dd-color-border);
  align-self: stretch;
}

/* ── Category sidebar ── */
.dd-archive-sidebar {
  grid-column: 1;
  grid-row: 1;
}

.dd-archive-sidebar__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  padding: 0 0 var(--dd-space-3);
  margin-bottom: var(--dd-space-3);
  border: none;
  border-bottom: 1px solid var(--dd-color-border);
  background: none;
  cursor: pointer;
  font-family: "Sofia Sans", sans-serif;
  font-size: 16px;
  font-weight: 700;
  color: #2b2b2b;
}

.dd-archive-sidebar__header-toggle {
  font-size: 20px;
  line-height: 1;
  color: var(--dd-color-muted);
}

.dd-archive-sidebar__nav {
  padding-top: var(--dd-space-2);
}

.dd-archive-sidebar[aria-collapsed=true] .dd-archive-sidebar__nav {
  display: none;
}

.dd-archive-sidebar__group {
  margin-bottom: var(--dd-space-3);
}

.dd-archive-sidebar__parent {
  display: block;
  font-family: "Sofia Sans", sans-serif;
  font-size: 15px;
  font-weight: 700;
  color: #2b2b2b;
  text-decoration: none;
  margin-bottom: var(--dd-space-1);
  line-height: 1.6;
}

.dd-archive-sidebar__parent:hover {
  color: #8a4e7a;
}

.dd-archive-sidebar__group.is-active .dd-archive-sidebar__parent {
  color: #8a4e7a;
}

.dd-archive-sidebar__children {
  list-style: none;
  padding: 0 0 0 20px;
  margin: 0;
}

.dd-archive-sidebar__children li {
  line-height: 1.8;
}

.dd-archive-sidebar__children a {
  font-family: "Sofia Sans", sans-serif;
  font-size: 14px;
  font-weight: 400;
  color: var(--dd-color-muted);
  text-decoration: none;
  transition: color 0.15s ease;
}

.dd-archive-sidebar__children a:hover,
.dd-archive-sidebar__children li.is-active a {
  color: #8a4e7a;
  font-weight: 600;
}

/* ── Content area ── */
.dd-archive-content {
  grid-column: 3;
  grid-row: 1;
}

.dd-archive-content__description {
  margin: 0 0 var(--dd-space-4);
  font-family: "Sofia Sans", sans-serif;
  font-size: 15px;
  font-style: italic;
  line-height: 1.6;
  color: var(--dd-color-muted);
}

.dd-archive-content__sort {
  display: flex;
  align-items: center;
  gap: var(--dd-space-3);
  margin-bottom: var(--dd-space-5);
  font-family: "Sofia Sans", sans-serif;
  font-size: 14px;
  font-weight: 600;
  color: #2b2b2b;
}

.woocommerce-ordering select {
  padding: 8px 16px;
  border: 1px solid var(--dd-color-border);
  border-radius: 999px;
  background: var(--dd-color-surface-strong);
  font-family: "Sofia Sans", sans-serif;
  font-size: 14px;
  color: var(--dd-color-text);
  outline: none;
  cursor: pointer;
  transition: border-color 0.2s ease;
}

.woocommerce-ordering select:focus {
  border-color: var(--dd-color-accent);
  box-shadow: 0 0 0 3px rgba(138, 78, 122, 0.1);
}

/* ── Catalog grid — fluid 3-column, cards fill space ── */
.dd-catalog-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 20px;
}

/* ── Catalog card — matches Figma exactly ── */
/* Image is landscape ratio, subtle rounded corners, light shadow, no button */
.dd-catalog-card {
  overflow: hidden;
  border-radius: 12px;
  background: #fff;
  box-shadow: 0 2px 12px rgba(0, 0, 0, 0.08);
  transition: transform 0.25s ease, box-shadow 0.25s ease;
}

.dd-catalog-card:hover {
  transform: translateY(-2px);
  box-shadow: 0 6px 24px rgba(0, 0, 0, 0.12);
}

.dd-catalog-card__link {
  display: block;
  text-decoration: none;
  color: inherit;
}

.dd-catalog-card__media {
  position: relative;
  overflow: hidden;
  /* Landscape aspect ratio matching Figma — roughly 4:3 */
  aspect-ratio: 4/3;
}

.dd-catalog-card__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.3s ease;
}

.dd-catalog-card:hover .dd-catalog-card__media img {
  transform: scale(1.03);
}

.dd-catalog-card__placeholder {
  display: block;
  width: 100%;
  height: 100%;
  background: linear-gradient(180deg, #fff8f1 0%, #f4e0d4 100%);
}

.dd-catalog-card__body {
  padding: 16px 16px 22px;
  text-align: center;
}

.dd-catalog-card__title {
  margin: 0 0 6px;
  font-family: "Sofia Sans", sans-serif;
  font-size: 16px;
  font-weight: 700;
  color: #2b2b2b;
  line-height: 1.3;
}

.dd-catalog-card__price {
  margin: 0;
  font-family: "Sofia Sans", sans-serif;
  font-size: 14px;
  font-weight: 400;
  color: var(--dd-color-muted);
}

/* ── Pagination ── */
.woocommerce-pagination {
  margin-top: var(--dd-space-6);
  text-align: center;
}

.woocommerce-pagination ul {
  display: inline-flex;
  gap: 8px;
  padding: 0;
  margin: 0;
  list-style: none;
}

.woocommerce-pagination ul li a,
.woocommerce-pagination ul li span {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 40px;
  height: 40px;
  padding: 0 12px;
  border-radius: 999px;
  font-family: "Sofia Sans", sans-serif;
  font-size: 14px;
  font-weight: 600;
  text-decoration: none;
  color: var(--dd-color-text);
  background: var(--dd-color-surface-strong);
  border: 1px solid var(--dd-color-border);
  transition: background 0.2s ease, color 0.2s ease;
}

.woocommerce-pagination ul li a:hover {
  background: #8a4e7a;
  color: #fff;
  border-color: #8a4e7a;
}

.woocommerce-pagination ul li span.current {
  background: #8a4e7a;
  color: #fff;
  border-color: #8a4e7a;
}

/* ── Responsive ── */
@media (max-width: 960px) {
  .dd-archive-layout {
    display: grid;
    grid-template-columns: 1fr;
    gap: 24px;
  }

  .dd-archive-layout::before {
    display: none;
  }

  .dd-archive-sidebar {
    grid-column: 1;
    grid-row: auto;
    border-bottom: 1px solid var(--dd-color-border);
    padding-bottom: var(--dd-space-4);
  }

  .dd-archive-content {
    grid-column: 1;
    grid-row: auto;
  }

  .dd-catalog-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}
@media (max-width: 680px) {
  .dd-archive-page__title {
    font-size: 28px;
  }

  .dd-catalog-grid {
    grid-template-columns: 1fr;
  }
}
.dd-site-main--commerce {
  background: #fdeee7;
}

.dd-single-product {
  padding-top: var(--dd-space-4);
}

.dd-single-product__grid {
  display: grid;
  grid-template-columns: 420px 1fr;
  gap: 60px;
  align-items: start;
}

/* Left column: Gallery + CTA */
.dd-product__gallery {
  min-width: 0;
  position: sticky;
  top: 120px;
}

.dd-product__gallery-main {
  overflow: hidden;
  border-radius: 8px;
  box-shadow: var(--dd-shadow-card);
  background: #fff8f2;
}

.dd-product__gallery-main img {
  width: 100%;
  aspect-ratio: 1/1;
  object-fit: cover;
  display: block;
}

.dd-product__gallery-thumbs {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: var(--dd-space-3);
  margin-top: var(--dd-space-4);
}

.dd-product__gallery-thumb {
  overflow: hidden;
  padding: 0;
  border: 1px solid rgba(232, 214, 198, 0.9);
  border-radius: 8px;
  background: #fff8f2;
  cursor: pointer;
}

.dd-product__gallery-thumb.is-active {
  border-color: #8a4e7a;
  box-shadow: 0 0 0 2px rgba(138, 78, 122, 0.2);
}

.dd-product__gallery-thumb img {
  width: 100%;
  aspect-ratio: 1/1;
  object-fit: cover;
  display: block;
}

.dd-product__gallery-cta {
  margin-top: 30px;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 16px;
}

.dd-button--product-cta {
  width: 100%;
  justify-content: center;
}

.dd-product__gallery-phone {
  margin: 0;
  font-family: "Sofia Sans", sans-serif;
  font-size: 14px;
  color: #2b2b2b;
  text-align: left;
}

.dd-product__gallery-phone a {
  color: #2b2b2b;
  text-decoration: none;
}

.dd-product__gallery-phone a:hover {
  color: #8a4e7a;
}

.dd-product__gallery-note {
  margin: 0;
  font-family: "Sofia Sans", sans-serif;
  font-size: 12px;
  font-style: italic;
  color: #474444;
  text-align: left;
}

/* Right column: Summary */
.dd-product-summary {
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 30px;
}

.dd-product-summary h1 {
  margin: 0;
  font-family: "Sofia Sans", sans-serif;
  font-size: 36px;
  font-weight: 700;
  line-height: 1.1;
  color: #2b2b2b;
}

.dd-product-summary__intro {
  margin: 0;
  font-family: "Sofia Sans", sans-serif;
  font-size: 16px;
  line-height: 19px;
  color: #474444;
}

/* Content labels (fillings/ingredients) */
.dd-product-labels {
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.dd-product-labels__title {
  margin: 0 0 8px;
  font-family: "Sofia Sans", sans-serif;
  font-size: 16px;
  font-weight: 700;
  color: #2b2b2b;
}

.dd-product-labels__list {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.dd-product-label {
  position: relative;
  display: inline-flex;
  align-items: center;
  padding: 6px 16px;
  border-radius: 999px;
  background: #e7b4d1;
  color: #2b2b2b;
  font-family: "Sofia Sans", sans-serif;
  font-size: 14px;
  font-weight: 600;
  cursor: default;
}

.dd-product-label--premium {
  background: #8a4e7a;
  color: #fff8f2;
}

.dd-product-label--has-tooltip {
  cursor: pointer;
}

.dd-product-label__tooltip {
  position: absolute;
  bottom: calc(100% + 10px);
  left: 50%;
  transform: translateX(-50%);
  display: flex;
  flex-direction: column;
  gap: 4px;
  min-width: 180px;
  max-width: 260px;
  padding: 10px 14px;
  border-radius: 10px;
  background: #2b2b2b;
  color: #fff;
  font-size: 12px;
  font-weight: 400;
  line-height: 1.4;
  text-align: left;
  white-space: normal;
  box-shadow: 0 6px 20px rgba(0, 0, 0, 0.25);
  opacity: 0;
  visibility: hidden;
  transform: translateX(-50%) translateY(4px);
  transition: opacity 0.2s ease, transform 0.2s ease, visibility 0.2s ease;
  pointer-events: none;
  z-index: 10;
}

.dd-product-label__tooltip::after {
  content: "";
  position: absolute;
  top: 100%;
  left: 50%;
  transform: translateX(-50%);
  border: 6px solid transparent;
  border-top-color: #2b2b2b;
}

.dd-product-label--has-tooltip:hover .dd-product-label__tooltip,
.dd-product-label--has-tooltip:focus-within .dd-product-label__tooltip {
  opacity: 1;
  visibility: visible;
  transform: translateX(-50%) translateY(0);
}

.dd-product-label__tooltip-row {
  display: block;
}

.dd-product-label__tooltip-row strong {
  color: #e7b4d1;
  font-weight: 700;
}

.dd-product-label__tooltip-row--premium {
  color: #e7b4d1;
  font-weight: 700;
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.05em;
}

/* Pricing cards */
.dd-pricing-section {
  margin-top: 10px;
}

.dd-pricing-section__title {
  margin: 0 0 16px;
  font-family: "Sofia Sans", sans-serif;
  font-size: 18px;
  font-weight: 700;
  color: #2b2b2b;
}

.dd-pricing-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 16px;
  max-width: 580px;
}

.dd-pricing-card {
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: 7px 26px 10px;
  background: #fdeee7;
  border: none;
  border-radius: 8px;
  text-align: center;
  height: auto;
  box-shadow: 0px 6px 30px rgba(0, 0, 0, 0.15);
}

.dd-pricing-card--highlighted {
  border-color: #8a4e7a;
  box-shadow: 0 0 0 2px rgba(138, 78, 122, 0.15);
}

.dd-pricing-card--placeholder {
  border-style: dashed;
  opacity: 0.6;
}

.dd-pricing-card__icon {
  width: 50px;
  height: 43px;
  margin-bottom: 12px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.dd-pricing-card__icon svg,
.dd-pricing-card__icon img {
  width: 50px;
  height: 43px;
  object-fit: contain;
}

.dd-pricing-card__body {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 6px;
}

.dd-pricing-card__title {
  margin: 0;
  font-family: "Sofia Sans", sans-serif;
  font-size: 14px;
  font-weight: 700;
  color: #2b2b2b;
}

.dd-pricing-card__price {
  font-family: "Sofia Sans", sans-serif;
  font-size: 20px;
  font-weight: 800;
  color: #8a4e7a;
}

.dd-pricing-card__secondary {
  margin: 0;
  font-size: 12px;
  color: #474444;
}

.dd-pricing-card__helper {
  margin: 0;
  font-size: 11px;
  color: #474444;
  text-align: center;
  max-width: 140px;
}

/* Product content */
.dd-product-summary__content {
  font-family: "Sofia Sans", sans-serif;
  font-size: 16px;
  line-height: 1.6;
  color: #474444;
}

/* Gallery description (below images) */
.dd-product__gallery-intro {
  margin: 20px 0 0;
  font-family: "Sofia Sans", sans-serif;
  font-size: 16px;
  line-height: 19px;
  color: #474444;
}

.dd-product__gallery-content {
  margin-top: 10px;
  font-family: "Sofia Sans", sans-serif;
  font-size: 16px;
  line-height: 1.6;
  color: #474444;
  /* Override anything (WC core, plugin defaults, content with inline
     `text-align: justify`) that creates "rivers" — long Bulgarian text
     at narrow viewports renders ragged-right far cleaner than
     justified, where word-spacing balloons to fill the line.
     `hyphens: auto` lets the browser break long compound words on
     mobile to keep lines balanced. */
  text-align: left;
  hyphens: auto;
  word-break: normal;
  overflow-wrap: break-word;
}

.dd-product__gallery-content p,
.dd-product__gallery-content li {
  text-align: left;
  hyphens: auto;
}

/* Fillings heading */
.dd-product-labels__heading {
  margin: 0 0 8px;
  font-family: "Sofia Sans", sans-serif;
  font-size: 18px;
  font-weight: 700;
  color: #2b2b2b;
}

/* Phone copy affordance */
.dd-product__gallery-phone a {
  cursor: pointer;
}

.dd-product__gallery-phone a:hover {
  color: #8a4e7a;
  text-decoration: underline;
}

/* Toast notification */
.dd-toast {
  position: fixed;
  bottom: 30px;
  left: 50%;
  transform: translateX(-50%);
  background: #8a4e7a;
  color: #fff;
  padding: 12px 24px;
  border-radius: 8px;
  font-family: "Sofia Sans", sans-serif;
  font-size: 14px;
  font-weight: 600;
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.2);
  z-index: 9999;
  animation: dd-toast-fade 2s ease-in-out forwards;
  pointer-events: none;
}

@keyframes dd-toast-fade {
  0% {
    opacity: 0;
    transform: translateX(-50%) translateY(10px);
  }
  15% {
    opacity: 1;
    transform: translateX(-50%) translateY(0);
  }
  75% {
    opacity: 1;
    transform: translateX(-50%) translateY(0);
  }
  100% {
    opacity: 0;
    transform: translateX(-50%) translateY(-10px);
  }
}
/* Responsive — reorder elements for mobile best practice:
   Image → Title → Description → CTA → Pricing → Fillings */
@media (max-width: 960px) {
  .dd-single-product__grid {
    display: flex;
    flex-direction: column;
    gap: 24px;
  }

  /* Flatten both containers so children become direct flex items */
  .dd-product__gallery,
.dd-product-summary {
    display: contents;
  }

  /* Mobile element order (best practice: inverted pyramid) */
  .dd-product__gallery-main {
    order: 1;
  }

  .dd-product-summary h1 {
    order: 2;
  }

  .dd-product__gallery-intro {
    order: 3;
  }

  .dd-product__gallery-content {
    order: 4;
  }

  .dd-product__gallery-cta {
    order: 5;
  }

  .dd-pricing-section {
    order: 6;
  }

  .dd-product-labels {
    order: 7;
  }

  .dd-product__gallery-thumbs {
    order: 8;
    display: none;
  }

  /* Full-width elements */
  .dd-product__gallery-main {
    max-width: 100%;
  }

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

  /* Tighten typography for narrow viewports — title was 36px which
     wraps awkwardly on 320-430px screens. */
  .dd-product-summary h1 {
    font-size: 1.65rem;
    line-height: 1.15;
  }

  /* Reset the description font-size + add bottom-margin so the CTA
     doesn't sit flush against the last text line. */
  .dd-product__gallery-content {
    font-size: 15px;
    line-height: 1.55;
  }

  /* CTA button needs touch-target priority on mobile. */
  .dd-button--product-cta {
    min-height: 50px;
    font-size: 16px;
    padding-block: 0.95rem;
  }

  /* Pricing cards: smaller padding so two-column grid breathes on phone. */
  .dd-pricing-card {
    padding: 16px 12px;
  }

  /* Add visible separation between the product summary block and any
     module rendered below it (footer, support zones). The cream
     background of the footer was visually merging with the white card. */
  .dd-single-product {
    padding-bottom: 24px;
    margin-bottom: 12px;
    border-bottom: 1px solid rgba(232, 214, 198, 0.6);
  }
}
.dd-page-content,
.dd-contact-page {
  padding: var(--dd-space-7) 0 0;
}

.dd-page-content {
  max-width: 780px;
}

.dd-page-content h1 {
  margin: 0;
  font-size: clamp(2rem, 4vw, 3.2rem);
}

.dd-contact-page__social {
  display: flex;
  flex-wrap: wrap;
  gap: var(--dd-space-3);
  margin-top: var(--dd-space-4);
}

.dd-contact-page__social a {
  color: var(--dd-color-accent-dark);
  font-weight: 700;
}

.dd-contact-page__actions,
.dd-faq-page__actions {
  display: flex;
  flex-wrap: wrap;
  gap: var(--dd-space-3);
  margin-top: var(--dd-space-5);
}

.dd-contact-list p {
  margin: 0;
}

.dd-faq-page {
  padding: var(--dd-space-7) 0 0;
}

.dd-faq-page__groups {
  display: grid;
  gap: var(--dd-space-5);
}

.dd-faq-page__group-title {
  margin: 0 0 var(--dd-space-3);
  font-size: 1.25rem;
}

.dd-faq-card summary {
  cursor: pointer;
}

.dd-faq-card h3,
.dd-faq-card summary strong {
  font-size: 1.05rem;
}

.dd-utility-page {
  min-height: 60vh;
  display: grid;
  place-items: center;
}
