@font-face {
  font-family: "Montserrat";
  src: url("../fonts/montserrat-latin.woff2") format("woff2");
  font-style: normal;
  font-weight: 300 800;
  font-display: swap;
}

:root {
  --color-red: #f6423a;
  --color-red-dark: #c42119;
  --color-ink: #242d35;
  --color-text: #4f575c;
  --color-navy: #010d3c;
  --color-grey-50: #fafafa;
  --color-grey-100: #f5f5f5;
  --color-grey-200: #eeeeee;
  --color-grey-300: #e0e0e0;
  --color-blue-soft: #c7e3fb;
  --color-white: #ffffff;
  --font-body: "Montserrat", Arial, sans-serif;
  --content-wide: 1215px;
  --content-main: 895px;
  --rail-width: 265px;
  --layout-gap: 55px;
  --radius-sm: 10px;
  --radius-md: 20px;
  --shadow-menu: 0 22px 50px rgb(1 13 60 / 14%);
  --section-space: 74px;
  --header-height: 100px;
}

*,
*::before,
*::after {
  box-sizing: border-box;
}

html {
  scroll-behavior: smooth;
}

body {
  margin: 0;
  color: var(--color-text);
  background: var(--color-white);
  font-family: var(--font-body);
  font-size: 18px;
  font-weight: 400;
  line-height: 1.5;
  text-rendering: optimizeLegibility;
}

body.menu-open {
  overflow: hidden;
}

img,
svg {
  display: block;
  max-width: 100%;
}

a {
  color: inherit;
}

button,
input,
textarea {
  font: inherit;
}

button,
a {
  -webkit-tap-highlight-color: transparent;
}

.skip-link {
  position: fixed;
  top: 8px;
  left: 8px;
  z-index: 1000;
  padding: 10px 14px;
  color: var(--color-white);
  background: var(--color-navy);
  transform: translateY(-150%);
}

.skip-link:focus {
  transform: none;
}

.site-header {
  position: relative;
  z-index: 50;
  height: var(--header-height);
  background: linear-gradient(180deg, #ffffff 58%, #f8f9fa 100%);
}

.site-header__inner {
  width: min(calc(100% - 48px), 1215px);
  height: 100%;
  margin: 0 auto;
  display: flex;
  align-items: center;
  gap: 36px;
}

.brand {
  flex: 0 0 auto;
  width: 176px;
}

.brand img {
  width: 176px;
  height: auto;
}

.primary-nav {
  align-self: stretch;
  display: flex;
  align-items: center;
  gap: 24px;
}

.nav-link,
.nav-button {
  border: 0;
  padding: 0;
  color: #333f48;
  background: transparent;
  font-size: 16px;
  text-decoration: none;
  white-space: nowrap;
  cursor: pointer;
}

.nav-link:hover,
.nav-link:focus-visible,
.nav-button:hover,
.nav-button:focus-visible {
  color: var(--color-red);
  outline: none;
}

.nav-item {
  position: relative;
  height: 100%;
  display: flex;
  align-items: center;
}

.mega-menu {
  position: absolute;
  top: 86px;
  left: -220px;
  width: min(870px, calc(100vw - 48px));
  padding: 32px;
  border-top: 4px solid var(--color-red);
  background: var(--color-white);
  box-shadow: var(--shadow-menu);
  visibility: hidden;
  opacity: 0;
  transform: translateY(8px);
  transition: opacity 160ms ease, transform 160ms ease, visibility 160ms;
}

.nav-item:hover .mega-menu,
.nav-item:focus-within .mega-menu {
  visibility: visible;
  opacity: 1;
  transform: none;
}

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

.mega-menu h3 {
  margin: 0 0 12px;
  color: #758d97;
  font-size: 12px;
  text-transform: uppercase;
  letter-spacing: 0.08em;
}

.mega-menu a {
  display: block;
  padding: 5px 0;
  color: var(--color-ink);
  font-size: 15px;
  text-decoration: none;
}

.mega-menu a:hover,
.mega-menu a:focus-visible {
  color: var(--color-red);
}

.header-meta {
  margin-left: auto;
  display: flex;
  align-items: center;
  gap: 14px;
}

.header-contact {
  text-align: right;
  color: var(--color-ink);
  font-size: 12px;
  font-weight: 700;
  line-height: 1.2;
}

.language {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  color: var(--color-ink);
  font-size: 15px;
}

.language::before {
  content: "◉";
  font-size: 14px;
}

.button {
  min-height: 46px;
  padding: 11px 24px;
  border: 2px solid transparent;
  border-radius: 999px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: var(--color-white);
  background: var(--color-red);
  font-size: 16px;
  font-weight: 700;
  line-height: 1.1;
  text-decoration: none;
  white-space: nowrap;
  transition: background-color 160ms ease, transform 160ms ease;
}

.button:hover,
.button:focus-visible {
  background: var(--color-red-dark);
  outline: none;
  transform: translateY(-1px);
}

.button--small {
  min-height: 36px;
  padding: 8px 20px;
  font-size: 14px;
}

.menu-toggle {
  width: 44px;
  height: 44px;
  margin-left: auto;
  border: 0;
  display: none;
  color: var(--color-white);
  background: transparent;
  cursor: pointer;
}

.menu-toggle span,
.menu-toggle::before,
.menu-toggle::after {
  content: "";
  width: 22px;
  height: 2px;
  margin: 5px auto;
  display: block;
  background: currentColor;
  transition: transform 160ms ease, opacity 160ms ease;
}

.mobile-nav {
  position: fixed;
  inset: 70px 0 0;
  z-index: 45;
  padding: 28px 25px 60px;
  overflow: auto;
  color: var(--color-white);
  background: var(--color-navy);
  visibility: hidden;
  opacity: 0;
  transform: translateY(-8px);
  transition: opacity 160ms ease, transform 160ms ease, visibility 160ms;
}

.mobile-nav.is-open {
  visibility: visible;
  opacity: 1;
  transform: none;
}

.mobile-nav a {
  padding: 13px 0;
  border-bottom: 1px solid rgb(255 255 255 / 15%);
  display: block;
  color: inherit;
  font-weight: 600;
  text-decoration: none;
}

.service-layout {
  width: min(calc(100% - 48px), var(--content-wide));
  margin: 0 auto;
  padding: 60px 0 110px;
  display: grid;
  grid-template-columns: var(--rail-width) minmax(0, var(--content-main));
  gap: var(--layout-gap);
  align-items: start;
}

.process-rail {
  position: sticky;
  top: 26px;
  align-self: start;
  padding-right: 12px;
}

.rail-group {
  margin-bottom: 32px;
}

.rail-group h3 {
  margin: 0 0 8px;
  color: #758d97;
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.02em;
  text-transform: uppercase;
}

.rail-group a {
  position: relative;
  padding: 5px 0;
  display: block;
  color: var(--color-text);
  font-size: 16px;
  text-decoration: none;
}

.rail-group a:hover,
.rail-group a:focus-visible,
.rail-group a.is-active {
  color: var(--color-red);
  outline: none;
}

.rail-group a.is-active {
  padding-left: 18px;
  font-weight: 700;
}

.rail-group a.is-active::before {
  content: "";
  position: absolute;
  top: 13px;
  left: 0;
  width: 0;
  height: 0;
  border-top: 6px solid transparent;
  border-bottom: 6px solid transparent;
  border-left: 10px solid var(--color-red);
}

.rail-quote {
  position: relative;
  padding: 18px 16px 16px;
  border-radius: var(--radius-sm);
  overflow: hidden;
  background: var(--color-grey-100);
}

.rail-quote::after {
  content: "";
  position: absolute;
  right: -15px;
  bottom: -18px;
  width: 92px;
  height: 92px;
  border: 1px solid #dedede;
  transform: rotate(35deg);
}

.rail-quote strong {
  position: relative;
  z-index: 1;
  display: block;
  color: var(--color-ink);
  font-size: 14px;
  line-height: 1.4;
}

.rail-quote .button {
  position: relative;
  z-index: 1;
  width: 100%;
  margin-top: 12px;
}

.service-main {
  min-width: 0;
}

.section-title {
  position: relative;
  margin: 0 0 34px;
  padding: 0 0 20px;
  color: var(--color-ink);
  font-size: 40px;
  font-weight: 700;
  line-height: 1.2;
  letter-spacing: -0.015em;
}

.section-title::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100px;
  height: 6px;
  background: var(--color-red);
}

.section-title--small {
  margin-bottom: 30px;
  padding-bottom: 15px;
  font-size: 27px;
  line-height: 30px;
}

