/*
Theme Name: Coadou Quartet
Theme URI: https://coadouquartet.com
Author: amyma
Description: Custom theme for the jazz group Coadou Quartet and their debut album "Latinity". A 6-page promotional site built to the client's Cahier des Charges (elegant, sober, dark; copper/gold accents on deep black with ivory light sections). High-fidelity recreation of the approved Rev2 mockups.
Version: 1.0.0
Requires at least: 6.0
Requires PHP: 7.4
Text Domain: coadou-quartet
*/

/* ==========================================================================
   Design tokens (from client spec — mandatory)
   ========================================================================== */
:root {
  --noir: #000000;         /* Noir profond — page background */
  --cuivre: #D39C3F;       /* Doré — logo, titles, buttons, links, active menu (client switched copper→gold) */
  --cuivre-fonce: #A07730; /* Doré foncé — titles on light bg, separator rules */
  --blanc: #FFFFFF;        /* Blanc — menu, LISTEN block titles */
  --blanc-casse: #F2F2F2;  /* Blanc cassé — body text */
  --ivoire: #F4E4CB;       /* Ivoire clair — light zones */
  --ivoire-rule: #c9b190;  /* vertical rule inside ivory section */
  --ivoire-instr: #6f6357; /* instrument text inside ivory section */
}

/* ==========================================================================
   Base
   ========================================================================== */
* { box-sizing: border-box; }

html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
#stream { scroll-margin-top: 40px; }

body {
  margin: 0;
  background: var(--noir);
  color: var(--blanc-casse);
  font-family: Georgia, 'Times New Roman', serif;
  -webkit-font-smoothing: antialiased;
  overflow-x: clip; /* clip (not hidden) so it doesn't create a scroll container that breaks anchor / smooth scroll */
}

img { max-width: 100%; }

