/* Scoped refinements for Ella's native content and forms. */
#MainContent [id] {
  scroll-margin-top: 7rem;
}

.block-contact-form .contact-form-stack {
  display: flex;
  flex-wrap: wrap;
  gap: var(--gap, 16px);
  margin-block-end: 2.4rem;
}

.block-contact-form .contact-form-row {
  box-sizing: border-box;
  flex-grow: 1;
  width: calc(var(--formRowWidth, 100%) - var(--gap, 16px));
  min-width: 0;
  max-width: 100%;
}

.block-contact-form input:not([type=hidden]):not([type=radio]):not([type=checkbox]),
.block-contact-form textarea {
  box-sizing: border-box;
  width: 100%;
  max-width: 100%;
  font-size: 1.6rem;
}

.block-contact-form textarea {
  min-height: 12rem;
}

.block-contact-form .alertBox {
  padding: 1.6rem;
  margin-block: 1.6rem;
  border: 1px solid currentColor;
  border-radius: .6rem;
}

.block-contact-form .alertBox--error {
  color: #8d2323;
}

.block-contact-form .alertBox--success {
  color: #165b3e;
}

:where(.block-contact-form, .email-signup-block) :is(input, textarea, button):focus-visible {
  outline: 2px solid var(--color-primary, #096748);
  outline-offset: 3px;
}

.content-for-layout .rte img {
  max-width: 100%;
  height: auto;
}

.template-index .card--block-media img {
  object-fit: contain;
}

.sentorise-policy-links {
  min-width: 0;
  overflow-wrap: anywhere;
}

.sentorise-policy-links p {
  margin-block: 0 .8rem;
}

.sentorise-policy-links p:last-child {
  margin-block-end: 0;
}

/* Shopify already prints the policy title outside the rich-text body. */
.shopify-policy__body > .rte > h1:first-child,
.shopify-policy__body > h1:first-child {
  display: none;
}

@media (max-width: 749px) {
  .block-contact-form .contact-form-row {
    width: 100%;
  }
}

@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }
}

/* Sentorise homepage art direction; content remains editable in native Ella blocks. */
body.template-index #MainContent [id$="__hero"] .media-banner {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  grid-template-areas: none;
  grid-template-rows: auto;
  position: relative;
  isolation: isolate;
  min-height: 560px;
  height: 72svh;
  max-height: 760px;
  overflow: hidden;
}
body.template-index #MainContent [id$="__hero"] .media-banner > .media-block {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}
body.template-index #MainContent [id$="__hero"] .media-block__media {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: 70% center;
}
body.template-index #MainContent [id$="__hero"] .media-block::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, rgba(6, 25, 20, .78) 0%, rgba(6, 25, 20, .48) 40%, rgba(6, 25, 20, 0) 78%);
  pointer-events: none;
}
body.template-index #MainContent [id$="__hero"] .media-banner > .media-banner__content {
  position: relative;
  grid-area: 1 / 1;
  inset: auto;
  transform: none;
  align-self: center;
  justify-self: start;
  z-index: 2;
  width: min(620px, 46%);
  height: auto;
  min-height: 0;
  max-height: none;
  margin: 0 0 0 max(5vw, calc((100vw - 1440px) / 2));
  overflow: visible;
}
body.template-index #MainContent [id$="__hero"] .media-banner__content > .group-block-content {
  position: relative;
  inset: auto;
  transform: none;
  width: 100%;
  height: auto;
}
body.template-index #MainContent [id$="__hero"] h1 {
  font-size: clamp(44px, 4.8vw, 72px);
  line-height: 1.08;
  letter-spacing: -.025em;
  font-weight: var(--font-heading--weight);
  color: var(--color-foreground-heading);
}
body.template-index #MainContent [id$="__hero"] [class*="__intro"] p {
  max-width: 490px;
  font-size: 18px;
  line-height: 1.6;
}
body.template-index #MainContent :is([id$="__hero"], [id$="__spotlight"], [id$="__system"]) [class*="__eyebrow"] p {
  font-size: 12px;
  font-weight: 600;
  letter-spacing: .1em;
  line-height: 1.5;
}
body.template-index #MainContent :is([id$="__hero"], [id$="__spotlight"], [id$="__system"], [id$="__help"]) :is(.button, .button-secondary) {
  min-height: 48px;
  font-size: 14px;
  font-weight: 600;
}
body.template-index #MainContent :is([id$="__spotlight"], [id$="__batteries"], [id$="__applications"], [id$="__choices"], [id$="__system"], [id$="__help"]) h2 {
  font-size: clamp(30px, 3vw, 46px);
  line-height: 1.13;
  letter-spacing: -.025em;
  font-weight: var(--font-heading--weight);
}
body.template-index #MainContent [id$="__quicklinks"] p {
  font-size: 12px;
  line-height: 1.5;
  letter-spacing: .055em;
  font-weight: 600;
}
body.template-index #MainContent [id$="__quicklinks"] a {
  color: #e5eeea;
  text-decoration: none;
}
body.template-index #MainContent [id$="__quicklinks"] a:hover { color: #d5ff80; }
body.template-index #MainContent :is([id$="__spotlight"], [id$="__system"]) .color-scheme-custom {
  border-radius: 16px;
  overflow: hidden;
}
body.template-index #MainContent :is([id$="__spotlight"], [id$="__system"]) h3 {
  font-size: clamp(28px, 2.6vw, 38px);
  line-height: 1.15;
  letter-spacing: -.03em;
  min-height: 2.3em;
}
body.template-index #MainContent :is([id$="__spotlight"], [id$="__system"]) .image-block {
  width: 100%;
  height: 290px;
  max-height: 290px;
  mix-blend-mode: multiply;
}
body.template-index #MainContent :is([id$="__spotlight"], [id$="__system"]) .image-block__image {
  width: 100%;
  height: 100%;
  object-fit: contain;
}
body.template-index #MainContent [id$="__system"] .image-block { height: 230px; max-height: 230px; }
body.template-index #MainContent [id$="__batteries"] product-card {
  border-radius: 14px;
  overflow: hidden;
  box-shadow: 0 4px 18px rgba(16, 47, 42, .045);
}
body.template-index #MainContent [id$="__batteries"] .price { font-weight: 700; }
body.template-index #MainContent [id$="__applications"] .group-block--content-overlay {
  min-height: 430px;
  padding: 0;
  border-radius: 14px;
  overflow: hidden;
}
body.template-index #MainContent [id$="__applications"] .group-block__media-wrapper .background-image-container { min-height: 430px; }
body.template-index #MainContent [id$="__applications"] .group-block--content-overlay > .group-block-content {
  position: absolute;
  inset: auto 0 0;
  width: 100%;
  height: auto;
  min-height: 0;
  padding: 26px 28px;
  background: rgba(8, 37, 28, .86);
  z-index: 1;
  justify-content: flex-end;
}
body.template-index #MainContent [id$="__applications"] h3 {
  color: #fff;
  font-size: clamp(26px, 2.4vw, 34px);
  line-height: 1.12;
  letter-spacing: -.025em;
}
body.template-index #MainContent [id$="__applications"] .group-block--content-overlay p {
  color: #fff;
  font-size: 15px;
  line-height: 1.5;
}
body.template-index #MainContent [id$="__choices"] [class*="__step"] p {
  font-size: 44px;
  line-height: 1;
  font-weight: 700;
}
body.template-index #MainContent [id$="__choices"] h3 { font-size: 24px; line-height: 1.2; }
body.template-index #MainContent [id$="__help"] .media-block__media { object-fit: cover; }
body.template-index #MainContent [id$="__help"] .media-banner__content { padding: clamp(32px, 5vw, 80px); }
.color-scheme-14 a:focus-visible {
  outline: 2px solid #d5ff80;
  outline-offset: 5px;
}
.color-scheme-14 .logo-block__image { filter: brightness(0) invert(1); }
@media (max-width: 749px) {
  body.template-index #MainContent [id$="__hero"] .media-banner {
    display: flex;
    flex-direction: column;
    height: auto;
    min-height: 0;
    max-height: none;
  }
  body.template-index #MainContent [id$="__hero"] .media-banner > .media-block {
    position: relative;
    inset: auto;
    height: 260px;
    flex: 0 0 auto;
  }
  body.template-index #MainContent [id$="__hero"] .media-block__media { object-position: 90% center; }
  body.template-index #MainContent [id$="__hero"] .media-block::after {
    background: none;
  }
  body.template-index #MainContent [id$="__hero"] .media-banner > .media-banner__content {
    width: 100%;
    margin: 0;
    padding: 28px 24px 36px;
    align-self: stretch;
    background: var(--color-background);
  }
  body.template-index #MainContent [id$="__hero"] h1 { font-size: clamp(40px, 11vw, 56px); }
  body.template-index #MainContent [id$="__hero"] [class*="__intro"] p { font-size: 16px; line-height: 1.5; }
  body.template-index #MainContent [id$="__hero"] .group-block-content > .group-block { width: 100%; }
  body.template-index #MainContent [id$="__hero"] :is(.button, .button-secondary) { width: 100%; }
  body.template-index #MainContent :is([id$="__spotlight"], [id$="__system"]) .color-scheme-custom { padding: 26px 24px; }
  body.template-index #MainContent :is([id$="__spotlight"], [id$="__system"]) h3 { min-height: 0; }
  body.template-index #MainContent :is([id$="__spotlight"], [id$="__system"]) .image-block { height: 240px; max-height: 240px; }
  body.template-index #MainContent [id$="__applications"] .group-block--content-overlay { min-height: 390px; }
  body.template-index #MainContent [id$="__applications"] .group-block__media-wrapper .background-image-container { min-height: 390px; }
  body.template-index #MainContent [id$="__help"] .media-banner__content { padding: 32px 24px; }
  body.template-index #MainContent [id$="__quicklinks"] p { font-size: 11px; letter-spacing: .02em; }
}
@media (prefers-reduced-motion: reduce) {
  body.template-index #MainContent :is([id$="__hero"], [id$="__spotlight"], [id$="__applications"]) * { scroll-behavior: auto; }
}

