/**
 * KNESKO inner pages — about, ritual, blog, collection layouts
 */

.kp-main {
  min-height: 50vh;
  background: #f7f3ee;
  overflow-x: hidden;
}

/* Isolate inner pages from global style.css typography */
.kp-main h1,
.kp-main h2,
.kp-main h3,
.kp-main h4,
.kp-main p {
  margin-top: 0;
}

.kp-main .kp-banner-hero__title,
.kp-main .kp-hero__title {
  margin-bottom: 0.75rem;
}

.kp-sections {
  background: #fff;
  padding-top: clamp(8px, 2vw, 16px);
  padding-bottom: clamp(16px, 3vw, 24px);
}
.kp-banner-hero {
  position: relative;
  width: 100%;
  min-height: clamp(420px, 72vh, 720px);
  background: #e8e0d6;
  overflow: hidden;
}

.kp-banner-hero__media {
  display: block;
  width: 100%;
  height: 100%;
  position: absolute;
  inset: 0;
}

.kp-banner-hero__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center top;
}

.kp-banner-hero__img--mobile {
  display: none;
}

.kp-banner-hero__img--desktop {
  display: block;
}

.kp-banner-hero__overlay {
  position: absolute;
  inset: 0;
  z-index: 2;
  display: flex;
  align-items: flex-start;
  justify-content: center;
  padding: clamp(48px, 12vh, 120px) clamp(20px, 4vw, 40px) 48px;
  background: linear-gradient(180deg, rgba(0, 0, 0, 0.08) 0%, rgba(0, 0, 0, 0.02) 45%, transparent 100%);
  pointer-events: none;
}

.kp-banner-hero__copy {
  max-width: 520px;
  text-align: center;
  pointer-events: auto;
}

.kp-banner-hero__eyebrow {
  margin: 0 0 8px;
  font-family: "Plus Jakarta Sans", system-ui, sans-serif;
  font-size: clamp(0.65rem, 1.5vw, 0.75rem);
  font-weight: 700;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.95);
  text-shadow: 0 1px 8px rgba(0, 0, 0, 0.35);
}

.kp-banner-hero__title {
  margin: 0 0 16px;
  font-family: "Libre Baskerville", Georgia, serif;
  font-size: clamp(2rem, 5.5vw, 3.25rem);
  font-weight: 400;
  line-height: 1.12;
  color: #fff;
  text-shadow: 0 2px 16px rgba(0, 0, 0, 0.35);
}

.kp-banner-hero__sub {
  margin: 0;
  font-family: "Plus Jakarta Sans", system-ui, sans-serif;
  font-size: clamp(0.875rem, 1.8vw, 1rem);
  line-height: 1.65;
  color: rgba(255, 255, 255, 0.96);
  text-shadow: 0 1px 8px rgba(0, 0, 0, 0.35);
}

/* ── Collection view hero (knesko.com/collections/* layout) ── */
body.shop-page-body .kp-main {
  background: #fff;
}

.kp-collection-view-hero .shop-hero__text {
  background: rgba(255, 255, 255, 0.72);
}

.kp-collection-view-hero__eyebrow {
  margin: 0 0 clamp(0.75rem, 1.5vw, 1rem);
}

.kp-collection-view-hero__overline {
  display: inline-block;
  font-family: var(--knesko-font, "Montserrat", "Plus Jakarta Sans", system-ui, sans-serif);
  font-size: clamp(0.65rem, 1.2vw, 0.75rem);
  font-weight: 700;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: #111;
}

.kp-collection-view-hero__title-alt {
  display: inline-block;
  font-family: "Libre Baskerville", Georgia, serif;
  font-weight: 400;
  font-style: normal;
}

.kp-collection-view-hero__attributes {
  margin: 0 0 clamp(1rem, 2vw, 1.5rem);
  font-family: var(--knesko-font, "Montserrat", "Plus Jakarta Sans", system-ui, sans-serif);
  font-size: clamp(0.65rem, 1.1vw, 0.75rem);
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  line-height: 1.5;
  color: #333;
}

.shop-toolbar__featured {
  font-family: var(--shop-font, "Montserrat", "Plus Jakarta Sans", system-ui, sans-serif);
  font-size: 0.875rem;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: #111;
}

.kp-collection-shop.shop-collection {
  padding-top: 0;
}

.kp-collection-shop .shop-grid {
  margin-top: 0;
}

/* ── Intro ── */
.kp-intro {
  background: #faf8f5;
  padding: clamp(32px, 5vw, 48px) clamp(16px, 3vw, 40px);
  border-bottom: 1px solid #e8e4df;
}

.kp-intro__inner {
  max-width: 720px;
  margin: 0 auto;
  font-family: "Plus Jakarta Sans", system-ui, sans-serif;
  font-size: 15px;
  line-height: 1.7;
  color: #444;
  text-align: center;
}

.kp-intro__inner p {
  margin: 0;
}

/* ── 7-step ritual scroll ── */
.kp-ritual-section {
  background: #fff;
  padding: clamp(36px, 5vw, 56px) 0;
  border-bottom: 1px solid #e8e4df;
}

.kp-ritual-section__inner {
  max-width: 1280px;
  margin: 0 auto;
  padding: 0 clamp(16px, 3vw, 40px);
}

.kp-ritual-section__title {
  margin: 0 0 8px;
  font-family: "Libre Baskerville", Georgia, serif;
  font-size: clamp(1.5rem, 3vw, 2rem);
  font-weight: 400;
  text-align: center;
  color: #111;
}

.kp-ritual-section__sub {
  margin: 0 0 28px;
  font-family: "Plus Jakarta Sans", system-ui, sans-serif;
  font-size: 14px;
  line-height: 1.6;
  text-align: center;
  color: #666;
}

.kp-ritual-scroll {
  display: flex;
  gap: 16px;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  -webkit-overflow-scrolling: touch;
  padding-bottom: 8px;
  scrollbar-width: thin;
}

.kp-ritual-card {
  flex: 0 0 min(220px, 72vw);
  scroll-snap-align: start;
  display: flex;
  flex-direction: column;
  text-decoration: none;
  color: inherit;
  background: #faf8f5;
  border: 1px solid #e8e4df;
  border-radius: 4px;
  overflow: hidden;
  transition: border-color 0.2s, box-shadow 0.2s;
}

.kp-ritual-card:hover {
  border-color: #bbb;
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.06);
}

.kp-ritual-card__step {
  padding: 10px 14px 0;
  font-family: "Plus Jakarta Sans", system-ui, sans-serif;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.14em;
  color: #888;
}

.kp-ritual-card__media {
  display: block;
  aspect-ratio: 1;
  background: #fff;
  margin: 8px 12px 0;
  border-radius: 2px;
  overflow: hidden;
}

.kp-ritual-card__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.kp-ritual-card__title {
  padding: 12px 14px 4px;
  font-family: "Plus Jakarta Sans", system-ui, sans-serif;
  font-size: 13px;
  font-weight: 600;
  line-height: 1.35;
  color: #111;
}

.kp-ritual-card__price {
  padding: 0 14px 14px;
  font-family: "Plus Jakarta Sans", system-ui, sans-serif;
  font-size: 14px;
  font-weight: 500;
  color: #333;
}

/* ── Values strip ── */
.kp-values {
  background: #f7f3ee;
  padding: clamp(32px, 4vw, 48px) clamp(16px, 3vw, 40px);
  border-bottom: 1px solid #e8e4df;
}

.kp-values__grid {
  max-width: 960px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: clamp(20px, 3vw, 32px);
}

.kp-values__item h3 {
  margin: 0 0 8px;
  font-family: "Plus Jakarta Sans", system-ui, sans-serif;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: #111;
}

.kp-values__item p {
  margin: 0;
  font-family: "Plus Jakarta Sans", system-ui, sans-serif;
  font-size: 13px;
  line-height: 1.6;
  color: #555;
}

/* ── Product grid (collection shop) ── */
.kp-collection-shop {
  background: #fff;
  padding: clamp(36px, 5vw, 56px) 0 clamp(48px, 6vw, 72px);
}

.kp-collection-shop__inner {
  max-width: 1280px;
  margin: 0 auto;
  padding: 0 clamp(16px, 3vw, 40px);
}

.kp-collection-shop__title {
  margin: 0 0 28px;
  font-family: "Libre Baskerville", Georgia, serif;
  font-size: clamp(1.5rem, 3vw, 2rem);
  font-weight: 400;
  text-align: center;
  color: #111;
}

.product-list-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 20px;
}

.product-list-card {
  background: #faf8f5;
  border: 1px solid #e8e4df;
  border-radius: 4px;
  overflow: hidden;
  transition: border-color 0.2s, box-shadow 0.2s;
}

.product-list-card:hover {
  border-color: #bbb;
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.06);
}

.product-list-card a {
  text-decoration: none;
  color: inherit;
  display: block;
}

.product-list-card img {
  width: 100%;
  aspect-ratio: 1;
  object-fit: cover;
  background: #fff;
}

.product-list-card-info {
  padding: 14px;
}

.product-list-card-title {
  font-family: "Plus Jakarta Sans", system-ui, sans-serif;
  font-size: 13px;
  font-weight: 600;
  color: #111;
  margin-bottom: 6px;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  line-height: 1.4;
}

.product-list-card-price {
  font-family: "Plus Jakarta Sans", system-ui, sans-serif;
  font-size: 14px;
  font-weight: 500;
  color: #333;
}

.product-list-empty,
.product-list-loading {
  text-align: center;
  padding: 60px 20px;
  color: #888;
  font-family: "Plus Jakarta Sans", system-ui, sans-serif;
}

@media (min-width: 768px) {
  .product-list-grid {
    grid-template-columns: repeat(3, 1fr);
  }
}

@media (min-width: 1024px) {
  .product-list-grid {
    grid-template-columns: repeat(4, 1fr);
  }
}

.kp-hero {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: clamp(1.5rem, 4vw, 3rem);
  align-items: center;
  max-width: 1200px;
  margin: 0 auto;
  padding: clamp(2rem, 5vw, 4rem) clamp(1rem, 3vw, 2.5rem);
}

.kp-hero__media {
  aspect-ratio: 4/5;
  overflow: hidden;
  background: #f3f3f3;
}

.kp-hero__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.kp-hero__eyebrow {
  margin: 0 0 0.5rem;
  font-family: "Plus Jakarta Sans", system-ui, sans-serif;
  font-size: 0.6875rem;
  font-weight: 700;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: #888;
}

.kp-hero__title {
  margin: 0 0 0.75rem;
  font-family: "Libre Baskerville", Georgia, serif;
  font-size: clamp(1.75rem, 4vw, 2.75rem);
  font-weight: 400;
  line-height: 1.15;
  color: #111;
}

.kp-hero__sub {
  margin: 0;
  font-family: "Plus Jakarta Sans", system-ui, sans-serif;
  font-size: 1rem;
  line-height: 1.6;
  color: #555;
}

.kp-prose {
  max-width: 720px;
  margin: 0 auto;
  padding: 0 clamp(1rem, 3vw, 2.5rem) 2rem;
  font-family: "Plus Jakarta Sans", system-ui, sans-serif;
  font-size: 0.9375rem;
  line-height: 1.7;
  color: #444;
}

.kp-prose p {
  margin: 0 0 1rem;
}

.kp-prose-heading {
  max-width: 720px;
  margin: 0 auto;
  padding: clamp(24px, 4vw, 32px) clamp(1rem, 3vw, 2.5rem) 0;
  font-family: "Libre Baskerville", Georgia, serif;
  font-size: clamp(1.25rem, 2.5vw, 1.5rem);
  font-weight: 400;
  color: #111;
}

.kp-prose-heading + .kp-prose {
  padding-top: 12px;
}

.kp-prose-subheading {
  max-width: 720px;
  margin: 0 auto;
  padding: 1.25rem clamp(1rem, 3vw, 2.5rem) 0;
  font-family: "Plus Jakarta Sans", system-ui, sans-serif;
  font-size: 1rem;
  font-weight: 700;
  letter-spacing: 0.02em;
  color: #222;
}

