/* ==========================================================================
   Sadevo Retail
   Presentation layer. Every colour, size and radius reads from the tokens
   printed by inc/tokens.php. No raw values below except structural geometry.
   ========================================================================== */

/* --------------------------------------------------------------- 1. Base */

.sadevo-theme body,
body.sadevo-theme {
  background: var(--sd-canvas);
  color: var(--sd-ink);
  font-family: var(--sd-f-body);
  font-size: var(--sd-fs-body);
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
}

.sadevo-theme h1, .sadevo-theme h2, .sadevo-theme h3,
.sadevo-theme .sd-display {
  font-family: var(--sd-f-display);
  font-weight: 400;
  line-height: 1.06;
  letter-spacing: -0.005em;
  color: var(--sd-ink);
}

.sadevo-theme a { color: inherit; text-decoration: none; }
.sadevo-theme p a:not(.sd-btn) { color: var(--sd-accent-deep); text-decoration: underline; text-underline-offset: 2px; }
.sadevo-theme p a:not(.sd-btn):hover { color: var(--sd-accent); }

.sadevo-theme *:focus-visible {
  outline: 2px solid var(--sd-accent);
  outline-offset: 2px;
  border-radius: var(--sd-r-sm);
}

.sd-wrap {
  width: 100%;
  max-width: var(--sd-wrap);
  margin-inline: auto;
  padding-inline: var(--sd-gutter);
}

.sd-section { padding-block: var(--sd-sec-pad); }
.sd-section--tight { padding-block: var(--sd-s7); }
.sd-section--surface { background: var(--sd-surface); }
.sd-section--paper { background: var(--sd-paper); }
.sd-section--dark { background: var(--sd-sage-deep); color: var(--sd-on-dark); }
.sd-section--dark h2, .sd-section--dark h3 { color: var(--sd-on-dark); }

.sd-i { display: block; flex: none; }
.sd-only-mobile { display: none; }

/* Neutralise Astra's page container on our own templates */
.sadevo-front #content .ast-container,
.sadevo-front #primary { max-width: none; width: 100%; padding: 0; margin: 0; }
.sadevo-front #content { padding: 0; }
.sadevo-theme .site-content > .ast-container { padding-inline: 0; }

/* Astra gives #primary a 4em top/bottom margin by default and only zeroes
   it out for the ast-separate-container skin (see astra-theme-css). This
   site uses ast-plain-container everywhere, so that margin was never
   cancelled outside the homepage fix above -- on the shop archive, category
   archives and single product pages (all carry .sadevo-shop) it stacked on
   top of the intentional .sadevo-shop .site-content padding-block, doubling
   the space above the breadcrumb/title and again above the footer.
   !important is needed here: Astra's own single-post override
   (.ast-plain-container.ast-single-post #primary, which single product
   pages also match) is more specific than a plain .sadevo-shop #primary
   rule and would otherwise win. */
.sadevo-shop #primary { margin-top: 0 !important; margin-bottom: 0 !important; }

/* ------------------------------------------------------------ 2. Buttons */

.sd-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--sd-s2);
  padding: 14px 28px;
  border: 1px solid transparent;
  border-radius: var(--sd-r-pill);
  background: var(--sd-accent);
  color: var(--sd-on-dark);
  font-family: var(--sd-f-body);
  font-size: var(--sd-fs-body);
  font-weight: 600;
  line-height: 1;
  cursor: pointer;
  transition: background-color .18s ease, color .18s ease, border-color .18s ease, transform .12s ease;
}
.sd-btn:hover { background: var(--sd-accent-deep); color: var(--sd-on-dark); }
.sd-btn:active { transform: translateY(1px); }
.sd-btn--ghost { background: transparent; color: var(--sd-ink); border-color: var(--sd-ink); }
.sd-btn--ghost:hover { background: var(--sd-ink); color: var(--sd-on-dark); }
.sd-btn--onDark { background: var(--sd-on-dark); color: var(--sd-ink); }
.sd-btn--onDark:hover { background: var(--sd-accent-mid); color: var(--sd-ink); }
.sd-btn--sm { padding: 10px 18px; font-size: var(--sd-fs-small); }
.sd-btn--block { width: 100%; }

/* WooCommerce buttons inherit the same shape */
.sadevo-theme .woocommerce a.button,
.sadevo-theme .woocommerce button.button,
.sadevo-theme .woocommerce input.button,
.sadevo-theme .woocommerce #respond input#submit,
.sadevo-theme .woocommerce .button.alt {
  background: var(--sd-accent);
  color: var(--sd-on-dark);
  border-radius: var(--sd-r-pill);
  font-family: var(--sd-f-body);
  font-weight: 600;
  padding: 13px 26px;
  border: 1px solid transparent;
  transition: background-color .18s ease;
}
.sadevo-theme .woocommerce a.button:hover,
.sadevo-theme .woocommerce button.button:hover,
.sadevo-theme .woocommerce .button.alt:hover { background: var(--sd-accent-deep); color: var(--sd-on-dark); }

/* Add-to-cart buttons (loop + single product): scoped to body.sadevo-theme directly,
   not '.sadevo-theme .woocommerce ...', because some templates (e.g. single product)
   don't wrap the button in a nested .woocommerce div, which was silently letting
   Astra's global button color win instead of the brand accent. */
.sadevo-theme .add_to_cart_button,
.sadevo-theme .single_add_to_cart_button {
  background: var(--sd-accent) !important;
  color: var(--sd-on-dark) !important;
}
.sadevo-theme .add_to_cart_button:hover,
.sadevo-theme .single_add_to_cart_button:hover {
  background: var(--sd-accent-deep) !important;
  color: var(--sd-on-dark) !important;
}

.sd-iconbtn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  position: relative;
  width: 42px; height: 42px;
  border: 0;
  border-radius: var(--sd-r-pill);
  background: transparent;
  color: var(--sd-ink);
  cursor: pointer;
  transition: background-color .16s ease, color .16s ease;
}
.sd-iconbtn:hover { background: var(--sd-paper-2); color: var(--sd-accent-deep); }

/* --------------------------------------------------------- 3. Demo notice */

.sd-demobar {
  background: var(--sd-sage-deep);
  color: var(--sd-on-dark);
  font-size: var(--sd-fs-tiny);
  letter-spacing: .01em;
}
.sd-demobar__in { display: flex; align-items: flex-start; gap: var(--sd-s2); padding-block: 9px; }
.sd-demobar p { margin: 0; line-height: 1.45; }
.sd-demobar strong { color: var(--sd-sage-soft); }
.sd-demobar .sd-i { margin-top: 1px; opacity: .8; }

/* ------------------------------------------------------- 4. Announcement */

.sd-announce {
  background: var(--sd-accent-deep);
  color: var(--sd-on-dark);
}
.sd-announce__in {
  position: relative;
  max-width: var(--sd-wrap);
  margin-inline: auto;
  padding: 10px var(--sd-s7) 10px var(--sd-gutter);
  display: flex; align-items: center; justify-content: center;
}
.sd-announce p {
  margin: 0;
  font-size: var(--sd-fs-small);
  letter-spacing: .04em;
  text-align: center;
}
.sd-announce a { text-decoration: underline; text-underline-offset: 3px; margin-left: var(--sd-s2); font-weight: 600; }
.sd-announce__x {
  position: absolute; right: 12px; top: 50%; transform: translateY(-50%);
  display: inline-flex; align-items: center; justify-content: center;
  width: 30px; height: 30px;
  border: 0; border-radius: var(--sd-r-pill);
  background: transparent; color: inherit; opacity: .7; cursor: pointer;
}
.sd-announce__x:hover { opacity: 1; background: rgba(249,244,237,.14); }

/* ------------------------------------------------------------- 5. Header */

.sd-header {
  position: sticky; top: 0; z-index: 60;
  background: var(--sd-canvas);
  border-bottom: 1px solid var(--sd-line);
  transition: transform .25s ease;
}
@media screen and (min-width: 783px) {
  body.admin-bar .sd-header { top: 32px; }
}
/* Below 783px, WP core makes #wpadminbar position:absolute (it scrolls away instead of staying fixed), so the sticky header needs no offset on mobile — it uses the base top:0 rule. */
.sd-header.sd-header--hidden { transform: translateY(-100%); }

.sd-topstrip { border-bottom: 1px solid var(--sd-line); }
.sd-topstrip__in { display: flex; align-items: center; justify-content: space-between; height: 34px; }
.sd-topstrip__nav { display: flex; gap: var(--sd-s5); }
.sd-topstrip__nav a {
  font-size: var(--sd-fs-tiny);
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--sd-ink-3);
  font-weight: 600;
  transition: color .16s ease;
}
.sd-topstrip__nav a:hover { color: var(--sd-accent-deep); }

.sd-headmain__in {
  display: flex; align-items: center; gap: var(--sd-s5);
  height: 84px;
  transition: height .2s ease;
}
.sd-header.is-stuck .sd-headmain__in { height: 68px; }
.sd-header.is-stuck .sd-topstrip { display: none; }