/* Keep the outer product card equal-height without stretching its content blocks. */
.card--block.product-card-wrapper > .card {
  --size-style-height: auto;
  --size-style-height-tablet: auto;
  --size-style-height-mobile: auto;
}
.card--block.product-card-wrapper > .card > .card--block-media {
  flex: 0 0 auto;
}
.card--block.product-card-wrapper > .card > .card-information {
  margin-block-start: auto;
}

/* Native comparison: persistent shortcuts and aligned product columns. */
.card--has-inline-compare {
  position: relative;
  --compare-green: #075c43;
  --compare-border: #d5ded8;
}
.card--has-inline-compare .card-product__group .card-compare { display: none; }
.card--has-inline-compare .card-product__group { top: 52px; }
.card--has-inline-compare > .card-compare--inline {
  display: block;
  position: absolute;
  inset: 12px 12px auto auto;
  width: 44px;
  height: 44px;
  z-index: 3;
}
.card-compare--inline .compare-button--inline { position: relative; width: 44px; height: 44px; }
.card-compare--inline .compare-checkbox {
  appearance: none;
  position: absolute;
  inset: 0;
  margin: 0;
  width: 44px;
  height: 44px;
  opacity: 0;
  visibility: visible;
  cursor: pointer;
  z-index: 1;
}
.card-compare--inline .compare-label {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  padding: 0;
  border: 1px solid var(--compare-border);
  border-radius: 50%;
  background: #fff;
  color: var(--compare-green);
  box-shadow: 0 2px 8px rgb(18 56 44 / 8%);
  cursor: pointer;
}
.card-compare--inline .compare-shortcut__icon { width: 19px; height: 19px; fill: currentColor; }
.card-compare--inline .compare-shortcut__check { display: none; width: 21px; height: 21px; }
.card-compare--inline .compare-checkbox:hover + .compare-label { border-color: var(--compare-green); }
.card-compare--inline .compare-checkbox:checked + .compare-label {
  color: #fff;
  background: var(--compare-green);
  border-color: var(--compare-green);
}
.card-compare--inline .compare-checkbox:checked + .compare-label .compare-shortcut__icon { display: none; }
.card-compare--inline .compare-checkbox:checked + .compare-label .compare-shortcut__check { display: block; }
.card-compare--inline .compare-checkbox:focus-visible + .compare-label {
  outline: 2px solid var(--compare-green);
  outline-offset: 3px;
}
compare-product-popup.halo-compareProduct.is-show {
  display: block;
  position: fixed;
  top: auto;
  right: auto;
  left: 24px;
  bottom: 140px;
  transform: none;
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  z-index: 8;
}
compare-product-popup.halo-compareProduct.is-show .button {
  display: flex;
  align-items: center;
  gap: 8px;
  min-height: 44px;
  border-radius: 28px;
}
compare-product-popup .countPill {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 22px;
  min-height: 22px;
  border-radius: 50%;
  padding: 2px 5px;
  color: #fff;
  background: #12382c;
  font-size: 12px;
}
.halo-compare-product-popup {
  /* Keep the comparison dialog above the Shopify Inbox launcher. */
  z-index: 2147483001;
  --compare-green: #123c30;
  --compare-border: #dce5df;
  --compare-label-width: 132px;
  --compare-product-width: 230px;
}
.halo-compare-product-popup .popup__inner {
  width: calc(100% - 48px);
  max-width: 1120px;
  max-height: 90dvh;
  border-radius: 16px;
  overflow: hidden;
  background: #fff;
}
.halo-compare-product-popup.modal--popup .halo-popup-wrapper { padding: 0; }
.halo-compare-product-popup .halo-popup-header { position: relative; padding: 20px 68px 16px 24px; }
.halo-compare-product-popup .halo-popup-title { margin: 0; text-align: left; font-size: 24px; line-height: 1.25; color: var(--compare-green); }
.halo-compare-product-popup .drawer__close { top: 10px; right: 12px; width: 44px; height: 44px; padding: 13px; }
.halo-compare-product-popup.modal--popup .halo-popup-content { margin: 0; padding: 0; overflow: hidden; }
.halo-compare-product-popup .compare-table-scroll {
  overflow: auto;
  max-height: calc(90dvh - 78px);
  overscroll-behavior: contain;
}
.halo-compare-product-popup .compare-table-scroll:focus-visible { outline: 2px solid var(--compare-green); outline-offset: -3px; }
.halo-compare-product-popup .compareTable {
  width: max(100%, calc(var(--compare-label-width) + var(--compare-product-width) * var(--compare-product-count, 2)));
  min-width: 0;
  table-layout: fixed;
  border-collapse: separate;
  border-spacing: 0;
  border: 0;
}
.halo-compare-product-popup .compareTable :is(td, th) {
  vertical-align: top;
  border: 0;
  border-right: 1px solid var(--compare-border);
  border-bottom: 1px solid var(--compare-border);
  overflow-wrap: anywhere;
}
.halo-compare-product-popup .compareTable-label {
  position: sticky;
  left: 0;
  z-index: 2;
  width: var(--compare-label-width);
  padding: 18px 16px;
  background: #f2f5f1;
  text-align: left;
  font-size: 13px;
  font-weight: 600;
  line-height: 1.5;
  color: var(--compare-green);
}
.halo-compare-product-popup .compareTable-label .whitespace-nowrap { white-space: normal; }
.halo-compare-product-popup .compareTable-product { width: auto; min-width: 0; padding: 18px; font-weight: 400; text-align: left; }
.halo-compare-product-popup .compareTable-product .card { border: 0; border-radius: 0; padding: 0; gap: 12px; background: transparent; }
.halo-compare-product-popup .compareTable-product .card-product { position: relative; padding-top: 32px; }
.halo-compare-product-popup .compareTable-product .card-product__wrapper { width: 100%; max-width: 180px; margin: 0 auto; }
.halo-compare-product-popup .compareTable-product .media img { object-fit: contain; }
.halo-compare-product-popup .compareTable-product :is(.card-vendor, .card__badge) { display: none; }
.halo-compare-product-popup .compareTable-product .card-information { padding: 0; }
.halo-compare-product-popup .compareTable-product .card-information__wrapper { text-align: left; }
.halo-compare-product-popup .compareTable-product .card-title { display: block; padding: 0; margin: 0 0 10px; color: var(--compare-green); font-size: 15px; line-height: 1.4; -webkit-line-clamp: unset; }
.halo-compare-product-popup .compareTable-product .price { font-size: 15px; line-height: 1.5; gap: 4px; }
.halo-compare-product-popup .compareTable-product .price__compare { font-size: 12px; }
.halo-compare-product-popup .compareTable-product .price-item--percent { display: none; }
.halo-compare-product-popup .compareTable-product s.price-item { font-size: 12px; }
.halo-compare-product-popup .compareTable-removeProduct {
  top: -10px;
  right: -6px;
  width: 44px;
  height: 44px;
  padding: 12px;
  border: 0;
  background: #f2f5f1;
  color: var(--compare-green);
}
.halo-compare-product-popup .compareTable-removeProduct svg { width: 20px; height: 20px; padding: 0; fill: currentColor; }
.halo-compare-product-popup .compareTable-item { min-width: 0; padding: 18px; font-size: 14px; line-height: 1.55; text-align: left; color: #344b42; }
.halo-compare-product-popup .compareTable-item.compareTable-desc { min-width: 0; }
.halo-compare-product-popup .compareTable-item p { margin: 0; }
.halo-compare-product-popup .compareTable tbody tr:nth-child(even) td { background: #fbfcfa; }
.halo-compare-product-popup .compare-modal__hint { display: none; }
.halo-compare-product-popup .compare-modal__error { margin: 0; padding: 24px; color: #963d20; }
.halo-compare-product-popup .compare-modal__error[hidden] { display: none; }
@media (max-width: 749px) {
  compare-product-popup.halo-compareProduct.is-show { right: auto; left: 16px; bottom: 150px; }
  .halo-compare-product-popup { --compare-label-width: 90px; --compare-product-width: 130px; }
  .halo-compare-product-popup .popup__inner { width: calc(100% - 16px); max-height: 90dvh; border-radius: 12px; }
  .halo-compare-product-popup .halo-popup-header { padding: 18px 56px 14px 16px; }
  .halo-compare-product-popup .halo-popup-title { font-size: 22px; }
  .halo-compare-product-popup .compare-modal__hint { display: block; margin: 6px 0 0; font-size: 12px; line-height: 1.4; color: #52685e; }
  .halo-compare-product-popup .compare-table-scroll { max-height: calc(90dvh - 96px); }
  .halo-compare-product-popup .compareTable-label { padding: 14px 10px; font-size: 12px; }
  .halo-compare-product-popup .compareTable-product { padding: 10px; }
  .halo-compare-product-popup .compareTable-product .card { gap: 10px; }
  .halo-compare-product-popup .compareTable-product .card-title { font-size: 13px; line-height: 1.45; }
  .halo-compare-product-popup .compareTable-product .price { font-size: 14px; }
  .halo-compare-product-popup .compareTable-item { padding: 14px 10px; font-size: 12px; line-height: 1.5; }
  .halo-compare-product-popup .compareTable-removeProduct { top: -10px; right: -6px; }
}
/* Products: separate setup guidance from the editable native FAQ. */
#MainContent [id$="__product_support"] h2,
#MainContent [id$="__product_faq"] h2 {
  font-size: clamp(30px, 3.2vw, 42px);
  line-height: 1.12;
  letter-spacing: -.025em;
}
#MainContent [id$="__product_support"] .grid__item > .group-block {
  height: 100%;
}
#MainContent [id$="__product_support"] .grid__item > .group-block > .group-block-content {
  height: 100%;
  min-height: 300px;
  --size-style-height: auto;
}
#MainContent [id$="__product_support"] .grid__item h3 {
  font-size: 26px;
  line-height: 1.2;
  letter-spacing: -.015em;
}
#MainContent [id$="__product_support"] .grid__item p {
  font-size: 16px;
  line-height: 1.55;
}
#MainContent [id$="__product_support"] .grid__item .group-block-content > :first-child p,
#MainContent [id$="__product_faq"] .section-content-wrapper > .group-block .group-block-content > :first-child p {
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .12em;
  line-height: 1.4;
}
#MainContent [id$="__product_support"] .grid__item .group-block-content > :last-child {
  margin-top: auto;
  padding-top: 8px;
}
#MainContent [id$="__product_support"] .grid__item a,
#MainContent [id$="__product_faq"] .section-content-wrapper > .group-block a {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  font-weight: 600;
  text-decoration-thickness: 1px;
  text-underline-offset: 5px;
}
#MainContent [id$="__product_faq"] .section-content-wrapper {
  display: grid;
  grid-template-columns: minmax(240px, .85fr) minmax(0, 1.5fr);
  gap: 72px;
  align-items: start;
  border-top: 1px solid var(--color-border);
}
#MainContent [id$="__product_faq"] .section-content-wrapper > .group-block {
  width: 100%;
  max-width: 360px;
}
#MainContent [id$="__product_faq"] .section-content-wrapper > .group-block p {
  color: var(--color-foreground);
  line-height: 1.6;
}
#MainContent [id$="__product_faq"] .accordion {
  width: 100%;
  min-width: 0;
}
#MainContent [id$="__product_faq"] .details__header {
  font-size: 18px;
  font-weight: 600;
  line-height: 1.45;
  color: var(--color-foreground-heading);
  gap: 20px;
  min-height: 68px;
}
#MainContent [id$="__product_faq"] .details-content {
  padding: 0 42px 22px 0;
  color: var(--color-foreground);
  font-size: 16px;
  line-height: 1.7;
}
#MainContent [id$="__product_faq"] .icon-plus-wrapper {
  flex-shrink: 0;
  color: var(--color-primary);
}
#MainContent [id$="__product_faq"] summary:focus-visible {
  outline: 2px solid var(--color-primary);
  outline-offset: 5px;
}
@media (max-width: 989px) {
  #MainContent [id$="__product_faq"] .section-content-wrapper {
    grid-template-columns: 1fr;
    gap: 32px;
  }
  #MainContent [id$="__product_faq"] .section-content-wrapper > .group-block { max-width: 560px; }
}
@media (max-width: 749px) {
  #MainContent :is([id$="__product_support"], [id$="__product_faq"]) .section-content-wrapper {
    padding-top: 40px;
    padding-bottom: 40px;
  }
  #MainContent [id$="__product_support"] .grid__item > .group-block > .group-block-content { min-height: 0; }
  #MainContent [id$="__product_support"] .grid__item h3 { font-size: 25px; }
  #MainContent [id$="__product_faq"] .details__header { font-size: 17px; gap: 16px; }
  #MainContent [id$="__product_faq"] .details-content { padding-right: 18px; }
}