.kp-prose-subheading + .kp-prose {
  padding-top: 8px;
}

.kp-cta-wrap {
  text-align: center;
  padding: 0 1rem 3rem;
}

.kp-cta {
  display: inline-block;
  padding: 0.85rem 2rem;
  background: #111;
  color: #fff !important;
  font-family: "Plus Jakarta Sans", system-ui, sans-serif;
  font-size: 0.6875rem;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  text-decoration: none;
  border: none;
  cursor: pointer;
}

.kp-logos {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 2rem;
  padding: 1rem clamp(1rem, 3vw, 2.5rem) 2rem;
}

.kp-logos img {
  height: 28px;
  width: auto;
  filter: grayscale(100%);
  opacity: 0.85;
}

/* ── Our Story landing ── */
.kp-story-block {
  background: #fff;
  border-bottom: 1px solid #e8e4df;
}

.kp-story-block__inner {
  max-width: 720px;
  margin: 0 auto;
  padding: clamp(28px, 4vw, 40px) clamp(1rem, 3vw, 2.5rem);
}

.kp-story-block__title {
  margin: 0 0 16px;
  font-family: "Libre Baskerville", Georgia, serif;
  font-size: clamp(1.35rem, 2.8vw, 1.75rem);
  font-weight: 400;
  line-height: 1.25;
  color: #111;
}

.kp-story-block__prose {
  font-family: "Plus Jakarta Sans", system-ui, sans-serif;
  font-size: 0.9375rem;
  line-height: 1.75;
  color: #444;
}

.kp-story-block__prose p {
  margin: 0 0 1rem;
}

.kp-story-block__prose p:last-child {
  margin-bottom: 0;
}

.kp-story-quote {
  background: #f7f3ee;
  border-bottom: 1px solid #e8e4df;
}

.kp-story-quote__inner {
  max-width: 900px;
  margin: 0 auto;
  padding: clamp(36px, 5vw, 56px) clamp(1rem, 3vw, 2.5rem);
  display: grid;
  grid-template-columns: minmax(140px, 220px) 1fr;
  gap: clamp(20px, 4vw, 40px);
  align-items: center;
}

.kp-story-quote__media {
  aspect-ratio: 4/5;
  overflow: hidden;
  background: #e8e0d6;
}

.kp-story-quote__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.kp-story-quote__text {
  margin: 0;
  font-family: "Libre Baskerville", Georgia, serif;
  font-size: clamp(1.125rem, 2.4vw, 1.5rem);
  line-height: 1.55;
  color: #222;
}

.kp-story-quote__text strong {
  font-weight: 700;
  letter-spacing: 0.02em;
}

.kp-story-quote__author {
  margin: 20px 0 4px;
  font-family: "Plus Jakarta Sans", system-ui, sans-serif;
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.16em;
  color: #111;
}

.kp-story-quote__role {
  margin: 0;
  font-family: "Plus Jakarta Sans", system-ui, sans-serif;
  font-size: 0.8125rem;
  color: #666;
}

.kp-story-awards {
  background: #fff;
  border-bottom: 1px solid #e8e4df;
}

.kp-story-awards__inner {
  max-width: 900px;
  margin: 0 auto;
  padding: clamp(36px, 5vw, 56px) clamp(1rem, 3vw, 2.5rem);
  text-align: center;
}

.kp-story-awards__eyebrow {
  margin: 0 0 12px;
  font-family: "Plus Jakarta Sans", system-ui, sans-serif;
  font-size: 0.6875rem;
  font-weight: 700;
  letter-spacing: 0.18em;
  color: #111;
}

.kp-story-awards__sub {
  margin: 0 0 28px;
  font-family: "Plus Jakarta Sans", system-ui, sans-serif;
  font-size: 0.9375rem;
  line-height: 1.65;
  color: #555;
}

.kp-story-awards__grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 20px;
}

.kp-story-awards__item {
  padding: 24px 20px;
  border: 1px solid #e8e4df;
  background: #faf8f5;
}

.kp-story-awards__item-title {
  margin: 0 0 8px;
  font-family: "Libre Baskerville", Georgia, serif;
  font-size: 1.25rem;
  font-weight: 400;
  color: #111;
}

.kp-story-awards__item-sub {
  margin: 0;
  font-family: "Plus Jakarta Sans", system-ui, sans-serif;
  font-size: 0.6875rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  line-height: 1.5;
  color: #666;
}

.kp-story-featured {
  background: #faf8f5;
  border-bottom: 1px solid #e8e4df;
}

.kp-story-featured__inner {
  max-width: 960px;
  margin: 0 auto;
  padding: clamp(36px, 5vw, 48px) clamp(1rem, 3vw, 2.5rem) clamp(24px, 4vw, 32px);
}

.kp-story-featured__title {
  margin: 0 0 8px;
  font-family: "Plus Jakarta Sans", system-ui, sans-serif;
  font-size: 0.6875rem;
  font-weight: 700;
  letter-spacing: 0.18em;
  text-align: center;
  color: #111;
}

.kp-story-featured .kp-logos {
  padding-bottom: 0;
}

.kp-story-celebs {
  background: #fff;
  padding-bottom: clamp(16px, 3vw, 24px);
}

.kp-story-celebs__inner {
  max-width: 960px;
  margin: 0 auto;
  padding: clamp(36px, 5vw, 48px) clamp(1rem, 3vw, 2.5rem);
}

.kp-story-celebs__title {
  margin: 0 0 24px;
  font-family: "Libre Baskerville", Georgia, serif;
  font-size: clamp(1.35rem, 2.8vw, 1.75rem);
  font-weight: 400;
  text-align: center;
  color: #111;
}

.kp-story-celebs__grid {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px 20px;
}

.kp-story-celebs__name {
  font-family: "Plus Jakarta Sans", system-ui, sans-serif;
  font-size: 0.875rem;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-align: center;
  color: #333;
}

.kp-banner-hero--compact {
  min-height: clamp(240px, 38vw, 420px);
}

.kp-banner-hero--compact .kp-banner-hero__overlay {
  padding-top: clamp(32px, 8vh, 72px);
}

.kp-banner-hero--dark-text .kp-banner-hero__overlay {
  background: transparent;
}

.kp-banner-hero--dark-text .kp-banner-hero__title {
  color: #121212;
  text-shadow: none;
  font-size: clamp(1.75rem, 4.5vw, 2.5rem);
  letter-spacing: 0.08em;
}

.kp-banner-hero--dark-text .kp-banner-hero__eyebrow,
.kp-banner-hero--dark-text .kp-banner-hero__sub {
  color: #121212;
  text-shadow: none;
}

/* ── Our Story (official layout) ── */
.kp-os-intro {
  background: #fff;
  padding: clamp(36px, 6vw, 56px) clamp(16px, 3vw, 40px);
}

.kp-os-intro__inner {
  max-width: 680px;
  margin: 0 auto;
  text-align: center;
}

.kp-os-intro__quote {
  margin: 0;
  font-family: "Libre Baskerville", Georgia, serif;
  font-size: clamp(1rem, 2vw, 1.125rem);
  line-height: 1.75;
  color: #333;
}

.kp-os-intro__quote p {
  margin: 0;
}

.kp-os-intro__quote a {
  color: inherit;
  text-decoration: underline;
  text-underline-offset: 3px;
}

.kp-os-split {
  background: #fff;
  border-top: 1px solid #ece8e3;
}

.kp-os-split__inner {
  max-width: 1180px;
  margin: 0 auto;
  padding: clamp(40px, 6vw, 72px) clamp(16px, 3vw, 40px);
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: clamp(24px, 5vw, 56px);
  align-items: center;
}

.kp-os-split--reverse .kp-os-split__inner {
  direction: rtl;
}

.kp-os-split--reverse .kp-os-split__inner > * {
  direction: ltr;
}

.kp-os-split__media {
  overflow: hidden;
  background: #f3f0eb;
}

.kp-os-split__media img {
  display: block;
  width: 100%;
  height: auto;
  object-fit: cover;
}

.kp-os-split__title {
  margin: 0 0 20px;
  font-family: "Libre Baskerville", Georgia, serif;
  font-size: clamp(1.5rem, 3vw, 2rem);
  font-weight: 400;
  line-height: 1.25;
  color: #111;
}

.kp-os-split__prose {
  font-family: "Plus Jakarta Sans", system-ui, sans-serif;
  font-size: 0.9375rem;
  line-height: 1.75;
  color: #444;
}

.kp-os-split__prose p {
  margin: 0 0 1rem;
}

.kp-os-split__prose p:last-child {
  margin-bottom: 0;
}

.kp-os-dual {
  background: #faf8f5;
  border-top: 1px solid #ece8e3;
}

.kp-os-dual__inner {
  max-width: 1280px;
  margin: 0 auto;
  padding: clamp(40px, 6vw, 72px) clamp(16px, 3vw, 40px);
  display: grid;
  grid-template-columns: minmax(140px, 1fr) minmax(260px, 1.2fr) minmax(140px, 1fr);
  gap: clamp(20px, 4vw, 40px);
  align-items: center;
}

.kp-os-dual__media img {
  display: block;
  width: 100%;
  height: auto;
  object-fit: cover;
}

.kp-os-dual__title {
  margin: 0 0 20px;
  font-family: "Libre Baskerville", Georgia, serif;
  font-size: clamp(1.35rem, 2.8vw, 1.75rem);
  font-weight: 400;
  line-height: 1.25;
  color: #111;
}

.kp-os-dual__prose {
  font-family: "Plus Jakarta Sans", system-ui, sans-serif;
  font-size: 0.9375rem;
  line-height: 1.75;
  color: #444;
}

.kp-os-dual__prose p {
  margin: 0 0 1rem;
}

.kp-os-pullquote {
  background: #fff;
  border-top: 1px solid #ece8e3;
  padding: clamp(48px, 7vw, 80px) clamp(16px, 3vw, 40px);
}

.kp-os-pullquote__inner {
  max-width: 820px;
  margin: 0 auto;
  text-align: center;
}

.kp-os-pullquote__text {
  margin: 0;
  font-family: "Libre Baskerville", Georgia, serif;
  font-size: clamp(1.25rem, 2.8vw, 1.75rem);
  line-height: 1.55;
  color: #222;
}

.kp-os-pullquote__text strong {
  font-weight: 700;
  letter-spacing: 0.02em;
}

.kp-os-pullquote__author {
  margin: 28px 0 6px;
  font-family: "Plus Jakarta Sans", system-ui, sans-serif;
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.18em;
  color: #111;
}

.kp-os-pullquote__role {
  font-family: "Plus Jakarta Sans", system-ui, sans-serif;
  font-size: 0.8125rem;
  line-height: 1.5;
  color: #666;
}

.kp-story-featured--press .kp-logos {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 16px 24px;
  max-width: 960px;
  margin: 0 auto;
}

.kp-story-featured--press .kp-logos img {
  width: 100%;
  height: auto;
  max-height: 80px;
  object-fit: contain;
  filter: none;
  opacity: 1;
}

.kp-os-celebs {
  background: #fff;
  border-top: 1px solid #ece8e3;
  padding-bottom: clamp(24px, 4vw, 40px);
}

.kp-os-celebs__inner {
  max-width: 1180px;
  margin: 0 auto;
  padding: clamp(40px, 6vw, 72px) clamp(16px, 3vw, 40px);
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(280px, 420px);
  gap: clamp(24px, 5vw, 48px);
  align-items: start;
}

.kp-os-celebs__title {
  margin: 0 0 24px;
  font-family: "Libre Baskerville", Georgia, serif;
  font-size: clamp(1.5rem, 3vw, 2rem);
  font-weight: 400;
  color: #111;
}

.kp-os-celebs__name {
  margin: 0 0 10px;
  font-family: "Plus Jakarta Sans", system-ui, sans-serif;
  font-size: 0.9375rem;
  font-weight: 500;
  color: #333;
}

