/* Inner pages rebuilt against the agriculture case-study proportions. */
body:not(.home-page) main {
  overflow: hidden;
  background: #fff;
}

/* Shared newsletter restore: the home and every inner page use one footer
   module.  This is intentionally the final cascade so legacy page-specific
   variants cannot move the card over the section above it. */

/* v104: homepage newsletter follows the news/footer content axis. */

/* v105: use the same newsletter/footer content axis on every site page. */

/* v104: the homepage's green newsletter card follows the same content axis
   as the news and footer containers.  Keep this after the shared footer
   rules so the generic wide-card treatment cannot override it. */

/* All inner pages use the same compact, unboxed breadcrumb rhythm as About. */
.breadcrumb {
  border-bottom: 1px solid var(--line);
  background: transparent;
}

.breadcrumb .container,
.breadcrumb ul {
  min-height: 48px;
}

.breadcrumb ul {
  display: flex;
  align-items: center;
  gap: 0;
  color: #71817a;
  font-size: 14px;
  letter-spacing: .01em;
}

.breadcrumb li {
  display: inline-flex;
  align-items: center;
  gap: 0;
  line-height: 1.2;
}

.breadcrumb li:not(:last-child)::after {
  margin: 0 13px;
  color: #b7c3bd;
  content: '/';
  font-size: 14px;
  font-weight: 400;
  line-height: 1;
}

.breadcrumb a {
  color: #139a70;
  font-weight: 500;
  line-height: 1.2;
}

.breadcrumb li:last-child {
  color: #71817a;
}

body[data-page="blog"] main {
  overflow: clip;
}

.inner-v2-section {
  padding: 110px 0;
}

.inner-v2-soft {
  background: #f4f6f3;
}

.inner-v2-hero {
  position: relative;
  display: grid;
  width: calc(100% - 40px);
  min-height: 520px;
  margin: 0 auto;
  overflow: hidden;
  place-items: center;
  border-radius: 28px;
  background: #062a20;
}

.inner-v2-hero > img,
.inner-v2-hero-shade {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}

.inner-v2-hero > img {
  object-fit: cover;
  transform: scale(1.012);
}

.inner-v2-hero-shade {
  background: linear-gradient(90deg, rgba(4, 35, 26, .78), rgba(4, 35, 26, .48)), linear-gradient(180deg, rgba(4, 35, 26, .12), rgba(4, 35, 26, .34));
}

.inner-v2-hero-content {
  position: relative;
  z-index: 2;
  display: flex;
  max-width: 940px;
  flex-direction: column;
  align-items: center;
  text-align: center;
}

.inner-v2-hero h1,
.inner-v2-hero-title {
  max-width: 910px;
  margin: 0 0 22px;
  color: #fff;
  font-size: clamp(50px, 5.25vw, 76px);
  font-weight: 700;
  letter-spacing: -.06em;
  line-height: 1.02;
}

.inner-v2-hero p {
  max-width: 720px;
  margin: 0 0 32px;
  color: rgba(255, 255, 255, .82);
  font-size: 17px;
  line-height: 1.75;
}

.inner-v2-btn {
  display: inline-flex;
  min-height: 58px;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  padding: 0 24px;
  border: 1px solid var(--primary);
  color: var(--forest);
  background: var(--primary);
  font-size: 14px;
  font-weight: 750;
  transition: color .28s ease, background .28s ease, border-color .28s ease, transform .28s ease;
}

.inner-v2-btn i {
  font-size: 14px;
  transition: transform .28s ease;
}

.inner-v2-btn:hover {
  border-color: var(--forest);
  color: #fff;
  background: var(--forest);
  transform: translateY(-2px);
}

.inner-v2-btn:hover i {
  transform: translateX(5px);
}

.inner-v2-btn.is-light {
  border-color: var(--line);
  background: #fff;
}

.inner-v2-btn.is-light:hover {
  border-color: var(--primary);
  color: var(--forest);
  background: var(--primary);
}

.inner-v2-heading {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 48px;
  margin-bottom: 54px;
}

.inner-v2-heading > div:first-child {
  max-width: 820px;
}

.inner-v2-heading > div:first-child > span,
.inner-v2-kicker {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 18px;
  color: var(--primary);
  font-size: 12px;
  font-weight: 800;
  letter-spacing: .1em;
  text-transform: uppercase;
}

.inner-v2-heading > div:first-child > span::before,
.inner-v2-kicker::before {
  width: 34px;
  height: 1px;
  background: currentColor;
  content: '';
}

.inner-v2-heading h2,
.inner-v2-about-lead h2,
.inner-v2-summary h2,
.inner-v2-faq-copy h2,
.inner-v2-story-lead h2,
.inner-v2-spec-panel h2 {
  margin: 0;
  color: var(--forest);
  font-size: clamp(42px, 4vw, 60px);
  font-weight: 680;
  letter-spacing: -.055em;
  line-height: 1.06;
}

.inner-v2-heading p {
  max-width: 720px;
  margin: 20px 0 0;
  color: var(--muted);
  font-size: 16px;
  line-height: 1.75;
}

.inner-v2-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 42px 28px;
}

.inner-v2-card {
  min-width: 0;
}

.inner-v2-card-media {
  display: block;
  height: 360px;
  overflow: hidden;
  border-radius: 18px;
  background: #e8ece8;
}

.inner-v2-card-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform .65s cubic-bezier(.2,.7,.2,1);
}

.inner-v2-card:hover .inner-v2-card-media img {
  transform: scale(1.045);
}

.inner-v2-card-copy {
  position: relative;
  display: flex;
  width: calc(100% - 28px);
  min-height: 142px;
  align-items: flex-start;
  justify-content: space-between;
  gap: 22px;
  margin: -38px 0 0 14px;
  padding: 26px 24px;
  border-radius: 14px;
  background: #fff;
  box-shadow: 0 20px 42px rgba(7, 48, 36, .09);
}

.inner-v2-card-copy h3 {
  margin: 0 0 9px;
  color: var(--forest);
  font-size: 22px;
  line-height: 1.24;
}

.inner-v2-card-copy h3 a {
  color: inherit;
}

.inner-v2-card-copy p {
  margin: 0;
  color: var(--muted);
  font-size: 14px;
  line-height: 1.55;
}

.inner-v2-circle {
  display: grid;
  width: 46px;
  height: 46px;
  flex: 0 0 46px;
  margin-top: 2px;
  place-items: center;
  border-radius: 50%;
  color: var(--forest);
  background: var(--primary);
  transition: color .28s ease, background .28s ease, transform .28s ease;
}

.inner-v2-card:hover .inner-v2-circle {
  color: #fff;
  background: var(--forest);
  transform: rotate(-35deg);
}

.inner-v2-product-grid.is-three,
.inner-v2-post-grid.is-three {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.inner-v2-pagination {
  display: flex;
  justify-content: center;
  gap: 10px;
  margin-top: 58px;
}

.inner-v2-pagination a {
  display: grid;
  width: 48px;
  height: 48px;
  place-items: center;
  border: 1px solid var(--line);
  color: var(--forest);
  background: #fff;
  font-weight: 750;
  transition: color .25s, background .25s, border-color .25s;
}

.inner-v2-pagination a.active,
.inner-v2-pagination a:hover {
  border-color: var(--primary);
  background: var(--primary);
}

/* Case-site FAQ/form composition */
.inner-v2-faq {
  position: relative;
}

.inner-v2-faq-grid {
  display: grid;
}

.inner-v2-faq-copy > p {
  color: var(--muted);
}

.inner-v2-accordion button {
  display: flex;
  width: 100%;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  border: 0;
  color: var(--forest);
  background: transparent;
  text-align: left;
  font-weight: 750;
  cursor: pointer;
}

.inner-v2-accordion button b {
  font-size: 20px;
  font-weight: 500;
}

.inner-v2-accordion article > div {
  display: none;
}

.inner-v2-accordion article.is-open > div {
  display: block;
}

.inner-v2-accordion p {
  margin: 0;
  color: var(--muted);
}

.inner-v2-inquiry {
  color: #fff;
  background: var(--primary);
}

.inner-v2-inquiry h3 {
  margin: 0 0 8px;
  color: #fff;
}

.inner-v2-inquiry > p {
  margin: 0 0 24px;
}

.inner-v2-inquiry form {
  display: grid;
}

.inner-v2-inquiry input,
.inner-v2-inquiry textarea {
  width: 100%;
  border: 1px solid rgba(255,255,255,.22);
  outline: none;
  color: #fff;
  background: rgba(4, 72, 52, .09);
}

.inner-v2-inquiry textarea {
  resize: vertical;
}

.inner-v2-inquiry input::placeholder,
.inner-v2-inquiry textarea::placeholder {
  color: rgba(255,255,255,.78);
}

.inner-v2-inquiry button {
  display: inline-flex;
  width: max-content;
  align-items: center;
  gap: 26px;
  border: 0;
  color: var(--forest);
  background: #fff;
  font-weight: 750;
  cursor: pointer;
}

.inner-v2-faq-photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.inner-v2-cta {
  padding: 74px 0;
  color: #fff;
  background: var(--primary);
}

.inner-v2-cta > .container {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 48px;
}

.inner-v2-cta span {
  display: block;
  margin-bottom: 12px;
  color: rgba(4, 47, 35, .72);
  font-size: 12px;
  font-weight: 800;
  letter-spacing: .1em;
  text-transform: uppercase;
}

.inner-v2-cta h2 {
  max-width: 810px;
  margin: 0;
  color: var(--forest);
  font-size: clamp(40px, 4vw, 60px);
  line-height: 1.06;
}

/* Product detail */
.inner-v2-product-intro {
  background: #fff;
}

.inner-v2-product-detail {
  display: grid;
  grid-template-columns: minmax(0, 1.1fr) minmax(420px, .9fr);
  gap: 70px;
}

.inner-v2-gallery-main {
  overflow: hidden;
}

.inner-v2-thumbs {
  grid-template-columns: repeat(3, 1fr);
  gap: 12px;
  margin-top: 14px;
}

.inner-v2-thumbs button {
  height: 105px;
  padding: 0;
  overflow: hidden;
  border: 2px solid transparent;
  border-radius: 10px;
  background: transparent;
  cursor: pointer;
}

.inner-v2-thumbs button.active {
  border-color: var(--primary);
}

.inner-v2-summary > p {
  margin: 24px 0;
  color: var(--muted);
  font-size: 17px;
  line-height: 1.75;
}

.inner-v2-summary > ul,
.inner-v2-about-lead ul {
  display: grid;
  gap: 12px;
  margin: 0 0 30px;
  padding: 0;
  list-style: none;
}

.inner-v2-summary > ul li,
.inner-v2-about-lead li {
  position: relative;
  padding-left: 27px;
  color: var(--forest);
}

.inner-v2-summary > ul li::before,
.inner-v2-about-lead li::before {
  position: absolute;
  top: .2em;
  left: 0;
  display: grid;
  width: 18px;
  height: 18px;
  place-items: center;
  border-radius: 50%;
  color: #fff;
  background: var(--primary);
  content: '✓';
  font-size: 10px;
  font-weight: 900;
}

.inner-v2-meta {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1px;
  margin-top: 38px;
  background: var(--line);
}

.inner-v2-meta span {
  padding: 16px 12px;
  color: var(--forest);
  background: #f6f8f5;
  font-size: 13px;
  font-weight: 700;
}

.inner-v2-meta small {
  display: block;
  margin-bottom: 4px;
  color: var(--muted);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.inner-v2-spec-section {
  background: #f3f6f2;
}

.inner-v2-tab-nav {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  margin-bottom: 62px;
  border-radius: 8px;
  overflow: hidden;
  background: #fff;
  box-shadow: 0 16px 40px rgba(7, 48, 36, .07);
}

.inner-v2-tab-nav button {
  position: relative;
  min-height: 66px;
  border: 0;
  border-right: 1px solid var(--line);
  color: var(--forest);
  background: #fff;
  font-weight: 700;
  cursor: pointer;
}

.inner-v2-tab-nav button::before {
  position: absolute;
  top: 0;
  right: 0;
  left: 0;
  height: 3px;
  background: transparent;
  content: '';
}

.inner-v2-tab-nav button.active {
  color: var(--primary);
}

.inner-v2-tab-nav button.active::before {
  background: var(--primary);
}

.inner-v2-spec-panel {
  display: none;
  grid-template-columns: .85fr 1.15fr;
  gap: 90px;
}

.inner-v2-spec-panel.active {
  display: grid;
}

.inner-v2-spec-panel p {
  margin-top: 22px;
  color: var(--muted);
  line-height: 1.75;
}

.inner-v2-spec-panel ul {
  margin: 0;
  padding: 0;
  list-style: none;
}

.inner-v2-spec-panel li {
  display: grid;
  grid-template-columns: 140px 1fr;
  align-items: center;
  gap: 28px;
  border-bottom: 1px solid var(--line);
}

.inner-v2-spec-panel li span {
  color: var(--muted);
  font-size: 13px;
}

.inner-v2-spec-panel li strong {
  color: var(--forest);
  font-size: 14px;
}

.inner-v2-related-dark {
  padding: 104px 0;
  color: #fff;
  background: var(--forest);
}

.inner-v2-related-dark .inner-v2-heading h2,
.inner-v2-related-dark .inner-v2-heading p {
  color: #fff;
}

.inner-v2-service-mini {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  border-top: 1px solid rgba(255,255,255,.18);
  border-left: 1px solid rgba(255,255,255,.18);
}

.inner-v2-service-mini article {
  min-height: 260px;
  padding: 38px;
  border-right: 1px solid rgba(255,255,255,.18);
  border-bottom: 1px solid rgba(255,255,255,.18);
}

.inner-v2-service-mini span {
  display: block;
  margin-bottom: 44px;
  color: var(--primary);
  font-size: 13px;
  font-weight: 800;
}

.inner-v2-service-mini h3 {
  margin: 0 0 14px;
  color: #fff;
  font-size: 25px;
}

.inner-v2-service-mini p {
  color: rgba(255,255,255,.62);
  line-height: 1.65;
}

/* Service list: image-led, no icon tiles */
.inner-v2-services-page {
  background: var(--forest);
}

.inner-v2-services-page .inner-v2-heading h2,
.inner-v2-services-page .inner-v2-heading p {
  color: #fff;
}

.inner-v2-service-list {
  display: grid;
  gap: 28px;
}

.inner-v2-service-list article {
  display: grid;
  min-height: 410px;
  grid-template-columns: 1.05fr .95fr;
  overflow: hidden;
  border: 1px solid rgba(255,255,255,.16);
  border-radius: 20px;
}

.inner-v2-service-list article:nth-child(even) .inner-v2-service-image {
  order: 2;
}

.inner-v2-service-image {
  overflow: hidden;
}

.inner-v2-service-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform .7s ease;
}

.inner-v2-service-list article:hover img {
  transform: scale(1.04);
}

.inner-v2-service-list article > div {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
  padding: 54px;
}

.inner-v2-service-list article > div > span {
  margin-bottom: 28px;
  color: var(--primary);
  font-size: 15px;
  font-weight: 800;
}

.inner-v2-service-list h3 {
  margin: 0 0 18px;
  color: #fff;
  font-size: 36px;
}

.inner-v2-service-list h3 a {
  color: inherit;
}

.inner-v2-service-list p {
  max-width: 500px;
  margin: 0 0 28px;
  color: rgba(255,255,255,.64);
  line-height: 1.75;
}

/* Solution and case cards */
.inner-v2-projects {
  background: #f4f6f3;
}

.inner-v2-dark-projects {
  color: #fff;
  background: var(--forest);
}

.inner-v2-dark-projects .inner-v2-heading h2,
.inner-v2-dark-projects .inner-v2-heading p {
  color: #fff;
}

.inner-v2-project-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 28px;
}

.inner-v2-project-card a {
  position: relative;
  display: block;
  height: 440px;
  overflow: hidden;
  border-radius: 18px;
}

.inner-v2-project-card img,
.inner-v2-project-overlay {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}

.inner-v2-project-card img {
  object-fit: cover;
  transition: transform .7s ease;
}

.inner-v2-project-overlay {
  background: linear-gradient(180deg, transparent 40%, rgba(4,38,28,.9));
}

.inner-v2-project-card a > div {
  position: absolute;
  right: 28px;
  bottom: 28px;
  left: 28px;
  color: #fff;
}

.inner-v2-project-card small {
  color: var(--primary);
  font-size: 12px;
  font-weight: 800;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.inner-v2-project-card h3 {
  max-width: 300px;
  margin: 10px 54px 0 0;
  color: #fff;
  font-size: 27px;
  line-height: 1.2;
}

.inner-v2-project-arrow {
  position: absolute;
  right: 0;
  bottom: 0;
  display: grid;
  width: 46px;
  height: 46px;
  place-items: center;
  border: 1px solid rgba(255,255,255,.35);
  border-radius: 50%;
  transition: color .3s, background .3s, transform .3s;
}

.inner-v2-project-card:hover img {
  transform: scale(1.05);
}

.inner-v2-project-card:hover .inner-v2-project-arrow {
  color: var(--forest);
  background: var(--primary);
  transform: rotate(-35deg);
}

/* Case index uses the former image-led project-card treatment. */
.inner-v2-case-listing .inner-v2-project-card a {
  height: auto;
  aspect-ratio: 1.21 / 1;
}

.inner-v2-case-listing {
  background: #fff;
}

/* Solution index copies the homepage solution-story carousel. */
.inner-v2-solution-stories {
  overflow: hidden;
  background: #fff;
}

.inner-v2-solution-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 28px;
}

.inner-v2-solution-stories .solution-story-card {
  height: 100%;
  overflow: hidden;
  border: 0;
  border-radius: 4px;
  background: #f4f5f4;
  box-shadow: none;
  transition: transform .35s ease, box-shadow .35s ease;
}

.inner-v2-solution-stories .solution-story-card:hover {
  box-shadow: 0 18px 42px rgba(5, 47, 34, .09);
  transform: translateY(-5px);
}

.inner-v2-solution-stories .solution-story-card > a {
  display: block;
  aspect-ratio: 1.9 / 1;
  overflow: hidden;
}

.inner-v2-solution-stories .solution-story-card img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform .6s cubic-bezier(.2, .7, .2, 1);
}

.inner-v2-solution-stories .solution-story-card:hover img {
  transform: scale(1.035);
}

.inner-v2-solution-stories .solution-story-card > div {
  min-height: 205px;
  padding: 32px 36px 38px;
}

.inner-v2-solution-stories .solution-story-card h3 {
  margin: 0 0 14px;
  color: var(--forest);
  font-size: 25px;
  line-height: 1.2;
}

.inner-v2-solution-stories .solution-story-card p {
  margin: 0;
  color: #7b8983;
  font-size: 15px;
  line-height: 1.7;
}

@media (max-width: 1024px) {
  .inner-v2-solution-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 680px) {
  .inner-v2-solution-grid {
    grid-template-columns: 1fr;
  }
}

/* The footer portrait is a transparent cutout; keep its surrounding area clear. */
.newsletter-visual::after {
  display: none;
}

.inner-v2-dark-projects .inner-v2-pagination a:not(.active) {
  border-color: rgba(255,255,255,.22);
  color: #fff;
  background: transparent;
}

/* Shared plain detail page */
.inner-v2-story-lead {
  display: grid;
  grid-template-columns: 1.25fr .75fr;
  gap: 90px;
  align-items: end;
  margin-bottom: 54px;
}

.inner-v2-story-lead > p {
  margin: 0;
  color: var(--muted);
  font-size: 17px;
  line-height: 1.75;
}

.inner-v2-story-image {
  height: 610px;
  overflow: hidden;
  border-radius: 22px;
}

.inner-v2-story-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.inner-v2-story-body {
  width: min(100%, 920px);
  margin: 80px auto 0;
}

.inner-v2-story-body section {
  display: grid;
  grid-template-columns: 110px 1fr 1fr;
  gap: 42px;
  padding: 42px 0;
  border-top: 1px solid var(--line);
}

.inner-v2-story-body section > span {
  color: var(--primary);
  font-size: 12px;
  font-weight: 800;
  text-transform: uppercase;
}

.inner-v2-story-body h2 {
  margin: 0;
  color: var(--forest);
  font-size: 30px;
  line-height: 1.2;
}

.inner-v2-story-body p {
  margin: 0;
  color: var(--muted);
  line-height: 1.75;
}

.inner-v2-prevnext {
  display: grid;
  grid-template-columns: 1fr 1fr;
  margin-top: 62px;
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
}

.inner-v2-prevnext a {
  display: flex;
  min-height: 112px;
  flex-direction: column;
  justify-content: center;
  padding: 22px 34px;
  color: var(--forest);
}

.inner-v2-prevnext a + a {
  align-items: flex-end;
  border-left: 1px solid var(--line);
  text-align: right;
}

.inner-v2-prevnext small {
  margin-bottom: 8px;
  color: var(--primary);
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.inner-v2-prevnext strong {
  font-size: 18px;
}

/* About */
.inner-v2-about-lead {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 88px;
  align-items: center;
}

.inner-v2-about-collage {
  position: relative;
  min-height: 590px;
}

.inner-v2-about-collage img {
  position: absolute;
  object-fit: cover;
  border-radius: 18px;
}

.inner-v2-about-collage img:first-child {
  inset: 0 88px 80px 0;
  width: calc(100% - 88px);
  height: calc(100% - 80px);
}

.inner-v2-about-collage img:last-child {
  right: 0;
  bottom: 0;
  width: 48%;
  height: 48%;
  border: 9px solid #fff;
}

.inner-v2-about-lead > div:last-child > p {
  margin: 24px 0 28px;
  color: var(--muted);
  font-size: 17px;
  line-height: 1.75;
}

.inner-v2-impact {
  padding: 0 0 110px;
  background: #fff;
}

.inner-v2-impact .container {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 20px;
}

.inner-v2-impact article {
  min-height: 150px;
  padding: 30px;
  border-radius: 17px;
  color: #fff;
  background: var(--forest);
  box-shadow: 0 18px 42px rgba(7,48,36,.09);
}

.inner-v2-impact article:nth-child(odd) {
  color: var(--forest);
  background: var(--primary);
}

.inner-v2-impact strong,
.inner-v2-impact span {
  display: block;
}

.inner-v2-impact strong {
  margin-bottom: 28px;
  font-size: 31px;
  line-height: 1;
}

.inner-v2-impact span {
  opacity: .72;
  font-size: 12px;
  font-weight: 800;
  letter-spacing: .07em;
  text-transform: uppercase;
}

.inner-v2-value-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  border-top: 1px solid var(--line);
  border-left: 1px solid var(--line);
}

.inner-v2-value-grid article {
  min-height: 270px;
  padding: 32px;
  border-right: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  background: #fff;
}

.inner-v2-value-grid span {
  display: block;
  margin-bottom: 52px;
  color: var(--primary);
  font-weight: 800;
}

.inner-v2-value-grid h3 {
  margin: 0 0 14px;
  color: var(--forest);
  font-size: 24px;
}

.inner-v2-value-grid p {
  color: var(--muted);
  line-height: 1.65;
}

