@font-face {
  font-family: "Limelight";
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("/assets/fonts/limelight-latin-400-normal.woff2") format("woff2");
}

@font-face {
  font-family: "Open Sans";
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("/assets/fonts/open-sans-latin-400-normal.woff2") format("woff2");
}

@font-face {
  font-family: "Open Sans";
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url("/assets/fonts/open-sans-latin-400-italic.woff2") format("woff2");
}

@font-face {
  font-family: "Open Sans";
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("/assets/fonts/open-sans-latin-700-normal.woff2") format("woff2");
}

@font-face {
  font-family: "Karla";
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("/assets/fonts/karla-latin-400-normal.woff2") format("woff2");
}

@font-face {
  font-family: "Karla";
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url("/assets/fonts/karla-latin-400-italic.woff2") format("woff2");
}

:root {
  --coral: #f25a55;
  --coral-panel: rgba(242, 90, 85, 0.88);
  --lavender: rgba(176, 174, 219, 0.85);
  --cream: #dfd9c3;
  --cream-panel: rgba(223, 217, 195, 0.85);
  --plum: rgba(17, 1, 45, 0.93);
  --navy: rgba(38, 48, 89, 0.9);
  --button: #31325a;
  --ink: #141615;
  --copy: #484e4c;
  --content: 1000px;
  color: var(--copy);
  font: 400 14px/1.7 "Open Sans", sans-serif;
  background: #aaa8cb;
  text-rendering: optimizeLegibility;
}

*,
*::before,
*::after { box-sizing: border-box; }

html { min-width: 320px; scroll-behavior: smooth; }

body {
  position: relative;
  isolation: isolate;
  min-width: 320px;
  margin: 0;
  overflow-x: hidden;
  color: var(--copy);
  background: transparent;
}

body.is-menu-open { overflow: hidden; }

img,
svg,
video { display: block; max-width: 100%; }

picture { display: contents; }
img { height: auto; }

iframe {
  display: block;
  width: 100%;
  max-width: 100%;
  border: 0;
}

a { color: inherit; text-decoration: none; }
button, input, textarea { font: inherit; }
button, [type="submit"] { cursor: pointer; }
:focus-visible { outline: 3px solid var(--coral); outline-offset: 3px; }

h1,
h2,
h3,
h4,
h5,
h6 {
  margin: 0;
  color: var(--ink);
  font-family: "Limelight", display, serif;
  font-weight: 400;
  line-height: 1.12;
}

p { margin: 0 0 1.25em; }

.sr-only,
.visually-hidden,
.honeypot {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}

.content-width,
.parity-wide,
.parity-concerts__inner {
  width: 90%;
  max-width: var(--content);
  margin-inline: auto;
}

.parity-thin {
  width: 90%;
  max-width: 450px;
  margin-inline: auto;
}

.site-backdrop {
  position: fixed;
  z-index: -1;
  inset: 0;
  overflow: hidden;
  background: #aaa8cb;
}

.site-backdrop::after {
  position: absolute;
  inset: 0;
  content: "";
  background: rgba(37, 32, 77, 0.15);
}

.site-backdrop__slide {
  position: absolute;
  inset: 0;
  opacity: 0;
  transition: opacity 1s ease;
}

.site-backdrop__slide.is-active { opacity: 1; }

.site-backdrop__slide img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}

.site-header {
  position: relative;
  z-index: 30;
  height: 80px;
  background: var(--lavender);
}

.site-header__inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 90%;
  max-width: var(--content);
  height: 80px;
  margin-inline: auto;
}

.site-logo { flex: 0 0 auto; }

.site-logo img {
  width: 60px;
  height: 60px;
  object-fit: contain;
}

.home-page .site-logo { visibility: hidden; }