.sd-logo { flex: none; display: flex; flex-direction: column; align-items: flex-start; justify-content: center; gap: 4px; }
.sd-logo img { display: block; width: auto; height: 40px; transition: height .2s ease; }
.sd-header.is-stuck .sd-logo img { height: 32px; }
.sd-logo__text { font-family: var(--sd-f-display); font-size: var(--sd-fs-h3); }
.sd-logo__tagline { font-family: var(--sd-f-body); font-size: 13px; font-weight: 700; font-style: normal; letter-spacing: .01em; color: var(--sd-accent-deep); line-height: 1; white-space: nowrap; margin-left: 46px; }
.sd-header.is-stuck .sd-logo__tagline { display: none; }

.sd-search {
  flex: 1 1 auto;
  max-width: 520px;
  margin-inline: auto;
  position: relative;
  display: flex; align-items: center; gap: var(--sd-s2);
  height: 46px;
  padding-inline: var(--sd-s4);
  background: var(--sd-paper);
  border: 1px solid var(--sd-line-2);
  border-radius: var(--sd-r-pill);
  transition: border-color .16s ease, box-shadow .16s ease;
}
.sd-search:focus-within { border-color: var(--sd-accent); }
.sd-search .sd-i { color: var(--sd-ink-3); }
.sd-search input[type="search"] {
  flex: 1; min-width: 0; height: 100%;
  border: 0; background: transparent; outline: none;
  font-family: var(--sd-f-body); font-size: var(--sd-fs-body); color: var(--sd-ink);
}
.sd-search input[type="search"]::placeholder { color: var(--sd-ink-3); }
.sd-search button[type="submit"] {
  flex: none; border: 0; background: transparent; cursor: pointer;
  font-family: var(--sd-f-body); font-size: var(--sd-fs-small); font-weight: 600;
  color: var(--sd-accent-deep); padding: 0 2px;
}
.sd-search button[type="submit"]:hover { text-decoration: underline; }

.sd-actions { flex: none; display: flex; align-items: center; gap: 2px; }

.sd-cartbtn__n {
  position: absolute; top: 4px; right: 2px;
  min-width: 18px; height: 18px; padding: 0 5px;
  display: inline-flex; align-items: center; justify-content: center;
  border-radius: var(--sd-r-pill);
  background: var(--sd-accent); color: var(--sd-on-dark);
  font-size: 10px; font-weight: 700; line-height: 1;
}
.sd-cartbtn__n.is-empty { display: none; }

.sd-searchpanel { border-top: 1px solid var(--sd-line); padding-block: var(--sd-s3); }
.sd-search--panel { max-width: none; margin: 0; }

/* -------------------------------------------------------- 6. Primary nav */

.sd-nav { border-top: 1px solid var(--sd-line); background: var(--sd-canvas); }
.sd-header.is-stuck .sd-nav { border-top-color: transparent; }
.sd-nav__in { display: flex; align-items: center; justify-content: space-between; gap: var(--sd-s5); }
.sd-nav__list { display: flex; align-items: center; gap: var(--sd-s5); list-style: none; margin: 0; padding: 0; }
.sd-nav__item { position: static; }
.sd-nav__link {
  display: inline-flex; align-items: center;
  height: 48px;
  font-size: 14px; font-weight: 600; letter-spacing: .01em;
  color: var(--sd-ink);
  border-bottom: 2px solid transparent;
  transition: color .16s ease, border-color .16s ease;
  white-space: nowrap;
}
.sd-nav__link:hover, .sd-nav__item:hover > .sd-nav__link { color: var(--sd-accent-deep); border-bottom-color: var(--sd-accent); }
.sd-nav__link--accent { color: var(--sd-accent-deep); }

.sd-mega {
  position: absolute; left: 0; right: 0; top: 100%;
  background: var(--sd-paper);
  border-top: 1px solid var(--sd-line);
  border-bottom: 1px solid var(--sd-line);
  opacity: 0; visibility: hidden; transform: translateY(-6px);
  transition: opacity .18s ease, transform .18s ease, visibility .18s;
  z-index: 5;
}
.sd-nav__item:hover > .sd-mega,
.sd-nav__item:focus-within > .sd-mega { opacity: 1; visibility: visible; transform: none; }
.sd-mega__in { padding-block: var(--sd-s6); display: flex; flex-direction: column; gap: var(--sd-s5); }
.sd-mega__cols { display: grid; grid-template-columns: repeat(4, 1fr); gap: var(--sd-s3) var(--sd-s5); }
.sd-mega__link { display: flex; align-items: baseline; gap: var(--sd-s2); font-size: var(--sd-fs-body); color: var(--sd-ink); }
.sd-mega__link span { font-size: var(--sd-fs-tiny); color: var(--sd-ink-3); }
.sd-mega__link:hover { color: var(--sd-accent-deep); }
.sd-mega__all { display: inline-flex; align-items: center; gap: var(--sd-s2); font-weight: 600; color: var(--sd-accent-deep); font-size: var(--sd-fs-small); }

/* ------------------------------------------------------- 7. Drawer / cart */

.sd-drawer, .sd-cart { position: fixed; inset: 0; z-index: 200; }
.sd-drawer[hidden], .sd-cart[hidden] { display: none; }
.sd-drawer__scrim, .sd-cart__scrim {
  position: absolute; inset: 0;
  background: rgba(32,30,29,.44);
  opacity: 0; transition: opacity .24s ease;
}
.sd-drawer.is-open .sd-drawer__scrim, .sd-cart.is-open .sd-cart__scrim { opacity: 1; }

.sd-drawer__panel, .sd-cart__panel {
  position: absolute; top: 0; bottom: 0;
  width: min(400px, 88vw);
  background: var(--sd-canvas);
  display: flex; flex-direction: column;
  transition: transform .26s cubic-bezier(.4,0,.2,1);
}
.sd-drawer__panel { left: 0; transform: translateX(-100%); }
.sd-cart__panel { right: 0; transform: translateX(100%); }
.sd-drawer.is-open .sd-drawer__panel, .sd-cart.is-open .sd-cart__panel { transform: none; }

.sd-drawer__top, .sd-cart__top {
  display: flex; align-items: center; justify-content: space-between;
  padding: var(--sd-s4) var(--sd-s5);
  border-bottom: 1px solid var(--sd-line);
}
.sd-drawer__title, .sd-cart__title { font-family: var(--sd-f-display); font-size: var(--sd-fs-h4); }
.sd-drawer__nav { display: flex; flex-direction: column; padding: var(--sd-s3) 0; }
.sd-drawer__nav a {
  display: flex; align-items: center; justify-content: space-between;
  padding: 13px var(--sd-s5);
  font-size: var(--sd-fs-lede); font-weight: 600;
}
.sd-drawer__nav a span { font-size: var(--sd-fs-tiny); color: var(--sd-ink-3); font-weight: 500; }
.sd-drawer__nav a:hover { background: var(--sd-paper-2); color: var(--sd-accent-deep); }
.sd-drawer__nav--quiet a { font-size: var(--sd-fs-body); font-weight: 500; color: var(--sd-ink-2); padding-block: 10px; }
.sd-drawer__sep { height: 1px; background: var(--sd-line); margin-inline: var(--sd-s5); }
.sd-drawer__panel, .sd-cart__panel { overflow-y: auto; }

.sd-cart__body { padding: var(--sd-s5); }
.sd-cart__body .woocommerce-mini-cart__empty-message { color: var(--sd-ink-2); }
.sd-cart__body ul.cart_list li { padding: var(--sd-s3) 0; border-bottom: 1px solid var(--sd-line); list-style: none; }

.sd-cart__body ul.cart_list li.woocommerce-mini-cart-item {
  position: relative;
  padding: var(--sd-s4) var(--sd-s6) var(--sd-s4) 0;
}
.sd-cart__body ul.cart_list li.woocommerce-mini-cart-item:first-child { padding-top: 0; }
.sd-cart__body ul.cart_list li.woocommerce-mini-cart-item:last-child { border-bottom: 0; padding-bottom: 0; }

.sd-cart__body ul.cart_list li.woocommerce-mini-cart-item > a:not(.remove) {
  display: flex;
  align-items: flex-start;
  gap: var(--sd-s4);
  color: var(--sd-ink);
  font-weight: 600;
  line-height: 1.35;
}
.sd-cart__body ul.cart_list li.woocommerce-mini-cart-item img {
  position: static !important;
  flex: none;
  width: 72px; height: 72px;
  object-fit: cover;
  border-radius: var(--sd-r-sm);
  border: 1px solid var(--sd-line);
}
.sd-cart__body ul.cart_list li.woocommerce-mini-cart-item .quantity {
  display: block;
  margin: 6px 0 0 calc(72px + var(--sd-s4));
  font-size: var(--sd-fs-small);
  font-weight: 500;
  color: var(--sd-ink-2);
}
.sd-cart__body ul.cart_list li.woocommerce-mini-cart-item .quantity .woocommerce-Price-amount {
  color: var(--sd-ink);
  font-weight: 600;
}
.sd-cart__body ul.cart_list li.woocommerce-mini-cart-item .remove_from_cart_button {
  position: absolute;
  top: var(--sd-s4);
  right: 0;
  width: 24px; height: 24px;
  display: inline-flex; align-items: center; justify-content: center;
  border-radius: var(--sd-r-pill);
  color: var(--sd-ink-3);
  background: transparent;
  transition: background-color .16s ease, color .16s ease;
}
.sd-cart__body ul.cart_list li.woocommerce-mini-cart-item .remove_from_cart_button:hover { background: var(--sd-paper-2); color: var(--sd-accent-deep); }