.inner-v2-factory {
  padding: 108px 0;
  color: #fff;
  background: var(--forest);
}

.inner-v2-factory .inner-v2-heading h2,
.inner-v2-factory .inner-v2-heading p {
  color: #fff;
}

.inner-v2-factory-grid {
  display: grid;
  grid-template-columns: 1.2fr .8fr .8fr;
  gap: 18px;
}

.inner-v2-factory-grid img {
  width: 100%;
  height: 410px;
  object-fit: cover;
  border-radius: 16px;
}

.inner-v2-history {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  border-top: 1px solid var(--line);
}

.inner-v2-history article {
  position: relative;
  padding: 40px 20px 0 0;
}

.inner-v2-history article::before {
  position: absolute;
  top: -6px;
  left: 0;
  width: 12px;
  height: 12px;
  border: 3px solid #fff;
  border-radius: 50%;
  background: var(--primary);
  box-shadow: 0 0 0 1px var(--primary);
  content: '';
}

.inner-v2-history strong,
.inner-v2-history span {
  display: block;
}

.inner-v2-history strong {
  margin-bottom: 8px;
  color: var(--forest);
  font-size: 28px;
}

.inner-v2-history span {
  color: var(--muted);
  font-size: 14px;
}

/* Case and blog category links mirror the Agriculture pricing switcher. */
.inner-v2-category-tabs {
  display: inline-flex;
  max-width: 100%;
  gap: 6px;
  margin: -18px 0 42px;
  padding: 8px;
  overflow-x: auto;
  border: 1px solid #d2d2d2;
  border-radius: 43px;
  background: #fff;
  scrollbar-width: none;
}

.inner-v2-category-tabs::-webkit-scrollbar {
  display: none;
}

.inner-v2-category-tabs a {
  display: flex;
  min-height: 41px;
  flex: 0 0 auto;
  align-items: center;
  justify-content: center;
  padding: 6px 22px;
  border-radius: 43px;
  color: #4d6559;
  font-size: 17px;
  font-weight: 400;
  line-height: 1.35;
  transition: color .25s ease, background-color .25s ease;
}

.inner-v2-category-tabs a.active,
.inner-v2-category-tabs a:hover {
  color: #fff;
  background: var(--primary);
}

.inner-v2-blog-home-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 30px;
}

@media (max-width: 1024px) {
  .inner-v2-blog-home-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 680px) {
  .inner-v2-blog-home-grid {
    grid-template-columns: 1fr;
  }
}

.inner-v2-post-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 30px;
}

.inner-v2-post {
  overflow: hidden;
  border-radius: 17px;
  background: #f4f6f3;
  transition: transform .35s ease, box-shadow .35s ease;
}

.inner-v2-post:hover {
  transform: translateY(-5px);
  box-shadow: 0 22px 48px rgba(7,48,36,.1);
}

.inner-v2-post-image {
  position: relative;
  display: block;
  height: 270px;
  overflow: hidden;
}

.inner-v2-post-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform .65s ease;
}

.inner-v2-post:hover img {
  transform: scale(1.045);
}

.inner-v2-post-image time {
  position: absolute;
  bottom: 0;
  left: 22px;
  display: inline-flex;
  height: 40px;
  min-height: 40px;
  align-items: center;
  justify-content: center;
  padding: 0 15px;
  color: var(--forest);
  background: var(--primary);
  font-size: 12px;
  font-weight: 800;
  line-height: 1;
  text-transform: uppercase;
}

.inner-v2-post > div {
  padding: 28px 28px 24px;
}

.inner-v2-post h3 {
  margin: 0 0 14px;
  color: var(--forest);
  font-size: 24px;
  line-height: 1.28;
}

.inner-v2-post h3 a {
  color: inherit;
}

.inner-v2-post p {
  min-height: 50px;
  margin: 0 0 24px;
  color: var(--muted);
  font-size: 14px;
  line-height: 1.65;
}

.inner-v2-post-footer {
  display: flex;
  min-height: 52px;
  align-items: flex-end;
  justify-content: space-between;
  gap: 16px;
  padding-top: 18px;
  border-top: 1px solid var(--line);
}

.inner-v2-post-footer span {
  color: var(--muted);
  font-size: 12px;
}

.inner-v2-post-footer a {
  color: var(--forest);
  font-size: 13px;
  font-weight: 800;
}

/* Blog detail */
.inner-v2-article-layout {
  display: grid;
  grid-template-columns: 270px minmax(0, 820px);
  justify-content: center;
  gap: 70px;
  align-items: start;
}

.inner-v2-article-layout > aside {
  position: sticky;
  top: 120px;
  display: flex;
  flex-direction: column;
  border: 1px solid var(--line);
}

.inner-v2-article-layout > aside > span {
  padding: 22px;
  color: var(--primary);
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.inner-v2-article-layout > aside > a {
  padding: 14px 22px;
  border-top: 1px solid var(--line);
  color: var(--forest);
  font-size: 13px;
  font-weight: 700;
}

.inner-v2-article-layout > aside > div {
  margin: 18px;
  padding: 24px;
  color: #fff;
  background: var(--forest);
}

.inner-v2-article-layout > aside > div strong {
  font-size: 18px;
}

.inner-v2-article-layout > aside > div p {
  color: rgba(255,255,255,.64);
  font-size: 13px;
  line-height: 1.6;
}

.inner-v2-article-layout > aside .inner-v2-btn {
  width: 100%;
  min-width: 0;
  min-height: 48px;
  padding: 0 14px;
}

.inner-v2-article-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 22px;
  margin-bottom: 24px;
  color: var(--primary);
  font-size: 12px;
  font-weight: 800;
  letter-spacing: .06em;
  text-transform: uppercase;
}

.inner-v2-article > img {
  width: 100%;
  height: 500px;
  object-fit: cover;
  border-radius: 18px;
}

.inner-v2-article .lead {
  margin: 34px 0;
  color: var(--forest);
  font-size: 20px;
  line-height: 1.7;
}

.inner-v2-article > section {
  padding: 18px 0;
}

.inner-v2-article h2 {
  margin: 0 0 18px;
  color: var(--forest);
  font-size: 36px;
  line-height: 1.15;
}

.inner-v2-article h3 {
  margin: 26px 0 10px;
  color: var(--forest);
  font-size: 22px;
}

.inner-v2-article p {
  color: var(--muted);
  line-height: 1.85;
}

.inner-v2-article-note {
  margin-top: 28px;
  padding: 32px;
  border-left: 4px solid var(--primary);
  background: #f4f6f3;
}

.inner-v2-article-note strong {
  color: var(--forest);
  font-size: 20px;
}

.inner-v2-article-note ul {
  display: grid;
  gap: 9px;
  margin: 18px 0 0;
  padding-left: 20px;
  color: var(--muted);
}

@media (max-width: 1100px) {
  .inner-v2-grid,
  .inner-v2-project-grid,
  .inner-v2-post-grid,
  .inner-v2-product-grid.is-three,
  .inner-v2-post-grid.is-three {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .inner-v2-product-detail,
  .inner-v2-about-lead {
    gap: 44px;
  }

  .inner-v2-faq-grid {
    grid-template-columns: minmax(0, 1fr) 390px;
  }

  .inner-v2-faq-photo {
    display: none;
  }

  .inner-v2-inquiry {
    width: 100%;
    margin: 0;
  }

  .inner-v2-service-list article > div {
    padding: 40px;
  }

  .inner-v2-impact .container,
  .inner-v2-value-grid {
    grid-template-columns: repeat(2, 1fr);
  }

  .inner-v2-history {
    grid-template-columns: repeat(3, 1fr);
    row-gap: 28px;
  }
}

@media (max-width: 820px) {
  .inner-v2-section,
  .inner-v2-faq,
  .inner-v2-factory,
  .inner-v2-related-dark {
    padding: 76px 0;
  }

  .inner-v2-hero {
    width: calc(100% - 24px);
    min-height: 480px;
    border-radius: 20px;
  }

  .inner-v2-hero h1,
  .inner-v2-hero-title {
    font-size: clamp(43px, 8vw, 60px);
  }

  .inner-v2-heading,
  .inner-v2-cta > .container {
    align-items: flex-start;
    flex-direction: column;
  }

  .inner-v2-product-detail,
  .inner-v2-about-lead,
  .inner-v2-spec-panel,
  .inner-v2-story-lead,
  .inner-v2-article-layout {
    grid-template-columns: 1fr;
    gap: 44px;
  }

  .inner-v2-gallery-main,
  .inner-v2-story-image {
    height: 500px;
  }

  .inner-v2-service-mini {
    grid-template-columns: 1fr;
  }

  .inner-v2-service-list article {
    grid-template-columns: 1fr;
  }

  .inner-v2-service-list article:nth-child(even) .inner-v2-service-image {
    order: 0;
  }

  .inner-v2-service-image {
    height: 330px;
  }

  .inner-v2-story-body section {
    grid-template-columns: 80px 1fr;
  }

  .inner-v2-story-body section p {
    grid-column: 2;
  }

  .inner-v2-about-collage {
    min-height: 500px;
  }

  .inner-v2-factory-grid {
    grid-template-columns: 1fr 1fr;
  }

  .inner-v2-factory-grid img:first-child {
    grid-column: 1 / -1;
  }

  .inner-v2-factory-grid img {
    height: 320px;
  }

  .inner-v2-article-layout > aside {
    position: static;
  }
}

@media (max-width: 620px) {
  .inner-v2-section,
  .inner-v2-faq,
  .inner-v2-factory,
  .inner-v2-related-dark {
    padding: 58px 0;
  }

  .inner-v2-hero {
    width: calc(100% - 16px);
    min-height: 430px;
    border-radius: 16px;
  }

  .inner-v2-hero-content {
    padding-right: 24px;
    padding-left: 24px;
  }

  .inner-v2-hero h1,
  .inner-v2-hero-title {
    margin-bottom: 18px;
    font-size: clamp(36px, 11.2vw, 50px);
    line-height: 1.02;
  }

  .inner-v2-hero p {
    margin-bottom: 25px;
    font-size: 14px;
    line-height: 1.65;
  }

  .inner-v2-btn {
    min-height: 52px;
  }

  .inner-v2-heading {
    gap: 24px;
    margin-bottom: 34px;
  }

  .inner-v2-heading h2,
  .inner-v2-about-lead h2,
  .inner-v2-summary h2,
  .inner-v2-faq-copy h2,
  .inner-v2-story-lead h2,
  .inner-v2-spec-panel h2,
  .inner-v2-cta h2 {
    font-size: clamp(34px, 9.5vw, 44px);
  }

  .inner-v2-grid,
  .inner-v2-project-grid,
  .inner-v2-post-grid,
  .inner-v2-product-grid.is-three,
  .inner-v2-post-grid.is-three,
  .inner-v2-impact .container,
  .inner-v2-value-grid,
  .inner-v2-history {
    grid-template-columns: 1fr;
  }

  .inner-v2-card-media {
    height: 310px;
  }

  .inner-v2-card-copy {
    width: calc(100% - 24px);
    min-height: 128px;
    margin: -28px 0 0 12px;
    padding: 22px 18px;
  }

  .inner-v2-card-copy h3 {
    font-size: 20px;
  }

  .inner-v2-faq-grid {
    grid-template-columns: 1fr;
    gap: 32px;
  }

  .inner-v2-faq-copy {
    padding: 0;
  }

  .inner-v2-inquiry {
    padding: 28px 22px;
  }

  .inner-v2-cta {
    padding: 54px 0;
  }

  .inner-v2-gallery-main,
  .inner-v2-story-image {
    height: 340px;
    border-radius: 14px;
  }

  .inner-v2-thumbs button {
    height: 72px;
  }

  .inner-v2-meta {
    grid-template-columns: 1fr;
  }

  .inner-v2-tab-nav {
    margin-bottom: 40px;
  }

  .inner-v2-tab-nav button {
    min-height: 58px;
    padding: 8px;
    font-size: 12px;
  }

  .inner-v2-spec-panel li {
    grid-template-columns: 92px 1fr;
    gap: 16px;
  }

  .inner-v2-service-list article {
    min-height: 0;
  }

  .inner-v2-service-image {
    height: 270px;
  }

  .inner-v2-service-list article > div {
    padding: 30px 22px;
  }

  .inner-v2-service-list h3 {
    font-size: 30px;
  }

  .inner-v2-project-card a {
    height: 390px;
  }

  .inner-v2-story-body {
    margin-top: 50px;
  }

  .inner-v2-story-body section {
    grid-template-columns: 1fr;
    gap: 14px;
    padding: 30px 0;
  }

  .inner-v2-story-body section p {
    grid-column: auto;
  }

  .inner-v2-prevnext {
    grid-template-columns: 1fr;
  }

  .inner-v2-prevnext a {
    min-height: 94px;
    padding: 20px 0;
  }

  .inner-v2-prevnext a + a {
    align-items: flex-start;
    border-top: 1px solid var(--line);
    border-left: 0;
    text-align: left;
  }

  .inner-v2-about-collage {
    min-height: 390px;
  }

  .inner-v2-about-collage img:first-child {
    right: 48px;
    bottom: 58px;
    width: calc(100% - 48px);
    height: calc(100% - 58px);
  }

  .inner-v2-impact {
    padding-bottom: 58px;
  }

  .inner-v2-impact article {
    min-height: 130px;
  }

  .inner-v2-value-grid article {
    min-height: 220px;
  }

  .inner-v2-factory-grid {
    grid-template-columns: 1fr;
  }

  .inner-v2-factory-grid img:first-child {
    grid-column: auto;
  }

  .inner-v2-factory-grid img {
    height: 280px;
  }

  .inner-v2-history {
    border-top: 0;
  }

  .inner-v2-history article {
    padding: 24px 0 24px 32px;
    border-left: 1px solid var(--line);
  }

  .inner-v2-history article::before {
    top: 32px;
    left: -6px;
  }

  .inner-v2-post-image {
    height: 250px;
  }

  .inner-v2-post-image time,
  .news-category {
    display: inline-flex;
    height: 40px;
    min-height: 40px;
    align-items: center;
    justify-content: center;
    padding-top: 0;
    padding-bottom: 0;
    line-height: 1;
  }

  .inner-v2-post > div {
    padding: 24px 20px 20px;
  }

  .inner-v2-post h3 {
    font-size: 22px;
  }

  .inner-v2-article-layout {
    gap: 34px;
  }

  .inner-v2-article > img {
    height: 300px;
    border-radius: 14px;
  }

  .inner-v2-article .lead {
    font-size: 17px;
  }

  .inner-v2-article h2 {
    font-size: 30px;
  }
}

/* Shared newsletter shell. */
.newsletter-card {
  left: 50%;
  width: min(calc(100vw - 80px), 1362px);
  max-width: 1362px;
  min-height: 270px;
  grid-template-columns: 420px minmax(0, 1fr);
  margin: 0 0 -70px;
  overflow: visible;
  border-radius: 30px;
  background-color: #43c879;
  background-image: linear-gradient(90deg, rgba(67,200,121,.94), rgba(67,200,121,.88)), url('../images/textile-collection.png');
  background-repeat: no-repeat;
  background-position: center 45%;
  background-size: cover;
  transform: translate(-50%, -50%);
}

.newsletter-visual {
  width: 390px;
  height: 350px;
  margin: -90px 0 0;
  overflow: hidden;
}

.newsletter-visual img {
  right: auto;
  bottom: -150px;
  left: 30px;
  width: auto;
  max-width: none;
  height: 500px;
  object-fit: contain;
  filter: drop-shadow(0 24px 22px rgba(4,34,25,.16));
}

.newsletter-content {
  padding: 38px 52px 38px 0;
}

.newsletter-card .newsletter-title {
  max-width: 820px;
  margin-bottom: 28px;
  color: #fff;
  font-size: clamp(36px, 3vw, 50px);
  letter-spacing: -.035em;
  white-space: normal;
}

.newsletter-card form {
  min-height: 70px;
  padding: 6px;
  overflow: hidden;
  border: 0;
  background: #fff;
  box-shadow: none;
}

.newsletter-card input,
.newsletter-card input:focus,
.newsletter-card input:focus-visible {
  min-height: 58px;
  border: 0;
  outline: 0;
  color: #31483f;
  background: transparent;
  box-shadow: none;
  -webkit-text-fill-color: #31483f;
}

.newsletter-card input::placeholder {
  color: #7d8c86;
  opacity: 1;
}

.newsletter-card button,
.newsletter-card button:hover {
  min-width: 210px;
  min-height: 58px;
  border: 0;
  color: #fff;
  background: #2fb56a;
}

.newsletter-card button:hover {
  background: #082f23;
}

.footer-grid {
  padding-top: 34px;
}

@media (max-width: 1180px) {
  .newsletter-card {
    width: calc(100vw - 48px);
    grid-template-columns: 440px minmax(0, 1fr);
    margin-right: 0;
    margin-left: 0;
  }

  .newsletter-visual {
    width: 440px;
    height: 330px;
    margin-top: -72px;
  }

  .newsletter-visual img {
    bottom: -120px;
    left: 70px;
    height: 430px;
  }

  .newsletter-content {
    padding-right: 36px;
  }
}

@media (max-width: 1024px) {
  .site-footer > .container {
    width: calc(100% - 48px);
  }

  .newsletter-card {
    width: 100%;
  }
}

@media (max-width: 768px) {
  .newsletter-card {
    width: calc(100vw - 32px);
    min-height: 285px;
    grid-template-columns: 1fr;
    padding-top: 0;
    border-radius: 22px;
  }

  .newsletter-visual {
    display: none;
  }

  .newsletter-content {
    display: flex;
    min-height: 285px;
    flex-direction: column;
    justify-content: center;
    padding: 36px 20px 28px;
    text-align: center;
  }

  .newsletter-card .newsletter-title {
    margin-bottom: 22px;
    font-size: 28px;
    line-height: 1.12;
  }

  .newsletter-card form {
    display: grid;
    min-height: 0;
    gap: 8px;
    padding: 6px;
  }

  .newsletter-card button {
    width: 100%;
    min-width: 0;
  }

  .footer-grid {
    gap: 34px;
    padding-top: 18px;
    padding-bottom: 44px;
  }
}

/* Search listing: reuse the product-category card rhythm without a banner or
   result-count strip. */
.inner-v2-search-page {
  padding-top: 82px;
  padding-bottom: 108px;
}

.inner-v2-search-heading {
  max-width: 980px;
  margin-bottom: 42px;
  margin-right: auto;
  margin-left: auto;
  text-align: center;
}

.inner-v2-search-heading .inner-v2-kicker {
  display: inline-block;
  margin-bottom: 14px;
  color: var(--primary-hover);
  font-size: 12px;
  font-weight: 800;
  letter-spacing: .12em;
  text-transform: uppercase;
}

.inner-v2-search-heading p {
  display: none;
}

.inner-v2-search-heading h1 {
  margin: 0 0 14px;
  color: var(--forest);
  font-size: clamp(38px, 4.6vw, 64px);
  letter-spacing: -.05em;
  line-height: 1.04;
}

.inner-v2-search-heading p {
  max-width: 680px;
  margin: 0;
  color: var(--muted);
  font-size: 18px;
  line-height: 1.65;
}

.inner-v2-search-page .search-page-form {
  width: min(850px, 100%);
  margin-bottom: 52px;
  margin-right: auto;
  margin-left: auto;
}

.inner-v2-search-page .inner-v2-search-grid {
  max-width: 1120px;
  margin-right: auto;
  margin-left: auto;
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.inner-v2-search-page .inner-v2-category-product-image {
  height: 300px;
}

.inner-v2-search-page .inner-v2-pagination {
  margin-top: 58px;
}

@media (max-width: 900px) and (min-width: 769px) {
  .inner-v2-search-page .inner-v2-search-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 768px) {
  .inner-v2-search-page {
    padding-top: 58px;
    padding-bottom: 78px;
  }

  .inner-v2-search-heading {
    margin-bottom: 30px;
  }

  .inner-v2-search-heading h1 {
    font-size: clamp(34px, 9vw, 46px);
  }

  .inner-v2-search-heading p {
    display: none;
  }

  .inner-v2-search-page .search-page-form {
    margin-bottom: 36px;
  }

  .inner-v2-search-page .inner-v2-category-product-image {
    height: auto;
    aspect-ratio: 1.35;
  }

  .inner-v2-search-page .inner-v2-search-grid {
    grid-template-columns: 1fr;
  }

  .inner-v2-search-page .inner-v2-pagination {
    margin-top: 42px;
  }
}

@media (max-width: 520px) {
  .site-footer > .container {
    width: calc(100% - 32px);
  }

  body:not(.home-page) .site-footer {
    margin-top: 143px;
  }
}

/* v117: reduce the oversized desktop gap between homepage news and footer. */
@media (min-width: 1181px) {
  html body.home-page .news-section {
    padding-bottom: 200px;
  }
}

/* Shared footer source of truth: keep homepage and inner pages identical. */

/* Raise specificity so page-specific legacy footer rules cannot diverge. */

html body[data-page] .site-footer .newsletter-card .newsletter-title {
  line-height: 1.06;
  line-height: 1.08;
}

@media (max-width: 1180px) {
  html body[data-page] .site-footer .newsletter-card {
    width: calc(100vw - 48px);
    grid-template-columns: 440px minmax(0, 1fr);
    margin-right: 0;
    margin-left: 0;
  }

  html body[data-page] .site-footer .newsletter-visual {
    width: 440px;
    height: 330px;
    margin-top: -72px;
  }

  html body[data-page] .site-footer .newsletter-visual img {
    bottom: -120px;
    left: 70px;
    height: 430px;
  }

  html body[data-page] .site-footer .newsletter-content {
    padding-right: 36px;
  }
}

@media (max-width: 1024px) {
  html body[data-page] .site-footer > .container {
    width: calc(100% - 48px);
  }

  html body[data-page] .site-footer .newsletter-card {
    width: 100%;
  }
}

@media (max-width: 768px) {
  html body[data-page] .site-footer {
    padding-top: 22px;
  }

  html body[data-page] .site-footer .newsletter-card {
    padding-top: 0;
  }

}

/* September inner-page review: tighter banners, distinct category page, demo3 product detail. */
body:not(.home-page) .inner-v2-hero h1,
body:not(.home-page) .inner-v2-hero-title {
  max-width: 840px;
  font-size: clamp(42px, 4.35vw, 64px);
  letter-spacing: -.052em;
}

.inner-v2-category-layout {
  display: grid;
  align-items: start;
}

.inner-v2-category-sidebar {
  position: sticky;
  top: 110px;
}

.inner-v2-category-sidebar > h2 {
  margin: 0;
  color: #fff;
  line-height: 1.2;
}

.inner-v2-category-list article {
  border-bottom: 1px solid #dfe6e1;
}

.inner-v2-category-list article:last-child {
  border-bottom: 0;
}

.inner-v2-category-list article > div {
  display: grid;
  align-items: stretch;
}

.inner-v2-category-list article > div > a {
  display: flex;
  align-items: center;
  font-weight: 750;
}

.inner-v2-category-list button {
  display: grid;
  place-items: center;
  border-left: 1px solid #dfe6e1;
  background: transparent;
  cursor: pointer;
}

.inner-v2-category-list button i {
  display: none;
}

.inner-v2-category-list button::before {
  content: '+';
  font-weight: 500;
  line-height: 1;
}

.inner-v2-category-list article.is-open button::before {
  content: '−';
}

.inner-v2-category-list nav {
  display: none;
}

.inner-v2-category-list article.is-open nav {
  display: grid;
}

.inner-v2-category-list nav a {
  border-left: 1px solid #cbd8d0;
  font-size: 13px;
}

.inner-v2-category-list nav a:hover {
  border-color: var(--primary);
}

.inner-v2-category-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 34px 28px;
}

.inner-v2-category-empty {
  display: grid;
  min-height: 220px;
  grid-column: 1 / -1;
  place-items: center;
  padding: 36px;
  border: 1px dashed #cbd8d0;
  border-radius: 18px;
  color: #708079;
  background: rgba(255, 255, 255, .58);
  text-align: center;
}

.inner-v2-category-empty p {
  margin: 0;
  font-size: 18px;
  line-height: 1.6;
}

.inner-v2-category-product {
  overflow: hidden;
  border: 1px solid #e1e7e2;
  border-radius: 18px;
  background: #fff;
  transition: box-shadow .32s ease, transform .32s ease;
}

.inner-v2-category-product:hover {
  box-shadow: 0 24px 54px rgba(7, 48, 36, .11);
  transform: translateY(-5px);
}

.inner-v2-category-product-image {
  display: block;
  height: 300px;
  overflow: hidden;
}

.inner-v2-category-product-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform .6s ease;
}

