/* Complete Crane Solutions — shared visual polish */
:root {
  --ccs-navy: #102b3f;
  --ccs-navy-dark: #091d2c;
  --ccs-accent: #f3b51b;
  --ccs-accent-hover: #ffd15a;
  --ccs-focus: #5fc3ff;
}

/* Consistent type rhythm without changing Squarespace's grid/container size. */
.ccs-content-copy,
.ccs-footer-copy {
  box-sizing: border-box;
  width: 100%;
  padding-inline: clamp(16px, 1.6vw, 26px);
}

.ccs-content-copy p,
.ccs-footer-copy p {
  margin: 0 0 1em !important;
  line-height: 1.7 !important;
}

.ccs-content-copy h1,
.ccs-content-copy h2,
.ccs-content-copy h3,
.ccs-content-copy h4,
.ccs-footer-copy h1,
.ccs-footer-copy h2,
.ccs-footer-copy h3,
.ccs-footer-copy h4 {
  margin: 0 0 0.6em !important;
  line-height: 1.16 !important;
  text-wrap: balance;
}

.ccs-content-copy > p + h2,
.ccs-content-copy > ul + h2,
.ccs-content-copy > ol + h2,
.ccs-content-copy > p + h3,
.ccs-content-copy > ul + h3,
.ccs-content-copy > ol + h3,
.ccs-footer-copy > p + h2,
.ccs-footer-copy > ul + h2,
.ccs-footer-copy > ol + h2,
.ccs-footer-copy > p + h3,
.ccs-footer-copy > ul + h3,
.ccs-footer-copy > ol + h3 {
  margin-top: 1.25em !important;
}

.ccs-content-copy ul,
.ccs-content-copy ol,
.ccs-footer-copy ul,
.ccs-footer-copy ol {
  margin: 0.4em 0 1.1em !important;
  padding-inline-start: 1.35em !important;
}

.ccs-content-copy li + li,
.ccs-footer-copy li + li { margin-top: 0.4em; }

.ccs-content-copy > :last-child,
.ccs-footer-copy > :last-child {
  margin-bottom: 0 !important;
}

/* Footer has its own spacing and never affects Fluid Engine image sections. */
.ccs-footer-copy {
  padding-inline: clamp(24px, 3vw, 48px);
}

/* Isolated page gutters: never targets homepage Fluid Engine sections. */
.ccs-inner-page main .page-section > .content-wrapper,
.ccs-footer .page-section > .content-wrapper {
  box-sizing: border-box !important;
  padding-left: clamp(28px, 5vw, 80px) !important;
  padding-right: clamp(28px, 5vw, 80px) !important;
}

@media (max-width: 767px) {
  .ccs-content-copy { padding-inline: 18px; }
  .ccs-footer-copy { padding-inline: 22px; }
  .ccs-inner-page main .page-section > .content-wrapper,
  .ccs-footer .page-section > .content-wrapper {
    padding-left: 20px !important;
    padding-right: 20px !important;
  }
}

/* One resilient treatment for content CTAs, form submits and the 24/7 CTA. */
.sqs-block-button-element,
.header-actions-action--cta .btn,
.sqs-block-form .sqs-editable-button,
.sqs-block-form .form-submit-button,
.sqs-block-form button,
.sqs-block-form button[type="submit"],
.sqs-block-form input[type="submit"],
.form-wrapper button[type="submit"],
.form-wrapper input[type="submit"],
.form-button-wrapper .sqs-system-button {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  min-height: 48px;
  box-sizing: border-box;
  border: 2px solid var(--ccs-accent) !important;
  border-radius: 6px !important;
  padding: 13px 24px !important;
  background: var(--ccs-accent) !important;
  color: var(--ccs-navy-dark) !important;
  -webkit-text-fill-color: var(--ccs-navy-dark) !important;
  font-weight: 700 !important;
  font-family: inherit !important;
  font-size: max(15px, 0.95rem) !important;
  line-height: 1.15 !important;
  letter-spacing: 0.035em !important;
  text-align: center;
  text-decoration: none !important;
  cursor: pointer !important;
  appearance: none !important;
  -webkit-appearance: none !important;
  opacity: 1 !important;
  isolation: isolate;
  overflow: hidden;
  box-shadow: 0 7px 18px rgba(9, 29, 44, 0.18);
  transition: transform 180ms ease, background-color 180ms ease,
    border-color 180ms ease, color 180ms ease,
    box-shadow 180ms ease !important;
}

.header-actions-action--cta .btn {
  min-height: 44px;
  padding: 11px 20px !important;
  white-space: nowrap;
}

