/* ==========================================================================
   Dilsa — Phase 01 foundation styles
   ========================================================================== */

:root {
  --dilsa-forest: #284438;
  --dilsa-ivory: #f7f3ed;
  --dilsa-charcoal: #252525;
  --dilsa-sand: #e7dccf;
  --dilsa-white: #ffffff;
  --dilsa-forest-deep: #1e342a;
  --dilsa-muted: rgba(37, 37, 37, 0.68);

  --dilsa-font-serif: "Cormorant Garamond", "Times New Roman", serif;
  --dilsa-font-sans: "Source Sans 3", "Segoe UI", sans-serif;

  --dilsa-space-1: 0.25rem;
  --dilsa-space-2: 0.5rem;
  --dilsa-space-3: 0.75rem;
  --dilsa-space-4: 1rem;
  --dilsa-space-5: 1.5rem;
  --dilsa-space-6: 2rem;
  --dilsa-space-7: 3rem;
  --dilsa-space-8: 4.5rem;

  /*
   * Layout shells (border-box throughout):
   * --dilsa-shell: shopping / footer / hero-copy / nav / announcement / desktop header bar (max 1520px)
   * --dilsa-header-gutter: mobile header inset only (~20px)
   * --dilsa-header-search-max: desktop search cap
   */
  --dilsa-gutter: 1.25rem; /* ~20px mobile */
  --dilsa-content-max: 1520px;
  --dilsa-shell: min(var(--dilsa-content-max), calc(100% - (2 * var(--dilsa-gutter))));
  --dilsa-header-gutter: 1.25rem;
  --dilsa-header-search-max: 880px;
  --dilsa-radius: 2px;
  --dilsa-header-height: 0px;
  --dilsa-admin-bar: 0px;
  --dilsa-sticky-offset: 0px;
  --dilsa-announcement-height: 0px;
  --dilsa-transition: 180ms ease;
  /* Desktop/laptop hero stage (width ÷ height). Matches recommended wide uploads. */
  --dilsa-hero-desktop-ratio: 5 / 2;
}

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

html {
  scroll-behavior: smooth;
}

body {
  margin: 0;
  font-family: var(--dilsa-font-sans);
  font-size: 1.0625rem;
  line-height: 1.6;
  color: var(--dilsa-charcoal);
  background:
    radial-gradient(1200px 480px at 10% -10%, rgba(231, 220, 207, 0.55), transparent 60%),
    linear-gradient(180deg, var(--dilsa-ivory) 0%, #f3eee6 48%, var(--dilsa-ivory) 100%);
  min-height: 100%;
  overflow-x: hidden;
}

body.mobile-nav-open {
  overflow: hidden;
}

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

a {
  color: var(--dilsa-forest);
  text-decoration-thickness: 1px;
  text-underline-offset: 0.18em;
  transition: color var(--dilsa-transition);
}

a:hover,
a:focus-visible {
  color: var(--dilsa-forest-deep);
}

:focus-visible {
  outline: 2px solid var(--dilsa-forest);
  outline-offset: 3px;
}

.shell {
  width: var(--dilsa-shell);
  max-width: 100%;
  margin-inline: auto;
  box-sizing: border-box;
}

/*
 * Header bar container:
 * Mobile — full width with ~20px gutters (approved mobile arrangement).
 * Desktop (≥900px) — same centered shell as shopping content.
 */
.site-header__container {
  width: 100%;
  max-width: 100%;
  margin-inline: 0;
  padding-inline: var(--dilsa-header-gutter);
  box-sizing: border-box;
}

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

.screen-reader-text:focus {
  clip: auto;
  clip-path: none;
  height: auto;
  width: auto;
  margin: 0;
  padding: 0.75rem 1rem;
  position: fixed;
  top: calc(var(--dilsa-admin-bar) + 0.75rem);
  left: 0.75rem;
  z-index: 100000;
  background: var(--dilsa-white);
  color: var(--dilsa-charcoal);
  box-shadow: 0 8px 24px rgba(37, 37, 37, 0.12);
}

.skip-link:focus {
  z-index: 100001;
}

.dilsa-icon {
  display: block;
  flex-shrink: 0;
}

/* Buttons */
.button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 2.75rem;
  padding: 0.7rem 1.35rem;
  font-family: var(--dilsa-font-sans);
  font-size: 0.95rem;
  font-weight: 500;
  letter-spacing: 0.02em;
  border-radius: var(--dilsa-radius);
  border: 1px solid transparent;
  text-decoration: none;
  cursor: pointer;
  transition: background var(--dilsa-transition), color var(--dilsa-transition), border-color var(--dilsa-transition);
}

.button--primary {
  background: var(--dilsa-forest);
  color: var(--dilsa-white);
}

.button--primary:hover,
.button--primary:focus-visible {
  background: var(--dilsa-forest-deep);
  color: var(--dilsa-white);
}

.button--ghost {
  background: transparent;
  color: var(--dilsa-forest);
  border-color: var(--dilsa-forest);
}

.button--ghost:hover,
.button--ghost:focus-visible {
  background: rgba(40, 68, 56, 0.06);
  color: var(--dilsa-forest-deep);
}

/* ==========================================================================
   Announcement
   ========================================================================== */

.announcement-bar {
  background: var(--dilsa-forest);
  color: var(--dilsa-ivory);
  font-size: 0.875rem;
  letter-spacing: 0.02em;
}

.announcement-bar__inner {
  padding: 0.55rem 0;
  text-align: center;
}

.announcement-bar__text {
  margin: 0;
}

/* ==========================================================================
   Header
   ========================================================================== */

.site-header {
  position: relative;
  z-index: 1000;
  background: transparent;
  /* Reserve space for the fixed bar so image-nav / primary nav sit below it. */
  padding-top: var(--dilsa-header-height, 4.5rem);
}

/*
 * Only the logo / search / account / cart bar stays pinned.
 * Image navigation sits in normal flow and scrolls away.
 */
.site-header__bar {
  position: fixed;
  left: 0;
  right: 0;
  top: var(--dilsa-admin-bar);
  z-index: 1001;
  padding-top: 0.65rem;
  padding-bottom: 0.65rem;
  background: rgba(247, 243, 237, 0.94);
  backdrop-filter: blur(10px);
  border-bottom: 1px solid rgba(40, 68, 56, 0.12);
}

.site-header__row {
  display: grid;
  grid-template-columns: 2.75rem 1fr 2.75rem;
  align-items: center;
  gap: 0.5rem;
  min-height: 3.25rem;
}

.site-header__brand {
  display: flex;
  justify-content: center;
  min-width: 0;
}

.site-logo {
  display: flex;
  align-items: center;
  max-width: 100%;
}

.site-logo .custom-logo-link {
  display: inline-flex;
  align-items: center;
  text-decoration: none;
}

.site-logo .custom-logo {
  display: block;
  width: 155px;
  max-width: 100%;
  height: auto;
  object-fit: contain;
}

.site-logo__text {
  text-decoration: none;
  color: var(--dilsa-forest);
}

.site-logo__name {
  font-family: var(--dilsa-font-serif);
  font-size: 1.7rem;
  font-weight: 600;
  letter-spacing: 0.08em;
  line-height: 1;
  text-transform: uppercase;
}

.header-toggle {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.75rem;
  height: 2.75rem;
  padding: 0;
  border: 0;
  background: transparent;
  color: var(--dilsa-charcoal);
  cursor: pointer;
}

.header-toggle__icon--close {
  display: none;
}

body.mobile-nav-open .header-toggle__icon--open {
  display: none;
}

body.mobile-nav-open .header-toggle__icon--close {
  display: block;
}

.site-header__actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  /* Empty track on small screens balances the menu toggle so the logo stays centred. */
  min-width: 2.75rem;
  min-height: 2.75rem;
}

.header-utility {
  display: none;
  list-style: none;
  margin: 0;
  padding: 0;
  align-items: center;
  justify-content: flex-end;
  flex-wrap: wrap;
  gap: 0.15rem 1.25rem;
}

.header-utility__link {
  display: inline-flex;
  align-items: center;
  min-height: 2.75rem;
  padding: 0.2rem 0;
  color: var(--dilsa-charcoal);
  text-decoration: none;
  font-size: 0.95rem;
  font-weight: 500;
  white-space: nowrap;
}

.header-utility__link:hover,
.header-utility__link:focus-visible {
  color: var(--dilsa-forest);
}

.header-utility__link:focus-visible {
  outline: 2px solid var(--dilsa-forest);
  outline-offset: 3px;
}

.site-header__search--desktop {
  display: none;
}

.site-header__search--mobile {
  margin-top: 0.55rem;
  padding-bottom: 0.15rem;
}

.product-search {
  display: grid;
  grid-template-columns: auto 1fr auto;
  align-items: center;
  gap: 0.35rem;
  width: 100%;
  min-height: 2.75rem;
  padding: 0.25rem 0.35rem 0.25rem 0.75rem;
  background: var(--dilsa-white);
  border: 1px solid rgba(40, 68, 56, 0.18);
  border-radius: 999px;
}

.product-search__icon {
  color: var(--dilsa-muted);
}

.product-search__input {
  width: 100%;
  min-width: 0;
  border: 0;
  background: transparent;
  font: inherit;
  font-size: 0.95rem;
  color: var(--dilsa-charcoal);
  outline: none;
}

.product-search__input::placeholder {
  color: rgba(37, 37, 37, 0.45);
}

.product-search__submit {
  border: 0;
  border-radius: 999px;
  background: var(--dilsa-forest);
  color: var(--dilsa-white);
  font: inherit;
  font-size: 0.85rem;
  font-weight: 500;
  padding: 0.55rem 0.95rem;
  cursor: pointer;
}

.product-search__submit:hover,
.product-search__submit:focus-visible {
  background: var(--dilsa-forest-deep);
}

/* Traditional primary nav — fallback when image nav is inactive */
.primary-nav {
  display: none;
  border-top: 1px solid rgba(40, 68, 56, 0.08);
  background: rgba(247, 243, 237, 0.94);
}

/* ==========================================================================
   Image navigation (desktop row + mobile panel cards)
   ========================================================================== */

.image-nav--desktop {
  display: none;
  background: var(--dilsa-ivory);
  border-bottom: 1px solid rgba(40, 68, 56, 0.1);
}

.image-nav__inner {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 0;
  padding: 0.25rem 0 0.35rem;
}

.image-nav__list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(8, minmax(0, 1fr));
  gap: 0.25rem 0.45rem;
  align-items: start;
}

.image-nav__item {
  margin: 0;
  min-width: 0;
}

.image-nav__link {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.25rem;
  text-decoration: none;
  color: var(--dilsa-charcoal);
  border-radius: var(--dilsa-radius);
  outline: none;
  min-height: 100%;
}

.image-nav__link:focus-visible {
  outline: 2px solid var(--dilsa-forest);
  outline-offset: 3px;
}

.image-nav__media {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 88px;
  height: 88px;
  max-width: 100%;
  flex-shrink: 0;
  /* Transparent stage — no sand fill or border (artwork may be a sage circle). */
  background: transparent;
  border: 0;
  border-radius: 0;
  overflow: visible;
  transform-origin: center center;
}

.image-nav__media--empty {
  background: transparent;
}

.image-nav__image {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
  object-position: center;
}

.image-nav__label {
  display: block;
  width: 100%;
  font-family: var(--dilsa-font-sans);
  font-size: 0.8rem;
  font-weight: 600;
  line-height: 1.25;
  text-align: center;
  color: var(--dilsa-charcoal);
  /* Allow Dining & Kitchen / Home Interiors to wrap cleanly. */
  overflow-wrap: break-word;
  hyphens: auto;
  text-decoration: underline;
  text-decoration-color: transparent;
  text-underline-offset: 0.18em;
  text-decoration-thickness: 1px;
}

.image-nav__item--text .image-nav__link {
  justify-content: center;
  min-height: 88px;
  padding: 0.35rem 0.2rem;
  background: transparent;
  border: 0;
}

.image-nav__item--text .image-nav__label {
  font-size: 0.84rem;
}

.image-nav__item.is-current .image-nav__label {
  color: var(--dilsa-forest);
}

.mobile-nav__close-label {
  font-size: 0.9rem;
  font-weight: 600;
  color: var(--dilsa-forest);
}

.mobile-nav__close {
  width: auto;
  min-height: 2.5rem;
  padding-inline: 0.35rem 0.55rem;
  gap: 0.25rem;
}

.mobile-nav__image-nav {
  margin-bottom: 1rem;
}

.image-nav__grid {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.75rem;
}

.mobile-nav--image .image-nav__link {
  background: var(--dilsa-white);
  border: 1px solid rgba(40, 68, 56, 0.1);
  border-radius: var(--dilsa-radius);
  padding: 0.65rem 0.5rem 0.7rem;
  gap: 0.45rem;
  /* No transform/zoom on touch; pressed highlight only. */
  transition: background-color 120ms ease, border-color 120ms ease;
}

