/*
Theme Name: GCSI
Author: Great Care Staffing Inc.
Description: Custom theme for Great Care Staffing Inc.
Version: 1.0.0
Requires at least: 6.5
Requires PHP: 8.0
License: GPL-2.0-or-later
Text Domain: gcsi
*/

:root {
  --gc-ink:        var(--wp--preset--color--ink-primary);
  --gc-body:       var(--wp--preset--color--ink-body);
  --gc-muted:      var(--wp--preset--color--ink-muted);
  --gc-on-dark:    var(--wp--preset--color--ink-on-dark);

  --gc-bg:         var(--wp--preset--color--bg-base);
  --gc-bg-alt:     var(--wp--preset--color--bg-alt);
  --gc-surface:    var(--wp--preset--color--bg-raised);
  --gc-bg-dark:    var(--wp--preset--color--bg-dark);

  --gc-primary:    var(--wp--preset--color--brand-primary);
  --gc-accent:     var(--wp--preset--color--brand-accent);
  --gc-facility:   var(--wp--preset--color--path-facility);
  --gc-talent:     var(--wp--preset--color--path-talent);

  --gc-line:       var(--wp--preset--color--rule-hairline);
  --gc-line-strong:var(--wp--preset--color--rule-strong);

  --gc-radius:     4px;
}

body { text-rendering: optimizeLegibility; -webkit-font-smoothing: antialiased; }

.wp-block-table { overflow-x: auto; }
figure.wp-block-table table { min-width: 0; }

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

:where(a, button, input, select, textarea, summary, [tabindex]):focus-visible {
  outline: 3px solid var(--wp--preset--color--brand-primary);
  outline-offset: 2px;
  border-radius: 2px;
}

.has-bg-dark-background-color :where(a, button, input, select, textarea, summary, [tabindex]):focus-visible,
.gcsi-footer :where(a, button, input, select, textarea, summary, [tabindex]):focus-visible {
  outline-color: var(--wp--preset--color--brand-support);
}

.skip-link:not(:focus) {
  position: absolute !important;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip-path: inset(50%);
  white-space: nowrap;
}

.skip-link:focus {
  position: absolute;
  z-index: 999;
  top: var(--wp--preset--spacing--3-xs);
  left: var(--wp--preset--spacing--3-xs);
  padding: var(--wp--preset--spacing--2-xs) var(--wp--preset--spacing--xs);
  background: var(--wp--preset--color--bg-base);
  color: var(--wp--preset--color--brand-primary);
  font-family: var(--wp--preset--font-family--display);
  font-weight: 600;
  text-decoration: underline;
}

.wp-block-button.is-style-outline > .wp-block-button__link {
  background-color: transparent;
  border: 2px solid var(--wp--preset--color--brand-primary);
  color: var(--wp--preset--color--brand-primary);
}

.wp-block-button.is-style-outline > .wp-block-button__link:hover,
.wp-block-button.is-style-outline > .wp-block-button__link:focus {
  background-color: var(--wp--preset--color--brand-primary);
  color: var(--wp--preset--color--ink-on-dark);
  border-color: var(--wp--preset--color--brand-primary);
}

.wp-block-button__link { text-decoration: none; }

.entry-content :is(h2, h3, h4):not(:first-child) {
  margin-top: var(--wp--preset--spacing--xl);
}

.entry-content h2 + h3,
.entry-content h3 + p,
.entry-content h2 + p,
.entry-content h4 + p {
  margin-top: var(--wp--preset--spacing--2-xs);
}

.entry-content h3:not(:first-child) {
  margin-top: var(--wp--preset--spacing--md);
}

.gcsi-header .wp-block-site-logo img {
  height: auto;
  max-height: 52px;
  width: auto;
}

.gcsi-header .wp-block-navigation {
  gap: var(--wp--preset--spacing--sm);
}

.gcsi-footer a {
  text-decoration: none;
}

.gcsi-footer a:hover,
.gcsi-footer a:focus {
  text-decoration: underline;
}

.gcsi-footer > * + * {
  margin-top: var(--wp--preset--spacing--2-xs);
}

.gcsi-path-facility {
  border-left: 4px solid var(--wp--preset--color--path-facility);
  padding-left: var(--wp--preset--spacing--xs);
}

.gcsi-path-talent {
  border-left: 4px solid var(--wp--preset--color--path-talent);
  padding-left: var(--wp--preset--spacing--xs);
}

@media print {
  .gcsi-header,
  .gcsi-footer,
  .wp-block-navigation,
  .wp-block-buttons {
    display: none !important;
  }

  .entry-content a[href^="http"]::after {
    content: " (" attr(href) ")";
    font-size: 90%;
    word-break: break-all;
  }
}

.gcsi-band + .gcsi-band {
  
  margin-block-start: 0;
}

.gcsi-band-seam {
  border-top: 1px solid var(--gc-line);
}

.gcsi-grid {
  display: grid;
  gap: var(--wp--preset--spacing--lg);
}

.gcsi-grid-2 { grid-template-columns: repeat(auto-fit, minmax(min(100%, 24rem), 1fr)); }
.gcsi-grid-3 { grid-template-columns: repeat(auto-fit, minmax(min(100%, 16rem), 1fr)); }

.gcsi-grid > * + * { margin-block-start: 0; }