.sd-cart__body .woocommerce-mini-cart__total.total {
  display: flex; align-items: baseline; justify-content: space-between;
  margin-top: var(--sd-s5);
  padding-top: var(--sd-s4);
  border-top: 1px solid var(--sd-line);
  font-size: var(--sd-fs-lede);
}
.sd-cart__body .woocommerce-mini-cart__total.total .woocommerce-Price-amount {
  font-family: var(--sd-f-display);
  font-size: var(--sd-fs-h4);
  font-weight: 400;
}

.sd-cart__body .woocommerce-mini-cart__buttons { display: flex; flex-direction: column; gap: var(--sd-s2); margin-top: var(--sd-s5); }
.sd-cart__body .woocommerce-mini-cart__buttons a {
  width: 100%; text-align: center;
  padding: 15px 26px;
  border-radius: var(--sd-r-pill);
  border: 1px solid transparent;
  font-weight: 600;
  background: var(--sd-blue);
  color: var(--sd-ink) !important;
  transition: background-color .18s ease;
}
.sd-cart__body .woocommerce-mini-cart__buttons a:hover { background: var(--sd-blue-deep); color: var(--sd-ink) !important; }

.sd-cart__top { padding-top: var(--sd-s5); }

/* -------------------------------------------------------- 8. Product card */

.sd-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0,1fr));
  gap: var(--sd-s5) var(--sd-gap);
}
.sadevo-theme ul.products {
  display: grid;
  grid-template-columns: repeat(4, minmax(0,1fr));
  gap: var(--sd-s5) var(--sd-gap);
  margin: 0; padding: 0; list-style: none;
}
.sadevo-theme ul.products::before, .sadevo-theme ul.products::after { display: none; }
.sadevo-theme ul.products li.product { width: 100%; margin: 0; float: none; clear: none; }

.sd-card {
  display: flex; flex-direction: column; height: 100%;
  background: var(--sd-paper);
  border: 1px solid var(--sd-line);
  border-radius: var(--sd-r-md);
  overflow: hidden;
  transition: border-color .2s ease;
}
.sd-card:hover { border-color: var(--sd-line-2); }
.sd-card__media {
  position: relative; display: block;
  aspect-ratio: 1 / 1;
  background: var(--sd-paper-2);
  overflow: hidden;
}
.sd-card__media img {
  width: 100%; height: 100%; object-fit: cover; display: block;
  transition: transform .5s cubic-bezier(.2,.6,.2,1);
}
.sd-card:hover .sd-card__media img { transform: scale(1.035); }
.sd-card__flag {
  position: absolute; top: 10px; left: 10px;
  padding: 4px 10px;
  border-radius: var(--sd-r-pill);
  background: var(--sd-accent); color: var(--sd-on-dark);
  font-size: 10px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase;
}
.sd-card__flag--out { background: var(--sd-ink-3); }
.sd-card__body { display: flex; flex-direction: column; gap: 6px; padding: var(--sd-s4); flex: 1; }
.sd-card__brand {
  margin: 0;
  font-size: var(--sd-fs-tiny); font-weight: 700;
  letter-spacing: .1em; text-transform: uppercase;
  color: var(--sd-ink-3);
}
.sd-card__title { margin: 0; font-family: var(--sd-f-body); font-size: var(--sd-fs-body); font-weight: 600; line-height: 1.35; }
.sd-card__title a:hover { color: var(--sd-accent-deep); }
.sd-card__meta { margin-top: auto; padding-top: var(--sd-s2); }
.sd-card__price { font-size: var(--sd-fs-lede); font-weight: 700; color: var(--sd-ink); }
.sd-card__price del { color: var(--sd-ink-3); font-weight: 500; font-size: var(--sd-fs-small); margin-right: 6px; }
.sd-card__price ins { text-decoration: none; color: var(--sd-accent-deep); }
.sd-card__price-row { display: flex; align-items: baseline; gap: 8px; flex-wrap: wrap; }
.sd-card__price-discount { display: block; margin-top: 4px; font-size: var(--sd-fs-small); font-weight: 600; color: var(--sd-ink-2); }
.sd-card__cta { margin-top: var(--sd-s3); }
.sd-card__cta .button { width: 100%; text-align: center; }
.sd-card__cta .added_to_cart { display: none; }

/* ------------------------------------------------------------- 9. Rails */

.sd-rail { position: relative; overflow: hidden; }
.sd-rail__track {
  display: grid;
  grid-auto-flow: column;
  grid-auto-columns: minmax(190px, 1fr);
  gap: var(--sd-gap);
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  scroll-behavior: smooth;
  scrollbar-width: none;
  padding-bottom: 4px;
}
.sd-rail__track::-webkit-scrollbar { display: none; }
.sd-rail__track > * { scroll-snap-align: start; }
.sd-rail__track { cursor: grab; }
.sd-rail__track.is-dragging {
  cursor: grabbing;
  scroll-snap-type: none;
  scroll-behavior: auto;
  user-select: none;
  -webkit-user-select: none;
}
.sd-rail__track.is-dragging > * { pointer-events: none; }
.sd-rail__nav { display: flex; gap: var(--sd-s2); }
.sd-rail__btn {
  width: 40px; height: 40px;
  display: inline-flex; align-items: center; justify-content: center;
  border: 1px solid var(--sd-line-2); border-radius: var(--sd-r-pill);
  background: transparent; color: var(--sd-ink); cursor: pointer;
  transition: background-color .16s ease, border-color .16s ease, opacity .16s ease;
}
.sd-rail__btn:hover { background: var(--sd-ink); color: var(--sd-on-dark); border-color: var(--sd-ink); }
.sd-rail__btn[disabled] { opacity: .3; cursor: default; }
.sd-rail__btn[disabled]:hover { background: transparent; color: var(--sd-ink); border-color: var(--sd-line-2); }

.sd-tile {
  position: relative; display: block;
  border-radius: var(--sd-r-lg);
  overflow: hidden;
  aspect-ratio: 4 / 5;
  background: var(--sd-surface);
}
.sd-tile img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .6s cubic-bezier(.2,.6,.2,1); }
.sd-tile:hover img { transform: scale(1.05); }
.sd-tile__label {
  position: absolute; inset: auto 0 0 0;
  padding: var(--sd-s5) var(--sd-s4) var(--sd-s4);
  background: linear-gradient(to top, rgba(32,30,29,.72), rgba(32,30,29,0));
  color: var(--sd-on-dark);
  font-family: var(--sd-f-body);
  font-size: var(--sd-fs-body); font-weight: 700;
  letter-spacing: .02em;
}
.sd-tile__label small { display: block; font-weight: 500; font-size: var(--sd-fs-tiny); opacity: .82; margin-top: 2px; }

.sd-brandtile {
  display: flex; flex-direction: column; justify-content: space-between;
  min-height: 128px; padding: var(--sd-s4);
  background: var(--sd-paper);
  border: 1px solid var(--sd-line);
  border-radius: var(--sd-r-md);
  transition: border-color .18s ease, background-color .18s ease;
}
.sd-brandtile:hover { border-color: var(--sd-accent); background: var(--sd-accent-soft); }
.sd-brandtile__name { font-family: var(--sd-f-body); font-size: var(--sd-fs-lede); font-weight: 700; line-height: 1.2; }
.sd-brandtile__n { font-size: var(--sd-fs-tiny); color: var(--sd-ink-3); letter-spacing: .06em; text-transform: uppercase; }

.sd-featgrid {
  display: grid;
  grid-template-columns: repeat(5, minmax(0,1fr));
  gap: var(--sd-s5) var(--sd-gap);
}
.sd-featcard {
  display: flex; flex-direction: column;
  background: var(--sd-paper);
  border: 1px solid var(--sd-line);
  border-radius: var(--sd-r-lg);
  overflow: hidden;
  transition: border-color .18s ease, transform .18s ease, box-shadow .18s ease;
}
.sd-featcard:hover { border-color: var(--sd-accent); transform: translateY(-3px); box-shadow: 0 10px 26px rgba(32,30,29,.09); }
.sd-featcard__media {
  aspect-ratio: 4 / 3;
  display: flex; align-items: center; justify-content: center;
  padding: var(--sd-s5);
  background: var(--sd-surface);
}
.sd-featcard__media img { max-width: 80%; max-height: 52px; width: auto; height: auto; object-fit: contain; }
.sd-featcard__label {
  display: flex; align-items: center; justify-content: space-between; gap: var(--sd-s2);
  padding: var(--sd-s3) var(--sd-s4);
  border-top: 1px solid var(--sd-line);
}
.sd-featcard__name { font-family: var(--sd-f-body); font-size: var(--sd-fs-tiny); font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--sd-ink); }
.sd-featcard__n { font-size: var(--sd-fs-tiny); color: var(--sd-ink-3); white-space: nowrap; }

