/* Identité typographique commune au site. Polices hébergées localement. */
@font-face {
  font-family: 'Playfair Display';
  font-style: normal;
  font-weight: 400 900;
  font-display: swap;
  src: url(../fonts/PlayfairDisplay-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Playfair Display';
  font-style: normal;
  font-weight: 400 900;
  font-display: swap;
  src: url(../fonts/PlayfairDisplay-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Plus Jakarta Sans';
  font-style: normal;
  font-weight: 200 800;
  font-display: swap;
  src: url(../fonts/PlusJakartaSans-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Plus Jakarta Sans';
  font-style: normal;
  font-weight: 200 800;
  font-display: swap;
  src: url(../fonts/PlusJakartaSans-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

:root {
  --font-body: 'Plus Jakarta Sans', Arial, sans-serif;
  --font-display: 'Playfair Display', Georgia, serif;
}
body { font-family: var(--font-body); }
button, input, select, textarea { font-family: var(--font-body); }
/* The brand's heading family is consistent across component styles. */
h1, h2, h3, h4, h5, h6 {
  font-family: var(--font-display) !important;
  font-variation-settings: normal;
  font-weight: 650;
  line-height: 1.14 !important;
  letter-spacing: -.035em !important;
  text-transform: none !important;
  overflow-wrap: break-word;
  text-wrap: balance;
}
h1 em, h2 em, h3 em { font-family: inherit !important; }
.hero h1, .pm-hero h1, .ll-hero h1 {
  max-width: 16ch;
  font-size: clamp(34px, 9.1vw, 46px);
}
.gift-copy h2, .story-proof h2, .offers-overview > .wrap > h2,
.offers-intro h2, .reviews h2, .site-footer h2 {
  max-width: 20ch;
  font-size: clamp(29px, 8vw, 40px);
}
.gift-copy h2 { max-width: 15ch; }
.gift-copy h2 em { margin-top: 5px; }
.release-copy h2 { font-size: clamp(30px, 8vw, 44px); }
.release-meta { gap: 4px 12px; }
.release-play { font-weight: 650; }
.radio-head.stats .radio-eyebrow { font-size: 21px; letter-spacing: -.025em; }
.radio-title { font-family: var(--font-display); font-size: clamp(28px, 7vw, 38px); line-height: 1.14; }
.support-offer-copy :is(h3,h4), .offers-board .support-offer-copy :is(h3,h4) { font-size: clamp(23px, 6.3vw, 30px); }
.offers-board .collection-group-intro h3 { font-size: clamp(28px, 7.5vw, 38px); }
.support-offer-price b { font-size: 32px; letter-spacing: -.045em; }
.pm-card h3, .step h3 { font-size: 22px; }
.pm-latest-copy h3 { font-size: 28px; }
.pm-hero h1 { white-space: normal; }
.ll-section h2, .ll-discover h2, .ll-listen h2 { font-size: clamp(30px, 8vw, 44px); }
.site-footer h2 { max-width: 25ch; }
.hero-title { font-size: clamp(32px, 8vw, 48px); }
.gate h1 { font-size: clamp(30px, 8vw, 44px); }
.sec-head h2 { font-size: 25px; }
/* Stamp stays in the gift heading area; it never obstructs the form. */
.gift-grid { position: relative; isolation: isolate; }
.gift-stamp {
  position: absolute;
  top: -34px;
  left: auto !important;
  right: -8px;
  z-index: -1;
  display: block;
  width: clamp(210px, 58vw, 240px);
  max-width: none;
  aspect-ratio: 1536 / 1024;
  opacity: 1;
  transform: none;
  filter: drop-shadow(0 7px 14px rgba(0,0,0,.16));
  overflow: visible;
  pointer-events: none;
  user-select: none;
}
.gift-stamp::before {
  content: "";
  position: absolute;
  z-index: 0;
  inset: -30px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(232,169,59,.68) 0, rgba(232,169,59,.36) 38%, rgba(232,169,59,.11) 58%, transparent 76%);
  filter: blur(8px);
}
.gift-stamp::after {
  content: none;
}
.gift-stamp-img {
  position: absolute;
  inset: 0;
  z-index: 1;
  width: 100%;
  height: 100%;
  object-fit: contain;
  opacity: .34;
}
.gift-copy { position: relative; }
.gift .gift-form { padding-top: 0; border-top: 0; }
@media (max-width: 760px) {
  .gift-stamp { right: -42px; width: clamp(190px, 50vw, 220px); transform: rotate(4deg); }
  .gift-stamp::before {
    inset: -24px;
    background: radial-gradient(circle, rgba(232,169,59,.22) 0, rgba(232,169,59,.09) 42%, transparent 72%);
    filter: blur(7px);
  }
}
@media (min-width: 600px) {
  .release-copy h2 { font-size: clamp(44px, 5.2vw, 66px); }
}
@media (min-width: 761px) {
  .hero h1, .pm-hero h1, .ll-hero h1 { font-size: clamp(44px, 4.6vw, 64px); }
  .gift-copy h2, .story-proof h2, .offers-intro h2,
  .offers-overview > .wrap > h2, .reviews h2, .site-footer h2 { font-size: clamp(38px, 4vw, 52px); }
  .gift-copy h2 { max-width: 16ch; }
    .gift-stamp { top: -24px; right: -16px; max-width: none; width: clamp(380px, 34vw, 500px); }
    .gift-stamp-img { opacity: .32; }
    .gift-stamp::before { inset: -48px; }
  .radio-head.stats .radio-eyebrow { font-size: 24px; }
  .offers-board .support-offer-copy :is(h3,h4) { font-size: 30px; }
  .offers-board .collection-group-intro h3 { font-size: 38px; }
}
@media (min-width: 1000px) {
  .hero h1 { max-width: 16ch; }
  .hero { padding-right: 38px; }
}
