:root {
  --brand-color: white;
  --shadow-factor: 1;
}

h1 {
  --brand-color: var(--ts3d-dk-grey);
  --shadow-factor: 3; 
}

p {
  line-height: 1.25;
}

*:has(> .card-wrapper) {
  container: wrap / inline-size;
}

.card-wrapper {
  display: grid;
  grid-template-columns: 1fr;
  grid-gap: 2em;
  grid-template-areas:
  'he'
  'c-sam'
  'hc'
  'ce'
  'hps'
  '3df'
  'hp'
  'hl'
  'hdv'
  'hpdv'
  'hnp'
  'hwp';
  justify-items: center;
}

.card {
  --brand-color: var(--ts3d-dk-blue);
  --shadow-factor: 4;
  container: card / inline-size;
  display: grid;
  grid-template-rows: repeat(2, auto) 1fr;
  width: clamp(35ch, 100%, 50ch);
  padding: 1em;
  background: white;
  border: 1px solid hsl(from var(--ts3d-lt-grey) h s l / 75%);
  border-radius: 0.5rem;
  box-shadow: 0 4px 4px rgba(0, 0, 64, 10%);
  overflow: hidden;
  transition: 0.15s;

  &.he {
    --brand-color: var(--he-logo);
    grid-area: he;
  }

  &.hc {
    --brand-color: var(--hc-logo);
    grid-area: hc;
  }

  &.hp {
    --brand-color: var(--hp-logo);
    grid-area: hp;
  }

  &.hv-hps,
  &.hv-3df,
  &.hdv,
  &.hpdv {
    --brand-color: var(--hv-logo);
  }

  &.hv-hps {
    grid-area: hps;
  }

  &.hv-3df {
    grid-area: 3df;
  }

  &.hdv {
    grid-area: hdv;
  }

  &.hpdv {
    grid-area: hpdv;
  }

  &.hl {
    --brand-color: var(--hl-logo);
    grid-area: hl;
  }

  &.hwp {
    --brand-color: var(--ts3d-dk-blue);
    grid-area: hwp;
  }

  &.hnp {
    --brand-color: var(--hnp-logo);
    grid-area: hnp;
  }

  &.ce {
    --brand-color: var(--ceetron-logo);
    grid-area: ce;
  }
  
  &.c-sam {
    --brand-color: var(--ceesam-logo);
    grid-area: c-sam;
  }

  &:hover {
    border-color: var(--ts3d-lt-grey);
    box-shadow: 0 6px 6px rgba(0, 0, 64, 7%);

    .headline {
      --shadow-factor: 3;
    }
  }

  .headline {
    --shadow-factor: 4;
    display: grid;
    grid-template-rows: auto 1fr;
    grid-gap: 1.5em;
    margin: -1em -1em 0;
    padding: 1em;
    background: linear-gradient(
      to right,
      hsl(from var(--brand-color) h s calc(l / var(--shadow-factor))),
      var(--brand-color) 50%
    );
    color: white;
    transition: 0.25s;

    > * {
      grid-column: 1;
    }

    .tagline {
      --shadow-factor: 1.1;
      grid-row: 2;
      margin: 0;
      font-weight: normal;
      text-align: center;
      font-size: .875em;
      line-height: 1.5;
      text-shadow: 1px 1px 1.5px hsl(from var(--brand-color) h s calc(l / var(--shadow-factor)));
    }
  }

  ul {
    grid-row: 3;
    margin: 1em 0 .25em 0 !important;
    padding: 0;
  }

  li {
    margin: 0;
    line-height: 1.25;

    & + li {
      margin-top: 0.75em;
    }
  }
}
/*

*/

@container card (min-width: 35ch) {
  .card .headline {
    grid-template-columns: 3fr 2fr;
    grid-template-rows: 1fr;
    align-items: start;
    
    .tagline {
      grid-column: 2;
      grid-row: 1;
      text-align: initial;
    }
  }   
}

@container wrap (min-width: 72ch) and (max-width: 109.99ch) {
  .card-wrapper {
    grid-template-columns: repeat(2, 1fr);
    grid-template-areas:
    'he c-sam'
    'hc ce'
    'hps 3df'
    'hp hl'
    'hdv hpdv'
    'hnp hwp';
  }
}

@container (min-width: 110ch) {
  .card-wrapper {
    grid-template-columns: repeat(3, 1fr);
    grid-template-areas:
    'he hc c-sam'
    'hps 3df ce'
    'hp hl hdv'
    'hpdv hwp hnp';
  }
}