/* ------------------------------------------------------ 10. Section heads */

.sd-head { display: flex; align-items: flex-end; justify-content: space-between; gap: var(--sd-s5); margin-bottom: var(--sd-s6); }
.sd-head h2 { margin: 0; font-size: var(--sd-fs-h2); }
.sd-head p { margin: 6px 0 0; color: var(--sd-ink-2); font-size: var(--sd-fs-body); max-width: 56ch; }
.sd-head__end { display: flex; align-items: center; gap: var(--sd-s4); flex: none; }
.sd-head__more { font-size: var(--sd-fs-small); font-weight: 600; color: var(--sd-accent-deep); white-space: nowrap; }
.sd-head__more:hover { text-decoration: underline; }

/* ------------------------------------------------------------- 11. Hero */

.sd-hero { background: var(--sd-canvas); padding-block: var(--sd-s7) var(--sd-s8); }
.sd-hero__in { display: grid; grid-template-columns: minmax(0,0.92fr) minmax(0,1.08fr); gap: var(--sd-s8); align-items: center; }
.sd-hero__eyebrow {
  display: inline-flex; align-items: center; gap: var(--sd-s2);
  padding: 6px 14px; margin-bottom: var(--sd-s4);
  border: 1px solid var(--sd-line-2); border-radius: var(--sd-r-pill);
  font-size: var(--sd-fs-tiny); font-weight: 700; letter-spacing: .1em; text-transform: uppercase;
  color: var(--sd-ink-2);
}
.sd-hero h1 { margin: 0; font-size: var(--sd-fs-hero); line-height: 1.02; }
.sd-hero__lede { margin: var(--sd-s4) 0 0; font-size: var(--sd-fs-lede); color: var(--sd-ink-2); max-width: 46ch; }
.sd-hero__cta { display: flex; flex-wrap: wrap; gap: var(--sd-s3); margin-top: var(--sd-s6); }
.sd-hero__media { position: relative; }
.sd-hero__media img {
  width: 100%; height: auto; display: block;
  aspect-ratio: 16 / 11; object-fit: cover;
  border-radius: var(--sd-r-lg);
}
.sd-hero__badge {
  position: absolute; left: calc(var(--sd-s6) * -1); bottom: var(--sd-s6);
  display: flex; flex-direction: column; gap: 2px;
  padding: var(--sd-s4) var(--sd-s5);
  background: var(--sd-paper);
  border: 1px solid var(--sd-line);
  border-radius: var(--sd-r-md);
  max-width: 230px;
}
.sd-hero__badge strong { font-family: var(--sd-f-display); font-size: var(--sd-fs-h4); }
.sd-hero__badge span { font-size: var(--sd-fs-tiny); color: var(--sd-ink-2); line-height: 1.4; }

/* --------------------------------------------------------- 11b. Promo banner */

.sd-promo { padding-block: var(--sd-s7) var(--sd-s8); }
.sd-promo__frame { position: relative; border-radius: var(--sd-r-lg); overflow: hidden; }
.sd-promo__frame img {
  width: 100%; height: auto; display: block;
  aspect-ratio: 16 / 9; object-fit: cover;
}
.sd-promo__scrim {
  position: absolute; inset: 0;
  background: linear-gradient(90deg, rgba(0,0,0,.60) 0%, rgba(0,0,0,.25) 45%, rgba(0,0,0,0) 75%);
}
.sd-promo__copy {
  position: absolute; left: var(--sd-s7); top: 50%; transform: translateY(-50%);
  max-width: 420px; color: #fff;
}
.sd-promo__copy h1 {
  margin: 0 0 var(--sd-s5); color: #fff;
  font-size: var(--sd-fs-hero); line-height: 1.05;
}

@media (max-width: 1024px) {
  .sd-promo__frame img { aspect-ratio: 4 / 5; }
  .sd-promo__scrim { background: linear-gradient(180deg, rgba(0,0,0,.05) 40%, rgba(0,0,0,.65) 100%); }
  .sd-promo__copy { left: var(--sd-s5); right: var(--sd-s5); top: auto; bottom: var(--sd-s6); transform: none; max-width: none; }
}
/* ------------------------------------------------------- 12. Value strip */

.sd-values { display: grid; grid-template-columns: repeat(4, 1fr); gap: var(--sd-gap); }
.sd-value { display: flex; gap: var(--sd-s3); align-items: flex-start; }
.sd-value .sd-i { color: var(--sd-accent); margin-top: 2px; }
.sd-value h3 { margin: 0 0 2px; font-family: var(--sd-f-body); font-size: var(--sd-fs-body); font-weight: 700; }
.sd-value p { margin: 0; font-size: var(--sd-fs-small); color: var(--sd-ink-2); line-height: 1.5; }

/* ------------------------------------------------------------ 13. Empty */

.sd-empty {
  display: flex; flex-direction: column; align-items: center; gap: var(--sd-s3);
  padding: var(--sd-s8) var(--sd-s5);
  border: 1px dashed var(--sd-line-2);
  border-radius: var(--sd-r-lg);
  background: var(--sd-paper);
  text-align: center;
}
.sd-empty h3 { margin: 0; font-size: var(--sd-fs-h4); }
.sd-empty p { margin: 0; max-width: 46ch; color: var(--sd-ink-2); font-size: var(--sd-fs-small); }

/* ------------------------------------------------------------ 14. Footer */

.sd-foot { background: var(--sd-sage-deep); color: rgba(249,244,237,.78); margin-top: var(--sd-s8); }
.sd-foot h2, .sd-foot h3 { color: var(--sd-on-dark); }
.sd-foot a { color: rgba(249,244,237,.86); }
.sd-foot a:hover { color: var(--sd-on-dark); text-decoration: underline; text-underline-offset: 3px; }

.sd-foot__signup { border-bottom: 1px solid rgba(249,244,237,.14); }
.sd-foot__signup-in { display: grid; grid-template-columns: 1fr minmax(300px, 420px); gap: var(--sd-s6); align-items: center; padding-block: var(--sd-s7); }
.sd-foot__signup h2 { margin: 0; font-size: var(--sd-fs-h3); }
.sd-foot__signup p { margin: 6px 0 0; font-size: var(--sd-fs-small); }
.sd-foot__signup input[type="email"], .sd-foot__signup input[type="text"] {
  width: 100%; height: 48px; padding-inline: var(--sd-s4);
  background: rgba(249,244,237,.07);
  border: 1px solid rgba(249,244,237,.28);
  border-radius: var(--sd-r-pill);
  color: var(--sd-on-dark); font-family: var(--sd-f-body); font-size: var(--sd-fs-body);
}
.sd-foot__signup input::placeholder { color: rgba(249,244,237,.5); }
.sd-foot__signup button, .sd-foot__signup input[type="submit"] {
  height: 48px; padding-inline: 28px; border: 0;
  border-radius: var(--sd-r-pill);
  background: var(--sd-accent); color: var(--sd-on-dark);
  font-family: var(--sd-f-body); font-weight: 600; cursor: pointer;
}
.sd-foot__signup button:hover { background: var(--sd-accent-mid); color: var(--sd-ink); }
.sd-foot .wpforms-container { margin: 0; }
.sd-foot .wpforms-field { padding: 0 0 var(--sd-s2); }
.sd-foot .wpforms-field-label { color: rgba(249,244,237,.7); font-size: var(--sd-fs-tiny); }

.sd-foot__cols { display: grid; grid-template-columns: 1.6fr 1fr 1fr 1fr; gap: var(--sd-s6); padding-block: var(--sd-s7); }
.sd-foot__col h3 { margin: 0 0 var(--sd-s3); font-family: var(--sd-f-body); font-size: var(--sd-fs-tiny); font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: rgba(249,244,237,.6); }
.sd-foot__col ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 9px; }
.sd-foot__col li a { font-size: var(--sd-fs-small); }
.sd-foot__logo img { height: 56px; width: auto; filter: brightness(0) invert(1); }
.sd-foot__blurb { margin: var(--sd-s4) 0 var(--sd-s4); font-size: var(--sd-fs-small); max-width: 34ch; line-height: 1.6; }
.sd-foot__addr { font-style: normal; font-size: var(--sd-fs-small); line-height: 1.7; color: rgba(249,244,237,.66); }