.inner-v2-category-product:hover img {
  transform: scale(1.045);
}

.inner-v2-category-product-copy {
  padding: 26px 27px 28px;
}

.inner-v2-category-product-copy h3 {
  margin: 0 0 11px;
  color: var(--forest);
  font-size: 23px;
  line-height: 1.25;
}

.inner-v2-category-product-copy h3 a {
  color: inherit;
}

.inner-v2-category-product-copy p {
  min-height: 46px;
  margin: 0 0 23px;
  color: var(--muted);
  font-size: 14px;
  line-height: 1.65;
}

.inner-v2-text-link {
  display: inline-flex;
  align-items: center;
  gap: 15px;
  color: var(--forest);
  font-size: 13px;
  font-weight: 800;
}

.inner-v2-text-link i {
  font-size: 18px;
  line-height: 1;
  transition: transform .25s ease;
}

.inner-v2-text-link:hover {
  color: var(--primary);
}

.inner-v2-text-link:hover i {
  transform: translateX(5px);
}

.inner-v2-product-detail,
.inner-v2-gallery,
.inner-v2-summary,
.inner-v2-gallery-main,
.inner-v2-thumbs {
  min-width: 0;
}

.inner-v2-thumbs {
  display: block;
}

.inner-v2-thumbs .swiper-wrapper {
  display: flex;
}

.inner-v2-thumbs button.swiper-slide {
  width: auto;
  flex: none;
  padding: 0;
  overflow: hidden;
  border: 2px solid transparent;
  cursor: pointer;
}

.inner-v2-thumbs .swiper-slide-thumb-active {
  border-color: var(--primary);
}

