:root {
  color-scheme: light;
  --ink: #17211b;
  --ink-soft: #4f5d54;
  --paper: #fbfcf8;
  --white: #ffffff;
  --mist: #f1f5f0;
  --line: #dce5dd;
  --green: #26ba86;
  --green-bright: #34e4aa;
  --green-deep: #146847;
  --blue: #2c68ff;
  --purple: #5b01ff;
  --yellow: #ffd300;
  --dark: #13271f;
  --container: 1240px;
  --radius-sm: 14px;
  --radius-md: 24px;
  --radius-lg: 40px;
  --ease: 220ms ease;
}

* {
  box-sizing: border-box;
}

html {
  scroll-behavior: smooth;
}

body {
  margin: 0;
  overflow-x: hidden;
  color: var(--ink);
  background: var(--paper);
  font-family: "Microsoft YaHei", "PingFang SC", "Noto Sans SC", Arial, sans-serif;
  line-height: 1.65;
  text-rendering: optimizeLegibility;
}

body.menu-open {
  overflow: hidden;
}

img {
  display: block;
  max-width: 100%;
}

a {
  color: inherit;
  text-decoration: none;
}

button,
input,
textarea {
  font: inherit;
}

button,
a {
  -webkit-tap-highlight-color: transparent;
}

button {
  cursor: pointer;
}

:focus-visible {
  outline: 3px solid rgb(44 104 255 / 38%);
  outline-offset: 4px;
}

::selection {
  color: var(--ink);
  background: var(--yellow);
}

.container {
  width: min(var(--container), calc(100% - 64px));
  margin-inline: auto;
}

.skip-link {
  position: fixed;
  z-index: 100;
  top: 12px;
  left: 12px;
  padding: 9px 14px;
  color: var(--white);
  background: var(--dark);
  border-radius: 8px;
  transform: translateY(-160%);
}

.skip-link:focus {
  transform: translateY(0);
}

.site-header {
  position: fixed;
  z-index: 50;
  top: 0;
  right: 0;
  left: 0;
  background: rgb(255 255 255 / 92%);
  border-bottom: 1px solid transparent;
  backdrop-filter: blur(18px);
  transition: border-color var(--ease), background var(--ease);
}

.site-header.is-scrolled {
  background: rgb(255 255 255 / 97%);
  border-color: var(--line);
}

.header-inner {
  min-height: 84px;
  display: flex;
  align-items: center;
  gap: 34px;
}

.brand {
  width: 164px;
  flex: 0 0 auto;
}

.brand img {
  width: 100%;
  height: auto;
}

.site-nav {
  display: flex;
  align-items: stretch;
  justify-content: center;
  flex: 1;
  align-self: stretch;
  gap: clamp(18px, 2vw, 34px);
}

.nav-link {
  position: relative;
  min-height: 44px;
  display: inline-flex;
  align-items: center;
  color: #3e4b43;
  font-size: 0.92rem;
  white-space: nowrap;
  transition: color var(--ease);
}

.nav-link::after {
  content: "";
  position: absolute;
  right: 50%;
  bottom: 18px;
  left: 50%;
  height: 2px;
  background: var(--green);
  transition: right var(--ease), left var(--ease);
}

.nav-link:hover,
.nav-link.is-active {
  color: var(--green-deep);
}

.nav-link:hover::after,
.nav-link.is-active::after {
  right: 0;
  left: 0;
}

.header-actions,
.language-switch {
  display: flex;
  align-items: center;
}

.language-switch {
  min-width: 88px;
  height: 40px;
  padding: 3px;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: var(--mist);
}

.language-switch > span {
  width: 1px;
  height: 13px;
  background: var(--line);
}

.lang-button {
  min-width: 38px;
  height: 32px;
  padding: 0 8px;
  color: #66736a;
  background: transparent;
  border: 0;
  border-radius: 999px;
  font-size: 0.78rem;
  font-weight: 700;
  transition: color var(--ease), background var(--ease);
}

.lang-button.is-active {
  color: var(--white);
  background: var(--dark);
}

.menu-toggle {
  display: none;
  width: 44px;
  height: 44px;
  padding: 13px 10px;
  margin-left: 8px;
  background: transparent;
  border: 1px solid var(--line);
  border-radius: 50%;
}

.menu-toggle span {
  display: block;
  width: 22px;
  height: 2px;
  margin: 4px auto;
  background: var(--ink);
  transition: transform var(--ease);
}

.menu-toggle[aria-expanded="true"] span:first-child {
  transform: translateY(3px) rotate(45deg);
}

.menu-toggle[aria-expanded="true"] span:last-child {
  transform: translateY(-3px) rotate(-45deg);
}

.section-anchor {
  scroll-margin-top: 82px;
}

.hero {
  position: relative;
  min-height: 860px;
  display: grid;
  align-items: stretch;
  padding-top: 84px;
  background: #f4f1e9;
}

.hero-media,
.hero-wash {
  position: absolute;
  inset: 84px 0 0;
}

.hero-media {
  background-image: url("../assets/images/aiyu-factory-hero.png");
  background-position: center;
  background-size: cover;
}

.hero-wash {
  background: linear-gradient(90deg, rgb(248 247 242 / 97%) 0%, rgb(248 247 242 / 88%) 32%, rgb(248 247 242 / 20%) 50%, transparent 78%);
}

.hero-inner {
  position: relative;
  z-index: 2;
  min-height: 646px;
  display: flex;
  align-items: center;
  padding-top: 0px;
  padding-bottom: 142px;
}

.hero-copy {
  width: min(845px, 68.1%);
}

.eyebrow {
  margin: 0 0 18px;
  color: var(--green-deep);
  font-size: 1.0rem;
  font-weight: 800;
  letter-spacing: 0.16em;
  text-transform: uppercase;
}

h1,
h2,
h3,
p {
  margin-top: 0;
}

h1,
h2,
h3 {
  letter-spacing: 0.01em;
  line-height: 1.18;
}

h1 {
  margin-bottom: 28px;
  font-size: clamp(3rem, 4.0vw, 4.5rem);
  font-weight: 650;
}

h1 span,
h1 strong {
  display: block;
}

h1 strong {
  position: relative;
  width: fit-content;
  color: var(--green-deep);
  font-weight: 650;
}

h1 strong::after {
  content: "";
  position: absolute;
  right: -36px;
  bottom: 5px;
  width: 24px;
  height: 24px;
  background: var(--yellow);
  border-radius: 50%;
}

h2 {
  margin-bottom: 22px;
  font-size: clamp(2rem, 3vw, 3rem);
  font-weight: 650;
}

h3 {
  font-size: 1.28rem;
}

.hero-description {
  max-width: 570px;
  margin-bottom: 34px;
  color: #435048;
  font-size: 1.06rem;
  line-height: 1.85;
}

.hero-actions {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 14px;
}

.button {
  min-height: 50px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  padding: 0 25px;
  border: 1px solid transparent;
  border-radius: 999px;
  font-size: 0.93rem;
  font-weight: 700;
  transition: color var(--ease), background var(--ease), border-color var(--ease), transform var(--ease);
}

.button svg,
.text-link svg,
.submit-button svg {
  width: 19px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.button:hover {
  transform: translateY(-2px);
}

.button-primary {
  color: var(--white);
  background: var(--green-deep);
}

.button-primary:hover {
  background: #0d5338;
}

.button-secondary {
  color: var(--ink);
  background: rgb(255 255 255 / 48%);
  border-color: #9ca89f;
}

.button-secondary:hover {
  background: var(--white);
  border-color: var(--ink);
}

.hero-proof {
  position: absolute;
  z-index: 3;
  right: 0;
  bottom: 0;
  left: 0;
  background: rgb(255 255 255 / 92%);
  border-top: 1px solid rgb(255 255 255 / 65%);
  backdrop-filter: blur(16px);
}

.proof-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
}

.proof-item {
  min-height: 126px;
  display: flex;
  align-items: center;
  gap: 18px;
  padding: 22px 38px;
  border-right: 1px solid var(--line);
}

.proof-item:first-child {
  padding-left: 0;
}

.proof-item:last-child {
  border-right: 0;
}

.proof-index {
  color: var(--green);
  font-size: 4.5rem;
  font-weight: 800;
  color: #ddd;
  font-style: italic;
}

.proof-item strong,
.proof-item small {
  display: block;
}

.proof-item strong {
  margin-bottom: 3px;
  font-size: 1.5rem;
}

.proof-item small {
  color: var(--ink-soft);
  font-size: 1.2rem;
}

.section {
  padding: 100px 0;
}

.section-heading {
  max-width: 700px;
}

.about-layout {
  display: grid;
  grid-template-columns: 1.05fr 0.95fr;
  gap: 100px;
  align-items: end;
}

.about-copy {
  padding-bottom: 6px;
  color: var(--ink-soft);
}

.about-copy .lead {
  color: var(--ink);
  font-size: 1.14rem;
  line-height: 1.9;
}

.about-copy p {
  margin-bottom: 18px;
}

.text-link {
  min-height: 44px;
  display: inline-flex;
  align-items: center;
  gap: 9px;
  margin-top: 10px;
  color: var(--green-deep);
  font-weight: 700;
}

.text-link svg {
  transition: transform var(--ease);
}

.text-link:hover svg {
  transform: translateX(5px);
}

.story-board {
  position: relative;
  min-height: 520px;
  display: grid;
  grid-template-columns: 1.45fr 0.55fr;
  grid-template-rows: 1fr 1fr;
  gap: 16px;
  margin-top: 76px;
}

.story-image {
  min-height: 520px;
  grid-row: 1 / 3;
  overflow: hidden;
  border-radius: var(--radius-lg) 12px var(--radius-lg) 12px;
}

.story-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: 62% center;
}

.story-card {
  position: relative;
  min-height: 250px;
  padding: 34px;
  overflow: hidden;
  border-radius: 12px var(--radius-lg) 12px var(--radius-lg);
}

.story-card span {
  display: block;
  margin-bottom: 45px;
  font-size: 1.0rem;
  font-weight: 800;
}

.story-card strong {
  display: block;
  margin-bottom: 10px;
  font-size: 1.45rem;
}

.story-card p {
  max-width: 28ch;
  margin-bottom: 0;
  font-size: 0.86rem;
}

.story-card-green {
  color: #0f3c2c;
  background: var(--green-bright);
}

.story-card-blue {
  color: var(--white);
  background: var(--blue);
}

.story-mark {
  position: absolute;
  right: 30px;
  bottom: -72px;
  color: rgb(23 33 27 / 4%);
  font-size: clamp(7rem, 17vw, 15rem);
  font-weight: 900;
  letter-spacing: -0.08em;
  line-height: 1;
  pointer-events: none;
}

.factory-section {
  position: relative;
  overflow: hidden;
  color: var(--ink);
  background: #eef8f1;
  border-top: 1px solid #dcefe2;
  border-bottom: 1px solid #dcefe2;
}

.factory-section::before {
  content: "";
  position: absolute;
  top: -210px;
  right: -120px;
  width: 430px;
  height: 430px;
  border: 1px solid rgb(38 186 134 / 16%);
  border-radius: 50%;
  box-shadow: 0 0 0 42px rgb(38 186 134 / 4%), 0 0 0 84px rgb(38 186 134 / 3%);
  pointer-events: none;
}

.factory-section > .container {
  position: relative;
  z-index: 1;
}

.factory-heading,
.products-heading {
  display: grid;
  grid-template-columns: 1.3fr 0.7fr;
  gap: 90px;
  align-items: end;
}

.section-heading-light .eyebrow {
  color: var(--green-deep);
}

.factory-heading > p,
.products-heading > p {
  max-width: 46ch;
  margin-bottom: 26px;
  color: #60756a;
}

.process-list {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 0;
  padding: 0;
  margin: 76px 0 0;
  list-style: none;
  border-top: 1px solid #cfe5d6;
}

.process-list li {
  position: relative;
  min-height: 310px;
  padding: 32px 30px 18px;
  border-right: 1px solid #cfe5d6;
}

.process-list li:first-child {
  padding-left: 0;
}

.process-list li:last-child {
  border-right: 0;
}

.process-number {
  display: block;
  color: #159467;
  font-size: 1.0rem;
  font-weight: 800;
}

.process-icon {
  width: 54px;
  height: 54px;
  display: grid;
  place-items: center;
  margin: 56px 0 25px;
  color: #16865a;
  background: rgb(255 255 255 / 64%);
  border: 1px solid #acd8bc;
  border-radius: 50%;
}

.process-icon svg {
  width: 25px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.5;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.process-list h3 {
  margin-bottom: 12px;
}

.process-list p {
  margin-bottom: 0;
  color: #60756a;
  font-size: 0.88rem;
}

.products-section {
  background: #f8faf6;
}

.products-heading > p {
  color: var(--ink-soft);
}

.product-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 22px;
  margin-top: 68px;
}

.product-card {
  overflow: hidden;
  background: var(--white);
  border: 1px solid var(--line);
  border-radius: var(--radius-md);
  transition: transform var(--ease), border-color var(--ease);
}

.product-card:hover {
  transform: translateY(-5px);
  border-color: #b8c8bb;
}

.product-visual {
  position: relative;
  height: 270px;
  overflow: hidden;
  background: #e9eee7;
}

.product-visual::before {
  content: "";
  position: absolute;
  width: 170px;
  height: 220px;
  top: 33px;
  left: 50%;
  z-index: 2;
  background: #f0e5cf;
  border-radius: 16px 16px 24px 24px;
  transform: translateX(-50%) rotate(-3deg);
  box-shadow: inset 0 0 0 1px rgb(66 51 31 / 8%);
}

.product-visual::after {
  content: "";
  position: absolute;
  top: 44px;
  left: 50%;
  z-index: 3;
  width: 150px;
  height: 5px;
  background: rgb(56 43 28 / 12%);
  transform: translateX(-50%) rotate(-3deg);
}

.product-visual > span {
  position: absolute;
  top: 124px;
  left: 50%;
  z-index: 4;
  color: #1a2a21;
  font-size: 0.78rem;
  font-weight: 900;
  letter-spacing: 0.18em;
  transform: translateX(-50%) rotate(-3deg);
}

.granule-field {
  position: absolute;
  right: -25%;
  bottom: -66%;
  left: -25%;
  z-index: 5;
  height: 250px;
  background-color: #e5d8be;
  background-image: radial-gradient(ellipse at center, #f4ead5 0 2px, transparent 2.8px);
  background-size: 11px 8px;
  border-radius: 50% 50% 0 0;
  transform: rotate(-3deg);
}

.product-card-green .product-visual {
  background: #dff8ea;
}

.product-card-yellow .product-visual {
  background: #fff6c3;
}

.product-card-blue .product-visual {
  background: #e2eaff;
}

.product-body {
  padding: 30px;
}

.product-index {
  color: var(--ink-soft);
  font-size: 0.68rem;
  font-weight: 800;
  letter-spacing: 0.12em;
}

.product-body h3 {
  margin: 12px 0;
  font-size: 1.55rem;
}

.product-body p {
  min-height: 58px;
  margin-bottom: 22px;
  color: var(--ink-soft);
  font-size: 0.9rem;
}

.product-body a {
  min-height: 44px;
  display: inline-flex;
  align-items: center;
  color: var(--green-deep);
  font-size: 0.88rem;
  font-weight: 800;
  border-bottom: 1px solid currentColor;
}

.solutions-section {
  position: relative;
  overflow: hidden;
  color: var(--white);
  background: var(--purple);
}

.solutions-section::after {
  content: "";
  position: absolute;
  right: -200px;
  bottom: -360px;
  width: 600px;
  height: 600px;
  border: 1px solid rgb(255 255 255 / 20%);
  border-radius: 50%;
  box-shadow: 0 0 0 90px rgb(255 255 255 / 3%), 0 0 0 180px rgb(255 255 255 / 3%);
}

.solutions-layout {
  position: relative;
  z-index: 2;
  display: grid;
  grid-template-columns: 0.82fr 1.18fr;
  gap: 110px;
  align-items: start;
}

.solution-intro {
  position: sticky;
  top: 130px;
}

.solution-intro .eyebrow {
  color: var(--yellow);
}

.solution-intro p:not(.eyebrow) {
  max-width: 48ch;
  color: rgb(255 255 255 / 76%);
}

.button-light {
  margin-top: 18px;
  color: var(--purple);
  background: var(--white);
}

.button-light:hover {
  color: var(--ink);
  background: var(--yellow);
}

.solution-steps {
  border-top: 1px solid rgb(255 255 255 / 25%);
}

.solution-steps article {
  display: grid;
  grid-template-columns: 62px 1fr;
  gap: 28px;
  padding: 34px 0;
  border-bottom: 1px solid rgb(255 255 255 / 25%);
}

.solution-steps article > span {
  color: var(--yellow);
  font-size: 0.75rem;
  font-weight: 800;
}

.solution-steps h3 {
  margin-bottom: 9px;
  font-size: 1.42rem;
}

.solution-steps p {
  margin-bottom: 0;
  color: rgb(255 255 255 / 73%);
  font-size: 0.9rem;
}

.contact-section {
  background: var(--paper);
}

.contact-panel {
  display: grid;
  grid-template-columns: 0.9fr 1.1fr;
  gap: 100px;
  padding: 76px;
  background: var(--white);
  border: 1px solid var(--line);
  border-radius: var(--radius-lg);
}

.contact-panel > div > p:not(.eyebrow) {
  max-width: 52ch;
  color: var(--ink-soft);
}

.contact-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  padding: 0;
  margin: 32px 0 0;
  list-style: none;
}

.contact-tags li {
  padding: 7px 13px;
  color: var(--green-deep);
  background: #e6f8ef;
  border-radius: 999px;
  font-size: 0.78rem;
  font-weight: 700;
}

.inquiry-form {
  display: grid;
  gap: 18px;
}

.form-row {
  display: grid;
  gap: 8px;
}

.form-row label {
  font-size: 0.82rem;
  font-weight: 700;
}

.form-row input,
.form-row textarea {
  width: 100%;
  min-height: 48px;
  padding: 12px 14px;
  color: var(--ink);
  background: #f9fbf8;
  border: 1px solid var(--line);
  border-radius: 10px;
  outline: none;
  resize: vertical;
  transition: border-color var(--ease), box-shadow var(--ease), background var(--ease);
}

.form-row textarea {
  min-height: 100px;
}

.form-row input:focus,
.form-row textarea:focus {
  background: var(--white);
  border-color: var(--green);
  box-shadow: 0 0 0 3px rgb(38 186 134 / 13%);
}

.submit-button {
  justify-self: start;
  border: 0;
}

.form-status {
  min-height: 1.5em;
  margin: -5px 0 0;
  color: var(--green-deep);
  font-size: 0.84rem;
}

.site-footer {
  color: #d6e1da;
  background: #0d1c16;
}

.footer-main {
  display: grid;
  grid-template-columns: 1.5fr 0.7fr 0.7fr 1fr;
  gap: 70px;
  padding-top: 72px;
  padding-bottom: 62px;
}

.footer-brand img {
  width: 174px;
  margin-bottom: 23px;
  filter: brightness(0) invert(1);
}

.footer-brand p {
  max-width: 29ch;
  color: #91a198;
  font-size: 0.86rem;
}

.footer-nav {
  display: flex;
  align-items: flex-start;
  flex-direction: column;
  gap: 10px;
}

.footer-nav strong {
  margin-bottom: 8px;
  color: var(--white);
  font-size: 0.87rem;
}

.footer-nav a {
  min-height: 32px;
  display: inline-flex;
  align-items: center;
  color: #91a198;
  font-size: 0.82rem;
  transition: color var(--ease);
}

.footer-nav a:hover {
  color: var(--green-bright);
}

.footer-note {
  display: flex;
  align-items: flex-end;
  flex-direction: column;
  gap: 7px;
  text-align: right;
}

.footer-note span {
  color: var(--green-bright);
  font-size: 0.74rem;
}

.footer-note strong {
  max-width: 230px;
  font-size: clamp(1.5rem, 3vw, 2.8rem);
  letter-spacing: -0.05em;
  line-height: 1.05;
}

.footer-bottom {
  min-height: 74px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  color: #788b7f;
  border-top: 1px solid rgb(255 255 255 / 10%);
  font-size: 0.76rem;
}

.footer-bottom a {
  min-height: 44px;
  display: inline-flex;
  align-items: center;
}

[data-reveal] {
  opacity: 0;
  transform: translateY(22px);
  transition: opacity 600ms ease, transform 600ms cubic-bezier(0.22, 1, 0.36, 1);
}

[data-reveal].is-visible {
  opacity: 1;
  transform: translateY(0);
}

@media (max-width: 1120px) {
  .header-inner {
    gap: 20px;
  }

  .brand {
    width: 145px;
  }

  .site-nav {
    gap: 18px;
  }

  .nav-link {
    font-size: 0.84rem;
  }

  .about-layout,
  .factory-heading,
  .products-heading,
  .solutions-layout,
  .contact-panel {
    gap: 60px;
  }

  .contact-panel {
    padding: 58px;
  }
}