.section-title--small::after {
  width: 96px;
  height: 5px;
}

.intro {
  max-width: 870px;
  margin: 0 0 46px;
  color: #20272d;
  font-size: 20px;
  line-height: 1.55;
}

.capability-gallery {
  margin-bottom: 42px;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 40px;
}

.capability-gallery--single {
  grid-template-columns: 1fr;
}

.capability-gallery--single .capability-list {
  max-width: 720px;
}

.capability-list {
  display: grid;
  gap: 12px;
}

.capability-item {
  min-height: 58px;
  display: grid;
  grid-template-columns: 66px minmax(0, 1fr);
  gap: 18px;
  align-items: center;
}

.capability-item img,
.capability-icon-fallback {
  width: 54px;
  height: 54px;
  object-fit: contain;
}

.capability-icon-fallback {
  border: 2px solid var(--color-red);
  border-radius: 50%;
  display: grid;
  place-items: center;
  color: var(--color-red);
  font-weight: 700;
}

.capability-item strong {
  display: block;
  color: var(--color-ink);
  font-size: 16px;
  line-height: 1.35;
}

.capability-item span {
  display: block;
  margin-top: 3px;
  color: var(--color-text);
  font-size: 14px;
  line-height: 1.45;
}

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

.gallery-button {
  position: relative;
  aspect-ratio: 4 / 3;
  padding: 0;
  border: 0;
  border-radius: var(--radius-md);
  overflow: hidden;
  background: var(--color-grey-200);
  cursor: zoom-in;
}

.gallery-button img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  transition: transform 220ms ease;
}

.gallery-button:hover img,
.gallery-button:focus-visible img {
  transform: scale(1.035);
}

.gallery-button:focus-visible {
  outline: 3px solid var(--color-red);
  outline-offset: 3px;
}

.feature-image {
  height: 100%;
  min-height: 340px;
  border-radius: var(--radius-md);
  overflow: hidden;
}

.feature-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.quick-quote {
  min-height: 142px;
  margin: 48px 0;
  padding: 26px 44px;
  border: 1px solid var(--color-grey-300);
  border-radius: var(--radius-sm);
  display: grid;
  grid-template-columns: 88px minmax(0, 1fr) auto;
  gap: 28px;
  align-items: center;
  background: var(--color-grey-100);
}

.quick-quote img {
  width: 88px;
}

.quick-quote h2 {
  margin: 0 0 5px;
  color: var(--color-ink);
  font-size: 24px;
  line-height: 1.2;
}

.quick-quote p {
  margin: 0;
  font-size: 15px;
  line-height: 1.5;
}

.proof-strip {
  min-height: 190px;
  margin: 0 0 46px;
  padding: 38px 28px;
  border-top: 1px solid var(--color-grey-300);
  border-bottom: 1px solid var(--color-grey-300);
  display: grid;
  grid-template-columns: 300px minmax(0, 1fr);
  gap: 34px;
  align-items: center;
}

.proof-strip strong {
  color: var(--color-ink);
  font-size: 28px;
  line-height: 1.25;
}

.proof-strip strong span {
  color: var(--color-red);
}

.proof-strip img {
  max-height: 100px;
  width: 100%;
  object-fit: contain;
}

.benefits {
  margin-bottom: 46px;
}

.benefits ul {
  margin: 0;
  padding: 0 0 0 28px;
}

.benefits li {
  margin-bottom: 12px;
  padding-left: 2px;
}

.benefits li::marker {
  color: var(--color-red);
  font-size: 1.25em;
}

.process-editorials {
  margin: 0 0 var(--section-space);
  display: grid;
  gap: 0;
}

.process-editorial {
  padding: 54px 0;
  border-top: 1px solid var(--color-grey-300);
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(300px, 0.9fr);
  gap: 46px;
  align-items: center;
}

.process-editorial:first-child {
  padding-top: 0;
  border-top: 0;
}

.process-editorial--narrative {
  max-width: 780px;
  display: block;
}

.process-editorial:nth-child(odd):not(.process-editorial--narrative) .process-editorial__media {
  order: -1;
}

.process-editorial__copy .section-title {
  margin-bottom: 26px;
}

.process-editorial__copy p {
  margin: 0 0 16px;
}

.process-editorial__copy ul {
  margin: 18px 0 0;
  padding-left: 24px;
}

.process-editorial__copy li {
  margin-bottom: 8px;
}

.process-editorial__copy li::marker {
  color: var(--color-red);
}

.process-editorial__media {
  height: 300px;
  border-radius: var(--radius-md);
  overflow: hidden;
  background: var(--color-grey-100);
}

.process-editorial__media--placeholder {
  background: #000;
}

.process-editorial__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}

.content-accordion {
  margin: 0 0 var(--section-space);
  border-top: 1px solid var(--color-grey-300);
}

.accordion-item {
  border-bottom: 1px solid var(--color-grey-300);
}

.accordion-button {
  width: 100%;
  padding: 22px 8px 22px 45px;
  border: 0;
  position: relative;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  color: var(--color-ink);
  background: transparent;
  font-size: 27px;
  font-weight: 700;
  line-height: 1.25;
  text-align: left;
  cursor: pointer;
}

.accordion-button::before {
  content: "";
  position: absolute;
  left: 8px;
  width: 10px;
  height: 10px;
  border-right: 3px solid var(--color-red);
  border-bottom: 3px solid var(--color-red);
  transform: rotate(45deg);
  transition: transform 160ms ease;
}

.accordion-button[aria-expanded="true"]::before {
  transform: rotate(225deg) translate(-2px, -2px);
}

.accordion-panel {
  padding: 0 45px 28px;
  color: var(--color-text);
}

.accordion-panel[hidden] {
  display: none;
}

.accordion-panel p {
  margin: 0 0 14px;
}

.workflow {
  margin-bottom: var(--section-space);
}

.workflow__steps {
  margin-top: 42px;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 22px;
}

.workflow-step {
  min-height: 270px;
  padding: 32px 25px;
  text-align: center;
}

.workflow-step:nth-child(2) {
  border-radius: var(--radius-md);
  background: #edf7ff;
}

.workflow-step img {
  width: 88px;
  height: 88px;
  margin: 0 auto 18px;
}

.workflow-step h3 {
  margin: 0 0 12px;
  color: var(--color-ink);
  font-size: 20px;
  line-height: 1.25;
}

.workflow-step p {
  margin: 0;
  font-size: 14px;
  line-height: 1.55;
}

.workflow__notes {
  margin-top: 20px;
  padding: 28px 20px;
  border-radius: var(--radius-md);
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 18px;
  background: var(--color-blue-soft);
}

.workflow-note h3 {
  margin: 0 0 8px;
  color: var(--color-ink);
  font-size: 15px;
  line-height: 1.25;
}

.workflow-note p {
  margin: 0;
  font-size: 12px;
  line-height: 1.5;
}

.faq {
  padding: 40px 50px;
  border-radius: var(--radius-sm);
  background: var(--color-grey-100);
}

.faq h2 {
  margin: 0 0 20px;
  color: var(--color-ink);
  font-size: 24px;
}

.faq .accordion-button {
  padding: 15px 28px 15px 0;
  font-size: 16px;
  font-weight: 500;
}

.faq .accordion-button::before {
  right: 4px;
  left: auto;
  width: 7px;
  height: 7px;
  border-color: #68727a;
  border-width: 2px;
}

.faq .accordion-panel {
  padding: 0 34px 18px 0;
  font-size: 15px;
  line-height: 1.55;
}

.quote-band {
  min-height: 317px;
  padding: 54px 24px;
  color: var(--color-white);
  background: var(--color-navy);
}

.quote-band__inner {
  width: min(100%, 1120px);
  min-height: 210px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: 78px minmax(0, 600px) auto;
  gap: 28px;
  align-items: center;
}

.quote-band__icon {
  width: 72px;
  height: 72px;
  border: 2px solid var(--color-white);
  display: grid;
  place-items: center;
  font-size: 32px;
}

.quote-band p {
  margin: 0;
  font-size: 21px;
  font-weight: 500;
  line-height: 1.65;
}

.quote-band .button {
  min-width: 175px;
}

.site-footer {
  min-height: 500px;
  padding: 76px 24px 56px;
  background: #f4f7f8;
}

.site-footer__grid {
  width: min(100%, 1120px);
  margin: 0 auto;
  display: grid;
  grid-template-columns: 1.45fr repeat(4, 1fr);
  gap: 0;
}

