/* Presentation only. Saved background colours, banner appearance, section order,
   responsive grids and all commerce controls retain their existing contracts. */
body[data-theme-layout]:not(.admin-root) {
  --nature-forest: #204c36;
  --nature-sage: #edf2e9;
  --nature-paper: #fffef9;
  --nature-line: #dce3d7;
  --ui-bg: var(--store-page-bg, #f7f6f1);
  --ui-text: #263a2d;
  --ui-heading: #204c36;
  --ui-muted: #617064;
  --ui-subtle: #6e7c70;
  --ui-link: #2c6243;
  --ui-accent: #2c6243;
  --ui-accent-hover: #204c36;
  --ui-surface-1: #fffef9;
  --ui-surface-2: #f5f5ef;
  --ui-surface-3: #edf2e9;
  --ui-surface-elevated: #fffef9;
  --ui-border: #dce3d7;
  --ui-border-strong: #c4d0be;
  --ui-control-placeholder: #727c71;
  --ui-button-bg: #204c36;
  --ui-button-hover: #2c6243;
  --ui-announcement-bg: #204c36;
  --ui-announcement-text: #fffef9;
  --ui-announcement-border: #204c36;
  --ui-footer-bg: #edf2e9;
  --ui-footer-text: #405846;
  --ui-footer-heading: #204c36;
  --ui-footer-link: #2c6243;
  --ui-footer-border: #ccd8c6;
  --ui-shadow-sm: 0 3px 14px #204c3607;
  --ui-shadow-md: 0 12px 30px #204c3610;
  --ui-shadow-lg: 0 24px 64px #204c361c;
  --app-primary: #2c6243;
  --app-primary-dark: #204c36;
  --app-primary-soft: #edf2e9;
  --app-text: #263a2d;
  --app-muted: #617064;
  --app-border: #dce3d7;
  --header-link-text: #204c36;
  --header-active-bg: #edf2e9;
  --header-active-text: #204c36;
  background: var(--store-page-bg, #f7f6f1) !important;
  color: var(--ui-text);
}

/* Every route uses the administrator's navigation colour and glass settings. */
body[data-theme-layout]:not(.admin-root) .theme-universal-header {
  background: var(--store-nav-bg, #fffef9) !important;
  color: var(--nature-forest) !important;
  border-bottom: 1px solid var(--nature-line) !important;
  box-shadow: 0 2px 12px #204c3605 !important;
  backdrop-filter: none !important;
}
body.storefront-theme-glass[data-theme-layout]:not(.admin-root) .theme-universal-header {
  background: color-mix(in srgb, var(--store-nav-bg, #fffef9) var(--store-nav-opacity, 75%), transparent) !important;
  backdrop-filter: blur(var(--store-nav-blur, 7px)) !important;
}
body[data-theme-layout]:not(.admin-root) .theme-u-search {
  border-color: var(--nature-line) !important;
  box-shadow: none !important;
}
body[data-theme-layout]:not(.admin-root) :is(.theme-u-nav-link, .theme-u-account, .theme-u-cart):hover {
  background: var(--nature-sage) !important;
}
body[data-theme-layout]:not(.admin-root) :is(.theme-u-search button, .theme-u-search-submit) {
  background: var(--nature-forest) !important;
  color: #fff !important;
}

/* Calm editorial headings, with familiar sans-serif text for product names. */
body[data-theme-layout]:not(.admin-root) :is(.catalog-toolbar h1, .catalog-toolbar h2, .checkout-hero h1, .section-head h2) {
  font-family: Georgia, "Times New Roman", serif !important;
  font-weight: 500 !important;
  letter-spacing: -.025em;
  line-height: 1.2;
  color: var(--nature-forest) !important;
}
body[data-theme-layout]:not(.admin-root) :is(.product-detail-page h1, .theme-product-detail__summary h1) {
  font-size: clamp(26px, 2.5vw, 40px) !important;
  line-height: 1.2 !important;
  letter-spacing: -.025em;
  overflow-wrap: anywhere;
}
body[data-theme-layout]:not(.admin-root) :is(.catalog-toolbar, .catalog-rail-card, .store-block, .product-description-panel, .review-compose, .review-row) {
  border-color: var(--nature-line) !important;
  box-shadow: none !important;
}

/* Product imagery gets a quiet backdrop without recolouring the photographs. */
body[data-theme-layout]:not(.admin-root) :is(.product-card, .designer-product-card) {
  border: 1px solid var(--nature-line) !important;
  border-radius: 16px !important;
  background: var(--nature-paper) !important;
  box-shadow: none !important;
  overflow: hidden;
  transition: border-color 180ms ease, box-shadow 180ms ease;
}
body[data-theme-layout]:not(.admin-root) :is(.product-image, .designer-product-media, .detail-image-shell) {
  background: #f5f5ef !important;
}
body[data-theme-layout]:not(.admin-root) :is(.product-title, .designer-product-copy strong) {
  color: var(--ui-text) !important;
  line-height: 1.45 !important;
}
body[data-theme-layout]:not(.admin-root) :is(.product-card-btn, .product-detail-cart-button, .designer-product-cart-button) {
  background: var(--nature-forest) !important;
  border-color: var(--nature-forest) !important;
  color: #fff !important;
  border-radius: 9px !important;
  box-shadow: none !important;
  min-height: 44px;
}
body[data-theme-layout]:not(.admin-root) :is(.product-card-btn, .product-detail-cart-button, .designer-product-cart-button):hover {
  background: #2c6243 !important;
  border-color: #2c6243 !important;
}
body[data-theme-layout]:not(.admin-root) :is(.product-price-current, .product-meta > strong, .checkout-product-subtotal) {
  color: var(--nature-forest) !important;
  font-variant-numeric: tabular-nums;
}
body.store-page-shop-details[data-theme-layout]:not(.admin-root) .theme-product-detail__summary {
  padding: clamp(20px, 3vw, 40px) !important;
  border: 1px solid var(--nature-line) !important;
  border-radius: 18px !important;
  box-shadow: none !important;
}
body.store-page-shop-details[data-theme-layout]:not(.admin-root) .product-sale-card {
  background: var(--nature-sage) !important;
  border-color: var(--nature-line) !important;
  box-shadow: none !important;
}
body.store-page-shop-details[data-theme-layout]:not(.admin-root) .product-meta-item {
  background: #f5f5ef !important;
  border-color: var(--nature-line) !important;
}
body.store-page-shop-details[data-theme-layout]:not(.admin-root) .product-short-description {
  font-size: 16px !important;
  line-height: 1.75 !important;
  font-weight: 400;
  color: var(--ui-muted) !important;
}
body.store-page-shop-details[data-theme-layout]:not(.admin-root) .product-thumb-button.active {
  border-color: #709266 !important;
  box-shadow: 0 0 0 2px #70926620 !important;
}
body[data-theme-layout]:not(.admin-root) :is(.managed-poll-heading > span, .checkout-trust-list > div > span) {
  background: var(--nature-sage) !important;
  color: var(--nature-forest) !important;
}
body[data-theme-layout]:not(.admin-root) :is(.managed-poll-heading h3, .checkout-side-title h2) { color: var(--nature-forest) !important; }
body[data-theme-layout]:not(.admin-root) :is(.managed-poll-heading p, .managed-poll-total) { color: var(--ui-muted) !important; }
body[data-theme-layout]:not(.admin-root) :is(.managed-poll-option i, .poll-result-bar) { background: #e4eadd !important; }
body[data-theme-layout]:not(.admin-root) :is(.managed-poll-option em, .poll-result-bar span) { background: #709266 !important; }

/* The checkout retains the exact step, validation and submission behaviour. */
body.store-page-shop-cart[data-theme-layout]:not(.admin-root) .checkout-shell {
  background: transparent !important;
  box-shadow: none !important;
  border: 0 !important;
}
body.store-page-shop-cart[data-theme-layout]:not(.admin-root) :is(.checkout-panel, .checkout-side, .checkout-product-card) {
  background: var(--nature-paper) !important;
  border-color: var(--nature-line) !important;
  box-shadow: none !important;
}
body.store-page-shop-cart[data-theme-layout]:not(.admin-root) .checkout-side-panel {
  border: 1px solid var(--nature-line) !important;
  background: var(--nature-sage) !important;
  box-shadow: none !important;
}
body.store-page-shop-cart[data-theme-layout]:not(.admin-root) .checkout-hero {
  padding-bottom: 24px;
  border-bottom: 1px solid var(--nature-line);
  margin-bottom: 24px;
}
body.store-page-shop-cart[data-theme-layout]:not(.admin-root) .checkout-step {
  background: var(--nature-paper) !important;
  border-color: var(--nature-line) !important;
}
body.store-page-shop-cart[data-theme-layout]:not(.admin-root) :is(.cart-quantity-control, .cart-qty-step, .cart-quantity-control input, .cart-remove-button) {
  min-height: 44px !important;
  height: 44px !important;
}
body.store-page-shop-cart[data-theme-layout]:not(.admin-root) :is(.checkout-hero > div > p:not(.eyebrow), .checkout-panel-head p:not(.eyebrow)) {
  color: var(--ui-muted) !important;
}
body.store-page-shop-cart[data-theme-layout]:not(.admin-root) :is(.checkout-step.active, .checkout-step.is-active) {
  background: var(--nature-sage) !important;
  border-color: #8ea787 !important;
  color: var(--nature-forest) !important;
}
body.store-page-shop-cart[data-theme-layout]:not(.admin-root) .checkout-step.active > span {
  background: var(--nature-forest) !important;
  color: #fff !important;
}
body.store-page-shop-cart[data-theme-layout]:not(.admin-root) .checkout-product-table-head {
  background: var(--nature-sage) !important;
  color: #405846 !important;
}

/* Visual administration uses the same palette; names and submitted values stay intact. */
.admin-root :is(.appearance-admin-page, .content-hub-page) {
  --app-primary: #2c6243;
  --app-primary-dark: #204c36;
  --app-primary-soft: #edf2e9;
  --app-border: #dce3d7;
  --app-text: #263a2d;
  --app-muted: #617064;
}
.admin-root :is(.appearance-admin-page, .content-hub-page) .neo-panel {
  border-color: #dce3d7;
  box-shadow: none;
}
.admin-root .theme-preview-gray { background: var(--store-nav-bg, #fffef9); }
.admin-root .theme-preview :is(i, b) { background: #2c6243; }
.nature-design-note {
  display: flex;
  align-items: center;
  gap: 20px;
  padding: 20px 24px;
  margin-bottom: 20px;
  border: 1px solid #dce3d7;
  border-radius: 14px;
  background: #f5f7f0;
  color: #204c36;
}
.nature-design-note p { margin: 6px 0 0; color: #617064; font-size: 14px; line-height: 1.65; }
.nature-design-swatches { display: flex; flex: 0 0 auto; }
.nature-design-swatches i { width: 30px; height: 30px; border-radius: 50%; border: 2px solid white; background: #204c36; }
.nature-design-swatches i + i { margin-left: -8px; background: #91a783; }
.nature-design-swatches i:last-child { background: #e8e2d2; }
.admin-root .banner-text-editor { background: #fffef9; color: #263a2d; border-color: #dce3d7; }
.admin-root .banner-text-editor :is(.gsb-hero, .gsb-services) {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  align-items: center;
  gap: 24px;
  padding: clamp(20px, 3vw, 40px);
  background: #edf2e9;
  border-radius: 16px;
}
.admin-root .banner-text-editor :is(.gsb-hero, .gsb-services, .gsb-story) :is(h1, h2, h3) {
  font-family: Georgia, "Times New Roman", serif;
  font-weight: 500;
  line-height: 1.2;
  color: #204c36;
}
.admin-root .banner-text-editor .gsb-hero > img { width: 100%; max-height: 360px; object-fit: contain; }
.admin-root .banner-text-editor .gsb-actions { display: flex; flex-wrap: wrap; gap: 20px; align-items: center; margin-top: 24px; }
.admin-root .banner-text-editor .gsb-button { display: inline-block; padding: 14px 24px; border-radius: 8px; background: #204c36; color: white; text-decoration: none; }
.admin-root .banner-text-editor .gsb-service-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.admin-root .banner-text-editor .gsb-service-grid > a { display: block; padding: 20px; border: 1px solid #dce3d7; border-radius: 12px; background: #fffef9; color: #204c36; text-decoration: none; }
.admin-root .banner-text-editor .gsb-story { padding: 32px; background: #f3f0e6; border-radius: 16px; text-align: center; }

@media (hover: hover) and (prefers-reduced-motion: no-preference) {
  body[data-theme-layout]:not(.admin-root) :is(.product-card, .designer-product-card):hover {
    border-color: #9bb092 !important;
    box-shadow: 0 8px 24px #204c360c !important;
  }
}
@media (min-width: 1100px) {
  body.store-page-shop-details[data-theme-layout]:not(.admin-root) .theme-product-detail__layout {
    grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr) !important;
    align-items: start;
    gap: clamp(24px, 3vw, 48px) !important;
  }
  body.store-page-shop-details[data-theme-layout]:not(.admin-root) .theme-product-detail__gallery .detail-image-shell {
    block-size: clamp(380px, 35vw, 580px);
  }
}
@media (max-width: 760px) {
  body[data-theme-layout]:not(.admin-root) :is(.catalog-toolbar h1, .catalog-toolbar h2, .checkout-hero h1) {
    font-size: clamp(26px, 7vw, 34px) !important;
  }
  body.store-page-shop-details[data-theme-layout]:not(.admin-root) .theme-product-detail__summary { padding: 20px 16px !important; }
  body.store-page-shop-cart[data-theme-layout]:not(.admin-root) .checkout-hero { padding-bottom: 16px; margin-bottom: 16px; }
  .nature-design-note { align-items: flex-start; padding: 16px; gap: 12px; }
  .admin-root .banner-text-editor :is(.gsb-hero, .gsb-services) { grid-template-columns: minmax(0, 1fr); }
}
@media (prefers-reduced-motion: reduce) {
  body[data-theme-layout]:not(.admin-root) :is(.product-card, .designer-product-card) { transition: none; }
}