.mobile-nav--image .image-nav__link:active {
  background: rgba(40, 68, 56, 0.06);
  border-color: rgba(40, 68, 56, 0.28);
}

/* Mobile keeps prior icon size; stage stays transparent inside the white card. */
.mobile-nav--image .image-nav__media {
  width: 5rem;
  height: 5rem;
  max-width: 5rem;
  background: transparent;
  border: 0;
  /* Keep drawer icons still — desktop hover motion must not apply here. */
  transform: none !important;
}

.mobile-nav--image .image-nav__label {
  font-size: 0.88rem;
  color: var(--dilsa-forest);
  text-decoration: none;
}

.mobile-nav__secondary {
  list-style: none;
  margin: 0 0 1rem;
  padding: 0.75rem 0 0;
  border-top: 1px solid rgba(40, 68, 56, 0.12);
  display: flex;
  flex-direction: column;
  gap: 0.15rem;
}

.mobile-nav__secondary a {
  display: block;
  padding: 0.65rem 0.1rem;
  color: var(--dilsa-charcoal);
  text-decoration: none;
  font-weight: 500;
}

.mobile-nav__secondary a:hover,
.mobile-nav__secondary a:focus-visible {
  color: var(--dilsa-forest);
}

.primary-menu {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 0.15rem 1.5rem;
  list-style: none;
  margin: 0;
  padding: 0.55rem 0 0.7rem;
}

.primary-menu .menu-item {
  position: relative;
}

.primary-menu .menu-link {
  display: inline-flex;
  align-items: center;
  gap: 0.3rem;
  padding: 0.4rem 0.1rem;
  color: var(--dilsa-charcoal);
  text-decoration: none;
  font-size: 0.95rem;
  font-weight: 500;
  letter-spacing: 0.02em;
}

.primary-menu .menu-link:hover,
.primary-menu .menu-link:focus-visible,
.primary-menu .current-menu-item > .menu-link {
  color: var(--dilsa-forest);
}

.submenu-toggle {
  display: inline-flex;
  transition: transform var(--dilsa-transition);
}

.menu-item-has-children.is-open > .menu-link .submenu-toggle {
  transform: rotate(180deg);
}

.primary-menu .sub-menu {
  position: absolute;
  top: calc(100% + 0.35rem);
  left: 50%;
  transform: translateX(-50%) translateY(0.25rem);
  min-width: 12rem;
  margin: 0;
  padding: 0.55rem 0;
  list-style: none;
  background: var(--dilsa-white);
  border: 1px solid rgba(40, 68, 56, 0.12);
  box-shadow: 0 14px 36px rgba(37, 37, 37, 0.1);
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: opacity var(--dilsa-transition), transform var(--dilsa-transition), visibility var(--dilsa-transition);
  z-index: 20;
}

.primary-menu .menu-item-has-children.is-open > .sub-menu,
.primary-menu .menu-item-has-children:focus-within > .sub-menu {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transform: translateX(-50%) translateY(0);
}

.primary-menu .sub-menu .menu-link {
  display: block;
  width: 100%;
  padding: 0.55rem 1rem;
  white-space: nowrap;
}

/* Mobile off-canvas */
.mobile-nav-overlay {
  position: fixed;
  inset: 0;
  background: rgba(37, 37, 37, 0.42);
  z-index: 1100;
}

.mobile-nav {
  position: fixed;
  top: 0;
  left: 0;
  width: min(22rem, 88vw);
  height: 100%;
  z-index: 1200;
  transform: translateX(-105%);
  transition: transform 220ms ease;
  pointer-events: none;
}

body.mobile-nav-open .mobile-nav {
  transform: translateX(0);
  pointer-events: auto;
}

.mobile-nav__panel {
  display: flex;
  flex-direction: column;
  height: 100%;
  padding:
    calc(var(--dilsa-admin-bar) + 1rem)
    1.25rem
    1.5rem;
  background: var(--dilsa-ivory);
  border-right: 1px solid rgba(40, 68, 56, 0.12);
  overflow-y: auto;
}

.mobile-nav__top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 1.25rem;
}

.mobile-nav__title {
  margin: 0;
  font-family: var(--dilsa-font-serif);
  font-size: 1.6rem;
  font-weight: 600;
  color: var(--dilsa-forest);
}

.mobile-nav__close {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.5rem;
  height: 2.5rem;
  border: 0;
  background: transparent;
  color: var(--dilsa-charcoal);
  cursor: pointer;
}

.mobile-menu {
  list-style: none;
  margin: 0;
  padding: 0;
}

.mobile-menu .menu-item {
  border-bottom: 1px solid rgba(40, 68, 56, 0.1);
}

.mobile-menu .menu-link {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  padding: 0.95rem 0.1rem;
  color: var(--dilsa-charcoal);
  text-decoration: none;
  font-weight: 500;
}

.mobile-menu .sub-menu {
  display: none;
  list-style: none;
  margin: 0 0 0.5rem;
  padding: 0 0 0 0.75rem;
}

.mobile-menu .menu-item-has-children.is-open > .sub-menu {
  display: block;
}

.mobile-menu .sub-menu .menu-link {
  font-weight: 400;
  padding: 0.65rem 0.1rem;
  color: var(--dilsa-muted);
}

/* ==========================================================================
   Main / homepage shell
   ========================================================================== */

.site-main {
  min-height: 45vh;
  padding: var(--dilsa-space-7) 0 var(--dilsa-space-8);
}

.site-main--home {
  padding: 0;
}

/* ==========================================================================
   Homepage hero carousel
   ========================================================================== */

.home-hero {
  position: relative;
  width: 100%;
  max-width: 100%;
  background: var(--dilsa-ivory);
  overflow: hidden;
}

.home-hero__viewport {
  position: relative;
  width: 100%;
  max-width: 100%;
  /* Mobile: height follows image + copy (no tall empty text panel). */
  min-height: 0;
}

.home-hero__slide {
  position: absolute;
  inset: 0;
  width: 100%;
  max-width: 100%;
  display: grid;
  grid-template-rows: minmax(14rem, 18.5rem) auto;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: opacity 700ms ease, visibility 700ms ease;
  z-index: 0;
}

.home-hero__slide.is-active {
  position: relative;
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  z-index: 1;
}

.home-hero.has-reduced-motion .home-hero__slide {
  transition: none;
}

.home-hero__media {
  position: relative;
  width: 100%;
  max-width: 100%;
  min-height: 14rem;
  background: var(--dilsa-sand);
  overflow: hidden;
}

  .home-hero__media picture {
  display: block;
  width: 100%;
  height: 100%;
  max-width: 100%;
}

.home-hero__image,
.home-hero__fallback {
  width: 100%;
  max-width: 100%;
  height: 100%;
  min-height: 14rem;
  object-fit: cover;
  display: block;
}

.home-hero__fallback {
  background:
    linear-gradient(160deg, rgba(40, 68, 56, 0.08), transparent 55%),
    var(--dilsa-sand);
}

.home-hero__content {
  position: relative;
  width: 100%;
  max-width: 100%;
  background: var(--dilsa-ivory);
  /*
   * Bottom padding clears absolute controls (~3.35rem) plus ~1.5–2rem air.
   * Avoids the old tall empty band when no CTA URL is configured.
   */
  padding: 1.15rem 0 5.85rem;
}

.home-hero__content:has(.home-hero__actions) {
  padding-bottom: 6.75rem;
}

/* Matches header .shell left edge; copy column is constrained inside. */
.home-hero__content-shell {
  width: var(--dilsa-shell);
  max-width: 100%;
  margin-inline: auto;
}

.home-hero__content-inner {
  position: relative;
  width: 100%;
  max-width: 28rem;
}

.home-hero__heading {
  margin: 0 0 0.75rem;
  font-family: var(--dilsa-font-serif);
  font-size: clamp(2.1rem, 8vw, 2.85rem);
  font-weight: 600;
  line-height: 1.12;
  color: var(--dilsa-charcoal);
}

.home-hero__text {
  margin: 0 0 1.1rem;
  color: var(--dilsa-muted);
  font-size: 1.05rem;
  line-height: 1.55;
}

.home-hero__content-inner:not(:has(.home-hero__actions)) .home-hero__text {
  margin-bottom: 0;
}

.home-hero__actions {
  margin: 0;
}

.home-hero__cta {
  width: 100%;
}

.home-hero__controls {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0.85rem;
  z-index: 3;
  width: 100%;
  max-width: 100%;
  /* Keep the full controls group ≥24px from viewport edges (fixes clipped next arrow). */
  padding-inline: 1.5rem;
  box-sizing: border-box;
  pointer-events: none;
}

.home-hero__controls-inner {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.55rem;
  width: 100%;
  max-width: 100%;
  pointer-events: auto;
}

.home-hero__arrow,
.home-hero__toggle,
.home-hero__dot {
  border: 1px solid rgba(40, 68, 56, 0.18);
  background: rgba(247, 243, 237, 0.92);
  color: var(--dilsa-charcoal);
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  transition: background var(--dilsa-transition), color var(--dilsa-transition), border-color var(--dilsa-transition);
}

.home-hero__arrow,
.home-hero__toggle {
  width: 2.5rem;
  height: 2.5rem;
  border-radius: 999px;
}

.home-hero__arrow:hover,
.home-hero__toggle:hover,
.home-hero__arrow:focus-visible,
.home-hero__toggle:focus-visible {
  background: var(--dilsa-white);
  border-color: var(--dilsa-forest);
  color: var(--dilsa-forest);
}

.home-hero__indicators {
  display: flex;
  align-items: center;
  gap: 0.4rem;
  padding: 0 0.25rem;
}

.home-hero__dot {
  width: 0.65rem;
  height: 0.65rem;
  padding: 0;
  border-radius: 999px;
}

.home-hero__dot.is-active {
  background: var(--dilsa-forest);
  border-color: var(--dilsa-forest);
}

.home-hero__toggle-icon {
  display: none;
}

.home-hero.is-paused .home-hero__toggle-icon--play,
.home-hero:not(.is-paused) .home-hero__toggle-icon--pause {
  display: block;
}

.home-hero--single .home-hero__controls {
  display: none;
}

.content-block {
  max-width: 42rem;
}

.content-block__header {
  margin-bottom: 1.5rem;
}

.content-block__title {
  margin: 0;
  font-family: var(--dilsa-font-serif);
  font-size: clamp(2rem, 4vw, 2.75rem);
  font-weight: 600;
  line-height: 1.15;
  color: var(--dilsa-charcoal);
}

.content-block__media {
  margin: 0 0 1.5rem;
}

.content-block__body > *:first-child {
  margin-top: 0;
}

.search-results {
  list-style: none;
  margin: 0;
  padding: 0;
}

.search-results__item {
  padding: 0.85rem 0;
  border-bottom: 1px solid rgba(40, 68, 56, 0.12);
}

/* ==========================================================================
   Footer
   ========================================================================== */

.site-footer {
  background: var(--dilsa-forest);
  color: rgba(247, 243, 237, 0.88);
  padding-top: var(--dilsa-space-5);
}

.site-footer a {
  color: var(--dilsa-ivory);
  text-decoration: none;
}

.site-footer a:hover,
.site-footer a:focus-visible {
  color: var(--dilsa-white);
  text-decoration: underline;
}

.site-footer__grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1.25rem;
  padding-bottom: var(--dilsa-space-5);
  align-items: start;
}

.site-footer__brand .site-logo__name,
.site-footer__brand .site-logo__text {
  color: var(--dilsa-white);
}

.site-footer__brand .site-logo__image-link {
  display: inline-flex;
  align-items: center;
  text-decoration: none;
}

.site-footer__brand .site-logo__footer-image {
  width: 180px;
  max-width: min(180px, 70vw);
  height: auto;
  object-fit: contain;
}

.site-footer__tagline {
  margin: 0.65rem 0 0;
  max-width: 18rem;
  color: rgba(247, 243, 237, 0.72);
  font-size: 0.95rem;
  line-height: 1.45;
}

.site-footer__heading {
  margin: 0 0 0.55rem;
  font-family: var(--dilsa-font-serif);
  font-size: 1.25rem;
  font-weight: 600;
  color: var(--dilsa-ivory);
}

.site-footer__heading--spaced {
  margin-top: 1.1rem;
}

.site-footer__list,
.site-footer__social {
  list-style: none;
  margin: 0;
  padding: 0;
}

.site-footer__list li,
.site-footer__social li {
  margin: 0 0 0.35rem;
}

.site-footer__list li:last-child,
.site-footer__social li:last-child {
  margin-bottom: 0;
}

.site-footer__address {
  font-style: normal;
  white-space: pre-line;
}