.kp-os-celebs__media {
  display: grid;
  gap: 12px;
}

.kp-os-celebs__photo img {
  display: block;
  width: 100%;
  height: auto;
  object-fit: cover;
}

@media (max-width: 900px) {
  .kp-os-split__inner,
  .kp-os-celebs__inner {
    grid-template-columns: 1fr;
  }

  .kp-os-split--reverse .kp-os-split__inner {
    direction: ltr;
  }

  .kp-os-dual__inner {
    grid-template-columns: 1fr;
  }

  .kp-os-dual__media--first {
    order: 1;
  }

  .kp-os-dual__content {
    order: 2;
  }

  .kp-os-dual__media--second {
    order: 3;
  }

  .kp-story-featured--press .kp-logos {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 768px) {
  .kp-story-quote__inner {
    grid-template-columns: 1fr;
  }

  .kp-story-quote__media {
    max-width: 220px;
    margin: 0 auto;
  }

  .kp-story-awards__grid {
    grid-template-columns: 1fr;
  }

  .kp-story-celebs__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .kp-banner-hero:not(.kp-banner-hero--compact) {
    min-height: min(88vh, 640px);
  }

  .kp-banner-hero__img--desktop {
    display: none;
  }

  .kp-banner-hero__img--mobile {
    display: block;
  }

  .kp-banner-hero--compact {
    min-height: 0;
    position: relative;
    display: block;
    background: #fff;
    overflow: hidden;
  }

  .kp-banner-hero--compact .kp-banner-hero__media {
    position: relative;
    inset: auto;
    width: 100%;
    height: auto;
    aspect-ratio: 750 / 544;
    max-height: none;
  }

  .kp-banner-hero--compact .kp-banner-hero__media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
  }

  .kp-banner-hero--compact .kp-banner-hero__overlay {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: auto;
    inset: auto;
    padding: clamp(20px, 5vw, 32px) 20px 0;
    background: transparent;
    justify-content: flex-start;
    pointer-events: none;
  }

  .kp-banner-hero--compact .kp-banner-hero__copy {
    pointer-events: auto;
  }

  .kp-banner-hero--compact.kp-banner-hero--dark-text .kp-banner-hero__overlay {
    background: linear-gradient(180deg, rgba(255, 255, 255, 0.72) 0%, rgba(255, 255, 255, 0) 72%);
  }

  .kp-banner-hero--compact.kp-banner-hero--dark-text .kp-banner-hero__title {
    font-size: clamp(1.5rem, 6vw, 1.75rem);
    letter-spacing: 0.1em;
  }

  .kp-our-story-page .kp-os-split__inner,
  .kp-our-story-page .kp-os-dual__inner,
  .kp-our-story-page .kp-os-celebs__inner,
  .kp-our-story-page .kp-os-intro,
  .kp-our-story-page .kp-os-pullquote {
    padding-left: 20px;
    padding-right: 20px;
  }

  .kp-our-story-page .kp-os-dual__media,
  .kp-our-story-page .kp-os-split__media,
  .kp-our-story-page .kp-os-celebs__media {
    width: 100%;
    max-width: 100%;
    overflow: hidden;
  }
}

/* ── Press Releases ── */
.kp-press-head {
  background: #fff;
  padding: clamp(48px, 8vw, 80px) clamp(16px, 3vw, 40px) clamp(24px, 4vw, 40px);
  text-align: center;
}

.kp-press-head__inner {
  max-width: 1280px;
  margin: 0 auto;
}

.kp-press-head__title {
  margin: 0;
  font-family: "Libre Baskerville", Georgia, serif;
  font-size: clamp(2rem, 5vw, 3rem);
  font-weight: 400;
  line-height: 1.1;
  color: #111;
}

.kp-press-logos {
  background: #fff;
  padding: clamp(24px, 4vw, 48px) clamp(16px, 3vw, 40px);
  border-bottom: 1px solid #ece8e3;
}

.kp-press-logos__inner {
  max-width: 960px;
  margin: 0 auto;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  gap: clamp(20px, 4vw, 40px);
  opacity: 0.6;
}

.kp-press-logos__item img {
  display: block;
  height: clamp(28px, 4vw, 42px);
  width: auto;
  max-width: 120px;
  object-fit: contain;
}

.kp-press-featured {
  background: #fff;
  border-bottom: 1px solid #ece8e3;
}

.kp-press-featured__link {
  display: block;
  max-width: 1180px;
  margin: 0 auto;
  padding: clamp(32px, 5vw, 48px) clamp(16px, 3vw, 40px);
  text-decoration: none;
  color: inherit;
}

.kp-press-featured__media {
  overflow: hidden;
  background: #f3f0eb;
  margin-bottom: clamp(20px, 3vw, 28px);
}

.kp-press-featured__media img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 12 / 3.6;
  object-fit: cover;
}

.kp-press-featured__body {
  max-width: 920px;
}

.kp-press-featured__title {
  margin: 0 0 16px;
  font-family: "Libre Baskerville", Georgia, serif;
  font-size: clamp(1.35rem, 2.8vw, 1.75rem);
  font-weight: 400;
  line-height: 1.3;
  color: #111;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.kp-press-featured__excerpt {
  margin: 0 0 20px;
  font-family: "Plus Jakarta Sans", system-ui, sans-serif;
  font-size: 0.9375rem;
  line-height: 1.7;
  color: #555;
}

.kp-press-featured__more,
.kp-press-card__more {
  font-family: "Plus Jakarta Sans", system-ui, sans-serif;
  font-size: 0.8125rem;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  text-decoration: underline;
  text-underline-offset: 4px;
  color: #111;
}

.kp-press-grid {
  background: #fff;
  padding: clamp(16px, 3vw, 32px) clamp(16px, 3vw, 40px) clamp(48px, 6vw, 80px);
}

.kp-press-grid__inner {
  max-width: 1180px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(24px, 4vw, 40px);
}

.kp-press-card__link {
  display: flex;
  flex-direction: column;
  height: 100%;
  text-decoration: none;
  color: inherit;
  background: transparent;
  border: none;
  overflow: hidden;
}

.kp-press-card__media {
  aspect-ratio: 16 / 10;
  overflow: hidden;
  background: #f3f0eb;
}

.kp-press-card__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.kp-press-card__body {
  padding: 16px 0 0;
  display: flex;
  flex-direction: column;
  flex: 1;
}

.kp-press-card__category {
  margin: 0 0 8px;
  font-family: "Plus Jakarta Sans", system-ui, sans-serif;
  font-size: 0.75rem;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: #888;
}

.kp-press-card__title {
  margin: 0 0 12px;
  font-family: "Libre Baskerville", Georgia, serif;
  font-size: 1.125rem;
  font-weight: 400;
  line-height: 1.35;
  color: #111;
}

.kp-press-card__excerpt {
  margin: 0 0 16px;
  font-family: "Plus Jakarta Sans", system-ui, sans-serif;
  font-size: 0.875rem;
  line-height: 1.65;
  color: #555;
  flex: 1;
}

.kp-press-load-more {
  max-width: 1180px;
  margin: clamp(24px, 4vw, 40px) auto 0;
  text-align: center;
}

.kp-press-load-more__btn {
  appearance: none;
  border: 1px solid #111;
  background: #fff;
  color: #111;
  cursor: pointer;
  padding: 0.875rem 2.5rem;
  font-family: "Plus Jakarta Sans", system-ui, sans-serif;
  font-size: 0.8125rem;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.kp-press-load-more__btn:hover {
  background: #111;
  color: #fff;
}

.kp-press-breadcrumb {
  background: #fff;
  padding: clamp(32px, 5vw, 48px) clamp(16px, 3vw, 40px);
  border-top: 1px solid #ece8e3;
}

.kp-press-breadcrumb__inner {
  max-width: 1180px;
  margin: 0 auto;
  text-align: center;
  font-family: "Plus Jakarta Sans", system-ui, sans-serif;
  font-size: 0.875rem;
  color: #666;
}

.kp-press-breadcrumb__inner a {
  color: #111;
  text-decoration: none;
}

.kp-press-breadcrumb__inner a:hover {
  text-decoration: underline;
}

.kp-press-breadcrumb__inner span[aria-hidden="true"] {
  margin: 0 0.5rem;
  color: #999;
}

.kp-press-social {
  background: #0e1419;
  color: #fff;
  padding: clamp(40px, 6vw, 64px) clamp(16px, 3vw, 40px) clamp(56px, 8vw, 96px);
}

.kp-press-social__head {
  max-width: 1180px;
  margin: 0 auto clamp(24px, 4vw, 36px);
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
}

.kp-press-social__tag {
  margin: 0;
  font-family: "Libre Baskerville", Georgia, serif;
  font-size: clamp(1.75rem, 4vw, 2.5rem);
  font-weight: 400;
  color: #fff;
}

.kp-press-social__follow {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 0.75rem 1.25rem;
  background: #fff;
  color: #0e1419 !important;
  font-family: "Plus Jakarta Sans", system-ui, sans-serif;
  font-size: 0.8125rem;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-decoration: none;
  text-transform: lowercase;
}

.kp-press-social__grid {
  max-width: 1180px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 8px;
}

.kp-press-social__tile {
  display: block;
  aspect-ratio: 1;
  overflow: hidden;
}

.kp-press-social__tile img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.3s ease;
}

.kp-press-social__tile:hover img {
  transform: scale(1.04);
}

@media (max-width: 900px) {
  .kp-press-grid__inner {
    grid-template-columns: 1fr;
  }

  .kp-press-social__grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

.kp-lifestyle-head {
  padding: clamp(2.5rem, 6vw, 4.5rem) clamp(1rem, 4vw, 2.5rem) clamp(1.5rem, 3vw, 2rem);
  text-align: center;
  background: #faf8f5;
}

.kp-lifestyle-head__inner {
  max-width: 820px;
  margin: 0 auto;
}

.kp-lifestyle-head__title {
  font-family: "Libre Baskerville", Georgia, serif;
  font-size: clamp(1.75rem, 4vw, 2.75rem);
  font-weight: 400;
  line-height: 1.2;
  margin: 0 0 1rem;
  color: #1a1a1a;
}

.kp-lifestyle-head__sub {
  font-family: "Plus Jakarta Sans", system-ui, sans-serif;
  font-size: clamp(0.9375rem, 1.6vw, 1.0625rem);
  line-height: 1.65;
  color: #444;
  margin: 0;
}

.kp-lifestyle-tags {
  border-top: 1px solid #e8e4df;
  border-bottom: 1px solid #e8e4df;
  background: #fff;
  overflow: hidden;
}

.kp-lifestyle-tags__track {
  display: flex;
  gap: 0;
  overflow-x: auto;
  scrollbar-width: none;
  -ms-overflow-style: none;
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 clamp(0.5rem, 2vw, 1rem);
}

.kp-lifestyle-tags__track::-webkit-scrollbar {
  display: none;
}

.kp-lifestyle-tags__item {
  flex: 0 0 auto;
  padding: 1rem 1.25rem;
  font-family: "Plus Jakarta Sans", system-ui, sans-serif;
  font-size: 0.8125rem;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  text-decoration: none;
  color: #666;
  border-bottom: 2px solid transparent;
  white-space: nowrap;
}

.kp-lifestyle-tags__item:hover,
.kp-lifestyle-tags__item.is-active {
  color: #1a1a1a;
  border-bottom-color: #1a1a1a;
}

.kp-lifestyle-grid {
  padding: clamp(2rem, 4vw, 3rem) clamp(1rem, 3vw, 2.5rem) 2rem;
}

.kp-lifestyle-grid__inner {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(1.25rem, 2.5vw, 2rem);
  max-width: 1200px;
  margin: 0 auto;
}

.kp-lifestyle-card__link {
  display: block;
  text-decoration: none;
  color: inherit;
  height: 100%;
}

.kp-lifestyle-card__media {
  aspect-ratio: 16 / 10;
  overflow: hidden;
  background: #f3f0eb;
  margin-bottom: 1rem;
}

.kp-lifestyle-card__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.35s ease;
}