/* Header utility buttons follow the active header scheme, including interaction states. */
#header-component .header__icon.button,
#header-component .header__icon.button:is(:hover, :focus-visible, :active) {
  color: var(--color-foreground);
}

/* Ella's account SVG sets its own button color inside the account component. */
#header-component .account-button .svg-wrapper svg {
  color: var(--color-foreground);
  fill: currentColor;
}

/* Hide floating Klaviyo promotional teasers even when their instance ID changes; forms stay enabled. */
.kl-teaser-RkTbDP,
[class^="kl-teaser-"],
[class*=" kl-teaser-"] { display: none !important; }

/* Preserve a usable mobile Inbox target while leaving its native positioning intact. */
@media (max-width: 1024px) {
  shopify-chat::part(activator) {
    min-height: 48px;
  }
}

/* Legacy page HTML: permit emergency wrapping without rewriting its text or tables. */
#MainContent .rte {
  min-inline-size: 0;
  max-inline-size: 100%;
  overflow-wrap: anywhere;
}
#MainContent .rte :is(h1, h2, h3, h4, p, li) { overflow-wrap: anywhere; }
#MainContent .rte table,
#MainContent .rte table :is(p, li) { overflow-wrap: normal; }

/* Imported Warranty HTML retains its structure, using Ella's typography and scheme. */
#MainContent [data-snt-page="warranty-policy"] .warranty-container {
  font-family: var(--font-body--family);
  font-size: var(--font-body--size);
  line-height: 1.65;
  color: var(--color-foreground);
  background: var(--color-background);
}
#MainContent [data-snt-page="warranty-policy"] .warranty-header h1 {
  font-family: var(--font-h1--family);
  font-size: var(--font-h1--size);
  font-weight: var(--font-h1--weight);
  line-height: var(--font-h1--line-height);
  letter-spacing: var(--font-h1--letter-spacing);
  color: var(--color-foreground-heading);
}
#MainContent [data-snt-page="warranty-policy"] .warranty-section h2 {
  font-family: var(--font-heading--family);
  font-size: var(--font-h4--size);
  font-weight: var(--font-heading--weight);
  line-height: 1.25;
  color: var(--color-foreground-heading);
  border-color: var(--color-primary);
}
#MainContent [data-snt-page="warranty-policy"] .warranty-section h3 {
  font-family: var(--font-heading--family);
  font-size: var(--font-h5--size);
  line-height: 1.35;
  color: var(--color-foreground-heading);
}
#MainContent [data-snt-page="warranty-policy"] :is(p, li, .header-subtitle, .coverage-row, .contact-item, .info-card span) {
  font-size: var(--font-body--size);
  line-height: 1.65;
  color: var(--color-foreground);
}
#MainContent [data-snt-page="warranty-policy"] :is(.period-badge, .step-num, .info-card strong, .spec-label, .spec-condition, .warranty-footer) {
  font-size: var(--font-size--sm);
  line-height: 1.5;
}
#MainContent [data-snt-page="warranty-policy"] :is(.spec-label, .spec-condition, .warranty-footer, .process-arrow, .contact-item strong) { color: var(--color-foreground); }
#MainContent [data-snt-page="warranty-policy"] :is(.spec-value, .info-card strong, .column.covered h3) { color: var(--color-primary); }
#MainContent [data-snt-page="warranty-policy"] .spec-value { font-size: var(--font-h3--size); }
#MainContent [data-snt-page="warranty-policy"] .column.covered li::marker { color: var(--color-primary); }
#MainContent [data-snt-page="warranty-policy"] :is(.warranty-header, .process-step, .info-card, .spec-card, .contact-section, .extend-section, .warranty-footer, .coverage-row.header-row > div, .coverage-row.highlight > div) {
  background: color-mix(in srgb, var(--color-background) 96%, var(--color-primary));
}
#MainContent [data-snt-page="warranty-policy"] :is(.warranty-section, .coverage-table, .process-step, .info-card, .spec-card, .contact-item, .warranty-footer) { border-color: var(--color-border); }
#MainContent [data-snt-page="warranty-policy"] .coverage-table { background: var(--color-border); }
#MainContent [data-snt-page="warranty-policy"] :is(.coverage-row > div, .contact-item) { background: var(--color-background); }
#MainContent [data-snt-page="warranty-policy"] .coverage-row.header-row > div { background: color-mix(in srgb, var(--color-background) 94%, var(--color-primary)); }
#MainContent [data-snt-page="warranty-policy"] .coverage-row.highlight > div { border-left-color: var(--color-primary); }
#MainContent [data-snt-page="warranty-policy"] .coverage-row:not(.header-row):hover > div { background: color-mix(in srgb, var(--color-background) 94%, var(--color-primary)); }
#MainContent [data-snt-page="warranty-policy"] .warranty-header { border-bottom-color: var(--color-primary); }
#MainContent [data-snt-page="warranty-policy"] .info-card { border-top-color: var(--color-primary); }
#MainContent [data-snt-page="warranty-policy"] .contact-item { border-left-color: var(--color-primary); }
#MainContent [data-snt-page="warranty-policy"] :is(.process-step, .spec-card):hover {
  border-color: var(--color-primary);
  box-shadow: 0 4px 12px rgb(var(--color-foreground-rgb) / .08);
}
#MainContent [data-snt-page="warranty-policy"] :is(.period-badge, .step-num, .extend-btn) {
  color: var(--color-primary-button-text);
  background: var(--color-primary-button-background);
}
#MainContent [data-snt-page="warranty-policy"] .period-badge--grey {
  color: var(--color-background);
  background: var(--color-foreground);
}
#MainContent [data-snt-page="warranty-policy"] .extend-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 48px;
  padding: 12px 24px;
  font-size: var(--font-body--size);
  border-radius: var(--style-border-radius-buttons-primary);
}
#MainContent [data-snt-page="warranty-policy"] .extend-btn:hover {
  color: var(--color-primary-button-hover-text);
  background: var(--color-primary-button-hover-background);
  box-shadow: 0 4px 12px rgb(var(--color-foreground-rgb) / .08);
}