.inner-v2-product-actions {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.inner-v2-feature-list,
.inner-v2-download-list {
  display: grid;
  gap: 14px;
}

.inner-v2-feature-list article {
  display: grid;
  align-items: center;
  overflow: hidden;
  border: 1px solid var(--line);
  background: #fff;
}

.inner-v2-feature-list img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.inner-v2-feature-list h3 {
  margin: 0 0 9px;
  color: var(--forest);
}

.inner-v2-feature-list p {
  margin: 0;
  color: var(--muted);
  font-size: 14px;
  line-height: 1.65;
}

.inner-v2-download-list a {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 30px;
  color: var(--forest);
  font-weight: 750;
  transition: color .25s ease, background .25s ease, border-color .25s ease;
}

.inner-v2-download-list a:hover {
  color: var(--forest);
}

/* The inner detail service and news modules deliberately use the homepage structures. */
.inner-v2-home-service {
  color: #fff;
}

.inner-v2-home-service .section-head h2 {
  max-width: 790px;
  color: #fff;
  font-size: clamp(42px, 4vw, 60px);
  letter-spacing: -.055em;
  line-height: 1.06;
}

.inner-v2-home-service .service-showcase-body {
  display: grid;
  align-items: stretch;
}

.inner-v2-home-service .service-tabs {
  display: grid;
  align-content: stretch;
}

.inner-v2-home-news {
  background: #f5f7f5;
}

.inner-v2-home-news .section-head h2 {
  color: var(--forest);
  font-size: clamp(42px, 4vw, 60px);
  letter-spacing: -.055em;
  line-height: 1.06;
}

.inner-v2-home-news .news-card {
  overflow: hidden;
  background: #fff;
}

.inner-v2-home-news .news-card-image {
  position: relative;
  overflow: hidden;
}

.inner-v2-home-news .news-card-image > a:first-child,
.inner-v2-home-news .news-card-image img {
  display: block;
  width: 100%;
  height: 100%;
}

.inner-v2-home-news .news-card-image img {
  object-fit: cover;
  transition: transform .6s ease;
}

.inner-v2-home-news .news-card:hover img {
  transform: scale(1.045);
}

.inner-v2-home-news .news-category {
  position: absolute;
  bottom: 0;
  left: 24px;
  display: inline-flex;
  min-height: 42px;
  align-items: center;
  padding: 0 18px;
  color: #fff;
  background: var(--primary);
  font-size: 12px;
  font-weight: 800;
  text-transform: uppercase;
}

.inner-v2-home-news .news-card h3 {
  min-height: 62px;
  margin: 0 0 18px;
  color: var(--forest);
  font-size: 23px;
  line-height: 1.35;
}

.inner-v2-home-news .news-card h3 a {
  color: inherit;
}

.inner-v2-home-news .news-meta {
  margin-bottom: 24px;
  color: var(--muted);
  font-size: 13px;
}

.inner-v2-home-news .news-card-foot {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding-top: 20px;
  border-top: 1px solid var(--line);
}

.inner-v2-home-news .news-card-foot a {
  color: var(--forest);
  font-size: 13px;
  font-weight: 800;
}

/* Reserve the newsletter area inside the footer so it never covers preceding content. */

/* FAQ/form proportions aligned with the agriculture reference module. */

.inner-v2-inquiry {
  margin-right: -40px;
  margin-left: -22px;
}

@media (max-width: 1180px) {
  .inner-v2-category-layout {
    grid-template-columns: 260px minmax(0, 1fr);
    gap: 34px;
  }

  .inner-v2-category-product-image {
    height: 250px;
  }

  .inner-v2-product-actions {
    grid-template-columns: 1fr;
  }

.inner-v2-faq-grid {
    grid-template-columns: minmax(0, 1fr) 390px;
  }

  .inner-v2-faq-photo {
    display: none;
  }

  .inner-v2-inquiry {
    width: 100%;
    margin: 0;
  }
}

@media (max-width: 900px) {
  .inner-v2-category-layout,
  .inner-v2-home-service .service-showcase-body {
    grid-template-columns: 1fr;
  }

.inner-v2-category-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .inner-v2-home-service .service-tabs {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 768px) {
  body:not(.home-page) .inner-v2-hero h1,
  body:not(.home-page) .inner-v2-hero-title {
    font-size: clamp(32px, 9vw, 44px);
    line-height: 1.06;
  }

  .inner-v2-category-grid {
    grid-template-columns: 1fr;
  }

  .inner-v2-category-product-image {
    height: auto;
    aspect-ratio: 1.35;
  }

  .inner-v2-gallery-main,
  .inner-v2-gallery-main .swiper-slide {
    height: auto;
    aspect-ratio: 1.05;
  }

  .inner-v2-thumbs button.swiper-slide {
    height: 82px;
  }

  .inner-v2-product-actions {
    gap: 10px;
  }

  .inner-v2-tab-nav {
    grid-template-columns: 1fr;
  }

  .inner-v2-tab-nav button {
    min-height: 58px;
    border-right: 0;
    border-bottom: 1px solid var(--line);
  }

.inner-v2-home-service,
  .inner-v2-home-news {
    padding: 78px 0;
  }

  .inner-v2-home-service .service-tabs {
    grid-template-columns: 1fr;
  }

.inner-v2-home-news .section-head {
    align-items: flex-start;
  }

  body:not(.home-page) .site-footer {
    padding-top: 143px;
    background: linear-gradient(to bottom, #f5f7f5 0 143px, #062f23 143px);
  }

.inner-v2-faq-grid {
    grid-template-columns: 1fr;
  }

  .inner-v2-faq-copy {
    padding-right: 0;
  }

}

@media (max-width: 520px) {
  .inner-v2-category-product-copy {
    padding: 22px 20px 24px;
  }

}

/* Updated demo8 inner-page review: use the reference compositions, not parallel approximations. */

/* FAQ and inquiry: broad editorial copy, overlapping green form, and edge-to-edge image. */
.inner-v2-faq {
  padding: 120px 0;
  overflow: hidden;
  background: #fff;
}

.inner-v2-faq::before {
  position: absolute;
  bottom: -130px;
  left: -80px;
  width: 270px;
  height: 440px;
  background: linear-gradient(140deg, transparent 44%, rgba(67, 200, 121, .11) 45% 46%, transparent 47%),
              radial-gradient(ellipse at 48% 88%, rgba(67, 200, 121, .13) 0 2px, transparent 3px);
  content: '';
  transform: rotate(-9deg);
  pointer-events: none;
}

.inner-v2-faq-grid {
  width: min(calc(100% - 80px), 1660px);
  max-width: 1660px;
  min-height: 760px;
  grid-template-columns: minmax(620px, 1.08fr) 520px 520px;
  align-items: center;
  padding: 0;
  overflow: visible;
}

.inner-v2-faq-copy {
  position: relative;
  z-index: 2;
  padding-right: 78px;
}

.inner-v2-faq-copy h2 {
  max-width: 780px;
  font-size: clamp(48px, 4.05vw, 66px);
  line-height: 1.08;
}

.inner-v2-faq-copy > p {
  max-width: 760px;
  margin: 34px 0 54px;
  font-size: 18px;
  line-height: 1.9;
}

.inner-v2-accordion {
  max-width: 880px;
}

.inner-v2-accordion article {
  margin-bottom: 24px;
  background: #f7f8f7;
}

.inner-v2-accordion button {
  min-height: 80px;
  padding: 0 36px;
  font-size: 17px;
}

.inner-v2-accordion article > div {
  padding: 0 36px 30px;
  border-top: 1px solid #e0e5e1;
}

.inner-v2-accordion p {
  padding-top: 24px;
  font-size: 16px;
  line-height: 1.8;
}

.inner-v2-inquiry {
  position: relative;
  z-index: 4;
  width: 650px;
  min-height: 650px;
  margin: 0 -130px 0 -30px;
  padding: 58px 56px;
  border-radius: 14px;
  box-shadow: 0 34px 74px rgba(7, 48, 36, .16);
}

.inner-v2-inquiry h3 {
  margin-bottom: 22px;
  font-size: 38px;
}

.inner-v2-inquiry > p {
  max-width: 470px;
  margin-bottom: 36px;
  font-size: 17px;
  line-height: 1.65;
}

.inner-v2-inquiry input {
  padding: 0 22px;
}

.inner-v2-inquiry textarea {
  padding: 18px 22px;
}

.inner-v2-inquiry button {
  min-width: 245px;
  min-height: 62px;
  justify-content: space-between;
  margin-top: 16px;
  padding: 0 28px;
}

.inner-v2-faq-photo {
  position: relative;
  width: calc(100% + max(0px, (100vw - 1660px) / 2));
  height: 760px;
  overflow: hidden;
  border-radius: 0;
}

.inner-v2-faq-photo::after {
  position: absolute;
  top: 50%;
  right: 24px;
  display: grid;
  width: 54px;
  height: 54px;
  place-items: center;
  border-radius: 50%;
  color: var(--forest);
  background: #fff;
  box-shadow: 0 14px 34px rgba(4, 34, 25, .16);
  content: '+';
  font-size: 26px;
  transform: translateY(-50%);
}

/* Category navigation: the dark editorial rail used elsewhere in the reference. */
.inner-v2-category-layout {
  grid-template-columns: 330px minmax(0, 1fr);
  gap: 58px;
}

.inner-v2-category-sidebar {
  padding: 34px 28px 18px;
  overflow: hidden;
  border: 0;
  border-radius: 18px;
  color: #fff;
  background: var(--forest);
  box-shadow: 0 28px 64px rgba(4, 40, 29, .12);
}

.inner-v2-sidebar-kicker {
  display: flex;
  align-items: center;
  gap: 12px;
  margin: 0 0 12px;
  color: var(--primary);
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .12em;
  text-transform: uppercase;
}

.inner-v2-sidebar-kicker::before {
  width: 28px;
  height: 1px;
  background: currentColor;
  content: '';
}

.inner-v2-category-sidebar > h2 {
  padding: 0 0 26px;
  border-bottom: 1px solid rgba(255, 255, 255, .17);
  background: transparent;
  font-size: 28px;
}

.inner-v2-category-list article {
  border-color: rgba(255, 255, 255, .14);
}

.inner-v2-category-list article > div {
  min-height: 78px;
  grid-template-columns: minmax(0, 1fr) 42px;
}

.inner-v2-category-list article > div > a {
  gap: 14px;
  padding: 0;
  color: rgba(255, 255, 255, .72);
  font-size: 16px;
}

.inner-v2-category-list article > div > a small {
  width: 28px;
  color: rgba(67, 200, 121, .68);
  font-size: 10px;
  letter-spacing: .08em;
}

.inner-v2-category-list article > div > a.active,
.inner-v2-category-list article.is-open > div > a {
  color: #fff;
}

.inner-v2-category-list button {
  align-self: center;
  width: 36px;
  height: 36px;
  border: 1px solid rgba(255, 255, 255, .18);
  border-radius: 50%;
  color: var(--primary);
  transition: color .25s ease, background .25s ease, border-color .25s ease;
}

.inner-v2-category-list button:hover,
.inner-v2-category-list article.is-open button {
  border-color: var(--primary);
  color: var(--forest);
  background: var(--primary);
}

.inner-v2-category-list button::before {
  font-size: 18px;
}

.inner-v2-category-list nav {
  padding: 0 0 26px 42px;
}

.inner-v2-category-list nav a {
  padding: 8px 0 8px 18px;
  border-color: rgba(255, 255, 255, .17);
  color: rgba(255, 255, 255, .55);
}

.inner-v2-category-list nav a:hover {
  color: #fff;
}

/* Product tabs: each panel is content-only and uses the full container width. */
.inner-v2-spec-section {
  padding: 92px 0 108px;
}

.inner-v2-spec-panel,
.inner-v2-spec-panel.active {
  grid-template-columns: minmax(0, 1fr);
  gap: 0;
}

.inner-v2-description-panel .inner-v2-feature-list {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 24px;
}

.inner-v2-feature-list article {
  min-height: 240px;
  grid-template-columns: minmax(220px, .9fr) minmax(0, 1.1fr);
  border-radius: 14px;
  box-shadow: 0 18px 42px rgba(7, 48, 36, .06);
}

.inner-v2-feature-list article > div {
  padding: 34px;
}

.inner-v2-feature-list h3 {
  font-size: 24px;
}

.inner-v2-parameter-panel > ul {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px 22px;
}

.inner-v2-spec-panel li {
  min-height: 78px;
  padding: 0 26px;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: #fff;
}

/* Exact homepage service proportions and cascade for the copied detail module. */
.inner-v2-home-service {
  padding: 104px 0 118px;
}

.inner-v2-home-service > .container {
  width: min(calc(100% - 80px), 1380px);
  max-width: 1380px;
  padding: 0;
}

.inner-v2-home-service .service-head {
  align-items: flex-end;
}

.inner-v2-home-service .service-head h2 {
  line-height: 1.08;
}

.inner-v2-home-service .service-head .btn {
  min-width: 214px;
  min-height: 60px;
  justify-content: center;
}

.inner-v2-home-service .service-showcase-body {
  min-height: 500px;
  grid-template-columns: 400px minmax(0, 1fr);
  gap: 44px;
}

.inner-v2-home-service .service-tabs {
  justify-content: space-between;
  border: 0;
}

.inner-v2-home-service .service-tabs button {
  min-height: 125px;
}

.inner-v2-home-service .service-tabs button,
.inner-v2-home-service .service-tabs button.active,
.inner-v2-home-service .service-tabs button:hover {
  grid-template-columns: 34px minmax(0, 1fr) 38px;
  gap: 12px;
  padding: 0 12px 0 8px;
  color: rgba(255, 255, 255, .46);
  background: transparent;
}

.inner-v2-home-service .service-tabs button::after {
  display: none;
}

.inner-v2-home-service .service-tabs button small {
  color: rgba(255, 255, 255, .38);
  transition: color .3s ease;
}

.inner-v2-home-service .service-tabs button span {
  position: relative;
  width: max-content;
  max-width: 100%;
  color: inherit;
  transition: color .3s ease;
}

.inner-v2-home-service .service-tabs button span::after {
  position: absolute;
  right: 0;
  bottom: -10px;
  left: 0;
  height: 1px;
  background: #43c879;
  content: '';
  transform: scaleX(0);
  transform-origin: left center;
  transition: transform .32s cubic-bezier(.22, .61, .36, 1);
}

.inner-v2-home-service .service-tabs button > i {
  justify-self: end;
  color: #43c879;
  opacity: 0;
  transform: translateX(-8px);
  transition: opacity .3s ease, transform .3s cubic-bezier(.22, .61, .36, 1);
}

.inner-v2-home-service .service-tabs button.active {
  color: #43c879;
}

.inner-v2-home-service .service-tabs button:hover {
  color: rgba(255, 255, 255, .82);
  background: rgba(255, 255, 255, .025);
}

.inner-v2-home-service .service-tabs button.active small,
.inner-v2-home-service .service-tabs button:hover small {
  color: #43c879;
}

.inner-v2-home-service .service-tabs button.active span::after,
.inner-v2-home-service .service-tabs button:hover span::after {
  transform: scaleX(1);
}

.inner-v2-home-service .service-tabs button.active > i,
.inner-v2-home-service .service-tabs button:hover > i {
  opacity: 1;
  transform: translateX(0);
}

.inner-v2-home-service .service-panel {
  min-height: 500px;
  border-radius: 10px;
}

.inner-v2-home-service .service-panel-copy {
  right: 46px;
  bottom: 38px;
  left: 46px;
  width: min(740px, calc(100% - 92px));
}

.inner-v2-home-service .service-panel-copy h3 {
  max-width: 720px;
  font-size: clamp(30px, 2.7vw, 42px);
}

/* Exact homepage news proportions for the copied detail module. */
.inner-v2-home-news {
  padding: 130px 0 260px;
}

.inner-v2-home-news > .container {
  width: min(calc(100% - 80px), 1385px);
  max-width: 1385px;
  padding: 0 10px;
}

.inner-v2-home-news .section-head {
  margin-bottom: 54px;
}

.inner-v2-home-news .news-card {
  border-radius: 10px;
  box-shadow: none;
}

.inner-v2-home-news .news-card-image {
  height: auto;
  aspect-ratio: 1.846 / 1;
}

.inner-v2-home-news .news-card-body {
  padding: 39px 30px 25px;
}

/* The footer and its overlap are now identical on every page. */

body:not(.home-page) .site-footer::before {
  top: -28px;
}

.footer-contact i,
.footer-social i {
  line-height: 1;
}

body:not(.home-page) .footer-social i,
body:not(.home-page) .footer-contact i {
  display: inline-block;
}

body:not(.home-page).has-home-news .site-footer {
  margin-top: 0;
}

/* Service index: match the Agriculture reference card module. */
.inner-v2-reference-services {
  padding: clamp(78px, 7vw, 126px) 0;
  background: #fff;
}

.inner-v2-reference-services > .container {
  width: min(calc(100% - 80px), 1380px);
  max-width: 1380px;
  padding-inline: 0;
}

.inner-v2-reference-service-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: clamp(26px, 1.8vw, 34px) clamp(24px, 1.55vw, 30px);
}

.inner-v2-reference-service-card {
  display: grid;
  min-width: 0;
  grid-template-rows: auto 1fr;
  overflow: hidden;
  background: transparent;
}

.inner-v2-reference-service-image {
  display: block;
  overflow: hidden;
  aspect-ratio: 1.59 / 1;
  background: #eef1ed;
}

.inner-v2-reference-service-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform .65s cubic-bezier(.2,.7,.2,1);
}

.inner-v2-reference-service-body {
  display: flex;
  min-height: clamp(261px, 18.2vw, 352px);
  flex-direction: column;
  padding: clamp(20px, 1.8vw, 30px);
  color: #535a5e;
  background: #fafafa;
}

.inner-v2-reference-service-body h3 {
  margin: 0 0 clamp(14px, 1vw, 20px);
  color: #0c2318;
  font-size: clamp(20px, 1.48vw, 29px);
  font-weight: 700;
  line-height: 1.28;
}

.inner-v2-reference-service-body h3 a {
  color: inherit;
}

.inner-v2-reference-service-body p {
  margin: 0;
  color: #535a5e;
  font-size: clamp(14px, .94vw, 18px);
  line-height: 1.75;
}

.inner-v2-reference-service-number {
  display: flex;
  align-items: center;
  gap: clamp(22px, 1.7vw, 32px);
  margin-top: auto;
  padding-top: clamp(18px, 1.55vw, 28px);
}

.inner-v2-reference-service-number span {
  flex: 0 0 auto;
  color: transparent;
  font-size: clamp(52px, 3.3vw, 64px);
  font-weight: 700;
  letter-spacing: -3px;
  line-height: 1;
  -webkit-text-stroke: 1px #e7e8e9;
}

.inner-v2-reference-service-number i {
  height: 1px;
  flex: 1 1 auto;
  background: #e1e1e5;
}

.inner-v2-reference-service-link {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-top: clamp(10px, .9vw, 18px);
  color: #616161;
  font-size: clamp(16px, .95vw, 18px);
  font-weight: 500;
  line-height: 1.5;
}

.inner-v2-reference-service-link b {
  display: grid;
  width: clamp(30px, 2.15vw, 40px);
  height: clamp(30px, 2.15vw, 40px);
  place-items: center;
  border-radius: 2px;
  color: #616161;
  background: #e6e6e9;
  transition: color .25s ease, background-color .25s ease, transform .25s ease;
}

.inner-v2-reference-service-link svg {
  width: 13px;
  height: 13px;
}

.inner-v2-reference-service-card:hover .inner-v2-reference-service-image img {
  transform: scale(1.045);
}

.inner-v2-reference-service-card:hover .inner-v2-reference-service-link b {
  color: #fff;
  background: var(--primary);
  transform: translateX(3px);
}

/* Shared service, solution and case detail template. */
body:not(.home-page) {
  --inner-standard-width: 1362px;
}

.inner-v2-simple-detail-content > .container {
  width: min(calc(100% - 80px), var(--inner-standard-width));
  max-width: var(--inner-standard-width);
  padding: 0;
}

.inner-v2-detail-breadcrumb > .container {
  width: min(calc(100% - 80px), var(--inner-standard-width));
  max-width: var(--inner-standard-width);
  padding: 0;
}

.inner-v2-detail-breadcrumb {
  background: transparent;
}

.inner-v2-detail-breadcrumb li:last-child {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.inner-v2-simple-detail-content {
  padding: clamp(88px, 8vw, 138px) 0 clamp(110px, 9vw, 160px);
  background: #fff;
}

.inner-v2-simple-detail-content article {
  width: 100%;
  margin: 0 auto;
}

.inner-v2-simple-detail-content article h1 {
  max-width: 1040px;
  margin: 0 0 30px;
  color: var(--forest);
  font-size: clamp(36px, 3.1vw, 50px);
  line-height: 1.12;
}

.inner-v2-simple-detail-content article p {
  margin: 0;
  color: #68766f;
  font-size: 17px;
  line-height: 1.9;
}

.inner-v2-simple-detail-content article p + p {
  margin-top: 22px;
}

.inner-v2-simple-detail-content article p.lead {
  color: #34483e;
  font-size: 20px;
  line-height: 1.8;
}

.inner-v2-simple-prevnext {
  display: grid;
  width: 100%;
  grid-template-columns: 1fr 1fr;
  gap: 18px;
  margin: clamp(68px, 7vw, 108px) auto 0;
}

.inner-v2-simple-prevnext a {
  display: flex;
  min-height: 134px;
  flex-direction: column;
  justify-content: center;
  padding: 30px 36px;
  border: 1px solid #e6ebe7;
  color: var(--forest);
  background: #f7f8f7;
  transition: border-color .25s ease, color .25s ease, background-color .25s ease, transform .25s ease;
}

.inner-v2-simple-prevnext a:last-child {
  align-items: flex-end;
  text-align: right;
}

.inner-v2-simple-prevnext small {
  margin-bottom: 10px;
  color: var(--primary);
  font-size: 12px;
  font-weight: 800;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.inner-v2-simple-prevnext strong {
  font-size: clamp(18px, 1.35vw, 22px);
  line-height: 1.35;
}

.inner-v2-simple-prevnext a:hover {
  border-color: var(--primary);
  color: #fff;
  background: var(--forest);
  transform: translateY(-3px);
}

@media (max-width: 820px) {
  .inner-v2-simple-detail-content > .container,
  .inner-v2-detail-breadcrumb > .container {
    width: calc(100% - 32px);
  }

  .inner-v2-simple-detail-content article p.lead {
    font-size: 18px;
  }

  .inner-v2-simple-prevnext {
    grid-template-columns: 1fr;
    gap: 12px;
  }

  .inner-v2-simple-prevnext a,
  .inner-v2-simple-prevnext a:last-child {
    min-height: 112px;
    align-items: flex-start;
    padding: 24px;
    text-align: left;
  }
}

@media (max-width: 480px) {
  .inner-v2-simple-detail-content {
    padding: 72px 0 96px;
  }

  .inner-v2-simple-detail-content article h1 {
    font-size: 32px;
  }
}

@media (max-width: 1100px) {
  .inner-v2-reference-service-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .inner-v2-reference-service-body {
    min-height: 300px;
  }
}

@media (max-width: 640px) {
  .inner-v2-reference-services {
    padding: 64px 0;
  }

  .inner-v2-reference-services > .container {
    width: calc(100% - 30px);
  }

  .inner-v2-reference-service-grid {
    grid-template-columns: 1fr;
    gap: 24px;
  }

  .inner-v2-reference-service-body {
    min-height: 278px;
    padding: 24px 22px;
  }

  .inner-v2-reference-service-body h3 {
    font-size: 25px;
  }

  .inner-v2-reference-service-body p {
    font-size: 15px;
  }
}

/* v137: make the adjacent-detail arrows easier to read without enlarging
   the Previous / Next labels. */
html body[data-page] .inner-v2-simple-prevnext small {
  display: flex;
  align-items: center;
  gap: 12px;
}

html body[data-page] .inner-v2-simple-prevnext a:last-child small {
  justify-content: flex-end;
}

html body[data-page] .inner-v2-simple-prevnext .inner-v2-simple-nav-arrow {
  display: inline-grid;
  width: 20px;
  height: 20px;
  flex: 0 0 20px;
  place-items: center;
  font-size: 20px;
  font-weight: 500;
  letter-spacing: 0;
  line-height: 1;
}

html body[data-page] .inner-v2-simple-prevnext .inner-v2-simple-nav-arrow.is-previous {
  transform: rotate(180deg);
}

/* v139: simplify the solution heading and tighten the copy area below each image. */
html body[data-page="solution"] .inner-v2-solution-stories .inner-v2-heading h2 {
  margin-top: 0;
}

html body[data-page="solution"] .inner-v2-solution-stories .solution-story-card > div {
  min-height: 168px;
  padding: 28px 32px 26px;
}

/* v140: simplify the case heading and place the muted category below each title. */
html body[data-page="case"] .inner-v2-case-listing .inner-v2-heading h2 {
  margin-top: 0;
}

html body[data-page="case"] .inner-v2-case-listing .inner-v2-project-card h3 {
  margin: 0 54px 0 0;
}

html body[data-page="case"] .inner-v2-case-listing .inner-v2-project-card small {
  display: block;
  margin-top: 10px;
  color: #d8dfdc;
  font-weight: 500;
}

/* v143: keep the About video module identical to the homepage module. */
html body.about-page .home-media-backdrop {
  padding: 0;
  overflow: hidden;
}

html body.about-page .home-media-story {
  width: min(calc(100% - 80px), var(--case-standard-width, 1362px));
  max-width: var(--case-standard-width, 1362px);
  height: 520px;
  margin: 0 auto;
  border-radius: 28px;
}

html body.about-page .home-media-content {
  box-sizing: border-box;
  padding-right: 56px;
  padding-left: 50%;
}

html body.about-page .home-media-content h2 {
  max-width: 650px;
  margin-right: 0;
  font-size: clamp(44px, 4vw, 58px);
  line-height: 1.08;
}

@media (max-width: 767px) {
  html body.about-page .home-media-story {
    width: calc(100% - 20px);
    height: 560px;
    border-radius: 22px;
  }

  html body.about-page .home-media-content {
    padding-right: 32px;
    padding-left: 32px;
  }
}

@media (max-width: 520px) {
  html body.about-page .home-media-story {
    height: 520px;
  }
}

@media (max-width: 1600px) {
  .inner-v2-faq-grid {
    width: min(calc(100% - 40px), 1360px);
    max-width: 1360px;
    grid-template-columns: minmax(0, 1fr) 430px;
  }

  .inner-v2-faq-copy {
    padding-right: 48px;
  }

  .inner-v2-inquiry {
    width: 430px;
    min-height: 610px;
    margin: 0;
    padding: 44px 38px;
  }

  .inner-v2-faq-photo {
    display: none;
  }
}

@media (max-width: 1180px) {

  .inner-v2-home-service > .container,
  .inner-v2-home-news > .container {
    width: calc(100% - 48px);
  }

  .inner-v2-home-service .service-showcase-body {
    grid-template-columns: 320px minmax(0, 1fr);
    gap: 30px;
  }
}

@media (max-width: 900px) {
  .inner-v2-faq {
    padding: 88px 0;
  }

  .inner-v2-faq-grid {
    grid-template-columns: 1fr;
    gap: 44px;
  }

  .inner-v2-faq-copy {
    padding-right: 0;
  }

  .inner-v2-faq-copy h2 {
    max-width: 720px;
  }

  .inner-v2-inquiry {
    width: 100%;
    min-height: 0;
  }

  .inner-v2-category-layout {
    grid-template-columns: 1fr;
  }

  .inner-v2-category-sidebar {
    position: static;
  }

  .inner-v2-home-service .service-showcase-body {
    grid-template-columns: 1fr;
  }

  .inner-v2-home-service .service-tabs {
    display: flex;
    overflow-x: auto;
  }

  .inner-v2-home-service .service-tabs button {
    min-width: 220px;
    min-height: 90px;
  }
}

@media (max-width: 768px) {
  .inner-v2-faq-grid,
  .inner-v2-home-service > .container,
  .inner-v2-home-news > .container {
    width: calc(100% - 40px);
  }

  .inner-v2-faq-copy h2 {
    font-size: 38px;
  }

  .inner-v2-faq-copy > p {
    margin: 24px 0 34px;
    font-size: 15px;
  }

  .inner-v2-accordion article {
    margin-bottom: 12px;
  }

  .inner-v2-accordion button {
    min-height: 70px;
    padding: 0 20px;
    font-size: 15px;
  }

  .inner-v2-accordion article > div {
    padding: 0 20px 24px;
  }

  .inner-v2-inquiry {
    padding: 34px 24px;
  }

  .inner-v2-inquiry h3 {
    font-size: 31px;
  }

  .inner-v2-description-panel .inner-v2-feature-list,
  .inner-v2-download-list,
  .inner-v2-parameter-panel > ul {
    grid-template-columns: 1fr;
  }

  .inner-v2-feature-list article {
    grid-template-columns: 1fr;
  }

  .inner-v2-feature-list img {
    height: 230px;
  }

  .inner-v2-home-service,
  .inner-v2-home-news {
    padding-top: 82px;
    padding-bottom: 82px;
  }

  .inner-v2-home-service .service-head {
    align-items: flex-start;
    margin-bottom: 38px;
  }

body:not(.home-page) .site-footer,
  body:not(.home-page).has-home-news .site-footer {
    background: #062f23;
  }

  body:not(.home-page) .site-footer::before {
    top: -28px;
  }
}

@media (max-width: 520px) {
  .inner-v2-category-sidebar {
    padding: 28px 20px 14px;
  }

  .inner-v2-category-sidebar > h2 {
    font-size: 24px;
  }

  .inner-v2-category-list article > div {
    min-height: 70px;
  }

  .inner-v2-home-service .section-head h2,
  .inner-v2-home-news .section-head h2 {
    font-size: 34px;
  }

  .inner-v2-home-news .news-card-image {
    aspect-ratio: 1.35 / 1;
  }
}

/* FAQ desktop canvas: use the reference site's exact 1360px content grid. */
@media (min-width: 1601px) {
  .inner-v2-faq-grid {
    width: min(calc(100% - 40px), 1360px);
    max-width: 1360px;
    grid-template-columns: 780px 550px 520px;
  }

  .inner-v2-faq-copy {
    padding-right: 66px;
  }

  .inner-v2-faq-copy h2 {
    max-width: 700px;
    font-size: 54px;
    line-height: 1.1;
  }

  .inner-v2-faq-copy > p {
    max-width: 680px;
    margin: 30px 0 48px;
    font-size: 17px;
    line-height: 1.85;
  }

  .inner-v2-accordion {
    max-width: 710px;
  }

  .inner-v2-inquiry {
    width: 550px;
    min-height: 650px;
    margin: 0;
    padding: 48px 46px;
  }

  .inner-v2-faq-photo {
    width: calc(805px + max(0px, (100vw - 1360px) / 2));
    height: 760px;
    margin-left: -285px;
  }
}

@media (min-width: 901px) and (max-width: 1600px) {
  .inner-v2-faq-grid {
    grid-template-columns: 680px 520px;
    justify-content: start;
  }

  .inner-v2-faq-copy {
    padding-right: 20px;
  }

  .inner-v2-faq-copy h2,
  .inner-v2-faq-copy > p,
  .inner-v2-accordion {
    max-width: 660px;
  }

  .inner-v2-inquiry {
    width: 520px;
  }
}

/* Shared site chrome: inner pages use the same visual header and footer as home. */
@media (min-width: 769px) {
  body:not(.home-page) .topbar-contact {
    gap: 30px;
  }

  body:not(.home-page) .topbar-contact a {
    gap: 9px;
    color: rgba(255, 255, 255, 0.78);
    font-size: 14px;
  }

  body:not(.home-page) .topbar-contact i {
    color: #45ce7c;
    font-size: 15px;
  }

  body:not(.home-page) .topbar-social {
    display: flex;
    align-items: center;
    gap: 10px;
    color: rgba(255, 255, 255, 0.66);
    font-size: 12px;
    letter-spacing: 0.03em;
  }

  body:not(.home-page) .topbar-social > span {
    margin-right: 4px;
    text-transform: uppercase;
  }

  body:not(.home-page) .topbar-social a {
    display: inline-flex;
    width: 25px;
    height: 25px;
    align-items: center;
    justify-content: center;
    color: #fff;
    border: 1px solid rgba(255, 255, 255, 0.18);
    border-radius: 50%;
    font-size: 10px;
    font-weight: 750;
    line-height: 1;
    transition: color 180ms ease, border-color 180ms ease, background-color 180ms ease;
  }

  body:not(.home-page) .topbar-social a:hover {
    color: #062f23;
    border-color: #45ce7c;
    background: #45ce7c;
  }
}

body:not(.home-page) .header-quote,
body:not(.home-page) .header-quote:hover {
  color: #fff;
}

.site-footer::before,
.side-tools {
  display: none;
}

@media (max-width: 768px) {
  body:not(.home-page) .site-footer,
  body:not(.home-page).has-home-news .site-footer {
    margin-top: 0;
    padding-top: 22px;
  }

}

/* September 15 inner-page review from demo8修改.docx. */

.inner-v2-collection-card {
  position: relative;
  min-width: 0;
  overflow: hidden;
  border: 0;
  border-radius: 4px;
  padding: 0;
  box-shadow: none;
}

.inner-v2-collection-card::after {
  position: absolute;
  bottom: 0;
  left: 0;
  width: 0;
  height: 3px;
  border-radius: 0 0 4px 4px;
  background: #43c879;
  content: '';
  opacity: 0;
  visibility: hidden;
  transition: width 500ms ease, opacity 500ms ease, visibility 500ms ease;
}

.inner-v2-collection-copy {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  background: url('../images/service-card-shape.png') top right / auto no-repeat;
}

.inner-v2-collection-copy h3 {
  max-width: 100%;
  margin: 0 0 20px;
  color: #142340;
  font-size: 30px;
  font-weight: 700;
  line-height: 40px;
}

.inner-v2-collection-copy h3 a {
  display: inline;
  color: inherit;
  background-image: linear-gradient(to bottom, #43c879 0%, #43c879 100%);
  background-position: left 100%;
  background-repeat: no-repeat;
  background-size: 0 2px;
  transition: background-size 500ms ease;
}

.inner-v2-collection-copy p {
  max-width: 100%;
  margin: 0 0 20px;
  color: #616161;
  font-size: 14px;
  font-weight: 500;
  line-height: 1.55;
}

.inner-v2-collection-arrow {
  display: inline-flex;
  width: 26px;
  min-height: 12px;
  align-items: center;
  margin: auto 0 25px;
  color: #616161;
  font-size: 18px;
}

.inner-v2-collection-arrow i {
  transition: color 300ms ease;
}

.inner-v2-collection-media {
  position: relative;
  display: block;
  aspect-ratio: 352 / 199;
}

.inner-v2-collection-media img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: border-radius 500ms ease;
}

.inner-v2-collection-media span {
  position: absolute;
  left: 0;
  z-index: 2;
  display: grid;
  place-items: center;
  padding: 0;
  color: #43c879;
  font-weight: 500;
}

.inner-v2-collection-card:hover {
  transform: none;
  box-shadow: none;
}

.inner-v2-collection-card:hover::after {
  width: 100%;
  opacity: 1;
  visibility: visible;
}

.inner-v2-collection-card:hover .inner-v2-collection-media img {
  border-radius: 100px 0 0 100px;
  transform: none;
}

.inner-v2-collection-card:hover .inner-v2-collection-copy h3 a {
  background-size: 100% 2px;
}

.inner-v2-collection-card:hover .inner-v2-collection-arrow i {
  color: #43c879;
  transform: none;
}

body:not(.home-page) .inner-v2-category-layout {
  grid-template-columns: 260px minmax(0, 1fr);
  gap: 60px;
  align-items: start;
}

body:not(.home-page) .inner-v2-category-sidebar {
  position: sticky;
  top: 108px;
  width: 100%;
  padding: 0;
  overflow: visible;
  border-radius: 0;
  color: var(--forest);
  background: transparent;
  box-shadow: none;
}

body:not(.home-page) .inner-v2-category-list {
  display: grid;
  gap: 15px;
}

body:not(.home-page) .inner-v2-category-list article {
  overflow: hidden;
  border: 1px solid #efebeb;
  border-radius: 10px;
  background: #fff;
  box-shadow: 0 8px 22px rgba(15, 57, 43, 0);
  transform: translateY(0);
  transition: border-color 320ms ease, box-shadow 320ms ease, transform 320ms cubic-bezier(.22, 1, .36, 1);
}

body:not(.home-page) .inner-v2-category-list article:hover {
  box-shadow: 0 10px 26px rgba(15, 57, 43, .08);
  transform: translateY(-2px);
}

body:not(.home-page) .inner-v2-category-list .inner-v2-category-parent-link,
body:not(.home-page) .inner-v2-category-list .inner-v2-category-link {
  display: flex;
  width: 100%;
  min-height: 54px;
  height: auto;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  padding: 11px 28px;
  border: 0;
  border-radius: 0;
  color: #4d6559;
  background: #fff;
  font-size: 17px;
  font-weight: 700;
  line-height: 1.7;
  text-align: left;
  text-decoration: none;
  cursor: pointer;
  transition: color 320ms ease, background-color 320ms ease, padding 320ms cubic-bezier(.22, 1, .36, 1);
}

body:not(.home-page) .inner-v2-category-list .inner-v2-category-head {
  display: grid;
  min-height: 54px;
  grid-template-columns: minmax(0, 1fr) 54px;
  align-items: stretch;
  background: #fff;
}

body:not(.home-page) .inner-v2-category-list .inner-v2-category-parent-link {
  padding-right: 12px;
}

body:not(.home-page) .inner-v2-category-list .inner-v2-category-trigger {
  display: grid;
  width: 54px;
  height: auto;
  min-height: 54px;
  align-self: stretch;
  place-items: center;
  padding: 0;
  border: 0;
  border-left: 0;
  border-radius: 0;
  color: #4d6559;
  background: #fff;
  box-shadow: none;
  cursor: pointer;
  transition: color 260ms ease, background-color 260ms ease, border-color 260ms ease;
}

body:not(.home-page) .inner-v2-category-list .inner-v2-category-trigger i {
  flex: 0 0 auto;
  font-size: 14px;
  transition: transform 220ms ease;
}

body:not(.home-page) .inner-v2-category-list article.is-open,
body:not(.home-page) .inner-v2-category-list article.is-current {
  border-color: #43c879;
}

body:not(.home-page) .inner-v2-category-list article.is-open .inner-v2-category-parent-link,
body:not(.home-page) .inner-v2-category-list article.is-open .inner-v2-category-trigger,
body:not(.home-page) .inner-v2-category-list article.is-current .inner-v2-category-parent-link,
body:not(.home-page) .inner-v2-category-list article.is-current .inner-v2-category-trigger,
body:not(.home-page) .inner-v2-category-list .inner-v2-category-trigger:hover,
body:not(.home-page) .inner-v2-category-list article.is-current .inner-v2-category-link,
body:not(.home-page) .inner-v2-category-list .inner-v2-category-link:hover {
  color: #fff;
  background: #43c879;
}

body:not(.home-page) .inner-v2-category-list article.is-open .inner-v2-category-trigger i {
  transform: rotate(90deg);
}

body:not(.home-page) .inner-v2-category-list nav {
  display: grid;
  max-height: 0;
  gap: 0;
  padding: 0 28px;
  overflow: hidden;
  opacity: 0;
  background: #fff;
  transform: translateY(-7px);
  transition: max-height 360ms cubic-bezier(.22, 1, .36, 1), padding 360ms cubic-bezier(.22, 1, .36, 1), opacity 220ms ease, transform 360ms cubic-bezier(.22, 1, .36, 1);
}

body:not(.home-page) .inner-v2-category-list article.is-open nav {
  max-height: 190px;
  padding-top: 12px;
  padding-bottom: 15px;
  opacity: 1;
  transform: translateY(0);
}

body:not(.home-page) .inner-v2-category-list nav a {
  position: relative;
  display: block;
  padding: 7px 0;
  border: 0;
  color: #788a82;
  font-size: 14px;
  transform: translateX(0);
  transition: color 260ms ease, transform 320ms cubic-bezier(.22, 1, .36, 1);
}

body:not(.home-page) .inner-v2-category-list nav a::before {
  position: absolute;
  top: 50%;
  left: -16px;
  width: 10px;
  height: 1px;
  background: currentColor;
  content: '';
  opacity: 0;
  transform: translateY(-50%) scaleX(.25);
  transform-origin: left center;
  transition: opacity 240ms ease, transform 320ms cubic-bezier(.22, 1, .36, 1);
}

body:not(.home-page) .inner-v2-category-list nav a:hover {
  color: #1fae61;
  transform: translateX(10px);
}

body:not(.home-page) .inner-v2-category-list nav a.active {
  color: #1fae61;
  font-weight: 700;
  transform: translateX(10px);
}

body:not(.home-page) .inner-v2-category-list nav a:hover::before,
body:not(.home-page) .inner-v2-category-list nav a.active::before {
  opacity: 1;
  transform: translateY(-50%) scaleX(1);
}

.inner-v2-product-detail {
  align-items: start;
}

.inner-v2-gallery-main {
  border-radius: 16px;
  background: #f1f4f1;
}

.inner-v2-gallery-main img {
  display: block;
  width: 100%;
  height: auto;
  object-fit: contain;
}

.inner-v2-thumbs button.swiper-slide {
  border-radius: 8px;
  background: #f1f4f1;
}

.inner-v2-thumbs img {
  display: block;
  width: 100%;
}

.inner-v2-product-actions {
  margin-top: 34px;
}

.inner-v2-product-actions .inner-v2-btn {
  justify-content: space-between;
  border: 1px solid #43c879;
  font-size: 13px;
  box-shadow: 0 12px 28px rgba(6, 47, 35, 0.07);
}

.inner-v2-product-actions .inner-v2-btn i {
  display: grid;
  place-items: center;
  border-radius: 50%;
}

.inner-v2-product-actions .inner-v2-btn:nth-child(1) {
  color: #062f23;
  background: #43c879;
}

.inner-v2-product-actions .inner-v2-btn:nth-child(2) {
  color: #062f23;
  background: #fff;
}

.inner-v2-product-actions .inner-v2-btn:nth-child(2) i {
  background: #eef5f0;
}

.inner-v2-product-actions .inner-v2-btn:hover {
  color: #fff;
  border-color: #15884b;
  background: #15884b;
  transform: translateY(-3px);
}

.inner-v2-download-list {
  max-width: 1040px;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
}

.inner-v2-download-list a {
  min-height: 82px;
  padding: 12px 18px;
  border: 1px solid #e3e9e5;
  border-radius: 2px;
  background: #fff;
  box-shadow: none;
}

.inner-v2-download-file {
  display: block;
  width: 42px;
  height: 49px;
  flex: 0 0 42px;
  object-fit: contain;
}

.inner-v2-download-copy {
  display: flex;
  flex: 1 1 auto;
  align-items: center;
  padding-left: 2px;
}

.inner-v2-download-list a b {
  color: var(--forest);
  font-size: 15px;
  line-height: 1.35;
}

.inner-v2-download-list a > i {
  display: grid;
  width: 34px;
  height: 34px;
  flex: 0 0 auto;
  place-items: center;
  border-radius: 0;
  color: #e8762f;
  background: transparent;
  font-size: 17px;
  transition: color 220ms ease, background-color 220ms ease, transform 220ms ease;
}

.inner-v2-download-list a:hover {
  border-color: #43c879;
  background: #f9fafa;
  transform: none;
}

.inner-v2-download-list a:hover > i {
  color: #43c879;
  background: transparent;
  transform: translateY(2px);
}

@media (max-width: 768px) {
  .inner-v2-download-list {
    grid-template-columns: 1fr;
  }
}

.inner-v2-richtext {
  width: 100%;
  max-width: none;
}

.inner-v2-richtext h3 {
  margin: 0 0 18px;
  color: var(--forest);
  font-size: clamp(28px, 2.7vw, 38px);
}

.inner-v2-richtext > p {
  max-width: none;
  margin: 0 0 32px;
}

.inner-v2-richtext table {
  width: 100%;
  overflow: hidden;
  border: 1px solid #dfe6e2;
  border-collapse: separate;
  border-spacing: 0;
  border-radius: 6px;
  background: #fff;
}

.inner-v2-richtext th,
.inner-v2-richtext td {
  padding: 17px 20px;
  border-bottom: 1px solid #e4eae6;
  color: var(--forest);
  font-size: 14px;
  line-height: 1.55;
  text-align: left;
}

.inner-v2-richtext th {
  width: 190px;
  color: #60746a;
  background: #f7f9f7;
  font-weight: 700;
}

.inner-v2-richtext tr:last-child th,
.inner-v2-richtext tr:last-child td {
  border-bottom: 0;
}

.inner-v2-recommended {
  background: #fff;
}

/* The blog-detail recommendation needs its own panel treatment; product detail stays white. */
.inner-v2-blog-detail + .inner-v2-recommended {
  background: #f3f5f3;
  padding-bottom: 126px;
}

.inner-v2-blog-detail + .inner-v2-recommended .product-swiper {
  padding-bottom: 0;
}

.inner-v2-recommended > .container {
  width: min(calc(100% - 80px), 1365px);
  max-width: 1365px;
  padding-right: 10px;
  padding-left: 10px;
}

.inner-v2-recommended > .container > .tab-panel {
  width: 100%;
  min-width: 0;
}

.inner-v2-recommended .product-swiper {
  width: 100%;
  margin: 0;
  padding: 14px 8px 62px;
  overflow: visible;
  box-sizing: border-box;
}

.inner-v2-recommended .product-swiper .swiper-wrapper {
  display: flex;
  gap: 22px;
  align-items: stretch;
  box-sizing: border-box;
  transition: transform .62s cubic-bezier(.22,.61,.36,1);
  will-change: transform;
}

.inner-v2-recommended .inner-v2-static-products .swiper-wrapper {
  transform: none;
}

.inner-v2-recommended .inner-v2-static-products .swiper-slide:nth-child(n + 4) {
  display: none;
}

.inner-v2-recommended .product-tag {
  display: none;
}

.inner-v2-recommended .product-swiper .swiper-slide {
  width: auto;
  min-width: 0;
  flex: 0 0 calc((100% - 44px) / 3);
  margin: 0;
}

.inner-v2-recommended .product-swiper.is-native-carousel {
  cursor: grab;
  touch-action: pan-y;
  user-select: none;
}

.inner-v2-recommended .product-swiper.is-native-carousel.is-dragging {
  cursor: grabbing;
}

.inner-v2-recommended .product-swiper.is-native-carousel.is-dragging .swiper-wrapper {
  transition: none;
}

.inner-v2-recommended .product-card {
  height: auto;
}

.inner-v2-home-service {
  background: #062c21;
}

.inner-v2-home-service .service-head {
  padding-right: 10px;
  padding-left: 10px;
}

.inner-v2-inquiry > p {
  color: rgba(255, 255, 255, 0.78);
}

.inner-v2-inquiry form {
  gap: 12px;
}

.inner-v2-inquiry input {
  height: 54px;
}

.inner-v2-inquiry textarea {
  min-height: 108px;
}

@media (max-width: 1024px) {
  .inner-v2-blog-detail + .inner-v2-recommended {
    padding-bottom: 96px;
  }

body:not(.home-page) .inner-v2-category-layout {
    grid-template-columns: 1fr;
  }

  body:not(.home-page) .inner-v2-category-sidebar {
    position: static;
  }

  .inner-v2-recommended .product-swiper .swiper-slide {
    flex-basis: calc((100% - 22px) / 2);
  }
}

@media (max-width: 680px) {

.inner-v2-collection-card {
    padding: 0;
  }

  .inner-v2-collection-copy h3 {
    font-size: 24px;
    line-height: 32px;
  }

  .inner-v2-product-actions {
    grid-template-columns: 1fr;
  }

  .inner-v2-recommended .product-swiper .swiper-slide {
    flex-basis: 100%;
  }

  .inner-v2-richtext th,
  .inner-v2-richtext td {
    display: block;
    width: 100%;
  }

  .inner-v2-richtext th {
    padding-bottom: 5px;
    border-bottom: 0;
  }

  .inner-v2-richtext td {
    padding-top: 5px;
  }
}

/* Latest inner-page review: match the supplied service cards and reuse homepage modules exactly. */
.inner-v2-collection-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 40px 30px;
}

.inner-v2-collection-card {
  display: flex;
  flex-direction: column;
  background: #fff;
}

.inner-v2-collection-copy {
  order: 2;
  min-height: 270px;
  padding: 42px 36px 18px;
  background-color: #fff;
}

.inner-v2-collection-media {
  order: 1;
  min-height: 0;
  margin-top: 0;
  margin-left: 30px;
  overflow: visible;
  border-radius: 4px 4px 0 0;
  background: transparent;
}

.inner-v2-collection-media span {
  bottom: -24px;
  width: 38px;
  height: 38px;
  background: #eef2ef;
  font-size: 16px;
  line-height: 1;
}

body[data-page="product"] #product-ranges {
  padding-top: 100px;
  padding-bottom: 120px;
  background: #f3f4f3;
}

body[data-page="product"] #product-ranges .inner-v2-heading {
  margin-bottom: 58px;
}