.gcsi-card {
  background-color: var(--gc-surface);
  border: 1px solid var(--gc-line);
  border-radius: var(--gc-radius);
  padding: var(--wp--preset--spacing--md);
}

.gcsi-card > :first-child { margin-block-start: 0; }
.gcsi-card > :last-child  { margin-block-end: 0; }

.gcsi-card :is(h3, h4) { margin-block-start: var(--wp--preset--spacing--sm); }
.gcsi-card :is(h3, h4) + p { margin-block-start: var(--wp--preset--spacing--4-xs); }
.gcsi-card h2 + :is(h3, h4) { margin-block-start: var(--wp--preset--spacing--xs); }

.gcsi-path-facility,
.gcsi-path-talent {
  border-left-width: 4px;
  border-left-style: solid;
  padding-left: var(--wp--preset--spacing--sm);
}

.gcsi-path-facility { border-left-color: var(--gc-facility); }
.gcsi-path-talent   { border-left-color: var(--gc-talent); }

.has-bg-dark-background-color :is(h1, h2, h3, h4),
.has-bg-dark-background-color p {
  color: var(--gc-on-dark);
}

.has-bg-dark-background-color a {
  color: var(--gc-talent);
}

.gcsi-nav-cta {
  color: var(--gc-on-dark);
}

.gcsi-nav-cta > a {
  background-color: var(--gc-primary);
  border-radius: var(--gc-radius);
  padding: 10px 18px;
}

.gcsi-nav-cta:hover,
.gcsi-nav-cta:focus-within {
  color: var(--gc-on-dark);
}

.gcsi-nav-cta:hover > a,
.gcsi-nav-cta > a:focus {
  background-color: var(--gc-ink);
}

.wp-block-navigation__responsive-container.is-menu-open .gcsi-nav-cta > a {
  background-color: transparent;
  padding: 0;
}

.gcsi-breadcrumb {
  font-size: var(--wp--preset--font-size--sm);
  color: var(--gc-muted);
}

.gcsi-breadcrumb a { text-decoration: none; }
.gcsi-breadcrumb a:hover,
.gcsi-breadcrumb a:focus { text-decoration: underline; }

.home .gcsi-breadcrumb { display: none; }

.gcsi-footer-cols {
  display: grid;
  gap: var(--wp--preset--spacing--lg);
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 14rem), 1fr));
}

.gcsi-footer-cols > * + * { margin-block-start: 0; }

.gcsi-footer-cols :is(h2, h3, p:first-child) {
  font-family: var(--wp--preset--font-family--display);
  font-size: var(--wp--preset--font-size--sm);
  font-weight: 700;
}

.gcsi-footer ul {
  list-style: none;
  padding-left: 0;
  margin: 0;
}

.gcsi-footer li + li { margin-block-start: var(--wp--preset--spacing--4-xs); }

.gcsi-footer-legal {
  border-top: 1px solid var(--gc-line-strong);
  margin-block-start: var(--wp--preset--spacing--lg);
  padding-block-start: var(--wp--preset--spacing--xs);
}

.gcsi-card figure.wp-block-image {
  margin-block: 0 var(--wp--preset--spacing--xs);
}

.gcsi-card figure.wp-block-image img {
  display: block;
  width: 100%;
  aspect-ratio: 3 / 2;
  object-fit: cover;
  border-radius: var(--gc-radius);
}

.gcsi-media-band img {
  display: block;
  width: 100%;
  aspect-ratio: 16 / 9;
  object-fit: cover;
}

@media (min-width: 782px) {
  .gcsi-media-band img {
    aspect-ratio: 21 / 9;
  }
}

.gcsi-media-band figure.wp-block-image {
  margin: 0;
}

.gcsi-figure img {
  display: block;
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  border-radius: var(--gc-radius);
}

.gcsi-figure {
  margin: 0;
}

.gcsi-grid > .gcsi-vcenter {
  align-self: center;
}

h1, h2, h3, h4,
.wp-block-heading {
  text-wrap: balance;
}

p, li {
  text-wrap: pretty;
}

a {
  text-underline-offset: 0.18em;
  text-decoration-thickness: 1px;
}

a:hover,
a:focus-visible {
  text-decoration-thickness: 2px;
}

body {
  font-variant-numeric: tabular-nums;
  font-kerning: normal;
  font-feature-settings: "liga" 1, "calt" 1;
}

.gcsi-eyebrow {
  font-family: var(--wp--preset--font-family--display);
  font-size: var(--wp--preset--font-size--xs);
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--gc-primary);
  margin-block-end: var(--wp--preset--spacing--3-xs);
}

.has-bg-dark-background-color .gcsi-eyebrow,
.wp-block-cover .gcsi-eyebrow {
  color: var(--gc-on-dark);
}

.gcsi-eyebrow + :is(h1, h2, h3) {
  margin-block-start: 0;
}

a,
.wp-block-button__link,
.gcsi-card,
.gcsi-nav-cta > a {
  transition:
    background-color 160ms ease,
    border-color 160ms ease,
    color 160ms ease,
    box-shadow 200ms ease,
    transform 200ms ease,
    text-decoration-thickness 120ms ease;
}

.gcsi-card {
  box-shadow: 0 1px 2px color-mix(in srgb, var(--gc-ink) 6%, transparent);
}