/* Existing 17track inputs keep their IDs, event handler and result container. */
#MainContent [data-snt-page="track-my-order"] > div:has(> #YQNum) {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 12px;
  max-inline-size: 52rem;
  margin: 24px auto;
}
#MainContent [data-snt-page="track-my-order"] #YQNum,
#MainContent [data-snt-page="track-my-order"] #YQNum + input[type="button"] {
  box-sizing: border-box;
  min-height: 48px;
  margin: 0;
  padding: 12px 16px;
  font: inherit;
  font-size: var(--font-body--size);
  line-height: 1.4;
}
#MainContent [data-snt-page="track-my-order"] #YQNum {
  flex: 1 1 24rem;
  min-inline-size: 0;
  max-inline-size: 100%;
  color: var(--color-input-text);
  background: var(--color-input-background);
  border: 1px solid var(--color-input-border);
  border-radius: var(--inputs-radius);
}
#MainContent [data-snt-page="track-my-order"] #YQNum + input[type="button"] {
  flex: 0 0 auto;
  min-inline-size: 112px;
  padding-inline: 24px;
  color: var(--color-primary-button-text);
  background: var(--color-primary-button-background);
  border: 1px solid var(--color-primary-button-border);
  border-radius: var(--style-border-radius-buttons-primary);
  font-weight: 600;
  cursor: pointer;
}
#MainContent [data-snt-page="track-my-order"] #YQNum + input[type="button"]:hover {
  color: var(--color-primary-button-hover-text);
  background: var(--color-primary-button-hover-background);
  border-color: var(--color-primary-button-hover-border);
}
#MainContent [data-snt-page="track-my-order"] #YQContainer { max-inline-size: 100%; }
#MainContent [data-snt-page="track-my-order"] :is(#YQNum, #YQNum + input[type="button"]):focus-visible,
#MainContent [data-snt-page="warranty-policy"] .extend-btn:focus-visible {
  outline: 2px solid var(--color-primary);
  outline-offset: 3px;
}
@media (max-width: 599px) {
  #MainContent [data-snt-page="track-my-order"] #YQNum,
  #MainContent [data-snt-page="track-my-order"] #YQNum + input[type="button"] {
    flex-basis: 100%;
    inline-size: 100%;
  }
}

/* Article reading scale follows Ella's configured heading sizes. */
body.template-article #MainContent h1 {
  font-size: clamp(30px, 4vw, var(--font-h1--size));
  line-height: 1.15;
}
body.template-article #MainContent .rte h2 {
  font-size: clamp(24px, 2.6vw, var(--font-h2--size));
  line-height: 1.25;
}
body.template-article #MainContent .rte h3 {
  font-size: clamp(20px, 2vw, var(--font-h3--size));
  line-height: 1.3;
}

/* Let native custom-liquid flex items fit the width of their legacy page group. */
#MainContent .group-block-content > div:has(> .spacing > .snt-legacy-content[data-snt-page]) {
  min-inline-size: 0;
  inline-size: 100%;
  max-inline-size: 100%;
}

@media (max-width: 768px) {
  /* Keep the source headings available while each product forms one compact card. */
  #MainContent [data-snt-page="warranty-policy"] .coverage-table {
    position: relative;
  }
  #MainContent [data-snt-page="warranty-policy"] .coverage-row.header-row {
    position: absolute;
    inline-size: 1px;
    block-size: 1px;
    padding: 0;
    margin: -1px;
    border: 0;
    overflow: hidden;
    clip-path: inset(50%);
    white-space: nowrap;
  }
  #MainContent [data-snt-page="warranty-policy"] .coverage-row:not(.header-row) {
    grid-template-columns: minmax(0, 1fr) auto;
  }
  #MainContent [data-snt-page="warranty-policy"] .coverage-row:not(.header-row) > div {
    min-inline-size: 0;
  }
  #MainContent [data-snt-page="warranty-policy"] .coverage-row:not(.header-row) > div:nth-child(3) {
    grid-column: 1 / -1;
  }
  #MainContent [data-snt-page="warranty-policy"] .warranty-section h2 {
    font-size: clamp(24px, 4vw, var(--font-h4--size));
  }
}

/* Ella's grid-view bars use border-color variables; strengthen them on light collections. */
#MainContent .template-collection.color-scheme-1 .button--grid-view {
  --color-inactive: var(--color-foreground);
  --color-active: var(--color-foreground-heading);
}
#MainContent .template-collection.color-scheme-1 .button--grid-view.active::before {
  --color-inactive: var(--color-foreground-heading);
}

/* Pass page clearance to Inbox's native launcher and hint positioning. */
shopify-chat {
  --shopify-chat-activator-offset: var(--snt-chat-clearance, 20px);
}

/* Native drawers own their action area; hide only the two floating app launchers. */
body:has(cart-drawer.open, side-drawer.open) {
  --snt-app-launcher-visibility: hidden;
}
shopify-chat::part(activator) {
  visibility: var(--snt-app-launcher-visibility, visible);
}

/* Keep one summary when the product's native rating already accompanies its title. */
body.template-product .product-details:has(.rating-wrapper) .product-icon-list.vstar-star {
  display: none;
}

/* Imported privacy headings use ordinary word wrapping and an information-page alignment. */
#MainContent [data-snt-page="privacy-policy"] h1 {
  font-size: clamp(30px, 4vw, var(--font-h1--size));
  line-height: 1.2;
  text-align: start !important;
}

/* Search article cards must keep author/date text inside their native grid width. */
body.template-search .blog-post-block__content {
  min-width: 0;
  width: 100%;
  max-width: 100%;
}
body.template-search .blog-post-block__content .blog-post-details,
body.template-search .blog-post-block__content .card--block-details {
  min-width: 0;
  max-width: 100%;
}
body.template-search .blog-post-block__content .blog-post-details__text {
  min-width: 0;
  white-space: normal;
  overflow-wrap: anywhere;
}
body.template-search .blog-post-block__image-container:has(.placeholder-svg) {
  display: none;
}

/* Keep wide editorial tables scrollable without squeezing their source columns. */
body.template-article .rte-table-wrapper {
  min-width: 0;
  width: 100%;
  max-width: 100%;
  overflow-x: auto;
  overscroll-behavior-inline: contain;
}