/* Disable Squarespace's dark animated overlay, which obscured button labels. */
.sqs-block-button-element::before,
.sqs-block-button-element::after,
.header-actions-action--cta .btn::before,
.header-actions-action--cta .btn::after,
.sqs-block-form .sqs-editable-button::before,
.sqs-block-form .sqs-editable-button::after,
.sqs-block-form .form-submit-button::before,
.sqs-block-form .form-submit-button::after,
.sqs-block-form button::before,
.sqs-block-form button::after,
.sqs-block-form button[type="submit"]::before,
.sqs-block-form button[type="submit"]::after,
.form-button-wrapper .sqs-system-button::before,
.form-button-wrapper .sqs-system-button::after {
  content: none !important;
  display: none !important;
}

.sqs-block-button-element:hover,
.sqs-block-button-element:active,
.header-actions-action--cta .btn:hover,
.header-actions-action--cta .btn:active,
.sqs-block-form .sqs-editable-button:hover,
.sqs-block-form .sqs-editable-button:active,
.sqs-block-form .form-submit-button:hover,
.sqs-block-form .form-submit-button:active,
.sqs-block-form button:hover,
.sqs-block-form button:active,
.sqs-block-form button[type="submit"]:hover,
.sqs-block-form button[type="submit"]:active,
.sqs-block-form input[type="submit"]:hover,
.sqs-block-form input[type="submit"]:active,
.form-wrapper button[type="submit"]:hover,
.form-wrapper button[type="submit"]:active,
.form-wrapper input[type="submit"]:hover,
.form-wrapper input[type="submit"]:active,
.form-button-wrapper .sqs-system-button:hover,
.form-button-wrapper .sqs-system-button:active {
  background: var(--ccs-navy-dark) !important;
  border-color: var(--ccs-navy-dark) !important;
  color: #fff !important;
  -webkit-text-fill-color: #fff !important;
  opacity: 1 !important;
  transform: translateY(-2px);
  box-shadow: 0 10px 24px rgba(9, 29, 44, 0.25);
}

.sqs-block-button-element:focus-visible,
.header-actions-action--cta .btn:focus-visible,
.sqs-block-form .sqs-editable-button:focus-visible,
.sqs-block-form .form-submit-button:focus-visible,
.sqs-block-form button:focus-visible,
.sqs-block-form button[type="submit"]:focus-visible,
.sqs-block-form input[type="submit"]:focus-visible,
.form-wrapper button[type="submit"]:focus-visible,
.form-wrapper input[type="submit"]:focus-visible,
.form-button-wrapper .sqs-system-button:focus-visible,
.ccs-linkedin-logo:focus-visible {
  outline: 3px solid var(--ccs-focus) !important;
  outline-offset: 3px;
}

/* Keep nested labels/icons readable if Squarespace wraps the button text. */
.sqs-block-button-element:hover *,
.sqs-block-button-element:active *,
.header-actions-action--cta .btn:hover *,
.header-actions-action--cta .btn:active *,
.sqs-block-form button[type="submit"]:hover *,
.sqs-block-form button[type="submit"]:active *,
.sqs-block-form button:hover *,
.sqs-block-form button:active *,
.form-button-wrapper .sqs-system-button:hover *,
.form-button-wrapper .sqs-system-button:active * {
  color: #fff !important;
  -webkit-text-fill-color: #fff !important;
}

.sqs-block-form button[disabled],
.sqs-block-form input[type="submit"][disabled],
.form-wrapper button[type="submit"][disabled],
.form-wrapper input[type="submit"][disabled] {
  cursor: not-allowed !important;
  opacity: 0.58 !important;
  transform: none !important;
  box-shadow: none !important;
}

/* Use the supplied LinkedIn artwork while retaining the accessible link label. */
.ccs-linkedin-logo {
  display: block !important;
  width: 46px !important;
  height: 40px !important;
  border-radius: 6px;
  /* Crop the icon end of the supplied horizontal LinkedIn wordmark. */
  background-color: #fff !important;
  background-image: url('/assets/LinkedIn-Logo.wine.svg') !important;
  background-repeat: no-repeat !important;
  background-size: 114px 32px !important;
  background-position: right 4px center !important;
  transition: transform 180ms ease, box-shadow 180ms ease;
}

.ccs-linkedin-logo svg {
  visibility: hidden !important;
}

.ccs-linkedin-logo:hover {
  transform: translateY(-2px);
  box-shadow: 0 7px 16px rgba(9, 29, 44, 0.2);
}

/* Isolated homepage logo components; no shared Squarespace image selectors. */
.ccs-partner-logo .fluid-image-container {
  overflow: visible !important;
}

