/* ==========================================================================
   Homepage-specific styles. Replaces assets/css/company-home.css and the
   inline styles previously attached to .elementor-section markup.
   ========================================================================== */

/* ---------- Hero ---------- */
.hero {
  position: relative;
  min-height: clamp(480px, 78svh, 760px);
  color: var(--color-text-on-dark);
  background: var(--gradient-hero);
  overflow: hidden;
  isolation: isolate;
}
@supports not (height: 1svh) {
  .hero { min-height: clamp(480px, 78vh, 760px); }
}
.hero::after {
  content: ""; position: absolute; inset: 0;
  background: radial-gradient(60% 60% at 80% 30%, rgba(3, 105, 161, 0.18), transparent 60%);
  pointer-events: none;
}
.hero__media {
  position: absolute; inset: 0;
  z-index: -1;
  overflow: hidden;
}
.hero__slide {
  position: absolute; inset: 0;
  background-size: cover; background-position: center;
  opacity: 0;
  transition: opacity 1200ms var(--ease-in-out);
  transform: scale(1.05);
}
.hero__slide.is-active { opacity: 1; animation: heroKenBurns 12s var(--ease-in-out) infinite alternate; }
@keyframes heroKenBurns {
  0%   { transform: scale(1.05) translate3d(0, 0, 0); }
  100% { transform: scale(1.15) translate3d(-1%, -1.5%, 0); }
}
.hero__media::after {
  content: ""; position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(11, 13, 18, 0.35) 0%, rgba(11, 13, 18, 0.82) 100%);
}
.hero__inner {
  position: relative;
  z-index: 1;
  min-height: clamp(480px, 78svh, 760px);
  display: flex; align-items: center;
}
@supports not (height: 1svh) {
  .hero__inner { min-height: clamp(480px, 78vh, 760px); }
}
.hero__content { max-width: 720px; }
.hero__eyebrow {
  display: inline-flex; align-items: center; gap: 10px;
  padding: 6px 16px;
  border-radius: var(--radius-pill);
  background: rgba(255, 255, 255, 0.08);
  border: 1px solid rgba(255, 255, 255, 0.16);
  font-size: var(--fs-xs);
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--color-accent-soft);
  margin-bottom: var(--space-4);
}
.hero__eyebrow-badge {
  background: var(--color-surface-glass);
  color: var(--color-text-on-dark);
  border: 1px solid rgba(255, 255, 255, 0.16);
}
.hero__title {
  font-size: clamp(2.25rem, 5vw, 4rem);
  font-weight: 700;
  letter-spacing: -0.02em;
  color: var(--color-text-on-dark);
  margin-bottom: var(--space-4);
  line-height: 1.1;
}
.hero__title em { font-family: var(--font-serif); font-style: italic; color: var(--color-accent-soft); }
.hero__lede {
  font-size: var(--fs-md);
  color: var(--color-text-on-dark-soft);
  max-width: 56ch;
  margin-bottom: var(--space-5);
}
.hero__cta { display: flex; gap: var(--space-3); flex-wrap: wrap; }
.hero__trust {
  display: flex; flex-wrap: wrap; gap: var(--space-3);
  margin-bottom: var(--space-5);
}
.hero__trust-item {
  display: inline-flex; align-items: center; gap: 6px;
  padding: 4px 12px;
  border-radius: var(--radius-pill);
  background: rgba(255, 255, 255, 0.08);
  border: 1px solid rgba(255, 255, 255, 0.16);
  font-size: var(--fs-xs); font-weight: 600;
  letter-spacing: 0.06em;
  color: var(--color-text-on-dark-soft);
}
.hero__trust-item svg { color: var(--color-accent-soft); }
.hero__meta {
  margin-top: var(--space-4);
  font-size: var(--fs-xs);
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--color-text-on-dark-muted);
}
.hero__nav {
  position: absolute;
  inset: 0 clamp(18px, 4vw, 56px);
  z-index: 2;
  display: flex;
  align-items: center;
  justify-content: space-between;
  pointer-events: none;
}
.hero__nav-btn {
  width: clamp(44px, 5vw, 56px);
  height: clamp(44px, 5vw, 56px);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid rgba(255, 255, 255, 0.24);
  border-radius: var(--radius-pill);
  background: rgba(255, 255, 255, 0.12);
  color: var(--color-text-on-dark);
  box-shadow: 0 18px 48px rgba(0, 0, 0, 0.28);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  cursor: pointer;
  pointer-events: auto;
  transition: transform 180ms var(--ease-out), border-color 180ms var(--ease-out), background 180ms var(--ease-out), color 180ms var(--ease-out);
}
.hero__nav-btn:hover,
.hero__nav-btn:focus-visible {
  transform: translateY(-2px);
  border-color: rgba(245, 158, 11, 0.78);
  background: rgba(245, 158, 11, 0.92);
  color: #111827;
}
.hero__nav-btn:focus-visible {
  outline: 3px solid rgba(255, 255, 255, 0.75);
  outline-offset: 3px;
}
.hero__nav-btn:active { transform: translateY(0) scale(0.98); }
.hero__scroll-hint {
  position: absolute; bottom: 24px; left: 50%; transform: translateX(-50%);
  display: flex; flex-direction: column; align-items: center; gap: 6px;
  font-size: var(--fs-xs); letter-spacing: 0.18em; text-transform: uppercase;
  color: rgba(255, 255, 255, 0.6);
  z-index: 1;
}
.hero__scroll-hint::after {
  content: ""; width: 1px; height: 36px;
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.6), transparent);
  animation: scrollPulse 1.8s var(--ease-in-out) infinite;
}
@keyframes scrollPulse {
  0%   { transform: scaleY(0); transform-origin: top; }
  50%  { transform: scaleY(1); transform-origin: top; }
  51%  { transform: scaleY(1); transform-origin: bottom; }
  100% { transform: scaleY(0); transform-origin: bottom; }
}
@media (max-width: 900px) {
  .hero__nav {
    inset: auto 18px 24px auto;
    justify-content: flex-end;
    gap: 10px;
  }
}
/* Small screens: the scroll hint overlaps CTAs/meta, and the hero needs
   breathing room top/bottom so content never hugs the viewport edge. */
@media (max-width: 560px) {
  .hero__scroll-hint { display: none; }
  .hero__inner { padding-block: clamp(2.5rem, 8vw, 4rem); }
}

/* ---------- Trust strip ---------- */
.trust-strip {
  display: flex; flex-wrap: wrap; justify-content: center; gap: var(--space-5);
  padding-block: clamp(1.5rem, 4vw, 2.5rem);
  border-bottom: 1px solid var(--color-border);
  background: var(--color-bg-elev);
}
.trust-strip__item {
  display: inline-flex; align-items: center; gap: 10px;
  font-size: var(--fs-sm); color: var(--color-text-soft);
}
.trust-strip__item strong { color: var(--color-text); font-weight: 700; }