.site-footer__social {
  display: flex;
  flex-wrap: wrap;
  gap: 0.55rem 1rem;
}

.site-footer__base {
  border-top: 1px solid rgba(247, 243, 237, 0.16);
}

.site-footer__base-inner {
  padding: 0.85rem 0 1rem;
}

.site-footer__copyright {
  margin: 0;
  font-size: 0.88rem;
  color: rgba(247, 243, 237, 0.7);
}

/* ==========================================================================
   Responsive — tablet / desktop
   ========================================================================== */

@media (min-width: 768px) {
  :root {
    --dilsa-gutter: 1.5rem;
    --dilsa-header-gutter: 1.5rem;
  }

  .site-footer {
    padding-top: var(--dilsa-space-7);
  }

  .site-footer__grid {
    grid-template-columns: repeat(auto-fit, minmax(11.5rem, 1fr));
    gap: 2rem;
    padding-bottom: var(--dilsa-space-6);
  }

  .site-footer__brand .site-logo__footer-image {
    width: 180px;
    max-width: 180px;
    height: auto;
  }

  .site-logo .custom-logo {
    width: 175px;
    max-width: 100%;
    height: auto;
  }
}

@media (min-width: 900px) {
  :root {
    /* Desktop shopping + header shell gutters ≥32px. */
    --dilsa-gutter: 2rem;
  }

  /*
   * With image nav: keep the hamburger until 1100px so eight items never crowd.
   * Without image nav: hide toggle here and show traditional primary nav.
   */
  body:not(.has-image-nav) .header-toggle {
    display: none;
  }

  /* Match Shop by Category / Explore Our Collection shell. */
  .site-header__container {
    width: var(--dilsa-shell);
    max-width: 100%;
    margin-inline: auto;
    padding-inline: 0;
  }

  .site-header__row {
    /*
     * Balanced side tracks keep search centred even when logo ≠ actions width.
     * Equal minmax floors reserve logo/actions room so the middle track
     * shrinks below 880px on narrower laptops instead of overlapping.
     */
    grid-template-columns:
      minmax(12rem, 1fr)
      minmax(0, var(--dilsa-header-search-max))
      minmax(12rem, 1fr);
    gap: clamp(0.75rem, 1.5vw, 1.5rem);
    min-height: 3.5rem;
    align-items: center;
  }

  /* 900–1099 with image nav: hamburger + logo | search | actions */
  body.has-image-nav .site-header__row {
    grid-template-columns:
      auto
      minmax(11rem, max-content)
      minmax(0, var(--dilsa-header-search-max))
      minmax(7rem, 1fr);
  }

  .site-header__brand {
    justify-self: start;
    justify-content: flex-start;
    min-width: 0;
  }

  .site-header__actions {
    justify-self: end;
    justify-content: flex-end;
    min-width: 0;
  }

  .site-header__search--desktop {
    display: block;
    justify-self: center;
    width: 100%;
    max-width: var(--dilsa-header-search-max);
    min-width: 0;
  }

  .site-header__search--mobile {
    display: none;
  }

  /* Traditional text nav when image navigation is inactive. */
  body:not(.has-image-nav) .primary-nav {
    display: block;
  }

  body:not(.has-image-nav) .mobile-nav,
  body:not(.has-image-nav) .mobile-nav-overlay {
    display: none !important;
  }

  .site-footer__grid {
    gap: 2.5rem;
  }

  .home-hero__viewport {
    /*
     * Desktop stage owns 5:2. All slides are absolute (including .is-active),
     * so they fill these bounds — do not let relative .is-active collapse to
     * content height (that left a tall ivory void + inactive-slide ghosting).
     */
    min-height: 0;
    aspect-ratio: var(--dilsa-hero-desktop-ratio);
  }

  .home-hero__slide,
  .home-hero__slide.is-active {
    position: absolute;
    inset: 0;
    width: 100%;
    max-width: 100%;
    height: 100%;
    grid-template-rows: 1fr;
    grid-template-columns: 1fr;
  }

  .home-hero__media {
    position: absolute;
    inset: 0;
    width: 100%;
    max-width: 100%;
    height: 100%;
    min-height: 100%;
  }

  .home-hero__image,
  .home-hero__fallback {
    min-height: 100%;
    position: absolute;
    inset: 0;
    width: 100%;
    max-width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: var(--hero-focal, center);
  }

  .home-hero__content {
    position: relative;
    z-index: 2;
    display: flex;
    align-items: center;
    width: 100%;
    max-width: 100%;
    min-height: 100%;
    padding: 3.5rem 0 4.5rem;
    /* Photo shows through; readable ivory sits locally behind the copy. */
    background: transparent;
  }

  .home-hero__content:has(.home-hero__actions) {
    padding-bottom: 4.5rem;
  }

  .home-hero__content-inner {
    max-width: 26rem;
    padding: 0;
    background: transparent;
  }

  /*
   * Seamless ivory wash on the media layer (not a copy box).
   * Strongest behind the text column; fades smoothly toward the product.
   */
  .home-hero__media::after {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 1;
    pointer-events: none;
    background:
      radial-gradient(
        ellipse 95% 118% at 11% 50%,
        rgba(247, 243, 237, 0.94) 0%,
        rgba(247, 243, 237, 0.88) 18%,
        rgba(247, 243, 237, 0.42) 32%,
        rgba(247, 243, 237, 0.08) 40%,
        rgba(247, 243, 237, 0) 48%
      ),
      linear-gradient(
        90deg,
        rgba(247, 243, 237, 0.72) 0%,
        rgba(247, 243, 237, 0.32) 14%,
        rgba(247, 243, 237, 0.06) 24%,
        rgba(247, 243, 237, 0) 34%
      );
  }

  .home-hero__heading {
    font-size: clamp(2.8rem, 4.5vw, 3.75rem);
  }

  .home-hero__text {
    font-size: 1.12rem;
    max-width: 24rem;
  }

  .home-hero__cta {
    width: auto;
    min-width: 11rem;
  }

  .home-hero__controls {
    bottom: 1.25rem;
    /* Align control cluster with shopping shell; stay ≥24px from viewport edge. */
    padding-inline: max(1.5rem, max(var(--dilsa-gutter), calc((100% - var(--dilsa-content-max)) / 2)));
  }

  .home-hero__controls-inner {
    justify-content: flex-end;
  }
}

/* Image navigation desktop row — scrolls away; sticky bar remains above. */
@media (min-width: 1100px) {
  body.has-image-nav .header-toggle {
    display: none;
  }

  .site-logo .custom-logo {
    width: 210px;
    max-width: 100%;
    height: auto;
  }

  /*
   * Floor side tracks at the desktop logo width so a 210px mark
   * stays left-aligned without colliding with the centred search.
   */
  .site-header__row {
    grid-template-columns:
      minmax(13.5rem, 1fr)
      minmax(0, var(--dilsa-header-search-max))
      minmax(13.5rem, 1fr);
  }

  /* Toggle gone — restore three-track shopping-aligned header. */
  body.has-image-nav .site-header__row {
    grid-template-columns:
      minmax(13.5rem, 1fr)
      minmax(0, var(--dilsa-header-search-max))
      minmax(13.5rem, 1fr);
  }

  /* Catalogue + quote mode: About Us / Contact text links (no cart / account). */
  .header-utility {
    display: flex;
  }

  .site-header__actions {
    min-width: 0;
  }

  body.has-image-nav .image-nav--desktop {
    display: block;
    /* Allow hover lift without clipping the stage. */
    overflow: visible;
  }

  body.has-image-nav .mobile-nav,
  body.has-image-nav .mobile-nav-overlay {
    display: none !important;
  }

  .image-nav__inner {
    /*
     * Desktop spacing: 16px above stages, 22px below labels.
     * Artwork SVGs already include a small transparent ring inside the
     * 88px stage (circle r≈92 in 200 viewBox) — no negative margins.
     */
    padding: 16px 0 22px;
  }

  .image-nav__list {
    min-height: 0;
    align-items: start;
  }

  .image-nav--desktop .image-nav__link {
    gap: 9px; /* image → label */
  }

  .image-nav__media {
    width: 88px;
    height: 88px;
  }
}

/* Fine-pointer hover: lift/scale media only (layout box unchanged). */
@media (hover: hover) and (pointer: fine) {
  .image-nav--desktop .image-nav__media {
    transition: transform 200ms ease-out;
  }

  .image-nav--desktop .image-nav__label {
    transition:
      color 200ms ease-out,
      text-decoration-color 200ms ease-out;
  }

  .image-nav--desktop .image-nav__link:hover .image-nav__media,
  .image-nav--desktop .image-nav__link:focus-visible .image-nav__media {
    transform: translateY(-3px) scale(1.04);
  }

  .image-nav--desktop .image-nav__link:hover .image-nav__label,
  .image-nav--desktop .image-nav__link:focus-visible .image-nav__label {
    color: var(--dilsa-forest);
    text-decoration-color: rgba(40, 68, 56, 0.42);
  }
}

@media (prefers-reduced-motion: reduce) {
  .image-nav--desktop .image-nav__media,
  .image-nav--desktop .image-nav__label,
  .mobile-nav--image .image-nav__link {
    transition: none;
  }

  .image-nav--desktop .image-nav__link:hover .image-nav__media,
  .image-nav--desktop .image-nav__link:focus-visible .image-nav__media {
    transform: none;
  }
}

@media (min-width: 1440px) {
  .home-hero__media::after {
    background:
      radial-gradient(
        ellipse 92% 120% at 10% 50%,
        rgba(247, 243, 237, 0.95) 0%,
        rgba(247, 243, 237, 0.86) 16%,
        rgba(247, 243, 237, 0.38) 30%,
        rgba(247, 243, 237, 0.06) 38%,
        rgba(247, 243, 237, 0) 46%
      ),
      linear-gradient(
        90deg,
        rgba(247, 243, 237, 0.68) 0%,
        rgba(247, 243, 237, 0.26) 12%,
        rgba(247, 243, 237, 0.04) 22%,
        rgba(247, 243, 237, 0) 32%
      );
  }
}

/* ==========================================================================
   Homepage — Shop by Category (Phase 03)
   ========================================================================== */

.home-categories {
  background: var(--dilsa-ivory);
  padding: 2.75rem 0 3.25rem;
}

.home-categories__inner {
  width: var(--dilsa-shell);
  max-width: 100%;
  margin-inline: auto;
}

.home-categories__heading {
  margin: 0 0 1.5rem;
  font-family: var(--dilsa-font-serif);
  font-size: clamp(1.85rem, 4vw, 2.35rem);
  font-weight: 600;
  line-height: 1.15;
  color: var(--dilsa-charcoal);
  text-align: center;
}

.home-categories__grid {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1.15rem 0.85rem;
}

.home-categories__item {
  margin: 0;
  min-width: 0;
}

.home-categories__card {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  text-decoration: none;
  color: inherit;
  border-radius: var(--dilsa-radius);
  outline: none;
  transition: transform var(--dilsa-transition), color var(--dilsa-transition);
}

.home-categories__card:focus-visible {
  outline: 2px solid var(--dilsa-forest);
  outline-offset: 3px;
}

.home-categories__media {
  display: block;
  position: relative;
  width: 100%;
  aspect-ratio: 1 / 1;
  overflow: hidden;
  background: var(--dilsa-sand);
  border-radius: var(--dilsa-radius);
}

.home-categories__image {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  transition: transform 280ms ease;
}

.home-categories__placeholder {
  display: block;
  width: 100%;
  height: 100%;
  background:
    linear-gradient(160deg, rgba(40, 68, 56, 0.06), transparent 55%),
    var(--dilsa-sand);
}

.home-categories__label {
  display: block;
  margin-top: 0.65rem;
  font-family: var(--dilsa-font-sans);
  font-size: 0.98rem;
  font-weight: 600;
  line-height: 1.3;
  color: var(--dilsa-charcoal);
  text-align: center;
}

@media (hover: hover) and (pointer: fine) {
  .home-categories__card:hover .home-categories__label {
    color: var(--dilsa-forest);
  }

  .home-categories__card:hover .home-categories__image {
    transform: scale(1.03);
  }
}

@media (prefers-reduced-motion: reduce) {
  .home-categories__card,
  .home-categories__image {
    transition: none;
  }

  .home-categories__card:hover .home-categories__image {
    transform: none;
  }
}

@media (min-width: 768px) {
  .home-categories {
    padding: 3.25rem 0 3.75rem;
  }

  .home-categories__grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1.5rem 1.15rem;
  }

  .home-categories__heading {
    margin-bottom: 1.85rem;
  }
}

@media (min-width: 1024px) {
  .home-categories {
    padding: 3.75rem 0 4.25rem;
  }

  .home-categories__grid {
    grid-template-columns: repeat(6, minmax(0, 1fr));
    gap: 1.5rem 1.1rem;
  }

  .home-categories__label {
    font-size: 1rem;
  }
}