.gcsi-card:hover {
  transform: translateY(-2px);
  box-shadow:
    0 4px 6px color-mix(in srgb, var(--gc-ink) 7%, transparent),
    0 12px 24px color-mix(in srgb, var(--gc-ink) 8%, transparent);
}

.gcsi-card:not(:has(a)):hover {
  transform: none;
  box-shadow: 0 1px 2px color-mix(in srgb, var(--gc-ink) 6%, transparent);
}

.wp-block-button__link:hover {
  box-shadow: 0 4px 12px color-mix(in srgb, var(--gc-primary) 28%, transparent);
}

.wp-block-button.is-style-outline > .wp-block-button__link:hover {
  box-shadow: 0 4px 12px color-mix(in srgb, var(--gc-primary) 20%, transparent);
}

.gcsi-hero {
  min-height: 62vh;
}

@media (max-width: 781px) {
  .gcsi-hero {
    min-height: 78vh;
  }
}

.gcsi-hero .wp-block-cover__background {
  background-image: linear-gradient(
    to bottom,
    color-mix(in srgb, var(--gc-bg-dark) 82%, transparent) 0%,
    color-mix(in srgb, var(--gc-bg-dark) 62%, transparent) 55%,
    color-mix(in srgb, var(--gc-bg-dark) 74%, transparent) 100%
  );
}

.gcsi-hero h1 {
  margin-inline: 0;
  font-size: var(--wp--preset--font-size--display);
  max-width: 22ch;
}

.gcsi-hero p {
  margin-inline: 0;
  max-width: 46ch;
}

.gcsi-header {
  position: relative;
  z-index: 2;
}

.gcsi-footer {
  border-top: 3px solid var(--gc-talent);
}

.gcsi-footer-cols :is(p:first-child) {
  color: var(--gc-talent);
  letter-spacing: 0.06em;
  text-transform: uppercase;
  font-size: var(--wp--preset--font-size--xs);
}

.gcsi-media-band {
  border-block: 1px solid color-mix(in srgb, var(--gc-ink) 8%, transparent);
}

.wp-block-cover .wp-block-button.is-style-outline > .wp-block-button__link,
.has-bg-dark-background-color .wp-block-button.is-style-outline > .wp-block-button__link {
  border-color: var(--gc-on-dark);
  color: var(--gc-on-dark);
}

.wp-block-cover .wp-block-button.is-style-outline > .wp-block-button__link:hover,
.wp-block-cover .wp-block-button.is-style-outline > .wp-block-button__link:focus,
.has-bg-dark-background-color .wp-block-button.is-style-outline > .wp-block-button__link:hover,
.has-bg-dark-background-color .wp-block-button.is-style-outline > .wp-block-button__link:focus {
  background-color: var(--gc-on-dark);
  border-color: var(--gc-on-dark);
  color: var(--gc-ink);
}

.gcsi-accent {
  color: var(--gc-primary);
}

.gcsi-split {
  display: grid;
  gap: var(--wp--preset--spacing--xl);
  align-items: center;
  grid-template-columns: 1fr;
}

@media (min-width: 900px) {
  .gcsi-split {
    grid-template-columns: 1.05fr 1fr;
    gap: var(--wp--preset--spacing--2-xl);
  }
}

.gcsi-split > * + * { margin-block-start: 0; }

.gcsi-split figure { margin: 0; }

.gcsi-split figure img {
  display: block;
  width: 100%;
  aspect-ratio: 4 / 5;
  object-fit: cover;
  border-radius: calc(var(--gc-radius) * 3);
}

@media (max-width: 899px) {
  .gcsi-split figure img { aspect-ratio: 3 / 2; }
}

.gcsi-chips {
  display: grid;
  gap: var(--wp--preset--spacing--sm);
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 13rem), 1fr));
  margin-block-start: var(--wp--preset--spacing--lg);
}

.gcsi-chips > * + * { margin-block-start: 0; }

.gcsi-chip {
  display: flex;
  gap: var(--wp--preset--spacing--3-xs);
  align-items: flex-start;
  font-size: var(--wp--preset--font-size--sm);
  line-height: 1.35;
}

.gcsi-chip svg {
  flex: 0 0 auto;
  width: 22px;
  height: 22px;
  margin-block-start: 1px;
  color: var(--gc-primary);
}

.has-bg-dark-background-color .gcsi-chip svg,
.wp-block-cover .gcsi-chip svg {
  color: var(--gc-talent);
}

.gcsi-disciplines {
  display: grid;
  gap: var(--wp--preset--spacing--sm);
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 9rem), 1fr));
  align-items: start;
  text-align: center;
}

.gcsi-disciplines > * + * { margin-block-start: 0; }

.gcsi-disc {
  font-family: var(--wp--preset--font-family--text);
  font-size: var(--wp--preset--font-size--sm);
  font-weight: 600;
  line-height: 1.3;
  color: var(--gc-body);
}

.gcsi-disc svg {
  display: block;
  width: 30px;
  height: 30px;
  margin: 0 auto var(--wp--preset--spacing--4-xs);
  color: var(--gc-primary);
}

.gcsi-disc-label {
  font-family: var(--wp--preset--font-family--display);
  font-size: var(--wp--preset--font-size--xs);
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--gc-muted);
  text-align: left;
  align-self: center;
  border-right: 1px solid var(--gc-line);
  padding-right: var(--wp--preset--spacing--sm);
}