.footer-column {
  min-height: 230px;
  padding: 0 28px;
  border-left: 1px solid #d7dfe2;
}

.footer-column:first-child {
  padding-left: 0;
  border-left: 0;
}

.footer-column h2 {
  margin: 0 0 24px;
  color: #758d97;
  font-size: 12px;
  text-transform: uppercase;
  letter-spacing: 0.03em;
}

.footer-column a,
.footer-column p {
  margin: 0 0 9px;
  display: block;
  color: #718089;
  font-size: 14px;
  line-height: 1.45;
  text-decoration: none;
}

.footer-column a:hover,
.footer-column a:focus-visible {
  color: var(--color-red);
}

.lightbox {
  position: fixed;
  inset: 0;
  z-index: 100;
  padding: 32px;
  border: 0;
  width: 100%;
  height: 100%;
  max-width: none;
  max-height: none;
  color: var(--color-white);
  background: rgb(1 13 60 / 92%);
}

.lightbox::backdrop {
  background: rgb(1 13 60 / 70%);
}

.lightbox__inner {
  width: min(100%, 1000px);
  height: 100%;
  margin: 0 auto;
  display: grid;
  grid-template-rows: 1fr auto;
  place-items: center;
}

.lightbox img {
  max-width: 100%;
  max-height: calc(100vh - 130px);
  border-radius: var(--radius-sm);
}

.lightbox p {
  margin: 16px 0 0;
  text-align: center;
}

.lightbox__close {
  position: absolute;
  top: 20px;
  right: 24px;
  width: 44px;
  height: 44px;
  border: 1px solid rgb(255 255 255 / 35%);
  border-radius: 50%;
  color: var(--color-white);
  background: transparent;
  font-size: 26px;
  cursor: pointer;
}

.library-hero {
  padding: 84px 24px;
  color: var(--color-white);
  background: var(--color-navy);
}

.library-hero__inner,
.library-section {
  width: min(100%, 1120px);
  margin: 0 auto;
}

.library-hero h1 {
  margin: 0 0 20px;
  font-size: clamp(40px, 6vw, 72px);
  line-height: 1.05;
}

.library-hero p {
  max-width: 760px;
  margin: 0;
  font-size: 20px;
}

.library-section {
  padding: 76px 24px;
}

.library-section + .library-section {
  border-top: 1px solid var(--color-grey-300);
}

.library-section__head {
  max-width: 720px;
  margin-bottom: 36px;
}

.library-section__head h2 {
  margin: 0 0 12px;
  color: var(--color-ink);
  font-size: 34px;
}

.library-section__head p {
  margin: 0;
}

.token-grid,
.page-card-grid,
.component-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 22px;
}

.token-card,
.page-card,
.component-card {
  border: 1px solid var(--color-grey-300);
  border-radius: var(--radius-sm);
  overflow: hidden;
  background: var(--color-white);
}

.token-swatch {
  height: 110px;
  background: var(--swatch);
}

.token-card__body,
.page-card__body,
.component-card {
  padding: 22px;
}

.token-card h3,
.page-card h3,
.component-card h3 {
  margin: 0 0 8px;
  color: var(--color-ink);
  font-size: 19px;
}

.token-card p,
.page-card p,
.component-card p {
  margin: 0;
  font-size: 14px;
}

.page-card {
  min-height: 230px;
  display: flex;
  flex-direction: column;
}

.page-card__accent {
  height: 8px;
  background: var(--color-red);
}

.page-card__body {
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
}

.page-card .button {
  margin-top: auto;
}

.type-sample {
  padding: 24px 0;
  border-bottom: 1px solid var(--color-grey-300);
  display: grid;
  grid-template-columns: 160px 1fr;
  gap: 24px;
  align-items: baseline;
}

.type-sample code {
  color: #758d97;
  font-size: 13px;
}

.type-sample p {
  margin: 0;
  color: var(--color-ink);
}

.type-sample--h1 p {
  font-size: 40px;
  font-weight: 700;
  line-height: 1.2;
}

.type-sample--h2 p {
  font-size: 27px;
  font-weight: 700;
  line-height: 30px;
}

.component-demo {
  margin-top: 38px;
  padding: 34px;
  border: 1px dashed #c7d0d4;
  border-radius: var(--radius-sm);
  background: var(--color-grey-50);
}

@media (max-width: 1120px) {
  .primary-nav {
    gap: 18px;
  }

  .header-contact {
    display: none;
  }

  .service-layout {
    grid-template-columns: 220px minmax(0, 1fr);
    gap: 36px;
  }

  .workflow__notes {
    grid-template-columns: repeat(3, 1fr);
  }

  .site-footer__grid {
    grid-template-columns: repeat(3, 1fr);
    row-gap: 32px;
  }
}

@media (max-width: 820px) {
  :root {
    --header-height: 70px;
    --section-space: 56px;
  }

  body {
    font-size: 17px;
  }

  .site-header {
    position: sticky;
    top: 0;
    background: linear-gradient(180deg, #2a3036 0%, #69737b 100%);
    box-shadow: 0 10px 24px rgb(1 13 60 / 14%);
  }

  .site-header__inner {
    width: calc(100% - 32px);
  }

  .brand {
    width: 138px;
  }

  .brand img {
    width: 138px;
    filter: brightness(0) invert(1);
  }

  .primary-nav,
  .header-meta {
    display: none;
  }

  .menu-toggle {
    display: block;
  }

  .menu-toggle[aria-expanded="true"] span {
    opacity: 0;
  }

  .menu-toggle[aria-expanded="true"]::before {
    transform: translateY(7px) rotate(45deg);
  }

  .menu-toggle[aria-expanded="true"]::after {
    transform: translateY(-7px) rotate(-45deg);
  }

  .service-layout {
    width: calc(100% - 50px);
    padding: 40px 0 70px;
    display: block;
  }

  .process-rail {
    display: none;
  }

  .section-title {
    margin-bottom: 30px;
    padding-bottom: 15px;
    font-size: 40px;
    line-height: 48px;
  }

  .section-title--small {
    margin-bottom: 30px;
    font-size: 27px;
    line-height: 30px;
  }

  .intro {
    margin-bottom: 44px;
    font-size: 18px;
    line-height: 1.7;
  }

  .capability-gallery {
    display: block;
  }

  .capability-gallery__gallery {
    padding-top: 50px;
  }

  .capability-list {
    gap: 18px;
  }

  .capability-item {
    grid-template-columns: 64px minmax(0, 1fr);
  }

  .gallery-grid {
    gap: 14px;
  }

  .feature-image {
    min-height: 280px;
  }

  .quick-quote {
    padding: 26px;
    grid-template-columns: 64px 1fr;
    gap: 18px;
  }

  .process-editorial {
    grid-template-columns: 1fr;
    gap: 24px;
  }

  .process-editorial .process-editorial__media {
    order: -1;
  }

  .process-editorial__media {
    height: 260px;
  }

  .quick-quote img {
    width: 64px;
  }

  .quick-quote .button {
    grid-column: 1 / -1;
  }

  .proof-strip {
    padding: 34px 0;
    grid-template-columns: 1fr;
  }

  .proof-strip strong {
    font-size: 24px;
  }

  .accordion-button {
    padding-left: 34px;
    font-size: 23px;
  }

  .accordion-panel {
    padding-left: 34px;
  }

  .workflow__steps,
  .workflow__notes {
    grid-template-columns: 1fr;
  }

  .workflow-step {
    min-height: 0;
  }

  .faq {
    padding: 30px 24px;
  }

  .quote-band__inner {
    grid-template-columns: 64px 1fr;
  }

  .quote-band p {
    font-size: 18px;
  }

  .quote-band .button {
    grid-column: 1 / -1;
    justify-self: start;
  }

  .site-footer__grid {
    grid-template-columns: repeat(2, 1fr);
  }

  .token-grid,
  .page-card-grid,
  .component-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 540px) {
  .section-title {
    letter-spacing: -0.025em;
  }

  .gallery-grid {
    grid-template-columns: 1fr 1fr;
  }

  .quick-quote {
    margin: 38px 0;
  }

  .proof-strip img {
    max-height: 78px;
  }

  .faq {
    margin-inline: -8px;
  }

  .quote-band__inner {
    display: block;
  }

  .quote-band__icon {
    margin-bottom: 24px;
  }

  .quote-band .button {
    margin-top: 28px;
  }

  .site-footer {
    padding-top: 52px;
  }

  .site-footer__grid {
    grid-template-columns: 1fr;
  }

  .footer-column,
  .footer-column:first-child {
    min-height: 0;
    padding: 24px 0;
    border-top: 1px solid #d7dfe2;
    border-left: 0;
  }

  .footer-column:first-child {
    border-top: 0;
  }

  .library-hero {
    padding: 62px 25px;
  }

  .library-section {
    padding: 56px 25px;
  }

  .token-grid,
  .page-card-grid,
  .component-grid {
    grid-template-columns: 1fr;
  }

  .type-sample {
    grid-template-columns: 1fr;
    gap: 8px;
  }

  .type-sample--h1 p {
    font-size: 36px;
  }

  .component-demo {
    padding: 24px 18px;
  }
}

@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    scroll-behavior: auto !important;
    transition-duration: 0.01ms !important;
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
  }
}

