.taste-validity {
  --validity-surface: #f7f0e1;
  --validity-date-surface: #fffaf0;
  --validity-ink: #35161d;
  --validity-accent: #681f2d;
  --validity-line: #9b743b;
  box-sizing: border-box;
  display: inline-grid;
  gap: .55rem;
  inline-size: fit-content;
  max-inline-size: 100%;
  padding: .65rem clamp(.65rem, 1.8vw, 1rem) .8rem;
  margin-block: .45rem .9rem;
  border: 1px solid var(--validity-line);
  border-block-start: 3px solid var(--validity-accent);
  background: var(--validity-surface);
  color: var(--validity-ink);
  font-family: 'League Spartan', Arial, sans-serif;
  vertical-align: top;
}

.taste-validity--group {
  --validity-surface: #062b2b;
  --validity-date-surface: #16423d;
  --validity-ink: #f5efdf;
  --validity-accent: #d1b379;
  --validity-line: #ad9361;
}

.taste-validity__label {
  display: block;
  color: var(--validity-accent);
  font-size: .78rem;
  font-weight: 750;
  line-height: 1.25;
  letter-spacing: .09em;
  text-transform: uppercase;
}

.taste-validity__dates {
  display: flex;
  flex-wrap: wrap;
  gap: .45rem;
  min-inline-size: 0;
}

.taste-validity__dates > .taste-validity__date {
  box-sizing: border-box;
  flex: 1 1 7rem;
  min-inline-size: 0;
  padding: .45rem .65rem;
  border: 1px solid var(--validity-line);
  background: var(--validity-date-surface);
  color: var(--validity-ink);
  font-size: clamp(1.05rem, 2.45vw, 1.4rem);
  font-weight: 750;
  font-variant-numeric: tabular-nums;
  line-height: 1.15;
  overflow-wrap: anywhere;
  text-align: start;
}

.taste-validity__date > small {
  display: block;
  margin-block-end: .18rem;
  color: var(--validity-accent);
  font-size: .75rem;
  font-weight: 750;
  line-height: 1.15;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.taste-validity__date > :is(time, strong) {
  display: block;
  font: inherit;
}

.taste-validity__year {
  display: block;
  margin-block-start: .2rem;
  font-size: .82em;
  font-weight: 600;
}

.taste-laurea-label {
  box-sizing: border-box;
  display: inline-flex;
  align-items: center;
  gap: .65rem;
  max-inline-size: 100%;
  padding: .36rem .78rem .36rem .55rem;
  border: 1px solid #b08b4f;
  background: linear-gradient(130deg, #f3ddb4, #c6a76d);
  color: #271b10;
  box-shadow: 0 3px 0 #07182055, inset 0 1px #fff1d4;
  font: 800 .86rem/1.2 'League Spartan', Arial, sans-serif;
  letter-spacing: .1em;
  text-transform: uppercase;
  vertical-align: middle;
}

.graduation-section .taste-laurea-label {
  margin-block-end: .8rem;
}

.taste-laurea-cap {
  position: relative;
  display: inline-block;
  flex: none;
  inline-size: 2.6rem;
  block-size: 1.8rem;
  isolation: isolate;
  transform: rotate(-7deg);
}

/* Crown and angled mortarboard. The highlight shows the edge of the board. */
.taste-laurea-cap::before,
.taste-laurea-cap::after {
  content: '';
  position: absolute;
}

.taste-laurea-cap::before {
  inset: 42% 25% 10%;
  border-radius: 13% 13% 42% 42%;
  background: linear-gradient(90deg, #0a0a0b, #313137 55%, #111114);
  box-shadow: 0 2px 2px #281c1366;
}

.taste-laurea-cap::after {
  inset: 2% 1% 39%;
  clip-path: polygon(48% 0, 100% 40%, 100% 53%, 52% 100%, 0 60%, 0 47%);
  background: linear-gradient(155deg, #4b4c52 0%, #1d1e22 48%, #111114 72%, #050507 73%);
}

/* Cord and tassel hang over the front corner. */
.taste-laurea-cap > span {
  position: absolute;
  z-index: 1;
  inset: 42% 16% auto auto;
  inline-size: .13rem;
  block-size: .54rem;
  border-radius: 1px;
  background: #a57536;
}

.taste-laurea-cap > span::before,
.taste-laurea-cap > span::after {
  content: '';
  position: absolute;
  background: #ac7a39;
}

.taste-hero-period-links {
  display: flex;
  flex-wrap: wrap;
  gap: 12px 22px;
}

.taste-occasion .taste-hero-period-links a {
  display: block;
  min-height: 44px;
  padding: 4px 0 6px;
  border-bottom: 1px solid #c6a76d;
  color: #f3ede0;
  line-height: 1.16;
  text-decoration: none;
}

.taste-hero-period-links a:hover { color: #e4c790; }
.taste-hero-period-links span { display: block; font-size: 14px; }
.taste-hero-period-links strong { display: block; font-size: 18px; }
.taste-occasion .taste-current-offer .taste-validity { margin-block-start: 0; }
.taste-occasion .graduation-section .taste-validity { margin-block-start: 18px; }

.taste-laurea-cap > span::before {
  inset: 0 0 auto auto;
  inline-size: .75rem;
  block-size: 1px;
  transform: rotate(19deg);
  transform-origin: right;
}

.taste-laurea-cap > span::after {
  inset: auto auto -.23rem 50%;
  inline-size: .29rem;
  block-size: .34rem;
  border-radius: 50% 50% 25% 25%;
  transform: translateX(-50%);
}

@media (max-width: 420px) {
  .taste-validity__dates > .taste-validity__date {
    flex-basis: 6.25rem;
    padding-inline: .48rem;
  }
}

@media (forced-colors: active) {
  .taste-validity,
  .taste-validity__dates > .taste-validity__date,
  .taste-laurea-label {
    border-color: CanvasText;
    background: Canvas;
    color: CanvasText;
    box-shadow: none;
  }

  .taste-validity__label,
  .taste-validity__date > small {
    color: CanvasText;
  }

  .taste-laurea-cap {
    display: none;
  }
}

@media print {
  .taste-validity,
  .taste-laurea-label {
    box-shadow: none;
    break-inside: avoid;
  }
}