/* ==========================================================================
   Homepage — Explore Our Collection (Phase 04)
   ========================================================================== */

.home-products {
  background: var(--dilsa-white);
  padding: 2.75rem 0 3.25rem;
}

.home-products__inner {
  width: var(--dilsa-shell);
  max-width: 100%;
  margin-inline: auto;
}

.home-products__heading {
  margin: 0 0 1.5rem;
  font-family: var(--dilsa-font-serif);
  font-size: clamp(1.85rem, 4vw, 2.35rem);
  font-weight: 600;
  line-height: 1.15;
  color: var(--dilsa-charcoal);
  text-align: center;
}

/*
 * Shared product grid — homepage Explore Our Collection + Woo shop/category
 * `ul.products` (theme dequeues WC general/layout styles; these rules replace them).
 * Responsive columns: mobile 2 → tablet (≥768px) 3 → desktop (≥1024px) 4.
 * Archives request 12 products/page so regular pages fill complete rows.
 */
.home-products__grid,
ul.products {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1.5rem 0.9rem;
}

.home-products__grid::before,
.home-products__grid::after,
ul.products::before,
ul.products::after {
  content: none;
  display: none;
}

.home-products__item,
ul.products li.product {
  width: auto;
  float: none;
  clear: none;
  margin: 0;
  min-width: 0;
  list-style: none;
}

.home-products__card {
  display: flex;
  flex-direction: column;
  height: 100%;
}

.home-products__link {
  display: flex;
  flex-direction: column;
  flex: 1 1 auto;
  text-decoration: none;
  color: inherit;
  border-radius: var(--dilsa-radius);
  outline: none;
  transition: color var(--dilsa-transition);
}

.home-products__link:hover,
.home-products__link:focus-visible,
ul.products li.product a.home-products__link,
ul.products li.product a.home-products__link:hover,
ul.products li.product a.home-products__link:focus-visible {
  text-decoration: none;
  color: inherit;
}

.home-products__link:focus-visible {
  outline: 2px solid var(--dilsa-forest);
  outline-offset: 3px;
}

.home-products__media {
  position: relative;
  display: block;
  width: 100%;
  aspect-ratio: 1 / 1;
  overflow: hidden;
  /* Letterbox / pillarbox around object-fit: contain */
  background: var(--dilsa-ivory);
  border-radius: var(--dilsa-radius);
}

.home-products__image,
.home-products__media img,
ul.products li.product .home-products__image,
ul.products li.product img.home-products__image {
  display: block;
  width: 100%;
  height: 100%;
  max-width: 100%;
  object-fit: contain;
  object-position: center;
  transition: transform 280ms ease;
}

.home-products__badge {
  position: absolute;
  top: 0.65rem;
  left: 0.65rem;
  z-index: 1;
  padding: 0.28rem 0.55rem;
  background: var(--dilsa-forest);
  color: var(--dilsa-white);
  font-family: var(--dilsa-font-sans);
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  border-radius: var(--dilsa-radius);
  line-height: 1.2;
}

.home-products__name,
ul.products li.product .woocommerce-loop-product__title,
ul.products li.product .home-products__name {
  margin: 0.75rem 0 0;
  padding: 0;
  font-family: var(--dilsa-font-sans);
  /* ~15–16px on mobile; scales up on larger screens */
  font-size: 0.975rem;
  font-weight: 600;
  line-height: 1.35;
  color: var(--dilsa-charcoal);
  text-decoration: none;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.home-products__price {
  margin: 0.4rem 0 0;
  font-family: var(--dilsa-font-sans);
  font-size: 0.95rem;
  font-weight: 500;
  line-height: 1.4;
  color: var(--dilsa-forest);
}

.home-products__price del {
  color: var(--dilsa-muted);
  margin-right: 0.35rem;
}

.home-products__price ins {
  text-decoration: none;
  color: var(--dilsa-forest);
}

.home-products__actions {
  margin: 2rem 0 0;
  text-align: center;
}

.home-products__actions-card {
  margin: 0.55rem 0 0;
  margin-top: auto;
  padding-top: 0.65rem;
}

.home-products__actions-card .dilsa-view-details,
ul.products li.product .dilsa-view-details {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  margin-top: 0;
  text-decoration: none;
}

.home-products__view-all {
  min-width: 11rem;
}

@media (hover: hover) and (pointer: fine) {
  .home-products__link:hover .home-products__name {
    color: var(--dilsa-forest);
  }

  .home-products__link:hover .home-products__image {
    transform: scale(1.03);
  }
}

@media (prefers-reduced-motion: reduce) {
  .home-products__link,
  .home-products__image {
    transition: none;
  }

  .home-products__link:hover .home-products__image {
    transform: none;
  }
}

@media (min-width: 768px) {
  .home-products {
    padding: 3.25rem 0 3.75rem;
  }

  .home-products__grid,
  ul.products {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1.75rem 1.25rem;
  }

  .home-products__heading {
    margin-bottom: 1.85rem;
  }

  .home-products__name,
  ul.products li.product .woocommerce-loop-product__title,
  ul.products li.product .home-products__name {
    font-size: 1rem;
  }
}

@media (min-width: 1024px) {
  .home-products {
    padding: 3.75rem 0 4.5rem;
  }

  .home-products__grid,
  ul.products {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 2rem 1.35rem;
  }
}

@media (max-width: 359px) {
  :root {
    --dilsa-gutter: 1rem;
    --dilsa-header-gutter: 1rem;
  }

  .product-search__submit {
    padding-inline: 0.7rem;
  }
}

/* ==========================================================================
   Homepage — Shop by Room
   ========================================================================== */

.home-rooms {
  --home-rooms-radius: 8px;
  --home-rooms-gap: 1.125rem; /* 18px */
  background: var(--dilsa-ivory);
  padding: 2.75rem 0 3.25rem;
}

.home-rooms__inner {
  width: var(--dilsa-shell);
  max-width: 100%;
  margin-inline: auto;
}

.home-rooms__intro {
  text-align: center;
  margin: 0 0 1.5rem;
  max-width: 40rem;
  margin-inline: auto;
}

.home-rooms__heading {
  margin: 0;
  font-family: var(--dilsa-font-serif);
  font-size: clamp(1.85rem, 4vw, 2.45rem);
  font-weight: 600;
  line-height: 1.15;
  color: var(--dilsa-charcoal);
}

.home-rooms__subtitle {
  margin: 0.65rem 0 0;
  font-family: var(--dilsa-font-sans);
  font-size: 1.05rem;
  font-weight: 400;
  line-height: 1.45;
  color: var(--dilsa-muted);
}

.home-rooms__mosaic {
  display: grid;
  gap: var(--home-rooms-gap);
  min-width: 0;
}

.home-rooms__side {
  display: grid;
  gap: var(--home-rooms-gap);
  min-width: 0;
}

.home-rooms__pair {
  display: grid;
  gap: var(--home-rooms-gap);
  grid-template-columns: 1fr;
  min-width: 0;
}

.home-rooms__feature {
  min-width: 0;
}

.home-rooms__feature-media {
  position: relative;
  display: block;
  width: 100%;
  aspect-ratio: 16 / 10;
  overflow: hidden;
  border-radius: var(--home-rooms-radius);
  background: var(--dilsa-sand);
}

.home-rooms__feature-image {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 200ms ease;
}

.home-rooms__feature-overlay {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  padding: 1.35rem 1.15rem 1.15rem;
  background: linear-gradient(
    180deg,
    rgba(30, 52, 42, 0) 0%,
    rgba(30, 52, 42, 0.55) 42%,
    rgba(30, 52, 42, 0.88) 100%
  );
  color: var(--dilsa-ivory);
  text-align: left;
}

.home-rooms__feature-heading {
  margin: 0 0 0.85rem;
  max-width: 16ch;
  font-family: var(--dilsa-font-serif);
  font-size: clamp(1.35rem, 3.6vw, 1.75rem);
  font-weight: 600;
  line-height: 1.2;
  color: var(--dilsa-ivory);
  text-shadow: 0 1px 2px rgba(0, 0, 0, 0.25);
}

.home-rooms__feature-cta {
  background: var(--dilsa-ivory);
  color: var(--dilsa-forest);
  border: 0;
}

.home-rooms__feature-cta:hover,
.home-rooms__feature-cta:focus-visible {
  background: var(--dilsa-white);
  color: var(--dilsa-forest-deep);
}

.home-rooms__feature-cta:focus-visible {
  outline: 2px solid var(--dilsa-ivory);
  outline-offset: 3px;
}

.home-rooms__room {
  display: flex;
  flex-direction: column;
  min-width: 0;
  text-decoration: none;
  color: inherit;
  border-radius: var(--home-rooms-radius);
  overflow: hidden;
  outline: none;
  background: var(--dilsa-white);
}

.home-rooms__room:focus-visible {
  outline: 2px solid var(--dilsa-forest);
  outline-offset: 3px;
}

.home-rooms__media {
  display: block;
  position: relative;
  width: 100%;
  overflow: hidden;
  background: var(--dilsa-sand);
  aspect-ratio: 4 / 3;
}

.home-rooms__room--living .home-rooms__media {
  aspect-ratio: 16 / 9;
}

.home-rooms__image {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 200ms ease;
}

.home-rooms__caption {
  display: block;
  margin: 0;
  padding: 0.7rem 0.9rem;
  background: var(--dilsa-ivory);
  font-family: var(--dilsa-font-sans);
  font-size: 0.98rem;
  font-weight: 600;
  line-height: 1.3;
  color: var(--dilsa-charcoal);
  word-wrap: break-word;
  overflow-wrap: anywhere;
}

@media (hover: hover) and (pointer: fine) {
  .home-rooms__room:hover .home-rooms__image,
  .home-rooms__feature-media:hover .home-rooms__feature-image {
    transform: scale(1.03);
  }

  .home-rooms__room:hover .home-rooms__caption {
    color: var(--dilsa-forest);
  }
}

@media (prefers-reduced-motion: reduce) {
  .home-rooms__image,
  .home-rooms__feature-image {
    transition: none;
  }

  .home-rooms__room:hover .home-rooms__image,
  .home-rooms__feature-media:hover .home-rooms__feature-image {
    transform: none;
  }
}

/* Tablet: feature full width, then room cards */
@media (min-width: 768px) {
  .home-rooms {
    padding: 3.25rem 0 3.75rem;
  }

  .home-rooms__intro {
    margin-bottom: 1.85rem;
  }

  .home-rooms__feature-media {
    aspect-ratio: 21 / 10;
  }

  .home-rooms__pair.pair-count-2 {
    grid-template-columns: 1fr 1fr;
  }

  .home-rooms__feature-overlay {
    padding: 1.6rem 1.4rem 1.25rem;
  }
}

/* Desktop mosaic ≥1100px: two equal columns */
@media (min-width: 1100px) {
  .home-rooms {
    --home-rooms-gap: 1.15rem; /* ~18px within 16–20px */
    padding: 3.75rem 0 4.5rem;
  }

  .home-rooms__mosaic.has-feature.has-rooms {
    grid-template-columns: 1fr 1fr;
    align-items: stretch;
    /* Controlled mosaic stage (section itself stays fluid). */
    height: clamp(26rem, 40vw, 34rem);
    max-height: 34rem;
  }

  .home-rooms__mosaic.has-feature.has-rooms .home-rooms__feature,
  .home-rooms__mosaic.has-feature.has-rooms .home-rooms__side {
    min-height: 0;
    height: 100%;
  }

  .home-rooms__mosaic.has-feature.has-rooms .home-rooms__side {
    grid-template-rows: 1.08fr 1fr;
  }

  .home-rooms__mosaic.has-feature.has-rooms .home-rooms__feature-media {
    height: 100%;
    aspect-ratio: auto;
    min-height: 0;
  }

  .home-rooms__mosaic.has-feature.has-rooms .home-rooms__room {
    height: 100%;
    min-height: 0;
  }

  .home-rooms__mosaic.has-feature.has-rooms .home-rooms__room .home-rooms__media {
    flex: 1 1 auto;
    aspect-ratio: auto;
    min-height: 0;
  }

  .home-rooms__mosaic.has-feature.has-rooms .home-rooms__pair {
    min-height: 0;
    height: 100%;
  }

  .home-rooms__mosaic.has-feature.has-rooms .home-rooms__pair.pair-count-2 {
    grid-template-columns: 1fr 1fr;
    height: 100%;
  }

  /* No living row: pair fills the side column */
  .home-rooms__mosaic.has-feature.has-rooms:not(.has-living) .home-rooms__side {
    grid-template-rows: 1fr;
  }

  /* Feature only */
  .home-rooms__mosaic.has-feature:not(.has-rooms) .home-rooms__feature-media {
    min-height: 22rem;
    max-height: 28rem;
    aspect-ratio: 16 / 9;
  }
}

@media (max-width: 767px) {
  .home-rooms__feature-media {
    aspect-ratio: 5 / 4;
    max-height: 20rem;
  }

  .home-rooms__feature-heading {
    max-width: 18ch;
  }

  .home-rooms__caption {
    font-size: 0.95rem;
    padding: 0.65rem 0.8rem;
  }
}

/* ==========================================================================
   Home Interiors page template
   ========================================================================== */

.site-main--home-interiors {
  padding: 0;
}

.hi-hero {
  position: relative;
  display: grid;
  background: var(--dilsa-sand);
}

.hi-hero__media {
  position: relative;
  display: block;
  width: 100%;
  /* Explicit height so the image can fill — min-height alone left a blank band. */
  height: clamp(14rem, 52vw, 20rem);
  overflow: hidden;
  line-height: 0;
}

.hi-hero__image,
.hi-hero__fallback {
  display: block;
  width: 100%;
  height: 100%;
  max-width: none;
  object-fit: cover;
  object-position: center;
}

.hi-hero__fallback {
  background:
    linear-gradient(115deg, rgba(247, 243, 237, 0.92) 0%, rgba(231, 220, 207, 0.55) 42%, rgba(196, 180, 154, 0.85) 100%);
}

.hi-hero__content {
  background: var(--dilsa-ivory);
  /* Tighter bottom on mobile — pairs with reduced .hi-intro top padding. */
  padding: 1.75rem 0 1.25rem;
}

.hi-hero__content-inner {
  max-width: 34rem;
}

.hi-hero__heading {
  margin: 0 0 0.75rem;
  font-family: var(--dilsa-font-serif);
  font-size: clamp(2rem, 6vw, 3.1rem);
  font-weight: 600;
  line-height: 1.12;
  color: var(--dilsa-charcoal);
}

.hi-hero__text {
  margin: 0;
  font-size: 1.05rem;
  line-height: 1.55;
  color: var(--dilsa-muted);
}

.hi-hero__actions {
  margin: 1.1rem 0 0;
}

.hi-hero__cta:focus-visible {
  outline: 2px solid var(--dilsa-forest);
  outline-offset: 3px;
}

.hi-intro {
  padding: 1.5rem 0 2.5rem;
  background: var(--dilsa-ivory);
}

.hi-intro__inner {
  max-width: 40rem;
  margin-inline: auto;
  text-align: center;
}

.hi-intro__heading {
  margin: 0 0 0.85rem;
  font-family: var(--dilsa-font-serif);
  font-size: clamp(1.85rem, 4vw, 2.45rem);
  font-weight: 600;
  line-height: 1.15;
  color: var(--dilsa-charcoal);
}

.hi-intro__text {
  margin: 0;
  font-size: 1.05rem;
  line-height: 1.65;
  color: var(--dilsa-muted);
}

.hi-services {
  padding: 2.75rem 0 3.25rem;
  background: #f3eee6;
}

.hi-services__heading,
.hi-gallery__heading,
.hi-enquiry__heading {
  margin: 0 0 1.5rem;
  font-family: var(--dilsa-font-serif);
  font-size: clamp(1.85rem, 4vw, 2.45rem);
  font-weight: 600;
  line-height: 1.15;
  color: var(--dilsa-charcoal);
  text-align: center;
}

.hi-services__grid {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: 1fr;
  gap: 1.25rem;
}

.hi-services__card {
  background: var(--dilsa-white);
  border: 1px solid rgba(40, 68, 56, 0.1);
  border-radius: var(--dilsa-radius);
  padding: 0.85rem 0.85rem 1.15rem;
  height: 100%;
}

.hi-services__media {
  aspect-ratio: 4 / 3;
  overflow: hidden;
  margin-bottom: 0.85rem;
  background: var(--dilsa-sand);
}

.hi-services__image {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}

.hi-services__title {
  margin: 0 0 0.4rem;
  font-family: var(--dilsa-font-serif);
  font-size: 1.35rem;
  font-weight: 600;
  color: var(--dilsa-forest);
}

.hi-services__desc {
  margin: 0;
  font-size: 0.98rem;
  line-height: 1.55;
  color: var(--dilsa-muted);
}

.hi-gallery {
  padding: 2.75rem 0 3.25rem;
  background: var(--dilsa-ivory);
}

.hi-gallery__grid {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: 1fr;
  gap: 0.85rem;
}

.hi-gallery__figure {
  margin: 0;
  aspect-ratio: 1;
  overflow: hidden;
  background: var(--dilsa-sand);
}

.hi-gallery__image {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}

.hi-enquiry {
  padding: 3rem 0 3.75rem;
  background: #f3eee6;
  /* Clear the sticky search header without oversized extra offset. */
  scroll-margin-top: calc(var(--dilsa-sticky-offset, 0px) + 0.75rem);
}

.hi-enquiry__inner {
  max-width: 800px;
  margin-inline: auto;
}

.hi-enquiry__form {
  max-width: 800px;
  margin-inline: auto;
}

.hi-enquiry__intro {
  margin: -0.35rem 0 1.5rem;
  text-align: center;
  color: var(--dilsa-muted);
  line-height: 1.55;
}

.hi-enquiry__form {
  background: var(--dilsa-white);
  border: 1px solid rgba(40, 68, 56, 0.12);
  border-radius: var(--dilsa-radius);
  padding: 1.25rem 1.15rem 1.4rem;
}

.hi-enquiry__form :is(input, select, textarea) {
  width: 100%;
  max-width: 100%;
  font-family: var(--dilsa-font-sans);
  font-size: 1rem;
  color: var(--dilsa-charcoal);
  border: 1px solid rgba(40, 68, 56, 0.22);
  border-radius: var(--dilsa-radius);
  padding: 0.65rem 0.75rem;
  background: var(--dilsa-white);
}

.hi-enquiry__form :is(input, select, textarea):focus-visible {
  outline: 2px solid var(--dilsa-forest);
  outline-offset: 2px;
  border-color: var(--dilsa-forest);
}

.hi-enquiry__form :is(input[type="submit"], button[type="submit"]) {
  appearance: none;
  border: 0;
  background: var(--dilsa-forest);
  color: var(--dilsa-white);
  font-family: var(--dilsa-font-sans);
  font-weight: 500;
  padding: 0.7rem 1.25rem;
  border-radius: var(--dilsa-radius);
  cursor: pointer;
}

.hi-enquiry__form :is(input[type="submit"], button[type="submit"]):focus-visible {
  outline: 2px solid var(--dilsa-forest);
  outline-offset: 3px;
}

.hi-enquiry__consent {
  margin: 1rem 0 0;
  font-size: 0.88rem;
  line-height: 1.45;
  color: var(--dilsa-muted);
}

.hi-enquiry__contact {
  list-style: none;
  margin: 0;
  padding: 1.15rem 1.25rem;
  background: var(--dilsa-white);
  border: 1px solid rgba(40, 68, 56, 0.12);
  border-radius: var(--dilsa-radius);
  display: grid;
  gap: 0.65rem;
}

.hi-enquiry__contact a {
  color: var(--dilsa-forest);
  text-decoration: none;
  font-weight: 500;
}

.hi-enquiry__contact a:hover,
.hi-enquiry__contact a:focus-visible {
  text-decoration: underline;
}

.hi-enquiry__contact a:focus-visible {
  outline: 2px solid var(--dilsa-forest);
  outline-offset: 3px;
}

@media (min-width: 768px) {
  .hi-hero__media {
    height: clamp(16rem, 42vw, 22rem);
  }

  .hi-hero__content {
    padding: 2.25rem 0 2.5rem;
  }

  .hi-intro {
    padding: 2.25rem 0 3rem;
  }

  .hi-services__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1.35rem;
  }

  .hi-gallery__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem;
  }
}