a { color: var(--cuivre); text-decoration: none; }
a:hover { color: #e4b75e; }

p { margin: 0 0 1.4em 0; }

::selection { background: var(--cuivre); color: #000; }

.italic { font-style: italic; }

/* ==========================================================================
   Header / navigation
   ========================================================================== */
.site-header {
  display: flex;
  justify-content: flex-end;
  padding: 30px 4vw 22px;
  background: var(--noir);
  border-bottom: 1px solid var(--cuivre-fonce);
}
/* Home has a transparent header rule (spec) */
.site-header.is-home { border-bottom: 1px solid transparent; }

.main-nav { display: flex; gap: 52px; align-items: baseline; }

.main-nav a {
  font-family: 'Montserrat', sans-serif;
  font-size: 14px;
  letter-spacing: 3px;
  text-transform: uppercase;
  color: var(--blanc);
  border-bottom: 2px solid transparent;
  padding-bottom: 7px;
  transition: color .2s;
}
.main-nav a:hover { color: var(--cuivre); }
.main-nav a.is-active {
  color: var(--cuivre);
  border-bottom: 2px solid var(--cuivre);
}

/* ==========================================================================
   Buttons
   ========================================================================== */
.btn-discover {
  font-family: 'Montserrat', sans-serif;
  font-size: 15px;
  letter-spacing: 0.28em;
  color: var(--cuivre);
  border: 2px solid var(--cuivre);
  padding: 17px 42px;
  background: rgba(0, 0, 0, 0.35);
  transition: all .25s;
  display: inline-flex;
  align-items: center;
  gap: 16px;
}
.btn-discover:hover { background: var(--cuivre); color: #000; }
.btn-discover .arrow { font-size: 26px; line-height: 1; }

/* ==========================================================================
   Home — hero
   ========================================================================== */
.hero {
  position: relative;
  height: 62vh;
  min-height: 480px;
  overflow: hidden;
  background: var(--noir);
}
.hero__img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 26%;
}
.hero__overlay {
  position: absolute;
  inset: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  padding: 0 24px;
}
.hero__title {
  margin: 0;
  font-family: 'Cinzel', serif;
  font-weight: 600;
  font-size: clamp(34px, 5.5vw, 68px);
  letter-spacing: 0.22em;
  color: var(--cuivre);
  text-shadow: 0 2px 30px rgba(0, 0, 0, 0.9);
}
.hero__rule {
  width: 64px;
  height: 1px;
  background: var(--cuivre);
  margin: 30px 0 38px;
}
/* Spacing after the (removed) rule between title and button */
.hero__overlay .btn-discover { margin-top: 42px; }

/* Desktop: show the whole hero photo (cymbal + keyboard), like the mobile view.
   A near-square photo can't reveal both in a wide, short strip via cover, so we
   contain it; the black letterbox is invisible on the black page. */
@media (min-width: 768px) {
  .hero { height: 86vh; min-height: 600px; }
  .hero__img { object-fit: contain; object-position: center; }
}

/* ==========================================================================
   Home — ivory section
   ========================================================================== */
.ivory {
  background: var(--ivoire);
  color: #1a1a1a;
  padding: 64px 6vw 34px;
}
.ivory__grid {
  display: grid;
  grid-template-columns: 1fr 1px 1fr;
  gap: 0 5vw;
  max-width: 1250px;
  margin: 0 auto;
}
.ivory__vrule { background: var(--ivoire-rule); }
.ivory__panel {
  cursor: pointer;
  padding: 22px 26px;
  margin: -16px -16px;
  transition: background .2s;
  display: block;
  color: inherit;
}
.ivory__panel:hover { background: rgba(160, 107, 45, 0.08); color: inherit; }
.ivory__panel-title {
  font-family: 'Cinzel', serif;
  font-weight: 500;
  font-size: 19px;
  letter-spacing: 0.18em;
  color: var(--cuivre-fonce);
  margin-bottom: 20px;
}
.ivory__panel-rule {
  width: 56px;
  height: 1px;
  background: var(--cuivre-fonce);
  margin: 12px 0 26px;
}
.lineup {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 14px 40px;
  font-size: 17px;
}
.lineup .name { font-weight: bold; }
.lineup .instr { font-style: italic; color: var(--ivoire-instr); }

/* Home: single, centered current-lineup list (replaces the old two panels) */
.ivory__lineup { display: flex; justify-content: center; }
.ivory__lineup .lineup { grid-template-columns: auto auto; gap: 16px 56px; }

.ivory__footer {
  max-width: 1250px;
  margin: 48px auto 0;
  border-top: 1px solid var(--ivoire-rule);
  padding-top: 22px;
  text-align: center;
  font-size: 15px;
  color: #3a3a3a;
}

/* ==========================================================================
   Latinity Album page (merged: album artwork + intro + streaming + musicians + icon strip)
   ========================================================================== */
.album-main { padding: 6vh 5vw 0; }
.album-top {
  display: grid;
  grid-template-columns: minmax(260px, 500px) minmax(0, 1fr);
  gap: 5vw;
  align-items: start;
  max-width: 1400px;
  margin: 0 auto 56px;
}
.album-art img {
  width: 100%;
  max-width: 500px;
  display: block;
  box-shadow: 0 20px 60px rgba(0, 0, 0, 0.6);
}
.album-art-caption { font-size: 15px; margin-top: 14px; }
.album-art-caption .label { color: var(--cuivre); }
.album-art-caption .name { color: var(--blanc-casse); }
.album-intro {
  font-size: 11pt;
  line-height: 2.05;
  color: var(--blanc-casse);
  max-width: 660px;
}
.album-streaming {
  display: flex;
  align-items: center;
  gap: clamp(16px, 3vw, 46px);
  margin-top: 26px;
  flex-wrap: wrap;
}
.album-streaming a { display: block; transition: filter .2s; }
.album-streaming a:hover { filter: brightness(1.15); }
.album-streaming img { height: clamp(78px, 8vw, 96px); display: block; }
.album-credit { font-size: 15px; margin-top: 28px; }
.album-credit .label { color: var(--cuivre); }
.album-credit .name { color: var(--blanc-casse); }
.album-main .quartet-banrule { margin-top: 8px; }
.album-main .icon-strip { margin-top: 8px; }

/* ==========================================================================
   Latinity page (legacy — kept for reference)
   ========================================================================== */
.latinity-cols {
  display: grid;
  grid-template-columns: 0.9fr 1.1fr;
  min-height: 62vh;
}
.latinity-text {
  padding: 54px 3.5vw 40px 4vw;
  font-size: 11pt;
  line-height: 2.05;
  color: var(--blanc-casse);
  max-width: 660px;
}
.latinity-credit { margin-top: 2em; }
.latinity-credit .label { color: var(--cuivre); }
.latinity-photo { position: relative; overflow: hidden; min-height: 320px; }
.latinity-photo img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center top;
}

/* Icon strip */
.icon-strip {
  border-top: 1px solid var(--cuivre-fonce);
  display: grid;
  grid-template-columns: 1fr 1px 1fr 1px 1fr 1px 1.4fr;
  align-items: center;
  padding: 34px 3vw;
  gap: 0 2.5vw;
}
.icon-cell { text-align: center; padding: 6px 0; }
.icon-cell img { height: 66px; display: block; margin: 0 auto 12px; }
.cq-icon { width: 66px; height: 66px; display: block; margin: 0 auto 12px; color: var(--cuivre); }
.icon-cell.clickable {
  cursor: pointer;
  transition: filter .2s;
  display: block;
  color: inherit;
}
.icon-cell.clickable:hover { filter: brightness(1.25); }
.icon-title {
  font-family: 'Cinzel', serif;
  font-size: 16px;
  letter-spacing: 0.12em;
  color: var(--blanc);
}
.icon-sub {
  font-size: 14px;
  color: var(--cuivre);
  margin-top: 8px;
  line-height: 1.5;
}
.icon-vrule { background: var(--cuivre-fonce); height: 110px; }
.icon-cell--comp .comp-main {
  font-family: 'Cinzel', serif;
  font-size: 19px;
  letter-spacing: 0.1em;
  color: var(--blanc);
}
.icon-cell--comp .comp-bonus {
  font-style: italic;
  font-size: 16px;
  color: var(--cuivre);
  margin-top: 6px;
}
.icon-cell--comp .comp-bonus .spaced { letter-spacing: 0.06em; }
/* Georgia renders old-style figures (the '3' dips below the baseline) — lift it to sit evenly. */
.icon-cell--comp .comp-bonus .fig { position: relative; top: -0.1em; }
.signature {
  font-family: 'Dancing Script', cursive;
  font-size: 44px;
  color: var(--cuivre);
  margin-top: 10px;
  line-height: 1.1;
}
/* Golden handwritten signature image (screen blend hides its black backdrop on our black pages) */
.signature-img {
  display: block;
  height: 74px;
  width: auto;
  max-width: 100%;
  margin: 6px auto 0;
  mix-blend-mode: screen;
}

/* Generic dark footer */
.page-footer {
  border-top: 1px solid var(--cuivre-fonce);
  padding: 18px;
  text-align: center;
  font-size: 14px;
  color: var(--blanc-casse);
}

/* ==========================================================================
   Listen page
   ========================================================================== */
.listen-main {
  background: var(--noir);
  min-height: calc(100vh - 85px);
  padding: 7vh 6vw;
  display: grid;
  grid-template-columns: minmax(260px, 560px) minmax(0, 1fr);
  gap: 6vw;
  align-items: center;
}
.listen-art-wrap { position: relative; max-width: 560px; }
.listen-artwork img {
  width: 100%;
  max-width: 560px;
  display: block;
  box-shadow: 0 20px 60px rgba(0, 0, 0, 0.6);
}
/* "COADOU QUARTET / LATINITY" overlaid on the album artwork (per Rev2) */
.listen-art-title {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 92%;
  text-align: center;
  pointer-events: none;
}
.listen-art-title .cq {
  display: block;
  font-family: 'Cinzel', serif;
  font-weight: 500;
  font-size: clamp(20px, 2.6vw, 30px);
  letter-spacing: 0.16em;
  line-height: 1.25;
  color: #F4E4CB;
  text-shadow: 0 2px 16px rgba(0, 0, 0, 0.9);
}
.listen-art-title .lat {
  display: block;
  font-family: 'Cinzel', serif;
  font-style: italic;
  font-size: clamp(18px, 2.3vw, 26px);
  letter-spacing: 0.12em;
  color: var(--cuivre);
  margin-top: 10px;
  text-shadow: 0 2px 16px rgba(0, 0, 0, 0.9);
}
.listen-caption { font-size: 15px; margin-top: 16px; }
.listen-caption .label { color: var(--cuivre); }
.listen-caption .name { color: var(--blanc-casse); }
.listen-logos {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: clamp(18px, 4vw, 60px);
  flex-wrap: wrap;
}
.listen-logos a { display: block; transition: filter .2s; }
.listen-logos a:hover { filter: brightness(1.15); }
.listen-logos img { height: clamp(90px, 12vw, 150px); display: block; }
.listen-logos .vrule { width: 1px; height: 110px; background: var(--cuivre-fonce); opacity: 0.7; }

/* ==========================================================================
   Quartet pages (on Latinity / Today)
   ========================================================================== */
.quartet-main { padding: 36px 3.5vw 30px; }
.quartet-head { text-align: center; margin-bottom: 8px; }
.quartet-title {
  margin: 0;
  font-family: 'Cinzel', serif;
  font-weight: 500;
  font-size: clamp(30px, 3.8vw, 46px);
  color: var(--cuivre);
  letter-spacing: 0.02em;
}
.quartet-head__rule {
  width: 74px;
  height: 1px;
  background: var(--cuivre-fonce);
  margin: 16px auto 26px;
}
.quartet-banner {
  height: 40vh;
  min-height: 280px;
  margin-bottom: 2px;
  overflow: hidden;
}
.quartet-banner img { width: 100%; height: 100%; object-fit: cover; object-position: center 10%; display: block; }
/* "The Quartet Today" uses a different group photo whose front musician sits lower — crop lower so all four faces stay in frame. */
.quartet-banner--today img { object-position: center 38%; }
.quartet-banner--placeholder {
  display: flex;
  align-items: center;
  justify-content: center;
  background: #0d0d0d;
  border: 1px dashed var(--cuivre-fonce);
  color: #7a7a7a;
  font-style: italic;
  text-align: center;
  padding: 20px;
}
.quartet-banrule { border-top: 1px solid var(--cuivre-fonce); margin-bottom: 44px; }
.quartet-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 0 3vw;
  max-width: 1500px;
  margin: 0 auto;
}
.musician-photo {
  width: 100%;
  max-width: 232px;
  aspect-ratio: 1;
  margin-bottom: 22px;
  overflow: hidden;
}
.musician-photo img { width: 100%; height: 100%; object-fit: cover; display: block; }
.musician-name { font-size: 20px; font-weight: bold; color: var(--cuivre); }
.musician-instr { font-style: italic; font-size: 14px; color: var(--blanc-casse); margin-top: 7px; }
.musician-bio {
  font-size: 11pt;
  color: var(--blanc-casse);
  margin-top: 14px;
  line-height: 1.8;
  text-wrap: pretty;
}
.quartet-footer { text-align: center; margin-top: 52px; }
.quartet-footer__rule { width: 74px; height: 1px; background: var(--cuivre-fonce); margin: 0 auto 18px; }
.quartet-footer .credit { font-size: 15px; }
.quartet-footer .credit .label { color: var(--cuivre); }
.quartet-footer .credit .name { color: var(--blanc-casse); }
.quartet-footer .copy { font-size: 13px; color: #8a8a8a; margin-top: 26px; }

/* ==========================================================================
   Contact page
   ========================================================================== */
.contact-cols {
  display: grid;
  grid-template-columns: 1fr 1.1fr;
  min-height: calc(100vh - 195px);
}
.contact-photo { position: relative; overflow: hidden; min-height: 320px; }
.contact-photo img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: left center;
}
.contact-body {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  padding: 60px 6vw;
}
.contact-title {
  margin: 0;
  font-family: 'Montserrat', sans-serif;
  font-weight: 300;
  font-size: clamp(30px, 4vw, 52px);
  color: var(--blanc-casse);
  line-height: 1.25;
}
.contact-text {
  font-size: 11pt;
  color: var(--blanc-casse);
  margin-top: 34px;
  line-height: 1.9;
  max-width: 480px;
}
.contact-email {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 12px;
  margin-top: 40px;
  transition: filter .2s;
}
.contact-email:hover { filter: brightness(1.15); }
.contact-email img { height: 44px; display: block; }
.contact-email span {
  font-family: 'Montserrat', sans-serif;
  font-size: 20px;
  letter-spacing: 0.04em;
  color: var(--cuivre);
}
.contact-logos { display: flex; align-items: center; gap: 3vw; margin-top: 46px; flex-wrap: wrap; justify-content: center; }
.contact-logos a { display: block; transition: filter .2s; }
.contact-logos a:hover { filter: brightness(1.15); }
.contact-logos img { height: 118px; display: block; }
.contact-logos .vrule { width: 1px; height: 80px; background: var(--cuivre-fonce); opacity: 0.7; }
.contact-footer {
  border-top: 1px solid var(--cuivre-fonce);
  padding: 22px;
  text-align: center;
}
.contact-footer .signature { font-size: 38px; margin-top: 0; }
.contact-footer .signature-img { height: 64px; margin: 0 auto; }
.contact-footer .copy { font-size: 13px; color: #8a8a8a; margin-top: 14px; }

/* ==========================================================================
   Responsive — Tablet (768–1199px)
   ========================================================================== */
@media (max-width: 1199px) {
  .icon-strip {
    grid-template-columns: 1fr 1px 1fr;
    gap: 30px 2.5vw;
  }
  /* hide the vertical rules that no longer sit between two cells cleanly */
  .icon-strip .icon-vrule:nth-of-type(4) { display: none; }
}

@media (max-width: 900px) {
  .quartet-grid { grid-template-columns: repeat(2, 1fr); gap: 40px 3vw; }
}

/* ==========================================================================
   Responsive — Mobile (<768px)
   ========================================================================== */
@media (max-width: 767px) {
  /* 4 nav items need room on phones: fixed side padding + wrap + smaller type */
  .site-header { padding: 18px 18px 16px; justify-content: center; }
  .main-nav { flex-wrap: wrap; justify-content: center; gap: 10px 20px; }
  .main-nav a { font-size: 12px; letter-spacing: 1.8px; white-space: nowrap; padding-bottom: 5px; }

  .ivory__grid { grid-template-columns: 1fr; gap: 0; }
  .ivory__vrule { display: none; }
  .ivory__panel { margin: 0 0 10px; padding: 20px 8px; }
  .ivory__panel + .ivory__panel { border-top: 1px solid var(--ivoire-rule); padding-top: 34px; }

  .album-top { grid-template-columns: 1fr; gap: 36px; }
  .album-art img { max-width: 460px; margin: 0 auto; }
  .album-intro { max-width: none; }
  .album-streaming { justify-content: center; gap: 26px; }
  .album-credit { text-align: center; }

  .latinity-cols { grid-template-columns: 1fr; }
  /* Interim: show the whole group photo uncropped on phones so all four musicians stay visible
     (final hands/instruments mosaic to come from the client). */
  .latinity-photo { position: relative; height: auto; min-height: 0; order: -1; }
  .latinity-photo img { position: static; width: 100%; height: auto; object-fit: contain; }
  .latinity-text { max-width: none; padding: 40px 6vw; }

  .icon-strip {
    grid-template-columns: 1fr;
    gap: 34px 0;
  }
  .icon-strip .icon-vrule { display: none; }

  .listen-main { grid-template-columns: 1fr; gap: 40px; padding: 6vh 6vw; }
  .listen-logos { gap: 30px; }
  .listen-logos .vrule { display: none; }

  /* Interim: show the whole group banner uncropped on phones so all four faces stay visible
     (final outpainted panoramic image to come from the client). */
  .quartet-banner { height: auto; min-height: 0; }
  .quartet-banner img { height: auto; object-fit: contain; }

  .quartet-grid { grid-template-columns: 1fr; gap: 44px; max-width: 420px; }
  .musician-photo { max-width: 360px; margin-left: auto; margin-right: auto; }
  .musician-name, .musician-instr, .musician-bio { text-align: center; }

  .contact-cols { grid-template-columns: 1fr; }
  .contact-photo { height: 40vh; }
  .contact-logos { gap: 24px; }
  .contact-logos .vrule { display: none; }
}