.inner-v2-collection-gridmark {
  position: absolute;
  right: 24px;
  bottom: 0;
  z-index: 2;
  display: block;
  width: 44px;
  height: 44px;
  border-radius: 5px 5px 0 0;
  background: #26322f;
  transition: background-color .3s ease;
}

.inner-v2-collection-gridmark::before {
  position: absolute;
  top: 13px;
  left: 13px;
  width: 6px;
  height: 6px;
  border-radius: 1px;
  background: #fff;
  box-shadow: 12px 0 #fff, 0 12px #fff, 12px 12px #fff;
  content: '';
}

body:not(.home-page) .inner-v2-category-list .inner-v2-category-trigger::before {
  order: 2;
  flex: 0 0 auto;
  margin-left: auto;
}

body:not(.home-page) .inner-v2-category-list .inner-v2-category-trigger > span {
  order: 1;
  margin-right: 18px;
  text-align: left;
}

.inner-v2-thumbs .swiper-wrapper {
  gap: 0;
  align-items: stretch;
}

.inner-v2-thumbs button.swiper-slide {
  height: auto;
  aspect-ratio: 1.55 / 1;
}

.inner-v2-thumbs img {
  height: 100%;
  object-fit: cover;
}

.inner-v2-gallery-main {
  height: auto;
  aspect-ratio: 3 / 2;
}

.inner-v2-gallery-main .swiper-wrapper {
  height: 100%;
  align-items: stretch;
}

.inner-v2-gallery-main .swiper-slide {
  height: 100%;
  aspect-ratio: auto;
}

.inner-v2-gallery-main .swiper-slide img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.inner-v2-product-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
}

.inner-v2-product-actions .inner-v2-btn {
  min-width: 145px;
  min-height: 58px;
  flex: 1 1 145px;
  gap: 8px;
  padding: 0 14px;
  border-radius: 7px;
  white-space: nowrap;
}

.inner-v2-product-actions .inner-v2-btn i {
  width: 24px;
  height: 24px;
  flex: 0 0 24px;
  background: transparent;
  font-size: 15px;
}

.inner-v2-product-actions .inner-v2-btn:nth-child(3) {
  color: #fff;
  border-color: #06382a;
  background: #06382a;
}

.inner-v2-product-actions .inner-v2-btn:nth-child(3) i {
  color: #fff;
}

.inner-v2-recommended .product-pagination {
  position: static;
  inset: auto;
  display: flex;
  min-height: 14px;
  align-items: center;
  justify-content: center;
  margin: 0;
  transform: none;
}

.inner-v2-recommended .collection-carousel-controls {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 20px;
  margin-top: 30px;
}

.inner-v2-recommended .collection-pagination-slot {
  display: flex;
  width: 118px;
  min-height: 18px;
  align-items: center;
  justify-content: center;
}

.inner-v2-recommended .collection-carousel-controls > button {
  display: grid;
  width: 58px;
  height: 58px;
  flex: 0 0 58px;
  place-items: center;
  border: 1px solid #d8e3dc;
  border-radius: 50%;
  color: #123d30;
  background: #fff;
  box-shadow: 0 10px 26px rgba(8, 47, 35, .05);
  cursor: pointer;
  transition: color .25s ease, border-color .25s ease, background-color .25s ease, transform .25s ease;
}

.inner-v2-recommended .collection-carousel-controls > button:hover {
  color: #fff;
  border-color: #43c879;
  background: #43c879;
  transform: translateY(-3px);
}

.inner-v2-recommended .collection-pagination-slot .swiper-pagination-bullet {
  display: block;
  width: 9px;
  height: 9px;
  min-width: 9px;
  min-height: 9px;
  margin: 0 4px;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: #ced7d1;
  box-shadow: none;
  opacity: 1;
  transition: width .24s ease, background-color .24s ease;
}

.inner-v2-recommended .collection-pagination-slot .swiper-pagination-bullet-active {
  width: 28px;
  border-radius: 999px;
  background: #43c879;
}

.inner-v2-home-service .service-head {
  margin-bottom: 56px;
}

.inner-v2-home-service .service-head > div:first-child {
  max-width: 660px;
}

.inner-v2-home-service .service-head h2 {
  max-width: 640px;
  font-size: clamp(42px, 3.8vw, 58px);
}

.inner-v2-home-service .service-head .btn-outline {
  color: #082f23;
  border-color: #fff;
  background: #fff;
}

.inner-v2-home-service .service-head .btn-outline:hover {
  color: #082f23;
  border-color: #43c879;
  background: #43c879;
}

.inner-v2-home-news .section-head h2 {
  margin-top: 14px;
}

@media (max-width: 1024px) {
  .inner-v2-recommended .inner-v2-static-products .swiper-wrapper {
    flex-wrap: wrap;
  }

  .inner-v2-collection-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 36px 28px;
  }

  .inner-v2-home-service .service-showcase-body {
    min-height: 0;
    grid-template-columns: 1fr;
    gap: 30px;
  }
}

@media (max-width: 768px) {
  .inner-v2-blog-detail + .inner-v2-recommended {
    padding-bottom: 82px;
  }

  .inner-v2-recommended {
    padding-top: 122px;
    padding-bottom: 82px;
  }

  .inner-v2-home-service {
    padding-top: 92px;
    padding-bottom: 82px;
  }

  .inner-v2-home-news {
    padding-top: 78px;
    padding-bottom: 178px;
  }

  .inner-v2-recommended .section-head,
  .inner-v2-home-service .service-head,
  .inner-v2-home-news .section-head {
    align-items: flex-start;
    gap: 20px;
    margin-bottom: 36px;
    padding-right: 0;
    padding-left: 0;
  }

  .inner-v2-recommended .section-head h2,
  .inner-v2-home-service .service-head h2,
  .inner-v2-home-news .section-head h2 {
    font-size: 34px;
    line-height: 1.08;
  }

  .inner-v2-recommended .collection-actions .btn,
  .inner-v2-home-service .service-head .btn,
  .inner-v2-home-news .section-head > .btn {
    min-width: 158px;
    min-height: 52px;
    padding-right: 22px;
    padding-left: 22px;
  }

  .inner-v2-home-service .service-tabs {
    display: flex;
    height: 78px;
    min-height: 78px;
    align-items: stretch;
    gap: 0;
    padding-bottom: 4px;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    scrollbar-width: none;
  }

  .inner-v2-home-service .service-tabs::-webkit-scrollbar {
    display: none;
  }

  .inner-v2-home-service .service-tabs button,
  .inner-v2-home-service .service-tabs button.active,
  .inner-v2-home-service .service-tabs button:hover {
    width: 205px;
    min-width: 205px;
    height: 78px;
    min-height: 78px;
    flex: 0 0 205px;
    grid-template-columns: 36px minmax(0, 1fr) 38px;
    padding: 10px 0;
    border-right: 1px solid rgba(255, 255, 255, .14);
    border-bottom: 0;
    background: transparent;
    scroll-snap-align: start;
  }

  .inner-v2-home-service .service-tabs small {
    font-size: 21px;
  }

  .inner-v2-home-service .service-tabs button span {
    width: 100%;
    font-size: 15px;
    overflow-wrap: anywhere;
  }

  .inner-v2-home-service .service-panel {
    min-height: 430px;
    border-radius: 14px;
  }

  .inner-v2-home-news .news-card-image {
    height: 240px;
  }

  .inner-v2-home-news .news-card-body {
    padding: 24px 22px 22px;
  }

  .inner-v2-recommended .collection-carousel-controls > button {
    width: 52px;
    height: 52px;
    flex-basis: 52px;
  }
}

@media (max-width: 680px) {
  .inner-v2-collection-grid {
    grid-template-columns: 1fr;
    gap: 22px;
  }

  .inner-v2-collection-media {
    margin-left: 18px;
  }

  .inner-v2-collection-copy {
    min-height: 244px;
    padding: 34px 28px 18px;
  }

  body[data-page="product"] #product-ranges {
    padding-top: 76px;
    padding-bottom: 86px;
  }

  body[data-page="product"] #product-ranges .inner-v2-heading {
    margin-bottom: 38px;
  }

  .inner-v2-product-actions .inner-v2-btn {
    min-width: 100%;
    flex-basis: 100%;
  }
}

@media (max-width: 520px) {
  .inner-v2-recommended .product-swiper {
    width: 100%;
    margin-left: 0;
    padding: 16px 4px 58px;
    overflow: visible;
  }

  .inner-v2-blog-detail + .inner-v2-recommended {
    padding-bottom: 82px;
  }

  .inner-v2-blog-detail + .inner-v2-recommended .product-swiper {
    padding-bottom: 0;
  }

  .inner-v2-recommended .product-swiper .product-card {
    box-shadow: 0 14px 20px rgba(5, 47, 34, .10);
  }

  .inner-v2-home-service .service-panel {
    height: 500px;
    min-height: 500px;
  }

  .inner-v2-home-service .service-panel-shade {
    background: linear-gradient(180deg, rgba(5, 35, 26, .08) 24%, rgba(5, 35, 26, .94) 78%);
  }

  .inner-v2-home-service .service-panel-copy {
    top: auto;
    right: 22px;
    bottom: 22px;
    left: 22px;
    display: flex;
    width: auto;
    height: auto;
    flex-direction: column;
    align-items: flex-start;
  }

  .inner-v2-home-service .service-panel-copy > span {
    display: none;
  }

  .inner-v2-home-service .service-panel-copy h3,
  .inner-v2-home-service .service-panel-copy p,
  .inner-v2-home-service .service-panel-copy .btn {
    position: static;
    inset: auto;
    display: block;
    transform: none;
  }

  .inner-v2-home-service .service-panel-copy h3 {
    margin-bottom: 12px;
    font-size: 26px;
    line-height: 1.08;
  }

  .inner-v2-home-service .service-panel-copy p {
    width: 100%;
    margin-bottom: 18px;
    font-size: 13px;
    line-height: 1.55;
    text-align: left;
  }

  .inner-v2-home-service .service-panel-copy .btn {
    min-height: 52px;
    align-self: flex-start;
  }

  .inner-v2-home-news {
    padding-bottom: 82px;
  }

  .inner-v2-home-news .news-card-image {
    position: relative;
    height: auto;
  }

  .inner-v2-home-news .news-card-image > a:first-child,
  .inner-v2-home-news .news-card-image img {
    display: block;
    width: 100%;
    height: auto;
  }

  .inner-v2-home-news .news-category {
    top: auto;
    bottom: -16px;
    left: 30px;
    display: inline-flex;
    height: 32px;
    min-height: 32px;
    align-items: center;
    justify-content: center;
    padding-top: 0;
    padding-bottom: 0;
    line-height: 1;
  }

  .inner-v2-recommended .collection-carousel-controls > button {
    width: 44px;
    height: 44px;
    flex-basis: 44px;
  }
}

@media (max-width: 768px) {
  .inner-v2-recommended > .container,
  .inner-v2-home-service > .container,
  .inner-v2-home-news > .container {
    width: calc(100% - 32px);
  }

  .inner-v2-recommended > .container {
    width: calc(100% - 32px);
    max-width: none;
    padding-right: 0;
    padding-left: 0;
  }

  .inner-v2-home-news .section-head h2 {
    font-size: 42px;
  }

  .inner-v2-recommended .collection-actions .btn {
    width: 184px;
  }

  .inner-v2-home-service .service-head .btn {
    width: 203px;
  }

  .inner-v2-home-news .section-head > .btn {
    width: 205px;
  }
}

/* Product-detail homepage-module parity.
   These two copied modules intentionally use the homepage's final cascade,
   including its independent content axes and responsive breakpoints. */
.inner-v2-home-copy {
  --home-max: 1440px;
  --home-gutter: 40px;
}

body[data-page="product"] .inner-v2-home-service {
  position: relative;
  padding: 104px 0 118px;
}