@media (min-width: 1024px) {
  .hi-hero {
    min-height: min(70vh, 36rem);
    grid-template-columns: 1fr;
  }

  .hi-hero__media {
    position: absolute;
    inset: 0;
    height: 100%;
  }

  .hi-hero__media::after {
    content: "";
    position: absolute;
    inset: 0;
    background:
      linear-gradient(
        90deg,
        rgba(247, 243, 237, 0.94) 0%,
        rgba(247, 243, 237, 0.78) 28%,
        rgba(247, 243, 237, 0.28) 52%,
        rgba(247, 243, 237, 0) 72%
      );
    pointer-events: none;
  }

  .hi-hero__content {
    position: relative;
    z-index: 1;
    display: flex;
    align-items: center;
    min-height: min(70vh, 36rem);
    padding: 4rem 0;
    background: transparent;
  }

  .hi-hero__heading {
    color: var(--dilsa-charcoal);
  }

  .hi-hero__text {
    color: rgba(37, 37, 37, 0.78);
    max-width: 28rem;
  }

  .hi-services__grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }

  .hi-gallery__grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1.15rem;
  }

  .hi-intro,
  .hi-services,
  .hi-gallery {
    padding-top: 3.5rem;
    padding-bottom: 3.75rem;
  }

  .hi-enquiry {
    padding: 4rem 0 4.5rem;
  }
}

/* WordPress admin bar coexistence */
@media screen and (max-width: 782px) {
  body.admin-bar .site-header__bar {
    top: var(--dilsa-admin-bar);
  }
}

/* ==========================================================================
   Catalogue + quote mode
   ========================================================================== */

.dilsa-catalogue-mode .price,
.dilsa-catalogue-mode .woocommerce-Price-amount,
.dilsa-catalogue-mode .onsale,
.dilsa-catalogue-mode .home-products__price,
.dilsa-catalogue-mode .home-products__badge {
  display: none !important;
}

.dilsa-view-details {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  text-decoration: none;
}

.dilsa-product-quote-panel {
  max-width: 800px;
  margin-top: 1.5rem;
  margin-inline: 0;
  padding-top: 1.35rem;
  border-top: 1px solid rgba(40, 68, 56, 0.14);
  scroll-margin-top: calc(var(--dilsa-sticky-offset, 0px) + 0.75rem);
}

.dilsa-product-quote-panel__intro {
  margin: 0 0 1.15rem;
  max-width: 40rem;
  color: var(--dilsa-muted);
  font-size: 1rem;
  line-height: 1.55;
}

.dilsa-product-quote-panel__missing {
  margin: 0;
  padding: 0.85rem 1rem;
  background: rgba(40, 68, 56, 0.06);
  border: 1px solid rgba(40, 68, 56, 0.14);
  color: var(--dilsa-charcoal);
}

.dilsa-catalogue-mode .woocommerce-variation-add-to-cart,
.dilsa-catalogue-mode form.cart {
  display: none !important;
}

/* ==========================================================================
   Shop / product-category archive
   ========================================================================== */

.site-main--shop {
  padding-top: var(--dilsa-space-6, 1.75rem);
  padding-bottom: var(--dilsa-space-8, 3.5rem);
}

.dilsa-shop-shell {
  width: var(--dilsa-shell);
  max-width: 100%;
  margin-inline: auto;
}

.dilsa-shop__header {
  margin: 0 0 1.25rem;
}

.dilsa-shop__title {
  margin: 0 0 0.65rem;
  font-family: var(--dilsa-font-serif);
  font-size: clamp(1.85rem, 3.5vw, 2.45rem);
  font-weight: 600;
  line-height: 1.15;
  color: var(--dilsa-charcoal);
}

.dilsa-shop__header .term-description,
.dilsa-shop__header .page-description {
  margin: 0;
  max-width: 42rem;
  color: var(--dilsa-muted);
  line-height: 1.55;
}

.dilsa-shop__toolbar {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 0.65rem 1rem;
  margin: 0 0 1.35rem;
  padding: 0.65rem 0;
  border-top: 1px solid rgba(40, 68, 56, 0.12);
  border-bottom: 1px solid rgba(40, 68, 56, 0.12);
}

.dilsa-shop__toolbar .woocommerce-notices-wrapper {
  flex: 1 0 100%;
}

.dilsa-shop__toolbar .woocommerce-result-count {
  margin: 0;
  font-size: 0.92rem;
  color: var(--dilsa-muted);
}

.dilsa-shop__toolbar .woocommerce-ordering {
  margin: 0;
  margin-left: auto;
}

.dilsa-shop__toolbar .woocommerce-ordering select {
  max-width: 100%;
  min-height: 2.5rem;
  padding: 0.4rem 0.7rem;
  font-family: var(--dilsa-font-sans);
  font-size: 0.92rem;
  color: var(--dilsa-charcoal);
  background: var(--dilsa-white);
  border: 1px solid rgba(40, 68, 56, 0.22);
  border-radius: var(--dilsa-radius);
}