@media (max-width: 940px) {
  .container {
    width: min(var(--container), calc(100% - 40px));
  }

  .header-inner {
    min-height: 72px;
  }

  .menu-toggle {
    display: block;
  }

  .site-nav {
    position: fixed;
    top: 72px;
    right: 0;
    bottom: 0;
    left: 0;
    z-index: 49;
    display: flex;
    align-items: stretch;
    justify-content: flex-start;
    flex-direction: column;
    gap: 0;
    padding: 28px 32px;
    background: var(--white);
    opacity: 0;
    visibility: hidden;
    transform: translateY(-12px);
    transition: opacity var(--ease), visibility var(--ease), transform var(--ease);
  }

  .site-nav.is-open {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
  }

  .nav-link {
    min-height: 64px;
    font-size: 1.2rem;
    border-bottom: 1px solid var(--line);
  }

  .nav-link::after {
    display: none;
  }

  .header-actions {
    margin-left: auto;
  }

  .hero {
    min-height: 780px;
    padding-top: 72px;
  }

  .hero-media,
  .hero-wash {
    inset: 72px 0 0;
  }

  .hero-wash {
    background: linear-gradient(90deg, rgb(248 247 242 / 98%) 0%, rgb(248 247 242 / 82%) 47%, rgb(248 247 242 / 25%) 74%, transparent 100%);
  }

  .hero-inner {
    min-height: 646px;
  }

  .hero-copy {
    width: 68%;
  }

  .about-layout,
  .factory-heading,
  .products-heading,
  .solutions-layout,
  .contact-panel {
    grid-template-columns: 1fr;
  }

  .about-layout,
  .factory-heading,
  .products-heading {
    gap: 24px;
  }

  .story-board {
    grid-template-columns: 1fr 1fr;
    grid-template-rows: 360px auto;
  }

  .story-image {
    min-height: 360px;
    grid-column: 1 / 3;
    grid-row: auto;
  }

  .process-list {
    grid-template-columns: repeat(2, 1fr);
  }

  .process-list li:nth-child(2) {
    border-right: 0;
  }

  .process-list li:nth-child(-n + 2) {
    border-bottom: 1px solid #cfe5d6;
  }

  .process-list li:nth-child(3) {
    padding-left: 0;
  }

  .product-grid {
    gap: 14px;
  }

  .product-body {
    padding: 24px;
  }

  .solution-intro {
    position: static;
  }

  .contact-panel {
    gap: 48px;
  }

  .footer-main {
    grid-template-columns: 1.5fr 1fr 1fr;
  }

  .footer-note {
    display: none;
  }
}

@media (max-width: 700px) {
  .container {
    width: min(var(--container), calc(100% - 28px));
  }

  .brand {
    width: 132px;
  }

  .language-switch {
    min-width: 80px;
  }

  .lang-button {
    min-width: 34px;
  }

  .hero {
    min-height: 810px;
  }

  .hero-media {
    background-position: 64% center;
  }

  .hero-wash {
    background: linear-gradient(180deg, rgb(248 247 242 / 98%) 0%, rgb(248 247 242 / 94%) 49%, rgb(248 247 242 / 25%) 72%, transparent 100%);
  }

  .hero-inner {
    min-height: 618px;
    align-items: flex-start;
    padding-top: 92px;
    padding-bottom: 154px;
  }

  .hero-copy {
    width: 100%;
  }

  .eyebrow {
    margin-bottom: 14px;
    font-size: 0.66rem;
    letter-spacing: 0.1em;
  }

  h1 {
    margin-bottom: 22px;
    font-size: clamp(2.7rem, 13vw, 4rem);
  }

  h1 strong::after {
    right: -25px;
    width: 17px;
    height: 17px;
  }

  h2 {
    font-size: clamp(2rem, 9vw, 3rem);
  }

  .hero-description {
    max-width: 94%;
    margin-bottom: 27px;
    font-size: 0.94rem;
    line-height: 1.75;
  }

  .hero-actions {
    align-items: stretch;
    flex-direction: column;
    max-width: 235px;
  }

  .hero-proof {
    background: rgb(255 255 255 / 94%);
  }

  .proof-grid {
    grid-template-columns: repeat(3, 1fr);
  }

  .proof-item {
    min-height: 120px;
    display: block;
    padding: 18px 10px;
  }

  .proof-item:first-child {
    padding-left: 0;
  }

  .proof-index {
    display: block;
    margin-bottom: 8px;
  }

  .proof-item strong {
    font-size: 0.82rem;
  }

  .proof-item small {
    font-size: 0.66rem;
    line-height: 1.4;
  }

  .section {
    padding: 88px 0;
  }

  .about-copy .lead {
    font-size: 1.03rem;
  }

  .story-board {
    grid-template-columns: 1fr;
    grid-template-rows: 300px auto auto;
    margin-top: 48px;
  }

  .story-image {
    min-height: 300px;
    grid-column: auto;
  }

  .story-card {
    min-height: 210px;
    padding: 27px;
  }

  .story-card span {
    margin-bottom: 30px;
  }

  .process-list {
    grid-template-columns: 1fr;
    margin-top: 48px;
  }

  .process-list li,
  .process-list li:first-child,
  .process-list li:nth-child(3) {
    min-height: 230px;
    padding: 26px 0;
    border-right: 0;
    border-bottom: 1px solid #cfe5d6;
  }

  .process-list li:last-child {
    border-bottom: 0;
  }

  .process-icon {
    margin: 30px 0 20px;
  }

  .product-grid {
    grid-template-columns: 1fr;
    margin-top: 42px;
  }

  .product-body p {
    min-height: 0;
  }

  .solutions-layout {
    gap: 52px;
  }

  .solution-steps article {
    grid-template-columns: 45px 1fr;
    gap: 14px;
  }

  .contact-panel {
    gap: 38px;
    padding: 34px 22px;
    border-radius: var(--radius-md);
  }

  .footer-main {
    grid-template-columns: 1fr 1fr;
    gap: 46px 30px;
  }

  .footer-brand {
    grid-column: 1 / 3;
  }
}

@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }

  *,
  *::before,
  *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
  }

  [data-reveal] {
    opacity: 1;
    transform: none;
  }
}

/* Multi-page interior layouts */
.inner-page {
  background: var(--paper);
}

.inner-page main {
  padding-top: 84px;
}

.page-hero {
  position: relative;
  min-height: 520px;
  display: grid;
  align-items: center;
  overflow: hidden;
  background: #eef8f1;
  border-bottom: 1px solid #dcefe2;
}

.page-hero::before,
.page-hero::after {
  content: "";
  position: absolute;
  pointer-events: none;
}

.page-hero::before {
  top: -260px;
  right: -80px;
  width: 620px;
  height: 620px;
  border: 1px solid rgb(38 186 134 / 15%);
  border-radius: 50%;
  box-shadow: 0 0 0 70px rgb(38 186 134 / 4%), 0 0 0 140px rgb(38 186 134 / 3%);
}

.page-hero::after {
  right: 10%;
  bottom: 14%;
  width: 54px;
  height: 54px;
  background: var(--yellow);
  border-radius: 50%;
}

.page-hero-inner {
  position: relative;
  z-index: 1;
  padding-block: 92px;
}

.page-hero-inner h1 {
  max-width: 850px;
  margin-bottom: 24px;
  font-size: clamp(3rem, 4.5vw, 4.5rem);
}

.page-hero-inner > p:last-child {
  /*max-width: 660px;*/
  margin-bottom: 0;
  color: #50655a;
  font-size: 1.2rem;
  max-width: 780px;
}

.page-hero-products {
  background: #f1f5ff;
  border-bottom-color: #dce4f7;
}

.page-hero-products::before {
  border-color: rgb(44 104 255 / 14%);
  box-shadow: 0 0 0 70px rgb(44 104 255 / 3%), 0 0 0 140px rgb(44 104 255 / 2%);
}

.page-hero-solutions {
  background: #f3f0ff;
  border-bottom-color: #e2dcfa;
}

.page-hero-solutions::before {
  border-color: rgb(91 1 255 / 12%);
  box-shadow: 0 0 0 70px rgb(91 1 255 / 3%), 0 0 0 140px rgb(91 1 255 / 2%);
}

.page-hero-contact {
  background: #fff9dd;
  border-bottom-color: #eee5ba;
}

.content-section {
  background: var(--white);
}

.about-sections {
  display: grid;
}

.editorial-section {
  display: grid;
  grid-template-columns: 80px minmax(0, 1fr);
  gap: 46px;
  padding: 72px 0;
  border-bottom: 1px solid var(--line);
}

.editorial-section:first-child {
  padding-top: 0;
}

.editorial-section:last-child {
  padding-bottom: 0;
  border-bottom: 0;
}

.section-number,
.capability-number {
  color: var(--green);
  font-size: 4.5rem;
  font-weight: 800;
  letter-spacing: 0.1em;
  color: #d8e7e2;
  font-style: italic;
}

.editorial-section h2 {
  margin-bottom: 18px;
}

.content-placeholder {
  max-width: 720px;
  margin-bottom: 0;
  color: var(--ink-soft);
  font-size: 1.2rem;
}

.document-placeholder {
  min-height: 170px;
  display: grid;
  place-items: center;
  margin-top: 32px;
  color: #6d8175;
  background: #f5faf6;
  border: 1px dashed #bad4c2;
  border-radius: var(--radius-sm);
  font-size: 0.88rem;
}

.value-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 12px;
  margin-top: 32px;
}

.value-grid div {
  min-height: 148px;
  display: flex;
  justify-content: space-between;
  flex-direction: column;
  padding: 21px;
  background: #f3f8f3;
  border-radius: var(--radius-sm);
}

.value-grid strong { font-size: 1.5rem; }
.value-grid span { color: var(--ink-soft); font-size: 1.2rem; line-height: 1.55; }

.value-grid > div {
  display: grid;
  align-content: start;
  gap: 8px;
}

.value-icon {
  width: 34px;
  height: 34px;
  display: grid;
  place-items: center;
  color: var(--green-deep);
  background: #e7f8ee;
  border: 1px solid #c7ead5;
  border-radius: 11px 11px 11px 3px;
}

.value-icon svg,
.deliverable-icon svg,
.flow-icon svg {
  width: 19px;
  height: 19px;
  fill: none;
  stroke: currentColor;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 1.75;
}

.value-icon-quality {
  color: #88700e;
  background: #fff7d7;
  border-color: #f1e1a0;
}

.value-icon-link {
  color: #2458cd;
  background: #e9efff;
  border-color: #cbd9ff;
}

.about-beliefs {
  background: #fff9dd;
  border-top: 1px solid #eee5ba;
}

.about-beliefs-layout {
  display: grid;
  grid-template-columns: 0.75fr 1.25fr;
  gap: 110px;
}

