/* Weierken supplied factory and certification assets 2.2.0 */

:root {
  --we22-forest: #072b24;
  --we22-deep: #041d18;
  --we22-green: #0b765a;
  --we22-sage: #dfe9e1;
  --we22-sand: #f2eee4;
  --we22-paper: #fbfaf6;
  --we22-ink: #12231e;
  --we22-copy: #53615c;
  --we22-line: rgba(18, 35, 30, .14);
  --we22-accent: #d97a32;
}

.we22-proof-ribbon { background: var(--we22-deep); }
.we22-proof-ribbon .wrap { display: flex; flex-wrap: wrap; gap: 14px 32px; align-items: center; min-height: 72px; color: #fff; font-size: .68rem; letter-spacing: .075em; text-transform: uppercase; }
.we22-proof-ribbon span { color: rgba(255,255,255,.57); }
.we22-proof-ribbon strong { font-weight: 760; }

.we22-manufacturing-intro,
.we22-quality-intro,
.we22-about-intro { padding: clamp(82px, 8vw, 126px) 0; background: var(--we22-paper); }
.we22-split-copy { display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, .78fr); gap: clamp(62px, 10vw, 160px); align-items: start; }
.we22-split-copy h2,
.we22-about-intro h2,
.we22-section-heading h2,
.we22-certificate-copy h2,
.we22-checkpoint-cta h2 { margin: 0; color: var(--we22-ink); font-size: clamp(2.55rem, 4.6vw, 4.85rem); font-weight: 850; line-height: .99; letter-spacing: -.055em; text-wrap: balance; }
.we22-split-copy > div:last-child { padding-top: 37px; }
.we22-split-copy > div:last-child p,
.we22-about-intro p { color: var(--we22-copy); line-height: 1.8; }