/* Thermal & Chemical Glass Strengthening long-form page */
.service-main--strengthening {
  min-width: 0;
}

.sg-hero,
.sg-section {
  margin-bottom: var(--section-space);
}

.sg-copy {
  max-width: 810px;
}

.sg-copy--lead {
  margin-top: -8px;
}

.sg-copy p,
.sg-postprocess {
  margin: 0 0 18px;
}

.sg-bullets,
.sg-metrics,
.sg-applications,
.sg-capability-summary {
  margin: 22px 0 0;
  padding-left: 26px;
}

.sg-bullets li,
.sg-metrics li,
.sg-applications li,
.sg-capability-summary li {
  margin-bottom: 10px;
  padding-left: 3px;
}

.sg-bullets li::marker,
.sg-metrics li::marker,
.sg-applications li::marker,
.sg-capability-summary li::marker {
  color: var(--color-red);
}

.sg-bullets--lead {
  margin-bottom: 34px;
}

.sg-media-grid {
  display: grid;
  gap: 18px;
}

.sg-media-grid--4 {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.sg-media-grid--6 {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.sg-media-grid--top {
  margin-bottom: 34px;
}

.sg-media {
  min-width: 0;
  aspect-ratio: 4 / 3;
  padding: 0;
  border: 0;
  border-radius: var(--radius-md);
  position: relative;
  overflow: hidden;
  display: flex;
  align-items: flex-end;
  background: var(--color-grey-200);
  color: var(--color-white);
  text-align: left;
}

button.sg-media {
  cursor: zoom-in;
}

.sg-media img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 220ms ease;
}

button.sg-media:hover img,
button.sg-media:focus-visible img {
  transform: scale(1.035);
}

button.sg-media:focus-visible {
  outline: 3px solid var(--color-red);
  outline-offset: 3px;
}

.sg-media::after {
  content: "";
  position: absolute;
  inset: 42% 0 0;
  background: linear-gradient(180deg, transparent, rgb(1 13 60 / 76%));
}

.sg-media span {
  position: relative;
  z-index: 1;
  display: block;
  width: 100%;
  padding: 18px 20px;
  font-size: 14px;
  font-weight: 600;
  line-height: 1.35;
}

.sg-media--placeholder {
  border: 1px solid var(--color-grey-300);
  align-items: center;
  justify-content: center;
  background:
    linear-gradient(135deg, rgb(255 255 255 / 88%), rgb(245 245 245 / 94%)),
    repeating-linear-gradient(45deg, transparent 0 14px, rgb(36 45 53 / 5%) 14px 28px);
  color: var(--color-ink);
}

.sg-media--placeholder::after {
  display: none;
}

.sg-media--placeholder span {
  width: auto;
  max-width: 85%;
  padding: 12px 16px;
  border: 1px solid var(--color-grey-300);
  border-radius: 999px;
  background: var(--color-white);
  color: var(--color-text);
  font-size: 13px;
  text-align: center;
}

.sg-section {
  padding-top: 54px;
  border-top: 1px solid var(--color-grey-300);
}

.sg-methods {
  margin-top: 34px;
  display: grid;
  gap: 22px;
}

.sg-method {
  padding: 28px 30px 24px;
  border: 1px solid var(--color-grey-300);
  border-radius: var(--radius-sm);
  background: var(--color-grey-50);
}

.sg-method h3,
.sg-subtitle,
.sg-component-card h4 {
  color: var(--color-ink);
}

.sg-method h3 {
  margin: 0 0 12px;
  font-size: 22px;
  line-height: 1.3;
}

.sg-method p {
  margin: 0;
}

.sg-method .sg-bullets {
  margin-top: 18px;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  column-gap: 32px;
}

.sg-subtitle {
  margin: 46px 0 22px;
  font-size: 22px;
  line-height: 1.3;
}

.sg-component-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 22px;
}

.sg-component-card {
  border: 1px solid var(--color-grey-300);
  border-radius: var(--radius-md);
  overflow: hidden;
  background: var(--color-white);
}

.sg-component-card .sg-media {
  width: 100%;
  border-radius: 0;
  aspect-ratio: 16 / 9;
}

.sg-component-card__copy {
  padding: 22px 24px 24px;
}

.sg-component-card h4 {
  margin: 0 0 10px;
  font-size: 18px;
  line-height: 1.35;
}

.sg-component-card p {
  margin: 0;
  font-size: 15px;
  line-height: 1.6;
}

.sg-metrics {
  margin: 28px 0 0;
  padding: 26px 26px 18px 48px;
  border-radius: var(--radius-sm);
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  column-gap: 38px;
  background: var(--color-grey-100);
}

.sg-postprocess {
  margin-top: 24px;
}

.sg-applications,
.sg-capability-summary {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  column-gap: 34px;
}

.sg-faq {
  margin-bottom: var(--section-space);
}

.sg-faq .accordion-panel p:last-child {
  margin-bottom: 0;
}

.sg-section--capabilities {
  margin-bottom: 48px;
}

.sg-capability-summary {
  margin-top: 0;
}

.sg-final-cta {
  margin-bottom: 12px;
  padding: 42px 46px;
  border-radius: var(--radius-sm);
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 32px;
  align-items: center;
  color: var(--color-white);
  background: var(--color-navy);
}

.sg-final-cta h2 {
  margin: 0 0 12px;
  color: var(--color-white);
  font-size: 28px;
  line-height: 1.25;
}

.sg-final-cta p {
  max-width: 650px;
  margin: 0;
  font-size: 16px;
  line-height: 1.65;
}

.sg-final-cta .button {
  min-width: 190px;
  justify-content: center;
}

@media (max-width: 820px) {
  .sg-hero,
  .sg-section,
  .sg-faq {
    margin-bottom: 58px;
  }

  .sg-section {
    padding-top: 44px;
  }

  .sg-method .sg-bullets,
  .sg-metrics,
  .sg-applications,
  .sg-capability-summary {
    grid-template-columns: 1fr;
  }

  .sg-media-grid--6 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .sg-final-cta {
    padding: 34px 30px;
    grid-template-columns: 1fr;
  }

  .sg-final-cta .button {
    justify-self: start;
  }
}

@media (max-width: 540px) {
  .sg-media-grid--4,
  .sg-media-grid--6,
  .sg-component-grid {
    grid-template-columns: 1fr;
  }

  .sg-method {
    padding: 24px 22px 20px;
  }

  .sg-media {
    border-radius: var(--radius-sm);
  }

  .sg-metrics {
    padding: 22px 22px 14px 42px;
  }

  .sg-final-cta {
    margin-inline: -8px;
  }
}

/* Glass CNC Machining long-form page */
.service-main--cnc {
  min-width: 0;
}

.cnc-hero {
  margin-bottom: var(--section-space);
  display: grid;
  grid-template-columns: minmax(0, 1.05fr) minmax(310px, 0.95fr);
  gap: 42px;
  align-items: center;
}

.cnc-hero__copy p {
  margin: 0 0 18px;
  color: var(--color-text);
  font-size: 18px;
  line-height: 1.65;
}

.cnc-hero__copy .button {
  margin-top: 12px;
}

.cnc-hero__media .sg-media {
  width: 100%;
  aspect-ratio: 4 / 3;
}

.cnc-section {
  margin-bottom: var(--section-space);
  padding-top: 54px;
  border-top: 1px solid var(--color-grey-300);
}

.cnc-intro,
.cnc-closing {
  max-width: 820px;
  margin: 0 0 26px;
  line-height: 1.65;
}

.cnc-feature-cards {
  margin: 30px 0 34px;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 18px;
}

.cnc-feature-card {
  min-width: 0;
  padding: 26px 24px 24px;
  border: 1px solid var(--color-grey-300);
  border-top: 5px solid var(--color-red);
  border-radius: var(--radius-sm);
  background: var(--color-white);
}