.sd-foot__legal { border-top: 1px solid rgba(249,244,237,.14); padding-block: var(--sd-s5) var(--sd-s6); }
.sd-foot__legal-in { display: flex; align-items: center; justify-content: space-between; gap: var(--sd-s5); flex-wrap: wrap; }
.sd-foot__copy { margin: 0; font-size: var(--sd-fs-tiny); }
.sd-foot__legalnav { display: flex; gap: var(--sd-s5); }
.sd-foot__legalnav a { font-size: var(--sd-fs-tiny); }
.sd-foot__tm { margin: var(--sd-s4) 0 0; font-size: 10.5px; line-height: 1.6; color: rgba(249,244,237,.5); max-width: 92ch; }

/* -------------------------------------------------------- 15. Responsive */

@media (max-width: 1100px) {
  .sd-mega__cols { grid-template-columns: repeat(3, 1fr); }
  .sd-hero__badge { left: var(--sd-s4); }
}

@media (max-width: 1024px) {
  :root { --sd-gutter: 24px; --sd-sec-pad: 60px; }
  .sd-hero__in { grid-template-columns: 1fr; gap: var(--sd-s6); }
  .sd-hero__media { order: -1; }
  .sd-hero__badge { position: static; margin-top: var(--sd-s4); max-width: none; flex-direction: row; align-items: center; gap: var(--sd-s3); }
  .sadevo-theme ul.products, .sd-grid { grid-template-columns: repeat(3, minmax(0,1fr)); }
  .sd-featgrid { grid-template-columns: repeat(3, minmax(0,1fr)); }
  .sd-values { grid-template-columns: repeat(2, 1fr); gap: var(--sd-s5); }
  .sd-foot__cols { grid-template-columns: 1fr 1fr; }
  .sd-foot__signup-in { grid-template-columns: 1fr; }
}

@media (max-width: 860px) {
  .sd-only-mobile { display: inline-flex; }
  .sd-hide-sm { display: none; }
  .sd-topstrip { display: none; }
  .sd-nav { display: none; }
  .sd-headmain__in { height: 64px; gap: var(--sd-s3); }
  .sd-logo { margin-right: auto; }
  .sd-logo img { height: 32px; }
  .sd-headmain__in > .sd-search { display: none; }
  .sd-head { flex-direction: column; align-items: flex-start; gap: var(--sd-s3); margin-bottom: var(--sd-s5); }
  .sd-head h2 { font-size: var(--sd-fs-h3); }
  .sd-rail__track { grid-auto-columns: minmax(160px, 1fr); }
}

@media (max-width: 620px) {
  :root { --sd-gutter: 18px; --sd-sec-pad: 48px; }
  .sadevo-theme ul.products, .sd-grid { grid-template-columns: repeat(2, minmax(0,1fr)); gap: var(--sd-s4) 12px; }
  .sd-featgrid { grid-template-columns: repeat(2, minmax(0,1fr)); gap: var(--sd-s4) 12px; }
  .sd-card__body { padding: var(--sd-s3); }
  .sd-card__cta .button { padding: 11px 12px; font-size: var(--sd-fs-tiny); }
  .sd-values { grid-template-columns: 1fr; }
  .sd-foot__cols { grid-template-columns: 1fr; gap: var(--sd-s5); }
  .sd-foot__legal-in { flex-direction: column; align-items: flex-start; gap: var(--sd-s3); }
  .sd-foot__legalnav { flex-wrap: wrap; gap: var(--sd-s4); }
  .sd-announce p { font-size: var(--sd-fs-tiny); text-align: left; }
  .sd-announce__in { padding-right: 44px; }
  .sd-rail__track { grid-auto-columns: minmax(148px, 1fr); }
}

@media (prefers-reduced-motion: reduce) {
  .sadevo-theme *, .sadevo-theme *::before, .sadevo-theme *::after {
    animation-duration: .001ms !important;
    transition-duration: .001ms !important;
    scroll-behavior: auto !important;
  }
}

/* ------------------------------------------------- 16. Sourcing standard */

.sd-standard { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: var(--sd-s8); align-items: start; }
.sd-standard__copy h2 { margin: 0; font-size: var(--sd-fs-h2); }
.sd-standard__copy p { margin: var(--sd-s4) 0 var(--sd-s6); color: rgba(249,244,237,.78); max-width: 50ch; }
.sd-standard__list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; }
.sd-standard__list li {
  display: flex; align-items: flex-start; gap: var(--sd-s3);
  padding: var(--sd-s4) 0;
  border-top: 1px solid rgba(249,244,237,.16);
  font-size: var(--sd-fs-lede);
  line-height: 1.45;
  color: var(--sd-on-dark);
}
.sd-standard__list li:last-child { border-bottom: 1px solid rgba(249,244,237,.16); }
.sd-standard__list .sd-i { color: var(--sd-accent-mid); margin-top: 4px; }

/* Product rails need wider columns than tile rails */
.sd-rail__track--wide { grid-auto-columns: minmax(250px, 1fr); }

/* Shop archive toolbar */
.sd-shoptools {
  display: flex; align-items: center; justify-content: space-between; gap: var(--sd-s4);
  flex-wrap: wrap;
  padding-bottom: var(--sd-s5); margin-bottom: var(--sd-s5);
  border-bottom: 1px solid var(--sd-line);
}
.sadevo-theme .woocommerce-result-count { margin: 0; font-size: var(--sd-fs-small); color: var(--sd-ink-2); }
/* WooCommerce gives this form its own margin-bottom (and a float that does
   nothing inside our flex .sd-shoptools row); left unreset it inflated the
   toolbar's height and pushed the product grid down with no visible reason. */
.sadevo-theme .woocommerce-ordering { margin: 0; float: none; }
.sadevo-theme .woocommerce-ordering select {
  height: 42px; padding: 0 var(--sd-s4);
  border: 1px solid var(--sd-line-2); border-radius: var(--sd-r-pill);
  background: var(--sd-paper); color: var(--sd-ink);
  font-family: var(--sd-f-body); font-size: var(--sd-fs-small);
}

@media (max-width: 1024px) {
  .sd-standard { grid-template-columns: 1fr; gap: var(--sd-s6); }
  .sd-rail__track--wide { grid-auto-columns: minmax(230px, 1fr); }
}
@media (max-width: 620px) {
  .sd-standard__list li { font-size: var(--sd-fs-body); }
  .sd-rail__track--wide { grid-auto-columns: minmax(200px, 1fr); }
}


/* ------------------------------- 17. Astra shell reset (front page) */
.sadevo-front #content > .ast-container{display:block;max-width:none;width:100%;padding:0;margin:0;}
.sadevo-front #primary{display:block;width:100%;max-width:none;margin:0;padding:0;float:none;}
.sadevo-front .site-content{padding:0;}
.sadevo-front .entry-content,.sadevo-front .ast-article-single{padding:0;margin:0;max-width:none;}
.sadevo-front .site-main{width:100%;}
/* Woo archives keep Astra's shell but lose its narrow gutter doubling */
.sadevo-shop #content > .ast-container{max-width:var(--sd-wrap);padding-inline:var(--sd-gutter);}


/* ------------------------------------------- 18. Brand directory */
.sd-brandgrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--sd-gap);}
.sd-brandcard{display:flex;flex-direction:column;gap:6px;padding:var(--sd-s5);background:var(--sd-paper);border:1px solid var(--sd-line);border-radius:var(--sd-r-md);transition:border-color .18s ease,background-color .18s ease;}
.sd-brandcard:hover{border-color:var(--sd-accent);background:var(--sd-accent-soft);}
.sd-brandcard__name{font-size:var(--sd-fs-h4);font-family:var(--sd-f-body);font-weight:700;line-height:1.2;}
.sd-brandcard__desc{font-size:var(--sd-fs-small);color:var(--sd-ink-2);line-height:1.5;}
.sd-brandcard__n{margin-top:var(--sd-s2);font-size:var(--sd-fs-tiny);letter-spacing:.08em;text-transform:uppercase;color:var(--sd-ink-3);}
@media(max-width:1024px){.sd-brandgrid{grid-template-columns:repeat(2,minmax(0,1fr));}}
@media(max-width:620px){.sd-brandgrid{grid-template-columns:1fr;}}