.kp-lifestyle-card__link:hover .kp-lifestyle-card__media img {
  transform: scale(1.03);
}

.kp-lifestyle-card__category {
  font-family: "Plus Jakarta Sans", system-ui, sans-serif;
  font-size: 0.6875rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: #888;
  margin: 0 0 0.5rem;
}

.kp-lifestyle-card__title {
  font-family: "Libre Baskerville", Georgia, serif;
  font-size: clamp(1.05rem, 1.5vw, 1.25rem);
  font-weight: 400;
  line-height: 1.35;
  margin: 0 0 0.75rem;
  color: #1a1a1a;
}

.kp-lifestyle-card__excerpt {
  font-family: "Plus Jakarta Sans", system-ui, sans-serif;
  font-size: 0.875rem;
  line-height: 1.6;
  color: #555;
  margin: 0 0 0.75rem;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.kp-lifestyle-card__more {
  font-family: "Plus Jakarta Sans", system-ui, sans-serif;
  font-size: 0.8125rem;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  text-decoration: underline;
  text-underline-offset: 3px;
}

.kp-lifestyle-load-more {
  text-align: center;
  margin-top: 2.5rem;
}

.kp-lifestyle-load-more__btn {
  font-family: "Plus Jakarta Sans", system-ui, sans-serif;
  font-size: 0.8125rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  padding: 0.875rem 2rem;
  border: 1px solid #1a1a1a;
  background: transparent;
  color: #1a1a1a;
  cursor: pointer;
}

.kp-lifestyle-load-more__btn:hover {
  background: #1a1a1a;
  color: #fff;
}

@media (max-width: 900px) {
  .kp-lifestyle-grid__inner {
    grid-template-columns: 1fr;
  }
}

/* Blog article — aligned with knesko.com article template */
.kp-blog-article {
  background: #fff;
}

.kp-blog-article__shell {
  max-width: 988px;
  margin: 0 auto;
  padding: clamp(1.5rem, 4vw, 2.5rem) clamp(1rem, 3vw, 1.25rem) 3rem;
}

.kp-blog-article__back {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  margin-bottom: 1.5rem;
  font-family: "Plus Jakarta Sans", system-ui, sans-serif;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: #121212;
  text-decoration: none;
}

.kp-blog-article__back:hover {
  opacity: 0.65;
}

.kp-blog-article__category {
  margin: 0 0 0.75rem;
  font-family: "Plus Jakarta Sans", system-ui, sans-serif;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}

.kp-blog-article__category a {
  color: #121212;
  text-decoration: none;
}

.kp-blog-article__title {
  margin: 0;
  font-family: "Libre Baskerville", Georgia, serif;
  font-size: clamp(1.75rem, 4vw, 2.75rem);
  font-weight: 400;
  line-height: 1.15;
  color: #121212;
}

.kp-blog-article__hero {
  margin: 1.75rem 0 2rem;
  aspect-ratio: 2 / 1;
  overflow: hidden;
  background: #f5f5f5;
}

.kp-blog-article__hero img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.kp-blog-article__content {
  font-family: "Plus Jakarta Sans", system-ui, sans-serif;
  font-size: 1rem;
  line-height: 1.75;
  color: #333;
}

.kp-blog-article__content h2,
.kp-blog-article__content h3 {
  font-family: "Plus Jakarta Sans", system-ui, sans-serif;
  font-weight: 700;
  letter-spacing: 0.04em;
  color: #121212;
  margin: 2rem 0 1rem;
}

.kp-blog-article__content h2 {
  font-size: 1.25rem;
}

.kp-blog-article__content h3 {
  font-size: 1.05rem;
}

.kp-blog-article__content a {
  color: #121212;
  text-decoration: underline;
  text-underline-offset: 3px;
}

.kp-blog-article__shop,
.kp-blog-article__related {
  margin-top: 3rem;
  padding-top: 2rem;
  border-top: 1px solid rgba(0, 0, 0, 0.08);
}

.kp-blog-article__shop-head,
.kp-blog-article__related-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  margin-bottom: 1.5rem;
}

.kp-blog-article__shop-title,
.kp-blog-article__related-heading {
  margin: 0;
  font-family: "Plus Jakarta Sans", system-ui, sans-serif;
  font-size: 1.125rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: #121212;
}

.kp-blog-article__shop-all,
.kp-blog-article__related-all {
  font-family: "Plus Jakarta Sans", system-ui, sans-serif;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: #121212;
  text-decoration: none;
}

.kp-blog-article__shop-grid,
.kp-blog-article__related-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1.25rem;
}

.kp-blog-article__shop-link,
.kp-blog-article__related-link {
  display: block;
  color: inherit;
  text-decoration: none;
}

.kp-blog-article__shop-media,
.kp-blog-article__related-media {
  aspect-ratio: 3 / 4;
  overflow: hidden;
  background: #f5f5f5;
  margin-bottom: 0.85rem;
}

.kp-blog-article__related-media {
  aspect-ratio: 2 / 1;
}

.kp-blog-article__shop-media img,
.kp-blog-article__related-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform 0.35s ease;
}

.kp-blog-article__shop-link:hover img,
.kp-blog-article__related-link:hover img {
  transform: scale(1.03);
}

.kp-blog-article__shop-category,
.kp-blog-article__related-category {
  margin: 0 0 0.35rem;
  font-family: "Plus Jakarta Sans", system-ui, sans-serif;
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: #777;
}

.kp-blog-article__shop-title,
.kp-blog-article__related-title {
  margin: 0 0 0.5rem;
  font-family: "Plus Jakarta Sans", system-ui, sans-serif;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.1em;
  line-height: 1.35;
  text-transform: uppercase;
  color: #121212;
}

.kp-blog-article__shop-rating {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.35rem 0.5rem;
  margin-bottom: 0.5rem;
}

.kp-blog-article__star {
  color: #ddd;
  font-size: 12px;
}

.kp-blog-article__star.is-filled {
  color: #e7ce8d;
}

.kp-blog-article__shop-reviews {
  font-size: 11px;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: #888;
}

.kp-blog-article__shop-price {
  margin: 0;
  font-size: 12px;
  letter-spacing: 0.06em;
  color: #555;
}

.kp-blog-article__shop-view {
  margin: 1.25rem 0 0;
  text-align: center;
}

.kp-blog-article__shop-view a {
  font-family: "Plus Jakarta Sans", system-ui, sans-serif;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: #121212;
}

.kp-blog-article__related-excerpt {
  margin: 0 0 0.75rem;
  font-size: 0.875rem;
  line-height: 1.55;
  color: #666;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.kp-blog-article__related-more {
  font-family: "Plus Jakarta Sans", system-ui, sans-serif;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  text-decoration: underline;
  text-underline-offset: 3px;
}

.kp-blog-article__breadcrumb {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.5rem;
  margin-top: 2.5rem;
  padding-top: 1.5rem;
  border-top: 1px solid rgba(0, 0, 0, 0.08);
  font-family: "Plus Jakarta Sans", system-ui, sans-serif;
  font-size: 11px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: #777;
}

.kp-blog-article__breadcrumb a {
  color: #121212;
  text-decoration: none;
}

@media (max-width: 900px) {
  .kp-blog-article__shop-grid,
  .kp-blog-article__related-grid {
    grid-template-columns: 1fr;
  }
}

@media (min-width: 1600px) {
  .kp-blog-article__shell {
    max-width: 1412px;
  }
}

.kp-skin-hero {
  background: #faf8f5;
  padding: clamp(2rem, 5vw, 4rem) clamp(1rem, 3vw, 2.5rem);
}

.kp-skin-hero__inner {
  max-width: 1200px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: clamp(1.5rem, 4vw, 3rem);
  align-items: center;
}

.kp-skin-hero__title {
  font-family: "Libre Baskerville", Georgia, serif;
  font-size: clamp(1.75rem, 3.5vw, 2.5rem);
  font-weight: 400;
  line-height: 1.2;
  margin: 0 0 0.75rem;
}

.kp-skin-hero__tagline {
  font-family: "Plus Jakarta Sans", system-ui, sans-serif;
  font-size: 1rem;
  color: #555;
  margin: 0 0 1rem;
}

.kp-skin-hero__sub {
  font-family: "Plus Jakarta Sans", system-ui, sans-serif;
  font-size: 0.9375rem;
  line-height: 1.65;
  color: #444;
  margin: 0 0 1.5rem;
}

.kp-skin-hero__media img {
  width: 100%;
  height: auto;
  display: block;
}

.kp-skin-qr {
  margin-top: 1rem;
}

.kp-skin-qr__desktop {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0.75rem;
}

.kp-skin-qr__code img {
  width: 160px;
  height: 160px;
  display: block;
}

.kp-skin-qr__caption,
.kp-skin-qr__prefer {
  font-family: "Plus Jakarta Sans", system-ui, sans-serif;
  font-size: 0.8125rem;
  color: #666;
  margin: 0;
}

.kp-skin-qr__mobile {
  display: none;
}

.kp-skin-qr__mobile-title {
  font-family: "Plus Jakarta Sans", system-ui, sans-serif;
  font-size: 0.875rem;
  font-weight: 700;
  margin: 0 0 0.25rem;
}

.kp-skin-qr__mobile-sub {
  font-family: "Plus Jakarta Sans", system-ui, sans-serif;
  font-size: 0.8125rem;
  color: #666;
  margin: 0;
}

.kp-skin-qr__actions {
  margin-top: 1rem;
}

.kp-skin-cta-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 44px;
  padding: 0.75rem 1.75rem;
  border: 1px solid #1a1a1a;
  background: #1a1a1a;
  color: #fff;
  font-family: "Plus Jakarta Sans", system-ui, sans-serif;
  font-size: 0.8125rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  cursor: pointer;
  text-decoration: none;
}

.kp-skin-cta-btn:hover {
  background: #333;
  border-color: #333;
}

.kp-skin-cta-btn--block {
  width: 100%;
  max-width: 320px;
}

.kp-skin-how,
.kp-skin-detail {
  padding: clamp(2.5rem, 5vw, 4rem) clamp(1rem, 3vw, 2.5rem);
}

.kp-skin-how__inner,
.kp-skin-detail__inner {
  max-width: 1200px;
  margin: 0 auto;
}

.kp-skin-section__title {
  font-family: "Libre Baskerville", Georgia, serif;
  font-size: clamp(1.5rem, 3vw, 2.125rem);
  font-weight: 400;
  text-align: center;
  margin: 0 0 0.75rem;
}

.kp-skin-section__sub {
  font-family: "Plus Jakarta Sans", system-ui, sans-serif;
  font-size: 0.9375rem;
  line-height: 1.65;
  color: #555;
  text-align: center;
  max-width: 720px;
  margin: 0 auto 2rem;
}

.kp-skin-how__grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(1rem, 2.5vw, 2rem);
}

.kp-skin-how__media {
  margin-bottom: 1rem;
}

.kp-skin-how__media picture,
.kp-skin-how__media img {
  width: 100%;
  height: auto;
  display: block;
}

.kp-skin-how__label {
  font-family: "Libre Baskerville", Georgia, serif;
  font-size: 1.25rem;
  margin: 0 0 0.5rem;
}

.kp-skin-how__text {
  font-family: "Plus Jakarta Sans", system-ui, sans-serif;
  font-size: 0.875rem;
  line-height: 1.6;
  color: #555;
  margin: 0;
}

.kp-skin-detail {
  background: #faf8f5;
}

.kp-skin-detail__inner {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: clamp(1.5rem, 4vw, 3rem);
  align-items: center;
}

.kp-skin-detail__copy .kp-skin-section__title,
.kp-skin-detail__copy .kp-skin-section__sub {
  text-align: left;
  margin-left: 0;
}

.kp-skin-detail__list {
  list-style: none;
  padding: 0;
  margin: 0 0 1.5rem;
  columns: 2;
  column-gap: 1.5rem;
}