@media (max-width: 899px) {
  .gcsi-disc-label {
    border-right: 0;
    border-bottom: 1px solid var(--gc-line);
    padding-right: 0;
    padding-bottom: var(--wp--preset--spacing--2-xs);
    text-align: center;
  }
}

.gcsi-tile {
  background-color: var(--gc-surface);
  border: 1px solid var(--gc-line);
  border-radius: calc(var(--gc-radius) * 2);
  overflow: hidden;
  display: flex;
  flex-direction: column;
}

.gcsi-tile > * + * { margin-block-start: 0; }

.gcsi-tile figure { margin: 0; }

.gcsi-tile figure img {
  display: block;
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
}

.gcsi-tile-body {
  padding: var(--wp--preset--spacing--sm);
  display: flex;
  flex-direction: column;
  gap: var(--wp--preset--spacing--3-xs);
  flex: 1 1 auto;
}

.gcsi-tile-body > * + * { margin-block-start: 0; }

.gcsi-tile h3 {
  margin: 0;
  font-size: var(--wp--preset--font-size--heading-md);
}

.gcsi-tile p {
  margin: 0;
  font-size: var(--wp--preset--font-size--sm);
  color: var(--gc-body);
}

.gcsi-tile .gcsi-tilelink {
  margin-block-start: auto;
  padding-block-start: var(--wp--preset--spacing--3-xs);
}

.gcsi-tile:hover {
  border-color: color-mix(in srgb, var(--gc-primary) 40%, transparent);
}

.wp-block-button__link::after,
a.gcsi-arrow::after {
  content: "\2192";
  display: inline-block;
  margin-inline-start: 0.45em;
  transition: transform 180ms ease;
}

.wp-block-button__link:hover::after,
a.gcsi-arrow:hover::after {
  transform: translateX(3px);
}

a.gcsi-arrow {
  font-family: var(--wp--preset--font-family--display);
  font-weight: 700;
  font-size: var(--wp--preset--font-size--sm);
  text-decoration: none;
}

a.gcsi-arrow:hover {
  text-decoration: underline;
}

.gcsi-panel {
  border-radius: calc(var(--gc-radius) * 3);
  overflow: hidden;
  padding: var(--wp--preset--spacing--lg);
  display: flex;
  flex-direction: column;
  gap: var(--wp--preset--spacing--2-xs);
  min-height: 15rem;
  justify-content: center;
}

.gcsi-panel > * + * { margin-block-start: 0; }

.gcsi-panel-facility {
  background-color: var(--gc-bg-dark);
  color: var(--gc-on-dark);
}

.gcsi-panel-facility :is(h2, h3, p) { color: var(--gc-on-dark); }

.gcsi-panel-talent {
  background-color: var(--gc-bg-alt);
  border: 1px solid var(--gc-line);
}

.gcsi-steps {
  display: grid;
  gap: var(--wp--preset--spacing--lg);
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 15rem), 1fr));
  margin-block-start: var(--wp--preset--spacing--lg);
}

.gcsi-steps > * + * { margin-block-start: 0; }

.gcsi-step {
  display: flex;
  flex-direction: column;
  gap: var(--wp--preset--spacing--4-xs);
}

.gcsi-step-num {
  font-family: var(--wp--preset--font-family--display);
  font-size: var(--wp--preset--font-size--heading-lg);
  font-weight: 700;
  line-height: 1;
  color: color-mix(in srgb, var(--gc-primary) 34%, transparent);
}

.gcsi-step h3 {
  margin: 0;
  font-size: var(--wp--preset--font-size--heading-md);
}

.gcsi-step p {
  margin: 0;
  font-size: var(--wp--preset--font-size--sm);
}

.gcsi-cta h2 {
  max-width: 24ch;
  margin-inline: 0;
}

.gcsi-cta p {
  max-width: 52ch;
  margin-inline: 0;
}

.gcsi-grid-4 { grid-template-columns: repeat(auto-fit, minmax(min(100%, 14rem), 1fr)); }

.gcsi-panel-facility .wp-block-button.is-style-outline > .wp-block-button__link {
  border-color: var(--gc-on-dark);
  color: var(--gc-on-dark);
}

.gcsi-panel-facility .wp-block-button.is-style-outline > .wp-block-button__link:hover,
.gcsi-panel-facility .wp-block-button.is-style-outline > .wp-block-button__link:focus {
  background-color: var(--gc-on-dark);
  border-color: var(--gc-on-dark);
  color: var(--gc-ink);
}

.gcsi-panel-facility a:not(.wp-block-button__link) {
  color: var(--gc-talent);
}

.gcsi-nav-cta > a::after {
  content: "\2192";
  display: inline-block;
  margin-inline-start: 0.4em;
  transition: transform 180ms ease;
}

.gcsi-nav-cta > a:hover::after {
  transform: translateX(3px);
}

.gcsi-band-major {
  padding-block: var(--wp--preset--spacing--4-xl);
}

.gcsi-band-minor {
  padding-block: var(--wp--preset--spacing--2-xl);
}

@media (max-width: 781px) {
  .gcsi-band-major { padding-block: var(--wp--preset--spacing--2-xl); }
  .gcsi-band-minor { padding-block: var(--wp--preset--spacing--xl); }
}

.gcsi-split-58 {
  display: grid;
  gap: var(--wp--preset--spacing--2-xl);
  align-items: center;
  grid-template-columns: 1fr;
}