/* Product presentation keeps Ella's gallery, options and purchase behavior. */
.template-product .main-product-information {
  --snt-product-space: 2rem;
  --snt-product-control-height: 5.2rem;
}
.main-product-information .product-media-container--slide .product-media img,
.main-product-information .swiper-controls__thumbnails-container img {
  object-fit: contain;
}
.main-product-information .product-media-container--slide .product-media img {
  box-sizing: border-box;
  padding: var(--snt-product-space);
}
.main-product-information .product-media-container--slide {
  background: var(--color-background);
  border: 1px solid var(--color-border);
  border-radius: var(--media-radius);
}
.main-product-information .product-details h1 {
  font-size: clamp(2.6rem, 2.3vw, 3.2rem);
  line-height: 1.15;
  letter-spacing: -.025em;
  text-wrap: balance;
}
.main-product-information .sentorise-product-intro {
  margin: 0;
  max-inline-size: 60ch;
  font-size: var(--font-body--size);
  line-height: 1.65;
  color: var(--color-foreground);
}
.main-product-information .tax-note {
  margin-block-start: .8rem;
  font-family: var(--font-body--family);
  font-size: 1.4rem;
  line-height: 1.5;
  font-weight: 400;
  letter-spacing: normal;
}
.main-product-information .compare-at-price {
  font-size: 1.6rem;
  font-weight: 400;
}
.main-product-information .product-form__buttons {
  display: grid;
  grid-template-columns: 14.4rem minmax(0, 1fr);
  align-items: end;
  gap: 1.2rem;
}
.main-product-information .product-form__quantity {
  grid-column: 1;
  grid-row: 1;
  min-inline-size: 0;
}
.main-product-information .product-form__buttons > .add-to-cart-button-container {
  grid-column: 2;
  grid-row: 1;
  min-inline-size: 0;
  inline-size: 100%;
}
.main-product-information .product-form__subtotal {
  grid-column: 1 / -1;
  grid-row: 2;
  font-size: 1.3rem;
  line-height: 1.5;
}
.main-product-information .product-form-text__error,
.main-product-information .accelerated-checkout-block {
  grid-column: 1 / -1;
}
.main-product-information .quantity-selector,
.main-product-information .product-form__submit {
  min-block-size: var(--snt-product-control-height);
}
.main-product-information .quantity-selector {
  inline-size: 100%;
  border: 1px solid var(--color-border);
  border-radius: var(--inputs-radius);
}
.main-product-information .quantity__label {
  margin-block-end: .8rem;
  font-size: 1.3rem;
  font-weight: 500;
}
.main-product-information .product-form__submit {
  font-size: 1.5rem;
  font-weight: 600;
  letter-spacing: normal;
}
.template-product .section-product-tabs {
  border-block-start: 1px solid var(--color-border);
}
.template-product .section-product-tabs .tabs-item:not(:last-child)::after {
  content: none;
}
.template-product .section-product-tabs :is(.rte, .toggle-content) {
  max-inline-size: 82ch;
  font-size: var(--font-body--size);
  line-height: 1.7;
}
.template-product .section-product-tabs :is(.rte, .toggle-content) h2 {
  margin-block: 0 2rem;
  font-size: clamp(2.4rem, 2.2vw, 3rem);
  line-height: 1.2;
  letter-spacing: -.02em;
}
.template-product .section-product-tabs :is(.rte, .toggle-content) h3 {
  margin-block: 2.4rem 1rem;
  font-size: 2rem;
  line-height: 1.3;
}
.template-product .section-product-tabs :is(.rte, .toggle-content) dl {
  display: grid;
  grid-template-columns: minmax(12rem, 1fr) minmax(0, 2fr);
  column-gap: 2rem;
  row-gap: 1rem;
  margin: 0 0 2rem;
}
.template-product .section-product-tabs :is(.rte, .toggle-content) :is(dt, dd) {
  margin: 0;
  padding-block: 1rem;
  border-block-end: 1px solid var(--color-border);
  overflow-wrap: anywhere;
}
.template-product .custom-vstar-review-widget {
  inline-size: 100%;
  min-inline-size: 0;
}
@media (max-width: 749px) {
  .template-product .main-product-information {
    --snt-product-space: 1.2rem;
    --snt-product-control-height: 5rem;
  }
  .main-product-information .product-information__grid {
    row-gap: 2.8rem;
  }
  .main-product-information .product-form__buttons {
    grid-template-columns: 12.8rem minmax(0, 1fr);
    gap: 1rem;
  }
  .template-product .section-product-tabs :is(.rte, .toggle-content) {
    font-size: 1.5rem;
  }
}

body.template-product .product-details:has(.sentorise-product-intro) .product-icon-list.vstar-star {
  display: none !important;
}

/* Keep native copyright and policy links above the app launcher area. */
.footer-bottom.spacing {
  --snt-footer-launcher-room: 72px;
  padding-block-end: max(var(--p-spacing-b, 20px), calc(var(--snt-chat-clearance, 20px) + var(--snt-footer-launcher-room)));
}
@media (max-width: 374px) {
  shopify-chat {
    --shopify-chat-activator-offset: calc(var(--snt-chat-clearance, 20px) + 56px);
  }
  .footer-bottom.spacing { --snt-footer-launcher-room: 128px; }
}
/* Share content rows across native collection/search cards without truncating text. */
@supports (grid-template-rows: subgrid) and selector(:has(*)) {
  /* Unknown, horizontal or mixed card structures retain the original layout. */
  .product-grid.product-grid--grid[product-grid-view="default"]:not([data-view="1"]):not([data-view="list"]):not(.product-grid--organic):not(:has(
    > :not(.product-grid__item),
    > .product-grid__item--banner,
    > .product-grid__item > :not(.card--block.product-card-wrapper),
    > .product-grid__item > .card-wrapper > :not(.card),
    > .product-grid__item > .card-wrapper > .card > :not(template, .card--block-media, .card-product-information, .card-compare--inline),
    > .product-grid__item > .card-wrapper > .card > .card-product-information > :not(.card--block-title, .card-information, .collection-icon-list.vstar-star, .card--block-variant, .card--block-button),
    .card--horizontal, .card.flex-row, .card-product-information.layout-panel-flex--row, .card-product-information.mobile-row,
    .card > .card--block-media ~ .card--block-media,
    .card > .card-product-information ~ .card-product-information,
    .card-product-information > .card--block-title ~ .card--block-title,
    .card-product-information > .card-information ~ .card-information,
    .card-product-information > .collection-icon-list.vstar-star ~ .collection-icon-list.vstar-star,
    .card-product-information > .card--block-variant ~ .card--block-variant,
    .card-product-information > .card--block-button ~ .card--block-button
  )) {
    grid-auto-flow: row;
    grid-auto-rows: auto;
    row-gap: 0;

    & > .product-grid__item {
      display: grid;
      grid-row: span 6;
      grid-template-rows: subgrid;
      grid-template-columns: minmax(0, 1fr);
      row-gap: 0;
      min-width: 0;
      margin-block-end: var(--grid-desktop-vertical-spacing, 3rem);

      @media (max-width: 749px) {
        margin-block-end: var(--grid-mobile-vertical-spacing, 1.5rem);
      }
    }
    & > .product-grid__item > .card--block.product-card-wrapper,
    & > .product-grid__item > .card--block.product-card-wrapper > .card {
      display: grid;
      grid-row: 1 / -1;
      grid-template-rows: subgrid;
      grid-template-columns: minmax(0, 1fr);
      height: auto;
      min-width: 0;
      row-gap: 0;
    }
    & > .product-grid__item > .card--block.product-card-wrapper > .card {
      row-gap: var(--gap, 12px);
    }
    & .card > .card--block-media {
      grid-row: 1;
      align-self: start;
    }
    & .card > .card-product-information {
      display: grid;
      grid-row: 2 / 7;
      grid-template-rows: subgrid;
      grid-template-columns: minmax(0, 1fr);
      gap: var(--gap, 10px);
      align-items: start;
      min-width: 0;
    }
    & .card > .card-product-information > .card--block-title { grid-row: 1; }
    & .card > .card-product-information > .card-information { grid-row: 2; }
    & .card > .card-product-information > .collection-icon-list.vstar-star { grid-row: 3; }
    & .card > .card-product-information > .card--block-variant { grid-row: 4; }
    & .card > .card-product-information > .card--block-button { grid-row: 5; }

    @media (max-width: 749px) {
      & .card > .card-product-information > .card--block-button {
        padding-inline: 0;
      }
      & .card > .card-product-information > .card--block-button .quick-add__submit {
        font-size: 1.4rem;
        line-height: 1.4;
        letter-spacing: 0;
        padding-inline: 0.8rem;
        min-height: 4.5rem;
      }
    }
  }
}

/* Restore native group alignment inside Sentorise's equal-height document cards.
   Ella's items-same-height rule otherwise makes the inner content auto-height
   and forces justify-content:flex-start despite the editable group setting. */
#MainContent :is(
  [id$="__product_manuals"],
  [id$="__transport_records"],
  [id$="__vehicle_approval"],
  [id$="__series_conformity"],
  [id$="__documented_quality"]
) .multicolumn-list.items-same-height > li > .group-block--height-fill {
  display: flex;
  flex-direction: column;
}