.kp-skin-detail__list li {
  font-family: "Plus Jakarta Sans", system-ui, sans-serif;
  font-size: 0.875rem;
  line-height: 1.8;
  color: #333;
  break-inside: avoid;
  position: relative;
  padding-left: 1rem;
}

.kp-skin-detail__list li::before {
  content: "•";
  position: absolute;
  left: 0;
  color: #999;
}

.kp-skin-detail__media {
  position: relative;
  min-height: 280px;
}

.kp-skin-detail__shot img {
  width: 100%;
  max-width: 360px;
  display: block;
  margin: 0 auto;
}

.kp-skin-detail__decor {
  position: absolute;
  width: 42%;
  max-width: 220px;
}

.kp-skin-detail__decor img {
  width: 100%;
  height: auto;
  display: block;
  border-radius: 4px;
}

.kp-skin-detail__decor--1 {
  top: 0;
  right: 0;
}

.kp-skin-detail__decor--2 {
  bottom: 0;
  right: 10%;
}

.kp-skin-bottom-cta {
  position: relative;
  overflow: hidden;
  min-height: 420px;
  display: flex;
  align-items: center;
}

.kp-skin-bottom-cta__bg,
.kp-skin-bottom-cta__bg img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.kp-skin-bottom-cta__overlay {
  position: relative;
  z-index: 1;
  width: 100%;
  padding: clamp(2rem, 5vw, 4rem) clamp(1rem, 3vw, 2.5rem);
  background: rgba(255, 255, 255, 0.82);
}

.kp-skin-bottom-cta__inner {
  max-width: 560px;
  margin: 0 auto;
  text-align: center;
}

.kp-skin-bottom-cta__title {
  font-family: "Libre Baskerville", Georgia, serif;
  font-size: clamp(1.5rem, 3vw, 2rem);
  font-weight: 400;
  margin: 0 0 1.5rem;
}

.kp-skin-bottom-cta .kp-skin-qr__desktop {
  align-items: center;
}

.kp-skin-bottom-cta .kp-skin-qr__actions {
  display: flex;
  flex-direction: column;
  align-items: center;
}

#YMK-module-iframe {
  top: 0 !important;
  height: 100% !important;
}

@media (max-width: 900px) {
  .kp-skin-hero__inner,
  .kp-skin-detail__inner {
    grid-template-columns: 1fr;
  }

  .kp-skin-hero__media {
    order: -1;
  }

  .kp-skin-how__grid {
    grid-template-columns: 1fr;
  }

  .kp-skin-detail__list {
    columns: 1;
  }

  .kp-skin-detail__decor {
    display: none;
  }

  .kp-skin-qr__desktop {
    display: none;
  }

  .kp-skin-qr__mobile {
    display: block;
    margin-bottom: 1rem;
  }

  .kp-skin-qr__prefer {
    display: none;
  }
}

.kp-skincare-quiz {
  padding: 0;
  min-height: calc(100vh - 120px);
  background: #fff;
}

.kp-skincare-quiz__inner {
  max-width: none;
  margin: 0;
  padding: 0;
}

.kp-skincare-quiz__embed {
  min-height: 680px;
}

.kp-skincare-quiz__fallback {
  font-family: "Plus Jakarta Sans", system-ui, sans-serif;
  font-size: 0.9375rem;
  line-height: 1.6;
  text-align: center;
  padding: 3rem 1.5rem;
  color: #444;
}

.kp-skincare-quiz__fallback a {
  color: #1a1a1a;
}

body.kp-page--skincare-quiz .kp-main {
  padding: 0;
  max-width: none;
}

body.kp-page--skincare-quiz .octane-ai-quiz-rendered li div {
  font-size: 14px;
}

.kp-blog-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 20px;
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 clamp(1rem, 3vw, 2.5rem) 3rem;
}

.kp-ritual,
.kp-quiz {
  max-width: 560px;
  margin: 0 auto;
  padding: 0 clamp(1rem, 3vw, 2.5rem) 3rem;
}

.kp-quiz__step {
  border: none;
  margin: 0 0 1.5rem;
  padding: 0;
}

.kp-quiz__step legend {
  font-family: "Plus Jakarta Sans", system-ui, sans-serif;
  font-weight: 700;
  margin-bottom: 0.75rem;
}

.kp-quiz__option {
  display: block;
  margin-bottom: 0.5rem;
  font-family: "Plus Jakarta Sans", system-ui, sans-serif;
  font-size: 0.875rem;
}

.kp-quiz__result {
  margin-top: 1rem;
  font-family: "Plus Jakarta Sans", system-ui, sans-serif;
}

.kp-quiz__result.hidden {
  display: none;
}

.kp-empty {
  text-align: center;
  padding: 4rem 1rem;
}

#kpCollectionGrid.product-list-grid,
#productListContent.product-list-grid {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 clamp(1rem, 3vw, 2.5rem) 3rem;
}

.kp-account-form {
  display: grid;
  gap: 1rem;
  max-width: 420px;
  margin: 1.5rem 0;
}

.kp-account-form label {
  display: grid;
  gap: 0.35rem;
  font-family: "Plus Jakarta Sans", system-ui, sans-serif;
  font-size: 0.875rem;
}

.kp-account-form input {
  border: 1px solid #ddd;
  border-radius: 4px;
  padding: 10px 12px;
  font: inherit;
}

/* ── Program landing (Rewards, Subscription) ── */
.kp-program-steps {
  background: #fff;
  padding: clamp(36px, 5vw, 56px) clamp(16px, 3vw, 40px);
  border-bottom: 1px solid #e8e4df;
}

.kp-program-steps__inner {
  max-width: 960px;
  margin: 0 auto;
  text-align: center;
}

.kp-program-steps__title {
  margin: 0 0 8px;
  font-family: "Libre Baskerville", Georgia, serif;
  font-size: clamp(1.5rem, 3vw, 2rem);
  font-weight: 400;
  color: #111;
}

.kp-program-steps__sub {
  margin: 0 0 clamp(24px, 4vw, 36px);
  font-family: "Plus Jakarta Sans", system-ui, sans-serif;
  font-size: 15px;
  line-height: 1.6;
  color: #666;
}

.kp-program-steps__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: clamp(16px, 3vw, 28px);
  text-align: left;
}

.kp-program-steps__item {
  background: #faf8f5;
  border: 1px solid #e8e4df;
  border-radius: 4px;
  padding: clamp(20px, 3vw, 28px);
}

.kp-program-steps__num {
  display: block;
  margin-bottom: 12px;
  font-family: "Plus Jakarta Sans", system-ui, sans-serif;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.14em;
  color: #888;
}

.kp-program-steps__label {
  margin: 0 0 8px;
  font-family: "Plus Jakarta Sans", system-ui, sans-serif;
  font-size: 15px;
  font-weight: 700;
  color: #111;
}

.kp-program-steps__text {
  margin: 0;
  font-family: "Plus Jakarta Sans", system-ui, sans-serif;
  font-size: 14px;
  line-height: 1.65;
  color: #555;
}

.kp-program-perks {
  background: #f7f3ee;
  padding: clamp(32px, 4vw, 48px) clamp(16px, 3vw, 40px);
  border-bottom: 1px solid #e8e4df;
}

.kp-program-perks__grid {
  max-width: 1080px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: clamp(16px, 3vw, 24px);
}

.kp-program-perks__item {
  text-align: center;
  padding: clamp(16px, 2vw, 24px) 12px;
}

.kp-program-perks__icon {
  display: block;
  margin-bottom: 12px;
  font-size: 1.25rem;
  color: #b8956a;
}

.kp-program-perks__item h3 {
  margin: 0 0 8px;
  font-family: "Plus Jakarta Sans", system-ui, sans-serif;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: #111;
}

.kp-program-perks__item p {
  margin: 0;
  font-family: "Plus Jakarta Sans", system-ui, sans-serif;
  font-size: 13px;
  line-height: 1.6;
  color: #555;
}

.kp-program-tiers {
  background: #fff;
  padding: clamp(36px, 5vw, 56px) clamp(16px, 3vw, 40px);
  border-bottom: 1px solid #e8e4df;
}

.kp-program-tiers__inner {
  max-width: 960px;
  margin: 0 auto;
  text-align: center;
}

.kp-program-tiers__title {
  margin: 0 0 8px;
  font-family: "Libre Baskerville", Georgia, serif;
  font-size: clamp(1.5rem, 3vw, 2rem);
  font-weight: 400;
  color: #111;
}

.kp-program-tiers__sub {
  margin: 0 0 clamp(24px, 4vw, 36px);
  font-family: "Plus Jakarta Sans", system-ui, sans-serif;
  font-size: 15px;
  line-height: 1.6;
  color: #666;
}

.kp-program-tiers__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: clamp(16px, 3vw, 24px);
  text-align: left;
}

.kp-program-tiers__card {
  background: #faf8f5;
  border: 1px solid #e8e4df;
  border-radius: 4px;
  padding: clamp(24px, 3vw, 32px);
}

.kp-program-tiers__name {
  margin: 0 0 8px;
  font-family: "Libre Baskerville", Georgia, serif;
  font-size: clamp(1.25rem, 2.5vw, 1.5rem);
  font-weight: 400;
  color: #111;
}

.kp-program-tiers__points {
  margin: 0 0 12px;
  font-family: "Plus Jakarta Sans", system-ui, sans-serif;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: #b8956a;
}

.kp-program-tiers__benefits {
  margin: 0;
  font-family: "Plus Jakarta Sans", system-ui, sans-serif;
  font-size: 14px;
  line-height: 1.65;
  color: #555;
}

.kp-program-ctas__inner {
  max-width: 520px;
  margin: 0 auto;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 12px;
}

.kp-program-cta {
  display: inline-block;
  padding: 0.85rem 2rem;
  background: #111;
  color: #fff;
  font-family: "Plus Jakarta Sans", system-ui, sans-serif;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  text-decoration: none;
  border: 1px solid #111;
  border-radius: 2px;
  transition: background 0.2s, color 0.2s;
}

.kp-program-cta:hover {
  background: #333;
  border-color: #333;
  color: #fff;
}

.kp-program-cta--secondary {
  background: transparent;
  color: #111;
}

.kp-program-cta--secondary:hover {
  background: #111;
  color: #fff;
}

/* ── FAQ landing ── */
.kp-faq {
  background: #fff;
  padding: clamp(28px, 4vw, 40px) clamp(16px, 3vw, 40px) clamp(36px, 5vw, 48px);
}

.kp-faq__inner {
  max-width: 760px;
  margin: 0 auto;
}

.kp-faq__group + .kp-faq__group {
  margin-top: clamp(28px, 4vw, 40px);
}

.kp-faq__group-title {
  margin: 0 0 16px;
  font-family: "Libre Baskerville", Georgia, serif;
  font-size: clamp(1.25rem, 2.5vw, 1.625rem);
  font-weight: 400;
  color: #111;
}

.kp-faq__item {
  border-top: 1px solid #e8e4df;
}

.kp-faq__item:last-child {
  border-bottom: 1px solid #e8e4df;
}

.kp-faq__question {
  list-style: none;
  cursor: pointer;
  padding: 18px 28px 18px 0;
  font-family: "Plus Jakarta Sans", system-ui, sans-serif;
  font-size: 15px;
  font-weight: 600;
  line-height: 1.5;
  color: #111;
  position: relative;
}

.kp-faq__question::-webkit-details-marker {
  display: none;
}

.kp-faq__question::after {
  content: "+";
  position: absolute;
  right: 0;
  top: 50%;
  transform: translateY(-50%);
  font-size: 20px;
  font-weight: 400;
  color: #888;
}

.kp-faq__item[open] .kp-faq__question::after {
  content: "−";
}

.kp-faq__answer {
  padding: 0 0 18px;
  font-family: "Plus Jakarta Sans", system-ui, sans-serif;
  font-size: 14px;
  line-height: 1.7;
  color: #555;
}

.kp-faq__answer p,
.kp-faq__answer ul {
  margin: 0 0 12px;
}