@media (min-width: 900px) {
  .gcsi-split-58 { grid-template-columns: 1.38fr 1fr; }
  .gcsi-split-42 { grid-template-columns: 1fr 1.38fr; }
}

.gcsi-split-58 > * + *,
.gcsi-split-42 > * + * { margin-block-start: 0; }

.gcsi-stack {
  position: relative;
}

.gcsi-stack figure { margin: 0; }

.gcsi-stack-main img {
  display: block;
  width: 100%;
  aspect-ratio: 4 / 5;
  object-fit: cover;
  border-radius: calc(var(--gc-radius) * 5);
}

.gcsi-stack-inset {
  display: none;
}

@media (min-width: 900px) {
  .gcsi-stack-inset {
    display: block;
    position: absolute;
    right: calc(var(--wp--preset--spacing--xl) * -1);
    bottom: calc(var(--wp--preset--spacing--lg) * -1);
    width: 52%;
  }

  .gcsi-stack-inset img {
    display: block;
    width: 100%;
    aspect-ratio: 4 / 3;
    object-fit: cover;
    border-radius: calc(var(--gc-radius) * 4);
    
    outline: 8px solid var(--gc-bg);
    outline-offset: 0;
  }
}

.has-bg-alt-background-color .gcsi-stack-inset img { outline-color: var(--gc-bg-alt); }

.gcsi-solutions-major {
  display: grid;
  gap: var(--wp--preset--spacing--lg);
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 22rem), 1fr));
}

.gcsi-solutions-minor {
  display: grid;
  gap: var(--wp--preset--spacing--lg);
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 15rem), 1fr));
  margin-block-start: var(--wp--preset--spacing--lg);
  padding-block-start: var(--wp--preset--spacing--lg);
  border-top: 1px solid var(--gc-line);
}

.gcsi-solutions-major > * + *,
.gcsi-solutions-minor > * + * { margin-block-start: 0; }

.gcsi-solution-major {
  background-color: var(--gc-surface);
  border: 1px solid var(--gc-line);
  border-radius: calc(var(--gc-radius) * 4);
  overflow: hidden;
  display: flex;
  flex-direction: column;
}

.gcsi-solution-major > * + * { margin-block-start: 0; }
.gcsi-solution-major figure { margin: 0; }

.gcsi-solution-major figure img {
  display: block;
  width: 100%;
  aspect-ratio: 16 / 9;
  object-fit: cover;
}

.gcsi-solution-body {
  padding: var(--wp--preset--spacing--md);
}

.gcsi-solution-body > * + * { margin-block-start: var(--wp--preset--spacing--3-xs); }

.gcsi-solution-body h3 {
  margin: 0;
  font-size: var(--wp--preset--font-size--heading-md);
}

.gcsi-solution-minor h3 {
  margin: 0 0 var(--wp--preset--spacing--4-xs);
  font-size: var(--wp--preset--font-size--heading-md);
}

.gcsi-solution-minor p {
  margin: 0;
  font-size: var(--wp--preset--font-size--sm);
}

.gcsi-solution-minor {
  border-left: 2px solid var(--gc-accent);
  padding-left: var(--wp--preset--spacing--xs);
}

.gcsi-numbered {
  display: grid;
  gap: var(--wp--preset--spacing--lg);
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 20rem), 1fr));
  margin-block-start: var(--wp--preset--spacing--xl);
  counter-reset: gcsi-n;
}

.gcsi-numbered > * + * { margin-block-start: 0; }

.gcsi-numbered-item {
  counter-increment: gcsi-n;
  display: grid;
  grid-template-columns: auto 1fr;
  gap: var(--wp--preset--spacing--xs);
  align-items: start;
  padding-block-end: var(--wp--preset--spacing--xs);
  border-bottom: 1px solid var(--gc-line);
}

.gcsi-numbered-item::before {
  content: counter( gcsi-n, decimal-leading-zero );
  font-family: var(--wp--preset--font-family--display);
  font-size: var(--wp--preset--font-size--heading-lg);
  font-weight: 700;
  line-height: 0.9;
  color: color-mix(in srgb, var(--gc-accent) 45%, transparent);
}

.gcsi-numbered-item h3 {
  margin: 0 0 var(--wp--preset--spacing--4-xs);
  font-size: var(--wp--preset--font-size--heading-md);
}

.gcsi-numbered-item p {
  margin: 0;
  font-size: var(--wp--preset--font-size--sm);
}

.gcsi-audience {
  display: grid;
  grid-template-columns: 1fr;
  gap: 0;
}

@media (min-width: 900px) {
  .gcsi-audience { grid-template-columns: 1fr 1fr; }
}

.gcsi-audience > * + * { margin-block-start: 0; }

.gcsi-audience-side {
  display: grid;
  grid-template-columns: 1fr;
  align-content: center;
  gap: var(--wp--preset--spacing--2-xs);
  padding: var(--wp--preset--spacing--2-xl) var(--wp--preset--spacing--xl);
}

.gcsi-audience-side > * + * { margin-block-start: 0; }

.gcsi-audience-facility {
  background-color: var(--gc-bg-dark);
  color: var(--gc-on-dark);
}

.gcsi-audience-facility :is(h2, h3, p, li) { color: var(--gc-on-dark); }
.gcsi-audience-facility a:not(.wp-block-button__link) { color: var(--gc-talent); }