/* ============================================ 19. Store pages */
.sadevo-shop .site-content{padding-block:var(--sd-s7) var(--sd-s8);}
.sadevo-theme .woocommerce-products-header{margin-bottom:var(--sd-s6);}
.sadevo-theme .woocommerce-products-header__title,.sadevo-theme .woocommerce-page h1.entry-title{font-family:var(--sd-f-display);font-size:var(--sd-fs-h2);margin:0 0 var(--sd-s2);}
.sadevo-theme .term-description{color:var(--sd-ink-2);max-width:62ch;font-size:var(--sd-fs-body);}
.sadevo-theme .woocommerce-breadcrumb{font-size:var(--sd-fs-tiny);letter-spacing:.06em;text-transform:uppercase;color:var(--sd-ink-3);margin-bottom:var(--sd-s4);}
.sadevo-theme .woocommerce-breadcrumb a{color:var(--sd-ink-3);}
.sadevo-theme .woocommerce-breadcrumb a:hover{color:var(--sd-accent-deep);}
.sadevo-theme nav.woocommerce-pagination ul{border:0;display:flex;gap:var(--sd-s2);justify-content:center;margin-top:var(--sd-s7);}
.sadevo-theme nav.woocommerce-pagination ul li{border:0;}
.sadevo-theme nav.woocommerce-pagination a,.sadevo-theme nav.woocommerce-pagination span{display:inline-flex;align-items:center;justify-content:center;min-width:42px;height:42px;border:1px solid var(--sd-line);border-radius:var(--sd-r-pill);background:var(--sd-paper);font-size:var(--sd-fs-small);font-weight:600;}
.sadevo-theme nav.woocommerce-pagination span.current{background:var(--sd-ink);color:var(--sd-on-dark);border-color:var(--sd-ink);}
/* Single product */
.sadevo-theme .single-product div.product{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:var(--sd-s8);align-items:start;}
.sadevo-theme .single-product div.product .woocommerce-product-gallery{width:100%;float:none;margin:0;}
.sadevo-theme .single-product div.product .woocommerce-product-gallery img{border-radius:var(--sd-r-lg);border:1px solid var(--sd-line);}
.sadevo-theme .single-product div.product .summary{width:100%;float:none;margin:0;}
.sadevo-theme .single-product .product_title{font-family:var(--sd-f-display);font-size:var(--sd-fs-h2);line-height:1.08;margin:0 0 var(--sd-s3);}
.sadevo-theme .single-product .summary .price{font-family:var(--sd-f-body);font-size:var(--sd-fs-h4);font-weight:700;color:var(--sd-ink);margin-bottom:var(--sd-s4);}
.sadevo-theme .single-product .summary .price del{color:var(--sd-ink-3);font-weight:500;margin-right:8px;}
.sadevo-theme .single-product .summary .price ins{text-decoration:none;color:var(--sd-accent-deep);}
.sadevo-theme .woocommerce-product-details__short-description{color:var(--sd-ink-2);font-size:var(--sd-fs-lede);line-height:1.6;margin-bottom:var(--sd-s5);}
.sadevo-theme .single-product form.cart{display:flex;gap:var(--sd-s3);align-items:center;flex-wrap:wrap;margin:var(--sd-s5) 0;}
.sadevo-theme .quantity input.qty{height:50px;width:80px;text-align:center;border:1px solid var(--sd-line-2);border-radius:var(--sd-r-pill);background:var(--sd-paper);font-family:var(--sd-f-body);}
.sadevo-theme .single-product form.cart .single_add_to_cart_button{height:50px;padding-inline:34px;}
.sadevo-theme .product_meta{font-size:var(--sd-fs-small);color:var(--sd-ink-2);border-top:1px solid var(--sd-line);padding-top:var(--sd-s4);margin-top:var(--sd-s5);display:flex;flex-direction:column;gap:6px;}
.sadevo-theme .woocommerce-tabs{grid-column:1 / -1;margin-top:var(--sd-s7);border-top:1px solid var(--sd-line);padding-top:var(--sd-s6);}
.sadevo-theme .woocommerce-tabs ul.tabs{list-style:none;margin:0 0 var(--sd-s5);padding:0;display:flex;gap:var(--sd-s5);border-bottom:1px solid var(--sd-line);}
.sadevo-theme .woocommerce-tabs ul.tabs::before{display:none;}
.sadevo-theme .woocommerce-tabs ul.tabs li{background:none;border:0;margin:0;padding:0;}
.sadevo-theme .woocommerce-tabs ul.tabs li a{display:block;padding:0 0 var(--sd-s3);font-weight:600;font-size:var(--sd-fs-body);color:var(--sd-ink-2);border-bottom:2px solid transparent;}
.sadevo-theme .woocommerce-tabs ul.tabs li.active a{color:var(--sd-ink);border-bottom-color:var(--sd-accent);}
.sadevo-theme .woocommerce-tabs .panel h2{font-size:var(--sd-fs-h4);}
.sadevo-theme .related.products{grid-column:1 / -1;margin-top:var(--sd-s8);}
.sadevo-theme .related.products > h2{font-family:var(--sd-f-display);font-size:var(--sd-fs-h3);margin-bottom:var(--sd-s5);}
/* Cart and checkout */
.sadevo-theme .woocommerce table.shop_table{border:1px solid var(--sd-line);border-radius:var(--sd-r-md);border-collapse:separate;overflow:hidden;background:var(--sd-paper);}
.sadevo-theme .woocommerce table.shop_table th{background:var(--sd-paper-2);font-family:var(--sd-f-body);font-size:var(--sd-fs-tiny);letter-spacing:.08em;text-transform:uppercase;color:var(--sd-ink-2);padding:var(--sd-s4);}
.sadevo-theme .woocommerce table.shop_table td{padding:var(--sd-s4);border-top:1px solid var(--sd-line);}
.sadevo-theme .woocommerce table.shop_table img{width:64px;border-radius:var(--sd-r-sm);border:1px solid var(--sd-line);}
.sadevo-theme .cart_totals h2,.sadevo-theme #order_review_heading,.sadevo-theme .woocommerce-billing-fields h3,.sadevo-theme .woocommerce-shipping-fields h3,.sadevo-theme .woocommerce-additional-fields h3{font-family:var(--sd-f-display);font-size:var(--sd-fs-h4);margin-bottom:var(--sd-s4);}
.sadevo-theme .woocommerce form .form-row label{font-size:var(--sd-fs-small);font-weight:600;color:var(--sd-ink-2);margin-bottom:5px;display:block;}
.sadevo-theme .woocommerce form .form-row input.input-text,.sadevo-theme .woocommerce form .form-row textarea,.sadevo-theme .woocommerce form .form-row .select2-selection,.sadevo-theme .woocommerce form .form-row select{width:100%;min-height:48px;padding:12px var(--sd-s4);border:1px solid var(--sd-line-2);border-radius:var(--sd-r-sm);background:var(--sd-paper);font-family:var(--sd-f-body);font-size:var(--sd-fs-body);color:var(--sd-ink);}
.sadevo-theme .woocommerce form .form-row input.input-text:focus,.sadevo-theme .woocommerce form .form-row select:focus{outline:2px solid var(--sd-accent);outline-offset:2px;border-color:var(--sd-accent);}
.sadevo-theme .select2-container--default .select2-selection--single{height:48px;border:1px solid var(--sd-line-2);border-radius:var(--sd-r-sm);background:var(--sd-paper);}
.sadevo-theme .select2-container--default .select2-selection--single .select2-selection__rendered{line-height:46px;padding-left:var(--sd-s4);color:var(--sd-ink);}
.sadevo-theme .select2-container--default .select2-selection--single .select2-selection__arrow{height:46px;}
@media(min-width:861px){.sadevo-theme .woocommerce-checkout form.checkout{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:var(--sd-s8);align-items:start;}
.sadevo-theme .woocommerce-checkout form.checkout #customer_details{grid-column:1;}
.sadevo-theme .woocommerce-checkout form.checkout #order_review_heading,.sadevo-theme .woocommerce-checkout form.checkout #order_review{grid-column:2;}
.sadevo-theme .woocommerce-checkout form.checkout .col2-set .col-1,.sadevo-theme .woocommerce-checkout form.checkout .col2-set .col-2{width:100%;float:none;}}
.sadevo-theme #order_review{background:var(--sd-paper);border:1px solid var(--sd-line);border-radius:var(--sd-r-md);padding:var(--sd-s5);position:sticky;top:120px;}
.sadevo-theme #payment{background:transparent;border-radius:0;}
.sadevo-theme #payment ul.payment_methods{border:0;padding:0;margin:0 0 var(--sd-s4);}
.sadevo-theme #payment div.form-row.place-order{padding:0;}
.sadevo-theme #place_order{width:100%;height:54px;font-size:var(--sd-fs-body);}
.sd-paybox{background:var(--sd-accent-soft);border:1px solid var(--sd-accent-mid);border-radius:var(--sd-r-sm);padding:var(--sd-s4);}
.sd-paybox__lead{margin:0 0 var(--sd-s2);font-weight:600;font-size:var(--sd-fs-small);color:var(--sd-accent-deep);}
.sd-paybox__list{margin:0;padding-left:18px;font-size:var(--sd-fs-tiny);color:var(--sd-ink-2);line-height:1.6;}
/* Notices */
.sadevo-theme .woocommerce-message,.sadevo-theme .woocommerce-info,.sadevo-theme .woocommerce-error{border-top:0;border-left:3px solid var(--sd-accent);background:var(--sd-paper);border-radius:var(--sd-r-sm);color:var(--sd-ink);font-size:var(--sd-fs-small);padding:var(--sd-s4) var(--sd-s5);}
.sadevo-theme .woocommerce-error{border-left-color:var(--sd-accent-deep);}
.sadevo-theme .woocommerce-message::before,.sadevo-theme .woocommerce-info::before,.sadevo-theme .woocommerce-error::before{display:none;}
.sadevo-theme .woocommerce-error li{list-style:none;}
@media(max-width:860px){.sadevo-theme .single-product div.product{grid-template-columns:1fr;gap:var(--sd-s5);}.sadevo-theme #order_review{position:static;}}


/* ------------------------------------------ 20. Gallery fixes */
.sadevo-theme .woocommerce-product-gallery{opacity:1 !important;max-width:none;}
.sadevo-theme .woocommerce-product-gallery .woocommerce-product-gallery__wrapper{margin:0;width:100%;}
.sadevo-theme .woocommerce-product-gallery .woocommerce-product-gallery__image{width:100%;}
.sadevo-theme .woocommerce-product-gallery .woocommerce-product-gallery__image a{display:block;}
.sadevo-theme .woocommerce-product-gallery img{width:100% !important;height:auto !important;max-width:none;display:block;}
.sadevo-theme .woocommerce-product-gallery .flex-viewport{width:100%;}
.sadevo-theme .woocommerce-product-gallery ol.flex-control-thumbs{display:flex;gap:var(--sd-s2);list-style:none;margin:var(--sd-s3) 0 0;padding:0;}
.sadevo-theme .woocommerce-product-gallery ol.flex-control-thumbs li{width:78px;float:none;margin:0;}
.sadevo-theme .woocommerce-product-gallery ol.flex-control-thumbs img{border-radius:var(--sd-r-sm);border:1px solid var(--sd-line);}
.sd-single-brand{display:block;margin:0 0 6px;font-size:var(--sd-fs-tiny);font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--sd-ink-3);}
.sd-single-brand a{color:inherit;}
.sd-single-brand a:hover{color:var(--sd-accent-deep);}