.kp-faq__answer ul {
  padding-left: 1.25rem;
}

.kp-faq__answer a {
  color: #111;
  text-decoration: underline;
}

.kp-faq__footer-note {
  max-width: 760px;
  margin: 0 auto;
  padding: 0;
  font-family: "Plus Jakarta Sans", system-ui, sans-serif;
  font-size: 15px;
  line-height: 1.6;
  text-align: center;
  color: #666;
}

.kp-faq-note {
  background: #faf8f5;
  padding: clamp(20px, 3vw, 28px) clamp(16px, 3vw, 40px) 0;
  border-top: 1px solid #e8e4df;
}

.kp-program-note {
  max-width: 640px;
  margin: 0 auto;
  padding: clamp(20px, 3vw, 28px) clamp(16px, 3vw, 40px) 0;
  font-family: "Plus Jakarta Sans", system-ui, sans-serif;
  font-size: 12px;
  line-height: 1.6;
  text-align: center;
  color: #888;
  background: #fff;
}

.kp-program-ctas {
  background: #fff;
  padding: clamp(16px, 3vw, 24px) clamp(16px, 3vw, 40px) clamp(36px, 5vw, 48px);
}

/* ── Rewards landing (mirrors knesko.com Bubblehouse) ── */
.kp-rewards-hero {
  background: #faf8f5;
  text-align: center;
  overflow: hidden;
}

.kp-rewards-hero__copy {
  padding: clamp(48px, 8vw, 88px) clamp(20px, 4vw, 40px) clamp(24px, 4vw, 32px);
}

.kp-rewards-hero__title {
  margin: 0;
  font-family: "Plus Jakarta Sans", system-ui, sans-serif;
  font-size: clamp(2rem, 5vw, 2.75rem);
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: #121212;
}

.kp-rewards-hero__accent {
  margin: 4px 0 16px;
  font-family: "Libre Baskerville", Georgia, serif;
  font-size: clamp(1.75rem, 4.5vw, 2.5rem);
  font-style: italic;
  font-weight: 300;
  line-height: 1.15;
  color: #121212;
}

.kp-rewards-hero__sub {
  margin: 0 auto 24px;
  max-width: 420px;
  font-family: "Plus Jakarta Sans", system-ui, sans-serif;
  font-size: 0.9375rem;
  line-height: 1.6;
  color: #555;
}

.kp-rewards-hero__ctas {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 12px;
}

.kp-rewards-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 140px;
  padding: 12px 28px;
  font-family: "Plus Jakarta Sans", system-ui, sans-serif;
  font-size: 0.6875rem;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  text-decoration: none;
  border: 1px solid #121212;
  transition: background 0.2s, color 0.2s;
}

.kp-rewards-btn--primary {
  background: #121212;
  color: #fff !important;
}

.kp-rewards-btn--primary:hover {
  background: #333;
}

.kp-rewards-btn--ghost {
  background: transparent;
  color: #121212 !important;
}

.kp-rewards-btn--ghost:hover {
  background: #121212;
  color: #fff !important;
}

.kp-rewards-hero__media {
  width: 100%;
  max-width: 960px;
  margin: 0 auto;
  line-height: 0;
}

.kp-rewards-hero__media img {
  width: 100%;
  height: auto;
  display: block;
  object-fit: cover;
  object-position: center bottom;
}

.kp-rewards-section {
  background: #fff;
  padding: clamp(40px, 6vw, 64px) clamp(16px, 3vw, 40px);
  border-top: 1px solid #efebe6;
}

.kp-rewards-section:nth-child(even) {
  background: #faf8f5;
}

.kp-rewards-section__inner {
  max-width: 1080px;
  margin: 0 auto;
}

.kp-rewards-section__title {
  margin: 0 0 12px;
  font-family: "Libre Baskerville", Georgia, serif;
  font-size: clamp(1.5rem, 3vw, 2rem);
  font-weight: 400;
  text-align: center;
  color: #121212;
}

.kp-rewards-section__sub {
  margin: 0 auto 28px;
  max-width: 640px;
  font-family: "Plus Jakarta Sans", system-ui, sans-serif;
  font-size: 0.9375rem;
  line-height: 1.65;
  text-align: center;
  color: #666;
}

.kp-rewards-how__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: clamp(20px, 4vw, 40px);
  margin-top: 28px;
}

.kp-rewards-how__item {
  text-align: center;
}

.kp-rewards-how__icon {
  display: flex;
  justify-content: center;
  margin-bottom: 16px;
}

.kp-rewards-how__label {
  margin: 0 0 8px;
  font-family: "Plus Jakarta Sans", system-ui, sans-serif;
  font-size: 0.875rem;
  font-weight: 700;
  color: #121212;
}

.kp-rewards-how__text {
  margin: 0;
  font-family: "Plus Jakarta Sans", system-ui, sans-serif;
  font-size: 0.875rem;
  line-height: 1.55;
  color: #666;
}

.kp-rewards-earn__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 16px;
  margin-top: 8px;
}

.kp-rewards-earn__card {
  background: #fff;
  border: 1px solid #e8e4df;
  padding: 20px 18px;
  min-height: 110px;
}

.kp-rewards-earn__title {
  margin: 0 0 10px;
  font-family: "Plus Jakarta Sans", system-ui, sans-serif;
  font-size: 0.875rem;
  font-weight: 600;
  line-height: 1.4;
  color: #121212;
}

.kp-rewards-earn__points {
  margin: 0;
  font-family: "Plus Jakarta Sans", system-ui, sans-serif;
  font-size: 0.8125rem;
  color: #983345;
  font-weight: 600;
}

.kp-rewards-tiers__table {
  margin-top: 24px;
  overflow-x: auto;
}

.kp-rewards-tiers__head,
.kp-rewards-tiers__row {
  display: grid;
  grid-template-columns: minmax(160px, 1.4fr) repeat(4, minmax(90px, 1fr));
  gap: 0;
  min-width: 640px;
}

.kp-rewards-tiers__head {
  border-bottom: 1px solid #efdeb3;
}

.kp-rewards-tiers__row {
  border-bottom: 1px solid #f0ece6;
}

.kp-rewards-tiers__feature-col,
.kp-rewards-tiers__col {
  padding: 16px 12px;
  font-family: "Plus Jakarta Sans", system-ui, sans-serif;
  font-size: 0.8125rem;
  line-height: 1.45;
  text-align: center;
  color: #444;
}

.kp-rewards-tiers__feature-col {
  text-align: left;
  font-weight: 600;
  color: #121212;
}

.kp-rewards-tiers__head .kp-rewards-tiers__col h3 {
  margin: 0 0 4px;
  font-family: "Plus Jakarta Sans", system-ui, sans-serif;
  font-size: 0.875rem;
  font-weight: 700;
  color: #121212;
}

.kp-rewards-tiers__head .kp-rewards-tiers__col p {
  margin: 0;
  font-size: 0.75rem;
  color: #888;
}

.kp-rewards-achievements__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 16px;
  margin-top: 8px;
}

.kp-rewards-achievements__card {
  background: #fff;
  border: 1px solid #e8e4df;
  padding: 22px 18px;
}

.kp-rewards-achievements__card h3 {
  margin: 0 0 8px;
  font-family: "Plus Jakarta Sans", system-ui, sans-serif;
  font-size: 0.9375rem;
  font-weight: 700;
  color: #121212;
}

.kp-rewards-achievements__text {
  margin: 0 0 12px;
  font-size: 0.8125rem;
  line-height: 1.5;
  color: #666;
}

.kp-rewards-achievements__reward {
  margin: 0;
  font-size: 0.8125rem;
  font-weight: 700;
  color: #983345;
}

.kp-rewards-faq__list {
  max-width: 760px;
  margin: 24px auto 0;
}

.kp-rewards-faq__item {
  border-bottom: 1px solid #e8e4df;
}

.kp-rewards-faq__q {
  padding: 18px 0;
  font-family: "Plus Jakarta Sans", system-ui, sans-serif;
  font-size: 0.9375rem;
  font-weight: 600;
  color: #121212;
  cursor: pointer;
  list-style: none;
}

.kp-rewards-faq__q::-webkit-details-marker {
  display: none;
}

.kp-rewards-faq__a {
  padding: 0 0 18px;
  font-family: "Plus Jakarta Sans", system-ui, sans-serif;
  font-size: 0.875rem;
  line-height: 1.65;
  color: #555;
}

.kp-simple-hero {
  background: #fff;
  padding: clamp(40px, 6vw, 56px) clamp(16px, 3vw, 40px) clamp(24px, 4vw, 32px);
  text-align: center;
  border-bottom: 1px solid #e8e4df;
}

.kp-simple-hero__title {
  margin: 0;
  font-family: "Libre Baskerville", Georgia, serif;
  font-size: clamp(1.75rem, 4vw, 2.25rem);
  font-weight: 400;
  color: #121212;
}

.kp-simple-hero__sub {
  margin: 12px 0 0;
  font-family: "Plus Jakarta Sans", system-ui, sans-serif;
  font-size: 0.9375rem;
  color: #666;
}

.kp-sub-hero {
  background: #faf8f5;
  padding: clamp(32px, 5vw, 48px) clamp(16px, 3vw, 40px) 0;
}

.kp-sub-hero__inner {
  max-width: 1080px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: clamp(24px, 4vw, 40px);
  align-items: center;
}

.kp-sub-hero__title {
  margin: 0 0 16px;
  font-family: "Libre Baskerville", Georgia, serif;
  font-size: clamp(1.75rem, 4vw, 2.5rem);
  font-weight: 400;
  line-height: 1.15;
  color: #121212;
}

.kp-sub-hero__text,
.kp-sub-hero__subtitle {
  margin: 0 0 24px;
  font-family: "Plus Jakarta Sans", system-ui, sans-serif;
  font-size: clamp(1rem, 2vw, 1.125rem);
  font-weight: 400;
  line-height: 1.55;
  color: #555;
}

.kp-sub-hero__subtitle {
  font-family: "Libre Baskerville", Georgia, serif;
  font-size: clamp(1.0625rem, 2.2vw, 1.25rem);
  color: #333;
}

.kp-sub-hero__media img {
  width: 100%;
  height: auto;
  display: block;
}

.kp-sub-perks {
  background: #fff;
  padding: clamp(32px, 5vw, 48px) clamp(16px, 3vw, 40px);
  border-bottom: 1px solid #e8e4df;
}

.kp-sub-perks__grid {
  max-width: 1080px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 20px;
}

.kp-sub-perks__title {
  margin: 0 0 8px;
  font-family: "Plus Jakarta Sans", system-ui, sans-serif;
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: #121212;
}

.kp-sub-perks__text {
  margin: 0;
  font-family: "Plus Jakarta Sans", system-ui, sans-serif;
  font-size: 0.8125rem;
  line-height: 1.55;
  color: #666;
}

.kp-sub-how {
  background: #faf8f5;
  padding: clamp(40px, 6vw, 64px) clamp(16px, 3vw, 40px);
}

.kp-sub-how__inner {
  max-width: 960px;
  margin: 0 auto;
}

.kp-sub-how__layout {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: clamp(24px, 4vw, 40px);
  align-items: center;
  margin-top: 24px;
}

.kp-sub-how__media img {
  width: 100%;
  height: auto;
  display: block;
  border-radius: 4px;
}

.kp-sub-how__steps {
  margin: 0;
  padding: 0;
  list-style: none;
  font-family: "Plus Jakarta Sans", system-ui, sans-serif;
  font-size: 0.9375rem;
  line-height: 1.55;
  color: #444;
}

.kp-sub-how__step {
  display: flex;
  gap: 16px;
  align-items: flex-start;
}

.kp-sub-how__step + .kp-sub-how__step {
  margin-top: 18px;
}

.kp-sub-how__step-num {
  flex: 0 0 auto;
  font-size: 0.8125rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  color: #121212;
  min-width: 1.75rem;
}

.kp-sub-how__step-text {
  flex: 1;
}