#MainContent :is(
  [id$="__product_manuals"],
  [id$="__transport_records"],
  [id$="__vehicle_approval"],
  [id$="__series_conformity"],
  [id$="__documented_quality"]
) .multicolumn-list.items-same-height > li > .group-block--height-fill > .group-block-content.layout-panel-flex--column {
  flex: 1 1 auto;
  height: auto;
  justify-content: var(--vertical-alignment, flex-start);
}

@media screen and (max-width: 749px) {
  #MainContent :is(
    [id$="__product_manuals"],
    [id$="__transport_records"],
    [id$="__vehicle_approval"],
    [id$="__series_conformity"],
    [id$="__documented_quality"]
  ) .multicolumn-list.items-same-height > li > .group-block--height-fill > .group-block-content.layout-panel-flex--column {
    justify-content: var(--vertical-alignment-mobile, var(--vertical-alignment, flex-start));
  }
}

/* Main product price hierarchy. Ella still owns prices and variant updates. */
.main-product-information :where(.product-details > .group-block > .group-block-content > product-price) {
  --snt-price-size: var(--font-size--3xl);
  --snt-price-size-mobile: 2.8rem;
  --snt-price-color: var(--color-primary);
  --snt-price-gap: 1rem;
  --snt-price-row-gap: .6rem;
  --snt-price-badge-padding-block: .4rem;
  --snt-price-badge-padding-inline: .8rem;
  --snt-price-badge-radius: .6rem;
  --snt-price-badge-background: color-mix(in srgb, var(--color-primary) 9%, var(--color-background));
}

.main-product-information :where(.product-details > .group-block > .group-block-content > product-price) .price-product-container {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--snt-price-row-gap) var(--snt-price-gap);
  min-inline-size: 0;
  max-inline-size: 100%;
  line-height: 1.2;
}

.main-product-information :where(.product-details > .group-block > .group-block-content > product-price) .price-item {
  margin: 0;
  letter-spacing: normal;
  font-variant-numeric: tabular-nums;
}

.main-product-information :where(.product-details > .group-block > .group-block-content > product-price) .price-item--last {
  font-size: var(--snt-price-size);
  font-weight: 700;
  color: var(--snt-price-color);
}

.main-product-information :where(.product-details > .group-block > .group-block-content > product-price) .compare-at-price {
  font-size: var(--font-size--md);
  font-weight: 400;
  color: var(--color-foreground);
  text-decoration-thickness: .1rem;
}

.main-product-information :where(.product-details > .group-block > .group-block-content > product-price) .price-item--percent {
  padding: var(--snt-price-badge-padding-block) var(--snt-price-badge-padding-inline);
  font-family: var(--font-body--family);
  font-size: var(--font-size--sm);
  line-height: 1.3;
  font-weight: 600;
  white-space: nowrap;
  color: var(--snt-price-color);
  background: var(--snt-price-badge-background);
  border-radius: var(--snt-price-badge-radius);
}

.main-product-information :where(.product-details > .group-block > .group-block-content > product-price) .unit-price {
  flex-basis: 100%;
}

/* Product-specific usage note; no alert/live region for static information. */
.main-product-information .sentorise-usage-note {
  --snt-note-gap: .8rem;
  --snt-note-padding: 1.4rem;
  --snt-note-radius: .6rem;
  --snt-note-line: .3rem;
  --snt-note-color: var(--color-warning-text);
  --snt-note-background: var(--color-warning-background);
  display: grid;
  gap: var(--snt-note-gap);
  margin-block-start: 1.2rem;
  padding: var(--snt-note-padding);
  border-inline-start: var(--snt-note-line) solid var(--snt-note-color);
  font-family: var(--font-body--family);
  font-size: var(--font-size--sm);
  line-height: 1.5;
  color: var(--snt-note-color);
  background: var(--snt-note-background);
  border-radius: var(--snt-note-radius);
}

.main-product-information .sentorise-usage-note__title,
.main-product-information .sentorise-usage-note__limits,
.main-product-information .sentorise-usage-note__body {
  margin: 0;
  color: inherit;
}

.main-product-information .sentorise-usage-note__title {
  font-size: var(--font-size--md);
  font-weight: 700;
}

.main-product-information .sentorise-usage-note__limits {
  display: flex;
  flex-wrap: wrap;
  gap: .4rem 1.2rem;
  font-weight: 600;
}

@media (max-width: 749px) {
  .main-product-information :where(.product-details > .group-block > .group-block-content > product-price) {
    --snt-price-size: var(--snt-price-size-mobile);
  }
}

/* The legacy 8% offer (Klaviyo RkTbDP) obscures product options. Keep the native footer subscription form available. */
[role="dialog"]:has(form[data-testid="klaviyo-form-RkTbDP"]) {
  display: none !important;
}


/* Sentorise App policy: document navigation and readable source tables. */
#MainContent .sentorise-app-policy-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 24px;
  width: 100%;
  align-items: start;
}
#MainContent .sentorise-app-policy-layout .sentorise-policy-directory {
  min-width: 0;
  padding: 18px;
  border: 1px solid rgb(var(--color-foreground-rgb) / 0.18);
  border-radius: 8px;
  background: var(--color-background);
  font-size: 14px;
  line-height: 1.5;
}
#MainContent .sentorise-app-policy-layout .sentorise-policy-directory summary {
  cursor: pointer;
  font-weight: 600;
  min-height: 44px;
  align-content: center;
}
#MainContent .sentorise-app-policy-layout .sentorise-policy-directory ul {
  list-style: none;
  padding: 0;
  margin: 8px 0 0;
}
#MainContent .sentorise-app-policy-layout .sentorise-policy-directory li { margin: 0; }
#MainContent .sentorise-app-policy-layout .sentorise-policy-directory a {
  display: block;
  padding: 10px 0;
  min-height: 44px;
  text-decoration: none;
  overflow-wrap: anywhere;
}
#MainContent .sentorise-app-policy-layout .sentorise-policy-directory a:hover { text-decoration: underline; }
#MainContent .sentorise-app-policy-layout .snt-legacy-content {
  min-width: 0;
  padding-block-start: 0;
  line-height: 1.65;
}
#MainContent .sentorise-app-policy-layout h2 {
  scroll-margin-top: 140px;
  margin-block: 40px 20px;
}
#MainContent .sentorise-app-policy-layout h3 { margin-block: 28px 16px; }
#MainContent .sentorise-app-policy-table {
  width: 100%;
  max-width: 100%;
  overflow-x: auto;
  margin-block: 24px;
  border: 1px solid rgb(var(--color-foreground-rgb) / 0.2);
  border-radius: 8px;
}
#MainContent .sentorise-app-policy-table table {
  display: table !important;
  table-layout: fixed;
  width: 100% !important;
  min-width: 620px;
  max-width: none !important;
  height: auto !important;
  margin: 0 !important;
  border-collapse: collapse;
}
#MainContent .sentorise-app-policy-table :is(th, td) {
  width: auto !important;
  height: auto !important;
  padding: 14px !important;
  border: 1px solid rgb(var(--color-foreground-rgb) / 0.2) !important;
  vertical-align: top;
  overflow-wrap: anywhere;
  white-space: normal;
}
#MainContent .sentorise-app-policy-table th {
  font-weight: 600;
  color: var(--color-foreground-heading);
  background: rgb(var(--color-foreground-rgb) / 0.04);
  text-align: left;
}
#MainContent .sentorise-app-policy-table p { margin: 0 !important; }
#MainContent .sentorise-app-policy-table :is(a, th, td):focus-visible,
#MainContent .sentorise-app-policy-table:focus-visible,
#MainContent .sentorise-app-policy-layout .sentorise-policy-directory :is(a, summary):focus-visible {
  outline: 2px solid currentColor;
  outline-offset: 3px;
}
@media (min-width: 990px) {
  #MainContent .sentorise-app-policy-layout {
    grid-template-columns: 220px minmax(0, 1fr);
    gap: 32px;
  }
  #MainContent .sentorise-app-policy-layout .sentorise-policy-directory {
    position: sticky;
    top: 125px;
    max-height: calc(100vh - 155px);
    overflow-y: auto;
  }
  #MainContent .sentorise-app-policy-layout .sentorise-policy-directory summary {
    cursor: default;
    list-style: none;
  }
  #MainContent .sentorise-app-policy-layout .sentorise-policy-directory summary::-webkit-details-marker { display: none; }
}


