:root {
  color-scheme: light;
  --kemove-page: 250 250 250;
  --kemove-surface: 255 255 255;
  --kemove-surface-subtle: 246 246 246;
  --kemove-text: 26 26 26;
  --kemove-muted: 102 102 102;
  --kemove-faint: 138 138 138;
  --kemove-border: 229 229 229;
  --kemove-border-strong: 210 210 210;
  --kemove-accent: 0 102 255;
  --kemove-radius: 8px;
  --kemove-shadow-xs: 0 1px 2px rgb(0 0 0 / 4%);
  --kemove-shadow-sm: 0 10px 28px rgb(0 0 0 / 6%);
  --kemove-card-shadow: 0 14px 36px rgb(0 0 0 / 7%);
  --kemove-ease-out: cubic-bezier(0.22, 1, 0.36, 1);
}

html {
  background: rgb(var(--kemove-page));
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

body {
  color: rgb(var(--kemove-text));
  background: rgb(var(--kemove-page));
}

::selection {
  color: #fff;
  background: rgb(var(--kemove-accent));
}

:is(h1, h2, h3, h4, h5, h6) {
  color: rgb(var(--kemove-text));
  letter-spacing: 0;
  text-wrap: balance;
}

:is(p, .rte) {
  text-wrap: pretty;
}

:is(a, button, input, select, textarea, [tabindex]):focus-visible {
  outline: 2px solid rgb(var(--kemove-accent));
  outline-offset: 3px;
}

.button:not(.button--link, .button--text, .button--icon),
.shopline-element-buy-now {
  min-height: 42px;
  font-size: 14px;
  font-weight: 600;
  letter-spacing: 0;
}

.button--link,
.button--text {
  font-size: 14px;
  font-weight: 600;
  text-decoration-thickness: 1px !important;
  text-underline-offset: 5px;
}

.product-price {
  font-variant-numeric: tabular-nums;
}

@media (max-width: 959px) {
  :root {
    --kemove-card-shadow: 0 8px 24px rgb(0 0 0 / 6%);
  }

  .button:not(.button--link, .button--text, .button--icon),
  .shopline-element-buy-now {
    min-height: 44px;
  }
}

.header-section.transparent:not(:hover) {
  --header-transparent-color-text: 255, 255, 255;
}

.theme-sticky-header--sticky .header-section.transparent {
  --header-transparent-color-text: var(--header-color-text);
}

.theme-sticky-header--sticky
  .header-section.transparent:not(:hover)
  .header-action-bar,
.theme-sticky-header--sticky
  .header-section.transparent:not(:hover)
  .header-action-bar
  :is(.button, .dropdown-menu__label, .dropdown-menu__label-text, .dropdown-menu__label-arrow, svg) {
  color: rgb(var(--header-color-text)) !important;
}

.theme-sticky-header--sticky
  .header-section.transparent:not(:hover)
  .header-action-bar__search-bar,
.theme-sticky-header--sticky
  .header-section.transparent:not(:hover)
  .header-action-bar__search-bar-icon {
  color: rgb(var(--header-color-text)) !important;
}

.header-section .header__logo-image,
.theme-sticky-header--sticky .header-section.transparent .header__logo-image {
  filter: none !important;
}

/* KEMOVE 2026 homepage visual system */
:root {
  --kemove-font-stack: var(--sort-body-font, Barlow, Arial, sans-serif);
  --kemove-heading-font-stack: var(--sort-title-font, Barlow, Arial, sans-serif);
  --kemove-home-width: 1320px;
  --kemove-page: 245 247 250;
  --kemove-surface: 255 255 255;
  --kemove-surface-subtle: 248 250 252;
  --kemove-text: 17 24 39;
  --kemove-muted: 107 114 128;
  --kemove-border: 229 231 235;
  --kemove-accent: 0 145 255;
  --kemove-cyan: 53 216 255;
  --kemove-shadow-sm: 0 10px 30px rgb(15 23 42 / 6%);
  --kemove-shadow-lg: 0 20px 60px rgb(15 23 42 / 16%);
}

html,
body {
  font-family: var(--kemove-font-stack);
}

body[data-page-type="index"] {
  color: #111827;
  background: #f5f7fa;
}

body[data-page-type="index"] :is(h1, h2, h3, h4, h5, h6) {
  font-family: var(--kemove-font-stack);
  letter-spacing: 0;
}

body[data-page-type="index"] .page-width {
  width: 100%;
  max-width: var(--kemove-home-width);
}

body[data-page-type="index"] .button:not(.button--link, .button--text, .button--icon),
body[data-page-type="index"] .shopline-element-buy-now {
  border-radius: 10px;
}

.announcement-bar__group-item {
  min-height: 34px;
  color: #fff;
  background: #050b14 !important;
}

.announcement-bar__group-item-inner {
  max-width: var(--kemove-home-width);
  margin-inline: auto;
}

.announcement-bar__group-item-inner .rte {
  color: rgb(255 255 255 / 86%);
  font-family: var(--kemove-font-stack);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0;
}

.header-section {
  --header-background: 255, 255, 255;
  --header-color-text: 17, 24, 39;
  font-family: var(--kemove-font-stack);
}

.header-section.transparent {
  background:
    linear-gradient(180deg, rgb(5 11 20 / 72%) 0%, rgb(5 11 20 / 22%) 72%, transparent 100%);
}

.theme-sticky-header--sticky .header-section.transparent,
.header-section:not(.transparent) {
  box-shadow: 0 10px 30px rgb(15 23 42 / 6%);
}

.header__container {
  transition:
    background-color 220ms ease,
    box-shadow 220ms ease,
    color 180ms ease;
}

@media (min-width: 960px) {
  .header-nav__link,
  .header-nav__item,
  .header-action-bar,
  .header-action-bar :is(a, button, .dropdown-menu__label, .dropdown-menu__label-text) {
    font-family: var(--kemove-font-stack) !important;
    font-size: 14px !important;
    font-weight: 750 !important;
    letter-spacing: 0 !important;
  }

  .header-nav :is(a, button):hover,
  .header-action-bar :is(a, button, .dropdown-menu__label):hover {
    color: #0091ff !important;
  }
}

.footer {
  color: rgb(255 255 255 / 78%);
  background:
    radial-gradient(circle at 10% 0%, rgb(0 145 255 / 14%), transparent 28%),
    linear-gradient(180deg, #050b14 0%, #080a0f 100%) !important;
  border-block-start: 1px solid rgb(255 255 255 / 9%);
}

.footer .page-width {
  max-width: var(--kemove-home-width);
}

.footer__inner > .footer__group:first-child {
  padding-block: 46px 34px;
}

.footer__menu-title,
.footer__custom-text-title,
.footer__email-subscribe-title,
.footer__social-media-title {
  color: #fff !important;
  font-size: 14px;
  font-weight: 800;
}

.footer__menu-content,
.footer__menu-item a,
.footer__custom-text-content,
.footer__icon-text-item,
.footer__localization-form {
  color: rgb(255 255 255 / 66%) !important;
  font-size: 13px;
}

.footer__menu-item a:hover,
.footer__copyright-menu a:hover {
  color: #35d8ff !important;
}

.footer__email-subscribe .field,
.footer__email-subscribe .field__input {
  color: #fff !important;
  background: rgb(255 255 255 / 6%) !important;
  border-color: rgb(255 255 255 / 16%) !important;
  border-radius: 10px !important;
}

.footer__email-subscribe .field:focus-within {
  border-color: rgb(53 216 255 / 56%) !important;
  box-shadow: 0 0 0 3px rgb(53 216 255 / 12%) !important;
}

.footer__inner > .footer__group:nth-child(2) {
  border-block-color: rgb(255 255 255 / 10%) !important;
}

.footer__copyright,
.footer__copyright-text,
.footer__copyright-menu,
.footer__copyright-menu a {
  color: rgb(255 255 255 / 50%) !important;
}

@media (max-width: 959px) {
  :root {
    --kemove-home-width: 100%;
  }

  .footer__inner > .footer__group:first-child {
    padding-block: 30px 22px;
  }
}

/* KEMOVE brand-site width system. Hero media stays full-bleed; visible content
   aligns to one 1360px frame across the header, footer, pages, and PDP. */
:root {
  --kemove-home-width: 1360px;
  --kemove-content-width: 1360px;
}

.page-width:not(.page-width--fluid, .page-width--thin),
body[data-page-type="index"] .page-width {
  max-width: min(var(--kemove-content-width), calc(100vw - 64px)) !important;
}

@media (min-width: 960px) {
  .header-section .header__container-top-wrap.full-screen-width,
  .announcement-bar__group-item-inner,
  .footer .page-width {
    width: min(var(--kemove-content-width), calc(100vw - 64px)) !important;
    max-width: none !important;
    margin-inline: auto !important;
  }
}

@media (max-width: 959px) {
  :root {
    --kemove-home-width: 100%;
  }

  body[data-page-type="index"] .page-width {
    max-width: calc(100vw - 32px) !important;
  }
}

/* KEMOVE homepage background parity */
body[data-page-type="index"] {
  --color-page-background: 245, 247, 250;
  --color-background: 245, 247, 250;
  background-color: #f5f7fa !important;
}

body[data-page-type="index"] :is(
  .featured-collection-list__wrapper,
  .kemove-shop-category,
  .kemove-kbot-assistant,
  .kemove-scene-hotspots,
  .kemove-hub,
  .kemove-community-gallery,
  .kemove-reviewed-by
) {
  --color-page-background: 245, 247, 250;
  --color-background: 245, 247, 250;
  background-color: #f5f7fa !important;
}

/* KEMOVE global back-to-top affordance */
.kemove-back-to-top {
  position: fixed;
  right: 48px;
  bottom: clamp(160px, 27vh, 260px);
  z-index: 90;
  display: grid;
  place-items: center;
  width: 44px;
  height: 44px;
  padding: 0;
  color: #35d8ff;
  pointer-events: none;
  cursor: pointer;
  background: #050b14;
  border: 1px solid rgb(53 216 255 / 72%);
  border-radius: 50%;
  box-shadow: 0 8px 20px rgb(5 11 20 / 22%);
  opacity: 0;
  transform: translateY(12px);
  transition:
    opacity 180ms ease,
    transform 180ms cubic-bezier(0.22, 1, 0.36, 1),
    box-shadow 180ms ease;
}

.kemove-back-to-top.is-visible {
  pointer-events: auto;
  opacity: 1;
  transform: translateY(0);
}

.kemove-back-to-top svg {
  width: 21px;
  height: 21px;
}

@media (hover: hover) and (pointer: fine) {
  .kemove-back-to-top:hover {
    color: #fff;
    background: #0091ff;
    border-color: #0091ff;
    box-shadow: 0 8px 22px rgb(0 145 255 / 28%);
    transform: translateY(-2px);
  }
}

@media (max-width: 959px) {
  .kemove-back-to-top {
    right: 84px;
    bottom: 104px;
    width: 40px;
    height: 40px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .kemove-back-to-top {
    transition: none;
  }
}

/* KEMOVE 0.2.0 true 1360 frame.
   Most SHOPLINE sections use .page-width with 40px side padding, so the outer
   shell needs to be 1440px to leave a real 1360px content canvas. */
:root {
  --kemove-content-width: 1360px;
  --kemove-shell-width: 1440px;
  --kemove-shell-padding: 40px;
}

@media (min-width: 960px) {
  .page-width:not(.page-width--fluid, .page-width--thin),
  body[data-page-type="index"] .page-width,
  .footer .page-width {
    width: min(var(--kemove-shell-width), calc(100vw - 64px)) !important;
    max-width: none !important;
    padding-inline: var(--kemove-shell-padding) !important;
    margin-inline: auto !important;
  }

  .header-section .header__container-top-wrap.full-screen-width,
  .announcement-bar__group-item-inner {
    width: min(var(--kemove-content-width), calc(100vw - 64px)) !important;
    max-width: none !important;
    padding-inline: 0 !important;
    margin-inline: auto !important;
  }

  body[data-page-type="index"] :is(
    .slideshow,
    .slideshow__container,
    .slideshow-section,
    .section-slideshow
  ) .page-width {
    width: 100% !important;
    max-width: none !important;
    padding-inline: 0 !important;
  }
}

@media (max-width: 959px) {
  .page-width:not(.page-width--fluid, .page-width--thin),
  body[data-page-type="index"] .page-width,
  .footer .page-width {
    width: calc(100vw - 32px) !important;
    max-width: none !important;
    padding-inline: 0 !important;
  }
}

body[data-page-type="index"] :is(h1, h2, h3, h4, h5, h6) {
  font-family: var(--kemove-heading-font-stack);
  font-weight: 700;
  line-height: 1.2;
}

/* KEMOVE 0.2.1: one real 1360px content frame across homepage sections. */
@media (min-width: 960px) {
  body[data-page-type="index"] :is(
    .kemove-scene-hotspots__inner.page-width,
    .featured-collection-list__wrapper .page-width,
    .kemove-hub__inner.page-width,
    .kemove-reviewed-by__inner.page-width,
    .kemove-shop-category__inner.page-width,
    .kemove-trusted-users__inner.page-width,
    .kemove-featured-blogs__inner.page-width
  ) {
    width: min(var(--kemove-shell-width, 1440px), calc(100vw - 64px)) !important;
    max-width: none !important;
    padding-inline: var(--kemove-shell-padding, 40px) !important;
    margin-inline: auto !important;
    box-sizing: border-box !important;
  }

  body[data-page-type="index"] :is(
    .kemove-reviewed-by,
    .kemove-reviewed-by__title,
    .kemove-reviewed-by__text,
    .kemove-reviewed-logo
  ) {
    font-family: var(--kemove-font-stack, Barlow, Arial, sans-serif) !important;
  }

  body[data-page-type="index"] .kemove-reviewed-by__title {
    font-weight: 720 !important;
    letter-spacing: 0 !important;
  }

  body[data-page-type="index"] :is(
    .kemove-shop-category,
    .kemove-trusted-users
  ) {
    --kemove-rail-content: min(1360px, calc(100vw - 144px));
    --kemove-rail-peek: clamp(56px, calc((100vw - var(--kemove-rail-content)) / 2 - 20px), 180px);
  }

  body[data-page-type="index"] .kemove-shop-category__inner.page-width,
  body[data-page-type="index"] .kemove-trusted-users__inner.page-width {
    overflow: visible !important;
  }

  body[data-page-type="index"] .kemove-shop-category__grid,
  body[data-page-type="index"] .kemove-trusted-users__track {
    grid-auto-columns: calc((var(--kemove-rail-content) - 54px) / 4) !important;
    width: calc(100% + var(--kemove-rail-peek) + var(--kemove-rail-peek)) !important;
    max-width: none !important;
    margin-inline: calc(0px - var(--kemove-rail-peek)) !important;
    padding-inline: var(--kemove-rail-peek) !important;
    box-sizing: border-box !important;
    scroll-padding-inline: var(--kemove-rail-peek) !important;
    -webkit-mask-image: none !important;
    mask-image: none !important;
  }

  body[data-page-type="index"] :is(
    .kemove-shop-category__card,
    .kemove-trusted-users__card
  ).is-edge-preview {
    opacity: 0.34 !important;
    filter: saturate(0.62) !important;
  }

  body[data-page-type="index"] :is(
    .kemove-shop-category__card,
    .kemove-trusted-users__card
  ).is-outside-preview {
    opacity: 0.12 !important;
    filter: saturate(0.4) !important;
  }

  body[data-page-type="index"] .kemove-featured-blogs {
    overflow: hidden !important;
  }

  body[data-page-type="index"] .kemove-featured-blogs__grid {
    display: grid !important;
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
    grid-auto-flow: row !important;
    gap: 24px !important;
    width: calc(133.333% + 8px) !important;
    max-width: none !important;
    overflow: visible !important;
    -webkit-mask-image: none !important;
    mask-image: none !important;
  }

  body[data-page-type="index"] .kemove-featured-blogs__card:nth-child(n + 4) {
    display: flex !important;
  }
}
/* Accessible text that remains available to search engines and screen readers. */
.kemove-visually-hidden {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}

.block-main-collection__heading {
  width: 100%;
  max-width: 100%;
  margin: 0;
  overflow-wrap: normal;
  word-break: normal;
}

/* Homepage headings use clean typography without decorative trailing dots. */
body[data-page-type="index"] .kemove-hub__title::after,
body[data-page-type="index"] .kemove-community-gallery__title::after,
body[data-page-type="index"] .kemove-reviewed-by__title::after,
body[data-page-type="index"] .kemove-shop-category__title::after {
  display: none !important;
  content: none !important;
}