.dilsa-shop__toolbar .woocommerce-ordering select:focus-visible {
  outline: 2px solid var(--dilsa-forest);
  outline-offset: 2px;
  border-color: var(--dilsa-forest);
}

.site-main--shop .woocommerce-breadcrumb {
  margin: 0 0 1rem;
  font-size: 0.92rem;
  color: var(--dilsa-muted);
}

.site-main--shop .woocommerce-breadcrumb a {
  color: var(--dilsa-forest);
  text-decoration: none;
}

.site-main--shop .woocommerce-breadcrumb a:hover,
.site-main--shop .woocommerce-breadcrumb a:focus-visible {
  text-decoration: underline;
}

.site-main--shop .woocommerce-pagination {
  margin: 2rem 0 0;
}

.site-main--shop .woocommerce-pagination ul {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 0.35rem;
  list-style: none;
  margin: 0;
  padding: 0;
}

.site-main--shop .woocommerce-pagination ul li {
  list-style: none;
  margin: 0;
}

.site-main--shop .woocommerce-pagination .page-numbers {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 2.5rem;
  min-height: 2.5rem;
  padding: 0.35rem 0.65rem;
  border: 1px solid rgba(40, 68, 56, 0.18);
  border-radius: var(--dilsa-radius);
  color: var(--dilsa-charcoal);
  text-decoration: none;
  font-size: 0.95rem;
}

.site-main--shop .woocommerce-pagination .page-numbers.current,
.site-main--shop .woocommerce-pagination a.page-numbers:hover,
.site-main--shop .woocommerce-pagination a.page-numbers:focus-visible {
  background: var(--dilsa-forest);
  border-color: var(--dilsa-forest);
  color: var(--dilsa-white);
}

/* Grouped subcategory overview (parent product_cat with children) */

.dilsa-shop__view-all-products {
  margin: -0.35rem 0 1.5rem;
}

.dilsa-shop__view-all-products-link,
.dilsa-cat-group__view-all-link {
  font-family: var(--dilsa-font-sans);
  font-size: 0.95rem;
  font-weight: 600;
  color: var(--dilsa-forest);
  text-decoration: none;
  border-bottom: 1px solid transparent;
  transition: border-color var(--dilsa-transition), color var(--dilsa-transition);
}

.dilsa-shop__view-all-products-link:hover,
.dilsa-shop__view-all-products-link:focus-visible,
.dilsa-cat-group__view-all-link:hover,
.dilsa-cat-group__view-all-link:focus-visible {
  color: var(--dilsa-charcoal);
  border-bottom-color: currentColor;
  text-decoration: none;
}

.dilsa-cat-groups {
  display: flex;
  flex-direction: column;
  gap: 2.5rem;
}

.dilsa-cat-group__header {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  justify-content: space-between;
  gap: 0.5rem 1.25rem;
  margin: 0 0 1.15rem;
}

.dilsa-cat-group__title {
  margin: 0;
  flex: 1 1 12rem;
  min-width: 0;
  font-family: var(--dilsa-font-serif);
  font-size: clamp(1.35rem, 2.8vw, 1.75rem);
  font-weight: 600;
  line-height: 1.2;
  color: var(--dilsa-charcoal);
}

.dilsa-cat-group__view-all {
  margin: 0;
  flex: 0 1 auto;
  max-width: 100%;
}

.dilsa-cat-group__view-all-link {
  display: inline-block;
  max-width: 100%;
  overflow-wrap: anywhere;
}

.dilsa-cat-group .products {
  margin: 0;
}

.dilsa-cat-group--more .dilsa-cat-group__title {
  font-size: clamp(1.25rem, 2.5vw, 1.55rem);
}

@media (min-width: 768px) {
  .dilsa-cat-groups {
    gap: 3rem;
  }
}

@media (min-width: 1024px) {
  .dilsa-cat-groups {
    gap: 3.5rem;
  }
}

/* ==========================================================================
   Single product — catalogue detail
   ========================================================================== */

.site-main--product {
  padding-top: var(--dilsa-space-6, 1.75rem);
  padding-bottom: var(--dilsa-space-8, 3.5rem);
}

.dilsa-product-shell {
  width: var(--dilsa-shell);
  max-width: 100%;
  margin-inline: auto;
}

.dilsa-product__breadcrumbs {
  margin: 0 0 1.35rem;
}

.dilsa-product__breadcrumb-list {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.35rem 0.5rem;
  margin: 0;
  padding: 0;
  font-size: 0.92rem;
  color: var(--dilsa-muted);
}

.dilsa-product__breadcrumb-list a {
  color: var(--dilsa-forest);
  text-decoration: none;
}

.dilsa-product__breadcrumb-list a:hover,
.dilsa-product__breadcrumb-list a:focus-visible {
  text-decoration: underline;
}

.dilsa-product__breadcrumb-sep {
  color: rgba(40, 68, 56, 0.4);
  margin-inline: 0.15rem;
}

.dilsa-product__layout {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1.75rem 2.5rem;
  align-items: start;
}

.dilsa-product__gallery {
  min-width: 0;
}

/*
 * Product gallery — desktop left thumb rail / mobile horizontal strip.
 * Scoped to .dilsa-product__gallery so catalogue cards and other pages are untouched.
 *
 * Stage sizing: one responsive square (aspect-ratio 1/1). Flexslider and earlier
 * JS must not set image-driven heights — that cropped portrait slides.
 */
.dilsa-product__gallery .woocommerce-product-gallery {
  position: relative;
  margin: 0;
  opacity: 1;
}

.dilsa-product__gallery .woocommerce-product-gallery__wrapper {
  margin: 0;
}

/* Multi-image: square stage. height:auto beats flexslider/JS inline heights. */
.dilsa-product__gallery .flex-viewport {
  position: relative;
  width: 100%;
  max-width: 100%;
  aspect-ratio: 1 / 1;
  height: auto !important;
  max-height: none !important;
  margin: 0;
  overflow: hidden;
  background: var(--dilsa-ivory);
  border: 1px solid rgba(40, 68, 56, 0.1);
  box-sizing: border-box;
}

/* Slides must match the stage — never grow to the image’s intrinsic height. */
.dilsa-product__gallery .flex-viewport .woocommerce-product-gallery__wrapper {
  height: 100% !important;
}

.dilsa-product__gallery .flex-viewport .woocommerce-product-gallery__image {
  position: relative;
  height: 100% !important;
  margin: 0;
  background: var(--dilsa-ivory);
  border: 0;
  box-sizing: border-box;
}

.dilsa-product__gallery .flex-viewport .woocommerce-product-gallery__image > a {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  width: auto;
  height: auto;
  margin: 0;
}

.dilsa-product__gallery .flex-viewport .woocommerce-product-gallery__image img,
.dilsa-product__gallery .flex-viewport .woocommerce-product-gallery__image .zoomImg,
.dilsa-product__gallery .flex-viewport .wp-post-image {
  position: absolute;
  inset: 0;
  display: block;
  width: auto !important;
  height: auto !important;
  max-width: 100%;
  max-height: 100%;
  margin: auto;
  object-fit: contain;
  object-position: center center;
  background: transparent;
}

/*
 * WooCommerce jquery.zoom overlay — keep suppressed. Dilsa uses .dilsa-gallery-zoom
 * so hover enlarge cannot drive stage height or crop letterboxed images.
 */
.dilsa-product__gallery .zoomImg {
  display: none !important;
}

/* Dilsa hover zoom: separate layer over the painted image only (desktop fine pointer). */
.dilsa-product__gallery .dilsa-gallery-zoom {
  position: absolute;
  inset: 0;
  z-index: 4;
  pointer-events: none;
  overflow: hidden;
}

.dilsa-product__gallery .dilsa-gallery-zoom__pane {
  position: absolute;
  overflow: hidden;
  opacity: 0;
  visibility: hidden;
  background: var(--dilsa-ivory);
}

.dilsa-product__gallery .dilsa-gallery-zoom.is-active .dilsa-gallery-zoom__pane {
  opacity: 1;
  visibility: visible;
}

.dilsa-product__gallery .dilsa-gallery-zoom__img {
  position: absolute;
  top: 0;
  left: 0;
  display: block;
  margin: 0;
  max-width: none !important;
  max-height: none !important;
  width: auto;
  height: auto;
  object-fit: fill;
  pointer-events: none;
  user-select: none;
}

@media (hover: hover) and (pointer: fine) {
  .dilsa-product__gallery.dilsa-gallery--zooming .flex-viewport,
  .dilsa-product__gallery.dilsa-gallery--zooming .woocommerce-product-gallery__wrapper {
    cursor: crosshair;
  }
}

@media (hover: none), (pointer: coarse) {
  .dilsa-product__gallery .dilsa-gallery-zoom {
    display: none !important;
  }
}

/* Single-image products (no flexslider viewport). */
.dilsa-product__gallery.dilsa-gallery--single .woocommerce-product-gallery__wrapper,
.dilsa-product__gallery .woocommerce-product-gallery.dilsa-gallery--single .woocommerce-product-gallery__wrapper {
  position: relative;
  width: 100%;
  aspect-ratio: 1 / 1;
  height: auto;
  overflow: hidden;
  background: var(--dilsa-ivory);
  border: 1px solid rgba(40, 68, 56, 0.1);
  box-sizing: border-box;
}

.dilsa-product__gallery .woocommerce-product-gallery.dilsa-gallery--single .woocommerce-product-gallery__image {
  position: absolute;
  inset: 0;
  margin: 0;
  background: var(--dilsa-ivory);
  border: 0;
}

.dilsa-product__gallery .woocommerce-product-gallery.dilsa-gallery--single .woocommerce-product-gallery__image > a {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
}

.dilsa-product__gallery .woocommerce-product-gallery.dilsa-gallery--single .woocommerce-product-gallery__image img,
.dilsa-product__gallery .woocommerce-product-gallery.dilsa-gallery--single .wp-post-image {
  position: absolute;
  inset: 0;
  display: block;
  width: auto;
  height: auto;
  max-width: 100%;
  max-height: 100%;
  margin: auto;
  object-fit: contain;
  object-position: center center;
  background: transparent;
}

/* Zoom / lightbox control — inside main stage top-right (not floating above the gallery). */
.dilsa-product__gallery .woocommerce-product-gallery__trigger {
  position: absolute;
  top: 12px;
  right: 12px;
  z-index: 5;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  margin: 0;
  padding: 0;
  border: 1px solid rgba(40, 68, 56, 0.18);
  border-radius: var(--dilsa-radius);
  background: rgba(255, 255, 255, 0.94);
  color: var(--dilsa-forest);
  box-shadow: 0 1px 2px rgba(37, 37, 37, 0.08);
  text-decoration: none;
  line-height: 1;
  cursor: pointer;
}

.dilsa-product__gallery .woocommerce-product-gallery__trigger:hover,
.dilsa-product__gallery .woocommerce-product-gallery__trigger:focus-visible {
  background: var(--dilsa-white);
  color: var(--dilsa-forest-deep);
  outline: 2px solid var(--dilsa-forest);
  outline-offset: 2px;
}

.dilsa-product__gallery .woocommerce-product-gallery__trigger span {
  display: block;
  width: 20px;
  height: 20px;
  font-size: 0;
  line-height: 0;
  color: transparent;
  background: center / contain no-repeat
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none'%3E%3Ccircle cx='10.5' cy='10.5' r='6.25' stroke='%23284438' stroke-width='1.75'/%3E%3Cpath d='M15.5 15.5L20 20' stroke='%23284438' stroke-width='1.75' stroke-linecap='round'/%3E%3C/svg%3E");
}

.dilsa-product__gallery .dilsa-product-gallery__fullview {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  margin: 0.65rem 0 0;
  padding: 0;
  border: 0;
  background: none;
  color: var(--dilsa-forest);
  font-family: var(--dilsa-font-sans);
  font-size: 0.95rem;
  font-weight: 500;
  line-height: 1.4;
  text-decoration: underline;
  text-underline-offset: 0.14em;
  cursor: pointer;
}

.dilsa-product__gallery .dilsa-product-gallery__fullview:hover,
.dilsa-product__gallery .dilsa-product-gallery__fullview:focus-visible {
  color: var(--dilsa-forest-deep);
}

.dilsa-product__gallery .dilsa-product-gallery__fullview:focus-visible {
  outline: 2px solid var(--dilsa-forest);
  outline-offset: 3px;
}

/* Thumbnail rail / strip */
.dilsa-product__gallery .flex-control-thumbs {
  display: flex;
  gap: 10px;
  margin: 0.75rem 0 0;
  padding: 0;
  list-style: none;
  box-sizing: border-box;
}

.dilsa-product__gallery .flex-control-thumbs[hidden],
.dilsa-product__gallery .woocommerce-product-gallery.dilsa-gallery--single .flex-control-thumbs {
  display: none !important;
}