.gcsi-audience-talent {
  background-color: var(--gc-bg-alt);
}

.gcsi-audience-facility .wp-block-button.is-style-outline > .wp-block-button__link {
  border-color: var(--gc-on-dark);
  color: var(--gc-on-dark);
}

.gcsi-audience-facility .wp-block-button.is-style-outline > .wp-block-button__link:hover,
.gcsi-audience-facility .wp-block-button.is-style-outline > .wp-block-button__link:focus {
  background-color: var(--gc-on-dark);
  border-color: var(--gc-on-dark);
  color: var(--gc-ink);
}

.gcsi-audience-list {
  list-style: none;
  margin: var(--wp--preset--spacing--2-xs) 0 0;
  padding: 0;
  font-size: var(--wp--preset--font-size--sm);
}

.gcsi-audience-list li {
  padding-block: var(--wp--preset--spacing--4-xs);
  border-bottom: 1px solid color-mix(in srgb, currentColor 18%, transparent);
}

.gcsi-audience-list li:last-child { border-bottom: 0; }

.gcsi-header {
  position: sticky;
  top: 0;
  z-index: 20;
  box-shadow: 0 1px 0 var(--gc-line);
}

.admin-bar .gcsi-header { top: 32px; }

@media (max-width: 782px) {
  .admin-bar .gcsi-header { top: 46px; }
}

.gcsi-band-strip {
  padding-block: var(--wp--preset--spacing--sm);
}

.gcsi-seam-top { border-top: 1px solid var(--gc-line); }
.gcsi-seam-bottom { border-bottom: 1px solid var(--gc-line); }

.gcsi-lead {
  font-size: var(--wp--preset--font-size--lg);
  line-height: 1.55;
  color: var(--gc-body);
  max-width: 46ch;
  margin-inline: 0;
}

.gcsi-lead-center {
  margin-inline: auto;
  text-align: center;
}

.wp-block-button__link {
  padding-block: 16px;
  padding-inline: 32px;
}

.wp-block-button__link:hover {
  transform: translateY(-1px);
}

.gcsi-eyebrow-rule {
  display: flex;
  align-items: center;
  gap: var(--wp--preset--spacing--3-xs);
}

.gcsi-eyebrow-rule::before {
  content: "";
  width: 28px;
  height: 2px;
  background-color: var(--gc-talent);
  flex: 0 0 auto;
}

.gcsi-eyebrow-rule.gcsi-eyebrow-center {
  justify-content: center;
}

.gcsi-hero-figure { margin: 0; }

.gcsi-hero-figure img {
  display: block;
  width: 100%;
  aspect-ratio: 3 / 2;
  object-fit: cover;
  border-radius: calc(var(--gc-radius) * 5);
}

@media (min-width: 900px) {
  .gcsi-hero-figure img { aspect-ratio: 4 / 5; }
}

.gcsi-btn-compact .wp-block-button__link {
  padding-block: 11px;
  padding-inline: 20px;
  font-size: var(--wp--preset--font-size--sm);
}

.gcsi-hero-bleed {
  display: grid;
  grid-template-columns: 1fr;
}

.gcsi-hero-text {
  padding-inline: var(--wp--preset--spacing--sm);
  padding-block: var(--wp--preset--spacing--2-xl);
}

@media (min-width: 900px) {
  .gcsi-hero-bleed {
    grid-template-columns: minmax(0, 1.02fr) minmax(0, 1fr);
    align-items: center;
  }

  .gcsi-hero-text {
    padding-inline-start: max(var(--wp--preset--spacing--sm), calc((100vw - 1280px) / 2));
    padding-inline-end: var(--wp--preset--spacing--2-xl);
    padding-block: var(--wp--preset--spacing--4-xl);
  }
}

.gcsi-hero-bleed > * + * { margin-block-start: 0; }

.gcsi-hero-media {
  position: relative;
  align-self: stretch;
}

.gcsi-hero-media figure {
  margin: 0;
  height: 100%;
}

.gcsi-hero-media img {
  display: block;
  width: 100%;
  height: 100%;
  min-height: 22rem;
  object-fit: cover;
  
  border-radius: 0;
}

@media (min-width: 900px) {
  .gcsi-hero-media img { min-height: 34rem; }
}

.gcsi-hero-card {
  display: none;
}

@media (min-width: 1100px) {
  .gcsi-hero-card {
    display: flex;
    gap: var(--wp--preset--spacing--3-xs);
    align-items: center;
    position: absolute;
    right: var(--wp--preset--spacing--xl);
    bottom: var(--wp--preset--spacing--xl);
    max-width: 16rem;
    padding: var(--wp--preset--spacing--2-xs) var(--wp--preset--spacing--xs);
    background-color: var(--gc-surface);
    border-radius: calc(var(--gc-radius) * 3);
    box-shadow: 0 8px 24px color-mix(in srgb, var(--gc-ink) 18%, transparent);
    font-family: var(--wp--preset--font-family--text);
    font-size: var(--wp--preset--font-size--xs);
    font-weight: 600;
    line-height: 1.3;
    color: var(--gc-ink);
  }

  .gcsi-hero-card svg {
    flex: 0 0 auto;
    width: 26px;
    height: 26px;
    color: var(--gc-primary);
  }
}

.gcsi-script {
  display: none;
}