.site-navigation ul,
.site-footer ul {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 24px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.site-navigation a {
  color: #171c33;
  font-family: "Karla", sans-serif;
  font-size: 18px;
  font-style: italic;
  font-weight: 400;
  letter-spacing: 0.111em;
  text-transform: uppercase;
}

.site-navigation a:hover,
.site-navigation a[aria-current="page"] { color: var(--coral); }

.nav-toggle {
  display: none;
  width: 48px;
  height: 48px;
  padding: 9px;
  color: var(--coral);
  background: transparent;
  border: 0;
}

.nav-toggle__lines,
.nav-toggle__lines span { display: block; }

.nav-toggle__lines span {
  width: 27px;
  height: 4px;
  margin: 4px auto;
  background: currentColor;
  transition: transform 180ms ease, opacity 180ms ease;
}

.nav-toggle[aria-expanded="true"] .nav-toggle__lines span:first-child { transform: translateY(8px) rotate(45deg); }
.nav-toggle[aria-expanded="true"] .nav-toggle__lines span:nth-child(2) { opacity: 0; }
.nav-toggle[aria-expanded="true"] .nav-toggle__lines span:last-child { transform: translateY(-8px) rotate(-45deg); }

.button,
.parity-button,
.contact-section button,
.concert-detail .button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 54px;
  padding: 8px 22px 11px;
  color: var(--coral);
  font-size: 19px;
  line-height: 1.5;
  text-align: center;
  text-shadow: 0 0.075em 0.075em rgba(0, 0, 0, 0.5);
  background: var(--button);
  border: 1px solid var(--coral);
  border-radius: 100em;
}