.dilsa-product__gallery .flex-control-thumbs li {
  flex: 0 0 72px;
  width: 72px;
  height: 72px;
  margin: 0;
  padding: 0;
  background: var(--dilsa-ivory);
  border: 2px solid rgba(40, 68, 56, 0.14);
  border-radius: var(--dilsa-radius);
  box-sizing: border-box;
  overflow: hidden;
}

.dilsa-product__gallery .flex-control-thumbs img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
  object-position: center;
  cursor: pointer;
  opacity: 1;
  background: var(--dilsa-ivory);
}

/* One forest-green selection border on the thumb — no extra outline/underline. */
.dilsa-product__gallery .flex-control-thumbs li.is-selected,
.dilsa-product__gallery .flex-control-thumbs li:has(img.flex-active) {
  border-color: var(--dilsa-forest);
  box-shadow: none;
  outline: none;
}

.dilsa-product__gallery .flex-control-thumbs li.is-selected img,
.dilsa-product__gallery .flex-control-thumbs li:has(img.flex-active) img,
.dilsa-product__gallery .flex-control-thumbs img.flex-active {
  border: 0;
  outline: none;
  box-shadow: none;
  text-decoration: none;
}

.dilsa-product__gallery .flex-control-thumbs img:focus {
  outline: none;
}

.dilsa-product__gallery .flex-control-thumbs img:focus-visible {
  outline: 2px solid var(--dilsa-forest);
  outline-offset: -2px;
}

/* Mobile: main image above horizontally scrollable thumbs */
@media (max-width: 899px) {
  .dilsa-product__gallery .woocommerce-product-gallery.dilsa-gallery--has-thumbs {
    display: flex;
    flex-direction: column;
  }

  .dilsa-product__gallery .flex-control-thumbs {
    flex-direction: row;
    flex-wrap: nowrap;
    width: 100%;
    max-width: 100%;
    overflow-x: auto;
    overflow-y: hidden;
    -webkit-overflow-scrolling: touch;
    overscroll-behavior-x: contain;
    scrollbar-width: thin;
    padding-bottom: 2px;
  }

  .dilsa-product__gallery .flex-control-thumbs li {
    flex: 0 0 72px;
    min-width: 72px;
    min-height: 72px;
  }
}

/* Desktop: vertical thumb rail on the left of the main stage */
@media (min-width: 900px) {
  .dilsa-product__gallery .woocommerce-product-gallery.dilsa-gallery--has-thumbs {
    display: grid;
    grid-template-columns: 72px minmax(0, 1fr);
    grid-template-rows: auto auto;
    column-gap: 18px;
    row-gap: 0;
    align-items: start;
  }

  .dilsa-product__gallery .woocommerce-product-gallery.dilsa-gallery--has-thumbs .flex-control-thumbs {
    grid-column: 1;
    grid-row: 1;
    flex-direction: column;
    align-self: stretch;
    width: 72px;
    min-height: 0;
    height: auto;
    max-height: 100%;
    margin: 0;
    overflow-x: hidden;
    overflow-y: auto;
    overscroll-behavior: contain;
    scrollbar-width: thin;
  }

  .dilsa-product__gallery .woocommerce-product-gallery.dilsa-gallery--has-thumbs .flex-viewport {
    grid-column: 2;
    grid-row: 1;
  }

  .dilsa-product__gallery .woocommerce-product-gallery.dilsa-gallery--has-thumbs .dilsa-product-gallery__fullview {
    grid-column: 2;
    grid-row: 2;
    justify-self: start;
  }
}

.dilsa-product__summary {
  min-width: 0;
}

.dilsa-product__title {
  margin: 0 0 0.75rem;
  font-family: var(--dilsa-font-serif);
  font-size: clamp(1.85rem, 3vw, 2.45rem);
  font-weight: 600;
  line-height: 1.15;
  color: var(--dilsa-charcoal);
}

.dilsa-product__short-description {
  margin: 0 0 1rem;
  color: var(--dilsa-muted);
  font-size: 1.05rem;
  line-height: 1.55;
}

.dilsa-product__short-description p:last-child {
  margin-bottom: 0;
}

.dilsa-product__sku {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem 0.65rem;
  margin: 0 0 1.25rem;
  font-size: 0.92rem;
  color: var(--dilsa-muted);
}

.dilsa-product__sku-label {
  font-weight: 600;
  color: var(--dilsa-forest);
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.dilsa-product-configurator {
  display: grid;
  gap: 0.85rem;
  margin: 0 0 1.35rem;
  padding: 1rem 0 0;
  border-top: 1px solid rgba(40, 68, 56, 0.12);
}

.dilsa-product-configurator .dilsa-enquiry__fieldset {
  margin: 0;
}

.dilsa-product-configurator .dilsa-enquiry__field label,
.dilsa-product-configurator .dilsa-enquiry__fieldset legend {
  font-family: var(--dilsa-font-sans);
  font-size: 0.95rem;
  font-weight: 600;
  color: var(--dilsa-charcoal);
}

.dilsa-product-configurator :is(select, input[type="number"]) {
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
  font-family: var(--dilsa-font-sans);
  font-size: 1rem;
  color: var(--dilsa-charcoal);
  border: 1px solid rgba(40, 68, 56, 0.22);
  border-radius: var(--dilsa-radius, 2px);
  padding: 0.65rem 0.75rem;
  background: var(--dilsa-white);
}

.dilsa-product-configurator :is(select, input[type="number"]):focus-visible {
  outline: 2px solid var(--dilsa-forest);
  outline-offset: 2px;
  border-color: var(--dilsa-forest);
}

.dilsa-product-configurator__quantity {
  max-width: 10rem;
}

.dilsa-product__quote-cta {
  margin: 0 0 0.65rem;
}

.dilsa-product__quote-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 3rem;
  padding-inline: 1.5rem;
  font-size: 1rem;
  text-decoration: none;
}

.dilsa-product__quote-note {
  margin: 0;
  max-width: 28rem;
  font-size: 0.95rem;
  line-height: 1.5;
  color: var(--dilsa-muted);
}

.dilsa-product__section {
  margin-top: 2.75rem;
  padding-top: 2rem;
  border-top: 1px solid rgba(40, 68, 56, 0.12);
}

.dilsa-product__section-title {
  margin: 0 0 1rem;
  font-family: var(--dilsa-font-serif);
  font-size: clamp(1.45rem, 2.2vw, 1.85rem);
  font-weight: 600;
  color: var(--dilsa-charcoal);
}

.dilsa-product__section-body {
  max-width: 48rem;
  color: var(--dilsa-charcoal);
  line-height: 1.65;
}

.dilsa-product__specs-table {
  width: 100%;
  max-width: 40rem;
  border-collapse: collapse;
}

.dilsa-product__specs-table th,
.dilsa-product__specs-table td {
  padding: 0.7rem 0.85rem;
  border-bottom: 1px solid rgba(40, 68, 56, 0.12);
  text-align: left;
  vertical-align: top;
  font-size: 0.98rem;
}

.dilsa-product__specs-table th {
  width: 38%;
  font-weight: 600;
  color: var(--dilsa-forest);
  background: rgba(40, 68, 56, 0.04);
}

.dilsa-product__quote .dilsa-product__section-title {
  max-width: 800px;
  margin-inline: 0;
  text-align: left;
}

.dilsa-product__quote .dilsa-enquiry {
  margin-inline: 0;
  max-width: 800px;
  width: 100%;
}

/* Related products reuse shared ul.products card grid (see homepage products). */

@media (min-width: 900px) {
  .dilsa-product__layout {
    grid-template-columns: minmax(0, 1.05fr) minmax(0, 0.95fr);
    gap: 2.5rem 3rem;
  }
}

#dilsa-product-quote-form,
#dilsa-product-quote,
.dilsa-product__quote {
  scroll-margin-top: calc(var(--dilsa-sticky-offset, 0px) + 0.75rem);
}

/* ==========================================================================
   About Us page template
   ========================================================================== */

/*
 * Match final white section so no ivory strip peeks before the footer.
 * Zero top padding: .site-main defaults to padding-top: var(--dilsa-space-7)
 * (3rem), which showed as a white gap above the ivory hero.
 */
.site-main--about {
  background: var(--dilsa-white);
  padding-top: 0;
}

.about-hero {
  /* Internal content padding only — section background is flush under the header. */
  padding: 0.65rem 0 2.25rem;
  background: var(--dilsa-ivory);
}

.about-hero--has-image {
  padding-top: 0.5rem;
}

.about-hero__inner {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1.25rem;
  align-items: center;
}

.about-hero--has-image .about-hero__media {
  order: -1;
}

.about-hero__heading {
  margin: 0 0 0.85rem;
  font-family: var(--dilsa-font-serif);
  font-size: clamp(2rem, 4.6vw, 3.05rem);
  font-weight: 600;
  line-height: 1.14;
  color: var(--dilsa-charcoal);
  max-width: 22ch;
}

.about-hero__text {
  margin: 0;
  max-width: 38rem;
  font-size: 1.05rem;
  line-height: 1.65;
  color: var(--dilsa-muted);
}

.about-hero__actions {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 0.75rem;
  margin: 1.35rem 0 0;
}

.about-hero__cta:focus-visible {
  outline: 2px solid var(--dilsa-forest);
  outline-offset: 3px;
}