.we22-factory-locations { padding: 0 0 clamp(90px, 9vw, 144px); background: var(--we22-paper); }
.we22-location-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; }
.we22-location-card { overflow: hidden; background: #fff; border: 1px solid var(--we22-line); }
.we22-location-card figure { height: clamp(340px, 33vw, 520px); margin: 0; overflow: hidden; background: var(--we22-deep); }
.we22-location-card img { width: 100%; height: 100%; object-fit: cover; transition: transform .75s cubic-bezier(.2,.75,.25,1); }
.we22-location-card:hover img { transform: scale(1.035); }
.we22-location-card > div { padding: clamp(30px, 4vw, 55px); }
.we22-location-card span,
.we22-factory-photo-grid figcaption span { display: block; margin-bottom: 15px; color: var(--we22-green); font-size: .65rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.we22-location-card h2 { margin: 0 0 18px; color: var(--we22-ink); font-size: clamp(2rem, 3vw, 3.25rem); letter-spacing: -.04em; }
.we22-location-card p { color: var(--we22-copy); line-height: 1.75; }
.we22-location-card a { display: inline-flex; gap: 10px; margin-top: 14px; color: var(--we22-ink); font-size: .74rem; font-weight: 800; letter-spacing: .05em; text-transform: uppercase; }

.we22-process-section,
.we22-about-route,
.we22-documentation-boundaries { padding: clamp(88px, 9vw, 148px) 0; background: var(--we22-sand); }
.we22-section-heading { display: grid; grid-template-columns: minmax(0, 1fr) minmax(280px, .52fr); gap: 55px; align-items: end; margin-bottom: 52px; }
.we22-section-heading > p { max-width: 540px; margin: 0 0 6px; color: var(--we22-copy); line-height: 1.75; }
.we22-process-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.we22-process-card { background: #fff; border: 1px solid var(--we22-line); }
.we22-process-card figure { aspect-ratio: 4 / 3; margin: 0; overflow: hidden; background: var(--we22-deep); }
.we22-process-card img { width: 100%; height: 100%; object-fit: cover; filter: saturate(.9); transition: transform .65s cubic-bezier(.2,.75,.25,1), filter .4s ease; }
.we22-process-card:hover img { transform: scale(1.035); filter: saturate(1); }
.we22-process-card > div { padding: 28px 27px 34px; }
.we22-process-card span,
.we22-quality-grid span,
.we22-route-grid span,
.we22-boundary-grid span { color: var(--we22-accent); font-size: .66rem; font-weight: 850; letter-spacing: .1em; }
.we22-process-card h3,
.we22-route-grid h3,
.we22-boundary-grid h3 { margin: 12px 0 10px; color: var(--we22-ink); font-size: 1.25rem; }
.we22-process-card p,
.we22-route-grid p,
.we22-boundary-grid p { margin: 0; color: var(--we22-copy); font-size: .82rem; line-height: 1.72; }

.we22-floor-gallery,
.we22-two-factories { padding: clamp(90px, 9vw, 148px) 0; background: var(--we22-paper); }
.we22-gallery-grid { display: grid; grid-template-columns: 1.35fr .65fr; grid-auto-rows: minmax(285px, 33vw); gap: 14px; }
.we22-gallery-grid figure,
.we22-factory-photo-grid figure { position: relative; margin: 0; overflow: hidden; background: var(--we22-deep); }
.we22-gallery-grid figure:nth-child(2),
.we22-gallery-grid figure:nth-child(3) { grid-row: span 1; }
.we22-gallery-grid img,
.we22-factory-photo-grid img { width: 100%; height: 100%; object-fit: cover; transition: transform .7s cubic-bezier(.2,.75,.25,1); }
.we22-gallery-grid figure:hover img,
.we22-factory-photo-grid figure:hover img { transform: scale(1.035); }
.we22-gallery-grid figcaption,
.we22-factory-photo-grid figcaption { position: absolute; right: 0; bottom: 0; left: 0; padding: 52px 22px 18px; color: #fff; background: linear-gradient(0deg, rgba(4,29,24,.86), transparent); font-size: .66rem; font-weight: 780; letter-spacing: .08em; text-transform: uppercase; }
.we22-gallery-grid .we22-gallery-wide { grid-row: span 1; }

.we22-checkpoint-cta { padding: clamp(78px, 8vw, 122px) 0; color: #fff; background: var(--we22-forest); }
.we22-checkpoint-cta .wrap { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 60px; align-items: end; }
.we22-checkpoint-cta h2 { max-width: 900px; color: #fff; }
.we22-checkpoint-cta p:not(.eyebrow) { max-width: 730px; color: rgba(255,255,255,.68); line-height: 1.75; }
.we22-checkpoint-cta .btn { white-space: nowrap; }

.we22-quality-steps { padding: 0 0 clamp(90px, 9vw, 148px); background: var(--we22-paper); }
.we22-quality-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; }
.we22-quality-grid article { padding: 0 0 28px; background: #fff; border: 1px solid var(--we22-line); }
.we22-quality-grid img { width: 100%; aspect-ratio: 4 / 3; margin-bottom: 24px; object-fit: cover; }
.we22-quality-grid span,
.we22-quality-grid h2,
.we22-quality-grid p { display: block; margin-right: 23px; margin-left: 23px; }
.we22-quality-grid h2 { margin-top: 10px; margin-bottom: 10px; color: var(--we22-ink); font-size: 1.08rem; }
.we22-quality-grid p { margin-bottom: 0; color: var(--we22-copy); font-size: .8rem; line-height: 1.7; }

.we22-certificate-section { padding: clamp(90px, 9vw, 150px) 0; color: #fff; background: var(--we22-deep); }
.we22-certificate-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(320px, .58fr); gap: clamp(55px, 9vw, 130px); align-items: center; }
.we22-certificate-copy h2 { color: #fff; }
.we22-certificate-copy > p { max-width: 720px; color: rgba(255,255,255,.72); line-height: 1.78; }
.we22-certificate-copy dl { display: grid; gap: 0; max-width: 760px; margin: 34px 0; border-top: 1px solid rgba(255,255,255,.17); }
.we22-certificate-copy dl div { display: grid; grid-template-columns: 160px 1fr; gap: 20px; padding: 15px 0; border-bottom: 1px solid rgba(255,255,255,.17); }
.we22-certificate-copy dt { color: rgba(255,255,255,.52); font-size: .67rem; font-weight: 760; letter-spacing: .07em; text-transform: uppercase; }
.we22-certificate-copy dd { margin: 0; color: #fff; font-size: .78rem; overflow-wrap: anywhere; }
.we22-certificate-boundary { padding: clamp(35px, 5vw, 58px); color: var(--we22-ink); background: var(--we22-sage); }
.we22-certificate-boundary > span { display: grid; place-items: center; width: 60px; height: 60px; margin-bottom: 31px; color: #fff; background: var(--we22-green); border-radius: 50%; font-size: .65rem; font-weight: 850; letter-spacing: .09em; }
.we22-certificate-boundary h3 { margin: 0 0 18px; font-size: 1.8rem; letter-spacing: -.035em; }
.we22-certificate-boundary p { color: #354841; line-height: 1.7; }
.we22-certificate-boundary small { display: block; padding-top: 18px; color: #61716a; border-top: 1px solid rgba(18,35,30,.18); line-height: 1.6; }
.we22-boundary-grid,
.we22-route-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); border-top: 1px solid var(--we22-line); border-bottom: 1px solid var(--we22-line); }
.we22-boundary-grid article,
.we22-route-grid article { min-height: 220px; padding: 32px 28px; border-right: 1px solid var(--we22-line); }
.we22-boundary-grid article:last-child,
.we22-route-grid article:last-child { border-right: 0; }

.we22-about-intro-grid { display: grid; grid-template-columns: minmax(0, .76fr) minmax(0, 1.24fr); gap: clamp(55px, 8vw, 125px); align-items: center; }
.we22-about-intro-grid figure { margin: 0; }
.we22-about-intro-grid img { width: 100%; aspect-ratio: 16 / 10; object-fit: cover; }
.we22-about-intro-grid figcaption { padding-top: 12px; color: #738079; font-size: .65rem; letter-spacing: .07em; text-transform: uppercase; }
.we22-about-intro .btn { margin-top: 18px; }
.we22-about-facts { color: #fff; background: var(--we22-deep); }
.we22-about-facts .wrap { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); }
.we22-about-facts article { display: flex; flex-direction: column; justify-content: center; min-height: 185px; padding: 25px 34px; border-right: 1px solid rgba(255,255,255,.14); }
.we22-about-facts article:first-child { border-left: 1px solid rgba(255,255,255,.14); }
.we22-about-facts strong { font-size: clamp(2.2rem, 4vw, 4rem); line-height: 1; letter-spacing: -.05em; }
.we22-about-facts span { margin-top: 12px; color: rgba(255,255,255,.59); font-size: .68rem; letter-spacing: .08em; text-transform: uppercase; }
.we22-factory-photo-grid { display: grid; grid-template-columns: 1.2fr .8fr 1fr 1fr; grid-auto-rows: minmax(430px, 36vw); gap: 12px; }
.we22-factory-photo-grid figure:nth-child(2) img,
.we22-factory-photo-grid figure:nth-child(4) img { object-position: center; }
.we22-factory-photo-grid figcaption span { margin: 0 0 6px; color: #78d3b2; }

@media (max-width: 1050px) {
  .we22-process-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .we22-quality-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .we22-certificate-grid { grid-template-columns: 1fr .72fr; gap: 52px; }
  .we22-boundary-grid,
  .we22-route-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .we22-boundary-grid article:nth-child(2),
  .we22-route-grid article:nth-child(2) { border-right: 0; }
  .we22-boundary-grid article:nth-child(-n+2),
  .we22-route-grid article:nth-child(-n+2) { border-bottom: 1px solid var(--we22-line); }
  .we22-factory-photo-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); grid-auto-rows: 420px; }
}

@media (max-width: 760px) {
  .we22-proof-ribbon .wrap { gap: 9px 20px; min-height: 86px; padding-block: 14px; }
  .we22-split-copy,
  .we22-location-grid,
  .we22-section-heading,
  .we22-checkpoint-cta .wrap,
  .we22-certificate-grid,
  .we22-about-intro-grid { grid-template-columns: 1fr; }
  .we22-split-copy { gap: 22px; }
  .we22-split-copy > div:last-child { padding-top: 0; }
  .we22-location-grid { gap: 14px; }
  .we22-location-card figure { height: 310px; }
  .we22-section-heading { gap: 22px; margin-bottom: 36px; }
  .we22-process-grid,
  .we22-quality-grid { grid-template-columns: 1fr; }
  .we22-gallery-grid { grid-template-columns: 1fr; grid-auto-rows: 330px; }
  .we22-gallery-grid figure { grid-row: auto !important; }
  .we22-checkpoint-cta .wrap { gap: 32px; align-items: start; }
  .we22-certificate-copy dl div { grid-template-columns: 1fr; gap: 6px; }
  .we22-boundary-grid,
  .we22-route-grid { grid-template-columns: 1fr; }
  .we22-boundary-grid article,
  .we22-route-grid article { min-height: auto; border-right: 0; border-bottom: 1px solid var(--we22-line); }
  .we22-boundary-grid article:last-child,
  .we22-route-grid article:last-child { border-bottom: 0; }
  .we22-about-facts .wrap { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .we22-about-facts article { min-height: 145px; border-bottom: 1px solid rgba(255,255,255,.14); }
  .we22-about-facts article:nth-child(2n) { border-right: 0; }
  .we22-factory-photo-grid { grid-template-columns: 1fr; grid-auto-rows: 360px; }
}

@media (max-width: 430px) {
  .we22-split-copy h2,
  .we22-about-intro h2,
  .we22-section-heading h2,
  .we22-certificate-copy h2,
  .we22-checkpoint-cta h2 { font-size: clamp(2.3rem, 11vw, 3.25rem); }
  .we22-location-card figure,
  .we22-gallery-grid,
  .we22-gallery-grid figure,
  .we22-factory-photo-grid { min-height: 0; }
  .we22-location-card figure { height: 270px; }
  .we22-gallery-grid { grid-auto-rows: 285px; }
  .we22-factory-photo-grid { grid-auto-rows: 310px; }
  .we22-about-facts .wrap { grid-template-columns: 1fr; }
  .we22-about-facts article { border-right: 0; border-left: 0 !important; }
}

@media (prefers-reduced-motion: reduce) {
  .we22-location-card img,
  .we22-process-card img,
  .we22-gallery-grid img,
  .we22-factory-photo-grid img { transition: none !important; }
}

/* 2.2.2 public contrast pass. Keep the factory palette while ensuring small
   labels and primary conversion controls remain readable. */
.we21-factory-ribbon > .wrap > span {
  color: #31443e;
}

.page-hero.has-image .eyebrow,
.we22-checkpoint-cta .eyebrow,
.we22-certificate-section .eyebrow {
  color: #a9edd6;
}

.we22-checkpoint-cta .btn-primary,
.we22-certificate-section .btn-primary,
.we22-about-intro .btn-primary,
.we21-catalog-factory .btn-primary,
.single-weierken_product .product-hero .btn-primary,
.single-weierken_product .we21-product-factory .btn-primary,
.single-weierken_product .rfq-form .btn-primary {
  color: #041d18;
  background: #e58a3e;
  border-color: #e58a3e;
}

.we22-checkpoint-cta .btn-primary:hover,
.we22-certificate-section .btn-primary:hover,
.we22-about-intro .btn-primary:hover,
.we21-catalog-factory .btn-primary:hover,
.single-weierken_product .product-hero .btn-primary:hover,
.single-weierken_product .we21-product-factory .btn-primary:hover,
.single-weierken_product .rfq-form .btn-primary:hover {
  color: #041d18;
  background: #f4a661;
  border-color: #f4a661;
}

.we22-process-card span,
.we22-quality-grid span,
.we22-route-grid span,
.we22-boundary-grid span,
.we21-product-process span {
  color: #924715;
}

.we2-products-section .product-copy .micro {
  color: #56635e;
}

.spec-list dd,
.spec-list .spec-to-confirm {
  color: #45534d;
}

.footer-bottom,
.footer-bottom a {
  color: #aebbb6;
}

/* 2.2.3 full-bleed homepage factory hero.
   Preserve the real photo's aspect ratio while covering the full canvas. */
.route-home .we21-factory-hero .we2-slide {
  background-size: 100% 100%, cover;
}

@media (min-width: 1200px) {
  .route-home .we21-factory-hero {
    height: min(720px, calc(100svh - 119px));
    min-height: 600px;
    max-height: 720px;
  }
}
