/* Shared card presentation. Loaded after page-specific section layouts. */
.section--dark,
.content-card--dark,
.card-grid--dark-cards,
.blackbox,
.content-card__risk,
#footer,
.mobile-menu {
  --color-text-link: var(--color-brand-blue);
  --color-text-accent: var(--color-brand-blue);
  --color-text-success: #5CE0A3;
  --focus-ring-color: var(--color-brand-blue);
  --focus-ring-outer: rgba(14, 193, 246, 0.35);
  --color-control-border: #8494D0;
  --lp-link: var(--color-text-link);
}

/* Neutral artwork for cards awaiting editorial photography. */
.card-image-placeholder {
  display: block;
  width: 100%;
  height: 100%;
  background: var(--color-surface-secondary);
}

.section--dark .card-image-placeholder {
  --color-surface-secondary: var(--color-navy-card);
  --color-border-light: var(--color-navy-border);
  --color-text-secondary: var(--color-text-secondary-inverse);
}

.card-image-placeholder__frame,
.card-image-placeholder__baseline {
  stroke: var(--color-border-light);
  stroke-width: 1.5;
}

.card-image-placeholder__sun,
.card-image-placeholder__ridge {
  stroke: var(--color-text-secondary);
  stroke-width: 1.5;
  opacity: 0.4;
}

.card-image-placeholder__face {
  fill: var(--color-brand-blue);
  fill-opacity: 0.12;
}

.card-image-placeholder__facet {
  fill: var(--color-brand-purple);
  fill-opacity: 0.18;
}

.card-image-placeholder__peak {
  stroke: var(--color-text-link);
  stroke-width: 2;
  stroke-linejoin: round;
}

.card-grid-section__headline {
  max-width: var(--layout-headline-max, 840px);
  margin-top: 0;
  margin-bottom: var(--space-scale-4);
  color: var(--color-text-primary);
}

.section--dark .card-grid-section__headline {
  color: var(--color-text-on-dark);
}

.card-grid-section__subhead {
  color: var(--color-text-secondary);
  max-width: var(--layout-subhead-max, 720px);
  margin-top: 0;
  margin-bottom: 0;
  font-size: var(--font-size-body);
  line-height: var(--line-height-body);
}

.section--dark .card-grid-section__subhead {
  color: var(--color-text-secondary-inverse);
}

.card-grid,
.objections__list {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--space-scale-8);
  margin-top: var(--space-scale-10);
}

@media (min-width: 640px) {
  .card-grid,
  .card-grid--auto,
  .objections__list,
  .objections__list--auto {
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  }

  .card-grid--2,
  .card-grid--4,
  .objections__list--2,
  .objections__list--4 {
    grid-template-columns: repeat(2, 1fr);
  }

  .card-grid--1,
  .objections__list--1 {
    grid-template-columns: 1fr;
  }
}

@media (min-width: 1024px) {
  .card-grid,
  .objections__list {
    margin-top: var(--space-scale-12);
  }

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

  .card-grid--4,
  .objections__list--4 {
    grid-template-columns: repeat(4, 1fr);
  }
}

/* Optional balanced rows. Fixed bases prevent a short last row from stretching.
   Four-column sections and dedicated service cards never receive this modifier. */
.card-grid--centered {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
}

.card-grid--centered > :is(.content-card, .card-grid__item) {
  box-sizing: border-box;
  flex: 0 0 100%;
}

@media (min-width: 768px) {
  .card-grid--centered > :is(.content-card, .card-grid__item) {
    flex-basis: calc((100% - var(--space-scale-8)) / 2);
  }
}

@media (min-width: 1024px) {
  .card-grid--centered.card-grid--auto > :is(.content-card, .card-grid__item),
  .card-grid--centered.card-grid--3 > :is(.content-card, .card-grid__item) {
    flex-basis: calc((100% - 2 * var(--space-scale-8)) / 3);
  }
}

a.content-card {
  text-decoration: none;
  color: inherit;
}

.content-card,
.objections__card {
  display: flex;
  flex-direction: column;
  padding: var(--space-scale-8);
  border: none;
  border-radius: var(--radius-scale-lg);
  background: var(--color-surface-card);
  box-shadow: var(--shadow-card);
  transition: transform var(--motion-duration-fast) var(--motion-easing), box-shadow var(--motion-duration-fast) var(--motion-easing), background-color var(--motion-duration-fast) var(--motion-easing);
  min-width: 0;
}

.content-card:hover,
.objections__card:hover {
  transform: translateY(-4px);
  box-shadow: var(--shadow-card-hover);
}

.section--dark .content-card,
.section--dark .objections__card {
  background: var(--color-navy-card);
  border: none;
  box-shadow: var(--shadow-card-dark);
}

.section--dark .content-card:hover,
.section--dark .objections__card:hover {
  transform: translateY(-4px);
  background: var(--color-navy-card-hover);
  box-shadow: var(--shadow-card-dark-hover);
}

.content-card--dark,
.card-grid--dark-cards .content-card {
  background: var(--color-navy-card);
  border: none;
  box-shadow: var(--shadow-card-dark);
  color: #FFFFFF;
}