.about-hero__media {
  margin: 0;
  overflow: hidden;
  border-radius: var(--dilsa-radius);
  background: var(--dilsa-sand, #e8e2d8);
  aspect-ratio: 4 / 3;
}

.about-hero__image {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}

.about-company {
  padding: 2.5rem 0;
  background: var(--dilsa-white);
}

/* Uses shared .shell for 1520px alignment; do not override shell margins. */
.about-company__inner {
  text-align: left;
}

.about-company__heading {
  margin: 0 0 1rem;
  font-family: var(--dilsa-font-serif);
  font-size: clamp(1.85rem, 4vw, 2.45rem);
  font-weight: 600;
  line-height: 1.15;
  color: var(--dilsa-charcoal);
  text-align: left;
  max-width: none;
}

.about-offer__heading,
.about-dist__heading {
  margin: 0 0 1rem;
  font-family: var(--dilsa-font-serif);
  font-size: clamp(1.85rem, 4vw, 2.45rem);
  font-weight: 600;
  line-height: 1.15;
  color: var(--dilsa-charcoal);
}

/* Text-only: single readable column. With image: stack heading → image → copy. */
.about-company__layout {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1.25rem;
  align-items: start;
}

.about-company__body {
  max-width: 800px;
  width: 100%;
  text-align: left;
  min-width: 0;
}

.about-company--has-image .about-company__body {
  max-width: none;
}

.about-company--has-image .about-company__media {
  order: -1;
  margin: 0;
  width: 100%;
  max-width: 40rem;
}

.about-company__image {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 3 / 2;
  object-fit: contain;
  object-position: center center;
  background: var(--dilsa-sand, #e8e2d8);
  border-radius: var(--dilsa-radius);
}

.about-company__body p {
  margin: 0 0 1.25rem; /* 20px paragraph gaps */
  font-size: 1rem; /* ≥16px on mobile */
  line-height: 1.7;
  color: var(--dilsa-muted);
  text-align: left; /* never justify */
}

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

@media (min-width: 768px) {
  .about-company__body p {
    font-size: 1.05rem;
  }
}

/*
 * Wide desktop only: ~55% text / ~45% image inside shared .shell.
 * Tablet and below stay stacked so the two-column layout is never cramped.
 */
@media (min-width: 1100px) {
  .about-company--has-image .about-company__layout {
    grid-template-columns: minmax(0, 1.22fr) minmax(0, 1fr); /* ≈55% / 45% with gap */
    gap: 2rem 2.5rem;
    align-items: start;
  }

  .about-company--has-image .about-company__media {
    order: 0;
    max-width: none;
    /* Align media top with the opening paragraph (heading sits above the grid). */
    align-self: start;
  }

  .about-company--has-image .about-company__image {
    /* Natural 3:2 — never stretch to match text column height. */
    width: 100%;
    height: auto;
    max-height: none;
  }
}

.about-offer {
  padding: 2.5rem 0;
  background: var(--dilsa-ivory);
}

.about-offer__grid {
  list-style: none;
  margin: 1.35rem 0 0;
  padding: 0;
  display: grid;
  grid-template-columns: 1fr;
  gap: 1.15rem;
  align-items: stretch;
}

.about-offer__item {
  display: flex;
  min-height: 0;
}

.about-offer__card {
  display: flex;
  flex-direction: column;
  width: 100%;
  height: 100%;
  padding: 0;
  overflow: hidden;
  background: var(--dilsa-white);
  border: 1px solid rgba(40, 68, 56, 0.1);
  border-radius: var(--dilsa-radius);
}

.about-offer__card--linked {
  position: relative;
  transition: border-color var(--dilsa-transition, 0.2s ease);
}

.about-offer__card-link {
  position: absolute;
  inset: 0;
  z-index: 1;
  border-radius: inherit;
  text-decoration: none;
}

.about-offer__card--linked:hover,
.about-offer__card--linked:focus-within {
  border-color: rgba(40, 68, 56, 0.28);
}

.about-offer__card-link:focus-visible {
  outline: 2px solid var(--dilsa-forest);
  outline-offset: 3px;
}

.about-offer__media {
  flex-shrink: 0;
  aspect-ratio: 3 / 2;
  overflow: hidden;
  margin: 0;
  background: var(--dilsa-sand, #e8e2d8);
}

.about-offer__image {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 42%;
}

.about-offer__body {
  display: flex;
  flex-direction: column;
  flex: 1 1 auto;
  padding: 1.15rem 1.2rem 1.3rem;
}

.about-offer__title {
  display: block;
  margin: 0 0 0.45rem;
  font-family: var(--dilsa-font-serif);
  font-size: 1.35rem;
  font-weight: 600;
  color: var(--dilsa-forest);
}

.about-offer__desc {
  margin: 0;
  font-size: 0.98rem;
  line-height: 1.55;
  color: var(--dilsa-muted);
}

.about-dist {
  padding: 2.5rem 0 3rem;
  background: var(--dilsa-white);
}

.about-dist__inner {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1rem 2.5rem;
  align-items: start;
  max-width: none;
}

.about-dist__content {
  min-width: 0;
}

.about-dist__text {
  margin: 0;
  font-size: 1.05rem;
  line-height: 1.7;
  color: var(--dilsa-muted);
}

.about-dist__actions {
  margin: 1.25rem 0 0;
}

.about-dist__cta:focus-visible {
  outline: 2px solid var(--dilsa-forest);
  outline-offset: 3px;
}

.about-dist__cta--whatsapp {
  background: #128c7e;
  border-color: transparent;
  color: var(--dilsa-white);
}

.about-dist__cta--whatsapp:hover,
.about-dist__cta--whatsapp:focus-visible {
  background: #0e7368;
  color: var(--dilsa-white);
}

@media (min-width: 600px) {
  .about-hero__actions {
    flex-direction: row;
    flex-wrap: wrap;
    align-items: center;
  }
}

@media (min-width: 768px) {
  .about-offer__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1.25rem;
  }
}

@media (min-width: 1100px) {
  .about-offer__grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
}

@media (min-width: 900px) {
  .about-hero,
  .about-hero--has-image {
    padding: 2.75rem 0 3rem;
  }

  .about-hero__inner {
    grid-template-columns: minmax(0, 1.15fr) minmax(0, 0.95fr);
    gap: 2.75rem 3rem;
  }

  .about-hero--has-image .about-hero__media {
    order: 0;
  }

  .about-hero__heading {
    max-width: 26ch;
  }

  .about-company,
  .about-offer {
    padding: 3rem 0;
  }

  .about-dist {
    padding: 3rem 0 3.5rem;
  }

  .about-dist__inner {
    grid-template-columns: minmax(0, 0.85fr) minmax(0, 1.15fr);
    gap: 2rem 3.5rem;
    align-items: start;
  }

  .about-dist__heading {
    margin-bottom: 0;
  }
}

/* ==========================================================================
   Contact Us page template
   ========================================================================== */

.site-main--contact {
  background: var(--dilsa-ivory);
  padding-top: 0;
}

.contact-page {
  padding: 2rem 0 2.75rem;
}

.contact-page__header {
  margin: 0 0 1.75rem;
  max-width: 44rem;
}

.contact-page__heading {
  margin: 0 0 0.85rem;
  font-family: var(--dilsa-font-serif);
  font-size: clamp(2rem, 4.6vw, 3.05rem);
  font-weight: 600;
  line-height: 1.14;
  color: var(--dilsa-charcoal);
}

.contact-page__intro {
  margin: 0;
  font-size: 1.05rem;
  line-height: 1.65;
  color: var(--dilsa-muted);
}

.contact-page__layout {
  display: grid;
  grid-template-columns: 1fr;
  gap: 2rem;
  align-items: start;
}

.contact-page__details,
.contact-page__form {
  background: var(--dilsa-white);
  padding: 1.35rem 1.25rem 1.5rem;
  border-radius: var(--dilsa-radius);
}

.contact-page__details-heading,
.contact-page__form-heading {
  margin: 0 0 1rem;
  font-family: var(--dilsa-font-serif);
  font-size: clamp(1.45rem, 3vw, 1.85rem);
  font-weight: 600;
  line-height: 1.2;
  color: var(--dilsa-charcoal);
}

.contact-page__list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 1rem;
}

.contact-page__label {
  display: block;
  margin: 0 0 0.2rem;
  font-size: 0.8rem;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--dilsa-forest);
}

.contact-page__value {
  display: block;
  font-size: 1.02rem;
  line-height: 1.5;
  color: var(--dilsa-charcoal);
}

.contact-page__value a {
  color: var(--dilsa-forest);
  text-decoration: underline;
  text-underline-offset: 0.12em;
}

.contact-page__value a:hover,
.contact-page__value a:focus-visible {
  color: var(--dilsa-forest-deep);
}

.contact-page__value a:focus-visible {
  outline: 2px solid var(--dilsa-forest);
  outline-offset: 3px;
}

.contact-page__whatsapp-wrap {
  margin: 1.35rem 0 0;
}

.contact-page__whatsapp.button,
a.contact-page__whatsapp {
  --dilsa-wa: #128c7e;
  --dilsa-wa-deep: #0e7368;
  appearance: none;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  min-height: 2.75rem;
  padding: 0.7rem 1.25rem;
  border: 1px solid transparent;
  border-radius: var(--dilsa-radius);
  background: var(--dilsa-wa);
  color: var(--dilsa-white);
  font-family: var(--dilsa-font-sans);
  font-size: 0.95rem;
  font-weight: 500;
  text-decoration: none;
  cursor: pointer;
}

.contact-page__whatsapp.button:hover,
.contact-page__whatsapp.button:focus-visible,
a.contact-page__whatsapp:hover,
a.contact-page__whatsapp:focus-visible {
  background: var(--dilsa-wa-deep);
  color: var(--dilsa-white);
  border-color: transparent;
}

.contact-page__whatsapp.button:focus-visible,
a.contact-page__whatsapp:focus-visible {
  outline: 2px solid var(--dilsa-wa);
  outline-offset: 3px;
}

.contact-page__whatsapp-icon {
  display: inline-flex;
  flex-shrink: 0;
}

.contact-page__whatsapp-icon svg {
  display: block;
}

.contact-page__map {
  margin: 1rem 0 0;
}

.contact-page__map-link {
  color: var(--dilsa-forest);
  font-weight: 500;
  text-decoration: underline;
  text-underline-offset: 0.12em;
}

.contact-page__map-link:focus-visible {
  outline: 2px solid var(--dilsa-forest);
  outline-offset: 3px;
}

.contact-page__form-fallback {
  margin: 0;
  color: var(--dilsa-muted);
  line-height: 1.6;
}

@media (min-width: 900px) {
  .contact-page {
    padding: 2.75rem 0 3.5rem;
  }

  .contact-page__layout {
    grid-template-columns: minmax(0, 0.95fr) minmax(0, 1.2fr);
    gap: 2rem 2.5rem;
  }

  .contact-page__details,
  .contact-page__form {
    padding: 1.6rem 1.5rem 1.75rem;
  }
}

/* ==========================================================================
   Privacy Policy page (scoped to designated WP Privacy Policy page only)
   ========================================================================== */

.site-main--privacy {
  background: var(--dilsa-ivory);
  padding-top: 0;
}

/*
 * Shared .shell width stays; privacy adds page padding.
 * Mobile: 28px vertical, 20px side gutters (full-bleed shell + padding).
 * Desktop (≥900px): 48px vertical; horizontal inset from shared shell gutters.
 */
.shell--privacy {
  box-sizing: border-box;
  padding-block: 28px;
}

@media (max-width: 899px) {
  .shell--privacy {
    width: 100%;
    max-width: 100%;
    padding-inline: 20px;
  }
}

@media (min-width: 900px) {
  .shell--privacy {
    padding-block: 48px;
  }
}

/* Centred ~850px article; all copy left-aligned to one content edge. */
.content-block--privacy {
  max-width: 850px;
  width: 100%;
  margin-inline: auto;
  margin-block: 0;
  text-align: left;
}

.content-block--privacy .content-block__header {
  margin: 0 0 12px;
  text-align: left;
}

.content-block--privacy .content-block__title {
  margin: 0;
  text-align: left;
  font-family: var(--dilsa-font-serif);
  font-size: clamp(1.75rem, 4vw, 2.25rem);
  font-weight: 600;
  line-height: 1.2;
  color: var(--dilsa-charcoal);
}

.privacy-policy-body {
  margin: 0;
  max-width: none;
  text-align: left;
  color: var(--dilsa-charcoal);
  font-size: 16px;
  line-height: 1.75;
  overflow-wrap: anywhere;
  word-wrap: break-word;
}

.privacy-policy-body > *:first-child {
  margin-top: 0;
}

.privacy-policy-body h2 {
  margin: 32px 0 12px;
  font-family: var(--dilsa-font-serif);
  font-size: 21px;
  font-weight: 600;
  line-height: 1.3;
  color: var(--dilsa-charcoal);
  text-align: left;
}

@media (min-width: 900px) {
  .privacy-policy-body h2 {
    font-size: 24px;
  }
}

/* No H3 in seed; if editors add H3 later, keep it under H2 without looking like H2. */
.privacy-policy-body h3 {
  margin: 24px 0 12px;
  font-family: var(--dilsa-font-serif);
  font-size: 18px;
  font-weight: 600;
  line-height: 1.35;
  color: var(--dilsa-charcoal);
  text-align: left;
}

.privacy-policy-body p {
  margin: 0 0 16px;
  text-align: left;
}

/* Secondary “Last updated” — after general p rules so spacing wins. */
.privacy-policy-body .privacy-policy-updated,
.privacy-policy-body > p:first-child {
  margin: 0 0 24px;
  font-size: 0.9375rem;
  line-height: 1.6;
  color: var(--dilsa-muted);
  font-weight: 400;
}

.privacy-policy-body .privacy-policy-updated strong,
.privacy-policy-body > p:first-child strong {
  font-weight: 500;
  color: var(--dilsa-muted);
}

.privacy-policy-body ul,
.privacy-policy-body ol {
  margin: 0 0 16px;
  padding-left: 1.35rem;
  text-align: left;
  list-style-position: outside;
}

.privacy-policy-body ul {
  list-style-type: disc;
}

.privacy-policy-body ol {
  list-style-type: decimal;
}

.privacy-policy-body li {
  margin: 0 0 8px;
  padding-left: 0.15rem;
}

.privacy-policy-body li:last-child {
  margin-bottom: 0;
}

.privacy-policy-body a {
  color: var(--dilsa-forest);
  text-decoration: underline;
  text-underline-offset: 0.12em;
  overflow-wrap: anywhere;
  word-break: break-word;
}

.privacy-policy-body a:focus-visible {
  outline: 2px solid var(--dilsa-forest);
  outline-offset: 3px;
}

/* Temporary mattress launch mode. */
.dilsa-coming-soon-tag{display:inline-block;max-width:100%;padding:3px 7px;border-radius:20px;background:#f3e8cf;color:#59431b;font:600 10px/1.4 "Source Sans 3",sans-serif;letter-spacing:.03em;white-space:nowrap;vertical-align:middle}
.image-nav__link .dilsa-coming-soon-tag{margin-top:4px}
.dilsa-mattress-soon{padding-top:clamp(48px,8vw,110px);padding-bottom:clamp(48px,8vw,110px)}
.dilsa-mattress-soon__card{max-width:850px;margin:auto;padding:clamp(24px,6vw,72px);background:#f5f1e9;border:1px solid #e5ded2;border-radius:12px;text-align:center}
.dilsa-mattress-soon h1{font-size:clamp(36px,5vw,64px);line-height:1.12;margin:22px 0}
.dilsa-mattress-soon p{max-width:590px;margin:0 auto;line-height:1.75;font-size:17px}
.dilsa-mattress-soon__actions{display:flex;justify-content:center;gap:14px;flex-wrap:wrap;margin-top:28px}
.dilsa-mattress-soon__actions a{padding:12px 22px;background:#283d32;color:#fff;text-decoration:none;border-radius:4px}
@media(max-width:480px){.dilsa-mattress-soon__actions{flex-direction:column}.dilsa-mattress-soon__actions a{width:100%}}