/* Honor editable card alignment throughout the expanded guides and Blog. */
#MainContent :is(
  [id$="__account_directory"],
  [id$="__account_prepare"],
  [id$="__account_start"],
  [id$="__account_support"],
  [id$="__after_submission"],
  [id$="__app"],
  [id$="__app_compatibility"],
  [id$="__app_device_identity"],
  [id$="__app_first_connection"],
  [id$="__app_information"],
  [id$="__app_permissions"],
  [id$="__app_support"],
  [id$="__bluetooth"],
  [id$="__bluetooth_device_info"],
  [id$="__bluetooth_help"],
  [id$="__charging_plan"],
  [id$="__charging_profile"],
  [id$="__connection_checks"],
  [id$="__current_limits"],
  [id$="__daily_load"],
  [id$="__featured_reads"],
  [id$="__finder"],
  [id$="__format_comparison"],
  [id$="__guide"],
  [id$="__guide_directory"],
  [id$="__help"],
  [id$="__hub_header"],
  [id$="__installation_fit"],
  [id$="__learning_paths"],
  [id$="__prepare"],
  [id$="__press"],
  [id$="__press_asset_use"],
  [id$="__press_enquiries"],
  [id$="__request_type"],
  [id$="__site_map_start"],
  [id$="__sources"],
  [id$="__submission_plan"],
  [id$="__temperature"],
  [id$="__worked_checks"]
) .multicolumn-list.items-same-height > li > .group-block--height-fill {
  display: flex;
  flex-direction: column;
}
#MainContent :is(
  [id$="__account_directory"],
  [id$="__account_prepare"],
  [id$="__account_start"],
  [id$="__account_support"],
  [id$="__after_submission"],
  [id$="__app"],
  [id$="__app_compatibility"],
  [id$="__app_device_identity"],
  [id$="__app_first_connection"],
  [id$="__app_information"],
  [id$="__app_permissions"],
  [id$="__app_support"],
  [id$="__bluetooth"],
  [id$="__bluetooth_device_info"],
  [id$="__bluetooth_help"],
  [id$="__charging_plan"],
  [id$="__charging_profile"],
  [id$="__connection_checks"],
  [id$="__current_limits"],
  [id$="__daily_load"],
  [id$="__featured_reads"],
  [id$="__finder"],
  [id$="__format_comparison"],
  [id$="__guide"],
  [id$="__guide_directory"],
  [id$="__help"],
  [id$="__hub_header"],
  [id$="__installation_fit"],
  [id$="__learning_paths"],
  [id$="__prepare"],
  [id$="__press"],
  [id$="__press_asset_use"],
  [id$="__press_enquiries"],
  [id$="__request_type"],
  [id$="__site_map_start"],
  [id$="__sources"],
  [id$="__submission_plan"],
  [id$="__temperature"],
  [id$="__worked_checks"]
) .multicolumn-list.items-same-height > li > .group-block--height-fill > .group-block-content.layout-panel-flex--column {
  flex: 1 1 auto;
  height: auto;
  justify-content: var(--vertical-alignment, flex-start);
}
@media (max-width: 749px) {
  #MainContent :is(
  [id$="__account_directory"],
  [id$="__account_prepare"],
  [id$="__account_start"],
  [id$="__account_support"],
  [id$="__after_submission"],
  [id$="__app"],
  [id$="__app_compatibility"],
  [id$="__app_device_identity"],
  [id$="__app_first_connection"],
  [id$="__app_information"],
  [id$="__app_permissions"],
  [id$="__app_support"],
  [id$="__bluetooth"],
  [id$="__bluetooth_device_info"],
  [id$="__bluetooth_help"],
  [id$="__charging_plan"],
  [id$="__charging_profile"],
  [id$="__connection_checks"],
  [id$="__current_limits"],
  [id$="__daily_load"],
  [id$="__featured_reads"],
  [id$="__finder"],
  [id$="__format_comparison"],
  [id$="__guide"],
  [id$="__guide_directory"],
  [id$="__help"],
  [id$="__hub_header"],
  [id$="__installation_fit"],
  [id$="__learning_paths"],
  [id$="__prepare"],
  [id$="__press"],
  [id$="__press_asset_use"],
  [id$="__press_enquiries"],
  [id$="__request_type"],
  [id$="__site_map_start"],
  [id$="__sources"],
  [id$="__submission_plan"],
  [id$="__temperature"],
  [id$="__worked_checks"]
  ) .multicolumn-list.items-same-height > li > .group-block--height-fill > .group-block-content.layout-panel-flex--column {
    justify-content: var(--vertical-alignment-mobile, var(--vertical-alignment, flex-start));
  }
}

/* Readable country and language menus, retaining Ella's editable theme colors. */
.localization-form {
  --snt-localization-min-font-size: 1.6rem;
  --snt-localization-row-height: 4.8rem;
  --snt-localization-row-padding: 1rem;
  --snt-localization-inline-padding: 1.6rem;
  --snt-localization-gap: 0.8rem;
  --snt-localization-font-weight: 500;
  --snt-localization-selected-weight: 600;
  --snt-localization-line-height: 1.5;
}
.localization-form .disclosure__link {
  min-height: var(--snt-localization-row-height);
  grid-template-columns: auto minmax(0, 1fr) auto;
  gap: var(--snt-localization-gap);
  padding: var(--snt-localization-row-padding) var(--snt-localization-inline-padding);
  color: var(--color-foreground);
  font-size: max(var(--menu-localization-font-size, 1.6rem), var(--snt-localization-min-font-size));
  font-weight: var(--snt-localization-font-weight);
  line-height: var(--snt-localization-line-height);
  letter-spacing: normal;
  white-space: normal;
}
.localization-form .disclosure__link:not(:has(.icon-flag)) {
  grid-template-columns: minmax(0, 1fr) auto;
}
.localization-form .disclosure__link .country {
  min-width: 0;
  white-space: normal;
  overflow-wrap: anywhere;
  text-overflow: clip;
}
.localization-form .disclosure__link .country-code {
  white-space: nowrap;
  color: inherit;
  font-size: inherit;
}
.localization-form .disclosure__link[aria-current='true'] {
  font-weight: var(--snt-localization-selected-weight);
  background: rgb(var(--color-foreground-rgb) / var(--opacity-8));
}
.localization-form .disclosure__link:focus-visible {
  color: var(--color-foreground);
  background: rgb(var(--color-foreground-rgb) / var(--opacity-8));
  outline: 0.2rem solid currentColor;
  outline-offset: -0.2rem;
}
.localization-form .language-selector__label,
.localization-form .country-filter__input,
.localization-form .details__summary {
  color: var(--color-foreground);
  font-size: max(var(--menu-localization-font-size, 1.6rem), var(--snt-localization-min-font-size));
  line-height: var(--snt-localization-line-height);
}
@media (min-width: 1025px) {
  .localization-form .country-selector__list {
    width: 34rem;
    max-width: calc(100vw - 3.2rem);
    max-height: min(36rem, calc(100dvh - 20rem));
  }
  .localization-form .language-selector__list {
    min-width: 20rem;
    max-width: calc(100vw - 3.2rem);
  }
}



/* Press assets: contain original artwork in equal, readable preview frames. */
[id$="__press_asset_use"] .group-block:has(> .group-block-content > .image-block) {
  width: 100%;
  min-height: 200px;
  display: flex;
  align-items: center;
}
[id$="__press_asset_use"] .image-block {
  width: min(100%, 360px);
  max-width: 360px;
  margin-inline: auto;
}
[id$="__press_asset_use"] .image-block__image {
  width: 100%;
  height: auto;
  max-height: 168px;
  object-fit: contain;
}
[id$="__press_asset_use"] :is(.button, .button-secondary),
[id$="__press"] :is(.button, .button-secondary) {
  min-height: 44px;
  white-space: normal;
}