.ccs-partner-logo img,
.ccs-association-logo img {
  object-fit: contain !important;
  object-position: center !important;
}

.ccs-association-heading .ccs-content-copy {
  text-align: center !important;
}

/* Homepage intro: balanced two-column composition, isolated from other sections. */
.ccs-home-intro > .content-wrapper {
  box-sizing: border-box !important;
  max-width: 1480px !important;
  margin-inline: auto !important;
  padding: clamp(56px, 6vw, 96px) clamp(28px, 5vw, 80px) !important;
}

.ccs-home-intro #page-section-60a5cf32c996a914d3e3f1bf > .row > .col > .row {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) minmax(0, 0.9fr) !important;
  align-items: center !important;
  gap: clamp(44px, 6vw, 96px) !important;
}

.ccs-home-intro #page-section-60a5cf32c996a914d3e3f1bf > .row > .col > .row > .col {
  float: none !important;
  width: auto !important;
  margin: 0 !important;
}

.ccs-home-intro #page-section-60a5cf32c996a914d3e3f1bf > .row > .col > .row > .sqs-col-1 {
  display: none !important;
}

.ccs-home-intro .ccs-content-copy {
  padding-inline: 0 !important;
}

.ccs-home-intro .ccs-intro-heading h3 {
  max-width: 720px;
  margin-bottom: 28px !important;
}

.ccs-home-intro .ccs-intro-copy p {
  max-width: 620px;
  margin-inline: auto !important;
}

.ccs-home-intro .ccs-intro-cta {
  margin-top: 10px;
}

/* Partners: a predictable four-card logo grid with uncropped artwork. */
.ccs-partners > .content-wrapper,
.ccs-association > .content-wrapper {
  box-sizing: border-box !important;
  max-width: 1480px !important;
  margin-inline: auto !important;
  padding: clamp(56px, 6vw, 96px) clamp(28px, 5vw, 80px) !important;
}

.ccs-partners .fluid-engine {
  display: grid !important;
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  grid-template-rows: auto !important;
  gap: clamp(20px, 2.5vw, 36px) !important;
  min-height: 0 !important;
}

.ccs-partners .fluid-engine > .fe-block,
.ccs-association .fluid-engine > .fe-block {
  grid-area: auto !important;
  position: relative !important;
  inset: auto !important;
}

.ccs-partners-grid-heading,
.ccs-partners-grid-copy {
  grid-column: 1 / -1 !important;
  text-align: center;
}

.ccs-partners-grid-heading { order: 1; }
.ccs-partners-grid-copy {
  order: 2;
  width: 100% !important;
  max-width: 820px;
  margin-inline: auto;
}
.ccs-partner-grid-logo { order: 3; min-width: 0; }

.ccs-partner-logo .sqs-block-content,
.ccs-partner-logo .image-block-outer-wrapper,
.ccs-partner-logo .fluid-image-animation-wrapper,
.ccs-partner-logo .fluid-image-container,
.ccs-partner-logo .content-fit,
.ccs-partner-logo .sqs-block-image-link {
  box-sizing: border-box !important;
  width: 100% !important;
  height: 160px !important;
}

.ccs-partner-logo .fluid-image-container {
  overflow: visible !important;
}

.ccs-partner-logo .content-fit,
.ccs-partner-logo .sqs-block-image-link {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  padding: 22px !important;
}

.ccs-partner-logo img {
  position: static !important;
  display: block !important;
  width: 100% !important;
  height: 100% !important;
  max-width: 260px !important;
  max-height: 116px !important;
  margin: auto !important;
  object-fit: contain !important;
  object-position: center !important;
}

/* Association: one centered heading and one centered logo. */
.ccs-association .fluid-engine {
  display: grid !important;
  grid-template-columns: minmax(0, 720px) !important;
  grid-template-rows: auto !important;
  justify-content: center !important;
  gap: 24px !important;
  min-height: 0 !important;
}

.ccs-association-grid-heading,
.ccs-association-grid-logo {
  width: 100% !important;
  text-align: center !important;
}

.ccs-association-logo .sqs-block-content,
.ccs-association-logo .image-block-outer-wrapper,
.ccs-association-logo .fluid-image-animation-wrapper,
.ccs-association-logo .fluid-image-container,
.ccs-association-logo .content-fit,
.ccs-association-logo .sqs-block-image-link {
  box-sizing: border-box !important;
  width: 100% !important;
  height: 190px !important;
}

.ccs-association-logo .content-fit,
.ccs-association-logo .sqs-block-image-link {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  padding: 24px !important;
}