@media (min-width: 1100px) {
  .gcsi-script {
    display: block;
    position: absolute;
    right: var(--wp--preset--spacing--xl);
    top: var(--wp--preset--spacing--xl);
    max-width: 11rem;
    text-align: right;
    font-family: var(--wp--preset--font-family--display);
    font-style: italic;
    font-size: var(--wp--preset--font-size--heading-md);
    line-height: 1.25;
    color: var(--gc-on-dark);
    text-shadow: 0 1px 12px color-mix(in srgb, var(--gc-bg-dark) 70%, transparent);
  }

  .gcsi-script::after {
    content: "";
    display: block;
    width: 60%;
    height: 2px;
    margin-left: auto;
    margin-top: var(--wp--preset--spacing--4-xs);
    background-color: var(--gc-talent);
  }
}

.gcsi-chip-badge {
  flex: 0 0 auto;
  display: grid;
  place-items: center;
  width: 40px;
  height: 40px;
  border-radius: calc(var(--gc-radius) * 2.5);
  background-color: color-mix(in srgb, var(--gc-accent) 12%, transparent);
}

.gcsi-chip-badge svg {
  width: 20px;
  height: 20px;
  color: var(--gc-primary);
  margin: 0;
}

.gcsi-chip { align-items: center; }

.gcsi-values {
  display: grid;
  gap: var(--wp--preset--spacing--sm);
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 13rem), 1fr));
  margin-block-start: var(--wp--preset--spacing--2-xl);
  padding-block-start: var(--wp--preset--spacing--lg);
  border-top: 1px solid var(--gc-line);
}

.gcsi-values > * + * { margin-block-start: 0; }

.gcsi-value {
  display: flex;
  gap: var(--wp--preset--spacing--3-xs);
  align-items: center;
  font-family: var(--wp--preset--font-family--text);
  font-size: var(--wp--preset--font-size--sm);
  font-weight: 600;
  line-height: 1.3;
  color: var(--gc-body);
  margin: 0;
}

.gcsi-audience-side {
  position: relative;
  overflow: hidden;
}

.gcsi-audience-figure {
  display: none;
}

@media (min-width: 1100px) {
  .gcsi-audience-figure {
    display: block;
    position: absolute;
    right: 0;
    bottom: 0;
    width: 44%;
    margin: 0;
    pointer-events: none;
  }

  .gcsi-audience-figure img {
    display: block;
    width: 100%;
    aspect-ratio: 3 / 4;
    object-fit: cover;
    
    mask-image: linear-gradient(to left, black 55%, transparent 100%);
    -webkit-mask-image: linear-gradient(to left, black 55%, transparent 100%);
  }

  .gcsi-audience-side > :not(.gcsi-audience-figure) {
    position: relative;
    z-index: 1;
    max-width: 60%;
  }
}

.gcsi-step { position: relative; align-items: flex-start; }

.gcsi-step-badge {
  display: grid;
  place-items: center;
  width: 60px;
  height: 60px;
  border-radius: 50%;
  background-color: var(--gc-primary);
  margin-block-end: var(--wp--preset--spacing--3-xs);
}

.gcsi-step-badge svg {
  width: 28px;
  height: 28px;
  color: var(--gc-on-dark);
}

.gcsi-step-num {
  font-size: var(--wp--preset--font-size--heading-md);
  color: color-mix(in srgb, var(--gc-primary) 55%, transparent);
  margin: 0;
}

@media (min-width: 900px) {
  .gcsi-step:not(:last-child)::after {
    content: "";
    position: absolute;
    top: 30px;
    right: calc(var(--wp--preset--spacing--lg) * -0.72);
    width: 22px;
    height: 8px;
    background-color: color-mix(in srgb, var(--gc-primary) 45%, transparent);
    clip-path: polygon(0 3px, 14px 3px, 14px 0, 22px 4px, 14px 8px, 14px 5px, 0 5px);
  }
}

.gcsi-contact-list {
  list-style: none;
  margin: 0;
  padding: 0;
  font-size: var(--wp--preset--font-size--sm);
}

.gcsi-contact-list li {
  display: flex;
  gap: var(--wp--preset--spacing--3-xs);
  align-items: flex-start;
  padding-block: var(--wp--preset--spacing--4-xs);
}

.gcsi-contact-list svg {
  flex: 0 0 auto;
  width: 18px;
  height: 18px;
  margin-block-start: 2px;
  color: var(--gc-talent);
}

.gcsi-map {
  display: none;
}

@media (min-width: 900px) {
  .gcsi-map {
    display: block;
    position: absolute;
    right: var(--wp--preset--spacing--sm);
    bottom: var(--wp--preset--spacing--2-xl);
    width: 92px;
    color: color-mix(in srgb, var(--gc-talent) 22%, transparent);
    pointer-events: none;
  }

  .gcsi-map svg { width: 100%; height: auto; display: block; }
}

.gcsi-footer { position: relative; }

@media (min-width: 1100px) {
  .gcsi-header .gcsi-header-inner {
    display: grid;
    grid-template-columns: auto 1fr auto;
    align-items: center;
    gap: var(--wp--preset--spacing--sm);
  }

  .gcsi-header .gcsi-header-inner > * + * { margin-block-start: 0; }

  .gcsi-header .wp-block-navigation {
    justify-content: center;
  }
}

.gcsi-hero-media img {
  min-height: 20rem;
}