/* Sentorise services: editable Ella cards, with a compact two-row desktop layout. */
[id$="__service_support"] .multicolumn-list {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 20px;
}
[id$="__service_support"] .multicolumn-list > li {
  width: 100%;
  min-width: 0;
  display: flex;
}
[id$="__service_support"] .multicolumn-list > li > .group-block {
  width: 100%;
  display: flex;
  min-height: 240px;
}
[id$="__service_support"] .multicolumn-list > li > .group-block > .group-block-content {
  flex: 1;
  width: 100%;
  height: auto;
  justify-content: space-between;
}
[id$="__service_support"] .text-block h3 {
  font-size: 2.2rem;
  line-height: 1.25;
}
[id$="__service_support"] .icon-block {
  align-self: flex-end;
  color: var(--color-primary);
}
[id$="__service_support"] .image-block {
  width: 100%;
  max-width: 280px;
  margin: 16px auto 0;
}
[id$="__service_support"] .image-block__image {
  width: 100%;
  height: auto;
  max-height: 210px;
  object-fit: contain;
}
[id$="__service_support"] .text-block a {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  color: var(--color-primary);
  font-weight: 600;
  text-underline-offset: 4px;
  overflow-wrap: anywhere;
}
[id$="__service_support"] .text-block a:hover { color: var(--color-primary-hover); }
[id$="__service_support"] a:focus-visible {
  outline: 2px solid currentColor;
  outline-offset: 4px;
}
@media (min-width: 750px) {
  [id$="__service_support"] .multicolumn-list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (min-width: 1200px) {
  [id$="__service_support"] .multicolumn-list { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  [id$="__service_support"] .multicolumn-list > li:nth-child(1) { grid-column: 1; grid-row: 1 / span 2; }
  [id$="__service_support"] .multicolumn-list > li:nth-child(2) { grid-column: 2; grid-row: 1; }
  [id$="__service_support"] .multicolumn-list > li:nth-child(3) { grid-column: 3; grid-row: 1; }
  [id$="__service_support"] .multicolumn-list > li:nth-child(4) { grid-column: 2; grid-row: 2; }
  [id$="__service_support"] .multicolumn-list > li:nth-child(5) { grid-column: 3; grid-row: 2; }
  [id$="__service_support"] .multicolumn-list > li:nth-child(6) { grid-column: 4; grid-row: 1 / span 2; }
  [id$="__service_support"] .multicolumn-list > li:nth-child(6) .icon-block {
    align-self: center;
    margin-block: 60px 24px;
  }
}


/* Sentorise card presentation: enabled only by the native card checkbox. */
.snt-merchandise-card {
  min-width: 0;
  height: 100%;
}

.snt-merchandise-card > .card {
  --snt-card-accent: var(--color-primary, #096748);
  --snt-card-accent-hover: var(--color-primary-hover, #102f2a);
  min-width: 0;
  height: 100%;
  align-items: stretch;
}

.snt-merchandise-card > .card > .card--block-media {
  flex: 0 0 auto;
  width: 100%;
}

.snt-merchandise-card > .card > .card--block-media .media > img {
  object-fit: contain;
}

.snt-merchandise-card .card--block-title {
  width: 100%;
  min-width: 0;
}

.snt-merchandise-card .card--block-title .text-block,
.snt-merchandise-card .snt-regional-card__title {
  margin: 0;
  line-height: 1.4;
  text-wrap: wrap;
  overflow-wrap: anywhere;
}

.snt-merchandise-card .snt-product-card-summary,
.snt-merchandise-card .snt-regional-card > .rte {
  margin: 0;
  font-size: var(--snt-card-summary-size, 14px);
  line-height: 1.5;
  color: var(--color-foreground, #40534a);
  overflow-wrap: anywhere;
}

.snt-merchandise-card .snt-regional-card > .rte > :first-child { margin-block-start: 0; }
.snt-merchandise-card .snt-regional-card > .rte > :last-child { margin-block-end: 0; }

.snt-merchandise-card > .card > .card-information {
  width: 100%;
  min-width: 0;
  margin-block-start: auto;
}

.snt-merchandise-card .price {
  width: 100%;
  line-height: 1.3;
  letter-spacing: 0;
}

.snt-merchandise-card .price__container { width: 100%; }
.snt-merchandise-card .price--on-sale .price__sale {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  align-content: start;
  gap: 5px 8px;
}

.snt-merchandise-card .price .price-item {
  margin: 0;
  font-variant-numeric: tabular-nums;
}

.snt-merchandise-card .price__regular > .price-item--regular,
.snt-merchandise-card .price__sale > .price-item--last {
  color: var(--snt-card-accent);
  font-size: 22px;
  font-weight: 700;
}

.snt-merchandise-card .price__sale > .price-item--last { order: 0; }
.snt-merchandise-card .price__sale > span:not(.price-item):not(.visually-hidden) { order: 1; }
.snt-merchandise-card .price__sale s.price-item--regular {
  color: #62726b;
  font-size: 14px;
  font-weight: 400;
  text-decoration-thickness: 1px;
}

.snt-merchandise-card .price__sale > .price-item--percent {
  order: 2;
  color: #62726b;
  font-size: 14px;
  font-weight: 400;
}

.snt-merchandise-card > .card > .view-details-block {
  width: 100%;
  padding-inline: 0;
}

.snt-merchandise-card > .card > .view-details-block .button,
.snt-merchandise-card > .snt-regional-card > .button {
  --color-primary-button-text: #fff;
  --color-primary-button-background: var(--snt-card-accent);
  --color-primary-button-border: var(--snt-card-accent);
  --color-primary-button-hover-text: #fff;
  --color-primary-button-hover-background: var(--snt-card-accent-hover);
  --color-primary-button-hover-border: var(--snt-card-accent-hover);
  --color-secondary-button-text: #fff;
  --color-secondary-button-background: var(--snt-card-accent);
  --color-secondary-button-border: var(--snt-card-accent);
  --color-secondary-button-hover-text: #fff;
  --color-secondary-button-hover-background: var(--snt-card-accent-hover);
  --color-secondary-button-hover-border: var(--snt-card-accent-hover);
  width: 100%;
  min-height: 48px;
  font-size: 16px;
  font-weight: 600;
  line-height: 1.4;
  letter-spacing: 0;
  text-align: center;
  white-space: normal;
}

.snt-merchandise-card > .card > .view-details-block .button:focus-visible,
.snt-merchandise-card > .snt-regional-card > .button:focus-visible {
  outline: 2px solid var(--snt-card-accent);
  outline-offset: 3px;
}

@media (min-width: 750px) {
  .snt-merchandise-card .card--block-title .text-block,
  .snt-merchandise-card .snt-regional-card__title { min-block-size: 3lh; }
  .snt-merchandise-card .snt-product-card-summary { min-block-size: 3lh; }
  .snt-merchandise-card .price__regular,
  .snt-merchandise-card .price--on-sale .price__sale { min-height: 52px; }
}

/* Sentorise Ella 7.3: native Products menu, September 2026.
   This is an increment for the current refinements asset, not a replacement. */
[id$="__header_default"] .mega-menu--3 .price-item--percent {
  display: none;
}

[id$="__header_default"] .mega-menu--3 .resource-card {
  column-gap: 1.4rem;
}

[id$="__header_default"] .mega-menu--3 .resource-card__image {
  object-fit: contain;
}

/* Ella's text-only grandchildren use a three-column media grid by default.
   Keep these four navigation groups readable as full-width touch links. */
.drawer--menu-multi-tab :is(#childlink-batteries, #childlink-charging-monitoring, #childlink-applications, #childlink-guides) > .menu-drawer__menu-grid {
  grid-template-columns: minmax(0, 1fr);
  gap: 0;
}

.drawer--menu-multi-tab :is(#childlink-batteries, #childlink-charging-monitoring, #childlink-applications, #childlink-guides) > .menu-drawer__menu-grid > li > a {
  align-items: flex-start;
  justify-content: center;
  min-height: 44px;
  padding-block: 1rem;
  text-align: left;
}



/* Products overview banner: native content, with an uncropped product image. */
#MainContent [id$="__products_banner"] .media-banner {
  display: grid;
  grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr);
  grid-template-rows: auto;
  grid-template-areas: "content media";
  align-items: center;
  gap: 32px;
  width: min(1280px, calc(100% - 64px));
  margin-inline: auto;
  padding: 24px 0;
  min-height: 0;
  height: auto;
}
#MainContent [id$="__products_banner"] .media-banner > .media-block {
  grid-area: media;
  position: relative;
  inset: auto;
  width: 100%;
  height: auto;
  min-height: 0;
  max-height: none;
  aspect-ratio: 3 / 2;
  overflow: hidden;
}
#MainContent [id$="__products_banner"] .media-block__media {
  display: block;
  position: static;
  width: 100%;
  height: 100%;
  object-fit: contain;
  object-position: center;
}
#MainContent [id$="__products_banner"] .media-banner > .media-banner__content {
  grid-area: content;
  position: relative;
  inset: auto;
  transform: none;
  width: 100%;
  min-width: 0;
  height: auto;
  max-height: none;
  padding: 28px 0;
  overflow: visible;
}
#MainContent [id$="__products_banner"] h1 {
  font-size: clamp(36px, 3.8vw, 54px);
  line-height: 1.08;
  letter-spacing: -.025em;
  margin: 0;
}
#MainContent [id$="__products_banner"] [class*="__copy"] p {
  max-width: 470px;
  font-size: 18px;
  line-height: 1.55;
}
#MainContent [id$="__products_banner"] [class*="__caption"] p {
  font-size: 14px;
  line-height: 1.5;
}
#MainContent [id$="__products_banner"] :is(.button, .button-secondary) {
  min-height: 48px;
  font-size: 16px;
}
@media (max-width: 749px) {
  #MainContent [id$="__products_banner"] .media-banner {
    display: flex;
    flex-direction: column;
    width: 100%;
    gap: 0;
    padding: 0;
  }
  #MainContent [id$="__products_banner"] .media-banner > .media-block {
    flex: 0 0 auto;
    width: 100%;
  }
  #MainContent [id$="__products_banner"] .media-banner > .media-banner__content {
    padding: 28px 24px 32px;
  }
  #MainContent [id$="__products_banner"] h1 {
    font-size: clamp(32px, 8.5vw, 40px);
  }
  #MainContent [id$="__products_banner"] [class*="__copy"] p {
    font-size: 16px;
    line-height: 1.5;
  }
  #MainContent [id$="__products_banner"] :is(.button, .button-secondary) {
    width: 100%;
  }
}