.cnc-feature-card h3 {
  margin: 0 0 12px;
  color: var(--color-ink);
  font-size: 19px;
  line-height: 1.3;
}

.cnc-feature-card p {
  margin: 0;
  font-size: 15px;
  line-height: 1.62;
}

.cnc-support-gallery {
  margin-top: 8px;
}

.cnc-numbered-list {
  margin: 32px 0 0;
  padding: 0;
  list-style: none;
  border-top: 1px solid var(--color-grey-300);
}

.cnc-numbered-list li {
  display: grid;
  grid-template-columns: 72px minmax(0, 1fr);
  gap: 22px;
  padding: 24px 0;
  border-bottom: 1px solid var(--color-grey-300);
}

.cnc-number {
  color: var(--color-red);
  font-size: 30px;
  font-weight: 700;
  line-height: 1;
  letter-spacing: -0.03em;
}

.cnc-numbered-list h3 {
  margin: 0 0 7px;
  color: var(--color-ink);
  font-size: 19px;
  line-height: 1.35;
}

.cnc-numbered-list p {
  margin: 0;
  font-size: 16px;
  line-height: 1.65;
}

.cnc-service-list,
.cnc-benefit-list {
  margin: 30px 0 0;
  padding: 0;
  list-style: none;
}

.cnc-service-list li,
.cnc-benefit-list li {
  position: relative;
  margin-bottom: 16px;
  padding: 0 0 0 28px;
  line-height: 1.65;
}

.cnc-service-list li::before,
.cnc-benefit-list li::before {
  content: "";
  position: absolute;
  top: 0.65em;
  left: 0;
  width: 10px;
  height: 10px;
  background: var(--color-red);
}

.cnc-range-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 22px;
}

.cnc-range-card {
  overflow: hidden;
  border: 1px solid var(--color-grey-300);
  border-radius: var(--radius-md);
  background: var(--color-white);
}

.cnc-range-card .sg-media {
  width: 100%;
  aspect-ratio: 16 / 9;
  border-radius: 0;
}

.cnc-range-card__copy {
  padding: 24px 25px 26px;
}

.cnc-range-card__value {
  margin-bottom: 8px;
  color: var(--color-red);
  font-size: 25px;
  font-weight: 700;
  line-height: 1.2;
  letter-spacing: -0.02em;
}

.cnc-range-card h3 {
  margin: 0 0 10px;
  color: var(--color-ink);
  font-size: 18px;
  line-height: 1.3;
}

.cnc-range-card p {
  margin: 0;
  font-size: 15px;
  line-height: 1.62;
}

.cnc-benefit-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 18px 28px;
}

.cnc-benefit-list li {
  margin: 0;
}

.cnc-closing {
  margin-top: 28px;
}

.cnc-contact {
  margin-bottom: 12px;
  padding: 44px 46px 46px;
  display: grid;
  grid-template-columns: minmax(0, 0.85fr) minmax(0, 1.15fr);
  gap: 42px;
  border-radius: var(--radius-sm);
  color: var(--color-white);
  background: var(--color-navy);
}

.cnc-contact h2,
.cnc-contact h3 {
  color: var(--color-white);
}

.cnc-contact h2 {
  margin: 0 0 18px;
  font-size: 30px;
  line-height: 1.25;
}

.cnc-contact__intro p {
  margin: 0 0 15px;
  font-size: 16px;
  line-height: 1.65;
}

.cnc-contact__intro .button {
  margin-top: 10px;
}

.cnc-contact-form {
  padding: 28px;
  border-radius: var(--radius-sm);
  color: var(--color-text);
  background: var(--color-white);
}

.cnc-contact-form h3 {
  margin: 0 0 22px;
  color: var(--color-ink);
  font-size: 22px;
  line-height: 1.3;
}

.cnc-form-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
}

.cnc-contact-form label {
  min-width: 0;
  display: grid;
  gap: 7px;
}

.cnc-contact-form label span {
  color: var(--color-ink);
  font-size: 13px;
  font-weight: 600;
}

.cnc-contact-form input {
  width: 100%;
  min-height: 44px;
  padding: 9px 11px;
  border: 1px solid #cfd3d6;
  border-radius: 4px;
  color: var(--color-ink);
  background: var(--color-white);
}

.cnc-contact-form input:focus {
  border-color: var(--color-red);
  outline: 2px solid rgb(246 66 58 / 18%);
  outline-offset: 1px;
}

.cnc-form-file {
  grid-column: 1 / -1;
}

.cnc-contact-form input[type="file"] {
  min-height: 48px;
  padding: 8px;
}

.cnc-contact-form .button {
  margin-top: 20px;
}

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

  .cnc-hero__media {
    max-width: 620px;
  }

  .cnc-feature-cards {
    grid-template-columns: 1fr;
  }

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

@media (max-width: 820px) {
  .cnc-hero,
  .cnc-section {
    margin-bottom: 58px;
  }

  .cnc-section {
    padding-top: 44px;
  }

  .cnc-range-grid,
  .cnc-benefit-list {
    grid-template-columns: 1fr;
  }

  .cnc-contact {
    padding: 34px 30px;
  }
}

@media (max-width: 540px) {
  .cnc-numbered-list li {
    grid-template-columns: 52px minmax(0, 1fr);
    gap: 14px;
  }

  .cnc-number {
    font-size: 24px;
  }

  .cnc-form-grid {
    grid-template-columns: 1fr;
  }

  .cnc-contact {
    margin-inline: -8px;
    padding: 30px 22px;
  }

  .cnc-contact-form {
    padding: 22px 18px;
  }
}


/* Silk Screened Glass long-form page */
.silk-hero{margin-bottom:var(--section-space);display:grid;grid-template-columns:minmax(0,1.08fr) minmax(320px,.92fr);gap:42px;align-items:center}
.silk-hero__copy p,.silk-intro,.silk-custom p,.silk-methods>p{color:var(--color-text);font-size:17px;line-height:1.68}
.silk-hero__copy p{margin:0 0 18px}.silk-hero__copy .button{margin-top:12px}.silk-hero__media .sg-media{width:100%;aspect-ratio:4/3}
.silk-section{margin-bottom:var(--section-space);padding-top:54px;border-top:1px solid var(--color-grey-300)}.silk-intro{max-width:820px;margin:0 0 30px}
.silk-why{max-width:830px;padding:30px 32px;border-left:5px solid var(--color-red);background:var(--color-grey-100)}
.silk-why h3,.silk-subtitle,.silk-large-format h3,.silk-application h3,.silk-case-card h3{margin:0 0 14px;color:var(--color-ink);line-height:1.32}.silk-why h3,.silk-subtitle,.silk-large-format h3{font-size:21px}
.silk-why p{margin:0 0 14px;line-height:1.65}.silk-result-list,.silk-detail-list,.silk-method-list{margin:18px 0 0;padding-left:22px}.silk-result-list li,.silk-detail-list li,.silk-method-list li{margin-bottom:9px;line-height:1.58}.silk-result-list li::marker,.silk-detail-list li::marker,.silk-method-list li::marker{color:var(--color-red)}
.silk-subtitle{margin-top:34px}.silk-ink-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px}.silk-ink-card{padding:28px 28px 26px;border:1px solid var(--color-grey-300);border-top:5px solid var(--color-red);border-radius:var(--radius-sm);background:var(--color-white)}.silk-ink-card h4{margin:0 0 12px;color:var(--color-ink);font-size:20px}.silk-ink-card p{margin:0;line-height:1.65}
.silk-methods{margin-top:38px}.silk-method-list{columns:2;column-gap:42px;max-width:820px}.silk-method-list li{break-inside:avoid;margin-bottom:12px}
.silk-case-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px}.silk-case-card{overflow:hidden;border:1px solid var(--color-grey-300);border-radius:var(--radius-md);background:var(--color-white)}.silk-case-card .sg-media{width:100%;aspect-ratio:16/9;border-radius:0}.silk-case-card__copy{padding:23px 25px 25px}.silk-case-card h3{font-size:19px}.silk-case-card p{margin:0;font-size:15px;line-height:1.62}
.silk-table-wrap{overflow-x:auto;margin-top:26px;border:1px solid var(--color-grey-300);border-radius:var(--radius-sm);background:var(--color-white)}.silk-table{width:100%;min-width:800px;border-collapse:collapse;font-size:14px}.silk-table th,.silk-table td{padding:16px 15px;text-align:left;vertical-align:top;border-bottom:1px solid var(--color-grey-300);border-right:1px solid var(--color-grey-300);line-height:1.45}.silk-table th:last-child,.silk-table td:last-child{border-right:0}.silk-table tbody tr:last-child th,.silk-table tbody tr:last-child td{border-bottom:0}.silk-table thead th{color:var(--color-white);background:var(--color-navy);font-weight:700}.silk-table tbody th{color:var(--color-ink);font-weight:700;background:var(--color-grey-100)}
.silk-large-format{margin-top:34px}.silk-large-format__grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.silk-large-format__grid article{padding:22px;border:1px solid var(--color-grey-300);background:var(--color-white)}.silk-large-format__grid p{margin:0 0 10px;font-size:14px;line-height:1.5}.silk-large-format__grid strong{display:block;color:var(--color-red);font-size:20px;line-height:1.35}
.silk-application-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.silk-application{padding:26px 26px 24px;border:1px solid var(--color-grey-300);background:var(--color-white)}.silk-application:last-child{grid-column:1/-1}.silk-application h3{font-size:18px}.silk-application .silk-detail-list{margin-top:12px}.silk-faq{margin-bottom:var(--section-space)}.silk-custom{max-width:850px}.silk-custom p{margin:0 0 16px}
.silk-final-cta{margin-bottom:12px;padding:42px 46px;display:flex;gap:36px;align-items:center;justify-content:space-between;border-radius:var(--radius-sm);color:var(--color-white);background:var(--color-navy)}.silk-final-cta h2{margin:0 0 14px;color:var(--color-white);font-size:30px;line-height:1.25}.silk-final-cta p{max-width:690px;margin:0 0 10px;color:var(--color-white);line-height:1.6}.silk-final-cta .button{flex:0 0 auto}
@media(max-width:1040px){.silk-hero{grid-template-columns:1fr}.silk-hero__media{max-width:620px}.silk-large-format__grid{grid-template-columns:1fr}}
@media(max-width:820px){.silk-hero,.silk-section,.silk-faq{margin-bottom:58px}.silk-section{padding-top:44px}.silk-ink-grid,.silk-case-grid,.silk-application-grid{grid-template-columns:1fr}.silk-application:last-child{grid-column:auto}.silk-method-list{columns:1}.silk-final-cta{padding:34px 30px;align-items:flex-start;flex-direction:column}}
@media(max-width:540px){.silk-why,.silk-ink-card,.silk-case-card__copy,.silk-application{padding-left:20px;padding-right:20px}.silk-final-cta{margin-inline:-8px;padding:30px 22px}}