@media (min-width: 900px) {
  .gcsi-hero-media,
  .gcsi-hero-media figure {
    
    height: 100%;
    min-height: clamp(30rem, 68vh, 46rem);
  }

  .gcsi-hero-media img {
    height: 100%;
    min-height: clamp(30rem, 68vh, 46rem);
    object-position: center 28%;
  }
}

.gcsi-stack-main img {
  aspect-ratio: auto;
  height: clamp(18rem, 34vw, 26rem);
  object-fit: cover;
}

@media (min-width: 900px) {
  .gcsi-stack-inset { width: 46%; }

  .gcsi-stack-inset img {
    aspect-ratio: auto;
    height: clamp(9rem, 17vw, 13rem);
    object-fit: cover;
  }
}

.gcsi-hero-figure img,
.gcsi-figure img {
  aspect-ratio: auto;
  height: clamp(16rem, 30vw, 24rem);
  object-fit: cover;
}

.gcsi-solution-major figure img {
  aspect-ratio: auto;
  height: clamp(11rem, 18vw, 15rem);
}

.gcsi-tile figure img {
  aspect-ratio: auto;
  height: clamp(10rem, 15vw, 13rem);
}

@media (min-width: 1100px) {
  .gcsi-audience-figure img {
    aspect-ratio: auto;
    height: clamp(13rem, 20vw, 18rem);
  }
}

.gcsi-media-band img {
  max-height: 30rem;
}

.gcsi-hero-bleed {
  padding-inline: var(--wp--preset--spacing--sm);
}

@media (min-width: 900px) {
  .gcsi-hero-bleed {
    
    grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr);
    padding-inline: max(var(--wp--preset--spacing--sm), calc((100vw - 1280px) / 2));
    column-gap: var(--wp--preset--spacing--2-xl);
  }

  .gcsi-hero-text {
    padding-inline: 0;
    padding-block: var(--wp--preset--spacing--3-xl);
  }
}

.gcsi-hero-media,
.gcsi-hero-media figure {
  height: auto;
  min-height: 0;
}

.gcsi-hero-media img {
  height: auto;
  min-height: 0;
  aspect-ratio: 3 / 2;
  width: 100%;
  object-fit: cover;
  object-position: center 34%;
  border-radius: calc(var(--gc-radius) * 4);
}

@media (min-width: 900px) {
  .gcsi-hero-media img {
    aspect-ratio: 3 / 2;
    max-height: 20rem;
    height: auto;
    min-height: 0;
  }
}

.gcsi-hero-card,
.gcsi-script {
  display: none;
}

.gcsi-hero-bleed { padding-inline: 0; }

.gcsi-hero {
  min-height: clamp(26rem, 56vh, 34rem);
}

@media (max-width: 781px) {
  .gcsi-hero { min-height: clamp(24rem, 70vh, 32rem); }
}

.gcsi-hero .wp-block-cover__background {
  background-image: linear-gradient(
    to right,
    color-mix(in srgb, var(--gc-bg-dark) 86%, transparent) 0%,
    color-mix(in srgb, var(--gc-bg-dark) 66%, transparent) 55%,
    color-mix(in srgb, var(--gc-bg-dark) 52%, transparent) 100%
  );
}

.gcsi-hero .wp-block-cover__image-background {
  object-position: center 32%;
}

.gcsi-hero h1 {
  max-width: 20ch;
  margin-inline: 0;
}

.gcsi-hero .gcsi-lead {
  max-width: 48ch;
}

.gcsi-hero .gcsi-accent {
  color: var(--gc-talent);
}

.gcsi-hero .gcsi-chips {
  margin-block-start: var(--wp--preset--spacing--lg);
}

.gcsi-hero .gcsi-chip {
  color: var(--gc-on-dark);
}

.gcsi-hero .gcsi-chip-badge {
  background-color: color-mix(in srgb, var(--gc-on-dark) 16%, transparent);
}

.gcsi-hero .gcsi-chip-badge svg {
  color: var(--gc-talent);
}

.gcsi-hero .wp-block-cover__image-background {
  transform: scaleX(-1);
  object-position: center 32%;
}

.gcsi-hero .wp-block-cover__background {
  background-image: linear-gradient(
    to left,
    color-mix(in srgb, var(--gc-bg-dark) 86%, transparent) 0%,
    color-mix(in srgb, var(--gc-bg-dark) 66%, transparent) 55%,
    color-mix(in srgb, var(--gc-bg-dark) 52%, transparent) 100%
  );
}

@media (min-width: 900px) {
  .gcsi-hero .wp-block-cover__inner-container {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    text-align: right;
  }

  .gcsi-hero .wp-block-cover__inner-container > * {
    max-width: 34rem;
    margin-inline: 0 0;
  }

  .gcsi-hero .gcsi-eyebrow-rule {
    flex-direction: row-reverse;
  }

  .gcsi-hero .wp-block-buttons,
  .gcsi-hero .gcsi-chips {
    justify-content: flex-end;
  }

  .gcsi-hero .gcsi-chips {
    display: flex;
    flex-wrap: wrap;
    gap: var(--wp--preset--spacing--sm);
  }

  .gcsi-hero .gcsi-chip {
    flex: 0 1 auto;
    text-align: left;
  }
}

@media (max-width: 899px) {
  .gcsi-hero .wp-block-cover__inner-container {
    text-align: left;
  }
}