body[data-page="product"] .inner-v2-home-service::before {
  position: absolute;
  top: 0;
  right: 0;
  left: 0;
  z-index: 3;
  display: block;
  width: auto;
  height: 24px;
  background: radial-gradient(circle at 20px -3px, #fff 20px, transparent 21px);
  background-repeat: repeat-x;
  background-size: 40px 24px;
  content: '';
  pointer-events: none;
}

body[data-page="product"] .inner-v2-home-service::after {
  display: none;
}

body[data-page="product"] .inner-v2-home-service > .container {
  width: min(calc(100% - 80px), 1380px);
  max-width: 1380px;
  padding-right: 0;
  padding-left: 0;
}

body[data-page="product"] .inner-v2-home-service .service-head {
  margin-bottom: 56px;
  padding-right: 10px;
  padding-left: 10px;
  align-items: flex-end;
}

body[data-page="product"] .inner-v2-home-service .service-head > div:first-child {
  max-width: 660px;
}

body[data-page="product"] .inner-v2-home-service .service-head h2 {
  max-width: 640px;
  background: none;
  background-clip: border-box;
  -webkit-background-clip: border-box;
  color: #fff;
  font-size: clamp(42px, 3.8vw, 58px);
  letter-spacing: -.048em;
  -webkit-text-fill-color: currentColor;
  line-height: 1.08;
}

body[data-page="product"] .inner-v2-home-service .service-head .btn {
  display: flex;
  width: 212.788px;
  min-width: 210px;
  min-height: 64px;
  justify-content: center;
}

body[data-page="product"] .inner-v2-home-service .service-head .btn i {
  margin-left: 18px;
  font-size: 19px;
  line-height: 1;
}

body[data-page="product"] .inner-v2-home-service .service-showcase-body {
  width: min(100%, 1362px);
  max-width: 1362px;
  min-height: 430px;
  align-items: normal;
  margin-right: auto;
  margin-left: auto;
  grid-template-columns: 400px minmax(0, 1fr);
  gap: 44px;
}

body[data-page="product"] .inner-v2-home-service .service-tabs {
  display: flex;
  height: 500px;
  flex-direction: column;
  justify-content: space-between;
  border: 0;
}

body[data-page="product"] .inner-v2-home-service .service-tabs button,
body[data-page="product"] .inner-v2-home-service .service-tabs button.active,
body[data-page="product"] .inner-v2-home-service .service-tabs button:hover {
  width: 100%;
  min-height: 100px;
  grid-template-columns: minmax(0, 1fr) 52px;
  grid-template-rows: 30px auto;
  column-gap: 14px;
  row-gap: 8px;
  padding: 12px 0;
  border-bottom: 0;
  background: transparent;
}

body[data-page="product"] .inner-v2-home-service .service-tabs button small {
  grid-column: 1;
  grid-row: 1;
  align-self: end;
  font-size: 16px;
  font-weight: 700;
  letter-spacing: .05em;
  line-height: 1.75;
}

body[data-page="product"] .inner-v2-home-service .service-tabs button span {
  grid-column: 1;
  grid-row: 2;
  align-self: start;
  font-size: 23px;
  line-height: 1.75;
}

body[data-page="product"] .inner-v2-home-service .service-tabs button > i {
  display: block;
  grid-column: 2;
  grid-row: 1 / span 2;
  align-self: center;
  font-size: 17px;
  line-height: 1;
}

body[data-page="product"] .inner-v2-home-service .service-panel {
  position: relative;
  height: 500px;
  min-height: 500px;
  overflow: hidden;
  border-radius: 10px;
}

body[data-page="product"] .inner-v2-home-service .service-panel > img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

body[data-page="product"] .inner-v2-home-service .service-panel-shade {
  background: linear-gradient(90deg, rgba(3, 28, 21, .05) 20%, rgba(3, 28, 21, .28) 58%, rgba(3, 28, 21, .76) 100%);
}

body[data-page="product"] .inner-v2-home-service .service-panel-copy {
  inset: 0;
  width: auto;
  height: 500px;
}

body[data-page="product"] .inner-v2-home-service .service-panel-copy > span,
body[data-page="product"] .inner-v2-home-service .service-panel-copy h3 {
  display: none;
}

body[data-page="product"] .inner-v2-home-service .service-panel-copy p {
  position: absolute;
  top: 50%;
  right: 46px;
  width: min(430px, 48%);
  margin: 0;
  color: rgba(255, 255, 255, .92);
  font-size: 16px;
  font-weight: 550;
  line-height: 1.65;
  text-align: right;
  transform: translateY(-50%);
}

body[data-page="product"] .inner-v2-home-service .service-panel-copy .btn {
  position: absolute;
  right: 0;
  bottom: 0;
  display: flex;
  min-width: 220px;
  min-height: 62px;
  justify-content: center;
  border-radius: 0;
  color: #fff;
}

body[data-page="product"] .inner-v2-home-news {
  padding: 130px 0 260px;
  background: #f5f7f5;
}

body[data-page="product"] .inner-v2-home-news::before,
body[data-page="product"] .inner-v2-home-news::after {
  display: none;
}

body[data-page="product"] .inner-v2-home-news > .container {
  width: min(calc(100% - 80px), 1385px);
  max-width: 1385px;
  padding-right: 10px;
  padding-left: 10px;
}

body[data-page="product"] .inner-v2-home-news .section-head {
  display: flex;
  margin-bottom: 56px;
  align-items: flex-end;
  justify-content: space-between;
  gap: 40px;
}

body[data-page="product"] .inner-v2-home-news .eyebrow::before {
  display: none;
}

body[data-page="product"] .inner-v2-home-news .section-head::before {
  display: none;
}

body[data-page="product"] .inner-v2-home-news .section-head h2 {
  max-width: none;
  margin-top: 14px;
  background: none;
  background-clip: border-box;
  -webkit-background-clip: border-box;
  color: #082f23;
  font-size: clamp(42px, 4vw, 62px);
  letter-spacing: -.048em;
  -webkit-text-fill-color: currentColor;
  line-height: 1.08;
}

body[data-page="product"] .inner-v2-home-news .section-head .btn {
  width: 225.012px;
  min-width: 214px;
  min-height: 58px;
  padding: 15px 32px;
  justify-content: center;
  border: 0;
  border-radius: 2px;
  background: #41c575;
  box-shadow: none;
  color: #fff;
}

body[data-page="product"] .inner-v2-home-news .news-swiper {
  overflow: hidden;
}

body[data-page="product"] .inner-v2-home-news .swiper-slide {
  height: auto;
}

body[data-page="product"] .inner-v2-home-news .news-card {
  height: 100%;
  overflow: hidden;
  border: 0;
  border-radius: 10px;
  background: #fff;
  box-shadow: none;
}

body[data-page="product"] .inner-v2-home-news .news-card-image {
  position: relative;
  height: auto;
  overflow: visible;
  aspect-ratio: auto;
}

body[data-page="product"] .inner-v2-home-news .news-card-image > a:first-child {
  display: block;
  overflow: hidden;
  aspect-ratio: 1200 / 650;
}

body[data-page="product"] .inner-v2-home-news .news-card-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

body[data-page="product"] .inner-v2-home-news .news-card-body {
  display: flex;
  min-height: 238px;
  padding: 39px 30px 25px;
  flex-direction: column;
}

body[data-page="product"] .inner-v2-home-news .news-card h3 {
  min-height: 58px;
  margin: 0;
  color: #112c23;
  font-size: 23px;
  line-height: 1.3;
}

body[data-page="product"] .inner-v2-home-news .news-meta {
  display: flex;
  margin: 14px 0 0;
  align-items: center;
  flex-wrap: wrap;
  gap: 10px 18px;
  color: #7a8781;
  font-size: 14px;
}

body[data-page="product"] .inner-v2-home-news .news-card-foot {
  display: flex;
  margin-top: auto;
  padding-top: 20px;
  align-items: center;
  justify-content: space-between;
  border-top: 1px solid #dde2df;
  color: #64716b;
  font-size: 16px;
}

body[data-page="product"] .inner-v2-home-news .news-card-foot > a:last-child {
  display: grid;
  width: 42px;
  height: 42px;
  place-items: center;
  background: #eff2f0;
  font-size: 16px;
  font-weight: 400;
  line-height: 1.75;
}

body[data-page="product"] .inner-v2-home-news .news-learn {
  display: flex;
  align-items: center;
  color: #0a382a;
  font-size: 15px;
  font-weight: 750;
  line-height: 1.75;
}

body[data-page="product"] .inner-v2-home-news .news-category {
  position: absolute;
  bottom: -15px;
  left: 30px;
  z-index: 2;
  display: inline-flex;
  width: auto;
  height: auto;
  min-width: 112px;
  min-height: 31px;
  padding: 3px 13px 4px;
  align-items: center;
  justify-content: normal;
  border-radius: 3px;
  background: #41c575;
  color: #fff;
  font-size: 14px;
  font-weight: 600;
  line-height: 1.75;
  text-align: center;
}

@media (max-width: 1024px) {
  body[data-page="product"] .inner-v2-home-service > .container,
  body[data-page="product"] .inner-v2-home-news > .container {
    width: calc(100% - 48px);
  }

  body[data-page="product"] .inner-v2-home-service .service-showcase-body {
    min-height: 0;
    grid-template-columns: 1fr;
    gap: 26px;
  }

  body[data-page="product"] .inner-v2-home-service .service-tabs {
    display: grid;
    width: 100%;
    height: auto;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 12px;
    overflow-x: auto;
  }

  body[data-page="product"] .inner-v2-home-service .service-tabs button,
  body[data-page="product"] .inner-v2-home-service .service-tabs button.active,
  body[data-page="product"] .inner-v2-home-service .service-tabs button:hover {
    min-width: 0;
    min-height: 92px;
    grid-template-columns: 1fr;
    grid-template-rows: 28px auto;
    padding: 12px;
  }

  body[data-page="product"] .inner-v2-home-service .service-tabs button > i {
    display: none;
  }

  body[data-page="product"] .inner-v2-home-service .service-panel {
    min-height: 460px;
  }
}

@media (max-width: 767px) {
  body[data-page="product"] .inner-v2-home-service,
  body[data-page="product"] .inner-v2-home-news {
    padding-top: 82px;
    padding-bottom: 82px;
  }

  body[data-page="product"] .inner-v2-home-service .service-head,
  body[data-page="product"] .inner-v2-home-news .section-head {
    margin-bottom: 38px;
    align-items: flex-start;
    flex-direction: column;
  }

  body[data-page="product"] .inner-v2-home-service .service-tabs {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
    overflow: visible;
  }

  body[data-page="product"] .inner-v2-home-service .service-tabs button span {
    width: 100%;
    font-size: 15px;
    overflow-wrap: anywhere;
  }

  body[data-page="product"] .inner-v2-home-service .service-panel {
    height: 420px;
    min-height: 420px;
  }

  body[data-page="product"] .inner-v2-home-service .service-panel-copy p {
    top: auto;
    right: 24px;
    bottom: 94px;
    width: calc(100% - 48px);
    text-align: left;
    transform: none;
  }

  body[data-page="product"] .inner-v2-home-news .news-card-body {
    min-height: 225px;
  }
}

@media (max-width: 520px) {
  body[data-page="product"] .inner-v2-home-service > .container,
  body[data-page="product"] .inner-v2-home-news > .container {
    width: calc(100% - 32px);
  }

  body[data-page="product"] .inner-v2-home-service .service-panel,
  body[data-page="product"] .inner-v2-home-service .service-panel-copy {
    height: 420px;
    min-height: 420px;
  }

  body[data-page="product"] .inner-v2-home-service .service-panel-copy {
    inset: 0;
    display: block;
    width: auto;
  }

  body[data-page="product"] .inner-v2-home-service .service-panel-copy > span,
  body[data-page="product"] .inner-v2-home-service .service-panel-copy h3 {
    display: none;
  }

  body[data-page="product"] .inner-v2-home-service .service-panel-copy p {
    position: absolute;
    top: auto;
    right: 24px;
    bottom: 94px;
    left: auto;
    display: block;
    width: calc(100% - 48px);
    margin: 0;
    font-size: 16px;
    line-height: 1.65;
    text-align: left;
  }

  body[data-page="product"] .inner-v2-home-service .service-panel-copy .btn {
    position: absolute;
    right: 0;
    bottom: 0;
    left: auto;
    display: flex;
    min-width: 220px;
    min-height: 62px;
  }

  body[data-page="product"] .inner-v2-home-news .news-card-image > a:first-child {
    aspect-ratio: 1200 / 650;
  }

  body[data-page="product"] .inner-v2-home-news .news-card-image img {
    height: 100%;
  }
}

/* Final blog-index alignment: use homepage dimensions, with white section and gray cards. */
body[data-page="blog"] .inner-v2-blog {
  --news-arrow-bg: #fff;
  background: #fff;
}

body[data-page="blog"] .inner-v2-blog > .container {
  width: min(calc(100% - 80px), 1365px);
  max-width: 1365px;
}

body[data-page="blog"] .inner-v2-blog-home-grid .news-card {
  background: #f4f5f4;
}

body[data-page="blog"] .inner-v2-blog-home-grid .news-card-body > p {
  margin: 12px 0 24px;
}

body[data-page="blog"] .inner-v2-blog-home-grid .news-card-foot {
  margin-top: 0;
}

@media (max-width: 768px) {
  body[data-page="blog"] .inner-v2-blog > .container {
    width: calc(100% - 32px);
  }
}

/* Contact page: shared inner-page width, lighter form and clearer contact cards. */
body[data-page="contact"] .contact-section > .container {
  width: min(calc(100% - 80px), 1385px);
  max-width: 1385px;
  padding-right: 0;
  padding-left: 0;
}

body[data-page="contact"] .contact-cards {
  gap: 20px;
  margin-bottom: 84px;
  border: 0;
}

body[data-page="contact"] .contact-cards article {
  position: relative;
  min-height: 205px;
  padding: 30px;
  overflow: hidden;
  border: 1px solid #e1e8e4;
  border-radius: 16px;
  background: #f7f9f7;
  transition: border-color .3s ease, box-shadow .3s ease, transform .3s ease;
}

body[data-page="contact"] .contact-cards article::after {
  position: absolute;
  right: -36px;
  bottom: -42px;
  width: 110px;
  height: 110px;
  border: 1px solid rgba(67, 200, 121, .2);
  border-radius: 50%;
  content: '';
}

body[data-page="contact"] .contact-cards article:hover {
  border-color: rgba(67, 200, 121, .55);
  box-shadow: 0 18px 40px rgba(5, 47, 34, .08);
  transform: translateY(-5px);
}

body[data-page="contact"] .contact-cards article > i {
  width: 54px;
  height: 54px;
  margin-bottom: 26px;
  color: #fff;
  background: var(--primary);
  box-shadow: 0 10px 22px rgba(67, 200, 121, .22);
  font-size: 21px;
}

body[data-page="contact"] .contact-cards h3 {
  margin: 0 0 10px;
  color: var(--forest);
  font-size: 20px;
  line-height: 1.25;
}

body[data-page="contact"] .contact-cards p,
body[data-page="contact"] .contact-cards a {
  position: relative;
  z-index: 1;
  color: #718079;
  font-size: 15px;
  line-height: 1.65;
}

body[data-page="contact"] .contact-cards a {
  transition: color .25s ease;
}

body[data-page="contact"] .contact-cards a:hover {
  color: var(--primary);
}

body[data-page="contact"] .contact-main {
  grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr);
  gap: 56px;
}

body[data-page="contact"] .inquiry-form {
  padding: 42px;
  color: var(--forest);
  border: 1px solid #e0e7e3;
  border-radius: 16px;
  background: #f4f6f3;
  box-shadow: 0 18px 46px rgba(5, 47, 34, .07);
}

body[data-page="contact"] .inquiry-form label {
  margin-bottom: 9px;
  color: var(--forest);
  font-size: 13px;
}

body[data-page="contact"] .inquiry-form input,
body[data-page="contact"] .inquiry-form select,
body[data-page="contact"] .inquiry-form textarea {
  min-height: 54px;
  color: var(--forest);
  border: 1px solid #dce5df;
  border-radius: 6px;
  background: #fff;
  box-shadow: none;
  transition: border-color .25s ease, box-shadow .25s ease;
}

body[data-page="contact"] .inquiry-form textarea {
  min-height: 176px;
}

body[data-page="contact"] .inquiry-form input::placeholder,
body[data-page="contact"] .inquiry-form textarea::placeholder {
  color: #8a9791;
  opacity: 1;
}

body[data-page="contact"] .inquiry-form input:focus,
body[data-page="contact"] .inquiry-form select:focus,
body[data-page="contact"] .inquiry-form textarea:focus {
  border-color: var(--primary);
  outline: 0;
  box-shadow: 0 0 0 3px rgba(67, 200, 121, .12);
}

body[data-page="contact"] .inquiry-form .btn {
  min-height: 62px;
  gap: 20px;
  margin-top: 4px;
  color: #fff;
  border: 1px solid var(--primary);
  border-radius: 4px;
  background: var(--primary);
  font-size: 16px;
  box-shadow: 0 8px 22px rgba(5, 47, 34, .05);
}

body[data-page="contact"] .inquiry-form .btn:hover {
  color: #fff;
  border-color: var(--forest);
  background: var(--forest);
}

body[data-page="contact"] .inquiry-form .btn i {
  font-size: 18px;
  line-height: 1;
}

body[data-page="contact"] .contact-map-section {
  padding: 0 0 120px;
  background: #fff;
}

body[data-page="contact"] .contact-map-section > .container {
  width: min(calc(100% - 80px), 1385px);
  max-width: 1385px;
  padding-right: 0;
  padding-left: 0;
}

body[data-page="contact"] .contact-map-heading {
  display: none;
}

body[data-page="contact"] .contact-map-frame {
  height: 480px;
  overflow: hidden;
  border: 1px solid #e0e7e3;
  border-radius: 18px;
  background: #eef2ef;
  box-shadow: 0 20px 50px rgba(5, 47, 34, .08);
}

body[data-page="contact"] .contact-map-frame iframe {
  display: block;
  width: 100%;
  height: 100%;
  border: 0;
}

@media (max-width: 1024px) {
  body[data-page="contact"] .contact-cards {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  body[data-page="contact"] .contact-main {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 680px) {
  body[data-page="contact"] .contact-section > .container {
    width: calc(100% - 32px);
  }

  body[data-page="contact"] .contact-map-section > .container {
    width: calc(100% - 32px);
  }

  body[data-page="contact"] .contact-cards {
    grid-template-columns: 1fr;
    gap: 14px;
    margin-bottom: 58px;
  }

  body[data-page="contact"] .contact-cards article {
    min-height: 0;
  }

  body[data-page="contact"] .inquiry-form {
    grid-template-columns: 1fr;
    padding: 26px 20px;
  }

  body[data-page="contact"] .inquiry-form > div,
  body[data-page="contact"] .inquiry-form .full {
    grid-column: 1;
  }

  body[data-page="contact"] .contact-map-section {
    padding-bottom: 76px;
  }

  body[data-page="contact"] .contact-map-frame {
    height: 360px;
    border-radius: 12px;
  }
}

/* v185: align every contact module with the header content axis. */
@media (max-width: 768px) {
  html body[data-page="contact"] .contact-section > .container,
  html body[data-page="contact"] .contact-map-section > .container {
    width: calc(100% - 40px);
    max-width: none;
    padding-right: 0;
    padding-left: 0;
  }
}

/* Blog detail: editorial column with reference-style category and recommendation sidebar. */
body[data-page="blog"] .inner-v2-blog-detail {
  background: #fff;
}

.inner-v2-blog-detail-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 350px;
  gap: 64px;
  align-items: start;
}

.inner-v2-blog-article {
  min-width: 0;
}

.inner-v2-blog-kicker {
  display: flex;
  align-items: center;
  gap: 14px;
  margin-bottom: 22px;
  color: var(--primary);
  font-size: 12px;
  font-weight: 800;
  letter-spacing: .12em;
  text-transform: uppercase;
}

.inner-v2-blog-kicker::before {
  width: 34px;
  height: 2px;
  background: var(--primary);
  content: "";
}

.inner-v2-blog-article > h1 {
  max-width: 890px;
  margin: 0 0 30px;
  color: var(--forest);
  font-size: clamp(40px, 3.5vw, 56px);
  font-weight: 680;
  letter-spacing: -.055em;
  line-height: 1.02;
}

.inner-v2-blog-byline {
  display: flex;
  align-items: center;
  gap: 15px;
  margin-bottom: 34px;
  padding: 17px 0;
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
}

.inner-v2-blog-byline img {
  width: 44px;
  height: 44px;
  flex: 0 0 44px;
  border-radius: 50%;
  object-fit: cover;
  object-position: 50% 9%;
  background: #dfe7e2;
}

.inner-v2-blog-byline > div {
  display: flex;
  min-width: 0;
  flex-direction: column;
  gap: 3px;
}

.inner-v2-blog-byline strong {
  color: var(--forest);
  font-size: 15px;
}

.inner-v2-blog-byline span,
.inner-v2-blog-byline time {
  color: var(--muted);
  font-size: 13px;
}

.inner-v2-blog-byline time {
  margin-left: auto;
  white-space: nowrap;
}

.inner-v2-blog-feature {
  display: block;
  width: 100%;
  height: 540px;
  margin-bottom: 38px;
  border-radius: 18px;
  object-fit: cover;
}

.inner-v2-blog-lead {
  margin: 0 0 24px;
  color: var(--forest);
  font-size: 21px;
  line-height: 1.65;
}

.inner-v2-blog-article > section {
  padding: 21px 0;
}

.inner-v2-blog-article > section h2 {
  margin: 0 0 17px;
  color: var(--forest);
  font-size: clamp(30px, 2.5vw, 40px);
  font-weight: 670;
  letter-spacing: -.04em;
  line-height: 1.12;
}

.inner-v2-blog-article > section h3 {
  margin: 28px 0 10px;
  color: var(--forest);
  font-size: 23px;
}

.inner-v2-blog-article > section p {
  margin: 0;
  color: var(--muted);
  font-size: 16px;
  line-height: 1.85;
}

.inner-v2-blog-article .inner-v2-article-note {
  margin: 26px 0 50px;
  padding: 30px 34px;
  border: 0;
  border-left: 4px solid var(--primary);
  border-radius: 0 12px 12px 0;
  background: #f2f5f3;
}

.inner-v2-blog-article .inner-v2-article-note strong {
  color: var(--forest);
  font-size: 21px;
}

.inner-v2-blog-article .inner-v2-article-note ul {
  margin-bottom: 0;
}

.inner-v2-blog-prevnext {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  margin: 0 0 38px;
  border: 1px solid var(--line);
}

.inner-v2-blog-prevnext > * {
  position: relative;
  display: flex;
  min-height: 110px;
  flex-direction: column;
  justify-content: center;
  padding: 20px 30px 18px 62px;
  color: var(--forest);
  background: #f7f8f7;
  transition: color .3s ease, background-color .3s ease;
}

.inner-v2-blog-prevnext > .is-next {
  padding-right: 62px;
  padding-left: 30px;
  border-left: 1px solid var(--line);
  text-align: right;
}

.inner-v2-blog-prevnext small {
  display: block;
  margin-bottom: 8px;
  color: var(--primary);
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .11em;
  text-transform: uppercase;
}

.inner-v2-blog-prevnext strong {
  display: block;
  font-size: 18px;
  line-height: 1.35;
}

.inner-v2-blog-prevnext .inner-v2-blog-nav-arrow {
  position: absolute;
  top: 50%;
  right: auto;
  left: 28px;
  font-size: 22px;
  transform: translateY(-50%);
}

.inner-v2-blog-prevnext > .is-next .inner-v2-blog-nav-arrow {
  right: 28px;
  left: auto;
}

.inner-v2-blog-prevnext > a:hover {
  color: #fff;
  background: var(--forest);
}

.inner-v2-blog-prevnext > .is-disabled {
  color: #98a39d;
  background: #fbfcfb;
  cursor: not-allowed;
  user-select: none;
}

.inner-v2-blog-prevnext > .is-disabled small {
  color: #a5b1aa;
}

.inner-v2-blog-prevnext > .is-disabled .inner-v2-blog-nav-arrow {
  opacity: .3;
}

.inner-v2-blog-share {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 22px;
  margin-bottom: 38px;
  padding-bottom: 38px;
  border-bottom: 1px solid var(--line);
}

.inner-v2-blog-share > strong {
  color: var(--forest);
  font-size: 17px;
}

.inner-v2-blog-share > div {
  display: flex;
  gap: 9px;
}

.inner-v2-blog-share a {
  display: grid;
  width: 42px;
  height: 42px;
  place-items: center;
  border: 1px solid var(--line);
  border-radius: 50%;
  color: var(--forest);
  background: transparent;
  transition: color .25s ease, border-color .25s ease, background-color .25s ease;
}

.inner-v2-blog-share a:hover {
  border-color: var(--primary);
  color: #fff;
  background: var(--primary);
}

.inner-v2-blog-author {
  display: grid;
  grid-template-columns: 100px minmax(0, 1fr);
  gap: 24px;
  align-items: center;
  padding: 30px;
  border-radius: 16px;
  background: #f2f5f3;
}

.inner-v2-blog-author img {
  width: 100px;
  height: 110px;
  border-radius: 12px;
  object-fit: cover;
  object-position: 50% 8%;
  background: #dfe7e2;
}

.inner-v2-blog-author span {
  color: var(--primary);
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .11em;
  text-transform: uppercase;
}

.inner-v2-blog-author h2 {
  margin: 0 0 10px;
  color: var(--forest);
  font-size: 28px;
}

.inner-v2-blog-author p {
  margin: 0;
  color: var(--muted);
  font-size: 14px;
  line-height: 1.75;
}

.inner-v2-blog-sidebar {
  position: sticky;
  top: 112px;
  display: grid;
  align-self: start;
  gap: 30px;
  overflow: visible;
}

.blog-sidebar-card {
  padding: 30px;
  background: #f3f5f3;
}

.blog-sidebar-card-title {
  position: relative;
  margin: 0 0 22px;
  padding-top: 17px;
  color: var(--forest);
  font-size: 25px;
}

.blog-sidebar-card-title::before {
  position: absolute;
  top: 0;
  left: 0;
  width: 4px;
  height: 15px;
  background: var(--primary);
  content: "";
}

.blog-sidebar-category-nav a {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  min-height: 51px;
  border-bottom: 1px solid #dce3de;
  color: var(--muted);
  font-size: 15px;
  transition: color .25s ease, padding-left .25s ease;
}

.blog-sidebar-category-nav a:last-child {
  border-bottom: 0;
}

.blog-sidebar-category-nav a b {
  color: var(--primary);
  font-size: 18px;
  font-weight: 500;
  line-height: 1;
  transition: transform .25s ease;
}

.blog-sidebar-category-nav a:hover {
  padding-left: 7px;
  color: var(--primary);
}

.blog-sidebar-category-nav a:hover b {
  transform: translateX(4px);
}

.inner-v2-blog-recommended {
  display: grid;
  gap: 18px;
}

.inner-v2-blog-recommended > a {
  display: grid;
  grid-template-columns: 94px minmax(0, 1fr);
  gap: 15px;
  align-items: center;
  color: var(--forest);
}

.inner-v2-blog-recommended img {
  width: 94px;
  height: 80px;
  border-radius: 8px;
  object-fit: cover;
}

.inner-v2-blog-recommended span {
  display: flex;
  min-width: 0;
  flex-direction: column;
  gap: 7px;
}

.inner-v2-blog-recommended small {
  color: var(--primary);
  font-size: 10px;
  font-weight: 800;
  line-height: 1.35;
  text-transform: uppercase;
}

.inner-v2-blog-recommended strong {
  font-size: 14px;
  line-height: 1.35;
  transition: color .25s ease;
}

.inner-v2-blog-recommended > a:hover strong {
  color: var(--primary);
}

@media (max-width: 1080px) {
  .inner-v2-blog-detail-layout {
    grid-template-columns: minmax(0, 1fr) 310px;
    gap: 40px;
  }

  .blog-sidebar-card {
    padding: 25px;
  }
}

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

  .inner-v2-blog-sidebar {
    position: static;
    max-height: none;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    overflow: visible;
  }
}