.button:hover,
.parity-button:hover,
.contact-section button:hover,
.concert-detail .button:hover { color: #bf4242; border-color: #c44444; }

.home-section {
  position: relative;
  margin: 0;
  padding: 85px 5%;
  text-align: center;
}

.home-section h2 { font-size: 56px; }
.home-section-title--muted { color: rgba(255, 255, 255, 0.19); }

.home-introduction {
  min-height: 721px;
  padding: 46px 0 50px;
  background: var(--lavender);
}

.home-introduction__background { display: none; }

.home-introduction__inner {
  display: flex;
  flex-direction: column;
  align-items: center;
  width: 84%;
  max-width: 1000px;
}

.home-wordmark {
  width: 100%;
  max-width: 1000px;
  margin: 20px auto 17px;
}

.home-introduction__portrait {
  display: block;
  width: 18vw;
  max-width: 200px;
  margin: 0 auto;
  overflow: hidden;
  opacity: 0.8;
  border-radius: 15px;
}

.home-introduction__portrait img { width: 100%; }

.home-tour {
  min-height: 673px;
  color: #fff;
  background: var(--navy);
}

.home-tour h2 { color: #fff; }

.home-tour__list {
  display: grid;
  gap: 20px;
  width: 500px;
  max-width: 100%;
  margin: 35px auto 60px;
}

.home-tour__card,
.parity-recent-concert {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 58px;
  padding: 10px 16px;
  color: var(--ink);
  background: #fff;
  border: 1px solid #ddd;
  border-radius: 3px;
  box-shadow: 0 2px 5px rgba(0, 0, 0, 0.13);
}

.home-tour__card h3,
.parity-recent-concert h3 {
  overflow: hidden;
  font-size: 17px;
  line-height: 1.25;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.home-tour__button::before,
.home-about__button::before,
.home-audio__button::before,
.home-video__button::before,
.home-press__button::before,
.home-releases__button::before,
.parity-concerts__cta::before {
  flex: 0 0 auto;
  width: 17px;
  height: 17px;
  margin-right: 10px;
  content: "";
  background: currentColor;
  -webkit-mask-position: center;
  mask-position: center;
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-size: contain;
  mask-size: contain;
}

.home-tour__button::before,
.parity-concerts__cta::before {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M3 1h2v2h6V1h2v2h2v12H1V3h2V1Zm10 6H3v6h10V7Z'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M3 1h2v2h6V1h2v2h2v12H1V3h2V1Zm10 6H3v6h10V7Z'/%3E%3C/svg%3E");
}

.home-about__button::before {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M8 0a8 8 0 1 0 0 16A8 8 0 0 0 8 0ZM7 4l4 4-4 4-1.4-1.4L7.2 9H3V7h4.2L5.6 5.4 7 4Z'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M8 0a8 8 0 1 0 0 16A8 8 0 0 0 8 0ZM7 4l4 4-4 4-1.4-1.4L7.2 9H3V7h4.2L5.6 5.4 7 4Z'/%3E%3C/svg%3E");
}

.home-audio__button::before,
.home-releases__button::before {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M6 2v9.1A3 3 0 1 0 8 14V6l6-1.5v4.6A3 3 0 1 0 16 12V0L6 2Z'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M6 2v9.1A3 3 0 1 0 8 14V6l6-1.5v4.6A3 3 0 1 0 16 12V0L6 2Z'/%3E%3C/svg%3E");
}

.home-video__button::before {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M1 3h9a2 2 0 0 1 2 2v1l4-2v8l-4-2v1a2 2 0 0 1-2 2H1V3Z'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M1 3h9a2 2 0 0 1 2 2v1l4-2v8l-4-2v1a2 2 0 0 1-2 2H1V3Z'/%3E%3C/svg%3E");
}

.home-press__button::before {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M4 0h8v3h3v11H4V0Zm2 2v10h7V5h-3V2H6ZM1 3h2v12h9v1H1V3Z'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M4 0h8v3h3v11H4V0Zm2 2v10h7V5h-3V2H6ZM1 3h2v12h9v1H1V3Z'/%3E%3C/svg%3E");
}

.home-about {
  min-height: 1083px;
  color: var(--cream);
  background: var(--plum);
}

.home-about__logo-wrap { margin: 20px auto 35px; }
.home-about__logo { width: 125px; margin-inline: auto; }

.member-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 32px 40px;
  margin: 0 auto 65px;
}

.member-card {
  position: relative;
  height: 250px;
  perspective: 1000px;
}

.member-card__button,
.member-card__back {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  padding: 0;
  overflow: hidden;
  color: var(--cream);
  background: #35365f;
  border: 0;
  backface-visibility: hidden;
  transition: transform 420ms ease;
}

.member-card:nth-child(1) .member-card__button,
.member-card:nth-child(3) .member-card__button,
.member-card:nth-child(6) .member-card__button,
.member-card:nth-child(8) .member-card__button { background: #f35955; }

.member-card__button { z-index: 2; transform: rotateX(0); }

.member-card__front {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  height: 100%;
  padding: 12.5%;
}

.member-card__front img {
  width: 100px;
  height: 100px;
  margin-bottom: 20px;
  object-fit: contain;
}

.member-card__name,
.member-card__role {
  font-family: "Limelight", display, serif;
  font-size: 21px;
  line-height: 1.25;
}

.member-card__name { max-width: 120px; }

.member-card__back {
  z-index: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 12px;
  padding: 12.5%;
  background: #291b54;
  transform: rotateX(-180deg);
}

.member-card:nth-child(1) .member-card__back,
.member-card:nth-child(3) .member-card__back,
.member-card:nth-child(6) .member-card__back,
.member-card:nth-child(8) .member-card__back { background: #ce4848; }

.member-card__back a { padding: 6px 12px; color: #666; background: var(--cream); }
.member-card.is-flipped .member-card__button { transform: rotateX(180deg); }
.member-card.is-flipped .member-card__back { z-index: 3; transform: rotateX(0); }

@media (hover: hover) and (pointer: fine) {
  .member-card:hover .member-card__button { transform: rotateX(180deg); }
  .member-card:hover .member-card__back { z-index: 3; transform: rotateX(0); }
}

.home-audio { min-height: 515px; background: var(--lavender); }
.home-audio__embed { height: 150px; margin: 20px 0 42px; }
.home-audio__embed iframe { height: 150px; }

.home-video { min-height: 676px; background: var(--plum); }

.video-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 40px;
  margin: 45px auto 50px;
}

.embed--video,
.images-video {
  position: relative;
  overflow: hidden;
  background: var(--cream);
  aspect-ratio: 16 / 9;
}

.embed--video iframe,
.images-video iframe { position: absolute; inset: 0; width: 100%; height: 100%; }

.home-press { min-height: 455px; background: rgba(242, 242, 242, 0.92); }
.home-press__quote { margin: 35px auto 25px; }

.home-press__quote p {
  margin-bottom: 20px;
  color: var(--ink);
  font-family: "Limelight", display, serif;
  font-size: 24px;
  font-style: normal;
  line-height: 1.35;
}

.home-press__quote cite { font-style: normal; }

.home-releases { min-height: 623px; background: var(--lavender); }
.home-releases .home-section-title--muted { color: #fff; }

.album-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 40px;
  margin: 35px auto 32px;
}

.home-release-card img { width: 100%; filter: drop-shadow(0 4px 4px rgba(0, 0, 0, 0.45)); }

.contact-section { min-height: 769px; background: rgba(242, 242, 242, 0.92); }
.contact-section h2 { color: var(--button); }

.contact-section form {
  width: 500px;
  max-width: 100%;
  margin: 35px auto 0;
}

.form-field { margin-bottom: 0; }
.form-field label { display: block; line-height: 1.5; }

.form-field input,
.form-field textarea {
  display: block;
  width: 100%;
  color: var(--copy);
  background: #fff;
  border: 1px solid #ddd;
  border-radius: 3px;
  box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.08);
}

.form-field input { height: 35px; padding: 6px 10px; }

.form-field textarea {
  min-height: 248px;
  padding: 10px;
  resize: vertical;
}

.form-status { min-height: 1.5em; margin: 0; }
.form-status:empty { display: none; }

.site-footer {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  min-height: 130px;
  padding: 20px 5%;
  color: var(--coral);
  text-align: center;
  background: var(--plum);
}

.site-footer ul { gap: 14px; }

.site-footer nav a,
.site-footer p {
  font-family: "Karla", sans-serif;
  font-size: 10px;
  letter-spacing: 0.2em;
}

.site-footer nav a { text-transform: uppercase; }

.social-links {
  display: flex;
  gap: 18px;
  margin: 12px auto 18px;
}

.social-links a,
.social-links svg { width: 18px; height: 18px; }
.social-links svg { fill: currentColor; }

.site-footer p { margin: 0; color: rgba(223, 217, 195, 0.55); }
.site-footer p a { color: var(--coral); }

.back-to-top {
  position: fixed;
  z-index: 25;
  right: 12px;
  bottom: 12px;
  display: none;
  width: 34px;
  height: 34px;
  color: #fff;
  line-height: 34px;
  text-align: center;
  background: rgba(0, 0, 0, 0.65);
}

.back-to-top.is-visible { display: block; }

.parity-page-heading {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  min-height: 507px;
  padding: 50px 5%;
  text-align: center;
  background: var(--cream-panel);
}

.page-heading__title {
  color: var(--coral);
  font-size: 140px;
  letter-spacing: 0.035em;
}

.presentation-heading .page-heading__title { font-size: 168px; }

.page-heading__subtitle {
  margin: 28px 0 0;
  color: var(--ink);
  font-family: "Limelight", display, serif;
  font-size: 36px;
  line-height: 1.2;
}

.parity-section {
  position: relative;
  margin: 0;
  padding: 85px 5%;
}

.parity-section h2 {
  margin-bottom: 8px;
  font-size: 40px;
  letter-spacing: -0.035em;
  line-height: 1.1;
}

.presentation-section--professionals,
.presentation-section--enchanting,
.amis-section--friends,
.images-section--videos,
.musique-section--extraits { background: var(--coral-panel); }

.presentation-section--professionals,
.presentation-section--enchanting {
  min-height: 493px;
  color: #fff;
}

.presentation-section--professionals h2,
.presentation-section--enchanting h2,
.images-section--videos h2,
.musique-section--extraits h2 { color: #fff; }

.presentation-section--professionals p,
.presentation-section--enchanting p,
.presentation-section--international p,
.presentation-albums__copy p {
  margin-bottom: 1.313em;
  font-size: 17.5px;
  line-height: 1.7;
  text-align: justify;
}

.presentation-section--journeys {
  min-height: 507px;
  padding: 0;
  background: #fff;
}

.presentation-journeys {
  display: grid;
  grid-template-columns: 1fr 1fr;
  width: 100%;
  max-width: none;
  min-height: 507px;
}

.presentation-counter {
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
}

.presentation-counter p {
  margin: 0;
  font-family: "Karla", sans-serif;
  font-size: 19px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
}

.presentation-counter strong {
  display: block;
  margin: 7px 0;
  font-size: 62px;
  font-weight: 400;
  letter-spacing: 0;
}

.presentation-slider {
  position: relative;
  min-height: 507px;
  overflow: hidden;
  background: #19132e;
}

.presentation-slide {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0;
  opacity: 0;
  background-position: center;
  background-size: cover;
  transition: opacity 1s ease;
}

.presentation-slide::before { position: absolute; inset: 0; content: ""; background: rgba(0, 0, 0, 0.22); }
.presentation-slide.is-active { opacity: 1; }

.presentation-slide img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.presentation-slide figcaption {
  position: relative;
  z-index: 1;
  color: #fff;
  font-family: "Limelight", display, serif;
  font-size: 38px;
}

.presentation-slider__controls {
  position: absolute;
  z-index: 2;
  top: 15px;
  left: 15px;
  display: flex;
  gap: 5px;
}

.presentation-slider__controls button,
.images-gallery__controls button {
  width: 30px;
  height: 30px;
  padding: 0;
  color: #fff;
  background: rgba(242, 90, 85, 0.7);
  border: 0;
  border-radius: 3px;
}

.presentation-section--international {
  min-height: 507px;
  padding-bottom: 40px;
  color: var(--ink);
  background: rgba(223, 217, 195, 0.95);
}

.presentation-section--international .parity-thin { padding-top: 45px; }
.presentation-section--international h2 { margin-bottom: 8px; }

.presentation-section--albums {
  min-height: 607px;
  color: #fff;
  background: var(--plum);
}

.presentation-albums {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 480px));
  align-items: start;
  gap: 130px;
  width: 1090px;
  max-width: 100%;
}

.presentation-albums__grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 24px;
}

.presentation-albums__grid picture { display: block; }
.presentation-albums__grid img { width: 100%; filter: drop-shadow(0 3px 3px rgba(0, 0, 0, 0.5)); }

.presentation-albums__grid picture:last-child {
  grid-column: 1 / 3;
  width: calc(50% - 12px);
  margin-inline: auto;
}

.presentation-albums__copy h2 { margin-bottom: 8px; color: #fff; }
.presentation-albums__copy .presentation-spacer { margin-bottom: 1.313em; }
.presentation-section--enchanting { min-height: 481px; }
.presentation-page .parity-concerts--live { min-height: 1008px; }

.parity-concerts--live {
  min-height: 750px;
  padding: 165px 5%;
  color: var(--ink);
  text-align: center;
  background: rgba(223, 217, 195, 0.95);
}

.parity-concerts--live .parity-concerts__title { color: var(--coral); font-size: 140px; }
.parity-concerts--live .parity-concerts__subtitle { margin: 15px 0 50px; font-size: 38px; }

.parity-concerts--live .parity-concerts__items {
  display: grid;
  gap: 20px;
  width: 400px;
  max-width: 100%;
  margin: 0 auto 45px;
}

.parity-concerts--live .parity-recent-concert { min-height: 58px; }
.parity-concerts--live time { display: none; }

.parity-concerts--archive {
  padding: 40px 5% 50px;
  background: #1a0b34;
}

.parity-concerts--archive .parity-concerts__items {
  display: grid;
  gap: 55px;
  width: 600px;
  max-width: 100%;
  margin-inline: auto;
}

.parity-concert-card {
  padding: 60px;
  color: var(--copy);
  text-align: center;
  background: var(--cream);
  border-radius: 4px;
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.13);
}

.parity-concert-card h2 {
  margin-bottom: 17.5px;
  font-size: 35px;
  letter-spacing: -0.035em;
  line-height: 1.05;
}

.parity-concert-card__content p { margin-bottom: 18.382px; }
.parity-concert-card__content p:last-child { margin-bottom: 0; }

.parity-concert-card__gap {
  height: 1px;
  margin: 18.382px 0 0;
  border: 0;
}
.parity-concert-card__link { color: var(--coral); }

.concert-detail {
  width: 600px;
  max-width: 90%;
  margin: 40px auto;
  padding: 55px 65px;
  text-align: center;
  background: var(--cream);
}

.concert-detail .parity-page-heading { min-height: 0; padding: 0; background: transparent; }
.concert-detail .page-heading__title { color: var(--ink); font-size: 36px; }
.concert-detail__meta, .concert-detail__copy { margin: 25px auto; }

.images-heading {
  min-height: 467px;
}

.images-heading .page-heading__title { font-size: 144px; }

.images-section--photos {
  min-height: 0;
  padding-top: 130px;
  padding-bottom: 103px;
  color: #fff;
  background: var(--plum);
}

.images-section--photos h2 {
  margin-bottom: -7px;
  color: #fff;
  text-align: center;
}

.images-section--videos h2 { margin-bottom: 48px; color: #fff; text-align: center; }

.images-gallery { position: relative; overflow: hidden; }

.images-gallery__track {
  position: relative;
  height: auto;
  overflow: hidden;
  aspect-ratio: 3 / 2;
}

.photo-gallery__slide {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0;
  opacity: 0;
  transition: opacity 300ms ease;
}

.photo-gallery__slide.is-active { opacity: 1; }
.photo-gallery__slide img { width: 100%; height: 100%; object-fit: cover; }

.images-gallery__controls {
  position: absolute;
  z-index: 2;
  top: 14px;
  left: 14px;
  display: flex;
  gap: 5px;
}

.images-section--videos {
  min-height: 0;
  padding-top: 120px;
  padding-bottom: 25px;
}

.images-video-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 20px 60px;
  width: 980px;
}

.musique-section--albums {
  min-height: 646px;
  padding-top: 85px;
  color: #fff;
  background: var(--plum);
}

.musique-albums { display: grid; grid-template-columns: repeat(3, 1fr); gap: 40px; }
.musique-album { margin: 0; text-align: center; }
.musique-album img { width: 100%; margin-bottom: 25px; filter: drop-shadow(0 3px 3px rgba(0, 0, 0, 0.5)); }
.musique-album h2 { margin-bottom: 24px; color: #fff; font-size: 17px; }
.musique-album p { font-size: 14px; line-height: 1.65; }
.musique-section--extraits { min-height: 1195px; }
.musique-section--extraits h2 { margin-bottom: 55px; text-align: center; }
.musique-audio iframe { height: 450px; }

.musique-heading { min-height: 395px; }
.musique-page .parity-concerts--live { min-height: 1065px; }

.amis-heading { min-height: 431px; }
.amis-section--friends { padding-top: 85px; padding-bottom: 80px; }
.amis-friends { display: grid; gap: 36px; }
.amis-friend { display: block; color: var(--ink); text-align: center; }

.amis-friend img {
  width: 366px;
  max-width: 100%;
  margin-inline: auto;
  filter: drop-shadow(0 4px 6px rgba(0, 0, 0, 0.32));
}

.amis-friend h2 {
  position: relative;
  margin: -10px 0 0;
  font-size: 38px;
  line-height: 1.1;
}

.amis-page .parity-concerts--live {
  min-height: 951px;
  padding-block: 148px;
}

.reveal-pending {
  opacity: 0;
  transform: translateY(45px);
  transition: opacity 750ms ease, transform 750ms ease;
}

.reveal-pending.is-visible,
.is-visible { opacity: 1; transform: none; }

@media (max-width: 979px) {
  .site-header__inner { justify-content: flex-end; }
  .site-logo { margin-right: auto; }
  .home-page .site-logo { display: none; }
  .nav-toggle { display: block; }

  .site-navigation {
    position: absolute;
    top: 80px;
    right: 0;
    left: 0;
    max-height: calc(100vh - 80px);
    overflow: auto;
    background: rgba(176, 174, 219, 0.97);
    transform-origin: top;
  }

  .site-navigation[aria-hidden="true"] { display: none; }

  .site-navigation ul {
    flex-direction: column;
    gap: 0;
    padding: 14px 5% 24px;
  }

  .site-navigation li,
  .site-navigation a { display: block; width: 100%; text-align: center; }
  .site-navigation a { padding: 10px; }
  .home-introduction { min-height: 0; }
  .home-about { min-height: 0; }
  .home-video { min-height: 569px; }
  .home-press { min-height: 488px; }
  .home-releases { min-height: 527px; }
  .parity-concerts--live { padding-block: 153.5px; }

  .page-heading__title,
  .presentation-heading .page-heading__title { font-size: clamp(62px, 12vw, 120px); }

  .images-heading { min-height: 296px; }
  .images-heading .page-heading__title { font-size: clamp(54px, 10vw, 88px); }
  .images-section--videos { padding-bottom: 15px; }

  .images-video-grid {
    grid-template-columns: calc(50% - 32px);
    gap: 10px;
    width: 90%;
  }

  .images-video { position: relative; left: 10px; }
  .presentation-heading { min-height: 338px; }

  .presentation-section--journeys,
  .presentation-journeys { min-height: 560px; }

  .presentation-journeys {
    grid-template-columns: 1fr;
    grid-template-rows: calc(137px + 17vw) calc(300.4px - 1vw);
  }

  .presentation-counter,
  .presentation-slider { min-height: 0; }

  .presentation-section--albums { min-height: 775px; }
  .presentation-page .parity-concerts--live {
    min-height: 925px;
    padding-block: 134.8px;
  }
  .presentation-albums { gap: 30px; }
  .amis-heading { min-height: 277px; }

  .amis-page .parity-concerts--live {
    min-height: 930px;
    padding-block: 137px;
  }
  .musique-heading { min-height: 318px; }
  .musique-section--albums { min-height: 639px; }
  .musique-section--extraits { min-height: 1095px; }

  .musique-page .parity-concerts--live {
    min-height: 943px;
    padding-block: 144px;
  }
}

@media (max-width: 767px) {
  .home-section { padding: 60px 5%; }
  .home-section h2 { font-size: 42px; }

  .home-introduction {
    min-height: 0;
    padding: 65px 0 50px;
  }

  .home-wordmark { width: 100%; margin: 0 auto 18px; }
  .home-introduction__portrait { border-radius: 6px; }
  .home-tour {
    min-height: 0;
    padding-top: 85px;
    padding-bottom: 40px;
  }
  .home-tour h2 { font-size: 38px; }
  .home-tour__list { gap: 13px; margin: 35px auto 85px; }
  .home-tour__card { min-height: 59px; padding: 8px 10px; }
  .home-tour__card h3 { font-size: 16px; }

  .home-about {
    padding-top: 130px;
    padding-bottom: 40px;
  }

  .home-about__logo-wrap { margin: 20px auto 68px; }
  .home-about__logo { width: 144px; }

  .member-grid {
    grid-template-columns: 1fr;
    gap: 10px;
    width: 100%;
    max-width: 316px;
    margin-bottom: 132px;
  }

  .member-card { height: 250px; }
  .home-audio { min-height: 501px; }
  .home-audio__embed { height: 205px; margin: 15px 0 35px; }
  .home-video { min-height: 796px; }

  .video-grid,
  .album-grid,
  .musique-albums,
  .images-video-grid { grid-template-columns: 1fr; }

  .video-grid { gap: 48px; margin: 45px auto 50px; }
  .home-press { min-height: 541px; }
  .home-press__quote p { font-size: 22px; }

  .home-releases {
    min-height: 1214px;
    padding-top: 60px;
    padding-bottom: 60px;
  }

  .album-grid {
    gap: 28px;
    width: 100%;
    max-width: 300px;
  }

  .contact-section { min-height: 755px; }
  .form-field textarea { min-height: 250px; }
  .site-footer { min-height: 143px; padding-block: 13px; }

  .site-footer ul {
    flex-wrap: wrap;
    gap: 4px 11px;
    max-width: 300px;
  }

  .parity-page-heading { min-height: 430px; }

  .page-heading__title,
  .presentation-heading .page-heading__title,
  .images-heading .page-heading__title { font-size: 49px; }

  .page-heading__subtitle { font-size: 28px; }
  .parity-section { padding: 65px 7.5%; }

  .presentation-section--professionals,
  .presentation-section--enchanting { min-height: 0; }

  .presentation-heading { min-height: 228px; }

  .presentation-section--professionals {
    min-height: 1115px;
    padding: 85px 5%;
  }

  .presentation-section--journeys,
  .presentation-journeys { min-height: 0; }

  .presentation-section--journeys { padding: 0; }

  .presentation-journeys {
    grid-template-rows: calc(137px + 17vw) calc(300.4px - 1vw);
  }

  .presentation-section--international {
    min-height: 646px;
    padding-top: 85px;
    padding-bottom: 10px;
  }

  .presentation-section--albums {
    min-height: 1691px;
    padding-inline: 5%;
  }

  .presentation-albums {
    grid-template-columns: 1fr;
    gap: 105px;
  }

  .presentation-albums__grid {
    grid-template-columns: 1fr;
    gap: 40px;
    width: 300px;
    max-width: 100%;
    margin-inline: auto;
  }

  .presentation-albums__grid picture:last-child {
    grid-column: auto;
    width: 100%;
  }

  .presentation-section--enchanting {
    min-height: 639px;
    padding: 85px 5%;
  }

  .presentation-page .parity-concerts--live {
    min-height: 804px;
    padding-block: 82px;
  }

  .presentation-section--albums { min-height: 1691px; }
  .presentation-albums__copy h2 { margin: 20px 0 30px; }

  .parity-concerts--live {
    min-height: 954px;
    padding: 85px 7.5%;
  }

  .parity-concerts--live .parity-concerts__title { font-size: 100px; }
  .parity-concerts--live .parity-concerts__subtitle { font-size: 32px; }
  .parity-concerts--archive { padding: 40px 5% 50px; }
  .parity-concerts--archive .parity-concerts__inner { width: 100%; }
  .parity-concert-card { padding: 25px; }
  .concert-detail { padding: 40px 24px; }

  .parity-concert-card h2 { font-size: 28px; }
  .concert-detail .page-heading__title { font-size: 30px; }

  .images-heading { min-height: 228px; }
  .images-heading .page-heading__title { font-size: 50px; }

  .images-section--photos {
    min-height: 0;
    padding: 130px 5% 103px;
  }

  .images-gallery__track { height: auto; }

  .images-section--videos {
    min-height: 0;
    padding: 120px 5% 15px;
  }

  .images-video-grid { grid-template-columns: 1fr; }
  .images-video { width: calc(100% - 20px); }
  .musique-section--albums, .musique-section--extraits { min-height: 0; }
  .musique-albums { gap: 50px; }

  .musique-album {
    max-width: 330px;
    margin-inline: auto;
  }

  .musique-heading { min-height: 251px; }
  .musique-section--albums { min-height: 1526px; }
  .musique-section--extraits { min-height: 995px; }

  .musique-page .parity-concerts--live {
    min-height: 804px;
    padding-block: 82px;
  }

  .amis-heading { min-height: 215px; }

  .amis-section--friends {
    min-height: 2523px;
    padding: 85px 5% 80px;
  }

  .amis-friends { gap: 36px; }

  .amis-friend h2 {
    font-size: 32px;
    line-height: 1.3;
  }

  .amis-page .parity-concerts--live {
    min-height: 934px;
    padding-block: 147px;
  }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }

  *,
  *::before,
  *::after {
    scroll-behavior: auto !important;
    transition-duration: 0.01ms !important;
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
  }
}