.content-card--dark:hover,
.card-grid--dark-cards .content-card:hover {
  transform: translateY(-4px);
  background: var(--color-navy-card-hover);
  box-shadow: var(--shadow-card-dark-hover);
}

.content-card__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: var(--space-scale-4);
  width: 100%;
}

/* Optional editorial image; retains the established card shell and tokens. */
.content-card__media {
  margin-bottom: var(--space-scale-6);
  border-radius: var(--radius-scale-md);
  overflow: hidden;
  aspect-ratio: 4 / 3;
}

.content-card__media .responsive-picture {
  height: 100%;
}

.content-card__image {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.content-card__header .content-card__icon {
  margin-bottom: 0;
}

.content-card__step {
  font-size: var(--font-size-small);
  color: var(--color-text-secondary);
  opacity: 0.7;
}

.content-card--dark .content-card__step,
.card-grid--dark-cards .content-card__step,
.section--dark .content-card__step {
  color: var(--color-text-secondary-inverse);
  opacity: 0.7;
}

.content-card__icon,
.objections__card-icon {
  width: 44px;
  height: 44px;
  border-radius: var(--radius-scale-md);
  background: rgba(14, 193, 246, 0.12);
  color: var(--color-text-accent);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  margin-bottom: var(--space-scale-4);
  transition: background var(--motion-duration-fast) var(--motion-easing);
}

.content-card:hover .content-card__icon,
.objections__card:hover .objections__card-icon {
  background: rgba(14, 193, 246, 0.2);
}

.content-card__icon svg,
.objections__card-icon svg {
  width: 22px;
  height: 22px;
}

.section--dark .content-card__icon,
.section--dark .objections__card-icon,
.content-card--dark .content-card__icon,
.card-grid--dark-cards .content-card__icon {
  background: rgba(14, 193, 246, 0.18);
  color: var(--color-text-accent);
}

.section--dark .content-card:hover .content-card__icon,
.section--dark .objections__card:hover .objections__card-icon,
.content-card--dark:hover .content-card__icon,
.card-grid--dark-cards .content-card:hover .content-card__icon {
  background: rgba(14, 193, 246, 0.28);
}

.content-card__meta-item,
.objections__meta-item {
  display: flex;
  flex-direction: column;
  gap: 4px;
  width: 100%;
}

.content-card__meta-label,
.objections__meta-label,
.objections__proof-label {
  font-size: var(--font-size-caption);
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--color-text-accent);
  display: block;
}

.section--dark .content-card__meta-label,
.section--dark .objections__meta-label,
.section--dark .objections__proof-label,
.content-card--dark .content-card__meta-label,
.card-grid--dark-cards .content-card__meta-label {
  color: var(--color-text-accent);
}

.content-card__meta-value,
.objections__meta-value {
  font-size: var(--font-size-small);
  line-height: 1.5;
  color: var(--color-text-secondary);
  display: block;
}

.section--dark .content-card__meta-value,
.section--dark .objections__meta-value,
.content-card--dark .content-card__meta-value,
.card-grid--dark-cards .content-card__meta-value {
  color: rgba(255, 255, 255, 0.85);
}

.content-card__eyebrow,
.objections__card-eyebrow {
  margin-bottom: var(--space-scale-3);
  color: var(--color-text-accent);
  font-family: var(--font-family-semibold);
  font-size: var(--font-size-eyebrow);
  font-weight: var(--font-weight-semibold);
  text-transform: uppercase;
  letter-spacing: 0.08em;
}

.section--dark .content-card__eyebrow,
.section--dark .objections__card-tag,
.content-card--dark .content-card__eyebrow,
.card-grid--dark-cards .content-card__eyebrow {
  color: var(--color-text-accent);
}

.content-card__title,
.objections__question {
  font-size: var(--font-size-heading-h3);
  line-height: var(--line-height-heading-h3);
  font-weight: var(--font-weight-semibold);
  letter-spacing: -0.015em;
  color: var(--color-text-primary);
  margin-bottom: var(--space-scale-4);
}

.section--dark .content-card__title,
.section--dark .objections__question,
.content-card--dark .content-card__title,
.card-grid--dark-cards .content-card__title {
  color: #FFFFFF;
}

.content-card__body,
.objections__card-body {
  flex: 1 1 auto;
  margin-bottom: var(--space-scale-6);
}

.content-card__text,
.objections__answer {
  font-size: var(--font-size-body);
  line-height: 1.65;
  color: var(--color-text-secondary);
}

.section--dark .content-card__text,
.section--dark .objections__answer,
.content-card--dark .content-card__text,
.card-grid--dark-cards .content-card__text {
  color: var(--color-text-secondary-inverse);
}

.content-card__footer,
.objections__card-footer {
  margin-top: auto;
  padding-top: var(--space-scale-5);
  border-top: 1px solid var(--color-border-subtle, rgba(0, 0, 0, 0.08));
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--space-scale-2);
  width: 100%;
}