/* Modular long-form glass pages: composed primarily from existing CNC, Silk and Strengthening components */
.service-main--modular .cnc-hero:not(:has(.cnc-hero__media)) { grid-template-columns: 1fr; }
.service-main--modular .cnc-hero:not(:has(.cnc-hero__media)) .cnc-hero__copy { max-width: 860px; }
.modular-inline-button { margin-top: 18px; }
.modular-case-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.modular-case-grid .silk-case-card:nth-child(n+5) { margin-top: 0; }
.modular-table-media { max-width: 720px; margin-top: 28px; }
.modular-table-media .sg-media { aspect-ratio: 16/7; }
.modular-table-closing { margin-top: 24px; }
.modular-showcase .cnc-intro p { margin: 0 0 16px; }
.modular-metrics { margin: 26px 0 8px; }
.modular-subsection { margin-top: 30px; }
.modular-two-card { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.modular-capability-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.modular-card-link { display: inline-block; margin-top: 18px; color: var(--color-red); font-weight: 700; text-decoration: none; }
.modular-card-link:hover { text-decoration: underline; }
.modular-summary-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(300px, .78fr); gap: 30px; align-items: start; }
.modular-summary-grid .sg-media { aspect-ratio: 4/3; }
.modular-closing { border-left: 5px solid var(--color-red); padding-left: 28px; }
@media (max-width: 900px) {
  .modular-capability-grid, .modular-summary-grid { grid-template-columns: 1fr; }
}
@media (max-width: 820px) {
  .modular-case-grid, .modular-two-card { grid-template-columns: 1fr; }
}


/* Filter & coating family extensions */
.modular-family-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:20px;
  margin-top:28px
}
.modular-family-card{
  padding:26px 28px;
  border:1px solid var(--color-grey-300);
  border-top:5px solid var(--color-red);
  border-radius:var(--radius-sm);
  background:var(--color-white)
}
.modular-family-card:nth-child(odd):last-child{grid-column:1/-1}
.modular-family-card h3{margin:0 0 12px;color:var(--color-ink);font-size:21px;line-height:1.3}
.modular-family-card p{margin:0 0 13px;line-height:1.64}
.modular-family-card .cnc-service-list{margin-top:15px}
.modular-hero-buttons{display:flex;flex-wrap:wrap;gap:12px;margin-top:24px}
.button.button--secondary{background:transparent;color:var(--color-ink);border:1px solid var(--color-ink)}
.button.button--secondary:hover{background:var(--color-ink);color:var(--color-white)}
.modular-hero:has(.modular-hero-gallery){display:grid;grid-template-columns:1fr}
.modular-hero:has(.modular-hero-gallery) .cnc-hero__copy{max-width:900px}
.modular-hero-gallery{margin-top:8px}
.modular-tech-gallery{margin:24px 0 30px}
.modular-tech-gallery--bottom{margin-top:30px}
.sg-media-grid--3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
@media(max-width:820px){
  .modular-family-grid,.sg-media-grid--3{grid-template-columns:1fr}
  .modular-family-card:nth-child(odd):last-child{grid-column:auto}
  .modular-hero-buttons{align-items:stretch;flex-direction:column}
  .modular-hero-buttons .button{text-align:center}
}

/* Shared material-page technical groups */
.modular-technical-group .silk-table-wrap{margin:18px 0 26px}
.modular-technical-group .modular-subsection{padding-top:8px}
.modular-technical-group .modular-rich-paragraph{max-width:850px;margin-bottom:14px}
.modular-technical-group .cnc-service-list{max-width:850px}


