/* Shared page rhythm; presentation only. Product copy and workflow behavior stay intact. */
:root {
  --page-width: 1280px;
  --page-gutter: clamp(20px, 4.8vw, 48px);
  --section-space: clamp(68px, 7.2vw, 104px);
}
.site-header,
.section-shell,
.hero.hero-with-key,
.legal-proof-strip,
.site-footer {
  width: min(var(--page-width), calc(100% - var(--page-gutter) * 2));
  max-width: var(--page-width);
  margin-inline: auto;
}
.site-header { height: 96px; }
.section-shell { padding: var(--section-space) 0; }
.hero.hero-with-key {
  min-height: 650px;
  padding: 68px 0 76px;
  gap: 5%;
  align-items: center;
}
.hero-with-key .hero-copy { width: 45%; flex-basis: 45%; }
.hero-with-key .access-key-stage { width: 50%; margin-left: auto; }
.hero h1 { font-size: clamp(54px, 5.1vw, 82px); }
.hero-description { max-width: 43ch; }
.hero-actions { flex-wrap: wrap; row-gap: 18px; }
.legal-proof-strip { padding: 25px 18px; gap: 20px 28px; }
.collection .section-heading,
.website-services .section-heading,
.integrations .section-heading,
.setup .section-heading,
.rollout-heading {
  display: grid;
  grid-template-columns: minmax(0, 1.2fr) minmax(0, .8fr);
  gap: 32px 64px;
  align-items: end;
  margin-bottom: 44px;
}
.section-heading > p,
.rollout-intro { margin: 0; }
.section-heading h2,
.rollout-heading h2 { text-wrap: balance; }
.collection .product-grid,
.website-service-layout,
.integrations .integration-grid,
.setup .setup-grid,
.legal-work .legal-grid { gap: 24px; }
.collection .product-card { display: flex; flex-direction: column; }
.collection .product-body { display: flex; flex-direction: column; flex: 1; }
.collection .product-body > .product-link { margin-top: auto; }
.website-service-layout { align-items: start; }
.website-services .website-service-list li { padding: 25px 24px; }
.website-design-study { width: 100%; }
.integrations .integration-feature { gap: 48px; }
.integration-directory { margin-top: 64px; padding-top: 42px; }
.ecosystem-controls { gap: 20px; }
.ecosystem-search { min-height: 44px; }
.ecosystem-grid { column-gap: 28px; }
.ecosystem-tool { padding-block: 24px; }
.setup.section-shell { background: transparent; }
.site-footer { padding: 36px 0; gap: 24px; flex-wrap: wrap; }

/* Stack before the card and headline become cramped on small laptops/tablets. */
@media (max-width: 1000px) {
  .hero.hero-with-key { flex-direction: column; align-items: stretch; gap: 36px; min-height: 0; padding-block: 60px; }
  .hero-with-key .hero-copy { width: 100%; flex-basis: auto; max-width: 680px; }
  .hero h1 { font-size: clamp(54px, 7.6vw, 76px); }
  .hero-description { max-width: 48ch; }
  .hero-with-key .access-key-stage { width: 100%; max-width: 600px; margin: 0 auto; padding-top: 0; }
  .collection .section-heading,
  .website-services .section-heading,
  .integrations .section-heading,
  .setup .section-heading,
  .rollout-heading { grid-template-columns: 1fr; align-items: start; gap: 24px; }
  .section-heading > p,
  .rollout-intro { max-width: 54ch !important; }
  .website-service-layout { grid-template-columns: 1fr; gap: 32px; }
  .website-design-study { max-width: 620px; margin-inline: auto; }
  .setup .setup-grid { grid-template-columns: 1fr; }
  .setup .setup-step { padding: 26px; }
}
@media (max-width: 680px) {
  .collection .product-grid { grid-template-columns: 1fr; }
  .integrations .integration-grid { grid-template-columns: 1fr; }
  .collection .product-body { padding: 26px 24px; }
  .collection .product-visual { height: 190px; }
  .collection .product-body > .product-link { margin-top: 8px; }
}
@media (max-width: 580px) {
  :root { --page-gutter: 22px; --section-space: 64px; }
  .site-header { height: 82px; }
  .hero.hero-with-key { padding: 42px 0 48px; gap: 28px; }
  .hero h1 { font-size: clamp(42px, 11.7vw, 58px); line-height: 1.08; margin-top: 20px; }
  .hero-description { font-size: 17px; line-height: 1.7; margin-top: 24px; }
  .hero-actions { margin-top: 26px; gap: 18px; }
  .hero-with-key .access-key-stage { margin-top: 4px; }
  .key-card-caption { flex-wrap: wrap; row-gap: 6px; }
  .key-motion-controls { margin-left: auto; }
  .legal-proof-strip { padding: 24px 12px; gap: 16px; }
  .section-heading h2,
  .rollout-heading h2,
  .setup h2 { font-size: clamp(38px, 10.4vw, 48px); line-height: 1.12; }
  .collection .section-heading,
  .website-services .section-heading,
  .integrations .section-heading,
  .setup .section-heading,
  .rollout-heading { gap: 22px; margin-bottom: 32px; }
  .section-heading > p,
  .rollout-intro { font-size: 17px; line-height: 1.65; }
  .rollout .rollout-steps { grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 8px; padding: 20px 10px; }
  .rollout .rollout-step { font-size: 12px; gap: 8px; }
  .rollout .rollout-step-index { width: 26px; height: 26px; font-size: 12px; }
  .website-services .website-service-list li { grid-template-columns: 20px minmax(0, 1fr); gap: 12px; padding: 22px 20px; }
  .integrations .integration-feature { gap: 32px; }
  .integration-directory { margin-top: 48px; padding-top: 32px; }
  .ecosystem-heading { gap: 20px; margin-bottom: 26px; }
  .ecosystem-tool { padding-block: 20px; }
  .ecosystem-tool-label { margin-top: 12px; }
  .ecosystem-tool-description { line-height: 1.6; }
  .ecosystem-controls { gap: 16px; }
  .setup .setup-step { padding: 24px 22px; }
  .site-footer { padding-block: 30px; gap: 20px; }
}
@media (max-width: 360px) {
  :root { --page-gutter: 18px; }
  .hero h1 { font-size: 42px; }
  .hero-actions { align-items: flex-start; }
  .collection .product-body { padding-inline: 20px; }
  .rollout .rollout-steps { gap: 5px; padding-inline: 8px; }
  .rollout .rollout-step { font-size: 11px; }
}
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }
