/* Shared angular details for the opening image and media references. */
#hero .hero-artwork { position: relative; width: min(80%, 1200px); }
#hero .hero-artwork .backpic { display: block; width: 100%; max-width: 100%; height: auto; }
#hero .hero-artwork::before,
#hero .hero-artwork::after { content: ""; position: absolute; pointer-events: none; }
#hero .hero-artwork::before { left: -7px; top: 9%; height: 25%; width: 4px; background: #bb91d4; }
#hero .hero-artwork::after { bottom: -7px; right: 0; width: 23%; height: 4px; background: #27a885; }
#hero .btn-get-started { border-radius: 0; border: 1px solid #bb91d4; padding: 12px 24px; font-size: 14px; letter-spacing: .07em; background: #101310; transition: border-color .2s, background-color .2s; }
#hero .btn-get-started:hover { border: 1px solid #27a885; background: #174c3e; }
#hero .btn-get-started:focus-visible { outline: 3px solid #27a885; outline-offset: 5px; }
#facts { padding: 80px 0; background: #fff; }
#facts .section-title::after { content: ""; display: block; width: 52px; height: 4px; margin: 20px auto 0; background: #27a885; }
.reference-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; padding: 0 6px 6px 0; }
.reference-card { --reference-accent: #bb91d4; display: flex; flex-direction: column; align-items: flex-start; text-align: left; min-height: 180px; padding: 26px; border: 1px solid #e8e0ed; color: #302539; background: #faf8fc; box-shadow: 5px 5px 0 var(--reference-accent); text-decoration: none; transition: transform .2s, box-shadow .2s; }
.reference-card:nth-child(even) { --reference-accent: #27a885; }
.reference-kind { font-size: 11px; text-transform: uppercase; letter-spacing: .08em; font-weight: 700; color: #65566e; }
.reference-card h4 { font-size: 22px; line-height: 1.3; font-weight: 700; color: #302539; margin: 14px 0 24px; }
.reference-action { display: flex; justify-content: space-between; align-items: center; width: 100%; margin-top: auto; font-size: 13px; font-weight: 700; color: #673d78; }
.reference-action span { font-size: 22px; }
.reference-card:hover { color: #302539; transform: translate(-2px, -2px); box-shadow: 7px 7px 0 var(--reference-accent); }
.reference-card:focus-visible { outline: 3px solid #673d78; outline-offset: 8px; }
@media (max-width: 991px) { .reference-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 620px) { #facts { padding: 60px 0; } .reference-grid { grid-template-columns: 1fr; gap: 22px; } .reference-card { min-height: 160px; padding: 22px; } }
@media (max-height: 600px) and (min-width: 768px) { #hero .hero-artwork { width: min(65%, 70vh); } }
@media (prefers-reduced-motion: reduce) { .reference-card, #hero .btn-get-started { transition: none; } }

/* Compact, quiet media references. */
.reference-grid { max-width: 960px; margin: 0 auto; gap: 14px; padding: 0; }
.reference-card {
  min-height: 125px;
  padding: 17px 19px;
  background: #fff;
  border: 1px solid #eee8f1;
  border-left: 3px solid var(--reference-accent);
  box-shadow: none;
  transition: background-color .2s, border-color .2s;
}
.reference-kind { font-size: 10px; letter-spacing: .05em; font-weight: 500; color: #766b7d; }
.reference-card h4 { font-size: 17px; font-weight: 500; margin: 9px 0 15px; }
.reference-action { font-size: 12px; font-weight: 400; }
.reference-action span { font-size: 16px; }
.reference-card:hover { transform: none; box-shadow: none; background: #faf8fc; border-left-color: var(--reference-accent); }
@media (max-width: 620px) {
  .reference-grid { gap: 12px; }
  .reference-card { min-height: 0; padding: 15px 18px; }
}

/* Open press list: typography and whitespace instead of tiles. */
.reference-grid { max-width: 920px; gap: 32px 48px; }
.reference-card,
.reference-card:nth-child(even) {
  min-height: 0;
  padding: 12px 0;
  border: 0;
  background: transparent;
  box-shadow: none;
}
.reference-card h4 { font-size: 20px; font-weight: 500; margin: 0 0 7px; transition: color .2s; }
.reference-kind { font-size: 12px; font-weight: 400; text-transform: none; letter-spacing: 0; color: #766b7d; }
.reference-card:hover { background: transparent; box-shadow: none; transform: none; }
.reference-card:hover h4 { color: #673d78; text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 5px; }
.reference-card:focus-visible { outline: 2px solid #673d78; outline-offset: 6px; }
@media (max-width: 620px) {
  .reference-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 22px 20px; }
  .reference-card h4 { font-size: 17px; }
}
@media (max-width: 360px) { .reference-grid { grid-template-columns: 1fr; } }
@media (prefers-reduced-motion: reduce) { .reference-card h4 { transition: none; } }

/* Soft pastel surfaces retain the brand colours without heavy frames. */
.reference-grid { gap: 18px; }
.reference-card {
  padding: 22px 24px;
  border: 1px solid #eae1f0;
  border-radius: 4px;
  background: #f7f2fa;
}
.reference-card:nth-child(even) {
  padding: 22px 24px;
  border: 1px solid #dceee6;
  border-radius: 4px;
  background: #f0f8f4;
}
.reference-card:hover { background: #f0e8f5; }
.reference-card:nth-child(even):hover { background: #e6f3ec; }
@media (max-width: 620px) {
  .reference-grid { gap: 14px; }
  .reference-card, .reference-card:nth-child(even) { padding: 18px 16px; }
}

/* Alternate colours across rows and columns in the two-column layout. */
@media (min-width: 361px) and (max-width: 991px) {
  .reference-card:nth-child(n) { background: #f7f2fa; border-color: #eae1f0; }
  .reference-card:nth-child(4n + 2),
  .reference-card:nth-child(4n + 3) { background: #f0f8f4; border-color: #dceee6; }
  .reference-card:nth-child(n):hover { background: #f0e8f5; }
  .reference-card:nth-child(4n + 2):hover,
  .reference-card:nth-child(4n + 3):hover { background: #e6f3ec; }
}

/* A spacious, personal closing invitation. */
#contact { background: #f7f2fa; padding: 88px 0 92px; text-align: center; }
#contact .section-header { max-width: 640px; margin: 0 auto; }
#contact .section-title { color: #302539; text-transform: none; font-size: clamp(28px, 4vw, 38px); }
#contact .section-description { color: #62576b; font-size: 16px; line-height: 1.8; padding-bottom: 0; margin: 20px auto 32px; }
#contact .mail-contact { display: block; margin: 0; padding: 0; }
#contact .mail {
  display: inline-block; max-width: 100%; overflow-wrap: anywhere;
  font-family: Poppins, sans-serif; font-size: clamp(18px, 4.5vw, 32px);
  font-weight: 500; line-height: 1.5; color: #302539;
  text-decoration: none; border-bottom: 2px solid #27a885; padding: 0 0 8px;
}
#contact .mail:hover { color: #673d78; }
#contact .contact-instagram { margin-top: 32px; }
#contact .contact-instagram a { display: inline-flex; align-items: center; gap: 10px; color: #675373; font-size: 14px; text-decoration: none; }
#contact .contact-instagram i { font-size: 19px; }
#contact .contact-instagram a:hover { color: #673d78; text-decoration: underline; text-underline-offset: 4px; }
#contact a:focus-visible { outline: 2px solid #673d78; outline-offset: 6px; }
@media (max-width: 620px) { #contact { padding: 60px 0 64px; } }

/* Compact email link with a fine green outline. */
#contact .mail {
  font-size: clamp(16px, 3.5vw, 22px);
  border: 1px solid #27a885;
  padding: 12px 20px;
}

/* Two clear routes: explore topics or listen directly. */
#hero .hero-actions { position: absolute; bottom: 28px; left: 20px; right: 20px; display: flex; justify-content: center; align-items: center; flex-wrap: wrap; gap: 16px 26px; }
#hero .hero-actions .btn-get-started { position: static; margin: 0; }
#hero .hero-spotify { color: #d9c3e8; font-size: 14px; text-decoration: underline; text-underline-offset: 5px; padding: 10px 0; }
#hero .hero-spotify:hover { color: #73c6b3; }
#hero .hero-spotify:focus-visible { outline: 2px solid #27a885; outline-offset: 5px; }
@media (max-width: 480px) { #hero .hero-actions { flex-direction: column; gap: 8px; bottom: 24px; } }

/* Listening link belongs with the archive introduction. */
.themen-section .archive-spotify { color: #673d78; text-decoration: underline; text-underline-offset: 4px; font-weight: 400; }
.themen-section .archive-spotify:hover { color: #235c50; }
.themen-section .archive-spotify:focus-visible { outline: 2px solid #673d78; outline-offset: 4px; }

.themen-section .archive-spotify { color: inherit; }

/* More separation between the cover and its button on laptop screens. */
@media (min-width: 768px) {
  #hero .hero-actions { bottom: 12px; }
}