.kp-sub-how__cta-row {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  justify-content: center;
  margin-top: 28px;
}

.kp-rewards-btn--outline {
  background: transparent;
  color: #121212;
  border: 1px solid #121212;
}

.kp-rewards-btn--outline:hover {
  background: #121212;
  color: #fff;
}

.kp-sub-products {
  background: #fff;
  padding: clamp(32px, 5vw, 48px) clamp(16px, 3vw, 40px);
  border-bottom: 1px solid #e8e4df;
}

.kp-sub-products__inner {
  max-width: 1080px;
  margin: 0 auto;
}

.kp-sub-products__grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 20px;
}

.kp-sub-product {
  background: #fff;
  border: 1px solid #e8e4df;
  display: flex;
  flex-direction: column;
}

.kp-sub-product__link {
  display: block;
  color: inherit;
  text-decoration: none;
  flex: 1;
}

.kp-sub-product__media img {
  width: 100%;
  aspect-ratio: 3 / 4;
  object-fit: cover;
  display: block;
}

.kp-sub-product__info {
  padding: 14px 14px 10px;
}

.kp-sub-product__cat {
  margin: 0 0 6px;
  font-family: "Plus Jakarta Sans", system-ui, sans-serif;
  font-size: 0.6875rem;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: #888;
}

.kp-sub-product__title {
  margin: 0 0 8px;
  font-family: "Libre Baskerville", Georgia, serif;
  font-size: 0.9375rem;
  font-weight: 400;
  line-height: 1.35;
  color: #121212;
}

.kp-sub-product__price-range {
  margin: 0;
  font-family: "Plus Jakarta Sans", system-ui, sans-serif;
  font-size: 0.8125rem;
  color: #666;
}

.kp-sub-product__price {
  margin: 4px 0 0;
  font-family: "Plus Jakarta Sans", system-ui, sans-serif;
  font-size: 0.875rem;
  font-weight: 600;
  color: #121212;
}

.kp-sub-product__reviews {
  margin: 8px 0 0;
  font-family: "Plus Jakarta Sans", system-ui, sans-serif;
  font-size: 0.75rem;
  color: #888;
}

.kp-sub-product__quick {
  display: block;
  margin: 0;
  padding: 12px 14px;
  border-top: 1px solid #e8e4df;
  font-family: "Plus Jakarta Sans", system-ui, sans-serif;
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  text-align: center;
  text-decoration: none;
  color: #121212;
  background: #faf8f5;
}

.kp-sub-product__quick:hover {
  background: #121212;
  color: #fff;
}

.kp-sub-faq {
  background: #fff;
}

/* ── Site map (knesko.com sitemap-tools layout) ── */
.kp-sitemap-page {
  background: #fff;
  padding: clamp(32px, 5vw, 48px) clamp(16px, 3vw, 24px) clamp(56px, 8vw, 80px);
  text-align: center;
}

.kp-sitemap-page__header {
  max-width: 760px;
  margin: 0 auto clamp(28px, 4vw, 40px);
}

.kp-sitemap-page__title {
  margin: 0;
  font-family: "Plus Jakarta Sans", system-ui, sans-serif;
  font-size: clamp(1.75rem, 4vw, 2.25rem);
  font-weight: 700;
  letter-spacing: 0.12em;
  line-height: 1.1;
  text-transform: uppercase;
  color: #111;
}

.kp-sitemap-page__lead {
  margin: 18px 0 0;
  font-family: "Plus Jakarta Sans", system-ui, sans-serif;
  font-size: 1rem;
  line-height: 1.65;
  color: #444;
  padding-bottom: 10px;
}

.kp-sitemap-page__sections {
  max-width: 920px;
  margin: 0 auto;
  display: grid;
  gap: 0;
}

.kp-sitemap-section {
  padding: 0 0 40px;
  text-align: center;
}

.kp-sitemap-section__title {
  margin: 0 0 16px;
  font-family: "Plus Jakarta Sans", system-ui, sans-serif;
  font-size: clamp(1.125rem, 2.5vw, 1.375rem);
  font-weight: 700;
  letter-spacing: 0.12em;
  line-height: 1.15;
  text-transform: uppercase;
  color: #111;
}

.kp-sitemap-section__desc {
  max-width: 680px;
  margin: 0 auto 24px;
  font-family: "Plus Jakarta Sans", system-ui, sans-serif;
  font-size: 0.9375rem;
  line-height: 1.65;
  color: #444;
}

.kp-sitemap-section__links {
  list-style: none;
  margin: 0 auto;
  padding: 0;
  max-width: 720px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 25px;
}

.kp-sitemap-section__links a {
  font-family: "Plus Jakarta Sans", system-ui, sans-serif;
  font-size: 0.9375rem;
  line-height: 1.5;
  color: #222;
  text-decoration: none;
}

.kp-sitemap-section__links a:hover {
  color: #000;
  text-decoration: underline;
}

.kp-sitemap-section__more {
  margin-top: 16px;
}

.kp-sitemap-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: min(15.3rem, 80vw);
  min-height: 3.25rem;
  padding: 0.75rem 1.5rem;
  border: 1px solid #000;
  border-radius: 8px;
  background: #000;
  color: #fff;
  font-family: "Plus Jakarta Sans", system-ui, sans-serif;
  font-size: 0.8125rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  line-height: 1.2;
  text-transform: uppercase;
  text-decoration: none;
  transition: background 0.2s, color 0.2s;
}

.kp-sitemap-btn:hover {
  background: #fff;
  color: #000;
}

/* ── Contact page (knesko.com/pages/contact) ── */
.kp-contact-page {
  background: #fff;
  padding: clamp(40px, 6vw, 64px) clamp(16px, 3vw, 40px) clamp(24px, 4vw, 36px);
  text-align: center;
}

.kp-contact-page__inner {
  max-width: 640px;
  margin: 0 auto;
}

.kp-contact-page__title {
  margin: 0 0 12px;
  font-family: "Libre Baskerville", Georgia, serif;
  font-size: clamp(1.75rem, 4vw, 2.25rem);
  font-weight: 400;
  line-height: 1.25;
  color: #111;
}

.kp-contact-page__sub {
  margin: 0;
  font-family: "Libre Baskerville", Georgia, serif;
  font-size: clamp(1.1rem, 2.5vw, 1.35rem);
  font-weight: 400;
  line-height: 1.4;
  color: #444;
}

.kp-contact-page__note {
  margin: 16px 0 0;
  font-family: "Plus Jakarta Sans", system-ui, sans-serif;
  font-size: 0.9375rem;
  line-height: 1.65;
  color: #555;
}

.kp-contact-page--partners {
  padding-bottom: clamp(16px, 3vw, 24px);
}

.kp-partners-embed {
  background: #fff;
  padding: 0 clamp(16px, 3vw, 40px) clamp(40px, 6vw, 64px);
}

.kp-partners-embed__inner {
  max-width: 920px;
  margin: 0 auto;
}

.kp-partners-embed__frame {
  display: block;
  width: 100%;
  min-height: 720px;
  border: 0;
  background: #fff;
}

.kp-reviews-summary,
.kp-reviews-score {
  margin: 16px 0 0;
  font-size: 0.95rem;
  color: #555;
}

/* ── Reviews landing (Judge.me style) ── */
.kp-reviews-landing {
  background: #fff;
  padding: clamp(32px, 5vw, 56px) clamp(16px, 3vw, 40px) clamp(24px, 4vw, 40px);
}

.kp-reviews-landing__header {
  max-width: 640px;
  margin: 0 auto clamp(32px, 5vw, 48px);
  text-align: center;
}

.kp-reviews-landing__title {
  margin: 0;
  font-family: "Libre Baskerville", Georgia, serif;
  font-size: clamp(1.75rem, 4vw, 2.5rem);
  font-weight: 400;
  line-height: 1.2;
  color: #111;
}

.kp-reviews-landing__sub {
  margin: 12px 0 0;
  font-family: "Libre Baskerville", Georgia, serif;
  font-size: clamp(1rem, 2.2vw, 1.25rem);
  font-weight: 400;
  color: #333;
}

.kp-reviews-landing__count {
  margin: 20px 0 0;
  font-family: "Plus Jakarta Sans", system-ui, sans-serif;
  font-size: 0.9375rem;
  color: #555;
}

.kp-reviews-landing__write {
  display: inline-block;
  margin-top: 20px;
  padding: 12px 28px;
  border: 1px solid #111;
  border-radius: 999px;
  font-family: "Plus Jakarta Sans", system-ui, sans-serif;
  font-size: 0.8125rem;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  text-decoration: none;
  color: #111;
  transition: background 0.2s, color 0.2s;
}

.kp-reviews-landing__write:hover {
  background: #111;
  color: #fff;
}

.kp-reviews-distribution {
  margin-top: 28px;
  text-align: left;
}

.kp-reviews-distribution__row {
  display: grid;
  grid-template-columns: 88px 1fr auto auto;
  align-items: center;
  gap: 10px 12px;
  margin-bottom: 8px;
}

.kp-reviews-stars {
  display: inline-flex;
  gap: 1px;
  line-height: 1;
}

.kp-reviews-stars__icon {
  color: #ddd;
  font-size: 0.875rem;
}

.kp-reviews-stars__icon.is-filled {
  color: #e7ce8d;
}

.kp-reviews-distribution__bar {
  height: 8px;
  background: #ececec;
  border-radius: 999px;
  overflow: hidden;
}

.kp-reviews-distribution__fill {
  display: block;
  height: 100%;
  background: #e7ce8d;
  border-radius: inherit;
}

.kp-reviews-distribution__pct,
.kp-reviews-distribution__count {
  font-family: "Plus Jakarta Sans", system-ui, sans-serif;
  font-size: 0.8125rem;
  color: #666;
  white-space: nowrap;
}

.kp-reviews-landing__list {
  max-width: 760px;
  margin: 0 auto;
  display: grid;
  gap: 28px;
}

.kp-reviews-item {
  padding-bottom: 28px;
  border-bottom: 1px solid #ececec;
}

.kp-reviews-item:last-child {
  border-bottom: 0;
  padding-bottom: 0;
}

.kp-reviews-item__head {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 12px;
}

.kp-reviews-item__avatar {
  flex-shrink: 0;
  width: 40px;
  height: 40px;
  border-radius: 50%;
  background: #f3ebe3;
  color: #555;
  font-family: "Plus Jakarta Sans", system-ui, sans-serif;
  font-size: 1rem;
  font-weight: 600;
  display: flex;
  align-items: center;
  justify-content: center;
}

.kp-reviews-item__name {
  margin: 0 0 4px;
  font-family: "Plus Jakarta Sans", system-ui, sans-serif;
  font-size: 0.9375rem;
  font-weight: 600;
  color: #111;
}

.kp-reviews-item__title {
  margin: 0 0 8px;
  font-family: "Plus Jakarta Sans", system-ui, sans-serif;
  font-size: 0.9375rem;
  font-weight: 600;
  color: #222;
}

.kp-reviews-item__text {
  margin: 0;
  font-family: "Plus Jakarta Sans", system-ui, sans-serif;
  font-size: 0.9375rem;
  line-height: 1.65;
  color: #444;
}

.kp-reviews-item__reply {
  margin-top: 16px;
  padding: 14px 16px;
  background: #faf8f5;
  border-left: 3px solid #983345;
}

.kp-reviews-item__reply-label {
  margin: 0 0 6px;
  font-family: "Plus Jakarta Sans", system-ui, sans-serif;
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: #983345;
}

.kp-reviews-item__reply-text {
  margin: 0;
  font-family: "Plus Jakarta Sans", system-ui, sans-serif;
  font-size: 0.875rem;
  line-height: 1.6;
  color: #444;
}

.kp-reviews-featured {
  background: #faf8f5;
  padding: clamp(40px, 6vw, 64px) clamp(16px, 3vw, 40px);
  margin-top: clamp(24px, 4vw, 40px);
}