@media (max-width: 680px) {
  .inner-v2-blog-article > h1 {
    font-size: clamp(38px, 11vw, 50px);
  }

  .inner-v2-blog-byline {
    align-items: flex-start;
    flex-wrap: wrap;
  }

  .inner-v2-blog-byline time {
    width: 100%;
    margin-left: 59px;
  }

  .inner-v2-blog-feature {
    height: 320px;
    border-radius: 12px;
  }

  .inner-v2-blog-lead {
    font-size: 18px;
  }

  .inner-v2-blog-prevnext {
    grid-template-columns: 1fr;
  }

  .inner-v2-blog-prevnext > .is-next {
    border-top: 1px solid var(--line);
    border-left: 0;
  }

  .inner-v2-blog-share {
    align-items: flex-start;
    flex-direction: column;
  }

  .inner-v2-blog-author {
    grid-template-columns: 1fr;
  }

  .inner-v2-blog-author img {
    width: 88px;
    height: 96px;
  }

  .inner-v2-blog-sidebar {
    grid-template-columns: 1fr;
  }
}

/* Final shell alignment: all inner-page content shares one standard edge. */
html body[data-page]:not(.home-page) main .container,
html body[data-page]:not(.home-page) .breadcrumb .container {
  width: min(calc(100% - 80px), 1362px);
  max-width: 1362px;
  margin-right: auto;
  margin-left: auto;
  padding-right: 0;
  padding-left: 0;
}

body:not(.home-page) .inner-v2-search-page .inner-v2-search-grid {
  max-width: none;
}

body:not(.home-page) .inner-v2-search-page .search-page-form {
  width: min(100%, 1050px);
}

@media (max-width: 768px) {
  html body[data-page]:not(.home-page) main .container,
  html body[data-page]:not(.home-page) .breadcrumb .container {
    width: calc(100% - 40px);
    max-width: none;
  }

  body:not(.home-page) .inner-v2-search-page .search-page-form {
    width: 100%;
  }

  body:not(.home-page) .inner-v2-search-page .search-page-form input {
    padding: 10px 0;
    color: var(--forest);
    font-size: 20px;
    line-height: 1.35;
  }

  body:not(.home-page) .inner-v2-search-page .search-page-form input::placeholder {
    color: #8b9692;
    opacity: 1;
  }

  body:not(.home-page) .inner-v2-search-page .search-page-form button {
    width: 48px;
    font-size: 20px;
  }
}

/* Blog detail keeps a narrow reading inset after the shared shell is established. */
html body[data-page="blog"] main .inner-v2-blog-detail > .container {
  width: min(calc(100% - 80px), 1365px);
  max-width: 1365px;
  padding-right: 10px;
  padding-left: 10px;
}

@media (max-width: 680px) {
  html body[data-page="blog"] main .inner-v2-blog-detail > .container {
    width: calc(100% - 32px);
  }
}

/* Keep every green action control readable like the homepage controls. */
body .btn-primary,
body .btn-primary:hover,
body .header-quote,
body .header-quote:hover,
body .circle-link,
body .inner-v2-circle,
body .inner-v2-btn:not(.is-light),
body .inner-v2-btn:not(.is-light):hover,
body .inner-v2-pagination a.active,
body .inner-v2-pagination a:hover,
body .inner-v2-pagination a.active:hover,
body .inner-v2-category-tabs a.active,
body .inner-v2-category-tabs a.active:hover,
body .inner-v2-category-list button:hover,
body .inner-v2-category-list article.is-open button,
body .filter-bar button.active,
body .filter-bar button:hover,
body .pagination a.active,
body .pagination a:hover,
body .home-media-play,
body .hero-round-link,
body .inner-v2-project-card:hover .inner-v2-project-arrow,
body .about-v3-play,
body .about-v3-cert-mark {
  color: #fff;
}

body .circle-link i,
body .inner-v2-circle i,
body .header-quote i,
body .btn-primary i,
body .inner-v2-btn:not(.is-light) i {
  color: inherit;
}

/* Keep the mobile footer in normal document flow.  The desktop newsletter
   card intentionally overlaps the footer, but carrying its negative bottom
   margin into the narrow layout pulls the logo and footer columns into the
   card itself. */
@media (max-width: 768px) {
  .site-footer .newsletter-card {
    margin-bottom: 0;
  }

}

body:not(.home-page) .site-footer {
  margin-top: 176px;
  padding-top: 0;
  background: #06251c;
}

body:not(.home-page) .site-footer > .container {
  width: min(100%, 1440px);
  max-width: 1440px;
  padding-right: 36px;
  padding-left: 36px;
}

body:not(.home-page) .newsletter-card {
  width: min(1540px, calc(100vw - 80px));
  min-height: 288px;
  grid-template-columns: 500px minmax(0, 1fr);
  margin-right: auto;
  margin-bottom: -70px;
  margin-left: auto;
  border-radius: 30px;
  box-shadow: 0 26px 66px rgba(3, 37, 27, .14);
  transform: translate(-50%, -50%);
}

body:not(.home-page) .newsletter-visual {
  width: 390px;
  height: 330px;
  margin-top: -42px;
  margin-left: 24px;
  border-radius: 26px 0 0 26px;
  -webkit-mask-image: linear-gradient(90deg, #000 0%, #000 68%, transparent 100%);
  mask-image: linear-gradient(90deg, #000 0%, #000 68%, transparent 100%);
}

body:not(.home-page) .newsletter-visual img {
  width: 116%;
  height: 330px;
  object-position: 52% 66%;
}

body:not(.home-page) .newsletter-content {
  padding: 40px 64px 42px 18px;
}

body:not(.home-page) .newsletter-card .newsletter-title {
  margin-bottom: 30px;
  font-size: clamp(36px, 3vw, 48px);
}

body:not(.home-page) .newsletter-card form {
  min-height: 78px;
  padding: 7px;
  border: 0;
  border-radius: 999px;
}

body:not(.home-page) .newsletter-card input {
  padding-left: 30px;
}

body:not(.home-page) .newsletter-card button {
  min-width: 230px;
  min-height: 62px;
  border-radius: 999px;
}

body:not(.home-page) .footer-grid {
  padding-top: 34px;
}

@media (max-width: 1100px) {
  body:not(.home-page) .newsletter-card {
    grid-template-columns: 370px minmax(0, 1fr);
  }

  body:not(.home-page) .newsletter-visual {
    margin-left: 10px;
  }

  body:not(.home-page) .newsletter-content {
    padding-right: 34px;
  }
}

@media (max-width: 768px) {
  body:not(.home-page) .site-footer {
    margin-top: 138px;
  }

  body:not(.home-page) .site-footer > .container {
    width: calc(100% - 40px);
    max-width: none;
    padding-right: 20px;
    padding-left: 20px;
  }

  body:not(.home-page) .newsletter-card {
    width: calc(100vw - 40px);
    min-height: 0;
    grid-template-columns: 1fr;
    margin-bottom: 0;
    overflow: hidden;
    transform: translate(-50%, -50%);
  }

  body:not(.home-page) .newsletter-visual {
    width: 100%;
    height: 188px;
    margin: 0;
    border-radius: 0;
    -webkit-mask-image: linear-gradient(180deg, #000 0%, #000 66%, transparent 100%);
    mask-image: linear-gradient(180deg, #000 0%, #000 66%, transparent 100%);
  }

  body:not(.home-page) .newsletter-visual img {
    width: 100%;
    height: 220px;
  }

  body:not(.home-page) .newsletter-content {
    padding: 10px 24px 32px;
    text-align: left;
  }

  body:not(.home-page) .newsletter-card .newsletter-title {
    font-size: 30px;
  }

  body:not(.home-page) .newsletter-card form {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 0;
    border-radius: 16px;
  }

  body:not(.home-page) .newsletter-card button {
    min-width: 132px;
    min-height: 54px;
    border-radius: 10px;
  }

  body:not(.home-page) .footer-grid {
    padding-top: 34px;
  }
}

@media (max-width: 520px) {
  body:not(.home-page) .site-footer > .container {
    width: calc(100% - 32px);
    padding-right: 16px;
    padding-left: 16px;
  }

  body:not(.home-page) .newsletter-card form {
    grid-template-columns: 1fr;
    padding: 7px;
  }

  body:not(.home-page) .newsletter-card input,
  body:not(.home-page) .newsletter-card button {
    width: 100%;
  }
}

/* Shared header: a single late cascade replaces the former stacked overrides. */
body[data-page] .topbar {
  width: 100%;
  margin: 0;
  overflow: hidden;
  background: #062f23;
}

body[data-page] .site-header > .nav-bar {
  box-shadow: 0 4px 14px rgba(7, 41, 31, .08);
}

@media (min-width: 769px) {
  body[data-page] .topbar {
    min-height: 51px;
    border-radius: 0 0 38px 38px;
  }

  body[data-page] .topbar-inner,
  body[data-page] .nav-inner {
    width: min(calc(100% - 80px), 1385px);
    max-width: 1385px;
    margin: 0 auto;
    padding-right: 0;
    padding-left: 0;
  }

  body[data-page] .topbar-inner {
    min-height: 51px;
  }

  body[data-page] .nav-bar,
  body[data-page] .nav-inner,
  body[data-page] .desktop-nav > ul > li > a,
  body[data-page] .nav-parent > a {
    min-height: 90px;
    height: 90px;
  }

  body[data-page] .desktop-nav > ul > li > a,
  body[data-page] .nav-parent > a {
    padding-right: 18px;
    padding-left: 18px;
    font-size: 14px;
    font-weight: 600;
  }

  body[data-page] .desktop-nav .mega-menu.product-mega {
    top: 100%;
    width: 780px;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0 30px;
    padding: 20px 30px 35px;
    border-top: 0;
    border-radius: 0 0 10px 10px;
    box-shadow: 0 3px 20px rgba(0, 0, 0, .05);
  }

  body[data-page] .desktop-nav .product-mega > div {
    gap: 0;
  }

  body[data-page] .desktop-nav .product-mega > div a {
    display: flex;
    min-height: 47px;
    align-items: center;
    justify-content: space-between;
    padding: 12px 18px;
    border-bottom: 1px solid #e7ece9;
    color: #50635b;
    font-size: 15px;
    font-weight: 650;
    transition: color .25s ease, background-color .25s ease, padding-left .25s ease;
  }

  body[data-page] .desktop-nav .product-mega > div a i {
    color: #39bf72;
    font-size: 14px;
    opacity: 0;
    transform: translateX(-7px);
    transition: opacity .25s ease, transform .25s ease;
  }

  body[data-page] .desktop-nav .product-mega > div a:hover {
    padding-left: 22px;
    color: #25aa5e;
    background: #f6faf7;
  }

  body[data-page] .desktop-nav .product-mega > div a:hover i {
    opacity: 1;
    transform: translateX(0);
  }

  body[data-page] .desktop-nav .dropdown-menu {
    top: 100%;
    padding: 12px 0 18px;
    border-top: 0;
    border-radius: 0 0 10px 10px;
    box-shadow: 0 3px 20px rgba(0, 0, 0, .06);
  }
}

/* v103: keep the homepage news, newsletter and footer on one content axis. */
html body.home-page .site-footer > .container {
  width: min(calc(100% - 80px), var(--case-news-width, 1385px));
  max-width: var(--case-news-width, 1385px);
  margin-right: auto;
  margin-left: auto;
  padding-right: 0;
  padding-left: 0;
}

html body.home-page .site-footer .newsletter-card,
html body.home-page .site-footer .newsletter-card form {
  box-sizing: border-box;
}

html body[data-page] .site-footer {
  margin-top: 176px;
  padding: 0 0 25px;
  overflow: visible;
  background: #062f23;
}

html body[data-page] .site-footer > .container {
  position: relative;
  z-index: 1;
  width: min(calc(100% - 80px), 1385px);
  max-width: 1385px;
  margin-right: auto;
  margin-left: auto;
  padding-right: 0;
  padding-left: 0;
}

html body[data-page] .site-footer .newsletter-card {
  position: relative;
  left: 50%;
  display: grid;
  min-height: 352px;
  grid-template-columns: 500px minmax(0, 1fr);
  margin: 0 0 -70px;
  padding: 0;
  overflow: visible;
  border-radius: 30px;
  background-color: #43c879;
  background-image: linear-gradient(90deg, rgba(67, 200, 121, .94), rgba(67, 200, 121, .88)), url('../images/textile-collection.png');
  background-repeat: no-repeat;
  background-position: center 45%;
  background-size: cover;
  transform: translate(-50%, -50%);
}

html body[data-page] .site-footer .newsletter-visual {
  position: absolute;
  z-index: 2;
  top: -110px;
  right: auto;
  bottom: auto;
  left: 40px;
  display: block;
  width: 500px;
  height: 435px;
  margin: 0;
  overflow: visible;
  border-radius: 0;
  -webkit-mask-image: none;
  mask-image: none;
}

html body[data-page] .site-footer .newsletter-visual::after {
  display: none;
}

html body[data-page] .site-footer .newsletter-visual img {
  position: absolute;
  top: 0;
  right: auto;
  bottom: auto;
  left: 55px;
  display: block;
  width: auto;
  max-width: none;
  height: 435px;
  object-fit: contain;
  object-position: center;
  transform: none;
  filter: drop-shadow(0 24px 22px rgba(4, 34, 25, .16));
}

html body[data-page] .site-footer .newsletter-content {
  position: relative;
  z-index: 1;
  grid-column: 2;
  min-width: 0;
  padding: 48px 64px 48px 24px;
}

html body[data-page] .site-footer .newsletter-card .footer-kicker {
  display: none;
}

html body[data-page] .site-footer .newsletter-card .newsletter-title {
  max-width: 100%;
  margin: 0 0 28px;
  color: #fff;
  font-size: clamp(44px, 3.5vw, 64px);
  font-weight: 760;
  line-height: 1.08;
  letter-spacing: -.035em;
  white-space: normal;
}

html body[data-page] .site-footer .newsletter-card form {
  display: grid;
  min-height: 88px;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 0;
  padding: 6px;
  overflow: hidden;
  border: 0;
  border-radius: 999px;
  background: #fff;
  box-shadow: none;
}

html body[data-page] .site-footer .newsletter-card input {
  min-width: 0;
  min-height: 74px;
  padding: 0 24px;
  border: 0;
  color: #31483f;
  background: transparent;
  box-shadow: none;
  -webkit-text-fill-color: #31483f;
}

html body[data-page] .site-footer .newsletter-card button,
html body[data-page] .site-footer .newsletter-card button:hover {
  min-width: 270px;
  min-height: 74px;
  justify-content: center;
  border: 0;
  border-radius: 999px;
  color: #fff;
  background: #2fb56a;
}

html body[data-page] .site-footer .footer-grid {
  width: 100%;
  padding-top: 34px;
}

@media (max-width: 1180px) and (min-width: 769px) {
  html body[data-page] .site-footer .newsletter-card {
    width: calc(100vw - 48px);
    min-height: 320px;
    grid-template-columns: 42% minmax(0, 1fr);
  }

  html body[data-page] .site-footer .newsletter-visual {
    top: -88px;
    left: 0;
    width: 42%;
    height: 390px;
  }

  html body[data-page] .site-footer .newsletter-visual img {
    left: 34px;
    height: 390px;
  }

  html body[data-page] .site-footer .newsletter-content {
    padding: 38px 34px 38px 20px;
  }

  html body[data-page] .site-footer .newsletter-card form {
    min-height: 76px;
  }

  html body[data-page] .site-footer .newsletter-card input,
  html body[data-page] .site-footer .newsletter-card button {
    min-height: 62px;
  }

  html body[data-page] .site-footer .newsletter-card button {
    min-width: 190px;
  }
}

@media (max-width: 768px) {
  html body[data-page] .topbar-inner,
  html body[data-page] .nav-inner {
    width: 100%;
    max-width: none;
    padding-right: 20px;
    padding-left: 20px;
  }

  html body[data-page] .site-footer {
    margin-top: 0;
    padding: 22px 0 25px;
  }

  html body[data-page] .site-footer > .container {
    width: calc(100% - 32px);
    max-width: none;
    padding-right: 0;
    padding-left: 0;
  }

  html body[data-page] .site-footer .newsletter-card {
    left: auto;
    min-height: 0;
    grid-template-columns: 1fr;
    margin: 0 0 34px;
    overflow: hidden;
    border-radius: 22px;
    transform: none;
  }

  html body[data-page] .site-footer .newsletter-visual {
    display: none;
  }

  html body[data-page] .site-footer .newsletter-content {
    display: flex;
    grid-column: 1;
    min-height: 285px;
    flex-direction: column;
    justify-content: center;
    padding: 36px 20px 28px;
    text-align: center;
  }

  html body[data-page] .site-footer .newsletter-card .newsletter-title {
    margin-bottom: 22px;
    font-size: 28px;
    line-height: 1.12;
  }

  html body[data-page] .site-footer .newsletter-card form {
    display: grid;
    min-height: 0;
    grid-template-columns: 1fr;
    gap: 8px;
    padding: 6px;
    border-radius: 18px;
  }

  html body[data-page] .site-footer .newsletter-card input,
  html body[data-page] .site-footer .newsletter-card button {
    width: 100%;
    min-height: 56px;
  }

  html body[data-page] .site-footer .newsletter-card button {
    min-width: 0;
    border-radius: 12px;
  }

  html body[data-page] .site-footer .footer-grid {
    gap: 34px;
    padding-top: 18px;
    padding-bottom: 44px;
  }
}

/* v104: homepage newsletter follows the news/footer content axis. */

/* v105: all pages share the same 1385px newsletter content axis. */
html body[data-page] .site-footer .newsletter-card {
  width: 100%;
  max-width: 100%;
}

@media (max-width: 768px) {
  html body[data-page] .site-footer .newsletter-card {
    width: 100%;
    max-width: none;
  }
}

/* v104: homepage newsletter shares news content axis. */
html body.home-page .site-footer .newsletter-card { width: min(calc(100% - 80px), var(--case-news-width, 1385px)); max-width: var(--case-news-width, 1385px); }
@media (max-width: 768px) { html body.home-page .site-footer .newsletter-card { width: 100%; max-width: none; } }

/* v106: the newsletter always matches its footer container on every page. */
html body[data-page] #site-footer > .container > .newsletter-card {
  width: 100%;
  max-width: 100%;
}

/* v108: enlarge and lift the product so it breaks above the newsletter card. */
@media (min-width: 769px) {
  html body[data-page] #site-footer .newsletter-visual {
    top: -96px;
    bottom: auto;
    left: 0;
    width: 520px;
    height: 412px;
    overflow: hidden;
  }

  html body[data-page] #site-footer .newsletter-visual img {
    top: 0;
    right: auto;
    bottom: auto;
    left: 18px;
    width: 824px;
    max-width: none;
    height: auto;
    object-fit: initial;
    object-position: initial;
    transform: none;
  }
}

/* v115: balance the chair and refine the desktop newsletter controls. */
@media (min-width: 1181px) {
  html body[data-page] #site-footer .newsletter-visual {
    top: clamp(-128px, -7vw, -108px);
    bottom: auto;
    left: 22px;
    width: 510px;
    height: 452px;
    overflow: visible;
  }

  html body[data-page] #site-footer .newsletter-visual img {
    top: 16px;
    right: auto;
    bottom: auto;
    left: 14px;
    width: 450px;
    max-width: none;
    height: auto;
    object-fit: contain;
  }

  html body[data-page] #site-footer .newsletter-card form {
    min-height: 80px;
  }

  html body[data-page] #site-footer .newsletter-card input,
  html body[data-page] #site-footer .newsletter-card button {
    min-height: 66px;
  }

  html body[data-page] #site-footer .newsletter-card button .icon-youjiantou {
    display: inline-flex;
    align-items: center;
    font-size: 18px;
    line-height: 1;
  }
}

@media (max-width: 1180px) and (min-width: 769px) {
  html body[data-page] #site-footer .newsletter-visual {
    top: -78px;
    left: 12px;
    width: 44%;
    height: 382px;
    overflow: visible;
  }

  html body[data-page] #site-footer .newsletter-visual img {
    top: 0;
    right: auto;
    bottom: auto;
    left: 8px;
    width: min(calc(100% - 16px), 400px);
    max-width: none;
    height: auto;
  }
}

/* v116: continue the homepage section color behind the floating card and
   tighten the handoff from the newsletter to the footer columns. */
@media (min-width: 769px) {
  html body.home-page #site-footer::before {
    top: -176px;
    right: 0;
    left: 0;
    display: block;
    height: 176px;
    background: #f5f7f5;
    content: '';
    pointer-events: none;
  }

  html body[data-page] #site-footer .newsletter-card {
    margin-bottom: -92px;
  }

  html body[data-page] #site-footer .footer-grid {
    padding-top: 18px;
  }
}

/* v119: balance the space above and below product-card actions. */
html body[data-page="product"] .inner-v2-collection-arrow {
  margin: 24px 0 0;
}

/* v121: keep the FAQ column stationary and animate each answer at its real height. */
html body[data-page] .inner-v2-faq,
html body[data-page] .inner-v2-accordion {
  overflow-anchor: none;
}

html body[data-page] .inner-v2-accordion article {
  overflow: hidden;
  transition: background-color 280ms ease, box-shadow 280ms ease;
}

html body[data-page] .inner-v2-accordion button {
  transition: color 240ms ease, background-color 240ms ease;
}

html body[data-page] .inner-v2-accordion button b {
  position: relative;
  width: 24px;
  height: 24px;
  flex: 0 0 24px;
  font-size: 0;
}

html body[data-page] .inner-v2-accordion button b::before,
html body[data-page] .inner-v2-accordion button b::after {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 12px;
  height: 2px;
  border-radius: 999px;
  background: currentColor;
  content: '';
  transition: transform 320ms cubic-bezier(.22, .61, .36, 1), opacity 220ms ease;
}

html body[data-page] .inner-v2-accordion button b::before {
  transform: translate(-50%, -50%);
}

html body[data-page] .inner-v2-accordion button b::after {
  transform: translate(-50%, -50%) rotate(90deg) scaleX(1);
}

html body[data-page] .inner-v2-accordion article.is-open button b::after {
  opacity: 0;
  transform: translate(-50%, -50%) rotate(90deg) scaleX(0);
}