.section--dark .content-card__footer,
.section--dark .objections__card-footer,
.content-card--dark .content-card__footer,
.card-grid--dark-cards .content-card__footer {
  border-top: 1px solid rgba(255, 255, 255, 0.12);
}

.content-card__link,
.objections__proof-link {
  display: inline-flex;
  align-items: center;
  gap: var(--space-scale-2);
  font-size: var(--font-size-small);
  font-weight: var(--font-weight-semibold);
  color: var(--color-text-link);
  text-decoration: none;
  transition: transform var(--motion-duration-fast) var(--motion-easing);
  margin-top: 2px;
}

.content-card:hover .content-card__link,
.content-card__link:hover,
.objections__proof-link:hover {
  transform: translateX(3px);
  text-decoration: underline;
}

.section--dark .content-card__link,
.section--dark .objections__card-link,
.content-card--dark .content-card__link,
.card-grid--dark-cards .content-card__link {
  color: var(--color-text-accent);
}

.content-card__link svg,
.objections__proof-link svg {
  flex: 0 0 16px;
}

.card-grid__callout {
  margin-top: var(--space-scale-8);
  padding: var(--space-scale-6) var(--space-scale-8);
  background: var(--color-surface-card);
  border: none;
  border-radius: var(--radius-scale-lg);
  box-shadow: var(--shadow-card);
  position: relative;
  overflow: hidden;
}

.section--dark .card-grid__callout,
.card-grid--dark-cards + .card-grid__callout,
:root[data-theme='dark'] .card-grid__callout {
  background: var(--color-navy-card);
  border: none;
  box-shadow: var(--shadow-card-dark);
}

.card-grid__callout-inner {
  display: flex;
  flex-direction: column;
  gap: var(--space-scale-4);
}

.card-grid__callout-title,
.card-grid__callout-label {
  display: block;
  font-size: var(--font-size-heading-h3);
  line-height: var(--line-height-heading);
  font-weight: var(--font-weight-bold);
  color: var(--color-text-primary);
  margin: 0 0 var(--space-scale-2) 0;
  text-transform: none;
  letter-spacing: normal;
}

.section--dark .card-grid__callout-title,
.section--dark .card-grid__callout-label,
.card-grid--dark-cards + .card-grid__callout .card-grid__callout-title,
.card-grid--dark-cards + .card-grid__callout .card-grid__callout-label,
:root[data-theme='dark'] .card-grid__callout-title,
:root[data-theme='dark'] .card-grid__callout-label {
  color: #FFFFFF;
}

.card-grid__callout-text {
  font-size: var(--font-size-body);
  line-height: var(--line-height-body);
  color: var(--color-text-secondary);
  margin: 0;
  max-width: 90ch;
}

.section--dark .card-grid__callout-text,
.card-grid--dark-cards + .card-grid__callout .card-grid__callout-text,
:root[data-theme='dark'] .card-grid__callout-text {
  color: var(--color-text-secondary-inverse);
}

.card-grid__callout-cta {
  margin-top: var(--space-scale-2);
}

@media (min-width: 768px) {
  .card-grid__callout-inner {
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-scale-6);
  }

  .card-grid__callout-cta {
    margin-top: 0;
    flex-shrink: 0;
  }
}



.content-card__meta-value--positive { color: var(--color-text-success); font-weight: var(--font-weight-semibold); }
.content-card__case-map { margin-top: var(--space-scale-8); display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--space-scale-4); padding: var(--space-scale-4) var(--space-scale-6); background: var(--color-surface-secondary); border-radius: var(--radius-scale-md); }
.content-card__case-copy { font-size: var(--font-size-small); color: var(--color-text-secondary); }
.content-card__risk { margin-top: var(--space-scale-8); padding: var(--space-scale-8); background: var(--color-navy); color: var(--color-text-on-dark); border-radius: var(--radius-scale-lg); }
.content-card__risk-eyebrow { color: var(--color-text-accent); margin-bottom: var(--space-scale-2); }
.content-card__risk-title { color: var(--color-text-on-dark); font-size: var(--font-size-heading-h3); margin-bottom: var(--space-scale-2); }
.content-card__risk-copy { color: var(--color-text-secondary-inverse); margin: 0; }

/* A deliberate variant, not a page-level override of the shared card. */
.card-grid .content-card.content-card--outlined {
  border: var(--border-width-hairline) solid var(--color-navy-border);
  box-shadow: var(--shadow-level-none);
  transform: none;
}
.card-grid .content-card.content-card--outlined:hover,
.card-grid .content-card.content-card--outlined:focus-visible {
  border-color: var(--color-brand-primary);
  box-shadow: var(--shadow-level-none);
  transform: none;
}

/* List wrappers keep native links and equal-height cards separate. */
.card-grid__item { display: flex; min-width: 0; }
.card-grid__item > .content-card { flex: 1; }
.card-carousel__item { display: flex; flex: 0 0 80%; max-width: 360px; min-width: 0; scroll-snap-align: start; }
.card-carousel__item > a { flex: 1; width: 100%; max-width: none; }
.industries__gallery--grid > .card-carousel__item { max-width: none; }