.ccs-association-logo img {
  position: static !important;
  display: block !important;
  width: 100% !important;
  height: 100% !important;
  max-width: 360px !important;
  max-height: 145px !important;
  margin: auto !important;
  object-fit: contain !important;
  object-position: center !important;
  transform: none !important;
}

@media (max-width: 767px) {
  .ccs-home-intro #page-section-60a5cf32c996a914d3e3f1bf > .row > .col > .row,
  .ccs-partners .fluid-engine {
    grid-template-columns: 1fr !important;
  }

  .ccs-home-intro > .content-wrapper,
  .ccs-partners > .content-wrapper,
  .ccs-association > .content-wrapper {
    padding: 48px 20px !important;
  }

  .ccs-partner-grid-logo { grid-column: 1 !important; }

  .sqs-block-button-container,
  .sqs-block-button-element { max-width: 100%; }

  .sqs-block-button-element { min-height: 46px; padding: 12px 19px !important; }
}

@media (prefers-reduced-motion: reduce) {
  .sqs-block-button-element,
  .header-actions-action--cta .btn,
  .sqs-block-form button[type="submit"],
  .sqs-block-form input[type="submit"],
  .form-button-wrapper .sqs-system-button,
  .ccs-linkedin-logo {
    transition: none !important;
  }
}

/* Standalone homepage sections: no Squarespace layout or animation classes. */
.ccs-static-section,
.ccs-static-section * {
  box-sizing: border-box;
}

.ccs-static-section {
  width: 100%;
  margin: 0;
  padding: clamp(64px, 7vw, 112px) clamp(24px, 5vw, 80px);
}

.ccs-static-shell {
  width: min(100%, 1400px);
  margin-inline: auto;
}

.ccs-static-section h2 {
  margin: 0 0 24px;
  font-size: clamp(38px, 5vw, 72px);
  line-height: 1.05;
  text-align: center;
}

.ccs-static-section p {
  max-width: 760px;
  margin: 0 auto 48px;
  font-size: clamp(17px, 1.4vw, 21px);
  line-height: 1.65;
  text-align: center;
}

.ccs-static-services {
  background: #111f2b;
  color: #fff;
}

.ccs-service-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(20px, 2.4vw, 34px);
}

.ccs-service-card {
  display: grid;
  grid-template-rows: 230px auto;
  min-width: 0;
  overflow: hidden;
  border-radius: 8px;
  background: #fff;
  color: var(--ccs-navy-dark) !important;
  text-decoration: none !important;
  box-shadow: 0 12px 30px rgba(0, 0, 0, 0.18);
  transition: transform 180ms ease, box-shadow 180ms ease;
}

.ccs-service-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 18px 38px rgba(0, 0, 0, 0.26);
}

.ccs-service-card img {
  display: block;
  width: 100%;
  height: 230px;
  margin: 0;
  object-fit: cover;
  object-position: center;
}

.ccs-service-card span {
  display: flex;
  align-items: center;
  min-height: 82px;
  padding: 20px 22px;
  font-size: 18px;
  font-weight: 700;
  line-height: 1.35;
}

.ccs-static-partners,
.ccs-static-association {
  background: #f3f3f1;
  color: #111;
}

.ccs-logo-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 28px;
  align-items: stretch;
}

.ccs-logo-grid > a,
.ccs-logo-grid > div,
.ccs-association-mark {
  display: flex;
  align-items: center;
  justify-content: center;
  min-width: 0;
  min-height: 180px;
  padding: 28px;
  border: 1px solid rgba(16, 43, 63, 0.1);
  border-radius: 8px;
  background: #fff;
  box-shadow: 0 8px 22px rgba(16, 43, 63, 0.08);
}

.ccs-logo-grid img {
  display: block;
  width: 100%;
  height: 110px;
  max-width: 260px;
  margin: 0;
  object-fit: contain;
  object-position: center;
}

.ccs-static-association {
  padding-top: 48px;
}

.ccs-association-mark {
  width: min(100%, 440px);
  min-height: 220px;
  margin-inline: auto;
}

.ccs-association-mark img {
  display: block;
  width: 100%;
  height: 150px;
  max-width: 340px;
  margin: 0;
  object-fit: contain;
  object-position: center;
}

@media (max-width: 960px) {
  .ccs-service-grid,
  .ccs-logo-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 600px) {
  .ccs-static-section { padding: 52px 20px; }
  .ccs-service-grid,
  .ccs-logo-grid { grid-template-columns: 1fr; }
  .ccs-service-card { grid-template-rows: 210px auto; }
  .ccs-service-card img { height: 210px; }
}