/* ---------- Stats / counter section ---------- */
.stats {
  display: grid; gap: var(--space-5);
  grid-template-columns: repeat(4, 1fr);
}
@media (max-width: 900px) { .stats { grid-template-columns: repeat(2, 1fr); } }
.stat {
  position: relative;
  padding: var(--space-6) var(--space-5);
  background: var(--color-surface);
  border-radius: var(--radius-lg);
  border: 1px solid var(--color-border);
  text-align: left;
  overflow: hidden;
  transition: transform var(--duration-base) var(--ease-out), box-shadow var(--duration-base) var(--ease-out), border-color var(--duration-base) var(--ease-out);
}
.stat::before {
  content: ""; position: absolute; left: 0; top: 0; bottom: 0; width: 4px;
  background: var(--color-accent);
  transform: scaleY(0); transform-origin: bottom;
  transition: transform var(--duration-base) var(--ease-out);
}
.stat:hover { transform: translateY(-4px); box-shadow: var(--shadow-md); border-color: var(--color-accent-soft); }
.stat:hover::before { transform: scaleY(1); }
.stat__value {
  font-family: var(--font-display);
  font-size: clamp(2rem, 3.5vw, 3rem);
  font-weight: 700;
  letter-spacing: -0.02em;
  color: var(--color-text);
  display: flex; align-items: baseline; gap: 4px;
}
.stat__value .unit { font-size: 0.5em; color: var(--color-accent-deep); }
.stat__label { font-size: var(--fs-sm); color: var(--color-text-soft); margin-top: 4px; }