/* ========================================= 21. Content pages */
.sadevo-theme .page .entry-header,.sadevo-theme .page .entry-content{max-width:none;}
.sadevo-theme .page:not(.sadevo-front) .site-content{padding-block:var(--sd-s7) var(--sd-s8);}
.sadevo-theme .page .entry-title{font-family:var(--sd-f-display);font-size:var(--sd-fs-h2);line-height:1.08;margin:0 0 var(--sd-s5);}
.sadevo-theme .entry-content p{color:var(--sd-ink-2);line-height:1.7;max-width:70ch;}
.sadevo-theme .entry-content h2{font-family:var(--sd-f-display);font-size:var(--sd-fs-h4);margin:0 0 var(--sd-s3);color:var(--sd-ink);}
/* Contact */
.sd-contact__lead{font-size:var(--sd-fs-lede);color:var(--sd-ink-2);max-width:62ch;margin:0 0 var(--sd-s6);}
.sd-contact-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--sd-gap);margin-bottom:var(--sd-s8);}
.sd-contact-card{display:flex;flex-direction:column;gap:6px;padding:var(--sd-s5);background:var(--sd-paper);border:1px solid var(--sd-line);border-radius:var(--sd-r-md);}
.sd-contact-card--accent{background:var(--sd-accent-soft);border-color:var(--sd-accent-mid);}
.sd-contact-card__label{font-size:var(--sd-fs-tiny);font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--sd-ink-3);}
.sd-contact-card__value{font-family:var(--sd-f-body);font-size:var(--sd-fs-lede);font-weight:700;color:var(--sd-ink);text-decoration:none;word-break:break-word;}
.sd-contact-card__value:hover{color:var(--sd-accent-deep);text-decoration:underline;text-underline-offset:3px;}
.sadevo-theme .sd-contact-card__note{margin:6px 0 0;font-size:var(--sd-fs-small);color:var(--sd-ink-2);line-height:1.55;}
.sd-contact-cols{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--sd-s6) var(--sd-s8);padding-block:var(--sd-s6);border-top:1px solid var(--sd-line);border-bottom:1px solid var(--sd-line);}
.sadevo-theme .sd-contact-block p{font-size:var(--sd-fs-body);margin:0 0 var(--sd-s3);max-width:56ch;}
.sadevo-theme .sd-contact-block p:last-child{margin-bottom:0;}
.sadevo-theme .sd-contact-address{font-style:normal;color:var(--sd-ink);font-weight:600;line-height:1.7;}
.sadevo-theme .sd-contact-block__note{font-size:var(--sd-fs-small);color:var(--sd-ink-3);border-left:2px solid var(--sd-line-2);padding-left:var(--sd-s3);}
.sd-contact-form{margin-top:var(--sd-s8);padding:var(--sd-s6);background:var(--sd-paper);border:1px solid var(--sd-line);border-radius:var(--sd-r-lg);max-width:760px;}
.sd-contact-form h2{margin-bottom:var(--sd-s2);}
.sadevo-theme .sd-contact-form label{display:block;font-size:var(--sd-fs-small);font-weight:600;color:var(--sd-ink-2);margin-bottom:5px;}
.sadevo-theme .sd-contact-form input[type=text],.sadevo-theme .sd-contact-form input[type=email],.sadevo-theme .sd-contact-form input[type=tel],.sadevo-theme .sd-contact-form input[type=url],.sadevo-theme .sd-contact-form select,.sadevo-theme .sd-contact-form textarea{width:100%;min-height:48px;padding:12px var(--sd-s4);border:1px solid var(--sd-line-2);border-radius:var(--sd-r-sm);background:var(--sd-canvas);font-family:var(--sd-f-body);font-size:var(--sd-fs-body);color:var(--sd-ink);margin-bottom:var(--sd-s4);}
.sadevo-theme .sd-contact-form textarea{min-height:150px;line-height:1.6;}
.sadevo-theme .sd-contact-form input:focus,.sadevo-theme .sd-contact-form select:focus,.sadevo-theme .sd-contact-form textarea:focus{outline:2px solid var(--sd-accent);outline-offset:2px;border-color:var(--sd-accent);}
.sadevo-theme .sd-contact-form button,.sadevo-theme .sd-contact-form input[type=submit]{display:inline-flex;align-items:center;justify-content:center;min-height:50px;padding:0 30px;border:0;border-radius:var(--sd-r-pill);background:var(--sd-accent);color:var(--sd-on-dark);font-family:var(--sd-f-body);font-size:var(--sd-fs-body);font-weight:600;cursor:pointer;}
.sadevo-theme .sd-contact-form button:hover,.sadevo-theme .sd-contact-form input[type=submit]:hover{background:var(--sd-accent-deep);}
.sadevo-theme .sd-contact__foot{margin-top:var(--sd-s6);font-size:var(--sd-fs-small);color:var(--sd-ink-3);}
@media(max-width:1024px){.sd-contact-grid{grid-template-columns:1fr 1fr;}}
@media(max-width:760px){.sd-contact-grid,.sd-contact-cols{grid-template-columns:1fr;}.sd-contact-form{padding:var(--sd-s5);}}

.sadevo-theme .sd-contact-form__note{font-size:var(--sd-fs-small);color:var(--sd-ink-3);background:var(--sd-paper-2);border-radius:var(--sd-r-sm);padding:var(--sd-s3) var(--sd-s4);margin-bottom:var(--sd-s5);}

.sadevo-theme .sd-contact__title{font-family:var(--sd-f-display);font-size:var(--sd-fs-h2);line-height:1.06;margin:0 0 var(--sd-s4);color:var(--sd-ink);}


/* ===================================== 22. Classic page wrap */
.sadevo-theme.sadevo-classic-page #content > .ast-container{max-width:var(--sd-wrap);margin-inline:auto;padding-inline:var(--sd-gutter);}
.sadevo-theme.sadevo-classic-page #primary,.sadevo-theme.sadevo-classic-page .entry-content{width:100%;max-width:none;}
/* Contact: give the three cards room and stop the copy hugging one edge */
.sd-contact__lead{max-width:56ch;}
.sd-contact-cols{gap:var(--sd-s7) var(--sd-s8);}
.sadevo-theme .sd-contact-block p{max-width:50ch;}
.sd-contact-form{margin-inline:0;}


/* ================================= 23. Enquiry form polish */
/* The plugin form ships its own card styling; the section around it is
   already a card, so flatten the inner one rather than nesting two. */
.sadevo-theme .sd-contact-form form.card{background:transparent;border:0;box-shadow:none;border-radius:0;padding:0;}
/* Spacing belongs to the field group, not the input, so a hint stays with
   the field it describes instead of drifting onto the next label. */
.sadevo-theme .sd-contact-form .field{display:block;margin-bottom:var(--sd-s5);}
.sadevo-theme .sd-contact-form .field input,.sadevo-theme .sd-contact-form .field select,.sadevo-theme .sd-contact-form .field textarea{margin-bottom:0;}
.sadevo-theme .sd-contact-form .hint{display:block;margin-top:7px;font-size:var(--sd-fs-tiny);color:var(--sd-ink-3);line-height:1.55;}
.sadevo-theme .sd-contact-form .muted{display:block;margin-top:var(--sd-s3);font-size:var(--sd-fs-tiny);color:var(--sd-ink-3);line-height:1.55;}
.sadevo-theme .sd-contact-form label{margin-bottom:6px;}
/* Centre the block so the page does not sit entirely on the left */
.sd-contact-form{margin-inline:auto;}