.kp-reviews-featured__inner {
  max-width: 1200px;
  margin: 0 auto;
}

.kp-reviews-featured__title {
  margin: 0 0 clamp(24px, 4vw, 36px);
  font-family: "Libre Baskerville", Georgia, serif;
  font-size: clamp(1.5rem, 3vw, 2rem);
  font-weight: 400;
  text-align: center;
  color: #111;
}

.kp-reviews-featured__grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
  gap: 20px;
}

.kp-reviews-product {
  background: #fff;
  border: 1px solid #ece8e3;
}

.kp-reviews-product__media {
  display: block;
  aspect-ratio: 1;
  overflow: hidden;
  background: #f5f5f5;
}

.kp-reviews-product__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.kp-reviews-product__body {
  padding: 16px;
}

.kp-reviews-product__quick {
  display: inline-block;
  margin-bottom: 10px;
  font-family: "Plus Jakarta Sans", system-ui, sans-serif;
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  text-decoration: none;
  color: #983345;
}

.kp-reviews-product__name {
  margin: 0 0 6px;
  font-family: "Libre Baskerville", Georgia, serif;
  font-size: 1rem;
  font-weight: 400;
  line-height: 1.35;
}

.kp-reviews-product__name a {
  color: inherit;
  text-decoration: none;
}

.kp-reviews-product__reviews,
.kp-reviews-product__price {
  margin: 0;
  font-family: "Plus Jakarta Sans", system-ui, sans-serif;
  font-size: 0.8125rem;
  color: #666;
}

.kp-reviews-product__price {
  margin-top: 4px;
  font-weight: 600;
  color: #111;
}

@media (max-width: 640px) {
  .kp-reviews-distribution__row {
    grid-template-columns: 72px 1fr auto;
  }

  .kp-reviews-distribution__count {
    grid-column: 2 / -1;
    padding-left: 84px;
  }
}

.kp-reviews-list {
  background: #fff;
  padding: 0 clamp(16px, 3vw, 40px) clamp(40px, 6vw, 64px);
}

.kp-reviews-list__inner {
  max-width: 960px;
  margin: 0 auto;
  display: grid;
  gap: 20px;
}

.kp-review-card {
  border: 1px solid #e8e8e8;
  padding: 24px;
}

.kp-review-card__stars {
  color: #e7ce8d;
  letter-spacing: 2px;
  margin-bottom: 12px;
}

.kp-review-card__quote {
  margin: 0 0 12px;
  font-size: 0.95rem;
  line-height: 1.6;
  color: #333;
}

.kp-review-card__author {
  margin: 0;
  font-size: 0.85rem;
  color: #666;
}

/* ── Contact landing (legacy cards) ── */
.kp-contact {
  background: #fff;
  padding: clamp(28px, 4vw, 40px) clamp(16px, 3vw, 40px) clamp(16px, 3vw, 24px);
}

.kp-contact__grid {
  max-width: 960px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 16px;
}

.kp-contact__card {
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  min-height: 120px;
  background: #faf8f5;
  border: 1px solid #e8e4df;
  border-radius: 4px;
  padding: clamp(20px, 3vw, 28px);
  text-decoration: none;
  color: inherit;
  transition: border-color 0.2s, box-shadow 0.2s;
}

.kp-contact__card:hover {
  border-color: #bbb;
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.06);
}

.kp-contact__card--static:hover {
  border-color: #e8e4df;
  box-shadow: none;
}

.kp-contact__card h3 {
  margin: 0 0 8px;
  font-family: "Plus Jakarta Sans", system-ui, sans-serif;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: #888;
}

.kp-contact__card p {
  margin: 0;
  font-family: "Plus Jakarta Sans", system-ui, sans-serif;
  font-size: 15px;
  line-height: 1.6;
  color: #111;
}

.kp-contact__meta {
  margin-top: 6px !important;
  font-size: 13px !important;
  color: #666 !important;
}

.kp-contact__address p {
  margin: 0 0 4px;
  font-family: "Plus Jakarta Sans", system-ui, sans-serif;
  font-size: 15px;
  line-height: 1.55;
  color: #111;
}

.kp-contact__address p:last-child {
  margin-bottom: 0;
}

/* ── Contact form (knesko.com aligned) ── */
.kp-contact-form {
  background: #fff;
  padding: 0 clamp(16px, 3vw, 40px) clamp(48px, 6vw, 72px);
}

.kp-contact-form__inner {
  max-width: 640px;
  margin: 0 auto;
}

.kp-contact-form__title {
  margin: 0 0 clamp(24px, 4vw, 32px);
  font-family: "Libre Baskerville", Georgia, serif;
  font-size: clamp(1.35rem, 3vw, 1.75rem);
  font-weight: 400;
  line-height: 1.3;
  text-align: center;
  color: #111;
}

.kp-contact-form__form {
  display: grid;
  gap: 18px;
}

.kp-contact-form__row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
}

.kp-contact-form__field {
  display: grid;
  gap: 8px;
}

.kp-contact-form__label {
  font-family: "Plus Jakarta Sans", system-ui, sans-serif;
  font-size: 13px;
  font-weight: 600;
  color: #333;
}

.kp-contact-form__field input,
.kp-contact-form__field select,
.kp-contact-form__field textarea {
  width: 100%;
  padding: 12px 14px;
  border: 1px solid #d8d4cf;
  border-radius: 2px;
  background: #fff;
  font-family: "Plus Jakarta Sans", system-ui, sans-serif;
  font-size: 15px;
  color: #111;
}

.kp-contact-form__field textarea {
  resize: vertical;
  min-height: 140px;
}

.kp-contact-form__field input:focus,
.kp-contact-form__field select:focus,
.kp-contact-form__field textarea:focus {
  outline: none;
  border-color: #111;
}

.kp-contact-form__submit {
  justify-self: center;
  margin-top: 8px;
  padding: 0.85rem 2.5rem;
  background: #111;
  color: #fff;
  border: 1px solid #111;
  border-radius: 2px;
  font-family: "Plus Jakarta Sans", system-ui, sans-serif;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  cursor: pointer;
  transition: background 0.2s;
}

.kp-contact-form__submit:hover {
  background: #333;
  border-color: #333;
}

.kp-contact-form__success {
  margin: 16px 0 0;
  text-align: center;
  font-family: "Plus Jakarta Sans", system-ui, sans-serif;
  font-size: 14px;
  line-height: 1.6;
  color: #2e7d32;
}

.kp-contact-form__success.hidden {
  display: none;
}

.kp-contact-form__req {
  color: #c0392b;
}

.kp-contact-form__wholesale.hidden {
  display: none;
}

.kp-contact-form__section {
  display: grid;
  gap: 16px;
  padding: clamp(20px, 3vw, 28px) 0;
  border-top: 1px solid #e8e4df;
}

.kp-contact-form__section:first-child {
  border-top: none;
  padding-top: 8px;
}

.kp-contact-form__section-title {
  margin: 0;
  font-family: "Plus Jakarta Sans", system-ui, sans-serif;
  font-size: 15px;
  font-weight: 700;
  color: #111;
}

.kp-contact-form__section-sub {
  margin: -8px 0 0;
  font-family: "Plus Jakarta Sans", system-ui, sans-serif;
  font-size: 13px;
  line-height: 1.5;
  color: #666;
}

.kp-contact-form__fieldset {
  margin: 0;
  padding: 0;
  border: none;
  display: grid;
  gap: 10px;
}

.kp-contact-form__legend {
  font-family: "Plus Jakarta Sans", system-ui, sans-serif;
  font-size: 13px;
  font-weight: 600;
  color: #333;
  padding: 0;
}

.kp-contact-form__hint {
  margin: -4px 0 0;
  font-family: "Plus Jakarta Sans", system-ui, sans-serif;
  font-size: 12px;
  color: #888;
}

.kp-contact-form__options {
  display: flex;
  flex-wrap: wrap;
  gap: 10px 16px;
}

.kp-contact-form__options--stack {
  flex-direction: column;
  gap: 8px;
}

.kp-contact-form__option {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-family: "Plus Jakarta Sans", system-ui, sans-serif;
  font-size: 14px;
  color: #333;
  cursor: pointer;
}

.kp-contact-form__option input {
  width: auto;
  margin: 0;
  accent-color: #111;
}

.shop-layout {
  display: grid;
  grid-template-columns: 240px 1fr;
  gap: 2rem;
  max-width: 1280px;
  margin: 0 auto;
  padding: 2rem 1.25rem 3rem;
}

@media (max-width: 900px) {
  .shop-layout {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 768px) {
  .kp-hero {
    grid-template-columns: 1fr;
  }

  .kp-hero__media {
    order: -1;
    max-height: 360px;
    aspect-ratio: auto;
  }

  .kp-blog-grid {
    grid-template-columns: 1fr;
  }

  .kp-values__grid {
    grid-template-columns: 1fr;
    gap: 24px;
    text-align: center;
  }

  .kp-program-steps__grid,
  .kp-program-tiers__grid {
    grid-template-columns: 1fr;
  }

  .kp-program-perks__grid {
    grid-template-columns: repeat(2, 1fr);
  }

  .kp-sitemap__grid {
    grid-template-columns: 1fr;
  }

  .kp-contact__grid {
    grid-template-columns: 1fr;
  }

  .kp-contact-form__row {
    grid-template-columns: 1fr;
  }

  .kp-rewards-how__grid,
  .kp-rewards-achievements__grid {
    grid-template-columns: 1fr;
  }

  .kp-rewards-earn__grid {
    grid-template-columns: repeat(2, 1fr);
  }

  .kp-sub-hero__inner,
  .kp-sub-how__layout,
  .kp-sub-perks__grid,
  .kp-sub-products__grid {
    grid-template-columns: 1fr;
  }

  .kp-sub-how__cta-row {
    flex-direction: column;
    align-items: stretch;
  }

  .kp-sub-how__cta-row .kp-rewards-btn {
    width: 100%;
    text-align: center;
  }
}

/* ── Account landing (knesko.com/account style) ── */
.kp-account {
  padding: clamp(2rem, 5vw, 4rem) clamp(1.25rem, 4vw, 3rem);
  background: #f7f3ee;
}

.kp-account__inner {
  max-width: 960px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(220px, 280px);
  gap: clamp(2rem, 4vw, 3.5rem);
  align-items: start;
}

.kp-account__title {
  font-family: var(--knesko-font, 'Montserrat', sans-serif);
  font-size: clamp(1.5rem, 3vw, 2rem);
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  margin: 0 0 0.5rem;
}

.kp-account__sub {
  font-size: 0.9375rem;
  color: #666;
  margin: 0 0 1.5rem;
  line-height: 1.5;
}

.kp-account__form {
  display: grid;
  gap: 1rem;
}

.kp-account__field {
  display: grid;
  gap: 0.35rem;
}

.kp-account__field span {
  font-size: 0.75rem;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.kp-account__field input {
  border: 1px solid #111;
  padding: 0.85rem 1rem;
  font-family: inherit;
  font-size: 0.9375rem;
  background: #fff;
}

.kp-account__submit {
  margin-top: 0.5rem;
  background: #111;
  color: #fff;
  border: none;
  padding: 1rem;
  font-family: inherit;
  font-size: 0.8125rem;
  font-weight: 600;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  cursor: pointer;
}

.kp-account__hint {
  font-size: 0.8125rem;
  line-height: 1.55;
  color: #444;
  margin: 0.5rem 0 0;
}

.kp-account__hint a {
  color: #111;
  text-decoration: underline;
}

.kp-account__aside {
  background: #fff;
  border: 1px solid #e8e4df;
  padding: 1.5rem;
}

.kp-account__aside-title {
  font-size: 0.8125rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  margin: 0 0 1rem;
}

.kp-account__links {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 0.65rem;
}

.kp-account__links a {
  font-size: 0.875rem;
  color: #111;
  text-decoration: underline;
  text-underline-offset: 0.15em;
}

@media (max-width: 749px) {
  .kp-account__inner {
    grid-template-columns: 1fr;
  }
}