html body[data-page] .inner-v2-accordion article > div {
  display: grid;
  grid-template-rows: 0fr;
  max-height: none;
  padding: 0 36px;
  overflow: hidden;
  border-top-color: transparent;
  opacity: 0;
  visibility: hidden;
  transition: grid-template-rows 360ms cubic-bezier(.4, 0, .2, 1),
              border-color 220ms ease,
              opacity 200ms ease,
              visibility 0s linear 360ms;
}

html body[data-page] .inner-v2-accordion-answer {
  min-height: 0;
  overflow: hidden;
}

html body[data-page] .inner-v2-accordion-answer > p {
  padding: 24px 0 30px;
}

html body[data-page] .inner-v2-accordion article.is-open > div {
  grid-template-rows: 1fr;
  border-top-color: #e0e5e1;
  opacity: 1;
  visibility: visible;
  transition-delay: 0s;
}

@media (min-width: 901px) {
  html body[data-page] .inner-v2-accordion {
    min-height: 423px;
  }
}

@media (max-width: 768px) {
  html body[data-page] .inner-v2-accordion article > div {
    padding-right: 20px;
    padding-left: 20px;
  }

  html body[data-page] .inner-v2-accordion-answer > p {
    padding: 20px 0 24px;
  }
}

@media (prefers-reduced-motion: reduce) {
  html body[data-page] .inner-v2-accordion article,
  html body[data-page] .inner-v2-accordion button,
  html body[data-page] .inner-v2-accordion button b::before,
  html body[data-page] .inner-v2-accordion button b::after,
  html body[data-page] .inner-v2-accordion article > div,
  html body[data-page="product"] .inner-v2-category-list article,
  html body[data-page="product"] .inner-v2-category-trigger,
  html body[data-page="product"] .inner-v2-category-trigger > i,
  html body[data-page="product"] .inner-v2-category-link,
  html body[data-page="product"] .inner-v2-category-list nav,
  html body[data-page="product"] .inner-v2-category-list nav a,
  html body[data-page="product"] .inner-v2-category-list nav a::before {
    transition: none;
  }
}

/* v123: use a directional arrow for the product-category accordion. */
html body[data-page="product"] .inner-v2-category-list .inner-v2-category-trigger::before {
  display: none;
  content: none;
}

html body[data-page="product"] .inner-v2-category-list .inner-v2-category-trigger > i {
  display: inline-grid;
  order: 2;
  width: 22px;
  height: 22px;
  flex: 0 0 22px;
  place-items: center;
  font-size: 15px;
  line-height: 1;
  transform: rotate(0deg);
  transform-origin: center;
  transition: transform 260ms cubic-bezier(.4, 0, .2, 1);
}

html body[data-page="product"] .inner-v2-category-list article.is-open .inner-v2-category-trigger > i {
  transform: rotate(90deg);
}

html body[data-page="product"] .inner-v2-category-list article:not(.is-open) .inner-v2-category-trigger:hover > i {
  transform: translateX(4px);
}

/* v126: keep the category arrow at the far right with a tighter edge inset. */
html body[data-page="product"] .inner-v2-category-list .inner-v2-category-trigger {
  justify-content: center;
  gap: 0;
  padding: 0;
}

/* v127: separate the category catalog from the white FAQ section below. */
html body[data-page="product"] .inner-v2-category-page {
  background: #f4f6f3;
}

/* v129: tighten the copy-to-action spacing on category product cards. */
html body[data-page="product"] .inner-v2-category-product-copy > p {
  min-height: 24px;
  margin-bottom: 12px;
}

/* v130: refined product-detail contact actions. */
html body[data-page="product"] .inner-v2-product-actions {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
  margin-top: 32px;
}

html body[data-page="product"] .inner-v2-product-actions .inner-v2-btn {
  min-width: 0;
  min-height: 62px;
  padding: 0 18px;
  border: 1px solid transparent;
  border-radius: 12px;
  font-size: 14px;
  font-weight: 800;
  box-shadow: 0 10px 26px rgba(6, 47, 35, .08);
  transition: color 240ms ease, background-color 240ms ease, border-color 240ms ease,
              box-shadow 240ms ease, transform 240ms ease;
}

html body[data-page="product"] .inner-v2-product-actions .inner-v2-btn > i {
  width: 30px;
  height: 30px;
  flex: 0 0 30px;
  border-radius: 50%;
  font-size: 15px;
  background: rgba(255, 255, 255, .22);
}

html body[data-page="product"] .inner-v2-product-actions .inner-v2-btn:nth-child(1) {
  color: #fff;
  border-color: #43c879;
  background: #43c879;
}

html body[data-page="product"] .inner-v2-product-actions .inner-v2-btn:nth-child(2) {
  color: #06382a;
  border-color: #b9ddc8;
  background: #fff;
}

html body[data-page="product"] .inner-v2-product-actions .inner-v2-btn:nth-child(2) > i {
  background: #edf7f1;
}

html body[data-page="product"] .inner-v2-product-actions .inner-v2-btn:nth-child(3) {
  color: #fff;
  border-color: #06382a;
  background: #06382a;
}

html body[data-page="product"] .inner-v2-product-actions .inner-v2-btn:hover {
  color: #fff;
  border-color: #15884b;
  background: #15884b;
  box-shadow: 0 14px 30px rgba(6, 47, 35, .15);
  transform: translateY(-2px);
}

@media (max-width: 1180px) {
  html body[data-page="product"] .inner-v2-product-actions {
    grid-template-columns: 1fr;
  }
}

/* v133: remove the oversized gap below product recommendations. */
@media (min-width: 769px) {
  html body[data-page="product"] .inner-v2-recommended {
    padding-bottom: 72px;
  }

  html body[data-page="product"] .inner-v2-recommended .product-swiper {
    padding-bottom: 20px;
  }
}

/* v134: tighten the product-detail news-to-newsletter handoff and keep its
   floating footer transition on the same soft-gray section background. */
@media (min-width: 769px) {
  html body[data-page="product"] .inner-v2-home-news {
    padding-bottom: 112px;
  }

  html body[data-page="product"].has-home-news #site-footer::before {
    top: -176px;
    right: 0;
    left: 0;
    display: block;
    height: 176px;
    background: #f5f7f5;
    content: '';
    pointer-events: none;
  }
}

/* v135: give the service index its own introduction and a clearer, tighter
   transition from the service cards into the buyer-questions module. */
html body[data-page="service"] .inner-v2-reference-services {
  padding: clamp(82px, 5.2vw, 100px) 0 108px;
  background: #f5f7f5;
}

html body[data-page="service"] .inner-v2-reference-service-heading {
  max-width: 820px;
  margin: 0 auto clamp(48px, 3.6vw, 68px);
  text-align: center;
}

html body[data-page="service"] .inner-v2-reference-service-heading > span {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  color: #41c575;
  font-size: 13px;
  font-weight: 800;
  letter-spacing: .12em;
  line-height: 1.4;
  text-transform: uppercase;
}

html body[data-page="service"] .inner-v2-reference-service-heading > span::before {
  width: 34px;
  height: 1px;
  background: currentColor;
  content: '';
}

html body[data-page="service"] .inner-v2-reference-service-heading h2 {
  margin: 0 0 18px;
  color: #082f23;
  font-size: clamp(42px, 3.8vw, 62px);
  font-weight: 760;
  letter-spacing: -.045em;
  line-height: 1.08;
}

html body[data-page="service"] .inner-v2-reference-service-heading p {
  max-width: 720px;
  margin: 0 auto;
  color: #6f7d76;
  font-size: clamp(16px, 1.05vw, 18px);
  line-height: 1.7;
}

html body[data-page="service"] .inner-v2-reference-service-body {
  background: #fff;
}

html body[data-page="service"] .inner-v2-faq {
  padding-top: 84px;
}

@media (max-width: 640px) {
  html body[data-page="service"] .inner-v2-reference-services {
    padding: 64px 0 72px;
  }

  html body[data-page="service"] .inner-v2-reference-service-heading {
    margin-bottom: 38px;
  }

  html body[data-page="service"] .inner-v2-reference-service-heading h2 {
    margin: 0 0 16px;
    font-size: 34px;
  }

  html body[data-page="service"] .inner-v2-faq {
    padding-top: 64px;
  }
}

/* v144: final About media parity. This must follow the shared inner-page
   container reset so the media copy uses the same full story width as Home. */
html body.about-page .home-media-story > .container.home-media-content {
  width: 100%;
  max-width: none;
  padding-right: 56px;
  padding-left: 50%;
}

@media (max-width: 767px) {
  html body.about-page .home-media-story > .container.home-media-content {
    padding-right: 32px;
    padding-left: 32px;
  }
}

/* v145: tighten the About proof-to-video sequence into one consistent rhythm. */
html body.about-page .home-proof-strip {
  padding-top: 88px;
  padding-bottom: 104px;
}

html body.about-page .about-v3-advantages {
  padding-top: 112px;
}

@media (min-width: 1025px) {
  html body.about-page .home-proof-strip > .home-proof-grid {
    min-height: 346px;
  }
}

@media (max-width: 767px) {
  html body.about-page .home-proof-strip {
    padding-top: 56px;
    padding-bottom: 72px;
  }

  html body.about-page .about-v3-advantages {
    padding-top: 80px;
  }
}

/* v148: keep the homepage's solid field, retain the About fade, and align
   the vertical media spacing across both pages. */
html body.home-page .home-media-backdrop {
  background: #f5f7f5;
}

html body.about-page .home-media-backdrop {
  background: linear-gradient(to bottom, #f5f7f5, transparent);
}

html body.home-page .home-proof-strip {
  padding-top: 88px;
  padding-bottom: 104px;
}

html body.home-page .news-section {
  padding-top: 112px;
}

@media (min-width: 1025px) {
  html body.home-page .home-proof-strip > .home-proof-grid {
    min-height: 346px;
  }
}

@media (max-width: 767px) {
  html body.home-page .home-proof-strip {
    padding-top: 56px;
    padding-bottom: 72px;
  }

  html body.home-page .news-section {
    padding-top: 80px;
  }
}

/* Keep directional arrows consistent across every inner page. */
html body[data-page]:not(.home-page) .icon-youjiantou,
html body[data-page]:not(.home-page) .inner-v2-simple-nav-arrow,
html body[data-page]:not(.home-page) .inner-v2-blog-prevnext .inner-v2-blog-nav-arrow,
html body[data-page]:not(.home-page) .blog-sidebar-category-nav a b {
  font-size: 18px;
}

/* Privacy policy uses a full-width text layout without an image banner. */
body[data-page="privacy"] .privacy-policy-content {
  width: 100%;
  max-width: none;
  margin: 0;
}

body[data-page="privacy"] .policy-section {
  padding: 96px 0 120px;
}

body[data-page="privacy"] .privacy-policy-content > h1 {
  margin: 0 0 18px;
  color: var(--forest);
  font-size: clamp(42px, 4vw, 56px);
  line-height: 1.1;
}

body[data-page="privacy"] .privacy-policy-content > .lead {
  margin: 0 0 28px;
  color: #52615a;
  font-size: 18px;
  line-height: 1.75;
}

body[data-page="privacy"] .privacy-policy-content > section {
  margin: 0 0 28px;
}

body[data-page="privacy"] .privacy-policy-content > section:last-child {
  margin-bottom: 0;
}

body[data-page="privacy"] .privacy-policy-content h2 {
  margin: 0 0 10px;
  font-size: clamp(28px, 2.5vw, 38px);
  line-height: 1.2;
}

body[data-page="privacy"] .privacy-policy-content p {
  font-size: 16px;
  line-height: 1.8;
}

@media (max-width: 767px) {
  body[data-page="privacy"] .policy-section {
    padding: 64px 0 88px;
  }

  body[data-page="privacy"] .privacy-policy-content > h1 {
    margin-bottom: 16px;
    font-size: 40px;
  }

  body[data-page="privacy"] .privacy-policy-content > .lead {
    margin-bottom: 24px;
    font-size: 17px;
  }

  body[data-page="privacy"] .privacy-policy-content > section {
    margin-bottom: 26px;
  }
}

/* Keep the highlighted homepage modules on the exact same content axis as the header. */
html body.home-page .collection-section > .container,
html body.home-page .service-showcase > .container,
html body.home-page .project-gallery > .container,
html body.home-page .project-swiper,
html body.home-page .news-section > .container,
html body.home-page .intro-section > .container,
html body.home-page .home-media-story {
  box-sizing: border-box;
  width: min(calc(100% - 80px), 1385px);
  max-width: 1385px;
  margin-right: auto;
  margin-left: auto;
  padding-right: 0;
  padding-left: 0;
}

html body.home-page .service-showcase .section-head {
  padding-right: 0;
  padding-left: 0;
}

html body.home-page .project-gallery .section-head {
  padding-right: 0;
  padding-left: 0;
}

html body.home-page .service-showcase-body {
  width: 100%;
  max-width: none;
  margin-right: 0;
  margin-left: 0;
}

@media (max-width: 768px) {
  html body.home-page .collection-section > .container,
  html body.home-page .service-showcase > .container,
  html body.home-page .project-gallery > .container,
  html body.home-page .project-swiper,
  html body.home-page .news-section > .container,
  html body.home-page .intro-section > .container,
  html body.home-page .home-media-story {
    width: calc(100% - 40px);
    max-width: none;
  }
}

/* Mobile navigation: clearer hierarchy for two- and three-level dropdowns. */
@media (max-width: 1240px) {
  .mobile-menu nav > ul {
    margin: 0;
    padding: 0;
  }

  .mobile-menu nav > ul > li {
    border-bottom-color: #e7ece9;
  }

  .mobile-menu nav > ul > li > a,
  .mobile-menu nav > ul > li.mobile-has-children > div > a {
    min-height: 54px;
    padding: 15px 0;
    color: #29483e;
    font-size: 17px;
    font-weight: 500;
  }

  .mobile-has-children > div {
    gap: 12px;
  }

  .mobile-has-children button,
  .mobile-subgroup > div > button {
    width: 36px;
    height: 36px;
    flex: 0 0 36px;
    color: #36594d;
    border: 0;
    border-radius: 50%;
    background: #f2f6f3;
    transition: color .25s ease, background-color .25s ease, transform .25s ease;
  }

  .mobile-has-children button i {
    font-size: 12px;
  }

  .mobile-has-children.is-open > div > a {
    color: #173d31;
  }

  .mobile-has-children.is-open > div > button {
    color: #fff;
    background: #43c879;
  }

  .mobile-has-children > ul {
    margin: 2px 0 12px;
    padding: 6px 12px 8px;
    border: 1px solid #e5ebe7;
    border-radius: 12px;
    background: #f7f9f7;
  }

  .mobile-has-children > ul > li:not(.mobile-subgroup) > a {
    padding: 10px 8px;
    color: #65766f;
    font-size: 14px;
    line-height: 1.45;
  }

  .mobile-subgroup {
    border-top: 0;
    border-bottom: 1px solid #e3e9e5;
  }

  .mobile-subgroup:last-child {
    border-bottom: 0;
  }

  .mobile-subgroup > div {
    min-height: 48px;
  }

  .mobile-subgroup > div > a {
    min-height: 48px;
    padding: 13px 6px;
    color: #4d655d;
    font-size: 15px;
    font-weight: 500;
  }

  .mobile-subgroup > ul {
    margin: 0 0 10px;
    padding: 5px 8px;
    border: 0;
    border-radius: 9px;
    background: #fff;
    box-shadow: inset 0 0 0 1px #e8edea;
  }

  .mobile-subgroup > ul > li + li {
    border-top: 1px solid #eef2ef;
  }

  .mobile-subgroup > ul a {
    padding: 9px 10px;
    color: #72817b;
    font-size: 14px;
    line-height: 1.45;
  }

  .mobile-has-children > ul {
    display: block;
    max-height: 0;
    margin-top: 0;
    margin-bottom: 0;
    padding-top: 0;
    padding-bottom: 0;
    overflow: hidden;
    border-width: 0;
    pointer-events: none;
    transition:
      max-height .3s ease,
      margin .3s ease,
      padding .3s ease;
  }

  .mobile-has-children.is-open > ul {
    max-height: 700px;
    margin: 2px 0 12px;
    padding: 6px 12px 8px;
    border-width: 1px;
    pointer-events: auto;
  }

  .mobile-subgroup.is-open > ul {
    max-height: 220px;
    margin: 0 0 10px;
    padding: 5px 8px;
    border-width: 0;
  }
}

@media (max-width: 520px) {
  .mobile-menu {
    padding: 26px 28px 36px;
  }

  .mobile-menu nav {
    padding-top: 16px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .mobile-has-children > ul,
  .mobile-has-children button i,
  html body[data-page="product"] .inner-v2-category-list article,
  html body[data-page="product"] .inner-v2-category-trigger,
  html body[data-page="product"] .inner-v2-category-trigger > i,
  html body[data-page="product"] .inner-v2-category-link,
  html body[data-page="product"] .inner-v2-category-list nav,
  html body[data-page="product"] .inner-v2-category-list nav a,
  html body[data-page="product"] .inner-v2-category-list nav a::before {
    transition: none;
  }
}

/* v165: give the mobile newsletter a clear breathing space from the section above. */
@media (max-width: 768px) {
  html body[data-page] #site-footer {
    padding-top: 24px;
  }

  html body[data-page] #site-footer .newsletter-card {
    margin: 40px 0 34px;
  }
}

/* v167: compact, centered inquiry submit action with a clear hover response. */
.inner-v2-inquiry form > button {
  width: 220px;
  min-width: 0;
  max-width: 100%;
  min-height: 56px;
  justify-self: start;
  justify-content: center;
  gap: 20px;
  margin-top: 16px;
  padding: 0 24px;
  transition: color .25s ease, background-color .25s ease,
    box-shadow .25s ease, transform .25s ease;
}

.inner-v2-inquiry form > button i {
  transition: transform .25s ease;
}

.inner-v2-inquiry form > button:hover {
  color: #fff;
  background: #073d2f;
  box-shadow: 0 12px 26px rgba(4, 42, 31, .24);
  transform: translateY(-2px);
}

.inner-v2-inquiry form > button:hover i {
  transform: translateX(5px);
}

.inner-v2-inquiry form > button:focus-visible {
  outline: 2px solid #073d2f;
  outline-offset: 4px;
}

/* v170: keep the product action arrow legible in every hover state. */
html body[data-page="product"] .inner-v2-product-actions .inner-v2-btn > i {
  transition: color 240ms ease, background-color 240ms ease, transform 240ms ease;
}

html body[data-page="product"] .inner-v2-product-actions .inner-v2-btn:hover > i {
  color: #fff;
  background: rgba(255, 255, 255, .22);
  transform: translateX(4px);
}

/* v171: use the full download panel width instead of leaving an empty third column. */
@media (min-width: 1181px) {
  html body[data-page="product"] .inner-v2-download-list {
    width: 100%;
    max-width: none;
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

@media (max-width: 1180px) and (min-width: 769px) {
  html body[data-page="product"] .inner-v2-download-list {
    width: 100%;
    max-width: none;
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

/* v172: product-detail news uses the homepage desktop section spacing. */
@media (min-width: 1181px) {
  html body[data-page="product"] .inner-v2-home-news {
    padding-top: 112px;
    padding-bottom: 200px;
  }
}

/* v173: align the product-detail news heading rhythm with recommendations. */
html body[data-page="product"] .inner-v2-home-news .section-head {
  margin-bottom: 42px;
}

html body[data-page="product"] .inner-v2-home-news .section-head h2 {
  margin-top: 0;
}

html body[data-page="product"] .inner-v2-home-news .eyebrow::before {
  display: block;
  width: 34px;
  height: 2px;
  border-radius: 2px;
  background: currentColor;
  content: '';
}

/* v174: homepage news shares the same heading treatment. */
html body.home-page .news-section .section-head {
  margin-bottom: 42px;
}

html body.home-page .news-section .section-head h2 {
  margin-top: 0;
}

html body.home-page .news-section .eyebrow::before {
  display: block;
  width: 34px;
  height: 2px;
  border-radius: 2px;
  background: currentColor;
  content: '';
}

/* v175: balanced section rhythm for the product-detail mobile layout. */
@media (max-width: 768px) {
  html body[data-page="product"] .inner-v2-spec-section {
    padding-top: 64px;
    padding-bottom: 64px;
  }

  html body[data-page="product"] .inner-v2-tab-nav {
    margin-bottom: 28px;
  }

  html body[data-page="product"] .inner-v2-recommended {
    padding-top: 72px;
    padding-bottom: 56px;
  }

  html body[data-page="product"] .inner-v2-recommended .product-swiper {
    padding-top: 12px;
    padding-bottom: 16px;
  }

  html body[data-page="product"] .inner-v2-home-service {
    padding-top: 72px;
    padding-bottom: 56px;
  }

  html body[data-page="product"] .inner-v2-home-news {
    padding-top: 64px;
    padding-bottom: 72px;
  }
}

/* v176: compact product information tabs and feature cards on mobile. */
@media (max-width: 768px) {
  html body[data-page="product"] .inner-v2-tab-nav {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  html body[data-page="product"] .inner-v2-tab-nav button {
    min-width: 0;
    min-height: 62px;
    padding: 8px 4px;
    border-right: 1px solid var(--line);
    border-bottom: 0;
    font-size: 12px;
  }

  html body[data-page="product"] .inner-v2-tab-nav button:last-child {
    border-right: 0;
  }

  html body[data-page="product"] .inner-v2-description-panel .inner-v2-feature-list {
    gap: 16px;
  }

  html body[data-page="product"] .inner-v2-feature-list article > div {
    padding: 20px 20px 24px;
  }

  html body[data-page="product"] .inner-v2-feature-list h3 {
    margin-bottom: 10px;
  }
}

/* v178: compact the copy area inside solution cards on mobile. */
@media (max-width: 680px) {
  html body[data-page="solution"] .inner-v2-solution-stories .solution-story-card > div {
    min-height: 0;
    padding: 18px 20px 20px;
  }

  html body[data-page="solution"] .inner-v2-solution-stories .solution-story-card h3 {
    margin-bottom: 10px;
  }
}

/* v179: remove the unused mobile certificate controls from the content flow. */
@media (max-width: 620px) {
  html body[data-page="about"] .about-v3-cert-section .about-v3-section-head {
    margin-bottom: 36px;
  }

  html body[data-page="about"] .about-v3-cert-section .about-v3-swiper-controls {
    display: none;
  }
}

/* v184: keep the blog title and byline compact and readable on mobile. */
@media (max-width: 680px) {
  html body[data-page="blog"] .inner-v2-blog-article > h1 {
    margin-bottom: 24px;
    font-size: clamp(34px, 9.5vw, 40px);
    letter-spacing: -.045em;
    line-height: 1.06;
  }

  html body[data-page="blog"] .inner-v2-blog-byline {
    align-items: center;
    flex-wrap: nowrap;
    gap: 12px;
    margin-bottom: 28px;
    padding: 14px 0;
  }

  html body[data-page="blog"] .inner-v2-blog-byline time {
    width: auto;
    margin-left: auto;
  }
}