/* ========================================== 24. Help centre */
.sd-help__crumbs{display:flex;flex-wrap:wrap;gap:8px;align-items:center;font-size:var(--sd-fs-tiny);letter-spacing:.06em;text-transform:uppercase;color:var(--sd-ink-3);margin-bottom:var(--sd-s5);}
.sd-help__crumbs a{color:var(--sd-ink-3);}
.sd-help__crumbs a:hover{color:var(--sd-accent-deep);}
.sd-help__crumb-current{color:var(--sd-ink);font-weight:600;}
.sd-help{display:grid;grid-template-columns:minmax(0,260px) minmax(0,1fr);gap:var(--sd-s8);align-items:start;}
.sd-help__side{position:sticky;top:150px;}
.sadevo-theme .sd-help__side-title{font-family:var(--sd-f-body);font-size:var(--sd-fs-tiny);font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--sd-ink-3);margin:0 0 var(--sd-s3);}
.sd-help__side ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px;}
.sd-help__side a{display:block;padding:10px var(--sd-s4);border-radius:var(--sd-r-sm);font-size:var(--sd-fs-small);line-height:1.45;color:var(--sd-ink-2);}
.sd-help__side a:hover{background:var(--sd-paper-2);color:var(--sd-ink);}
.sd-help__side a.is-current{background:var(--sd-ink);color:var(--sd-on-dark);font-weight:600;}
.sadevo-theme .sd-help__main h1{font-family:var(--sd-f-display);font-size:var(--sd-fs-h2);line-height:1.06;margin:0 0 var(--sd-s4);scroll-margin-top:160px;}
.sadevo-theme .sd-help__lead{font-size:var(--sd-fs-lede);color:var(--sd-ink-2);max-width:60ch;margin:0 0 var(--sd-s6);}
.sd-help__article{padding-top:var(--sd-s6);margin-top:var(--sd-s6);border-top:1px solid var(--sd-line);scroll-margin-top:160px;}
.sadevo-theme .sd-help__article h2{font-family:var(--sd-f-display);font-size:var(--sd-fs-h3);line-height:1.12;margin:0 0 var(--sd-s3);}
.sadevo-theme .sd-help__article h3{font-family:var(--sd-f-body);font-size:var(--sd-fs-body);font-weight:700;letter-spacing:.02em;margin:var(--sd-s5) 0 var(--sd-s3);color:var(--sd-ink);}
.sadevo-theme .sd-help__article p{max-width:64ch;margin:0 0 var(--sd-s3);}
.sadevo-theme .sd-help__note{font-size:var(--sd-fs-small);color:var(--sd-ink-3);border-left:2px solid var(--sd-line-2);padding-left:var(--sd-s3);margin-top:var(--sd-s4);}
.sd-table-wrap{overflow-x:auto;border:1px solid var(--sd-line);border-radius:var(--sd-r-md);background:var(--sd-paper);}
.sadevo-theme .sd-table{width:100%;border-collapse:collapse;font-size:var(--sd-fs-small);margin:0;}
.sadevo-theme .sd-table th{text-align:left;background:var(--sd-paper-2);font-size:var(--sd-fs-tiny);letter-spacing:.08em;text-transform:uppercase;color:var(--sd-ink-2);padding:var(--sd-s3) var(--sd-s4);white-space:nowrap;}
.sadevo-theme .sd-table td{padding:var(--sd-s3) var(--sd-s4);border-top:1px solid var(--sd-line);color:var(--sd-ink);}
.sadevo-theme .sd-table td:last-child{font-weight:700;white-space:nowrap;}
.sd-help__foot{margin-top:var(--sd-s7);padding:var(--sd-s5);background:var(--sd-surface);border-radius:var(--sd-r-md);}
.sadevo-theme .sd-help__foot h2{font-family:var(--sd-f-body);font-size:var(--sd-fs-body);font-weight:700;margin:0 0 6px;}
.sadevo-theme .sd-help__foot p{font-size:var(--sd-fs-small);margin:0 0 var(--sd-s4);max-width:60ch;}
.sd-help__related{margin-top:var(--sd-s6);padding-top:var(--sd-s5);border-top:1px solid var(--sd-line);}
.sadevo-theme .sd-help__related h2{font-family:var(--sd-f-body);font-size:var(--sd-fs-tiny);font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--sd-ink-3);margin:0 0 var(--sd-s3);}
.sd-help__related ul{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:var(--sd-s5);}
.sd-help__related a{font-size:var(--sd-fs-small);font-weight:600;color:var(--sd-accent-deep);}
.sd-help__related a:hover{text-decoration:underline;text-underline-offset:3px;}
@media(max-width:900px){.sd-help{grid-template-columns:1fr;gap:var(--sd-s5);}.sd-help__side{position:static;padding-bottom:var(--sd-s5);border-bottom:1px solid var(--sd-line);}.sd-help__side ul{flex-direction:row;flex-wrap:wrap;gap:6px;}.sd-help__side a{border:1px solid var(--sd-line);}}



/* Hero + footer tagline ("Find You, With Us.") */
.sd-hero__tagline {
  margin: 0 0 var(--sd-s3);
  font-family: var(--sd-f-display);
  font-size: var(--sd-fs-h3);
  color: var(--sd-accent-deep);
}
.sd-foot__tagline {
  font-family: var(--sd-f-display);
  font-size: var(--sd-fs-h3);
  font-style: italic;
  color: var(--sd-on-dark);
  max-width: none;
}


/* About page */
.sadevo-classic-page .sd-page__lede { font-size: var(--sd-fs-lede); color: var(--sd-ink-2); max-width: 62ch; }
.sd-about__founder { display: flex; gap: var(--sd-s5); align-items: flex-start; flex-wrap: wrap; margin: var(--sd-s4) 0; }
.sd-about__founder img { width: 220px; height: auto; border-radius: var(--sd-r-lg); flex: none; }
.sd-about__founder p { flex: 1 1 320px; margin: 0; }


/* Services page */
.sd-service { display: flex; gap: var(--sd-s6); align-items: center; margin: var(--sd-s5) 0 var(--sd-s6); flex-wrap: wrap; }
.sd-service--reverse { flex-direction: row-reverse; }
.sd-service__copy { flex: 1 1 360px; }
.sd-service__copy ul { margin: var(--sd-s3) 0 var(--sd-s4); padding-left: 1.2em; }
.sd-service__copy li { margin-bottom: 6px; color: var(--sd-ink-2); }
.sd-service__media { flex: 1 1 360px; }
.sd-service__media img { width: 100%; height: auto; display: block; border-radius: var(--sd-r-lg); }
.sd-steps { display: grid; grid-template-columns: repeat(4, 1fr); gap: var(--sd-s5); margin-top: var(--sd-s4); }
.sd-steps__num { display: block; font-family: var(--sd-f-display); font-size: var(--sd-fs-h3); color: var(--sd-accent); margin-bottom: var(--sd-s2); }
@media (max-width: 900px) { .sd-steps { grid-template-columns: repeat(2, 1fr); } .sd-service, .sd-service--reverse { flex-direction: column; } }


/* ------------------------------------------------------- 12. Shop/category sidebar */

.ast-left-sidebar #secondary .widget { border: none; background: transparent; padding: 0; margin: 0 0 var(--sd-s6); box-shadow: none; }
.ast-left-sidebar #secondary .widget-title { display: none; }

.sd-catsidebar__title {
  font-family: var(--sd-f-display);
  font-size: var(--sd-fs-h4, 22px);
  margin: 0 0 var(--sd-s4);
}
.sd-catsidebar__list { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--sd-line); }
.sd-catsidebar__list li { border-bottom: 1px solid var(--sd-line); }
.sd-catsidebar__list a {
  display: flex; align-items: center; justify-content: space-between; gap: var(--sd-s2);
  padding: var(--sd-s3) 0;
  font-size: var(--sd-fs-body);
  color: var(--sd-ink);
  transition: color .16s ease, padding-left .16s ease;
}
.sd-catsidebar__list a:hover { color: var(--sd-accent-deep); padding-left: var(--sd-s2); }
.sd-catsidebar__list a.is-active { color: var(--sd-accent-deep); font-weight: 700; }
.sd-catsidebar__list a.sd-catsidebar__all { font-weight: 700; }
.sd-catsidebar__list a span { font-size: var(--sd-fs-tiny); color: var(--sd-ink-3); font-weight: 400; }

@media (max-width: 900px) {
  .ast-left-sidebar .ast-container { flex-direction: column; }
  .ast-left-sidebar #secondary { width: 100%; margin-bottom: var(--sd-s6); }
  .sd-catsidebar__list { display: flex; flex-wrap: wrap; gap: 0 var(--sd-s5); border-top: none; }
  .sd-catsidebar__list li { border-bottom: none; }
}