.belief-list { border-top: 1px solid #e4d9a8; }
.belief-list article { display: grid; grid-template-columns: 50px 1fr; gap: 20px; padding: 25px 0; border-bottom: 1px solid #e4d9a8; }
.belief-list article > span { color: #a88800; font-size: 0.74rem; font-weight: 800; }
.belief-list h3 { margin-bottom: 8px; font-size: 1.5rem; }
.belief-list p { margin: 0; color: #6e6547; font-size: 1.2rem; }

.factory-profile {
  background: var(--white);
}

.factory-profile-grid {
  display: grid;
  grid-template-columns: minmax(0, 0.92fr) minmax(0, 1.08fr);
  gap: 74px;
  align-items: start;
}

.factory-photo {
  position: sticky;
  top: 118px;
  overflow: hidden;
  border-radius: var(--radius-lg) 12px var(--radius-lg) 12px;
}

.factory-photo img {
  width: 100%;
  min-height: 590px;
  object-fit: cover;
  object-position: 61% center;
}

.factory-copy h2 {
  font-size: clamp(2.25rem, 3.7vw, 3.75rem);
}

.factory-copy p:not(.eyebrow) {
  margin-bottom: 18px;
  color: var(--ink-soft);
}

.factory-copy p:last-child {
  margin-bottom: 0;
}


.factory-strengths {
  background: #eef8f1;
  border-top: 1px solid #dcefe2;
}

.factory-quality {
  background: var(--white);
}

.factory-quality-layout {
  display: grid;
  grid-template-columns: 0.8fr 1.2fr;
  gap: 110px;
}

.quality-points { border-top: 1px solid var(--line); }
.quality-points > div { display: grid; grid-template-columns: 46px 1fr; gap: 15px; padding: 22px 0; border-bottom: 1px solid var(--line); }
.quality-points span { color: var(--green); font-size: 0.74rem; font-weight: 800; }
.quality-points strong { font-size: 1.5rem; }
.quality-points p { grid-column: 2; margin: -2px 0 0; color: var(--ink-soft); font-size: 1.2rem; }

/*.page-section-heading {
  max-width: 790px;
}*/

.strength-grid,
.capability-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 18px;
  margin-top: 62px;
}

.strength-grid article,
.capability-grid article {
  min-height: 320px;
  padding: 34px;
  background: rgb(255 255 255 / 82%);
  border: 1px solid #cfe5d6;
  border-radius: var(--radius-md);
}

.strength-grid article > span {
  display: block;
  margin-bottom: 96px;
  color: var(--green-deep);
  font-size: 0.76rem;
  font-weight: 800;
}

.strength-grid h3,
.capability-grid h3 {
  margin-bottom: 13px;
  font-size: 1.45rem;
}

.strength-grid p,
.capability-grid p {
  margin-bottom: 0;
  color: var(--ink-soft);
  /*font-size: 0.92rem;*/
}

.product-showcase {
  background: #f9faf7;
}

.product-showcase-image {
  overflow: hidden;
  background: var(--white);
  border: 1px solid var(--line);
  border-radius: var(--radius-lg) 12px var(--radius-lg) 12px;
}

.product-showcase-image img {
  width: 100%;
  height: min(68vw, 720px);
  min-height: 440px;
  object-fit: cover;
}

.catalog-heading {
  display: grid;
  grid-template-columns: 1.2fr 0.8fr;
  gap: 80px;
  align-items: end;
  margin-top: 0px;
}

.catalog-heading > p {
  color: var(--ink-soft);
}

.catalog-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1px;
  margin-top: 54px;
  overflow: hidden;
  background: var(--line);
  border: 1px solid var(--line);
  border-radius: var(--radius-md);
}

.catalog-grid article {
  min-height: 248px;
  padding: 30px;
  background: var(--white);
  transition: background var(--ease);
}

.catalog-grid article:hover {
  background: #f0faf4;
}

.catalog-grid article > span {
  display: block;
  margin-bottom: 63px;
  color: var(--green);
  font-size: 1.0rem;
  font-weight: 800;
}

.catalog-grid h3 {
  margin-bottom: 12px;
  font-size: 1.32rem;
}

.catalog-grid p {
  margin-bottom: 0;
  color: var(--ink-soft);
  font-size: 0.86rem;
}

.catalog-grid article:last-child {
  background: var(--green-bright);
  background: rgba(52,228,170,0.5);
  /*background: #a4ffe1;*/
}

.catalog-grid article:last-child > span,
.catalog-grid article:last-child p {
  color: #164936;
}

.solution-capabilities {
  background: var(--white);
}

.capability-grid article {
  min-height: 400px;
  background: #f8faf7;
  border-color: var(--line);
}

.capability-icon {
  width: 86px;
  height: 86px;
  display: grid;
  place-items: center;
  margin: 55px 0 34px;
  color: var(--ink);
  border-radius: 50%;
  font-size: 0.86rem;
  font-weight: 900;
  letter-spacing: -0.02em;
}

.capability-icon-green {
  background: var(--green-bright);
}

.capability-icon-blue {
  color: var(--white);
  background: var(--blue);
}

.capability-icon-yellow {
  background: var(--yellow);
}

.solution-flow {
  color: var(--white);
  background: var(--purple);
}

.solution-deliverables {
  background: #f8f7ff;
  border-top: 1px solid #e2dcfa;
}

.deliverable-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 16px;
  margin-top: 55px;
}

.deliverable-grid article {
  min-height: 245px;
  padding: 28px;
  background: var(--white);
  border: 1px solid #e2dcfa;
  border-radius: var(--radius-md);
}

.deliverable-grid article > span { display: block; margin-bottom: 60px; color: var(--purple); font-size: 0.74rem; font-weight: 800; }
.deliverable-grid h3 { margin-bottom: 10px; font-size: 1.28rem; }
.deliverable-grid p { margin: 0; color: var(--ink-soft); font-size: 0.88rem; }

.flow-layout {
  display: grid;
  grid-template-columns: 0.85fr 1.15fr;
  gap: 105px;
  align-items: start;
}

.flow-copy .eyebrow {
  color: var(--yellow);
}

.flow-copy p:not(.eyebrow) {
  max-width: 52ch;
  color: rgb(255 255 255 / 78%);
}

.flow-list {
  padding: 0;
  margin: 0;
  list-style: none;
  border-top: 1px solid rgb(255 255 255 / 26%);
}

.flow-list li {
  min-height: 98px;
  display: grid;
  grid-template-columns: 54px 1fr;
  align-items: center;
  gap: 22px;
  border-bottom: 1px solid rgb(255 255 255 / 26%);
}

.flow-list span {
  color: var(--yellow);
  font-size: 1.0rem;
  font-weight: 800;
}

.flow-list h3 {
  margin: 0;
  font-size: 1.35rem;
}

.contact-details-section {
  background: var(--white);
}

.contact-next {
  background: #eef8f1;
  border-top: 1px solid #dcefe2;
}

.contact-next-layout {
  display: grid;
  grid-template-columns: 0.85fr 1.15fr;
  gap: 100px;
}

.contact-next-list { border-top: 1px solid #cfe5d6; }
.contact-next-list > div { display: grid; grid-template-columns: 50px 1fr; align-items: center; min-height: 76px; border-bottom: 1px solid #cfe5d6; }
.contact-next-list span { color: var(--green-deep); font-size: 0.74rem; font-weight: 800; }
.contact-next-list p { margin: 0; font-size: 1.2rem; font-weight: 700; }

.contact-details-layout {
  display: grid;
  grid-template-columns: 0.8fr 1.2fr;
  gap: 100px;
  align-items: start;
}

.contact-intro {
  position: sticky;
  top: 118px;
}

.contact-intro > p:last-child {
  max-width: 48ch;
  color: var(--ink-soft);
}

.contact-detail-list {
  border-top: 1px solid var(--line);
}

.contact-detail {
  min-height: 144px;
  display: grid;
  grid-template-columns: 64px 1fr;
  align-items: center;
  gap: 28px;
  padding: 26px 0;
  border-bottom: 1px solid var(--line);
}

.contact-detail-icon {
  width: 52px;
  height: 52px;
  display: grid;
  place-items: center;
  color: var(--green-deep);
  background: #e6f8ef;
  border-radius: 50%;
  font-size: 1.0rem;
  font-weight: 800;
}

.contact-detail small,
.contact-detail strong {
  display: block;
}

.contact-detail small {
  margin-bottom: 7px;
  color: var(--ink-soft);
  font-size: 0.75rem;
}

.contact-detail strong {
  font-size: clamp(1.05rem, 2vw, 1.45rem);
}

/* Homepage content expansion */
.home-products {
  background: #f9faf7;
}

.home-section-heading {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 48px;
  margin-bottom: 52px;
}

.home-section-heading h2 {
  /*max-width: 720px;*//*2026.08.13*/
  margin-bottom: 0;
}

.home-section-heading > p {
  max-width: 410px;
  margin-top: 50px;
  margin-bottom: 5px;
  color: var(--ink-soft);
}

.home-section-heading-compact {
  align-items: start;
}

.home-section-heading-compact h2 {
  max-width: 680px;
}

.home-section-heading .text-link {
  flex: 0 0 auto;
  margin-bottom: 5px;
}

.home-product-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 16px;
}

.home-product-card {
  position: relative;
  min-height: 270px;
  display: flex;
  align-items: flex-start;
  flex-direction: column;
  padding: 30px;
  overflow: hidden;
  border-radius: var(--radius-md);
  transition: transform var(--ease), box-shadow var(--ease);
}

.home-product-card::after {
  content: "";
  position: absolute;
  right: -18px;
  bottom: -44px;
  width: 150px;
  height: 150px;
  border: 1px solid rgb(23 33 27 / 16%);
  border-radius: 50%;
}

.home-product-card:hover {
  box-shadow: 0 18px 36px rgb(23 33 27 / 10%);
  transform: translateY(-4px);
}

.home-product-card > span {
  color: var(--green-deep);
  font-size: 2rem;
  font-weight: 800;
}

.home-product-card h3 {
  margin: 60px 0 11px;
  font-size: 1.5rem;
}

.home-product-feature {
  position: relative;
  z-index: 2;
  display: block;
  margin: -3px 0 8px;
  color: rgb(23 33 27 / 52%);
  font-size: 0.92rem;
  font-weight: 700;
  line-height: 1.3;
  letter-spacing: 0.08em;
}

.home-product-feature + p {
  line-height: 1.38;
}

.home-product-feature + p + b {
  margin-top: 8px;
}

.home-product-card p {
  max-width: 22ch;
  margin: 0;
  color: #333;
  font-size: 1.0rem;
}

.home-product-card b {
  margin-top: auto;
  color: rgb(23 33 27 / 52%);
  font-size: 0.8rem;
  letter-spacing: 0.08em;
}

.home-product-green { background: var(--green-bright); }
.home-product-yellow { background: var(--yellow); }
.home-product-blue { color: var(--white); background: var(--blue); }
.home-product-blue > span,
.home-product-blue p,
.home-product-blue b { color: rgb(255 255 255 / 76%); }
.home-product-sand { background: #eadfca; }
.home-product-cream { background: #f2eee3; }
.home-product-mix { color: var(--white); background: #778aa7; }
.home-product-mix > span,
.home-product-mix p,
.home-product-mix b { color: rgb(255 255 255 / 80%); }

.home-product-mix .home-product-feature { color: rgb(255 255 255 / 80%); }

.home-advantages {
  background: var(--white);
}

.home-advantage-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 0;
  border-top: 1px solid var(--line);
}

.home-advantage-grid article {
  min-height: 220px;
  display: grid;
  grid-template-columns: 46px 1fr;
  gap: 18px;
  padding: 28px 30px 20px;
  border-right: 1px solid var(--line);
}

.home-advantage-grid article:first-child { padding-left: 0; }
.home-advantage-grid article:last-child { border-right: 0; }
.home-advantage-grid article > span { color: var(--green); font-size: 0.75rem; font-weight: 800; }
.home-advantage-grid strong { display: block; margin-bottom: 11px; font-size: 1.16rem; }
.home-advantage-grid p { margin: 0; color: var(--ink-soft); font-size: 1.0rem; }

/* Page banner image overlays */
.page-hero::before {
  z-index: 0;
}

.page-hero::after {
  z-index: 1;
}

.page-hero-inner {
  z-index: 2;
  min-height: 520px;
  width: min(var(--container), calc(100% - 64px));
  margin-inline: auto;
}

.page-hero-inner::after {
  content: "";
  position: absolute;
  z-index: -1;
  top: 0;
  right: -12%;
  bottom: 0;
  width: 100%;
  background-position: right center;
  background-repeat: no-repeat;
  background-size: cover;
  border-radius: 0 0 0 var(--radius-lg);
  opacity: 1;
  pointer-events: none;
  -webkit-mask-image: linear-gradient(90deg, transparent 0%, #000 80%, #000 100%);
  mask-image: linear-gradient(90deg, transparent 0%, #000 80%, #000 100%);
}

.page-about .page-hero-inner::after { background-image: url("../assets/images/banner-about.png"); }
.page-factory .page-hero-inner::after { background-image: url("../assets/images/banner-factory.png"); }
.page-products .page-hero-inner::after { background-image: url("../assets/images/banner-products.png"); }
.page-solutions .page-hero-inner::after { background-image: url("../assets/images/banner-solutions.png"); }
.page-contact .page-hero-inner::after { background-image: url("../assets/images/banner-contact.png"); }

.page-about .page-hero { background: #f2f5ff; border-bottom-color: #dfe5f6; }
.page-factory .page-hero { background: #eef8f1; border-bottom-color: #dcefe2; }

/* Vertical product catalogue */
.catalog-grid.catalog-list {
  display: grid;
  gap: 18px;
  margin-top: 54px;
  overflow: visible;
  background: transparent;
  border: 0;
  border-radius: 0;
}

.catalog-list .catalog-item {
  min-height: 320px;
  display: grid;
  grid-template-columns: minmax(250px, 0.46fr) minmax(0, 0.54fr);
  overflow: hidden;
  background: var(--white);
  border: 1px solid var(--line);
  border-radius: var(--radius-md);
}

.catalog-item-media {
  min-height: 320px;
  overflow: hidden;
  background: #f0f4ef;
}

.catalog-item-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 500ms ease;
}

.catalog-item:hover .catalog-item-media img {
  transform: scale(1.035);
}

.catalog-item-copy {
  display: flex;
  justify-content: center;
  flex-direction: column;
  padding: 38px 50px;
}

.catalog-item-copy > span {
  display: block;
  margin-bottom: 18px;
  color: var(--green);
  font-size: 1.0rem;
  font-weight: 800;
  letter-spacing: 0.12em;
}

.catalog-item-copy h3 {
  margin-bottom: 13px;
  font-size: clamp(1.65rem, 3vw, 2.4rem);
}

.catalog-item-copy > p {
  max-width: 48ch;
  margin-bottom: 26px;
  color: var(--ink-soft);
}

.product-specs {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px 22px;
  padding-top: 22px;
  border-top: 1px solid var(--line);
}

.product-specs div { min-width: 0; }
.product-specs dt { margin-bottom: 3px; color: #7a8b81; font-size: 1.0rem; }
.product-specs dd { margin: 0; color: var(--ink); font-size: 0.88rem; font-weight: 700; }

@media (max-width: 940px) {
  .home-section-heading { align-items: start; flex-direction: column; gap: 15px; }
  .home-product-grid { grid-template-columns: repeat(2, 1fr); }
  .home-advantage-grid { grid-template-columns: 1fr; }
  .home-advantage-grid article,
  .home-advantage-grid article:first-child { padding-left: 0; border-right: 0; border-bottom: 1px solid var(--line); }
  .home-advantage-grid article:last-child { border-bottom: 0; }
  .page-hero-inner::after { right: -18%; width: 68%; }
  .catalog-list .catalog-item { grid-template-columns: 0.44fr 0.56fr; }
  .catalog-item-copy { padding: 30px; }
}

@media (max-width: 700px) {
  .home-product-grid { grid-template-columns: 1fr; }
  .home-product-card { min-height: 235px; }
  .home-product-card h3 { margin-top: 42px; }
  .home-advantage-grid article { min-height: 160px; }
  .page-hero-inner::after { top: 25%; right: -24%; width: 86%; opacity: 0.72; }
  .catalog-list .catalog-item { grid-template-columns: 1fr; }
  .catalog-item-media { min-height: 280px; }
  .catalog-item-copy { padding: 28px 24px 32px; }
  .value-grid { grid-template-columns: 1fr; }
}

@media (max-width: 940px) {
  .inner-page main {
    padding-top: 72px;
  }

  .page-hero {
    min-height: 460px;
  }

  .factory-profile-grid,
  .catalog-heading,
  .flow-layout,
  .contact-details-layout,
  .about-beliefs-layout,
  .factory-quality-layout {
    grid-template-columns: 1fr;
    gap: 48px;
  }

  .contact-next-layout { grid-template-columns: 1fr; gap: 46px; }

  .factory-photo,
  .contact-intro {
    position: static;
  }

  .factory-photo img {
    min-height: 430px;
  }

  .strength-grid,
  .capability-grid,
  .catalog-grid {
    grid-template-columns: repeat(2, 1fr);
  }

  .catalog-heading {
    margin-top: 70px;
  }

  .value-grid { grid-template-columns: repeat(3, 1fr); }
  .deliverable-grid { grid-template-columns: repeat(3, 1fr); }
}

@media (max-width: 700px) {
  .page-hero {
    min-height: 420px;
  }

  .page-hero-inner {
    padding-block: 72px;
  }

  .page-hero-inner h1 {
    font-size: clamp(2.55rem, 12vw, 3.8rem);
  }

  .page-hero-inner > p:last-child {
    font-size: 0.92rem;
  }

  .editorial-section {
    grid-template-columns: 1fr;
    gap: 18px;
    padding: 52px 0;
  }

  .factory-photo img {
    min-height: 310px;
  }

  .strength-grid,
  .capability-grid,
  .catalog-grid {
    grid-template-columns: 1fr;
  }

  .strength-grid article,
  .capability-grid article {
    min-height: 280px;
    padding: 27px;
  }

  .strength-grid article > span {
    margin-bottom: 68px;
  }

  .product-showcase-image img {
    height: 76vw;
    min-height: 300px;
  }

  .catalog-heading {
    gap: 14px;
    margin-top: 54px;
  }

  .catalog-grid article {
    min-height: 220px;
  }

  .contact-details-layout {
    gap: 38px;
  }

  .contact-detail {
    min-height: 120px;
    grid-template-columns: 52px 1fr;
    gap: 18px;
  }

  .contact-detail-icon {
    width: 46px;
    height: 46px;
  }

  .deliverable-grid { grid-template-columns: 1fr; }
}

/* Visual tightening: a clearer navigation rhythm, compact footer and calm information cards. */
.site-header {
  border-bottom-color: rgb(220 229 221 / 82%);
  box-shadow: 0 4px 20px rgb(23 33 27 / 3%);
}

.site-header.is-scrolled {
  box-shadow: 0 8px 26px rgb(23 33 27 / 7%);
}

.header-inner {
  min-height: 78px;
}

.site-nav {
  gap: clamp(16px, 1.8vw, 31px);
}

.nav-link {
  min-height: 52px;
  color: #000;
  font-size: 1.1rem;
  font-weight: 700;
  letter-spacing: 0.012em;
}

.nav-link::before {
  content: "";
  position: absolute;
  top: 14px;
  left: 50%;
  width: 5px;
  height: 5px;
  opacity: 0;
  background: var(--green);
  border-radius: 50%;
  transform: translateX(-50%) scale(0);
  transition: opacity var(--ease), transform var(--ease);
}

.nav-link::after {
  bottom: 0px;
  height: 4px;
  border-radius: 999px;
}

.nav-link:hover::before,
.nav-link.is-active::before {
  opacity: 1;
  transform: translateX(-50%) scale(1);
}

.site-footer {
  background: #10231a;
}

.footer-main {
  grid-template-columns: minmax(230px, 0.8fr) minmax(300px, 1.35fr) minmax(180px, 0.55fr);
  align-items: center;
  gap: clamp(28px, 5vw, 76px);
  padding-top: 32px;
  padding-bottom: 30px;
}

.footer-qr {
  display: flex;
  align-items: center;
  gap: 15px;
}

.footer-qr > div:last-child {
  display: grid;
  gap: 6px;
}

.footer-qr strong {
  color: var(--white);
  font-size: 0.9rem;
}

.footer-qr p,
.footer-brand-footer p {
  margin: 0;
  color: #92a69a;
  font-size: 0.76rem;
  line-height: 1.5;
}

.qr-placeholder {
  position: relative;
  width: 88px;
  height: 88px;
  flex: 0 0 88px;
  overflow: hidden;
  background-color: var(--white);
  background-image:
    linear-gradient(90deg, transparent 0 8%, #14271e 8% 15%, transparent 15% 22%, #14271e 22% 28%, transparent 28% 38%, #14271e 38% 46%, transparent 46% 56%, #14271e 56% 62%, transparent 62% 70%, #14271e 70% 76%, transparent 76% 100%),
    linear-gradient(0deg, transparent 0 7%, #14271e 7% 14%, transparent 14% 24%, #14271e 24% 30%, transparent 30% 41%, #14271e 41% 48%, transparent 48% 59%, #14271e 59% 65%, transparent 65% 75%, #14271e 75% 82%, transparent 82% 100%);
  background-size: 22px 22px;
  border-radius: 3px;
  box-shadow: 0 0 0 6px var(--white), 0 7px 16px rgb(0 0 0 / 14%);
}

.footer-qr-image {
  display: block;
  width: 88px;
  height: 88px;
  flex: 0 0 88px;
  object-fit: cover;
  background: var(--white);
  border-radius: 3px;
  box-shadow: 0 0 0 6px var(--white), 0 7px 16px rgb(0 0 0 / 14%);
}

.qr-placeholder::after {
  content: "";
  position: absolute;
  right: 11px;
  bottom: 11px;
  width: 20px;
  height: 20px;
  background: #14271e;
  box-shadow: -25px -2px 0 -4px #14271e, -5px -28px 0 -5px #14271e, -27px 18px 0 -5px #14271e;
}

.qr-finder {
  position: absolute;
  z-index: 1;
  width: 25px;
  height: 25px;
  background: var(--white);
  border: 5px solid #14271e;
}

.qr-finder::after {
  content: "";
  position: absolute;
  inset: 5px;
  background: #14271e;
}

.qr-finder-a { top: 7px; left: 7px; }
.qr-finder-b { top: 7px; right: 7px; }
.qr-finder-c { bottom: 7px; left: 7px; }

.footer-nav {
  gap: 0;
}

.footer-nav-quick > strong {
  margin-bottom: 10px;
}

.footer-nav-links {
  display: grid;
  grid-template-columns: repeat(3, minmax(72px, 1fr));
  gap: 4px 16px;
}

.footer-nav a {
  min-height: 26px;
  font-size: 1.0rem;
}

.footer-brand-footer {
  align-items: flex-end;
  text-align: right;
  padding: 12px 14px 11px;
  background: var(--white);
  border-radius: 12px 12px 3px 12px;
}

.footer-brand-footer img {
  width: 154px;
  height: auto;
  aspect-ratio: 1000 / 325;
  object-fit: contain;
  margin: 0 0 11px;
  filter: none;
}

.footer-bottom {
  min-height: 52px;
  border-top-color: rgb(255 255 255 / 12%);
}

.footer-bottom a {
  min-height: 36px;
}

.belief-list article > span,
.quality-points span,
.home-advantage-grid article > span,
.contact-next-list span,
.deliverable-grid article > span,
.capability-number {
  width: 32px;
  height: 32px;
  display: inline-grid;
  place-items: center;
  color: var(--green-deep);
  background: #e2f7ec;
  border: 1px solid #bce9cf;
  border-radius: 50%;
  font-size: 0.66rem;
  font-weight: 900;
  letter-spacing: 0.03em;
}

.belief-list article {
  grid-template-columns: 42px 1fr;
  gap: 18px;
}

.quality-points > div {
  grid-template-columns: 42px 1fr;
  gap: 16px;
}

.quality-points p {
  grid-column: 2;
}

.home-advantage-grid article {
  grid-template-columns: 42px 1fr;
}

.contact-next-list > div {
  grid-template-columns: 42px 1fr;
}

.deliverable-grid article > span {
  margin-bottom: 34px;
  color: #4c3ca2;
  background: #edeaff;
  border-color: #d9d0ff;
}

.capability-number {
  color: var(--green-deep);
  background: var(--white);
}

.factory-photo {
  position: relative;
  top: auto;
  aspect-ratio: 1.15 / 1;
  align-self: start;
}

.factory-photo img {
  height: 100%;
  min-height: 0;
}

.factory-copy p:not(.eyebrow) {
  max-width: 66ch;
}

.strength-grid article,
.capability-grid article {
  min-height: 292px;
  display: flex;
  flex-direction: column;
}

.strength-grid article > span {
  width: 42px;
  height: 42px;
  display: grid;
  place-items: center;
  margin-bottom: 36px;
  color: var(--green-deep);
  background: #d9f6e8;
  border: 1px solid #bce9cf;
  border-radius: 14px 14px 14px 3px;
  font-size: 0.7rem;
}

.strength-grid article::before,
.capability-grid article::before,
.home-advantage-grid article::before {
  content: "";
  width: 30px;
  height: 30px;
  display: block;
  margin-left: auto;
  margin-bottom: -64px;
  opacity: 0.86;
  background: currentColor;
  border-radius: 50% 50% 50% 6px;
  transform: rotate(-20deg);
}

.strength-grid article:nth-child(1)::before,
.home-advantage-grid article:nth-child(1)::before {
  color: var(--green);
  box-shadow: -11px 10px 0 -9px currentColor, 11px 10px 0 -9px currentColor;
}

.strength-grid article:nth-child(2)::before,
.home-advantage-grid article:nth-child(2)::before {
  color: var(--blue);
  border-radius: 8px;
  box-shadow: inset 0 0 0 7px rgb(255 255 255 / 76%);
  transform: rotate(45deg);
}

.strength-grid article:nth-child(3)::before,
.home-advantage-grid article:nth-child(3)::before {
  color: #c29416;
  border-radius: 50% 4px 50% 4px;
}

.strength-grid article::before,
.home-advantage-grid article::before {
  display: none;
}

.feature-icon,
.list-icon {
  width: 34px;
  height: 34px;
  display: grid;
  place-items: center;
  color: var(--green-deep);
  background: #e6f7ed;
  border: 1px solid #c6ead4;
  border-radius: 11px 11px 11px 3px;
}

.feature-icon svg,
.list-icon svg,
.capability-icon svg {
  width: 19px;
  height: 19px;
  fill: none;
  stroke: currentColor;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 1.75;
}

.feature-icon-tech,
.list-icon-tech {
  color: #2458cd;
  background: #e9efff;
  border-color: #cbd9ff;
}

.feature-icon-leaf,
.list-icon-leaf {
  color: #88700e;
  background: #fff7d7;
  border-color: #f1e1a0;
}

.strength-grid article {
  position: relative;
}

.strength-grid .feature-icon {
  position: absolute;
  top: 34px;
  right: 34px;
  width: 40px;
  height: 40px;
}

.strength-grid article > span {
  margin-bottom: 52px;
}

.home-advantage-grid article::before {
  position: absolute;
  right: 29px;
  top: 27px;
  margin: 0;
  width: 25px;
  height: 25px;
}

.home-advantage-grid article {
  position: relative;
  grid-template-columns: 34px 34px 1fr;
  gap: 11px;
  padding-top: 48px;
}

.home-advantage-grid article:first-child {
  padding-left: 0;
}

.home-advantage-grid .feature-icon {
  align-self: start;
}

.capability-grid article {
  position: relative;
  overflow: hidden;
}

.capability-grid article::before {
  position: absolute;
  right: 32px;
  top: 30px;
  width: 37px;
  height: 37px;
  margin: 0;
  color: #b8c9be;
}

.capability-grid article:nth-child(1)::before { border-radius: 50% 50% 4px 50%; }
.capability-grid article:nth-child(2)::before { color: #92b3ff; border-radius: 9px; transform: rotate(45deg); }
.capability-grid article:nth-child(3)::before { color: #efca4c; border-radius: 4px 50% 50% 50%; }

.capability-icon {
  width: 72px;
  height: 72px;
  margin: 24px 0 27px;
  font-size: 0.78rem;
}

.capability-icon svg {
  width: 27px;
  height: 27px;
}

.capability-grid h3 {
  font-size: 1.38rem;
}

.capability-grid p {
  margin-bottom: 17px;
}

.capability-notes {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
  padding: 0;
  margin: auto 0 0;
  list-style: none;
}

.capability-notes li {
  padding: 5px 10px;
  color: #4e6256;
  background: var(--white);
  border: 1px solid #dce5dd;
  border-radius: 999px;
  font-size: 1.0rem;
  line-height: 1.25;
}

.solution-flow {
  color: var(--ink);
  background: #eeeffd;
  border-top: 1px solid #dfdff7;
  border-bottom: 1px solid #dfdff7;
}

.flow-copy .eyebrow {
  color: #5945b5;
}

.flow-copy p:not(.eyebrow) {
  color: #60667a;
}

.flow-list {
  border-top-color: #d2d4ec;
}

.flow-list li {
  grid-template-columns: 48px 1fr;
  border-bottom-color: #d2d4ec;
}

.flow-list li {
  grid-template-columns: 38px 34px 1fr;
  gap: 15px;
}

.flow-list span {
  width: 32px;
  height: 32px;
  display: grid;
  place-items: center;
  color: #4b3aa2;
  background: var(--white);
  border: 1px solid #d8d3f4;
  border-radius: 10px 10px 10px 3px;
  font-size: 0.67rem;
}

.flow-icon,
.deliverable-icon {
  width: 32px;
  height: 32px;
  display: grid;
  place-items: center;
  color: #5945b5;
  background: rgb(255 255 255 / 70%);
  border: 1px solid #d4d0ef;
  border-radius: 10px 10px 10px 3px;
}

.deliverable-icon {
  margin-bottom: 19px;
  color: #4c3ca2;
  background: #f4f2ff;
}

.deliverable-icon svg {
  width: 17px;
  height: 17px;
}

.catalog-grid.catalog-list {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 20px;
}

.catalog-list .catalog-item {
  min-height: 0;
  display: flex;
  flex-direction: column;
}

.catalog-item-media {
  min-height: 0;
  height: 228px;
}

.catalog-item-copy {
  flex: 1;
  justify-content: flex-start;
  padding: 30px 32px 34px;
}

.catalog-item-copy > span {
  width: max-content;
  padding: 6px 9px;
  margin-bottom: 15px;
  color: var(--green-deep);
  background: #e5f7ed;
  border-radius: 999px;
  font-size: 0.8rem;
}

.catalog-item-copy h3 {
  font-size: clamp(1.75rem, 2.5vw, 2.25rem);
}

.catalog-item-copy > p {
  min-height: 3.1em;
  margin-bottom: 22px;
  font-size: 1.0rem;
}

.product-specs {
  gap: 12px 18px;
  padding-top: 18px;
}

.product-specs dd {
  font-size: 1.2rem;
}

.home-product-card {
  min-height: 286px;
}

.home-product-card h3 {
  margin-top: 30px;
}

.home-product-card > span {
  width: 60px;
  height: 60px;
  display: grid;
  place-items: center;
  border: 1px solid rgb(23 33 27 / 22%);
  border-radius: 50%;
  font-size: 0.66rem;
}

.home-product-card h3,
.home-product-card p,
.home-product-card b,
.home-product-card > span {
  position: relative;
  z-index: 2;
}

.home-product-thumb {
  position: absolute;
  z-index: 1;
  right: 17px;
  bottom: 17px;
  width: 160px;
  height: 160px;
  object-fit: cover;
  opacity: 0.76;
  border: 1px solid rgb(255 255 255 / 55%);
  border-radius: 50% 50% 13px 50%;
  box-shadow: 0 10px 22px rgb(23 33 27 / 10%);
}

.home-product-blue .home-product-thumb,
.home-product-mix .home-product-thumb {
  opacity: 0.88;
  border-color: rgb(255 255 255 / 34%);
}

.home-product-card::after {
  z-index: 0;
}

.belief-list article,
.quality-points > div,
.contact-next-list > div {
  grid-template-columns: 32px 36px 1fr;
  gap: 13px;
}

.belief-list .list-icon,
.quality-points .list-icon,
.contact-next-list .list-icon {
  width: 32px;
  height: 32px;
  align-self: start;
}

.belief-list article > span,
.quality-points span,
.contact-next-list span {
  align-self: start;
}

.quality-points strong,
.contact-next-list p {
  grid-column: 3;
}

.quality-points p {
  grid-column: 3;
}

.contact-next-list p {
  margin: 0;
}

.home-product-blue > span,
.home-product-mix > span {
  border-color: rgb(255 255 255 / 32%);
}

@media (max-width: 940px) {
  .footer-main {
    grid-template-columns: 1fr 1fr;
  }

  .footer-brand-footer {
    align-items: flex-start;
    text-align: left;
  }

  .catalog-grid.catalog-list {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .catalog-item-media {
    height: 196px;
  }

  .factory-photo {
    position: relative;
  }
}

@media (max-width: 700px) {
  .header-inner {
    min-height: 72px;
  }

  .footer-main {
    grid-template-columns: 1fr;
    gap: 26px;
    padding-block: 30px;
  }

  .footer-nav-links {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .footer-brand-footer {
    align-items: flex-start;
    text-align: left;
  }

  .factory-photo {
    aspect-ratio: 1.16 / 1;
  }

  .strength-grid article,
  .capability-grid article {
    min-height: 0;
  }

  .catalog-grid.catalog-list {
    grid-template-columns: 1fr;
  }

  .catalog-item-media {
    height: 210px;
  }

  .catalog-item-copy {
    padding: 27px 24px 30px;
  }

  .strength-grid .feature-icon {
    top: 27px;
    right: 27px;
  }

  .home-product-thumb {
    width: 94px;
    height: 94px;
  }
}

/* Homepage refinement: material symbols replace ordinal product labels. */
.home-product-mark svg {
  width: 36px;
  height: 36px;
  fill: none;
  stroke: currentColor;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 1.8;
}

/* Homepage refinement: capability cards echo the circular icon rhythm in the reference. */
.home-advantages .home-advantage-grid {
  align-items: stretch;
  border-top: 0;
}

.home-advantages .home-advantage-grid article {
  --advantage-color: #168c64;
  --advantage-tint: #def8ed;
  --advantage-ring: rgb(22 140 100 / 11%);
  --advantage-shadow: rgb(22 140 100 / 16%);
  position: relative;
  min-height: 278px;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 24px;
  padding: 18px clamp(34px, 4vw, 58px) 34px;
  border-right: 1px solid #dce5df;
  border-bottom: 0;
}

.home-advantages .home-advantage-grid article::before {
  content: none;
}

.home-advantages .home-advantage-grid article:first-child {
  padding-left: 0;
}

.home-advantages .home-advantage-grid article:nth-child(2) {
  --advantage-color: #3567d6;
  --advantage-tint: #e7eeff;
  --advantage-ring: rgb(53 103 214 / 10%);
  --advantage-shadow: rgb(53 103 214 / 15%);
}

.home-advantages .home-advantage-grid article:nth-child(3) {
  --advantage-color: #bf7c18;
  --advantage-tint: #fff2d7;
  --advantage-ring: rgb(191 124 24 / 11%);
  --advantage-shadow: rgb(191 124 24 / 14%);
}

.home-advantages .home-advantage-grid article:last-child {
  border-right: 0;
}

.home-advantage-icon {
  position: relative;
  width: 78px;
  height: 78px;
  display: grid;
  flex: 0 0 auto;
  place-items: center;
  color: var(--advantage-color);
  background: var(--advantage-tint);
  border-radius: 50%;
  box-shadow: 0 0 0 8px var(--advantage-ring), 0 10px 20px var(--advantage-shadow);
}

.home-advantage-icon::before {
  content: "";
  position: absolute;
  inset: 14px;
  border: 1px solid rgb(255 255 255 / 78%);
  border-radius: inherit;
  background: rgb(255 255 255 / 34%);
}

.home-advantage-icon svg {
  position: relative;
  z-index: 1;
  width: 30px;
  height: 30px;
  fill: none;
  stroke: currentColor;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 1.8;
}

.home-advantages .home-advantage-grid strong {
  display: block;
  margin: 0 0 12px;
  color: var(--ink);
  font-size: clamp(1.32rem, 1.75vw, 1.58rem);
  line-height: 1.28;
}

.home-advantages .home-advantage-grid p {
  max-width: 25ch;
  margin: 0;
  color: var(--ink-soft);
  font-size: clamp(0.98rem, 1.22vw, 1.08rem);
  line-height: 1.68;
}

@media (max-width: 940px) {
  .home-advantages .home-advantage-grid article,
  .home-advantages .home-advantage-grid article:first-child {
    min-height: 0;
    padding: 34px 0;
    border-right: 0;
    border-bottom: 1px solid #dce5df;
  }

  .home-advantages .home-advantage-grid article:last-child {
    border-bottom: 0;
  }
}

@media (max-width: 700px) {
  .home-advantages .home-advantage-grid article,
  .home-advantages .home-advantage-grid article:first-child {
    gap: 21px;
    padding-block: 30px;
  }

  .home-advantage-icon {
    width: 70px;
    height: 70px;
    box-shadow: 0 0 0 6px var(--advantage-ring), 0 8px 16px var(--advantage-shadow);
  }

  .home-advantage-icon svg {
    width: 27px;
    height: 27px;
  }
}

/* About page refinement: natural-material story, culture board and icon-led working principles. */
.page-about .about-profile-section {
  background: var(--white);
}

.page-about .about-profile-layout {
  --about-profile-side-width: calc(526px + clamp(40px, 6vw, 94px));
  display: flow-root;
}

.page-about .about-profile-visual {
  float: left;
  position: relative;
  z-index: 0;
  width: min(100%, 490px);
  margin: 0 clamp(40px, 6vw, 94px) 34px 0;
  padding: 34px 0 34px 36px;
}

.page-about .about-profile-visual::before {
  content: "";
  position: absolute;
  z-index: -2;
  inset: 0 0 0 15%;
  background: linear-gradient(145deg, #edf7ef, #dceee1);
  border-radius: 28px 28px 28px 4px;
}

.page-about .about-profile-visual::after {
  content: "";
  position: absolute;
  z-index: -1;
  top: 22px;
  right: -20px;
  width: 68px;
  height: 68px;
  background: #d8af42;
  border-radius: 50%;
  box-shadow: 0 0 0 10px rgb(216 175 66 / 12%);
}

.about-profile-image-frame {
  position: relative;
  overflow: hidden;
  aspect-ratio: 1122 / 1402;
  background: #e8f1e9;
  border: 1px solid rgb(255 255 255 / 82%);
  border-radius: 24px 24px 24px 4px;
  box-shadow: 0 22px 46px rgb(28 70 48 / 15%);
}

.about-profile-image-frame img {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
}

.page-about .about-profile-visual figcaption {
  position: absolute;
  z-index: 1;
  left: 0;
  bottom: 10px;
  padding: 10px 15px;
  color: #315d49;
  background: rgb(255 255 255 / 93%);
  border: 1px solid rgb(64 109 80 / 12%);
  border-radius: 0 12px 12px 0;
  box-shadow: 0 8px 18px rgb(31 65 47 / 8%);
  font-size: 0.72rem;
  font-weight: 800;
  letter-spacing: 0.1em;
}

.page-about .about-profile-copy {
  max-width: none;
  transform: none !important;
}

.page-about .about-profile-copy h2 {
  max-width: 12ch;
  margin: 0 0 28px;
  font-size: clamp(2.18rem, 3.2vw, 3.35rem);
  line-height: 1.24;
}

.about-profile-copy-body {
  max-width: none;
}

.about-profile-copy-body p {
  margin: 0;
  color: #50655a;
  font-size: clamp(1rem, 1.15vw, 1.13rem);
  line-height: 1.88;
}

.about-profile-copy-body p + p {
  padding-top: 22px;
}

.about-profile-copy-body p:nth-child(2) {
  clear: none;
}

.about-profile-copy-body p:nth-child(3) {
  clear: both;
}

@media (min-width: 701px) {
  .page-about .about-profile-copy > .eyebrow,
  .page-about .about-profile-copy h2,
  .about-profile-copy-body p:first-child,
  .about-profile-copy-body p:nth-child(2) {
    margin-left: var(--about-profile-side-width);
  }

  .page-about .about-profile-copy h2 {
    max-width: none;
  }

  .about-profile-copy-body p:first-child,
  .about-profile-copy-body p:nth-child(2) {
    width: calc(100% - var(--about-profile-side-width));
  }

  html[data-language="en"] .about-profile-copy-body p:nth-child(2) {
    clear: both;
    width: auto;
    margin-left: 0;
  }
}

.page-about .about-profile-note {
  margin: 30px 0 0;
  color: #508067;
  font-size: 0.7rem;
  font-weight: 900;
  letter-spacing: 0.15em;
}

.page-about .about-culture {
  background: #f4faf5;
  border-top: 1px solid #e1ede3;
  border-bottom: 1px solid #e1ede3;
}

.about-culture-heading {
  display: flex;
  justify-content: space-between;
  gap: 48px;
  align-items: end;
  margin-bottom: 52px;
}

.about-culture-heading h2 {
  margin-bottom: 0;
}

.about-culture-heading > p {
  max-width: 34ch;
  margin: 0 0 5px;
  color: var(--ink-soft);
  font-size: 1.03rem;
  line-height: 1.72;
}

.culture-board {
  display: grid;
  grid-template-columns: minmax(270px, 0.66fr) minmax(0, 1.34fr);
  overflow: hidden;
  background: var(--white);
  border: 1px solid #d8e6db;
  border-radius: 28px 28px 28px 4px;
  box-shadow: 0 18px 42px rgb(28 70 48 / 7%);
}

.culture-board-intro {
  position: relative;
  z-index: 0;
  min-height: 100%;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  padding: 44px clamp(30px, 3.7vw, 54px);
  overflow: hidden;
  color: var(--white);
  background: #26ba86;
}

.culture-board-intro::before,
.culture-board-intro::after {
  content: "";
  position: absolute;
  z-index: -1;
  border: 1px solid rgb(218 248 228 / 23%);
  border-radius: 50%;
}

.culture-board-intro::before {
  right: -102px;
  bottom: -118px;
  width: 270px;
  height: 270px;
}

.culture-board-intro::after {
  right: -42px;
  bottom: -58px;
  width: 150px;
  height: 150px;
  box-shadow: 0 0 0 32px rgb(218 248 228 / 5%), 0 0 0 66px rgb(218 248 228 / 4%);
}

.culture-board-mark {
  width: 68px;
  height: 68px;
  display: grid;
  place-items: center;
  margin-bottom: auto;
  color: #c7f2d5;
  background: rgb(225 255 235 / 11%);
  border: 1px solid rgb(225 255 235 / 29%);
  border-radius: 50%;
}

.culture-board-mark svg {
  width: 33px;
  height: 33px;
  fill: none;
  stroke: currentColor;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 1.5;
}

.culture-board-intro > p {
  margin: 44px 0 13px;
  color: #bde7ca;
  font-size: 0.7rem;
  font-weight: 900;
  letter-spacing: 0.15em;
}

.culture-board-intro h3 {
  max-width: 10ch;
  margin: 0 0 18px;
  color: var(--white);
  font-size: clamp(1.76rem, 2.55vw, 2.45rem);
  line-height: 1.32;
}

.culture-board-intro > span:last-child {
  max-width: 24ch;
  color: rgb(233 249 238 / 76%);
  font-size: 0.98rem;
  line-height: 1.7;
}

.culture-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.culture-card {
  --culture-accent: #1b8a63;
  --culture-tint: #e1f6e9;
  min-height: 237px;
  display: grid;
  grid-template-columns: 68px minmax(0, 1fr);
  gap: 23px;
  padding: 34px 32px;
  background: var(--white);
  border-right: 1px solid #dce8df;
  border-bottom: 1px solid #dce8df;
}

.culture-card:nth-child(2n) {
  border-right: 0;
}

.culture-card:nth-child(n + 3) {
  border-bottom: 0;
}

.culture-card-icon {
  width: 68px;
  height: 68px;
  margin-top: 30px;
  display: grid;
  place-items: center;
  color: var(--culture-accent);
  background: var(--culture-tint);
  border: 1px solid rgb(255 255 255 / 70%);
  border-radius: 50%;
  box-shadow: 0 0 0 7px color-mix(in srgb, var(--culture-tint) 78%, transparent), 0 10px 20px rgb(28 70 48 / 9%);
}

.culture-card-icon svg {
  width: 36px;
  height: 36px;
  fill: none;
  stroke: currentColor;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 1.8;
}

.culture-card p {
  margin: 20px 0 12px;
  color: #799087;
  font-size: 0.64rem;
  font-weight: 900;
  letter-spacing: 0.11em;
}

.culture-card h3 {
  margin: 0 0 12px;
  color: var(--ink);
  font-size: clamp(1.22rem, 1.65vw, 1.48rem);
  line-height: 1.34;
}

.culture-card span {
  display: block;
  color: #66786f;
  font-size: 0.88rem;
  line-height: 1.58;
}

.culture-card-innovation {
  --culture-accent: #2e63cc;
  --culture-tint: #e5edff;
}

.culture-card-partnership {
  --culture-accent: #b87b17;
  --culture-tint: #fff1d5;
}

.culture-card-unity {
  --culture-accent: #417a72;
  --culture-tint: #e2f2ed;
}

.page-about .about-way {
  background: #fffcf2;
  border-top: 1px solid #eee6c9;
}

.about-way-layout {
  display: grid;
  grid-template-columns: minmax(0, 0.68fr) minmax(0, 1.32fr);
  gap: clamp(48px, 7vw, 104px);
  align-items: start;
}

.about-way-heading h2 {
  max-width: 10ch;
  margin-bottom: 0;
}

.about-way-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
}

.about-way-grid article {
  --way-accent: #1b8a63;
  --way-tint: #ddf6e7;
  min-height: 288px;
  display: flex;
  flex-direction: column;
  padding: 32px 20px 30px 28px;
  background: var(--white);
  border: 1px solid #e6dfc2;
  border-radius: 18px 18px 18px 3px;
  box-shadow: 0 12px 24px rgb(87 70 15 / 5%);
}

.about-way-icon {
  position: relative;
  width: 82px;
  height: 82px;
  display: grid;
  flex: 0 0 auto;
  place-items: center;
  margin-bottom: 31px;
  color: var(--way-accent);
  background: var(--way-tint);
  border-radius: 50%;
  box-shadow: 0 0 0 8px color-mix(in srgb, var(--way-tint) 76%, transparent), 0 11px 20px rgb(31 88 55 / 12%);
}

.about-way-icon::before {
  content: "";
  position: absolute;
  inset: 14px;
  border: 1px solid rgb(255 255 255 / 78%);
  border-radius: inherit;
}

.about-way-icon svg {
  position: relative;
  z-index: 1;
  width: 36px;
  height: 36px;
  fill: none;
  stroke: currentColor;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 1.8;
}

.about-way-grid h3 {
  margin: 0 0 13px;
  color: var(--ink);
  font-size: clamp(1.25rem, 1.65vw, 1.46rem);
  line-height: 1.32;
}

.about-way-grid p {
  margin: 0;
  color: #6a705d;
  font-size: 0.98rem;
  line-height: 1.72;
}

.about-way-grid article:nth-child(2) {
  --way-accent: #2f63ca;
  --way-tint: #e4edff;
}

.about-way-grid article:nth-child(3) {
  --way-accent: #b67a16;
  --way-tint: #fff1d4;
}

@media (max-width: 940px) {
  .culture-board,
  .about-way-layout {
    grid-template-columns: 1fr;
  }

  .about-culture-heading {
    align-items: start;
    flex-direction: column;
    gap: 17px;
  }

  .about-culture-heading > p {
    max-width: 52ch;
    margin-bottom: 0;
  }

  .culture-board-intro {
    min-height: 270px;
  }

  .culture-board-mark {
    margin-bottom: 30px;
  }

  .culture-board-intro > p {
    margin-top: 0;
  }

  .culture-board-intro h3 {
    max-width: 18ch;
  }

  .about-way-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

@media (max-width: 700px) {
  .page-about .about-profile-layout {
    --about-profile-side-width: 0px;
  }

  .page-about .about-profile-visual {
    float: none;
    width: calc(100% - 12px);
    margin: 0 0 38px;
    padding: 24px 0 31px 24px;
  }

  .page-about .about-profile-visual::after {
    top: 14px;
    right: -13px;
    width: 50px;
    height: 50px;
  }

  .page-about .about-profile-copy h2 {
    max-width: 11ch;
    margin-bottom: 23px;
  }

  .about-profile-copy-body {
    gap: 18px;
  }

  .about-profile-copy-body p,
  .about-culture-heading > p {
    font-size: 0.98rem;
  }

  .about-profile-copy-body p + p {
    padding-top: 18px;
  }

  .about-profile-copy-body p:nth-child(3) {
    clear: none;
  }


  .about-culture-heading {
    margin-bottom: 34px;
  }

  .culture-board {
    border-radius: 20px 20px 20px 3px;
  }

  .culture-board-intro {
    min-height: 0;
    padding: 34px 27px 37px;
  }

  .culture-board-mark {
    width: 62px;
    height: 62px;
  }

  .culture-board-intro h3 {
    font-size: 1.74rem;
  }

  .culture-grid,
  .about-way-grid {
    grid-template-columns: 1fr;
  }

  .culture-card,
  .culture-card:nth-child(2n) {
    min-height: 0;
    grid-template-columns: 62px minmax(0, 1fr);
    gap: 20px;
    padding: 27px 24px;
    border-right: 0;
    border-bottom: 1px solid #dce8df;
  }

  .culture-card:nth-child(n + 3) {
    border-bottom: 1px solid #dce8df;
  }

  .culture-card:last-child {
    border-bottom: 0;
  }

  .culture-card-icon {
    width: 62px;
    height: 62px;
    box-shadow: 0 0 0 6px color-mix(in srgb, var(--culture-tint) 78%, transparent), 0 8px 16px rgb(28 70 48 / 8%);
  }

  .culture-card-icon svg {
    width: 26px;
    height: 26px;
  }

  .about-way-grid article {
    min-height: 0;
    display: grid;
    grid-template-columns: 72px minmax(0, 1fr);
    gap: 22px;
    align-items: start;
    padding: 27px 24px;
  }

  .about-way-icon {
    width: 72px;
    height: 72px;
    margin-bottom: 0;
    box-shadow: 0 0 0 6px color-mix(in srgb, var(--way-tint) 76%, transparent), 0 9px 17px rgb(31 88 55 / 11%);
  }

  .about-way-icon svg {
    width: 28px;
    height: 28px;
  }
}

/* Factory page refinement: photo-led production strengths and icon-led quality checkpoints. */
.page-factory .strength-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 20px;
  margin-top: 54px;
}

.page-factory .strength-grid article {
  --strength-accent: #168c64;
  --strength-tint: #dff7ea;
  --strength-ring: rgb(22 140 100 / 11%);
  min-height: 0;
  display: flex;
  flex-direction: column;
  padding: 0;
  overflow: hidden;
  color: var(--ink);
  background: var(--white);
  border: 1px solid #cfe4d6;
  border-radius: 22px 22px 22px 3px;
  box-shadow: 0 15px 30px rgb(26 79 52 / 7%);
  transition: transform var(--ease), box-shadow var(--ease);
}

.page-factory .strength-grid article::before {
  content: none;
}

.page-factory .strength-grid article:hover {
  box-shadow: 0 20px 40px rgb(26 79 52 / 12%);
  transform: translateY(-4px);
}

.strength-media {
  position: relative;
  height: 224px;
  overflow: hidden;
  background: #e9f2ec;
}

.strength-media::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, transparent 55%, rgb(17 42 30 / 18%));
  pointer-events: none;
}

.strength-media img {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
  transition: transform 600ms cubic-bezier(0.22, 1, 0.36, 1);
}

.page-factory .strength-grid article:hover .strength-media img {
  transform: scale(1.04);
}

.page-factory .strength-grid article:nth-child(1) .strength-media img {
  object-position: 62% center;
}

.page-factory .strength-grid article:nth-child(2) {
  --strength-accent: #2f63ca;
  --strength-tint: #e5edff;
  --strength-ring: rgb(47 99 202 / 10%);
}

.page-factory .strength-grid article:nth-child(3) {
  --strength-accent: #b67a16;
  --strength-tint: #fff1d5;
  --strength-ring: rgb(182 122 22 / 11%);
}

.strength-copy {
  position: relative;
  flex: 1;
  padding: 32px 30px 31px;
}

.strength-icon {
  position: absolute;
  top: -33px;
  right: 27px;
  width: 66px;
  height: 66px;
  display: grid;
  place-items: center;
  color: var(--strength-accent);
  background: var(--strength-tint);
  border: 1px solid rgb(255 255 255 / 87%);
  border-radius: 50%;
  box-shadow: 0 0 0 7px var(--strength-ring), 0 10px 20px rgb(26 79 52 / 12%);
}

.strength-icon::before {
  content: "";
  position: absolute;
  inset: 12px;
  border: 1px solid rgb(255 255 255 / 76%);
  border-radius: inherit;
}

.strength-icon svg {
  position: relative;
  z-index: 1;
  width: 28px;
  height: 28px;
  fill: none;
  stroke: currentColor;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 1.8;
}

.page-factory .strength-grid h3 {
  max-width: none;
  margin: 0 0 14px;
  font-size: clamp(1.36rem, 1.75vw, 1.58rem);
  line-height: 1.28;
}

.page-factory .strength-grid p {
  margin: 0;
  color: #607269;
  font-size: 1rem;
  line-height: 1.72;
}

.page-factory .quality-visuals {
  min-width: 0;
}

.page-factory .quality-visuals h2 {
  margin-bottom: 0;
}

.page-factory .quality-photo-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
  margin-top: 34px;
}

.page-factory .quality-photo {
  --photo-accent: #168c64;
  min-width: 0;
  margin: 0;
  padding: 8px 8px 15px;
  background: #f7fbf8;
  border: 1px solid #d6e8dd;
  border-radius: 19px 19px 19px 4px;
  box-shadow: 5px 6px 0 #e5f0e9, 0 12px 24px rgb(21 75 48 / 8%);
  transition: transform 240ms ease, box-shadow 240ms ease;
}

.page-factory .quality-photo-process {
  --photo-accent: #2f63ca;
  background: #f7faff;
  border-color: #dce5f8;
  box-shadow: 5px 6px 0 #e6ecfb, 0 12px 24px rgb(28 59 114 / 8%);
}

.page-factory .quality-photo-media {
  position: relative;
  aspect-ratio: 1276 / 1702;
  overflow: hidden;
  background: #e9f2ec;
  border-radius: 12px 12px 12px 3px;
}

.page-factory .quality-photo-media::after {
  content: "";
  position: absolute;
  inset: 60% 0 0;
  background: linear-gradient(180deg, transparent, rgb(15 40 29 / 13%));
  pointer-events: none;
}

.page-factory .quality-photo-media img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 360ms ease;
}

.page-factory .quality-photo-index {
  position: absolute;
  z-index: 1;
  top: 10px;
  left: 10px;
  width: 32px;
  height: 32px;
  display: grid;
  place-items: center;
  color: var(--white);
  background: var(--photo-accent);
  border: 1px solid rgb(255 255 255 / 55%);
  border-radius: 9px 9px 9px 2px;
  box-shadow: 0 5px 12px rgb(13 35 26 / 16%);
  font-size: 0.72rem;
  font-weight: 800;
  letter-spacing: 0.04em;
}

.page-factory .quality-photo figcaption {
  min-height: 72px;
  margin: 12px 4px 0;
  padding-left: 12px;
  border-left: 3px solid var(--photo-accent);
}

.page-factory .quality-photo figcaption strong {
  display: block;
  color: var(--ink);
  font-size: clamp(1rem, 1.15vw, 1.18rem);
  line-height: 1.3;
}

.page-factory .quality-photo figcaption span {
  display: block;
  margin-top: 5px;
  color: #607269;
  font-size: 0.78rem;
  line-height: 1.4;
}

@media (hover: hover) and (prefers-reduced-motion: no-preference) {
  .page-factory .quality-photo:hover {
    transform: translateY(-3px);
    box-shadow: 5px 9px 0 #e5f0e9, 0 17px 30px rgb(21 75 48 / 12%);
  }

  .page-factory .quality-photo-process:hover {
    box-shadow: 5px 9px 0 #e6ecfb, 0 17px 30px rgb(28 59 114 / 12%);
  }

  .page-factory .quality-photo:hover img {
    transform: scale(1.02);
  }
}

@media (max-width: 940px) {
  .page-factory .quality-photo-grid {
    max-width: 620px;
  }
}

@media (max-width: 700px) {
  .page-factory .quality-photo-grid {
    gap: 10px;
    margin-top: 28px;
  }

  .page-factory .quality-photo {
    padding: 6px 6px 12px;
    border-radius: 14px 14px 14px 3px;
    box-shadow: 3px 4px 0 #e5f0e9, 0 9px 18px rgb(21 75 48 / 8%);
  }

  .page-factory .quality-photo-process {
    box-shadow: 3px 4px 0 #e6ecfb, 0 9px 18px rgb(28 59 114 / 8%);
  }

  .page-factory .quality-photo figcaption {
    min-height: 78px;
    margin: 10px 2px 0;
    padding-left: 8px;
  }

  .page-factory .quality-photo figcaption strong {
    font-size: 0.98rem;
  }

  .page-factory .quality-photo figcaption span {
    font-size: 0.72rem;
  }
}

@media (prefers-reduced-motion: reduce) {
  .page-factory .quality-photo,
  .page-factory .quality-photo-media img {
    transition: none;
  }
}

.page-factory .quality-points {
  display: grid;
  gap: 14px;
  border-top: 0;
}

.page-factory .quality-points > article {
  --quality-accent: #168c64;
  --quality-tint: #e0f7ea;
  --quality-ring: rgb(22 140 100 / 10%);
  min-height: 154px;
  display: grid;
  grid-template-columns: 82px minmax(0, 1fr);
  gap: 25px;
  align-items: center;
  padding: 25px 30px;
  background: #f7fbf8;
  border: 1px solid #dce9df;
  border-radius: 18px 18px 18px 3px;
  transition: transform var(--ease), background var(--ease), box-shadow var(--ease);
}

.page-factory .quality-points > article:hover {
  background: var(--white);
  box-shadow: 0 12px 26px rgb(26 79 52 / 7%);
  transform: translateX(4px);
}

.quality-point-icon {
  position: relative;
  width: 82px;
  height: 82px;
  display: grid;
  place-items: center;
  color: var(--quality-accent);
  background: var(--quality-tint);
  border-radius: 50%;
  box-shadow: 0 0 0 8px var(--quality-ring), 0 10px 20px rgb(26 79 52 / 9%);
}

.quality-point-icon::before {
  content: "";
  position: absolute;
  inset: 15px;
  border: 1px solid rgb(255 255 255 / 78%);
  border-radius: inherit;
}

.quality-point-icon svg {
  position: relative;
  z-index: 1;
  width: 32px;
  height: 32px;
  fill: none;
  stroke: currentColor;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 1.8;
}

.page-factory .quality-points strong {
  display: block;
  margin: 0 0 9px;
  color: var(--ink);
  font-size: clamp(1.28rem, 1.7vw, 1.48rem);
  line-height: 1.3;
}

.page-factory .quality-points p {
  margin: 0;
  color: #61736a;
  font-size: 1rem;
  line-height: 1.68;
}

.page-factory .quality-points > article:nth-child(2) {
  --quality-accent: #2f63ca;
  --quality-tint: #e5edff;
  --quality-ring: rgb(47 99 202 / 10%);
}

.page-factory .quality-points > article:nth-child(3) {
  --quality-accent: #b67a16;
  --quality-tint: #fff1d5;
  --quality-ring: rgb(182 122 22 / 11%);
}

@media (max-width: 940px) {
  .page-factory .strength-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .strength-media {
    height: 250px;
  }
}

@media (max-width: 700px) {
  .page-factory .strength-grid {
    grid-template-columns: 1fr;
  }

  .strength-media {
    height: auto;
    aspect-ratio: 16 / 9;
  }

  .strength-copy {
    padding: 31px 25px 28px;
  }

  .strength-icon {
    right: 24px;
    width: 62px;
    height: 62px;
  }

  .page-factory .strength-grid h3 {
    max-width: none;
  }

  .page-factory .quality-points > article {
    min-height: 0;
    grid-template-columns: 72px minmax(0, 1fr);
    gap: 22px;
    padding: 24px;
  }

  .quality-point-icon {
    width: 72px;
    height: 72px;
    box-shadow: 0 0 0 6px var(--quality-ring), 0 8px 16px rgb(26 79 52 / 9%);
  }

  .quality-point-icon svg {
    width: 29px;
    height: 29px;
  }

  .page-factory .quality-points strong {
    font-size: 1.27rem;
  }
}

/* Product solutions refinement: a focused capability deck, a lilac process board and icon-led project outputs. */
.page-solutions .solution-capabilities {
  overflow: hidden;
  background: #fff;
}

.page-solutions .capability-stage {
  position: relative;
  isolation: isolate;
  margin-top: 58px;
}

.page-solutions .capability-stage::before,
.page-solutions .capability-stage::after {
  content: "";
  position: absolute;
  z-index: -1;
  pointer-events: none;
}

.page-solutions .capability-stage::before {
  top: 46px;
  left: -72px;
  width: 210px;
  height: 210px;
  background: radial-gradient(circle at 66% 36%, rgb(89 224 210 / 68%), rgb(89 224 210 / 15%) 52%, transparent 70%);
  border-radius: 47% 53% 46% 54%;
  transform: rotate(-18deg);
}

.page-solutions .capability-stage::after {
  right: -52px;
  bottom: 72px;
  width: 222px;
  height: 202px;
  background: radial-gradient(circle at 38% 46%, rgb(255 202 114 / 72%), rgb(255 202 114 / 14%) 57%, transparent 72%);
  border-radius: 56% 44% 51% 49%;
  transform: rotate(22deg);
}

.page-solutions .capability-deck {
  position: relative;
  min-height: 432px;
}

.page-solutions .capability-card {
  --capability-accent: #1da987;
  --capability-tint: #e0f8ee;
  --capability-ring: rgb(29 169 135 / 13%);
  position: absolute;
  top: 18px;
  left: 50%;
  z-index: 1;
  width: 30.5%;
  min-height: 358px;
  display: flex;
  flex-direction: column;
  padding: 33px 30px 29px;
  overflow: hidden;
  color: var(--ink);
  background: rgb(255 255 255 / 96%);
  border: 1px solid #dfe3f5;
  border-radius: 18px 18px 18px 4px;
  box-shadow: 0 16px 34px rgb(56 58 124 / 8%);
  opacity: 0.8;
  transform: translateX(-50%) translateX(var(--deck-shift, 0)) translateY(var(--deck-y, 10px)) scale(var(--deck-scale, 0.93));
  transform-origin: center bottom;
  transition: transform 520ms cubic-bezier(0.22, 1, 0.36, 1), opacity 360ms ease, color 360ms ease, background 420ms ease, border-color 360ms ease, box-shadow 420ms ease;
}

.page-solutions .capability-card:nth-child(2) {
  --capability-accent: #4166d5;
  --capability-tint: #e6edff;
  --capability-ring: rgb(65 102 213 / 12%);
}

.page-solutions .capability-card:nth-child(3) {
  --capability-accent: #c18420;
  --capability-tint: #fff2d7;
  --capability-ring: rgb(193 132 32 / 13%);
}

.page-solutions .capability-card[data-position="left"] {
  --deck-shift: -122%;
  --deck-y: 20px;
  --deck-scale: 0.93;
}

.page-solutions .capability-card[data-position="right"] {
  --deck-shift: 122%;
  --deck-y: 20px;
  --deck-scale: 0.93;
}

.page-solutions .capability-card[data-position="active"] {
  --deck-y: 0;
  --deck-scale: 1;
  z-index: 3;
  width: 34.5%;
  min-height: 398px;
  color: var(--white);
  background: linear-gradient(135deg, #26ba86 0%, #34e4aa 100%);
  border-color: transparent;
  box-shadow: 0 22px 48px rgb(55 82 190 / 27%);
  opacity: 1;
}

.page-solutions .capability-card-shine {
  position: absolute;
  top: -56px;
  right: -44px;
  width: 172px;
  height: 172px;
  border: 1px solid rgb(255 255 255 / 19%);
  border-radius: 50%;
  box-shadow: 0 0 0 28px rgb(255 255 255 / 4%), 0 0 0 60px rgb(255 255 255 / 3%);
  opacity: 0;
  transition: opacity 320ms ease;
}

.page-solutions .capability-card.is-active .capability-card-shine {
  opacity: 1;
}

.page-solutions .capability-card .capability-icon {
  position: relative;
  z-index: 1;
  width: 72px;
  height: 72px;
  flex: 0 0 auto;
  margin: 0 0 27px;
  color: var(--capability-accent);
  background: var(--capability-tint);
  border: 0;
  border-radius: 50%;
  box-shadow: 0 0 0 8px var(--capability-ring);
  transition: color 360ms ease, background 360ms ease, box-shadow 360ms ease;
}

.page-solutions .capability-card .capability-icon svg {
  width: 28px;
  height: 28px;
  stroke-width: 1.8;
}

.page-solutions .capability-card.is-active .capability-icon {
  color: #3550c7;
  background: rgb(255 255 255 / 96%);
  box-shadow: 0 0 0 8px rgb(255 255 255 / 14%);
}

.page-solutions .capability-card h3 {
  position: relative;
  z-index: 1;
  max-width: 100%;
  margin: 0 0 13px;
  color: inherit;
  font-size: clamp(1.32rem, 1.64vw, 1.58rem);
  line-height: 1.3;
}

.page-solutions .capability-card p {
  position: relative;
  z-index: 1;
  margin: 0 0 22px;
  color: #617078;
  font-size: 1.1rem;
  line-height: 1.72;
  transition: color 360ms ease;
}

.page-solutions .capability-card.is-active p {
  color: rgb(255 255 255 / 84%);
}

.page-solutions .capability-card .capability-notes {
  position: relative;
  z-index: 1;
  margin-top: auto;
}

.page-solutions .capability-card .capability-notes li {
  color: #53646a;
  background: #f8fbfb;
  border-color: #dfe9e6;
  transition: color 360ms ease, background 360ms ease, border-color 360ms ease;
}

.page-solutions .capability-card.is-active .capability-notes li {
  color: var(--white);
  background: rgb(255 255 255 / 12%);
  border-color: rgb(255 255 255 / 20%);
}

.capability-switcher {
  position: relative;
  z-index: 4;
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 20px;
}

.capability-switcher-button {
  min-height: 46px;
  display: inline-flex;
  align-items: center;
  gap: 9px;
  padding: 10px 17px;
  color: #52586a;
  background: rgb(255 255 255 / 88%);
  border: 1px solid #dfe3f2;
  border-radius: 999px;
  box-shadow: 0 7px 16px rgb(56 58 124 / 5%);
  cursor: pointer;
  font: inherit;
  /*font-size: 0.88rem;*/
  font-weight: 800;
  line-height: 1.2;
  transition: transform 220ms ease, color 220ms ease, background 220ms ease, border-color 220ms ease, box-shadow 220ms ease;
}

.capability-switcher-button:hover {
  color: #394bb8;
  border-color: #bfc9ee;
  box-shadow: 0 10px 20px rgb(56 58 124 / 11%);
  transform: translateY(-2px);
}

.capability-switcher-button.is-active {
  color: var(--white);
  background: #26ba86;
  border-color: #26ba86;
  box-shadow: 0 10px 20px rgb(70 79 190 / 23%);
}

.capability-switcher-button:focus-visible {
  outline: 3px solid #2b64c8;
  outline-offset: 3px;
}

.capability-switcher-dot {
  width: 9px;
  height: 9px;
  flex: 0 0 auto;
  background: #86a796;
  border-radius: 50%;
}

.capability-switcher-button:nth-child(2) .capability-switcher-dot {
  background: #6e92ed;
}

.capability-switcher-button:nth-child(3) .capability-switcher-dot {
  background: #e1ab4a;
}

.capability-switcher-button.is-active .capability-switcher-dot {
  background: rgb(255 255 255 / 82%);
}

.page-solutions .solution-flow {
  color: var(--ink);
  background: #eeeffd;
  border-color: #dfdff7;
}

.solution-flow-board {
  display: grid;
  grid-template-columns: minmax(276px, 0.66fr) minmax(0, 1.34fr);
  overflow: hidden;
  background: rgb(255 255 255 / 92%);
  border: 1px solid #dadbf2;
  border-radius: 28px 28px 28px 4px;
  box-shadow: 0 18px 42px rgb(64 61 124 / 9%);
}

.solution-flow-intro {
  position: relative;
  z-index: 0;
  min-height: 100%;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  padding: 46px clamp(30px, 3.7vw, 54px);
  overflow: hidden;
  color: var(--white);
  background: linear-gradient(150deg, #787dd9 0%, #5c559e 100%);
}

.solution-flow-intro::before,
.solution-flow-intro::after {
  content: "";
  position: absolute;
  z-index: -1;
  border: 1px solid rgb(255 255 255 / 19%);
  border-radius: 50%;
}

.solution-flow-intro::before {
  right: -112px;
  bottom: -128px;
  width: 280px;
  height: 280px;
}

.solution-flow-intro::after {
  right: -50px;
  bottom: -66px;
  width: 164px;
  height: 164px;
  box-shadow: 0 0 0 32px rgb(255 255 255 / 5%), 0 0 0 68px rgb(255 255 255 / 4%);
}

.solution-flow-mark {
  width: 66px;
  height: 66px;
  display: grid;
  place-items: center;
  margin-bottom: 35px;
  color: #fff5cf;
  background: rgb(255 255 255 / 13%);
  border: 1px solid rgb(255 255 255 / 26%);
  border-radius: 50%;
  box-shadow: 0 0 0 8px rgb(255 255 255 / 7%);
}

.solution-flow-mark svg {
  width: 30px;
  height: 30px;
  fill: none;
  stroke: currentColor;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 1.7;
}

.solution-flow-intro .eyebrow {
  margin-bottom: 18px;
  color: #fff5cf;
}

.solution-flow-intro h2 {
  max-width: 10ch;
  margin: 0 0 20px;
  color: var(--white);
  font-size: clamp(2rem, 2.8vw, 2.9rem);
  line-height: 1.28;
}

.solution-flow-intro > p:last-child {
  max-width: 28ch;
  margin: 0;
  color: rgb(255 255 255 / 82%);
  font-size: 0.98rem;
  line-height: 1.78;
}

.solution-flow-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  padding: 0;
  margin: 0;
  list-style: none;
}

.solution-flow-card {
  --flow-accent: #5d54ab;
  --flow-tint: #eeecff;
  min-height: 218px;
  display: grid;
  grid-template-columns: 68px minmax(0, 1fr);
  gap: 22px;
  align-items: center;
  padding: 31px clamp(25px, 3vw, 39px);
  background: rgb(255 255 255 / 94%);
  border-right: 1px solid #e1e1f3;
  border-bottom: 1px solid #e1e1f3;
  transition: background 240ms ease, box-shadow 240ms ease;
}

.solution-flow-card:nth-child(2n) {
  border-right: 0;
}

.solution-flow-card:nth-child(n + 3) {
  border-bottom: 0;
}

.solution-flow-card:nth-child(2) {
  --flow-accent: #3567c7;
  --flow-tint: #e8efff;
}

.solution-flow-card:nth-child(3) {
  --flow-accent: #178d69;
  --flow-tint: #e2f7ed;
}

.solution-flow-card:nth-child(4) {
  --flow-accent: #bd7d1d;
  --flow-tint: #fff2da;
}

.solution-flow-card:hover {
  position: relative;
  z-index: 1;
  background: #fafaff;
  box-shadow: inset 0 0 0 1px rgb(104 96 180 / 14%);
}

.solution-flow-icon {
  position: relative;
  width: 68px;
  height: 68px;
  display: grid;
  place-items: center;
  color: var(--flow-accent);
  background: var(--flow-tint);
  border-radius: 50%;
  box-shadow: 0 0 0 8px color-mix(in srgb, var(--flow-tint), transparent 24%);
}

.solution-flow-icon::before {
  content: "";
  position: absolute;
  inset: 13px;
  border: 1px solid rgb(255 255 255 / 79%);
  border-radius: inherit;
}

.solution-flow-icon svg {
  position: relative;
  z-index: 1;
  width: 29px;
  height: 29px;
  fill: none;
  stroke: currentColor;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 1.7;
}

.solution-flow-card p {
  margin: 0 0 8px;
  color: var(--flow-accent);
  /*font-size: 0.7rem;*/
  font-weight: 900;
  letter-spacing: 0.11em;
  line-height: 1.35;
}

.solution-flow-card h3 {
  margin: 0;
  color: var(--ink);
  font-size: clamp(1.28rem, 1.55vw, 2rem);
  line-height: 1.3;
}

.page-solutions .solution-deliverables {
  background: #faf9ff;
  border-top-color: #e4e1f4;
}

.page-solutions .project-delivery-grid {
  gap: 18px;
  margin-top: 58px;
}

.page-solutions .project-delivery-card {
  --delivery-accent: #5c54af;
  --delivery-tint: #eeecff;
  --delivery-ring: rgb(92 84 175 / 11%);
  position: relative;
  min-height: 266px;
  display: grid;
  grid-template-columns: 82px minmax(0, 1fr);
  gap: 24px;
  align-items: center;
  padding: 33px 30px;
  overflow: hidden;
  background: var(--white);
  border: 1px solid #deddf0;
  border-radius: 20px 20px 20px 4px;
  box-shadow: 0 12px 28px rgb(58 54 116 / 6%);
  transition: transform 240ms ease, box-shadow 240ms ease, border-color 240ms ease;
}

.page-solutions .project-delivery-card::after {
  content: "";
  position: absolute;
  right: -39px;
  bottom: -50px;
  width: 138px;
  height: 138px;
  background: var(--delivery-tint);
  border-radius: 50%;
  opacity: 0.58;
}

.page-solutions .project-delivery-card:hover {
  border-color: color-mix(in srgb, var(--delivery-accent), white 63%);
  box-shadow: 0 19px 34px rgb(58 54 116 / 12%);
  transform: translateY(-4px);
}

.page-solutions .project-delivery-card:nth-child(2) {
  --delivery-accent: #228d72;
  --delivery-tint: #e1f7ee;
  --delivery-ring: rgb(34 141 114 / 10%);
}

.page-solutions .project-delivery-card:nth-child(3) {
  --delivery-accent: #bc7b1b;
  --delivery-tint: #fff1d6;
  --delivery-ring: rgb(188 123 27 / 11%);
}

.project-delivery-icon {
  position: relative;
  z-index: 1;
  width: 82px;
  height: 82px;
  display: grid;
  place-items: center;
  color: var(--delivery-accent);
  background: var(--delivery-tint);
  border-radius: 50%;
  box-shadow: 0 0 0 8px var(--delivery-ring), 0 10px 19px rgb(52 58 110 / 7%);
}

.project-delivery-icon::before {
  content: "";
  position: absolute;
  inset: 15px;
  border: 1px solid rgb(255 255 255 / 79%);
  border-radius: inherit;
}

.project-delivery-icon svg {
  position: relative;
  z-index: 1;
  width: 32px;
  height: 32px;
  fill: none;
  stroke: currentColor;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 1.75;
}

.page-solutions .project-delivery-card h3 {
  position: relative;
  z-index: 1;
  margin: 0 0 11px;
  color: var(--ink);
  font-size: clamp(1.3rem, 1.7vw, 1.55rem);
  line-height: 1.28;
}

.page-solutions .project-delivery-card p {
  position: relative;
  z-index: 1;
  margin: 0;
  color: #667084;
  font-size: 0.98rem;
  line-height: 1.72;
}

@media (max-width: 940px) {
  .page-solutions .capability-deck {
    min-height: 408px;
  }

  .page-solutions .capability-card {
    width: 32.5%;
    min-height: 348px;
    padding: 29px 24px 25px;
  }

  .page-solutions .capability-card[data-position="active"] {
    width: 38%;
    min-height: 378px;
  }

  .page-solutions .capability-card h3 {
    font-size: 1.26rem;
  }

  .page-solutions .capability-card p {
    font-size: 0.88rem;
  }

  .solution-flow-board {
    grid-template-columns: 1fr;
  }

  .solution-flow-intro {
    min-height: 338px;
  }

  .solution-flow-intro h2 {
    max-width: 17ch;
  }
}

@media (max-width: 700px) {
  .page-solutions .capability-stage {
    margin-top: 39px;
  }

  .page-solutions .capability-stage::before {
    top: 70px;
    left: -118px;
  }

  .page-solutions .capability-stage::after {
    right: -125px;
    bottom: 50px;
  }

  .page-solutions .capability-deck {
    min-height: 0;
    display: grid;
    gap: 14px;
  }

  .page-solutions .capability-card,
  .page-solutions .capability-card[data-position="active"] {
    position: relative;
    top: auto;
    left: auto;
    width: auto;
    min-height: 0;
    padding: 29px 26px 27px;
    opacity: 1;
    transform: none;
  }

  .page-solutions .capability-card:not(.is-active) {
    background: rgb(255 255 255 / 96%);
    border-color: #dfe3f5;
    box-shadow: 0 13px 28px rgb(56 58 124 / 7%);
  }

  .page-solutions .capability-card:not(.is-active) h3 {
    color: var(--ink);
  }

  .page-solutions .capability-card:not(.is-active) p {
    color: #617078;
  }

  .page-solutions .capability-card:not(.is-active) .capability-notes li {
    color: #53646a;
    background: #f8fbfb;
    border-color: #dfe9e6;
  }

  .page-solutions .capability-card .capability-icon {
    width: 68px;
    height: 68px;
    margin-bottom: 24px;
  }

  .page-solutions .capability-card h3 {
    max-width: none;
    font-size: 1.38rem;
  }

  .page-solutions .capability-card p {
    font-size: 0.97rem;
  }

  .capability-switcher {
    justify-content: flex-start;
    margin-top: 19px;
  }

  .capability-switcher-button {
    flex: 1 1 100%;
    justify-content: center;
    min-height: 46px;
  }

  .solution-flow-intro {
    min-height: 0;
    padding: 39px 29px 42px;
  }

  .solution-flow-mark {
    width: 60px;
    height: 60px;
    margin-bottom: 30px;
  }

  .solution-flow-intro h2 {
    max-width: 12ch;
    font-size: clamp(1.95rem, 8.4vw, 2.45rem);
  }

  .solution-flow-grid {
    grid-template-columns: 1fr;
  }

  .solution-flow-card,
  .solution-flow-card:nth-child(2n),
  .solution-flow-card:nth-child(n + 3) {
    min-height: 0;
    grid-template-columns: 66px minmax(0, 1fr);
    gap: 21px;
    padding: 27px 25px;
    border-right: 0;
    border-bottom: 1px solid #e1e1f3;
  }

  .solution-flow-card:last-child {
    border-bottom: 0;
  }

  .solution-flow-icon {
    width: 66px;
    height: 66px;
  }

  .page-solutions .project-delivery-grid {
    margin-top: 39px;
  }

  .page-solutions .project-delivery-card {
    min-height: 0;
    grid-template-columns: 74px minmax(0, 1fr);
    gap: 22px;
    padding: 28px 24px;
  }

  .project-delivery-icon {
    width: 74px;
    height: 74px;
    box-shadow: 0 0 0 6px var(--delivery-ring), 0 8px 16px rgb(52 58 110 / 7%);
  }

  .project-delivery-icon svg {
    width: 29px;
    height: 29px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .page-solutions .capability-card,
  .capability-switcher-button,
  .solution-flow-card,
  .page-solutions .project-delivery-card,
  .page-solutions .capability-card-shine {
    transition: none;
  }
}

/* Contact page refinement: contact methods read as calm correspondence stations instead of utility rows. */
.page-contact .contact-details-section {
  background: #fff;
}

.page-contact .contact-details-layout {
  grid-template-columns: minmax(255px, 0.76fr) minmax(0, 1.24fr);
  gap: clamp(54px, 8vw, 118px);
  align-items: center;
}

.page-contact .contact-intro h2 {
  max-width: 5.4em;
  margin-bottom: 23px;
}

.page-contact .contact-intro > p:last-child {
  max-width: 31ch;
  font-size: 1.03rem;
  line-height: 1.8;
}

.page-contact .contact-detail-list {
  display: grid;
  gap: 15px;
  padding: 0;
  margin: 0;
  list-style: none;
  border: 0;
}

.page-contact .contact-detail {
  --contact-accent: #1c8b68;
  --contact-tint: #e2f7ee;
  --contact-ring: rgb(28 139 104 / 11%);
  position: relative;
  min-height: 166px;
  display: grid;
  grid-template-columns: 88px minmax(0, 1fr);
  gap: 28px;
  align-items: center;
  padding: 28px 32px;
  overflow: hidden;
  background: #f8fcf9;
  border: 1px solid #d9ebe0;
  border-radius: 20px 20px 20px 4px;
  transition: transform 240ms ease, border-color 240ms ease, box-shadow 240ms ease, background 240ms ease;
}

.page-contact .contact-detail::after {
  content: "";
  position: absolute;
  right: -55px;
  bottom: -68px;
  width: 178px;
  height: 178px;
  background: var(--contact-tint);
  border-radius: 50%;
  opacity: 0.72;
}

.page-contact .contact-detail:hover {
  background: var(--white);
  border-color: color-mix(in srgb, var(--contact-accent), white 63%);
  box-shadow: 0 17px 34px rgb(30 82 58 / 10%);
  transform: translateX(5px);
}

.page-contact .contact-detail-phone {
  --contact-accent: #386acb;
  --contact-tint: #e5edff;
  --contact-ring: rgb(56 106 203 / 11%);
  background: #f8faff;
  border-color: #dce5fa;
}

.page-contact .contact-detail-email {
  --contact-accent: #bc7d1e;
  --contact-tint: #fff1d5;
  --contact-ring: rgb(188 125 30 / 11%);
  background: #fffaf2;
  border-color: #f3e5ca;
}

.page-contact .contact-detail-icon {
  position: relative;
  z-index: 1;
  width: 88px;
  height: 88px;
  display: grid;
  place-items: center;
  color: var(--contact-accent);
  background: var(--contact-tint);
  border: 0;
  border-radius: 50%;
  box-shadow: 0 0 0 8px var(--contact-ring), 0 12px 22px rgb(35 76 57 / 9%);
}

.page-contact .contact-detail-icon::before {
  content: "";
  position: absolute;
  inset: 16px;
  border: 1px solid rgb(255 255 255 / 82%);
  border-radius: inherit;
}

.page-contact .contact-detail-icon svg {
  position: relative;
  z-index: 1;
  width: 36px;
  height: 36px;
  fill: none;
  stroke: currentColor;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 1.65;
}

.page-contact .contact-detail-copy {
  position: relative;
  z-index: 1;
  min-width: 0;
}

.page-contact .contact-detail small {
  margin-bottom: 10px;
  color: var(--contact-accent);
 font-size: 1.0rem;
  font-weight: 900;
  letter-spacing: 0.12em;
}

.page-contact .contact-detail strong {
  max-width: 34ch;
  color: var(--ink);
  font-size: clamp(1.0rem, 1.3vw, 1.2rem);
  line-height: 1.42;
}

.page-contact .contact-next {
  background: #eff9f3;
  border-color: #dceee2;
}

.page-contact .contact-next-layout {
  grid-template-columns: minmax(245px, 0.78fr) minmax(0, 1.22fr);
  gap: clamp(54px, 8vw, 118px);
  align-items: center;
}

.page-contact .contact-next-layout > div:first-child h2 {
  max-width: 8.5em;
  margin-bottom: 0;
  font-size: clamp(2.05rem, 3vw, 2.65rem);
}

.page-contact .contact-next-list {
  position: relative;
  display: grid;
  gap: 13px;
  padding: 0;
  margin: 0;
  list-style: none;
  border: 0;
}

.page-contact .contact-next-list::before {
  content: "";
  position: absolute;
  z-index: 0;
  top: 75px;
  bottom: 75px;
  left: 39px;
  border-left: 1px dashed #b9d8c4;
}

.page-contact .contact-next-item {
  --next-accent: #1a8a67;
  --next-tint: #dff7ec;
  --next-ring: rgb(26 138 103 / 10%);
  position: relative;
  min-height: 126px;
  display: grid;
  grid-template-columns: 78px minmax(0, 1fr);
  gap: 25px;
  align-items: center;
  padding: 24px 29px;
  background: rgb(255 255 255 / 86%);
  border: 1px solid #d8e9de;
  border-radius: 18px 18px 18px 4px;
  transition: transform 220ms ease, border-color 220ms ease, box-shadow 220ms ease, background 220ms ease;
}

.page-contact .contact-next-item:hover {
  background: var(--white);
  border-color: color-mix(in srgb, var(--next-accent), white 60%);
  box-shadow: 0 14px 28px rgb(35 84 59 / 9%);
  transform: translateX(5px);
}

.page-contact .contact-next-item-solution {
  --next-accent: #3768ca;
  --next-tint: #e5edff;
  --next-ring: rgb(55 104 202 / 11%);
  border-color: #dce5f8;
}

.page-contact .contact-next-item-talk {
  --next-accent: #b9791d;
  --next-tint: #fff0d4;
  --next-ring: rgb(185 121 29 / 11%);
  border-color: #f1e1c1;
}

.page-contact .contact-next-icon {
  position: relative;
  z-index: 1;
  width: 78px;
  height: 78px;
  display: grid;
  place-items: center;
  color: var(--next-accent);
  background: var(--next-tint);
  border-radius: 50%;
  box-shadow: 0 0 0 7px var(--next-ring);
}

.page-contact .contact-next-icon::before {
  content: "";
  position: absolute;
  inset: 14px;
  border: 1px solid rgb(255 255 255 / 78%);
  border-radius: inherit;
}

.page-contact .contact-next-icon svg {
  position: relative;
  z-index: 1;
  width: 31px;
  height: 31px;
  fill: none;
  stroke: currentColor;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 1.75;
}

.page-contact .contact-next-item h3 {
  margin: 0;
  color: var(--ink);
  font-size: clamp(1.18rem, 1.6vw, 1.42rem);
  line-height: 1.38;
}

@media (max-width: 940px) {
  .page-contact .contact-details-layout,
  .page-contact .contact-next-layout {
    grid-template-columns: 1fr;
    gap: 48px;
  }

  .page-contact .contact-intro {
    position: static;
  }

  .page-contact .contact-intro h2,
  .page-contact .contact-next-layout > div:first-child h2 {
    max-width: 18ch;
  }
}

@media (max-width: 700px) {
  .page-contact .contact-detail {
    min-height: 0;
    grid-template-columns: 74px minmax(0, 1fr);
    gap: 22px;
    padding: 25px 23px;
  }

  .page-contact .contact-detail-icon {
    width: 74px;
    height: 74px;
    box-shadow: 0 0 0 6px var(--contact-ring), 0 8px 16px rgb(35 76 57 / 9%);
  }

  .page-contact .contact-detail-icon svg {
    width: 30px;
    height: 30px;
  }

  .page-contact .contact-detail strong {
    font-size: 1.12rem;
  }

  .page-contact .contact-next-list {
    gap: 12px;
  }

  .page-contact .contact-next-list::before {
    top: 69px;
    bottom: 69px;
    left: 36px;
  }

  .page-contact .contact-next-item {
    min-height: 0;
    grid-template-columns: 72px minmax(0, 1fr);
    gap: 21px;
    padding: 23px;
  }

  .page-contact .contact-next-icon {
    width: 72px;
    height: 72px;
    box-shadow: 0 0 0 6px var(--next-ring);
  }

  .page-contact .contact-next-icon svg {
    width: 29px;
    height: 29px;
  }

  .page-contact .contact-next-item h3 {
    font-size: 1.16rem;
  }
}

@media (prefers-reduced-motion: reduce) {
  .page-contact .contact-detail,
  .page-contact .contact-next-item {
    transition: none;
  }
}

/* Keep the contact methods as individual correspondence cards; turn the next step into one continuous preparation path. */
.page-contact .contact-next-list {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0;
  padding: 0;
  overflow: hidden;
  background: rgb(255 255 255 / 88%);
  border: 1px solid #d7e8dd;
  border-radius: 24px 24px 24px 4px;
  box-shadow: 0 16px 32px rgb(35 84 59 / 7%);
}

.page-contact .contact-next-list::before {
  top: 84px;
  right: calc(16.666% + 42px);
  bottom: auto;
  left: calc(16.666% + 42px);
  height: 1px;
  border: 0;
  background: repeating-linear-gradient(90deg, #bfd8c8 0 5px, transparent 5px 11px);
}

.page-contact .contact-next-item {
  min-height: 258px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-start;
  gap: 0;
  padding: 41px 24px 34px;
  text-align: center;
  background: transparent;
  border: 0;
  border-right: 1px solid #deebe2;
  border-radius: 0;
  transition: background 220ms ease, box-shadow 220ms ease;
}

.page-contact .contact-next-item:last-child {
  border-right: 0;
}

.page-contact .contact-next-item:not(:last-child)::after {
  content: "";
  position: absolute;
  z-index: 3;
  top: 79px;
  right: -6px;
  width: 10px;
  height: 10px;
  background: rgb(255 255 255 / 98%);
  border-top: 1px solid #9ab6a4;
  border-right: 1px solid #9ab6a4;
  transform: rotate(45deg);
}

.page-contact .contact-next-item:hover {
  background: color-mix(in srgb, var(--next-tint), white 45%);
  border-color: #deebe2;
  box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--next-accent), white 78%);
  transform: none;
}

.page-contact .contact-next-icon {
  width: 84px;
  height: 84px;
  box-shadow: 0 0 0 8px var(--next-ring), 0 11px 20px rgb(35 84 59 / 7%);
}

.page-contact .contact-next-icon svg {
  width: 33px;
  height: 33px;
}

.page-contact .contact-next-item h3 {
  max-width: 11ch;
  margin: 31px auto 0;
  font-size: clamp(1.14rem, 1.42vw, 1.35rem);
  line-height: 1.46;
  text-align: left;
}

@media (max-width: 700px) {
  .page-contact .contact-next-list {
    grid-template-columns: 1fr;
    overflow: visible;
    background: transparent;
    border: 0;
    border-radius: 20px 20px 20px 4px;
    box-shadow: none;
  }

  .page-contact .contact-next-list::before {
    top: 75px;
    right: auto;
    bottom: 75px;
    left: 36px;
    width: 1px;
    height: auto;
    background: repeating-linear-gradient(180deg, #bfd8c8 0 5px, transparent 5px 11px);
  }

  .page-contact .contact-next-item {
    min-height: 0;
    display: grid;
    grid-template-columns: 72px minmax(0, 1fr);
    gap: 21px;
    align-items: center;
    padding: 24px 0;
    text-align: left;
    background: transparent;
    border: 0;
  }

  .page-contact .contact-next-item:last-child {
    border-bottom: 0;
  }

  .page-contact .contact-next-item:hover {
    background: transparent;
    box-shadow: none;
  }

  .page-contact .contact-next-item:not(:last-child)::after {
    content: none;
  }

  .page-contact .contact-next-icon {
    width: 72px;
    height: 72px;
    box-shadow: 0 0 0 6px var(--next-ring);
  }

  .page-contact .contact-next-icon svg {
    width: 29px;
    height: 29px;
  }

  .page-contact .contact-next-item h3 {
    max-width: none;
    margin: 0;
    font-size: 1.16rem;
  }
}

/* Site chrome refinement: enterprise navigation and partnership-led footer. */
.site-header {
  overflow: visible;
  background: rgb(255 255 255 / 97%);
  border-bottom: 1px solid rgb(20 104 71 / 10%);
  box-shadow: 0 6px 24px rgb(16 46 33 / 5%);
  backdrop-filter: blur(20px) saturate(130%);
}

.site-header.is-scrolled {
  background: rgb(255 255 255 / 99%);
  border-bottom-color: rgb(20 104 71 / 16%);
  box-shadow: 0 11px 34px rgb(16 46 33 / 9%);
}

.header-utility {
  height: 31px;
  color: #cfe6d8;
  background: #0d2e22;
  border-bottom: 1px solid rgb(255 255 255 / 8%);
}

.header-utility-inner {
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 32px;
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.075em;
}

.header-utility p,
.header-trust {
  display: flex;
  align-items: center;
  margin: 0;
}

.header-utility p {
  gap: 9px;
}

.utility-status {
  width: 6px;
  height: 6px;
  flex: 0 0 6px;
  background: #ffd300;
  border-radius: 50%;
  box-shadow: 0 0 0 4px rgb(255 211 0 / 11%);
}

.header-trust {
  height: 100%;
}

.header-trust span {
  height: 100%;
  display: inline-flex;
  align-items: center;
  padding-inline: 18px;
  border-left: 1px solid rgb(255 255 255 / 10%);
}

.header-trust span:last-child {
  padding-right: 0;
}

.header-inner {
  min-height: 76px;
  gap: clamp(22px, 2.8vw, 46px);
}

.brand {
  width: 174px;
  padding-block: 6px;
}

.site-nav {
  align-items: center;
  justify-content: flex-end;
  gap: clamp(4px, 0.45vw, 9px);
}

.nav-link {
  min-height: 42px;
  padding: 0 13px;
  color: #2b3a31;
  border: 1px solid transparent;
  border-radius: 999px;
  font-size: 0.93rem;
  font-weight: 650;
  letter-spacing: 0;
  transition: color 190ms ease, background-color 190ms ease, border-color 190ms ease, box-shadow 190ms ease;
}

.nav-link::before,
.nav-link::after {
  display: none;
}

.nav-link:hover {
  color: #0f6745;
  background: #f0f7f3;
  border-color: #d9e9df;
}

.nav-link.is-active {
  color: #0d6845;
  background: #e3f4ea;
  border-color: #c7e7d5;
  box-shadow: inset 0 -1px 0 rgb(20 104 71 / 8%);
}

.nav-link[href$="contact.html"] {
  margin-left: 5px;
  padding-inline: 17px;
  color: #fff;
  background: #146847;
  border-color: #146847;
  box-shadow: 0 7px 18px rgb(20 104 71 / 17%);
}

.nav-link[href$="contact.html"]:hover,
.nav-link[href$="contact.html"].is-active {
  color: #fff;
  background: #0d5036;
  border-color: #0d5036;
  box-shadow: 0 9px 22px rgb(20 104 71 / 23%);
}

.language-switch {
  min-width: 84px;
  height: 38px;
  padding: 3px;
  background: #f1f5f1;
  border-color: #dbe6de;
  box-shadow: inset 0 1px 2px rgb(20 42 30 / 3%);
}

.lang-button {
  min-width: 36px;
  height: 30px;
}

.lang-button.is-active {
  background: #132f24;
  box-shadow: 0 3px 8px rgb(19 47 36 / 16%);
}

.menu-toggle {
  color: #17382b;
  background: #f2f7f3;
  border-color: #d9e7dd;
  border-radius: 12px;
}

.hero {
  padding-top: 107px;
}

.hero-media,
.hero-wash {
  inset: 107px 0 0;
}

.inner-page main {
  padding-top: 107px;
}

.section-anchor {
  scroll-margin-top: 107px;
}

.site-footer {
  position: relative;
  overflow: hidden;
  color: #d8e6dc;
  background: #0b291e;
  border-top: 0;
}

.site-footer::before {
  content: "";
  position: absolute;
  z-index: 0;
  top: 0;
  right: 0;
  left: 0;
  height: 4px;
  background: linear-gradient(90deg, #237d3e 0 36%, #df7e22 36% 55%, #f7cf38 55% 73%, #a10c5e 73% 100%);
}

.site-footer::after {
  content: "AIYU";
  position: absolute;
  z-index: 0;
  right: -0.035em;
  bottom: -0.28em;
  color: rgb(255 255 255 / 2.5%);
  font-family: Arial Black, Arial, sans-serif;
  font-size: clamp(9rem, 24vw, 23rem);
  font-weight: 900;
  line-height: 0.8;
  letter-spacing: -0.09em;
  pointer-events: none;
  user-select: none;
}

.footer-cta,
.footer-main,
.footer-bottom {
  position: relative;
  z-index: 1;
}

.footer-cta {
  min-height: 174px;
  display: grid;
  grid-template-columns: minmax(360px, 1.35fr) minmax(280px, 0.95fr) auto;
  align-items: center;
  gap: clamp(28px, 5vw, 76px);
  padding-block: 44px 38px;
  border-bottom: 1px solid rgb(255 255 255 / 12%);
}

.footer-cta-copy > span {
  display: block;
  margin-bottom: 9px;
  color: #5fe0ab;
  font-size: 0.66rem;
  font-weight: 800;
  letter-spacing: 0.16em;
}

.footer-cta h2 {
  max-width: 18ch;
  margin: 0;
  color: #fff;
  font-size: clamp(1.55rem, 2.25vw, 2.2rem);
  font-weight: 730;
  line-height: 1.28;
  letter-spacing: -0.025em;
}

.footer-cta-points {
  display: grid;
  gap: 8px;
  padding: 0;
  margin: 0;
  list-style: none;
}

.footer-cta-points li {
  position: relative;
  padding-left: 19px;
  color: #bdd0c3;
  font-size: 0.84rem;
}

.footer-cta-points li::before {
  content: "";
  position: absolute;
  top: 0.72em;
  left: 0;
  width: 8px;
  height: 2px;
  background: #ffd300;
  border-radius: 999px;
}

.footer-cta-link {
  min-width: 150px;
  min-height: 50px;
  display: inline-flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  padding: 7px 8px 7px 20px;
  color: #0c3e2a;
  background: #fff;
  border: 1px solid rgb(255 255 255 / 80%);
  border-radius: 999px;
  font-size: 0.9rem;
  font-weight: 800;
  box-shadow: 0 10px 24px rgb(0 0 0 / 14%);
  transition: color 200ms ease, background-color 200ms ease, transform 200ms ease;
}

.footer-cta-link svg {
  width: 36px;
  height: 36px;
  padding: 9px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
  background: #dff4e7;
  border-radius: 50%;
}

.footer-cta-link:hover {
  color: #fff;
  background: #1d7c55;
  transform: translateY(-2px);
}

.footer-main {
  grid-template-columns: minmax(230px, 1fr) minmax(260px, 1.12fr) minmax(330px, 1.26fr);
  align-items: start;
  gap: clamp(34px, 4.4vw, 64px);
  padding-block: 46px 42px;
}

.footer-brand-footer {
  order: -1;
  align-items: flex-start;
  text-align: left;
  padding: 0;
  background: transparent;
  border-radius: 0;
}

.footer-brand-footer img {
  width: 206px;
  margin: 0 0 17px;
  padding: 9px 12px;
  background: #fff;
  border: 1px solid rgb(255 255 255 / 16%);
  border-radius: 10px;
  box-shadow: 0 10px 24px rgb(0 0 0 / 12%);
}

.footer-brand-footer p {
  color: #f2f7f4;
  font-size: 0.8rem;
  font-weight: 700;
  letter-spacing: 0.015em;
}

.footer-brand-footer::after {
  content: "NATURAL LITTER · SOURCE MANUFACTURING";
  display: block;
  margin-top: 9px;
  color: #718c7d;
  font-size: 0.61rem;
  font-weight: 800;
  letter-spacing: 0.12em;
}

.footer-nav-quick > strong,
.footer-qr strong {
  color: #f7faf8;
  font-size: 0.82rem;
  font-weight: 800;
  letter-spacing: 0.04em;
}

.footer-nav-quick > strong {
  display: block;
  margin-bottom: 14px;
}

.footer-nav-links {
  grid-template-columns: repeat(3, minmax(76px, 1fr));
  gap: 7px 18px;
}

.footer-nav a {
  position: relative;
  min-height: 30px;
  padding-left: 14px;
  color: #9bb0a2;
  font-size: 0.86rem;
  transition: color 180ms ease, transform 180ms ease;
}

.footer-nav a::before {
  content: "";
  position: absolute;
  top: 50%;
  left: 0;
  width: 6px;
  height: 1px;
  background: #4e6f5c;
  transform: translateY(-50%);
  transition: width 180ms ease, background-color 180ms ease;
}

.footer-nav a:hover {
  color: #fff;
  transform: translateX(3px);
}

.footer-nav a:hover::before {
  width: 9px;
  background: #50d39f;
}

.footer-qr {
  align-items: center;
  justify-content: flex-start;
  gap: 17px;
  padding: 16px;
  background: rgb(255 255 255 / 4%);
  border: 1px solid rgb(255 255 255 / 8%);
  border-radius: 16px 16px 4px 16px;
}

.footer-qr p {
  max-width: 100%;
  color: #789083;
  font-size: 0.72rem;
}

.footer-bottom {
  min-height: 58px;
  color: #758f80;
  border-top-color: rgb(255 255 255 / 10%);
  font-size: 0.74rem;
}

.footer-bottom a {
  color: #a4b8ac;
  transition: color 180ms ease;
}

.footer-bottom a:hover {
  color: #fff;
}

@media (max-width: 1120px) {
  .header-inner {
    gap: 18px;
  }

  .brand {
    width: 150px;
  }

  .site-nav {
    gap: 2px;
  }

  .nav-link {
    padding-inline: 9px;
    font-size: 0.84rem;
  }

  .nav-link[href$="contact.html"] {
    padding-inline: 13px;
  }

  .footer-cta {
    grid-template-columns: minmax(330px, 1.2fr) minmax(230px, 0.8fr) auto;
    gap: 28px;
  }

  .footer-main {
    grid-template-columns: minmax(210px, 0.9fr) minmax(250px, 1fr) minmax(300px, 1.2fr);
    gap: 34px;
  }
}

@media (max-width: 940px) {
  .site-header {
    backdrop-filter: none;
  }

  .header-utility {
    height: 27px;
  }

  .header-trust span:first-child {
    display: none;
  }

  .header-trust span:last-child {
    padding-right: 0;
  }

  .header-inner {
    min-height: 70px;
  }

  .site-nav {
    top: 97px;
    align-items: stretch;
    justify-content: flex-start;
    gap: 8px;
    padding: 25px max(24px, calc((100% - var(--container)) / 2));
    background: rgb(250 252 250 / 99%);
    border-top: 1px solid #dce9e0;
    box-shadow: inset 0 14px 26px rgb(13 46 34 / 3%);
  }

  .nav-link {
    min-height: 56px;
    justify-content: space-between;
    padding-inline: 18px;
    color: #20382c;
    background: #fff;
    border: 1px solid #e1ebe4;
    border-radius: 12px 12px 4px 12px;
    font-size: 1.03rem;
    box-shadow: 0 4px 12px rgb(12 51 34 / 3%);
  }

  .nav-link.is-active {
    color: #0d6845;
    background: #e6f5ec;
    border-color: #c6e8d4;
  }

  .nav-link[href$="contact.html"] {
    margin-top: 5px;
    margin-left: 0;
    color: #fff;
    background: #146847;
    border-color: #146847;
  }

  .hero {
    padding-top: 97px;
  }

  .hero-media,
  .hero-wash {
    inset: 97px 0 0;
  }

  .inner-page main {
    padding-top: 97px;
  }

  .section-anchor {
    scroll-margin-top: 97px;
  }

  .footer-cta {
    grid-template-columns: 1fr auto;
    gap: 24px 38px;
  }

  .footer-cta-points {
    grid-column: 1 / -1;
    grid-template-columns: repeat(3, 1fr);
  }

  .footer-main {
    grid-template-columns: 1fr 1fr;
  }

  .footer-qr {
    grid-column: 1 / -1;
  }
}

@media (max-width: 700px) {
  .header-utility {
    display: none;
  }

  .header-inner {
    min-height: 72px;
  }

  .brand {
    width: 138px;
  }

  .site-nav {
    top: 72px;
    padding: 18px 14px 30px;
  }

  .language-switch {
    min-width: 76px;
  }

  .lang-button {
    min-width: 32px;
  }

  .hero {
    padding-top: 72px;
  }

  .hero-media,
  .hero-wash {
    inset: 72px 0 0;
  }

  .inner-page main {
    padding-top: 72px;
  }

  .section-anchor {
    scroll-margin-top: 72px;
  }

  .footer-cta {
    grid-template-columns: 1fr;
    gap: 24px;
    padding-block: 42px 36px;
  }

  .footer-cta h2 {
    font-size: 1.65rem;
  }

  .footer-cta-points {
    grid-column: auto;
    grid-template-columns: 1fr;
  }

  .footer-cta-link {
    width: 100%;
  }

  .footer-main {
    grid-template-columns: 1fr;
    gap: 34px;
    padding-block: 38px 34px;
  }

  .footer-qr {
    grid-column: auto;
  }

  .footer-nav-links {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .footer-bottom {
    min-height: 70px;
    align-items: flex-start;
    flex-direction: column;
    justify-content: center;
    gap: 2px;
    padding-block: 10px;
  }
}

/* Only the decorative backgrounds change; the hero copy stays in place. */
.home-hero .hero-slides { background: none; overflow: hidden; }
.hero-slide { position: absolute; inset: 0; background: url('../assets/images/aiyu-factory-hero.png') center / cover no-repeat; opacity: 0; transition: opacity 1100ms ease; }
.hero-slide.is-active { opacity: 1; }
.hero-slide-garden { background-image: url('../assets/images/hero-cat-garden.png'); background-position: right center; }
.hero-slide-ragdoll { background-image: url('../assets/images/hero-cat-ragdoll.png?v=20260911-ragdoll'); background-position: right center; }
.hero-carousel-controls { display: flex; align-items: center; gap: 8px; margin-top: 24px; }
.hero-carousel-controls button { display: grid; place-items: center; width: 36px; height: 44px; padding: 0; border: 0; background: transparent; cursor: pointer; border-radius: 50%; }
.hero-carousel-controls button span { width: 17px; height: 6px; background: #789686; border-radius: 999px; transition: width 200ms ease, background-color 200ms ease; }
.hero-carousel-controls button[aria-pressed='true'] span { width: 30px; background: #146847; }
.hero-carousel-controls button:focus-visible { outline: 2px solid #146847; outline-offset: 2px; }
@media (max-width: 700px) {
  .home-hero { min-height: 1050px; }
  .home-hero .hero-inner { padding-top: 58px; padding-bottom: 470px; }
  .home-hero .hero-slide { background-size: auto 340px; background-position: right bottom; bottom: 140px; background-color: #f8f7f2; }
  .home-hero .hero-wash { background: linear-gradient(180deg, #f8f7f2 0%, #f8f7f2 46%, transparent 66%); }
  .hero-carousel-controls { margin-top: 14px; }
}
@media (prefers-reduced-motion: reduce) {
  .hero-slide, .hero-carousel-controls button span { transition: none; }
}

/* Factory profile: a restrained editorial rail for the production images. */
.page-factory .factory-profile-grid {
  align-items: stretch;
}

.page-factory .factory-photo {
  position: relative;
  top: auto;
  align-self: stretch;
  aspect-ratio: auto;
}

.page-factory .factory-photo img {
  height: 100%;
  min-height: 0;
}

.page-factory .factory-copy,
html[data-language="en"] .page-factory .factory-copy {
  min-width: 0;
  min-height: 0;
  display: flex;
  flex-direction: column;
}

.page-factory .factory-profile-gallery {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1.3fr) repeat(2, minmax(0, 0.85fr));
  gap: clamp(10px, 1.25vw, 18px);
  margin-top: auto;
  padding-top: clamp(42px, 4.2vw, 60px);
}

.page-factory .factory-profile-gallery::before,
.page-factory .factory-profile-gallery::after {
  content: "";
  position: absolute;
  left: 0;
  top: clamp(19px, 2.1vw, 28px);
}

.page-factory .factory-profile-gallery::before {
  right: 0;
  height: 1px;
  background: rgb(29 83 57 / 15%);
}

.page-factory .factory-profile-gallery::after {
  width: clamp(54px, 7vw, 86px);
  height: 2px;
  background: var(--green-deep);
  transform: translateY(-1px);
}

.page-factory .factory-profile-gallery-item {
  position: relative;
  min-width: 0;
  height: clamp(172px, 15vw, 214px);
  overflow: hidden;
  background: #e5eee7;
  border-radius: 16px 16px 4px 16px;
  box-shadow:
    5px 6px 0 #dce9de,
    0 0 0 1px rgb(24 75 51 / 12%);
}

.page-factory .factory-profile-gallery-item:nth-child(n + 2) {
  border-radius: 12px 12px 3px 12px;
}

.page-factory .factory-profile-gallery-item img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  filter: saturate(0.91) contrast(0.99);
  transform: scale(1.001);
  transition: transform 420ms cubic-bezier(0.22, 1, 0.36, 1), filter 420ms ease;
}

.page-factory .factory-profile-gallery-item:nth-child(1) img {
  object-position: 65% center;
}

.page-factory .factory-profile-gallery-item:nth-child(2) img {
  object-position: 50% center;
}

.page-factory .factory-profile-gallery-item:nth-child(3) img {
  object-position: center 52%;
}

@media (hover: hover) and (prefers-reduced-motion: no-preference) {
  .page-factory .factory-profile-gallery-item:hover img {
    filter: saturate(1) contrast(1);
    transform: scale(1.035);
  }
}

@media (max-width: 940px) {
  .page-factory .factory-profile-grid {
    align-items: start;
  }

  .page-factory .factory-photo {
    align-self: start;
    aspect-ratio: 1.15 / 1;
  }

  .page-factory .factory-profile-gallery {
    margin-top: 40px;
    padding-top: 52px;
  }

  .page-factory .factory-profile-gallery::before,
  .page-factory .factory-profile-gallery::after {
    top: 24px;
  }

  .page-factory .factory-profile-gallery-item {
    height: clamp(160px, 24vw, 210px);
  }
}

@media (max-width: 700px) {
  .page-factory .factory-profile-gallery {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 8px;
    margin-top: 32px;
    padding-top: 0;
  }

  .page-factory .factory-profile-gallery::before,
  .page-factory .factory-profile-gallery::after {
    display: none;
  }

  .page-factory .factory-profile-gallery-item,
  .page-factory .factory-profile-gallery-item:nth-child(n + 2) {
    height: auto;
    aspect-ratio: 0.92 / 1;
    border-radius: 10px 10px 3px 10px;
    box-shadow:
      3px 4px 0 #dce9de,
      0 0 0 1px rgb(24 75 51 / 12%);
  }
}

/* Responsive tuning: homepage and shared inner-page presentation. */
@media (max-width: 940px) {
  .section {
    padding-block: 82px;
  }

  .home-section-heading {
    margin-bottom: 40px;
  }

  .home-advantages .home-advantage-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
  }

  .home-advantages .home-advantage-grid article,
  .home-advantages .home-advantage-grid article:first-child,
  .home-advantages .home-advantage-grid article:last-child {
    min-height: 250px;
    padding: 28px 26px;
    border: 1px solid #dce5df;
    border-radius: 18px 18px 5px 18px;
  }

  .page-hero {
    min-height: 460px;
  }

  .page-hero-inner {
    min-height: 460px;
    width: min(var(--container), calc(100% - 40px));
    padding-block: 68px;
  }

  .page-hero-inner h1 {
    max-width: 68%;
    font-size: clamp(2.65rem, 6.2vw, 3.5rem);
  }

  .page-hero-inner > p:last-child {
    max-width: 58%;
    font-size: 1rem;
    line-height: 1.68;
  }

  .page-hero-inner::after {
    right: -16%;
    width: 76%;
    opacity: 0.82;
  }
}

@media (max-width: 700px) {
  .section,
  .inner-page .section {
    padding-block: 72px;
  }

  .home-hero {
    min-height: 970px;
  }

  .home-hero .hero-inner {
    padding-top: 50px;
    padding-bottom: 410px;
  }

  .home-hero .eyebrow {
    margin-bottom: 16px;
    font-size: 0.78rem;
    line-height: 1.42;
    letter-spacing: 0.08em;
  }

  .home-hero h1 {
    margin-bottom: 20px;
    font-size: clamp(2.8rem, 12.2vw, 3.25rem);
    line-height: 1.08;
  }

  html[lang="en"] .page-home .home-hero h1 {
    font-size: clamp(1.875rem, 8vw, 2.5rem);
  }

  html[lang="en"] .page-home .home-hero h1 strong::after {
    display: none;
  }

  .home-hero .hero-description {
    max-width: 100%;
    margin-bottom: 24px;
    font-size: 1rem;
    line-height: 1.72;
  }

  .home-hero .hero-actions {
    width: 100%;
    max-width: none;
    align-items: stretch;
    flex-direction: row;
    flex-wrap: nowrap;
    gap: 9px;
  }

  .home-hero .hero-actions .button {
    min-width: 0;
    min-height: 50px;
    flex: 1 1 0;
    gap: 7px;
    padding-inline: 9px;
    font-size: clamp(0.78rem, 3.3vw, 0.88rem);
    white-space: nowrap;
  }

  .home-hero .hero-actions .button svg {
    width: 17px;
    flex: 0 0 17px;
  }

  .home-hero .hero-slide {
    bottom: 112px;
    background-size: auto clamp(292px, 84vw, 326px);
  }

  .home-hero .hero-wash {
    background: linear-gradient(180deg, #f8f7f2 0%, #f8f7f2 47%, rgb(248 247 242 / 78%) 55%, transparent 70%);
  }

  .home-hero .hero-carousel-controls {
    margin-top: 10px;
  }

  .home-hero .proof-item {
    min-height: 112px;
    padding: 18px 8px;
  }

  .home-hero .proof-index {
    margin-bottom: 10px;
    font-size: clamp(2.35rem, 10.8vw, 2.7rem);
    line-height: 0.9;
  }

  .home-section-heading {
    gap: 12px;
    margin-bottom: 32px;
  }

  .home-section-heading > p {
    margin-top: 0;
    font-size: 0.94rem;
    line-height: 1.65;
  }

  .home-product-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
  }

  .home-product-card {
    min-height: 264px;
    padding: 17px 14px 16px;
    border-radius: 18px 18px 5px 18px;
  }

  .home-product-card > span {
    width: 50px;
    height: 50px;
  }

  .home-product-mark svg {
    width: 25px;
    height: 25px;
  }

  .home-product-card h3 {
    margin: 22px 0 8px;
    font-size: 1.08rem;
    line-height: 1.3;
  }

  .home-product-card p {
    max-width: none;
    font-size: 0.82rem;
    line-height: 1.55;
  }

  .home-product-card b {
    max-width: 11ch;
    font-size: 0.75rem;
    line-height: 1.3;
  }

  .home-product-feature {
    font-size: 0.85rem;
    margin: 0 0 8px;
  }

  .home-product-feature + p {
    line-height: 1.35;
  }

  .home-product-thumb {
    right: 11px;
    bottom: 11px;
    width: 76px;
    height: 76px;
    opacity: 0.6;
  }

  .home-advantages .home-advantage-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
  }

  .home-advantages .home-advantage-grid article,
  .home-advantages .home-advantage-grid article:first-child,
  .home-advantages .home-advantage-grid article:last-child {
    min-height: 270px;
    gap: 17px;
    padding: 21px 15px;
    border: 1px solid #dce5df;
    border-radius: 16px 16px 4px 16px;
  }

  .home-advantage-icon {
    width: 52px;
    height: 52px;
    box-shadow: 0 0 0 5px var(--advantage-ring), 0 7px 14px var(--advantage-shadow);
  }

  .home-advantage-icon::before {
    inset: 10px;
  }

  .home-advantage-icon svg {
    width: 23px;
    height: 23px;
  }

  .home-advantages .home-advantage-grid strong {
    margin-bottom: 9px;
    font-size: 1.03rem;
    line-height: 1.35;
  }

  .home-advantages .home-advantage-grid p {
    max-width: none;
    font-size: 0.82rem;
    line-height: 1.58;
  }

  .inner-page .eyebrow {
    font-size: 0.75rem;
    line-height: 1.45;
    letter-spacing: 0.09em;
  }

  .page-hero {
    min-height: 460px;
  }

  .page-hero-inner {
    min-height: 460px;
    width: min(var(--container), calc(100% - 28px));
    padding-block: 58px 64px;
  }

  .page-hero-inner h1 {
    max-width: 100%;
    margin-bottom: 19px;
    font-size: clamp(2.35rem, 10.4vw, 3rem);
    line-height: 1.1;
  }

  .page-hero-inner > p:last-child {
    max-width: 32ch;
    font-size: 1rem;
    line-height: 1.7;
  }

  .page-hero-inner::after {
    top: 24%;
    right: -30%;
    width: 105%;
    opacity: 0.58;
    background-position: 62% center;
  }
}

@media (max-width: 360px) {
  .home-hero h1 {
    font-size: 2.6rem;
  }

  .home-hero .hero-actions {
    gap: 7px;
  }

  .home-hero .hero-actions .button {
    padding-inline: 7px;
    font-size: 0.76rem;
  }

  .home-product-grid,
  .home-advantages .home-advantage-grid {
    gap: 8px;
  }

  .home-product-card {
    padding-inline: 12px;
  }

  .home-advantages .home-advantage-grid article,
  .home-advantages .home-advantage-grid article:first-child,
  .home-advantages .home-advantage-grid article:last-child {
    padding-inline: 13px;
  }
}

@media (max-width: 940px) {
  .home-hero .proof-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .home-hero .proof-item {
    min-width: 0;
    gap: 12px;
    padding-inline: 18px;
  }

  .home-hero .proof-item > div {
    min-width: 0;
  }

  .home-hero .proof-index {
    font-size: 3.3rem;
    line-height: 0.92;
  }

  .home-hero .proof-item strong {
    font-size: 1rem;
    line-height: 1.3;
  }

  .home-hero .proof-item small {
    font-size: 0.82rem;
    line-height: 1.45;
  }
}

@media (max-width: 700px) {
  .home-hero .proof-item {
    padding: 18px 8px;
  }

  .home-hero .proof-item strong {
    font-size: 0.82rem;
  }

  .home-hero .proof-item small {
    font-size: 0.66rem;
    line-height: 1.4;
  }
}


/* Mobile refinement: compact advantages, focused footer and split inner-page banners. */
@media (max-width: 700px) {
  .home-advantages .home-advantage-grid {
    grid-template-columns: minmax(0, 1fr);
    gap: 12px;
  }

  .home-advantages .home-advantage-grid article,
  .home-advantages .home-advantage-grid article:first-child,
  .home-advantages .home-advantage-grid article:last-child {
    min-height: 0;
    display: grid;
    grid-template-columns: 48px minmax(0, 1fr);
    align-items: start;
    gap: 16px;
    padding: 18px;
    border: 1px solid #dce5df;
    border-radius: 16px 16px 4px 16px;
  }

  .home-advantage-icon {
    width: 48px;
    height: 48px;
    box-shadow: 0 0 0 4px var(--advantage-ring), 0 7px 14px var(--advantage-shadow);
  }

  .home-advantage-icon::before {
    inset: 9px;
  }

  .home-advantage-icon svg {
    width: 21px;
    height: 21px;
  }

  .home-advantages .home-advantage-grid strong {
    margin-bottom: 5px;
    font-size: 1.05rem;
  }

  .home-advantages .home-advantage-grid p {
    font-size: 0.86rem;
    line-height: 1.58;
  }

  .site-footer .footer-main {
    grid-template-columns: minmax(0, 1fr);
    gap: 24px;
    padding-block: 32px 28px;
  }

  .site-footer .footer-brand-footer {
    grid-column: 1;
  }

  .site-footer .footer-nav-quick {
    display: none;
  }

  .site-footer .footer-qr {
    grid-column: 1;
    width: 100%;
    min-height: 132px;
    display: grid;
    grid-template-columns: 92px minmax(0, 1fr);
    gap: 20px;
    padding: 19px 20px;
    background: linear-gradient(135deg, rgb(255 255 255 / 6%), rgb(255 255 255 / 2%));
    border-color: rgb(255 255 255 / 11%);
  }

  .site-footer .qr-placeholder,
  .site-footer .footer-qr-image {
    width: 92px;
    height: 92px;
    flex-basis: 92px;
  }

  .site-footer .footer-qr > div:last-child {
    gap: 8px;
  }

  .site-footer .footer-qr strong {
    font-size: 0.9rem;
    line-height: 1.45;
  }

  .site-footer .footer-qr p {
    max-width: none;
    font-size: 0.76rem;
    line-height: 1.6;
  }

  .inner-page .page-hero {
    min-height: 640px;
    align-items: stretch;
    isolation: isolate;
  }

  .inner-page .page-hero::before {
    display: none;
  }

  .inner-page .page-hero::after {
    right: 22px;
    bottom: 264px;
    width: 36px;
    height: 36px;
  }

  .inner-page .page-hero-inner {
    min-height: 640px;
    width: min(var(--container), calc(100% - 28px));
    padding: 46px 0 294px;
  }

  .inner-page .page-hero-inner h1 {
    max-width: 12ch;
    margin-bottom: 17px;
    font-size: clamp(2.15rem, 10vw, 2.55rem);
    line-height: 1.08;
  }

  .inner-page .page-hero-inner > p:last-child {
    max-width: 34ch;
    color: #3e574b;
    font-size: 0.95rem;
    line-height: 1.7;
  }

  .inner-page .page-hero-inner::after {
    top: auto;
    right: -14px;
    bottom: 0;
    left: -14px;
    width: auto;
    height: 280px;
    background-position: 72% center;
    background-size: cover;
    border-radius: 22px 22px 0 0;
    opacity: 1;
    -webkit-mask-image: linear-gradient(180deg, transparent 0%, #000 27%, #000 100%);
    mask-image: linear-gradient(180deg, transparent 0%, #000 27%, #000 100%);
  }

  html[lang="en"] .inner-page .page-hero-inner h1 {
    max-width: 100%;
    font-size: clamp(2rem, 9.5vw, 2.35rem);
  }
}


/* Mobile banner refinement: immersive image with controlled text contrast. */
@media (max-width: 700px) {
  .page-about .page-hero {
    --mobile-banner-rgb: 242 245 255;
  }

  .page-factory .page-hero {
    --mobile-banner-rgb: 238 248 241;
  }

  .page-products .page-hero {
    --mobile-banner-rgb: 241 245 255;
  }

  .page-solutions .page-hero {
    --mobile-banner-rgb: 243 240 255;
  }

  .page-contact .page-hero {
    --mobile-banner-rgb: 255 249 221;
  }

  .inner-page .page-hero {
    min-height: 560px;
  }

  .inner-page .page-hero::after {
    z-index: 3;
    right: 22px;
    bottom: 24px;
    width: 34px;
    height: 34px;
    box-shadow: 0 8px 24px rgb(85 65 0 / 14%);
  }

  .inner-page .page-hero-inner {
    min-height: 560px;
    display: flex;
    align-items: flex-start;
    justify-content: flex-start;
    flex-direction: column;
    padding: 48px 0 46px;
  }

  .inner-page .page-hero-inner::after {
    z-index: -2;
    inset: 0 -14px;
    width: auto;
    height: auto;
    background-position: 72% center;
    background-size: cover;
    border-radius: 0;
    -webkit-mask-image: none;
    mask-image: none;
  }

  .inner-page .page-hero-inner::before {
    content: "";
    position: absolute;
    z-index: -1;
    inset: 0 -14px;
    background:
      linear-gradient(
        180deg,
        rgb(var(--mobile-banner-rgb) / 88%) 0%,
        rgb(var(--mobile-banner-rgb) / 76%) 42%,
        rgb(var(--mobile-banner-rgb) / 48%) 72%,
        rgb(var(--mobile-banner-rgb) / 20%) 100%
      ),
      linear-gradient(90deg, rgb(255 255 255 / 42%) 0%, rgb(255 255 255 / 8%) 74%, transparent 100%);
    pointer-events: none;
  }

  .inner-page .page-hero-inner .eyebrow {
    width: fit-content;
    margin-bottom: 17px;
    padding: 6px 9px;
    background: rgb(var(--mobile-banner-rgb) / 68%);
    border: 1px solid rgb(255 255 255 / 48%);
    border-radius: 999px;
    backdrop-filter: blur(4px);
  }

  .inner-page .page-hero-inner h1 {
    max-width: 12ch;
    color: #10241b;
    text-shadow: 0 1px 0 rgb(255 255 255 / 65%), 0 8px 30px rgb(var(--mobile-banner-rgb) / 78%);
  }

  .inner-page .page-hero-inner > p:last-child {
    max-width: 34ch;
    padding: 12px 14px;
    color: #294438;
    background: rgb(var(--mobile-banner-rgb) / 70%);
    border: 1px solid rgb(255 255 255 / 44%);
    border-left: 3px solid rgb(20 104 71 / 72%);
    border-radius: 3px 13px 13px 3px;
    box-shadow: 0 12px 30px rgb(20 46 33 / 8%);
    backdrop-filter: blur(5px);
  }

  html[lang="en"] .inner-page .page-hero-inner h1 {
    max-width: 100%;
  }

  .page-about .page-hero-inner::after {
    background-position: 74% center;
  }

  .page-factory .page-hero-inner::after,
  .page-products .page-hero-inner::after {
    background-position: 72% center;
  }

  .page-solutions .page-hero-inner::after {
    background-position: 68% center;
  }

  .page-contact .page-hero-inner::after {
    background-position: 70% center;
  }
}


/* Mobile banner refinement: shorter composition without feathering or accent dot. */
@media (max-width: 700px) {
  .inner-page .page-hero {
    min-height: 500px;
  }

  .inner-page .page-hero::after {
    display: none;
  }

  .inner-page .page-hero-inner {
    min-height: 500px;
    padding: 40px 0 36px;
  }

  .inner-page .page-hero-inner::before {
    background: rgb(var(--mobile-banner-rgb) / 58%);
  }
}


/* Mobile banner refinement: compact distant crop and wider company-profile heading. */
@media (max-width: 700px) {
  .inner-page .page-hero {
    min-height: 280px;
  }

  .inner-page .page-hero-inner {
    min-height: 280px;
    padding: 22px 0;
  }

  .inner-page .page-hero-inner::after {
    background-position: right center;
    background-size: auto 100%;
  }

  .inner-page .page-hero-inner::before {
    background: rgb(var(--mobile-banner-rgb) / 28%);
  }

  .inner-page .page-hero-inner .eyebrow {
    margin-bottom: 10px;
    padding: 4px 7px;
    font-size: 0.68rem;
    line-height: 1.35;
  }

  .inner-page .page-hero-inner h1,
  html[lang="en"] .inner-page .page-hero-inner h1 {
    max-width: 100%;
    margin-bottom: 10px;
    font-size: clamp(1.65rem, 7.3vw, 1.85rem);
    line-height: 1.08;
  }

  .inner-page .page-hero-inner > p:last-child {
    max-width: 34ch;
    padding: 9px 11px;
    font-size: 0.82rem;
    line-height: 1.55;
  }

  .page-about .about-profile-copy h2 {
    width: 100%;
    max-width: none;
    font-size: clamp(2rem, 8.8vw, 2.18rem);
    line-height: 1.16;
  }
}


/* Mobile spacing refinement: natural homepage artwork and tighter section rhythm. */
@media (max-width: 700px) {
  .section,
  .inner-page .section {
    padding-block: 52px;
  }

  .home-section-heading {
    margin-bottom: 24px;
  }

  .home-hero {
    min-height: 950px;
  }

  .home-hero .hero-inner {
    padding-bottom: 390px;
  }

  .home-hero .hero-slide {
    background-size: auto clamp(328px, 92vw, 350px);
  }

  .home-hero .hero-wash {
    display: none;
  }

  .home-hero .hero-carousel-controls {
    margin-top: 6px;
  }
}


/* Mobile Chinese banner titles: break at the original comma without showing it. */
@media (max-width: 700px) {
  html[lang="zh-CN"] :is(.page-factory, .page-products, .page-solutions) .page-hero-inner h1[data-mobile-zh-line-1] {
    font-size: 0;
    line-height: 0;
  }

  html[lang="zh-CN"] :is(.page-factory, .page-products, .page-solutions) .page-hero-inner h1[data-mobile-zh-line-1]::before,
  html[lang="zh-CN"] :is(.page-factory, .page-products, .page-solutions) .page-hero-inner h1[data-mobile-zh-line-1]::after {
    display: block;
    font-size: clamp(1.65rem, 7.3vw, 1.85rem);
    line-height: 1.08;
  }

  html[lang="zh-CN"] :is(.page-factory, .page-products, .page-solutions) .page-hero-inner h1[data-mobile-zh-line-1]::before {
    content: attr(data-mobile-zh-line-1);
  }

  html[lang="zh-CN"] :is(.page-factory, .page-products, .page-solutions) .page-hero-inner h1[data-mobile-zh-line-1]::after {
    content: attr(data-mobile-zh-line-2);
  }
}

/* Product-centre cards: swap the existing 03 / 06 surfaces without changing imagery or copy. */
.page-products .catalog-list #blended {
  background: #96efd0;
}

.page-products .catalog-list #bentonite {
  background: var(--white);
}

/* Factory profile: world-map background with the existing bilingual heading. */
.page-factory .factory-profile-grid.factory-profile-map {
  position: relative;
  display: flex;
  align-items: center;
  min-height: clamp(360px, 37vw, 490px);
  padding: clamp(44px, 6vw, 86px);
  overflow: hidden;
  isolation: isolate;
  border: 1px solid rgb(29 83 57 / 14%);
  border-radius: 28px 28px 6px 28px;
  background-color: #f3f8f3;
  background-image: url("../assets/images/factory-world-map.png");
  background-repeat: no-repeat;
  background-position: 58% center;
  background-size: cover;
}

.page-factory .factory-profile-map::before {
  content: "";
  position: absolute;
  z-index: 0;
  inset: 0;
  background: linear-gradient(
    90deg,
    rgb(255 255 255 / 96%) 0%,
    rgb(255 255 255 / 89%) 37%,
    rgb(255 255 255 / 54%) 56%,
    rgb(255 255 255 / 10%) 78%,
    rgb(255 255 255 / 2%) 100%
  );
}

.page-factory .factory-profile-map .factory-copy,
html[data-language="en"] .page-factory .factory-profile-map .factory-copy {
  position: relative;
  z-index: 1;
  width: min(100%, 660px);
  max-width: 660px;
  margin: 0;
  align-self: center;
}

.page-factory .factory-profile-map .factory-copy .eyebrow {
  margin-bottom: 16px;
}

@media (max-width: 940px) {
  .page-factory .factory-profile-grid.factory-profile-map {
    min-height: clamp(370px, 55vw, 500px);
    padding: clamp(42px, 7vw, 68px);
    background-position: 62% center;
  }
}

@media (max-width: 700px) {
  .page-factory .factory-profile-grid.factory-profile-map {
    align-items: flex-start;
    min-height: 370px;
    padding: 34px 28px;
    background-position: 61% center;
  }

  .page-factory .factory-profile-map::before {
    background: linear-gradient(
      180deg,
      rgb(255 255 255 / 98%) 0%,
      rgb(255 255 255 / 91%) 42%,
      rgb(255 255 255 / 38%) 74%,
      rgb(255 255 255 / 12%) 100%
    );
  }

  .page-factory .factory-profile-map .factory-copy {
    width: 100%;
    align-self: flex-start;
  }
}

/* Factory profile refinement: a soft powder-blue cartographic wash. */
.page-factory .factory-profile-grid.factory-profile-map {
  border: 0;
  border-radius: 0;
  background: #eaf6ff;
}

.page-factory .factory-profile-map::before {
  pointer-events: none;
  background: url("../assets/images/factory-world-map.png") 58% center / cover no-repeat;
  opacity: 0.62;
  filter: grayscale(0.46) hue-rotate(82deg) saturate(0.58) contrast(1.08) brightness(1.03);
  -webkit-mask-image: linear-gradient(90deg, transparent 0%, #000 12%, #000 83%, transparent 100%);
  -webkit-mask-repeat: no-repeat;
  -webkit-mask-size: 100% 100%;
  mask-image: linear-gradient(90deg, transparent 0%, #000 12%, #000 83%, transparent 100%);
  mask-repeat: no-repeat;
  mask-size: 100% 100%;
}

.page-factory .factory-profile-map::after {
  content: "";
  position: absolute;
  z-index: 1;
  inset: 0;
  pointer-events: none;
  background:
    radial-gradient(ellipse at 72% 48%, rgb(72 140 194 / 10%) 0%, transparent 40%),
    radial-gradient(ellipse at 88% 14%, rgb(234 246 255 / 84%) 0%, transparent 46%),
    linear-gradient(
      90deg,
      #eaf6ff 0%,
      rgb(234 246 255 / 96%) 18%,
      rgb(234 246 255 / 78%) 38%,
      rgb(234 246 255 / 34%) 61%,
      rgb(234 246 255 / 67%) 84%,
      #eaf6ff 100%
    );
}

.page-factory .factory-profile-map .factory-copy,
html[data-language="en"] .page-factory .factory-profile-map .factory-copy {
  z-index: 2;
}

@media (max-width: 940px) {
  .page-factory .factory-profile-map::before {
    background-position: 62% center;
  }
}

@media (max-width: 700px) {
  .page-factory .factory-profile-map::before {
    background-position: 61% center;
    -webkit-mask-image: linear-gradient(180deg, transparent 0%, #000 18%, #000 82%, transparent 100%);
    mask-image: linear-gradient(180deg, transparent 0%, #000 18%, #000 82%, transparent 100%);
  }

  .page-factory .factory-profile-map::after {
    background:
      radial-gradient(ellipse at 54% 70%, rgb(72 140 194 / 8%) 0%, transparent 46%),
      linear-gradient(
        180deg,
        #eaf6ff 0%,
        rgb(234 246 255 / 86%) 31%,
        rgb(234 246 255 / 38%) 66%,
        #eaf6ff 100%
      );
  }
}