/* Homepage reconstruction based on supplied Fractory homepage */
.fh-home{background:#fff;color:#222d36}.fh-container{width:100%;max-width:1300px;margin:0 auto;padding-left:50px;padding-right:50px}.fh-section{padding:60px 0}.fh-section--grey{background:#ecf0f3}.fh-section--white{background:#fff}.fh-title{position:relative;margin:0 0 50px;padding-bottom:20px;text-align:center;font-size:48px;line-height:1.1;color:#222d36;font-weight:700}.fh-title:after{content:"";position:absolute;left:50%;bottom:0;width:100px;height:6px;background:#f6423a;transform:translateX(-50%)}.fh-title--alt{font-size:40px;line-height:48px}
.fh-btn{display:inline-block;padding:18px 30px;border-radius:34px;background:#f6423a;color:#fff;text-decoration:none;font-size:18px;font-weight:700;line-height:1.2;transition:.2s}.fh-btn:hover{background:#be2c26;transform:scale(1.03)}.fh-btn--sm{padding:18px 40px;font-size:16px}.fh-btn--outline-light{border:2px solid #fff;background:transparent}.fh-btn--outline-light:hover{background:rgba(255,255,255,.08)}.fh-btn--outline{padding:16px 38px;border:2px solid #f6423a;background:transparent;color:#f6423a}.fh-btn--outline:hover{background:transparent;color:#f6423a}.fh-actions{display:flex;gap:14px;justify-content:center;flex-wrap:wrap}
.fh-hero{position:relative;overflow:hidden;background:#010d3c;color:#fff}.fh-hero__bg,.fh-hero__overlay{position:absolute;inset:0 0 auto 0;height:650px}.fh-hero__bg img{width:100%;height:100%;object-fit:cover;filter:saturate(.75)}.fh-hero__overlay{background:linear-gradient(291deg,rgba(0,13,60,.58) 0%,#000d3c 66%)}.fh-hero__content{position:relative;z-index:2;min-height:650px;padding-top:105px;padding-bottom:85px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center}.fh-hero h1{margin:0 0 26px;font-size:48px;line-height:1.13;letter-spacing:-.02em;color:#fff;font-weight:700}.fh-hero h1 span{color:#f6423a}.fh-hero__content>p{margin:0 0 34px;font-size:26px;line-height:40px;font-weight:600;color:#fff}.fh-hero__processes{position:relative;z-index:3;padding:38px 0 42px;background:radial-gradient(48.86% 48.86% at 50% -14.91%,#000516 0%,#010d3c 100%)}.fh-hero__processes .fh-container{padding-top:22px;background:url('../images/home-ref/dotted-line-landing.svg') repeat-x top center}.fh-process-major{display:flex;align-items:stretch;justify-content:center;gap:12px}.fh-process-major>a{flex:1 1 0;min-width:0;display:flex;align-items:center;justify-content:center;gap:14px;padding:14px 10px;color:#fff;text-decoration:none;font-size:16px;font-weight:700;line-height:1.3;transition:.2s}.fh-process-major>a:hover{color:#f6423a}.fh-process-major__icon{width:64px;height:64px;display:flex;align-items:center;justify-content:center;flex:0 0 auto}.fh-process-major__icon img{max-width:58px;max-height:58px;filter:brightness(0) invert(1)}.fh-process-minor{display:flex;justify-content:center;flex-wrap:wrap;gap:8px 24px;padding-top:20px}.fh-process-minor a{display:flex;align-items:center;gap:9px;color:#fff;text-decoration:none;font-size:14px;font-weight:700}.fh-process-minor a span{display:grid;place-items:center;width:24px;height:24px;border:1px solid rgba(255,255,255,.5);border-radius:50%;color:#f6423a}.fh-process-minor a:hover{color:#f6423a}
.fh-trust-row{display:grid;grid-template-columns:repeat(6,1fr);border-top:1px solid #d8e0e5;border-bottom:1px solid #d8e0e5}.fh-trust-row span{min-height:72px;display:flex;align-items:center;justify-content:center;padding:15px;border-right:1px solid #d8e0e5;color:#5b6870;font-size:15px;font-weight:700;text-align:center}.fh-trust-row span:last-child{border-right:0}
.fh-tabs{width:100%}.fh-tab-list{position:relative;display:grid;grid-template-columns:repeat(3,1fr);max-width:830px;margin:0 auto;border-bottom:1px solid #c8d1d7}.fh-tab-button{position:relative;padding:18px 20px;border:0;background:transparent;color:#697984;font:inherit;font-size:17px;font-weight:700;cursor:pointer}.fh-tab-button.is-active{color:#222d36}.fh-tab-button.is-active:after{content:"";position:absolute;left:12%;right:12%;bottom:-2px;height:4px;background:#f6423a}.fh-tab-panel{padding-top:40px}.fh-tab-panel>h3{max-width:980px;margin:0 auto 8px;text-align:center;font-size:22px;line-height:32px;color:#222d36}.fh-benefit-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:0 40px}.fh-benefit-grid article{padding:40px 10px 0;text-align:center}.fh-benefit-icon{width:64px;height:64px;margin:0 auto 18px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:#d5dce1}.fh-benefit-icon img{max-width:42px;max-height:42px}.fh-benefit-grid h4{margin:0 0 10px;font-size:18px;color:#222d36}.fh-benefit-grid p{margin:0;font-size:13px;line-height:1.5;color:#4e5a62}.fh-tab-cta{margin-top:42px;text-align:center}
.fh-quote-note .fh-container{max-width:1040px}.fh-quote-note__mark{font-size:70px;line-height:.6;color:#f6423a;font-family:Georgia,serif}.fh-quote-note blockquote{margin:20px 0 28px;font-size:20px;line-height:1.55;font-style:italic;color:#222d36}.fh-quote-note__by{display:flex;gap:60px;align-items:center}.fh-quote-note__by strong,.fh-quote-note__by span{display:block;font-size:16px}.fh-quote-note__by span{color:#6b7880}
.fh-project-shell{position:relative;padding:0 60px}.fh-project-track{display:grid;grid-auto-flow:column;grid-auto-columns:calc((100% - 36px)/3);gap:18px;overflow-x:auto;scrollbar-width:none;scroll-snap-type:x mandatory}.fh-project-track::-webkit-scrollbar{display:none}.fh-project-card{position:relative;display:block;aspect-ratio:1/1;border-radius:10px;overflow:hidden;scroll-snap-align:start;color:#fff;text-decoration:none}.fh-project-card img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.fh-project-card__shade{position:absolute;inset:30% 0 0;background:linear-gradient(to bottom,rgba(0,22,98,0),rgba(0,22,98,.94) 75%,#001662 100%)}.fh-project-card__copy{position:absolute;z-index:2;left:0;right:0;bottom:0;padding:26px}.fh-project-card__copy strong{display:block;font-size:20px;line-height:1.25}.fh-project-card__copy small{display:block;margin-top:8px;font-size:14px;line-height:1.5;color:#fff}.fh-project-card:hover .fh-project-card__shade{background:linear-gradient(to bottom,rgba(246,66,58,0),rgba(246,66,58,.92) 85%,#f6423a 100%)}.fh-project-arrow{position:absolute;top:calc(50% - 20px);z-index:4;width:40px;height:40px;border:0;border-radius:50%;display:grid;place-items:center;background:#f6423a;color:#fff;font-size:28px;line-height:1;cursor:pointer}.fh-project-arrow--prev{left:0}.fh-project-arrow--next{right:0}
.fh-stage-list{display:grid;grid-template-columns:repeat(3,1fr);gap:0;align-items:stretch}.fh-stage-list>article{position:relative;padding:40px;margin:0 -1px;border:1px solid #d2dadf;border-radius:40px;background:#fff}.fh-stage-inner{height:100%;min-height:280px;padding:30px 20px;border-radius:20px;background:#ecf0f3;text-align:center}.fh-stage-list .is-highlighted .fh-stage-inner{background:#b7dbff}.fh-stage-inner img{display:block;width:100px;height:100px;object-fit:contain;margin:0 auto 18px}.fh-stage-inner h3{margin:0 0 12px;font-size:22px;color:#222d36}.fh-stage-inner p{margin:0;font-size:15px;line-height:1.55}.fh-stage-details{display:grid;grid-template-columns:repeat(5,1fr);gap:20px;margin-top:40px;padding:40px;border-radius:20px;background:#b7dbff}.fh-stage-details article{text-align:center}.fh-stage-details img{height:40px;max-width:46px;margin-bottom:12px}.fh-stage-details strong{display:block;font-size:17px;color:#222d36}.fh-stage-details p{margin:8px 0 0;font-size:12px;line-height:1.45}
.fh-industry-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.fh-industry-grid article{display:flex;align-items:center;gap:24px;min-height:150px;padding:30px;background:#fff;transition:.2s}.fh-industry-grid article:hover{background:#010d3c;color:#fff;transform:scale(1.02)}.fh-industry-grid img{width:64px;height:64px;object-fit:contain;flex:0 0 auto}.fh-industry-grid article:hover img{filter:brightness(0) invert(1)}.fh-industry-grid h3{margin:0 0 8px;font-size:20px;color:#222d36}.fh-industry-grid article:hover h3,.fh-industry-grid article:hover p{color:#fff}.fh-industry-grid p{margin:0;font-size:14px;line-height:1.5;color:#59656d}
.fh-case-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:28px}.fh-case-grid article{overflow:hidden}.fh-case-media{aspect-ratio:16/10;border-radius:10px;overflow:hidden;background:#dce3e7}.fh-case-media img{width:100%;height:100%;object-fit:cover}.fh-case-grid h3{margin:20px 0 10px;font-size:21px;color:#222d36}.fh-case-grid p{margin:0 0 14px;font-size:15px;line-height:1.58}.fh-case-grid a{color:#f6423a;font-weight:700;text-decoration:none}
.fh-final{padding:90px 0;background:#010d3c;color:#fff;text-align:center}.fh-final strong{display:block;font-size:36px;line-height:1.25}.fh-final p{margin:16px 0 28px;font-size:18px;color:#fff}.fh-final .fh-btn--outline{border-color:#f6423a;color:#f6423a}
@media(max-width:1119px){.fh-container{padding-left:20px;padding-right:20px}.fh-process-major{gap:4px}.fh-process-major>a{flex-direction:column;text-align:center}.fh-benefit-grid{gap:0 18px}.fh-project-track{grid-auto-columns:calc((100% - 18px)/2)}.fh-stage-list>article{padding:22px}.fh-stage-details{padding:28px;gap:12px}}
@media(max-width:800px){.fh-section{padding:50px 0}.fh-title{font-size:34px;margin-bottom:36px}.fh-title--alt{font-size:30px;line-height:1.2}.fh-hero__bg,.fh-hero__overlay{height:560px}.fh-hero__content{min-height:560px;padding-top:70px;padding-bottom:60px}.fh-hero h1{font-size:40px}.fh-hero__content>p{font-size:20px;line-height:30px}.fh-process-major{display:grid;grid-template-columns:repeat(2,1fr)}.fh-process-major>a:last-child{grid-column:1/-1}.fh-trust-row{grid-template-columns:repeat(2,1fr)}.fh-trust-row span{border-bottom:1px solid #d8e0e5}.fh-tab-list{grid-template-columns:1fr}.fh-tab-button{border-bottom:1px solid #c8d1d7}.fh-tab-button.is-active:after{left:0;right:auto;width:6px;top:0;bottom:0;height:auto}.fh-benefit-grid{grid-template-columns:1fr}.fh-benefit-grid article{display:grid;grid-template-columns:64px 1fr;text-align:left;column-gap:18px}.fh-benefit-icon{grid-row:1/3;margin:0}.fh-benefit-grid h4{align-self:end}.fh-project-shell{padding:0 48px}.fh-project-track{grid-auto-columns:82%}.fh-stage-list{grid-template-columns:1fr;gap:18px}.fh-stage-list>article{margin:0}.fh-stage-details{grid-template-columns:1fr}.fh-stage-details article{display:grid;grid-template-columns:48px 1fr;text-align:left;column-gap:14px}.fh-stage-details img{grid-row:1/3;margin:0}.fh-industry-grid,.fh-case-grid{grid-template-columns:1fr}.fh-final{padding:65px 0}.fh-final strong{font-size:30px}}
@media(max-width:520px){.fh-hero h1{font-size:34px}.fh-btn{width:100%;text-align:center}.fh-process-major__icon{width:50px;height:50px}.fh-process-major__icon img{max-width:45px;max-height:45px}.fh-process-major>a{font-size:14px}.fh-process-minor{display:grid;grid-template-columns:repeat(2,1fr)}.fh-trust-row{grid-template-columns:1fr}.fh-quote-note__by{flex-direction:column;gap:4px;align-items:flex-start}.fh-project-shell{padding:0 40px}.fh-project-track{grid-auto-columns:92%}.fh-stage-inner{min-height:0}.fh-industry-grid article{align-items:flex-start}.fh-final strong{font-size:26px}}

/* Blog index and article templates */
.site-blog-page,.site-article-page{background:#fff}.site-blog-wrap{max-width:1320px;margin:0 auto;padding:90px 25px 100px;display:grid;grid-template-columns:minmax(0,1fr) 290px;gap:50px}.site-blog-main h1,.site-article h1{margin:0 0 36px;color:var(--color-ink);font-size:40px;line-height:1.2}.site-blog-categories h2,.site-blog-posts>h2{position:relative;margin:0 0 20px;padding-bottom:15px;color:var(--color-ink);font-size:27px}.site-blog-categories h2:after,.site-blog-posts>h2:after{content:"";position:absolute;left:0;bottom:0;width:60px;height:4px;background:var(--color-red)}
.site-filter-row{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:42px}.site-filter{padding:7px 13px;border:0;border-radius:6px;background:var(--color-red);color:#fff;font-weight:800;font-size:12px;text-transform:uppercase;cursor:pointer}.site-filter.is-active{background:#4a4a4a}
.site-post-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:30px}.site-post-card[hidden]{display:none}.site-post-card__image{display:block;height:160px;border-radius:10px;overflow:hidden}.site-post-card__image img{width:100%;height:100%;object-fit:cover}.site-post-card h3{margin:13px 0 9px;font-size:17px;line-height:1.55}.site-post-card h3 a{color:#333f48;text-decoration:none}.site-post-card>p{margin:0;color:var(--color-text);font-size:14px;line-height:1.65}.site-post-card__meta{margin-top:12px;display:flex;justify-content:space-between;gap:12px;color:#777;font-size:12px;font-weight:700}.site-post-card__meta span:first-child{color:var(--color-red);text-transform:uppercase}
.site-blog-sidebar{position:sticky;top:100px;align-self:start}.site-search,.site-sidebar-cta,.site-newsletter,.site-sidebar-categories{margin-bottom:30px}.site-search label,.site-newsletter label{display:block;margin-bottom:7px;font-size:12px;font-weight:800;text-transform:uppercase;color:#7a8c96}.site-search>div{display:flex}.site-search input,.site-newsletter input{width:100%;min-height:44px;padding:10px 12px;border:1px solid #cfd5d9}.site-search button{padding:0 16px;border:0;background:var(--color-navy);color:#fff;font-weight:700}.site-sidebar-cta{padding:26px;background:var(--color-navy);color:#fff}.site-sidebar-cta h3{margin:0 0 12px;color:#fff;font-size:22px}.site-sidebar-cta p{line-height:1.55;color:#fff}.site-newsletter{padding:24px;background:#f3f5f6}.site-newsletter h3{margin:0 0 10px;color:var(--color-ink)}.site-newsletter p{font-size:14px;line-height:1.55}.site-newsletter .button{margin-top:10px}.site-sidebar-links{display:grid;gap:9px}.site-sidebar-links a{color:var(--color-ink);text-decoration:none;font-weight:700;font-size:14px}

.site-blog-wrap--article{grid-template-columns:minmax(0,920px) 290px;justify-content:space-between}.site-article-meta{margin-bottom:12px;color:#616161;font-size:14px;font-weight:600}.site-article h1{font-size:46px;letter-spacing:-.02em}.site-article-hero{width:100%;aspect-ratio:16/9;object-fit:cover;margin-bottom:30px}.site-article-lead,.site-article-content p,.site-article-content li{font-size:17px;line-height:1.75}.site-key-takeaways{margin:40px 0;padding:30px;border-radius:28px;background:#eee}.site-key-takeaways h2{margin:0 0 18px;color:var(--color-ink);font-size:25px}.site-key-takeaways ul{margin:0;padding:0;list-style:none}.site-key-takeaways li{padding:14px 0 14px 28px;border-bottom:1px solid #d8d8d8;position:relative}.site-key-takeaways li:last-child{border-bottom:0}.site-key-takeaways li:before{content:"•";position:absolute;left:6px;color:#7a8c96;font-size:24px}.site-article-toc{display:inline-block;max-width:100%;margin:0 0 38px;padding:18px 22px;background:#fafafa;border:1px solid #e1e4e6}.site-article-toc strong{display:block;margin-bottom:9px}.site-article-toc ol{margin:0;padding-left:22px}.site-article-toc li{margin:6px 0}.site-article-toc a{color:var(--color-ink)}.site-article-content h2{scroll-margin-top:100px;margin:48px 0 18px;color:var(--color-ink);font-size:30px}.site-article-callout{margin:30px 0;padding:24px 26px;border-left:5px solid var(--color-red);background:#f3f5f6}.site-article-callout p{margin-bottom:0}.site-article-content table{width:100%;margin:24px 0 38px;border-collapse:collapse;font-size:15px}.site-article-content th{padding:13px;background:var(--color-navy);color:#fff;text-align:left}.site-article-content td{padding:12px 13px;border:1px solid #aabbcc}.site-article-content tbody tr:nth-child(even){background:#e4eaea}

@media(max-width:1100px){.site-home-hero{grid-template-columns:1fr}.site-home-hero__media{min-height:390px}.site-post-grid{grid-template-columns:repeat(2,1fr)}.site-blog-wrap,.site-blog-wrap--article{grid-template-columns:1fr}.site-blog-sidebar{display:none}.site-stage-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:820px){.site-home-hero__copy{padding:56px 25px}.site-home-hero h1{font-size:44px}.site-home-hero__media{min-height:300px}.site-trust-strip{grid-template-columns:repeat(2,1fr)}.site-home-section{padding-top:64px;padding-bottom:64px}.site-home-tabs{grid-template-columns:1fr;gap:20px}.site-home-tabs__buttons{grid-template-columns:1fr}.site-project-grid,.site-industry-grid,.site-case-grid{grid-template-columns:1fr}.site-project-card{grid-template-columns:1fr}.site-project-card img{height:220px}.site-blog-wrap{padding-top:55px}.site-post-grid{grid-template-columns:1fr}.site-article h1{font-size:38px}.site-home-contact,.site-article-bottom-cta{align-items:flex-start;flex-direction:column}}
@media(max-width:560px){.site-stage-grid,.site-trust-strip{grid-template-columns:1fr}.site-home-hero h1{font-size:38px}.site-home-section__head h2{font-size:32px}.site-home-tab-panel{padding:28px 24px}.site-blog-wrap{padding-left:20px;padding-right:20px}.site-article h1{font-size:34px}.site-key-takeaways{border-radius:18px;padding:24px 20px}}