/* ---------- Why Choose / features ---------- */
.features { display: grid; gap: var(--space-5); grid-template-columns: repeat(3, 1fr); }
@media (max-width: 900px) { .features { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 560px) { .features { grid-template-columns: 1fr; } }
/* Four-card company-profile layout: balanced 2x2 on desktop so the long
   descriptive cards breathe, instead of an awkward 3+1 orphan. */
.features--quad { grid-template-columns: repeat(2, 1fr); gap: var(--space-6); }
@media (max-width: 720px) { .features--quad { grid-template-columns: 1fr; } }
.features--quad .card--feature { padding: var(--space-6); }
.features--quad .card--feature h3 { font-size: var(--fs-lg); }
.features--quad .card--feature p { font-size: var(--fs-base); line-height: 1.75; }
.feature__icon {
  display: inline-flex; align-items: center; justify-content: center;
  width: 72px; height: 72px;
  border-radius: var(--radius-md);
  background: var(--color-bg-elev);
  border: 1px solid var(--color-border);
  margin-bottom: var(--space-4);
  transition: transform var(--duration-base) var(--ease-out), background var(--duration-base) var(--ease-out);
}
.feature__icon img { width: 44px; height: 44px; object-fit: contain; }
.card--feature:hover .feature__icon { transform: translateY(-4px) rotate(-4deg); background: var(--color-surface); }

/* ---------- Factory profile (clean wide factory film) ---------- */
.profile {
  position: relative;
  overflow: hidden;
  isolation: isolate;
  padding-block: clamp(3rem, 6vw, 5.5rem);
  color: var(--color-text-on-dark);
  background: linear-gradient(180deg, #020617 0%, #0f172a 100%);
}
.profile::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  opacity: 0.06;
  background-image:
    linear-gradient(rgba(148, 163, 184, 0.32) 1px, transparent 1px),
    linear-gradient(90deg, rgba(148, 163, 184, 0.24) 1px, transparent 1px);
  background-size: 80px 80px;
  mask-image: linear-gradient(180deg, transparent, #000 20%, #000 78%, transparent);
}
.profile .container { position: relative; z-index: 1; overflow-x: visible; }
.profile .eyebrow {
  display: inline-flex;
  align-items: center;
  padding: 6px 14px;
  border: 1px solid rgba(56, 189, 248, 0.32);
  border-radius: var(--radius-pill);
  background: rgba(56, 189, 248, 0.12);
  color: var(--color-accent-soft);
}
.profile__intro {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(340px, 0.62fr);
  gap: clamp(var(--space-5), 4vw, var(--space-7));
  align-items: end;
  margin-bottom: clamp(var(--space-5), 4vw, var(--space-7));
}
.profile__copy { max-width: 920px; }
.profile__title {
  max-width: 18ch;
  margin-bottom: 0;
  font-size: clamp(2.15rem, 4.6vw, 4.6rem);
  line-height: 1.04;
  letter-spacing: -0.035em;
  color: var(--color-text-on-dark);
  text-wrap: balance;
}
.profile__title em {
  display: inline;
  font-style: normal;
  color: var(--color-accent-soft);
}
.profile__aside {
  padding: clamp(var(--space-4), 2.4vw, var(--space-5));
  border: 1px solid rgba(148, 163, 184, 0.28);
  border-radius: var(--radius-lg);
  background: rgba(15, 23, 42, 0.9);
  color: var(--color-text-on-dark);
  box-shadow: 0 18px 44px rgba(2, 6, 23, 0.28);
}
.profile__lede {
  max-width: 64ch;
  margin-bottom: var(--space-4);
  font-size: clamp(1rem, 1.1vw, 1.125rem);
  line-height: 1.65;
  color: #dbeafe;
}

/* Wide, near full-viewport video without blocking native controls. */
.profile__cinema {
  --profile-edge: max(16px, var(--container-gutter));
  position: relative;
  box-sizing: border-box;
  width: min(1680px, calc(100vw - (2 * var(--profile-edge))));
  margin-left: 50%;
  padding: clamp(8px, 1vw, 14px);
  transform: translateX(-50%);
  border: 1px solid rgba(148, 163, 184, 0.22);
  border-radius: clamp(18px, 2vw, 30px);
  background: rgba(2, 6, 23, 0.86);
  box-shadow: 0 24px 64px rgba(2, 6, 23, 0.42);
}
.profile__cinema[data-reveal] { transform: translateX(-50%) translate3d(0, 24px, 0); }
.profile__cinema[data-reveal].is-visible { transform: translateX(-50%); }
.profile__video { margin: 0; }
.profile__video-caption {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin: 0 0 var(--space-3);
  padding: 7px 12px;
  border: 1px solid rgba(56, 189, 248, 0.28);
  border-radius: var(--radius-pill);
  background: rgba(3, 105, 161, 0.14);
  color: var(--color-text-on-dark);
  font-size: var(--fs-xs);
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}
.profile__video-caption::before {
  content: "";
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: var(--color-accent-soft);
}
.profile__hero {
  position: relative;
  aspect-ratio: 16 / 9;
  border-radius: clamp(14px, 1.6vw, 24px);
  overflow: hidden;
  background: #000;
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.08);
}
.profile__hero video {
  width: 100%;
  height: 100%;
  object-fit: contain;
  display: block;
  background: #000;
}
.profile__hero video:focus-visible {
  outline: 3px solid #fff;
  outline-offset: 4px;
}

.profile__facts {
  list-style: none;
  padding: var(--space-3);
  margin: var(--space-3) 0 0;
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: var(--space-3);
  border: 1px solid rgba(148, 163, 184, 0.18);
  border-radius: var(--radius-lg);
  background: rgba(15, 23, 42, 0.72);
}
.profile__fact {
  min-width: 0;
  padding: var(--space-3) var(--space-4);
  border-radius: var(--radius-md);
  background: rgba(255, 255, 255, 0.035);
}
.profile__fact-num {
  display: block;
  font-family: var(--font-display);
  font-weight: 800;
  font-size: clamp(1.2rem, 2vw, 1.75rem);
  color: var(--color-text-on-dark);
  line-height: 1;
  letter-spacing: -0.025em;
}
.profile__fact-num span { font-size: 0.52em; color: var(--color-accent-soft); margin-left: 2px; }
.profile__fact-label {
  display: block;
  margin-top: 6px;
  font-size: var(--fs-xs);
  color: var(--color-text-on-dark-muted);
  letter-spacing: 0.04em;
}

/* Compact quick links beside the intro copy. */
.profile__links { display: grid; gap: var(--space-2); }
.profile__link {
  position: relative;
  display: flex;
  align-items: center;
  gap: var(--space-3);
  min-height: 56px;
  padding: var(--space-3) var(--space-4);
  border-radius: var(--radius-md);
  background: rgba(15, 23, 42, 0.68);
  border: 1px solid rgba(148, 163, 184, 0.28);
  color: var(--color-text-on-dark);
  overflow: hidden;
  transition: transform var(--duration-base) var(--ease-out),
              background var(--duration-base) var(--ease-out),
              border-color var(--duration-base) var(--ease-out);
}
.profile__link::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0;
  bottom: 0;
  width: 3px;
  background: var(--color-accent-soft);
  transform: scaleY(0);
  transform-origin: center;
  transition: transform var(--duration-base) var(--ease-out);
}
.profile__link:hover,
.profile__link:focus-visible {
  transform: translateY(-2px);
  background: rgba(56, 189, 248, 0.09);
  border-color: rgba(56, 189, 248, 0.38);
  color: var(--color-text-on-dark);
}
.profile__link:hover::before,
.profile__link:focus-visible::before { transform: scaleY(1); }
.profile__link-icon {
  width: 42px;
  height: 42px;
  border-radius: var(--radius-md);
  flex: 0 0 auto;
  background: rgba(56, 189, 248, 0.16);
  color: var(--color-accent-soft);
  box-shadow: inset 0 0 0 1px rgba(56, 189, 248, 0.22);
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
.profile__link-icon svg { width: 23px; height: 23px; stroke-width: 2; }
.profile__link:hover .profile__link-icon,
.profile__link:focus-visible .profile__link-icon {
  background: rgba(56, 189, 248, 0.24);
  color: var(--color-text-on-dark);
}
.profile__link-title { font-size: var(--fs-sm); font-weight: 800; letter-spacing: 0.01em; color: var(--color-text-on-dark); }
.profile__link-arrow {
  margin-left: auto;
  opacity: 0.95;
  transform: translateX(-2px);
  color: var(--color-accent-soft);
  transition: opacity var(--duration-base) var(--ease-out), transform var(--duration-base) var(--ease-out);
}
.profile__link:hover .profile__link-arrow,
.profile__link:focus-visible .profile__link-arrow,
.profile__link:focus-within .profile__link-arrow { opacity: 1; transform: translateX(2px); }
.profile__link:focus-visible { outline: 3px solid #fff; outline-offset: 3px; }

@media (max-width: 1024px) {
  .profile__intro { grid-template-columns: 1fr; align-items: start; }
  .profile__title { max-width: 20ch; }
  .profile__aside { max-width: 760px; }
  .profile__facts { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 640px) {
  .profile { padding-block: clamp(2.5rem, 12vw, 4rem); }
  .profile__title {
    font-size: clamp(2rem, 10vw, 3.2rem);
    line-height: 1.08;
    letter-spacing: -0.025em;
  }
  .profile__cinema { --profile-edge: max(12px, var(--container-gutter)); border-radius: var(--radius-lg); }
  .profile__facts { grid-template-columns: 1fr; padding: var(--space-2); }
}
@media (prefers-reduced-motion: reduce) {
  .profile__link,
  .profile__link::before,
  .profile__link-arrow { transition: none; }
  .profile__link:hover,
  .profile__link:focus-visible { transform: none; }
}

@keyframes pulse {
  0%   { box-shadow: 0 0 0 0 rgba(3, 105, 161, 0.5); }
  70%  { box-shadow: 0 0 0 24px rgba(3, 105, 161, 0); }
  100% { box-shadow: 0 0 0 0 rgba(3, 105, 161, 0); }
}

/* ---------- Product category — dual feature cards ---------- */
.category-feature {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--space-5);
  align-items: stretch;
}
@media (max-width: 768px) { .category-feature { grid-template-columns: 1fr; } }
.category-feature__card {
  position: relative;
  display: flex; align-items: flex-end;
  min-height: clamp(360px, 44vw, 520px);
  border-radius: var(--radius-xl);
  overflow: hidden;
  background: var(--color-bg-elev);
  box-shadow: var(--shadow-sm);
  isolation: isolate;
  transition: transform var(--duration-base) var(--ease-out), box-shadow var(--duration-base) var(--ease-out);
}
.category-feature__card:hover { transform: translateY(-4px); box-shadow: var(--shadow-lg); }
.category-feature__card:focus-visible { outline: 2px solid var(--color-accent); outline-offset: 3px; }
.category-feature__media { position: absolute; inset: 0; z-index: 0; }
.category-feature__media img {
  width: 100%; height: 100%; object-fit: cover;
  transition: transform 1.2s var(--ease-out);
}
.category-feature__card:hover .category-feature__media img { transform: scale(1.06); }
.category-feature__overlay {
  position: absolute; inset: 0; z-index: 1;
  background: linear-gradient(180deg, rgba(8, 15, 26, 0.05) 0%, rgba(8, 15, 26, 0.15) 45%, rgba(8, 15, 26, 0.78) 100%);
  transition: opacity var(--duration-base) var(--ease-out);
}
.category-feature__card:hover .category-feature__overlay { opacity: 0.92; }
.category-feature__body {
  position: relative; z-index: 2;
  display: flex; flex-direction: column; gap: 10px;
  padding: clamp(1.25rem, 3vw, 2rem);
  color: #fff;
}
.category-feature__tag {
  align-self: flex-start;
  display: inline-flex; align-items: center;
  padding: 5px 12px;
  border-radius: var(--radius-pill);
  background: rgba(255, 255, 255, 0.16);
  border: 1px solid rgba(255, 255, 255, 0.32);
  backdrop-filter: blur(6px);
  font-size: var(--fs-xs); font-weight: 700; letter-spacing: 0.06em;
  text-transform: uppercase;
}
.category-feature__name {
  margin: 0;
  font-family: var(--font-display);
  font-size: clamp(1.4rem, 2.6vw, 2rem);
  font-weight: 700; line-height: 1.1; letter-spacing: -0.02em;
  color: #fff;
}
.category-feature__desc {
  margin: 0;
  max-width: 46ch;
  font-size: var(--fs-sm); line-height: 1.55;
  color: rgba(255, 255, 255, 0.88);
}
.category-feature__cta {
  display: inline-flex; align-items: center; gap: 8px;
  margin-top: 6px;
  align-self: flex-start;
  padding: 9px 16px;
  border-radius: var(--radius-pill);
  background: rgba(255, 255, 255, 0.94);
  color: var(--color-accent-deep);
  font-size: var(--fs-sm); font-weight: 700;
  transition: background var(--duration-base) var(--ease-out), transform var(--duration-base) var(--ease-out);
}
.category-feature__cta svg { transition: transform var(--duration-base) var(--ease-out); }
.category-feature__card:hover .category-feature__cta { background: #fff; }
.category-feature__card:hover .category-feature__cta svg { transform: translateX(4px); }

/* ---------- Product carousel wrapper ---------- */
.product-carousel { position: relative; }
.product-carousel .swiper { padding-block: 8px; }
.product-carousel__head { display: flex; align-items: end; justify-content: space-between; margin-bottom: var(--space-5); flex-wrap: wrap; gap: var(--space-3); }
.product-carousel__intro { display: flex; flex-direction: column; gap: 4px; }
.product-carousel__title {
  font-family: var(--font-display);
  font-size: clamp(1.5rem, 2.4vw, 2rem);
  font-weight: 700;
  letter-spacing: -0.015em;
  color: var(--color-text);
  margin: 0;
}
.product-carousel__subtitle { font-size: var(--fs-sm); color: var(--color-text-soft); margin: 0; }
.product-carousel__nav { display: flex; gap: 8px; }
.product-carousel__nav-btn {
  width: 44px; height: 44px; border-radius: 50%;
  border: 1px solid var(--color-border);
  background: var(--color-surface);
  color: var(--color-text);
  display: inline-flex; align-items: center; justify-content: center;
  transition: background var(--duration-fast) var(--ease-out), color var(--duration-fast) var(--ease-out), border-color var(--duration-fast) var(--ease-out);
}
.product-carousel__nav-btn:hover { background: var(--color-accent); color: var(--color-accent-contrast); border-color: var(--color-accent); }
.product-carousel__nav-btn:focus-visible { outline: 2px solid var(--color-accent); outline-offset: 2px; }
.product-carousel__nav-btn.swiper-button-disabled { opacity: 0.35; cursor: not-allowed; pointer-events: none; }
.product-carousel__nav-btn:active:not(.swiper-button-disabled) { transform: scale(0.94); }
/* If the Swiper runtime never loads, app.js tags the container with
   .swiper-fallback and the track degrades to a plain responsive grid so all
   products stay visible instead of stacking at one-per-viewport. */
.swiper.swiper-fallback { overflow: visible; }
.swiper.swiper-fallback .swiper-wrapper {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 20px;
  transform: none;
}
.swiper.swiper-fallback .swiper-slide { width: auto; }
@media (max-width: 1199px) { .swiper.swiper-fallback .swiper-wrapper { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 899px)  { .swiper.swiper-fallback .swiper-wrapper { grid-template-columns: repeat(2, 1fr); gap: 16px; } }
@media (max-width: 559px)  { .swiper.swiper-fallback .swiper-wrapper { grid-template-columns: 1fr; gap: 16px; } }

/* Product card styles live in components.css so they apply on both the home
   page and the WooCommerce shop/archive pages where .product-card is used. */

/* ---------- Factory gallery (image grid) ---------- */
.factory-gallery { display: grid; gap: var(--space-3); grid-template-columns: repeat(12, 1fr); }
.factory-gallery a { position: relative; aspect-ratio: 4 / 3; overflow: hidden; border-radius: var(--radius-md); display: block; }
.factory-gallery img { width: 100%; height: 100%; object-fit: cover; transition: transform var(--duration-slow) var(--ease-out); }
.factory-gallery a::after {
  content: ""; position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(0,0,0,0) 50%, rgba(0,0,0,0.4) 100%);
  opacity: 0; transition: opacity var(--duration-base) var(--ease-out);
}
.factory-gallery a:hover::after { opacity: 1; }
.factory-gallery a:hover img { transform: scale(1.08); }
/* Tablet: simplified 4-col grid to avoid the dense 12-col jump at ~700px. */
@media (min-width: 700px) and (max-width: 900px) {
  .factory-gallery { grid-template-columns: repeat(4, 1fr); }
  .factory-gallery > a:nth-child(n) { grid-column: auto !important; aspect-ratio: 4 / 3 !important; }
  .factory-gallery > a:nth-child(1),
  .factory-gallery > a:nth-child(2) { grid-column: span 2 !important; aspect-ratio: 16 / 9 !important; }
}
/* Desktop: full 12-col editorial layout. */
@media (min-width: 901px) {
  .factory-gallery > a:nth-child(1) { grid-column: span 6; aspect-ratio: 16 / 9; }
  .factory-gallery > a:nth-child(2) { grid-column: span 6; aspect-ratio: 16 / 9; }
  .factory-gallery > a:nth-child(3) { grid-column: span 4; }
  .factory-gallery > a:nth-child(4) { grid-column: span 4; }
  .factory-gallery > a:nth-child(5) { grid-column: span 4; }
  .factory-gallery > a:nth-child(6) { grid-column: span 3; }
  .factory-gallery > a:nth-child(7) { grid-column: span 3; }
  .factory-gallery > a:nth-child(8) { grid-column: span 3; }
  .factory-gallery > a:nth-child(9) { grid-column: span 3; }
  .factory-gallery > a:nth-child(10) { grid-column: span 4; }
  .factory-gallery > a:nth-child(11) { grid-column: span 4; }
  .factory-gallery > a:nth-child(12) { grid-column: span 4; }
}
@media (max-width: 700px) {
  .factory-gallery { grid-template-columns: repeat(2, 1fr); }
  .factory-gallery > a { aspect-ratio: 1; grid-column: auto !important; }
}
/* Touch devices have no hover; keep the "tap to expand" cue visible. */
@media (hover: none) {
  .factory-gallery a::after { opacity: 1; }
}

/* ---------- CTA band ---------- */
.cta-band {
  position: relative;
  border-radius: var(--radius-xl);
  padding: clamp(2.5rem, 5vw, 4rem);
  background: var(--gradient-cta);
  color: #fff;
  display: flex; align-items: center; justify-content: space-between; gap: var(--space-5);
  flex-wrap: wrap;
  overflow: hidden;
  isolation: isolate;
}
.cta-band::before {
  content: ""; position: absolute; inset: 0;
  background:
    radial-gradient(40% 40% at 20% 30%, rgba(255, 255, 255, 0.25), transparent 70%),
    radial-gradient(30% 30% at 80% 70%, rgba(255, 255, 255, 0.18), transparent 70%);
  z-index: -1;
}
.cta-band h2 { color: #fff; font-size: clamp(1.5rem, 2.5vw, 2rem); }
.cta-band p { color: #ffffff; margin: 0; }
.cta-band__actions { display: flex; gap: var(--space-3); flex-wrap: wrap; }

/* High-contrast solid button for placement on the dark CTA band.
   The default `.btn--primary` shares the band's accent colour and disappears;
   this variant uses a light surface + accent text so it pops on the gradient. */
.btn--cta-solid {
  background: #ffffff;
  color: var(--color-accent-deep);
  border: 1px solid #ffffff;
  box-shadow: 0 12px 28px rgba(0, 0, 0, 0.18);
}
.btn--cta-solid:hover {
  background: var(--color-accent-soft);
  color: #ffffff;
  border-color: var(--color-accent-soft);
  transform: translateY(-2px);
  box-shadow: 0 16px 36px rgba(0, 0, 0, 0.24);
  filter: none;
}

/* ---------- Brands wall ---------- */
.brands-section__title {
  text-align: center;
  font-size: var(--fs-xs);
  font-weight: 600;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--color-text-muted);
  margin-bottom: var(--space-5);
}
.brands {
  display: flex; flex-wrap: wrap; align-items: center; justify-content: center;
  gap: var(--space-5) var(--space-7);
  margin-bottom: var(--space-5);
}
.brands__name {
  font-family: var(--font-display);
  font-size: clamp(1.25rem, 2vw, 1.75rem);
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--color-text-muted);
  transition: color var(--duration-base) var(--ease-out), transform var(--duration-base) var(--ease-out);
  cursor: default;
}
.brands__name:hover { color: var(--color-accent-deep); transform: translateY(-2px); }

/* Wordmark identities — each fictitious partner gets its own type treatment */
.brands__glyph,
.brands__peak {
  width: 0.74em; height: 0.74em;
  display: inline-block; vertical-align: -0.05em;
  margin-right: 0.3em;
  color: var(--color-accent);
  transition: transform var(--duration-base) var(--ease-out);
}
.brands__peak { width: 0.6em; height: 0.6em; margin: 0 0 0 0.3em; vertical-align: -0.02em; }
.brands__name:hover .brands__glyph,
.brands__name:hover .brands__peak { transform: translateY(-2px); }
.brands__tick { color: var(--color-accent); font-weight: 400; margin: 0 0.05em; }
.brands__dot {
  width: 0.16em; height: 0.16em; border-radius: 50%;
  display: inline-block; margin-left: 0.16em;
  background: var(--color-accent);
  transition: transform var(--duration-base) var(--ease-out);
}
.brands__name--kinetix:hover .brands__dot { transform: scale(1.6); }

.brands__name--outfitter { /* Nordic outdoor retailer — airy caps */
  font-family: var(--font-sans);
  font-weight: 300;
  font-size: clamp(1.05rem, 1.7vw, 1.45rem);
  letter-spacing: 0.42em;
  margin-right: -0.42em; /* compensate trailing tracking when centered */
}
.brands__name--lab { font-weight: 700; letter-spacing: -0.015em; } /* running-tech */
.brands__name--forge { letter-spacing: 0.09em; } /* gym & training */
.brands__name--atelier { /* yoga atelier — editorial serif */
  font-family: var(--font-serif);
  font-style: italic;
  font-weight: 600;
  font-size: clamp(1.5rem, 2.4vw, 2rem);
  letter-spacing: 0.01em;
  text-transform: none;
}
.brands__name--summit { font-family: var(--font-sans); letter-spacing: 0.06em; } /* trail & outdoor */
.brands__name--kinetix { font-weight: 700; letter-spacing: 0.14em; } /* team sports */
.brands-section__badge {
  display: inline-flex; align-items: center; gap: 8px;
  margin: 0 auto;
  padding: 8px 18px;
  border-radius: var(--radius-pill);
  background: var(--color-bg-elev);
  border: 1px solid var(--color-border);
  font-size: var(--fs-sm); font-weight: 600;
  color: var(--color-text-soft);
}
.brands-section__badge svg { color: var(--color-accent); }
.brands-section .container { display: flex; flex-direction: column; align-items: center; }

/* ---------- Certifications showcase ---------- */
.certs-section { background: linear-gradient(180deg, var(--color-bg-elev), transparent); }
.certs-panel {
  /* Header strip: copy on the left, nav controls on the right. */
  display: flex; align-items: flex-end; justify-content: space-between;
  gap: var(--space-5);
  flex-wrap: wrap;
  margin-bottom: var(--space-5);
}
.certs-section__copy { display: flex; flex-direction: column; gap: var(--space-3); }
.certs-section__title {
  margin: 0;
  font-family: var(--font-display);
  font-size: clamp(1.4rem, 2.4vw, 2rem);
  line-height: 1.1;
  letter-spacing: -0.02em;
}
.certs-section__text { margin: 0; color: var(--color-text-soft); font-size: var(--fs-sm); max-width: 60ch; }
.certs-section__badges { display: flex; flex-wrap: wrap; gap: 8px; margin-top: var(--space-2); }
.certs-section__badges span {
  display: inline-flex; align-items: center; justify-content: center;
  min-width: 44px; min-height: 30px;
  padding: 6px 12px;
  border-radius: var(--radius-pill);
  background: var(--color-bg-elev);
  border: 1px solid var(--color-border);
  color: var(--color-accent-deep);
  font-size: var(--fs-xs); font-weight: 800; letter-spacing: 0.08em;
}
.certs {
  /* Full-width carousel spanning the whole content area. */
  width: 100%;
  overflow: hidden;
  padding-bottom: 30px;
}
.certs .swiper-wrapper {
  align-items: stretch;
  /* Smooth, eased glide for autoplay and arrow navigation. The timing matches
     Swiper's `speed: 800` so the slide settles softly instead of snapping. */
  transition-timing-function: cubic-bezier(0.22, 1, 0.36, 1);
  transition-duration: 800ms;
}
.certs .swiper-slide { height: auto; display: flex; }
.certs__card {
  position: relative; display: flex; flex-direction: column;
  width: 100%; height: 100%;
  min-height: 0;
  background: var(--color-bg-elev);
  border-radius: var(--radius-md);
  border: 1px solid var(--color-border);
  overflow: hidden;
  transition: transform var(--duration-base) var(--ease-out), box-shadow var(--duration-base) var(--ease-out), border-color var(--duration-base) var(--ease-out);
}
.certs__card:hover { transform: translateY(-3px); box-shadow: var(--shadow-md); border-color: var(--color-accent-soft); }
.certs__card img {
  /* Larger certificate display — fills the full content width so each
     card is roomy enough to read at a glance. */
  display: block;
  width: 100%;
  height: clamp(190px, 22vw, 300px);
  object-fit: contain;
  object-position: center;
  background: #fff;
  transition: transform var(--duration-slow) var(--ease-out);
}
.certs__card:hover img { transform: scale(1.03); }
.certs__label {
  /* Allow up to two lines so Chinese certificate names aren't truncated. */
  display: -webkit-box;
  flex: 0 0 auto;
  padding: 8px 12px;
  font-size: var(--fs-xs); font-weight: 700; line-height: 1.3;
  color: var(--color-text);
  text-align: center;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  min-height: 2.6em;
}
/* Prev/Next controls */
.certs-section__nav { display: flex; gap: 8px; flex-shrink: 0; }
.certs-nav-btn {
  display: inline-flex; align-items: center; justify-content: center;
  width: 44px; height: 44px;
  border-radius: var(--radius-pill);
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  color: var(--color-accent-deep);
  cursor: pointer;
  transition: background var(--duration-base) var(--ease-out), border-color var(--duration-base) var(--ease-out), transform var(--duration-base) var(--ease-out), color var(--duration-base) var(--ease-out);
}
.certs-nav-btn:hover { background: var(--color-bg-elev); border-color: var(--color-accent-soft); transform: translateY(-1px); color: var(--color-accent); }
.certs-nav-btn:focus-visible { outline: 2px solid var(--color-accent); outline-offset: 2px; }
.certs-nav-btn.swiper-button-disabled { opacity: 0.4; cursor: default; transform: none; }
/* Pagination dots */
.certs__pagination { position: relative; bottom: 0; margin-top: 6px; text-align: center; }
.certs__pagination.swiper-pagination-bullets { display: flex; justify-content: center; gap: 6px; }
.certs__pagination .swiper-pagination-bullet {
  width: 6px; height: 6px; border-radius: 50%;
  background: var(--color-border);
  opacity: 1;
  margin: 0 !important;
  transition: width var(--duration-base) var(--ease-out), background var(--duration-base) var(--ease-out);
}
.certs__pagination .swiper-pagination-bullet-active { width: 18px; border-radius: 3px; background: var(--color-accent); }
@media (max-width: 768px) {
  .certs-panel { flex-direction: column; align-items: flex-start; }
  .certs-section__nav { align-self: flex-end; margin-top: calc(-1 * var(--space-4)); }
}
@media (max-width: 560px) {
  .certs__card img { height: 180px; }
}


/* Certifications / Compliance Observatory */
.company-certifications {
  --cert-ink:#eef7ff; --cert-muted:rgba(238,247,255,.66); --cert-bg:#061018;
  --cert-cyan:#53f0ff; --cert-blue:#4988ff; --cert-violet:#8c5cff; --cert-gold:#ffd36a;
  --cert-line:rgba(83,240,255,.22); --cert-glass:rgba(10,24,36,.72); --cert-radius:28px;
  color:var(--cert-ink); background:var(--cert-bg); overflow:hidden;
}
.company-certifications .section{position:relative;isolation:isolate;overflow:hidden}
.company-certifications .section::before{content:"";position:absolute;inset:0;pointer-events:none;z-index:-2;background:radial-gradient(900px 420px at 12% 8%,rgba(83,240,255,.18),transparent 62%),radial-gradient(760px 360px at 86% 18%,rgba(140,92,255,.18),transparent 60%),linear-gradient(180deg,#08131d,#050b12 72%)}
.company-certifications .section::after{content:"";position:absolute;inset:0;pointer-events:none;z-index:-1;opacity:.38;background-image:linear-gradient(rgba(83,240,255,.08) 1px,transparent 1px),linear-gradient(90deg,rgba(83,240,255,.08) 1px,transparent 1px);background-size:72px 72px;mask-image:linear-gradient(180deg,transparent,#000 18%,#000 78%,transparent)}
.company-certifications .eyebrow{color:var(--cert-cyan);letter-spacing:.28em}.company-certifications .section-title{color:var(--cert-ink);font-family:var(--font-serif);font-weight:650;letter-spacing:-.035em}.company-certifications .section-title em{font-style:normal;background:linear-gradient(110deg,var(--cert-cyan),#fff 38%,var(--cert-gold) 72%,var(--cert-violet));-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}.company-certifications .section-subtitle{color:var(--cert-muted)}
.company-certifications .cert-observatory__hero{min-height:82vh;display:flex;align-items:center}.cert-hero__grid{display:grid;grid-template-columns:minmax(0,1.02fr) minmax(320px,.78fr);gap:clamp(34px,6vw,92px);align-items:center}.cert-hero__copy{max-width:760px}.company-certifications .cert-hero .section-title{max-width:860px;margin:var(--space-3) 0;font-size:clamp(3.1rem,8vw,7.4rem);line-height:.9}.company-certifications .cert-hero .section-subtitle{max-width:680px;font-size:clamp(1.02rem,1.45vw,1.24rem)}.cert-hero__actions{display:flex;flex-wrap:wrap;gap:14px;margin-top:clamp(24px,3vw,38px)}.cert-hero__actions .btn{box-shadow:0 18px 42px -20px rgba(83,240,255,.55)}
.cert-radar{position:relative;width:min(100%,470px);aspect-ratio:1;margin-inline:auto;border-radius:50%;background:radial-gradient(circle at 50% 50%,rgba(255,255,255,.14) 0 3%,transparent 4%),radial-gradient(circle,rgba(83,240,255,.16),rgba(73,136,255,.07) 38%,transparent 70%);filter:drop-shadow(0 30px 70px rgba(83,240,255,.18))}.cert-radar__ring,.cert-radar__sweep,.cert-radar__core,.cert-radar__node{position:absolute}.cert-radar__ring{inset:var(--inset,0);border:1px solid rgba(83,240,255,.28);border-radius:50%;box-shadow:inset 0 0 34px rgba(83,240,255,.08)}.cert-radar__ring--outer{--inset:0;animation:certPulse 4.4s ease-in-out infinite}.cert-radar__ring--mid{--inset:14%;animation:certPulse 4.4s ease-in-out -1.2s infinite}.cert-radar__ring--inner{--inset:29%;animation:certPulse 4.4s ease-in-out -2.4s infinite}.cert-radar__sweep{inset:50% 50% auto auto;width:45%;height:2px;transform-origin:left center;background:linear-gradient(90deg,var(--cert-cyan),transparent);box-shadow:0 0 24px var(--cert-cyan);animation:certSweep 6s linear infinite}.cert-radar__core{inset:39%;display:grid;place-items:center;border-radius:50%;font-weight:800;letter-spacing:.18em;color:#07121c;background:radial-gradient(circle at 35% 20%,#fff,var(--cert-cyan) 44%,var(--cert-blue));box-shadow:0 0 36px rgba(83,240,255,.7),inset 0 1px 0 rgba(255,255,255,.8)}.cert-radar__node{display:inline-flex;align-items:center;justify-content:center;min-width:82px;padding:9px 13px;border-radius:var(--radius-pill);color:var(--cert-ink);font-size:.72rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;background:rgba(6,16,24,.72);border:1px solid rgba(83,240,255,.32);backdrop-filter:blur(14px)}.cert-radar__node::before{content:"";width:7px;height:7px;margin-right:8px;border-radius:50%;background:var(--cert-cyan);box-shadow:0 0 16px var(--cert-cyan)}.cert-radar__node--quality{top:9%;left:4%}.cert-radar__node--security{right:0;top:46%}.cert-radar__node--awards{left:20%;bottom:7%}@keyframes certSweep{to{transform:rotate(360deg)}}@keyframes certPulse{50%{transform:scale(1.035);opacity:.62}}
.cert-stats{list-style:none;margin:clamp(34px,5vw,58px) 0 0;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(14px,1.8vw,24px)}.cert-stats__item,.cert-trust-flow li{position:relative;overflow:hidden;border-radius:22px;background:linear-gradient(145deg,rgba(255,255,255,.12),rgba(255,255,255,.035));border:1px solid rgba(255,255,255,.13);box-shadow:inset 0 1px 0 rgba(255,255,255,.16),0 26px 56px -34px rgba(0,0,0,.8);backdrop-filter:blur(18px)}.cert-stats__item{padding:clamp(18px,2vw,26px)}.cert-stats__value{display:block;font-family:var(--font-serif);font-size:clamp(2.1rem,4vw,3.4rem);line-height:1;font-weight:750;background:linear-gradient(125deg,#fff,var(--cert-cyan) 42%,var(--cert-gold));-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}.cert-stats__unit{font-size:.48em}.cert-stats__label{display:block;margin-top:.7rem;color:var(--cert-muted);font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.14em}.cert-trust-flow{position:relative;list-style:none;margin:clamp(28px,4vw,46px) 0 0;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;border:1px solid rgba(83,240,255,.2);border-radius:24px;overflow:hidden;background:linear-gradient(90deg,rgba(83,240,255,.35),rgba(140,92,255,.26),rgba(255,211,106,.28))}.cert-trust-flow li{border-radius:0;padding:clamp(18px,2vw,24px);background-color:rgba(6,16,24,.78)}.cert-trust-flow__index{display:block;margin-bottom:1.1rem;color:var(--cert-cyan);font-size:.76rem;letter-spacing:.2em}.cert-trust-flow strong{display:block;color:#fff;font-size:1.08rem}.cert-trust-flow span:last-child{display:block;margin-top:.35rem;color:var(--cert-muted);font-size:.9rem}
.company-certifications .cert-vault::before,.company-certifications .cert-shelf::before{background:radial-gradient(720px 420px at var(--wall-mx,50%) var(--wall-my,12%),rgba(83,240,255,.18),transparent 64%),radial-gradient(640px 380px at 76% 18%,rgba(255,211,106,.11),transparent 60%),linear-gradient(180deg,#07111a,#04070d 82%)}.company-certifications .cert-shelf::before{background:radial-gradient(820px 440px at var(--wall-mx,52%) var(--wall-my,18%),rgba(255,211,106,.16),transparent 64%),radial-gradient(660px 360px at 18% 18%,rgba(83,240,255,.11),transparent 60%),linear-gradient(180deg,#09131d,#05080e 84%)}.company-certifications .cert-vault .container,.company-certifications .cert-shelf .container{position:relative}#cert-authority,#cert-awards{position:absolute;top:-110px}
.cert-wall{--wall-mx:50%;--wall-my:50%;position:relative;z-index:1;display:grid;gap:clamp(22px,3vw,42px);padding:clamp(28px,5vw,68px);border-radius:var(--cert-radius);border:1px solid rgba(83,240,255,.2);background:radial-gradient(900px 420px at var(--wall-mx) var(--wall-my),rgba(83,240,255,.15),transparent 62%),linear-gradient(135deg,rgba(255,255,255,.1),rgba(255,255,255,.025));box-shadow:inset 0 1px 0 rgba(255,255,255,.14),0 40px 90px -54px rgba(0,0,0,.95);overflow:visible;perspective:1800px}.cert-wall::before{content:"";position:absolute;inset:12px;pointer-events:none;border-radius:calc(var(--cert-radius) - 10px);background:linear-gradient(90deg,transparent,rgba(83,240,255,.16),transparent) 0 0/100% 1px no-repeat,repeating-linear-gradient(180deg,rgba(255,255,255,.045) 0 1px,transparent 1px 13px);opacity:.72}.cert-wall::after{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(420px 220px at var(--wall-mx) var(--wall-my),rgba(83,240,255,.16),transparent 62%);opacity:.72}.cert-wall--formal{grid-template-columns:repeat(2,minmax(0,1fr));max-width:1060px;margin-inline:auto}.cert-wall--honors{grid-template-columns:repeat(6,minmax(0,1fr));align-items:start}.cert-wall--honors .cert-frame{grid-column:span 2}.cert-wall--honors .cert-frame:nth-child(1),.cert-wall--honors .cert-frame:nth-child(5){grid-column:span 3}.cert-wall--honors .cert-frame:nth-child(4){grid-column:2/span 2}
.cert-frame{position:relative;z-index:1;display:block;text-decoration:none;color:inherit;transform:perspective(1200px) rotateX(var(--ry,0deg)) rotateY(var(--rx,0deg)) translate3d(0,var(--lift,0),0);transform-style:preserve-3d;transition:transform var(--duration-base) var(--ease-out),filter var(--duration-base) var(--ease-out),opacity var(--duration-base) var(--ease-out);will-change:transform}.cert-frame:nth-child(odd){--lift:-8px;--ry:.8deg}.cert-frame:nth-child(even){--lift:10px;--ry:-.8deg}.cert-frame:hover,.cert-frame:focus-visible{--lift:-16px;z-index:5;filter:drop-shadow(0 30px 42px rgba(83,240,255,.16))}.cert-frame:focus-visible{outline:2px solid var(--cert-cyan);outline-offset:5px}.cert-frame__orbit{position:absolute;inset:-14px;border-radius:26px;border:1px solid rgba(83,240,255,.16);opacity:0;transform:translateZ(-20px) scale(.98);transition:opacity var(--duration-base) var(--ease-out),transform var(--duration-base) var(--ease-out)}.cert-frame:hover .cert-frame__orbit,.cert-frame:focus-visible .cert-frame__orbit{opacity:1;transform:translateZ(-20px) scale(1)}.cert-frame__flip{position:relative;display:block;padding:clamp(10px,1.2vw,16px);border-radius:22px;background:linear-gradient(145deg,rgba(255,255,255,.18),rgba(255,255,255,.05)) padding-box,linear-gradient(135deg,rgba(83,240,255,.75),rgba(255,211,106,.55),rgba(140,92,255,.62)) border-box;border:1px solid transparent;box-shadow:inset 0 1px 0 rgba(255,255,255,.18),0 26px 62px -34px #000;backdrop-filter:blur(18px);overflow:hidden}.cert-frame__flip::before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(83,240,255,.12),transparent 38%,rgba(255,211,106,.08));pointer-events:none}.cert-frame__glow{position:absolute;inset:0;z-index:2;pointer-events:none;background:radial-gradient(36% 32% at var(--mx,50%) var(--my,50%),rgba(83,240,255,.45),transparent 68%);opacity:0;mix-blend-mode:screen;transition:opacity var(--duration-base) var(--ease-out)}.cert-frame:hover .cert-frame__glow,.cert-frame:focus-visible .cert-frame__glow{opacity:1}.cert-frame__mat{position:relative;z-index:1;display:block;padding:clamp(8px,1vw,12px);border-radius:16px;background:linear-gradient(145deg,#f8fbff,#dce7ef);box-shadow:inset 0 0 0 1px rgba(0,0,0,.08),inset 0 9px 18px rgba(255,255,255,.72);overflow:hidden}.cert-frame__mat img{display:block;width:100%;height:auto;background:#fff;border-radius:10px;box-shadow:0 14px 28px -18px rgba(0,0,0,.64);transition:transform var(--duration-base) var(--ease-out),filter var(--duration-base) var(--ease-out)}.cert-frame--portrait .cert-frame__mat img{aspect-ratio:3/4;object-fit:cover}.cert-frame--landscape .cert-frame__mat img{aspect-ratio:4/3;object-fit:cover}.cert-frame:hover .cert-frame__mat img,.cert-frame:focus-visible .cert-frame__mat img{transform:scale(1.035);filter:saturate(1.05) contrast(1.03)}.cert-frame__sheen{position:absolute;inset:-20%;z-index:2;pointer-events:none;background:linear-gradient(110deg,transparent 32%,rgba(255,255,255,.62) 44%,transparent 56%);transform:translateX(calc((var(--mx,.5) - .5)*52%)) rotate(2deg);opacity:0;transition:opacity var(--duration-base) var(--ease-out);mix-blend-mode:screen}.cert-frame:hover .cert-frame__sheen,.cert-frame:focus-visible .cert-frame__sheen{opacity:.78}.cert-frame__seal{position:absolute;top:16px;right:16px;z-index:4;min-width:42px;min-height:42px;display:inline-flex;align-items:center;justify-content:center;padding:0 11px;border-radius:999px;background:radial-gradient(circle at 35% 20%,#fff,var(--cert-cyan) 42%,var(--cert-blue));box-shadow:0 0 28px rgba(83,240,255,.44),inset 0 1px 0 rgba(255,255,255,.8);transform:translateZ(52px)}.cert-frame__seal--brass{background:radial-gradient(circle at 35% 20%,#fff9d8,var(--cert-gold) 46%,#c88722);box-shadow:0 0 30px rgba(255,211,106,.42)}.cert-frame__seal-text{color:#061018;font-size:.62rem;font-weight:850;letter-spacing:.12em;text-transform:uppercase}.cert-frame__caption{position:relative;z-index:2;display:block;padding:14px 4px 2px}.cert-frame__label{display:block;color:#fff;font-size:.76rem;font-weight:750;letter-spacing:.14em;text-transform:uppercase;line-height:1.35}.cert-frame__hint{display:block;margin-top:.35rem;color:var(--cert-muted);font-size:.72rem;letter-spacing:.08em;text-transform:uppercase}.cert-frame--hero .cert-frame__label{color:var(--cert-cyan)}.cert-frame--award .cert-frame__label{color:var(--cert-gold)}
.cert-report-grid{position:relative;z-index:1;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(20px,3vw,34px);max-width:980px;margin-inline:auto}.cert-report-card{position:relative;display:grid;grid-template-columns:auto minmax(0,1fr);gap:18px;align-items:center;min-height:142px;padding:clamp(22px,3vw,34px);border-radius:26px;text-decoration:none!important;color:inherit;background:radial-gradient(420px 220px at 88% 8%,rgba(255,211,106,.14),transparent 62%),linear-gradient(145deg,rgba(255,255,255,.12),rgba(255,255,255,.035));border:1px solid rgba(83,240,255,.22);box-shadow:inset 0 1px 0 rgba(255,255,255,.15),0 30px 68px -42px rgba(0,0,0,.92);overflow:hidden;transition:transform var(--duration-base) var(--ease-out),border-color var(--duration-base) var(--ease-out),box-shadow var(--duration-base) var(--ease-out)}.cert-report-card::before{content:"";position:absolute;inset:0;background:linear-gradient(110deg,transparent 24%,rgba(83,240,255,.12) 44%,transparent 64%);transform:translateX(-70%);transition:transform var(--duration-slow) var(--ease-out);pointer-events:none}.cert-report-card:hover,.cert-report-card:focus-visible{transform:translateY(-6px);border-color:rgba(83,240,255,.5);box-shadow:inset 0 1px 0 rgba(255,255,255,.18),0 36px 80px -40px rgba(83,240,255,.28)}.cert-report-card:hover::before,.cert-report-card:focus-visible::before{transform:translateX(70%)}.cert-report-card:focus-visible{outline:2px solid var(--cert-cyan);outline-offset:5px}.cert-report-card__tag{position:relative;z-index:1;width:64px;height:64px;display:grid;place-items:center;border-radius:18px;color:#07121c;font-size:.78rem;font-weight:850;letter-spacing:.12em;background:radial-gradient(circle at 35% 22%,#fff,var(--cert-cyan) 48%,var(--cert-blue));box-shadow:0 0 28px rgba(83,240,255,.4),inset 0 1px 0 rgba(255,255,255,.82)}.cert-report-card__body{position:relative;z-index:1;min-width:0}.cert-report-card__label{display:block;color:#fff;font-size:clamp(1rem,1.4vw,1.2rem);font-weight:760;line-height:1.35;letter-spacing:.02em}.cert-report-card__meta{display:block;margin-top:.45rem;color:var(--cert-muted);font-size:.88rem;line-height:1.55}.cert-report-card__action{position:relative;z-index:1;grid-column:2;justify-self:start;margin-top:-6px;color:var(--cert-cyan);font-size:.74rem;font-weight:750;letter-spacing:.16em;text-transform:uppercase}.cert-report-card__action::after{content:" ↗"}
.cert-wall:not(.is-visible) .cert-frame{opacity:0}.cert-wall.is-visible .cert-frame{animation:certDockIn 860ms var(--ease-out) backwards;animation-delay:calc(var(--cert-i,0)*105ms)}@keyframes certDockIn{0%{opacity:0;transform:perspective(1200px) rotateX(8deg) translate3d(0,72px,-80px) scale(.94)}100%{opacity:1}}
@media (max-width:980px){.cert-hero__grid{grid-template-columns:1fr}.cert-radar{max-width:390px}.cert-stats,.cert-trust-flow{grid-template-columns:repeat(2,minmax(0,1fr))}.cert-wall--formal{grid-template-columns:1fr 1fr}.cert-wall--honors{grid-template-columns:repeat(2,minmax(0,1fr))}.cert-wall--honors .cert-frame,.cert-wall--honors .cert-frame:nth-child(1),.cert-wall--honors .cert-frame:nth-child(4),.cert-wall--honors .cert-frame:nth-child(5){grid-column:auto}}@media (max-width:760px){.cert-report-grid{grid-template-columns:1fr}.cert-report-card{grid-template-columns:auto minmax(0,1fr)}}@media (max-width:640px){.company-certifications .cert-observatory__hero{min-height:auto}.company-certifications .cert-hero .section-title{font-size:clamp(2.6rem,15vw,4.4rem)}.cert-hero__actions{flex-direction:column}.cert-hero__actions .btn{width:100%;justify-content:center}.cert-stats,.cert-trust-flow,.cert-wall--formal,.cert-wall--honors{grid-template-columns:1fr}.cert-wall{padding:18px;border-radius:22px}.cert-radar__node{transform:scale(.82)}.cert-report-card{grid-template-columns:1fr}.cert-report-card__action{grid-column:1}.cert-frame,.cert-frame:nth-child(odd),.cert-frame:nth-child(even){--lift:0px;--ry:0deg}}@media (hover:none){.cert-frame,.cert-frame:nth-child(odd),.cert-frame:nth-child(even){--lift:0px;--ry:0deg}}@media (prefers-reduced-motion:reduce){.cert-radar__ring,.cert-radar__sweep,.cert-wall.is-visible .cert-frame{animation:none!important}.cert-frame,.cert-frame__mat img,.cert-frame__glow,.cert-frame__sheen{transition:none!important}.cert-frame,.cert-frame:nth-child(odd),.cert-frame:nth-child(even){--lift:0px!important;--ry:0deg!important;--rx:0deg!important}}

/* ---------- Export markets ---------- */
.markets {
  display: grid; gap: var(--space-5);
  grid-template-columns: repeat(3, 1fr);
}
@media (max-width: 900px) { .markets { grid-template-columns: 1fr; } }
.market-card {
  padding: var(--space-5);
  background: var(--color-surface);
  border-radius: var(--radius-lg);
  border: 1px solid var(--color-glass-line);
}
.market-card__head { display: flex; align-items: baseline; justify-content: space-between; margin-bottom: var(--space-3); }
.market-card__name { font-family: var(--font-display); font-size: var(--fs-lg); font-weight: 700; color: var(--color-text); }
.market-card__pct { font-family: var(--font-display); font-size: var(--fs-xl); font-weight: 700; color: var(--color-accent-soft); }
.market-card__bar {
  width: 100%; height: 8px; border-radius: var(--radius-pill);
  background: var(--color-glass-line);
  overflow: hidden; margin-bottom: var(--space-3);
}
.market-card__bar span {
  display: block; height: 100%; border-radius: inherit;
  background: linear-gradient(90deg, var(--color-accent), var(--color-accent-soft));
}
.market-card__desc { font-size: var(--fs-sm); color: var(--color-text-on-dark-soft); margin: 0; }

/* ---------- Accessibility & safety net ---------- */
/* Focus ring must stay visible on dark/inverse panels. */
.profile__link:focus-visible,
.category-feature__card:focus-visible { outline-color: #ffffff; }

/* Horizontal-overflow guard: clip rather than scroll so any future
   negative-offset element can never introduce page-level x-scroll.
   `clip` (unlike `hidden`) does not create a new scroll container and
   does not break position:sticky. */
.kd-main,
.section,
.container { overflow-x: clip; }

