/* =========================================================
   Piermichele Bertaina — Sito Ufficiale
   Foglio di stile condiviso
   ========================================================= */

:root {
  --bg: #14110d;
  --bg-alt: #1c1813;
  --bg-deeper: #0d0b08;
  --text: #f3ead7;
  --text-soft: #c9bda3;
  --muted: #8a7e66;
  --rule: rgba(212,168,87,0.25);
  --gold: #d4a857;
  --gold-bright: #e8c47a;
}

* { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; }

body {
  background: var(--bg);
  color: var(--text);
  font-family: 'Cormorant Garamond', serif;
  font-weight: 400;
  font-size: 22px;
  line-height: 1.55;
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
  background-image:
    radial-gradient(circle at 20% 10%, rgba(212,168,87,0.06) 0%, transparent 40%),
    radial-gradient(circle at 80% 90%, rgba(212,168,87,0.04) 0%, transparent 45%);
}

body::before {
  content: ""; position: fixed; inset: 0; pointer-events: none; z-index: 100; opacity: 0.35;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='200'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 0.9 0 0 0 0 0.8 0 0 0 0 0.5 0 0 0 0.06 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}

.display { font-family: 'Playfair Display', serif; font-weight: 600; }

.label {
  font-size: 13px; letter-spacing: 0.32em; text-transform: uppercase;
  font-weight: 500; color: var(--gold);
}

/* ===== NAVIGATION ===== */
nav.top {
  position: fixed; top: 0; left: 0; right: 0; z-index: 50;
  padding: 22px 48px; display: flex; justify-content: space-between; align-items: center;
  background: rgba(20,17,13,0.85); backdrop-filter: blur(14px);
  border-bottom: 1px solid var(--rule);
}
nav.top .mark { font-family: 'Playfair Display', serif; font-weight: 600; font-size: 24px; letter-spacing: 0.04em; color: var(--text); text-decoration: none; }
nav.top .mark span { color: var(--gold); }
nav.top ul { list-style: none; display: flex; gap: 38px; }
nav.top ul a {
  text-decoration: none; color: var(--text);
  font-size: 13px; letter-spacing: 0.28em; text-transform: uppercase; font-weight: 500;
  position: relative; transition: color .3s;
}
nav.top ul a::after {
  content: ""; position: absolute; bottom: -6px; left: 50%;
  width: 0; height: 1px; background: var(--gold);
  transition: all .35s ease; transform: translateX(-50%);
}
nav.top ul a:hover, nav.top ul a.active { color: var(--gold); }
nav.top ul a:hover::after, nav.top ul a.active::after { width: 100%; }
.admin-btn {
  font-size: 10px; letter-spacing: 0.28em; text-transform: uppercase;
  color: var(--gold); text-decoration: none;
  border: 1px solid var(--gold); padding: 8px 14px; transition: all .3s;
}
.admin-btn:hover { background: var(--gold); color: var(--bg); }

/* ===== HERO ===== */
.hero {
  min-height: 100vh; padding: 140px 48px 80px;
  display: grid; grid-template-columns: 1fr 1fr; gap: 60px;
  align-items: center; position: relative;
}
.hero-text { position: relative; z-index: 2; }
.hero .eyebrow { display: flex; align-items: center; gap: 14px; margin-bottom: 32px; }
.hero .eyebrow .line { width: 60px; height: 1px; background: var(--gold); }
.hero h1 {
  font-family: 'Playfair Display', serif; font-weight: 600;
  font-size: clamp(60px, 9vw, 130px);
  line-height: 0.92; letter-spacing: -0.01em;
  margin-bottom: 8px; color: var(--text);
}
.hero h1 .first {
  display: block; font-size: 0.55em; letter-spacing: 0.06em;
  color: var(--text-soft); margin-bottom: 4px;
}
.hero h1 .surname { display: block; }
.hero .dates {
  display: block;
  font-family: 'Cormorant Garamond', serif;
  font-style: italic;
  font-weight: 500;
  color: var(--gold);
  font-size: clamp(28px, 3vw, 40px);
  margin-top: 18px;
  letter-spacing: 0.08em;
}
.hero .tagline {
  margin-top: 36px; font-size: 24px; font-style: italic;
  color: var(--text-soft); max-width: 520px; font-weight: 500;
}
.hero .meta-row {
  margin-top: 60px; display: flex; gap: 50px;
  padding-top: 24px; border-top: 1px solid var(--rule);
}
.hero .meta-row .item .label { display: block; margin-bottom: 6px; }
.hero .meta-row .item .val {
  font-family: 'Playfair Display', serif; font-weight: 600; font-size: 38px; color: var(--gold-bright);
}

.hero-portrait {
  position: relative; aspect-ratio: 3/4;
  background: var(--bg-deeper); overflow: hidden;
  border: 1px solid var(--rule);
}
.hero-portrait::before {
  content: ""; position: absolute; inset: 0;
  background:
    radial-gradient(circle at 30% 30%, rgba(212,168,87,0.18), transparent 55%),
    linear-gradient(135deg, rgba(212,168,87,0.08), rgba(160,123,50,0.04));
}
.hero-portrait .pp-label {
  position: absolute; bottom: 24px; left: 24px; right: 24px; z-index: 2;
  display: flex; justify-content: space-between; align-items: flex-end;
}
.hero-portrait .pp-label .l { font-family: 'Playfair Display', serif; font-size: 14px; letter-spacing: 0.2em; color: var(--gold); }
.hero-portrait .pp-label .r { font-size: 10px; letter-spacing: 0.3em; text-transform: uppercase; color: var(--text-soft); }

.staff { position: absolute; pointer-events: none; opacity: 0.3; }
.staff line { stroke: var(--gold); stroke-width: 0.5; }
.hero .staff-deco { bottom: 80px; left: -100px; width: 400px; height: 60px; transform: rotate(-2deg); }

/* Chiave di violino decorativa */
.clef-deco {
  position: absolute;
  left: -40px;
  top: 50%;
  transform: translateY(-50%);
  height: 90%;
  max-height: 700px;
  width: auto;
  pointer-events: none;
  color: var(--gold);
  opacity: 0.12;
  z-index: 1;
}
@media (max-width: 980px) {
  .clef-deco {
    left: auto;
    right: -60px;
    top: 60px;
    transform: none;
    height: 320px;
    opacity: 0.08;
  }
}

/* ===== PAGE HEADER (for subpages) ===== */
.page-header {
  padding: 180px 48px 80px;
  position: relative;
  border-bottom: 1px solid var(--rule);
  overflow: hidden;
}
.page-header .breadcrumb {
  font-size: 12px; letter-spacing: 0.3em; text-transform: uppercase;
  color: var(--gold); margin-bottom: 20px; font-weight: 500;
}
.page-header h1 {
  font-family: 'Playfair Display', serif;
  font-size: clamp(54px, 7vw, 96px);
  font-weight: 600; line-height: 0.95;
  color: var(--text); margin-bottom: 18px;
  letter-spacing: -0.01em;
}
.page-header h1 em {
  font-family: 'Cormorant Garamond', serif; font-weight: 500;
  font-style: italic; color: var(--gold); font-size: 0.7em;
  display: block; margin-top: 12px;
}
.page-header p.intro {
  font-size: 24px; font-style: italic; color: var(--text-soft);
  font-weight: 500; max-width: 720px; line-height: 1.5;
}

/* ===== SECTION ===== */
section { padding: 120px 48px; position: relative; }

.section-head {
  display: flex; align-items: baseline; gap: 28px;
  margin-bottom: 70px; padding-bottom: 28px;
  border-bottom: 1px solid var(--rule);
}
.section-head .num {
  font-family: 'Playfair Display', serif; font-size: 22px;
  color: var(--gold); letter-spacing: 0.1em;
}
.section-head h2 {
  font-family: 'Playfair Display', serif;
  font-size: clamp(52px, 6.5vw, 88px);
  font-weight: 600; letter-spacing: -0.005em;
  flex: 1; color: var(--text);
}
.section-head h2 em {
  font-family: 'Cormorant Garamond', serif; font-weight: 500;
  font-style: italic; color: var(--gold);
}
.section-head .aside {
  text-align: right; max-width: 320px;
  font-style: italic; color: var(--text-soft);
  font-size: 20px; line-height: 1.5;
}

/* ===== BIOGRAFIA HOME ===== */
.bio { display: grid; grid-template-columns: 1fr 2fr; gap: 80px; align-items: start; }
.bio-side .label { margin-bottom: 12px; display: block; }
.bio-side .bio-fact { margin-bottom: 28px; }
.bio-side h3 {
  font-family: 'Playfair Display', serif; font-size: 32px;
  font-weight: 600; line-height: 1.2; color: var(--text);
}
.bio-side p {
  font-style: italic; color: var(--text-soft);
  margin-top: 4px; line-height: 1.5; font-size: 19px; font-weight: 500;
}
.bio-side .ornament { color: var(--gold); font-size: 24px; margin: 32px 0 28px; }

.bio-text {
  column-count: 2; column-gap: 48px;
  font-size: 21px; line-height: 1.7; color: var(--text);
}
.bio-text p { margin-bottom: 18px; break-inside: avoid; }
.bio-text p:first-child::first-letter {
  font-family: 'Playfair Display', serif; font-size: 84px;
  float: left; line-height: 0.85; padding: 4px 10px 0 0;
  color: var(--gold); font-weight: 600;
}

.btn-arrow {
  display: inline-flex; align-items: center; gap: 14px;
  text-decoration: none; color: var(--text);
  font-size: 14px; letter-spacing: 0.3em; text-transform: uppercase;
  font-weight: 500; padding: 14px 0;
  border-bottom: 1px solid var(--text); transition: all .3s;
}
.btn-arrow:hover { gap: 22px; color: var(--gold); border-color: var(--gold); }
.btn-arrow svg { transition: transform .3s; }
.btn-arrow:hover svg { transform: translateX(4px); }

/* ===== NEWS / EVENTI HOME ===== */
.news-section { background: var(--bg-alt); }
.news-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 0; }
.news-item {
  padding: 0 36px; border-right: 1px solid var(--rule);
  cursor: pointer; transition: background .4s;
}
.news-item:last-child { border-right: none; padding-right: 0; }
.news-item:first-child { padding-left: 0; }
.news-item:hover { background: rgba(212,168,87,0.04); }
.news-date { display: flex; align-items: baseline; gap: 10px; margin-bottom: 28px; }
.news-date .d {
  font-family: 'Playfair Display', serif; font-weight: 600; font-size: 72px;
  color: var(--gold); line-height: 1;
}
.news-date .my {
  display: flex; flex-direction: column;
  font-size: 12px; letter-spacing: 0.28em; text-transform: uppercase;
  color: var(--text-soft);
}
.news-date .my span:first-child { font-weight: 600; color: var(--text); }
.news-item .tag {
  display: inline-block; font-size: 12px; letter-spacing: 0.3em;
  text-transform: uppercase; color: var(--gold-bright);
  margin-bottom: 14px; font-weight: 500;
}
.news-item h3 {
  font-family: 'Playfair Display', serif; font-size: 30px; font-weight: 600;
  line-height: 1.2; margin-bottom: 16px; color: var(--text);
}
.news-item p { font-size: 19px; color: var(--text-soft); font-style: italic; line-height: 1.5; font-weight: 500; }
.news-item .location {
  margin-top: 20px; font-size: 13px; letter-spacing: 0.18em;
  text-transform: uppercase; color: var(--muted);
}

/* ===== DISCOGRAFIA HOME ===== */
.disc-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 32px; }
.disc-card {
  border: 1px solid var(--rule);
  padding: 36px 28px; background: rgba(212,168,87,0.03);
  transition: all .4s; cursor: pointer; position: relative; overflow: hidden;
  text-decoration: none; color: inherit; display: block;
}
.disc-card:hover {
  transform: translateY(-6px);
  border-color: var(--gold); background: rgba(212,168,87,0.07);
}
.disc-card .opus {
  font-family: 'Playfair Display', serif; font-size: 16px;
  letter-spacing: 0.18em; color: var(--gold); margin-bottom: 18px;
}
.disc-card h3 {
  font-family: 'Playfair Display', serif; font-size: 36px;
  font-weight: 600; margin-bottom: 8px; line-height: 1.1; color: var(--text);
}
.disc-card .count { font-style: italic; color: var(--text-soft); margin-bottom: 28px; font-size: 18px; font-weight: 500; }
.disc-card ul { list-style: none; border-top: 1px solid var(--rule); padding-top: 20px; }
.disc-card ul li {
  padding: 12px 0; border-bottom: 1px solid rgba(212,168,87,0.12);
  font-size: 18px; display: flex; justify-content: space-between;
  align-items: center; gap: 12px; color: var(--text); line-height: 1.3;
}
.disc-card ul li:last-child { border-bottom: none; }
.disc-card ul li .title { flex: 1; }
.disc-card ul li .links { display: flex; gap: 8px; flex-shrink: 0; }
.disc-card ul li .links a {
  width: 26px; height: 26px; display: grid; place-items: center;
  color: var(--text-soft); text-decoration: none; transition: color .3s;
}
.disc-card ul li .links a:hover { color: var(--gold-bright); }
.disc-card ul li .links svg { width: 18px; height: 18px; }
.disc-card .more {
  margin-top: 24px; font-size: 12px;
  letter-spacing: 0.28em; text-transform: uppercase; color: var(--gold);
}

/* ===== SPARTITI HOME ===== */
.spartiti-section { background: var(--bg-deeper); position: relative; overflow: hidden; }
.spartiti-content { display: grid; grid-template-columns: 1fr 1.4fr; gap: 80px; align-items: center; }
.spartiti-content .lead p {
  font-size: 28px; line-height: 1.5; font-style: italic;
  font-weight: 500; color: var(--text); margin-bottom: 32px;
}
.spartiti-preview { display: grid; grid-template-columns: repeat(2, 1fr); gap: 20px; }
.score-card {
  background: rgba(212,168,87,0.05); border: 1px solid var(--rule);
  padding: 30px; transition: all .3s;
}
.score-card:hover { background: rgba(212,168,87,0.1); border-color: var(--gold); }
.score-card .cat {
  font-size: 12px; letter-spacing: 0.3em; text-transform: uppercase;
  color: var(--gold-bright); margin-bottom: 14px;
}
.score-card h4 {
  font-family: 'Playfair Display', serif; font-size: 28px; font-weight: 600;
  margin-bottom: 8px; line-height: 1.2; color: var(--text);
}
.score-card .inst { font-style: italic; color: var(--text-soft); font-size: 18px; margin-bottom: 18px; font-weight: 500; }
.score-card .price-row {
  display: flex; justify-content: space-between; align-items: center;
  padding-top: 16px; border-top: 1px solid var(--rule);
}
.score-card .price { font-family: 'Playfair Display', serif; font-weight: 600; font-size: 32px; color: var(--gold-bright); }
.score-card .buy {
  font-size: 11px; letter-spacing: 0.3em; text-transform: uppercase;
  color: var(--text); text-decoration: none; padding: 10px 16px;
  border: 1px solid var(--gold); transition: all .3s;
}
.score-card .buy:hover { background: var(--gold); color: var(--bg); }
.spartiti-section .deco-staff { position: absolute; top: 60px; right: -100px; width: 500px; height: 80px; opacity: 0.2; }
.spartiti-section .deco-staff line { stroke: var(--gold); stroke-width: 0.8; }

/* ===== CONTENT WRAPPERS ===== */
.container { max-width: 1240px; margin: 0 auto; }
.container-narrow { max-width: 880px; margin: 0 auto; }

/* ===== BIOGRAFIA PAGE ===== */
.bio-full {
  font-size: 22px; line-height: 1.75; color: var(--text);
}
.bio-full p { margin-bottom: 24px; }
.bio-full p:first-child::first-letter {
  font-family: 'Playfair Display', serif; font-size: 96px;
  float: left; line-height: 0.85; padding: 4px 14px 0 0;
  color: var(--gold); font-weight: 600;
}
.bio-full h3 {
  font-family: 'Playfair Display', serif;
  font-size: 38px; font-weight: 600;
  color: var(--text);
  margin: 60px 0 24px;
  letter-spacing: -0.005em;
}
.bio-full h3 em {
  font-family: 'Cormorant Garamond', serif; font-weight: 500;
  font-style: italic; color: var(--gold); font-size: 0.8em;
}

/* Quick facts row */
.facts-strip {
  display: grid; grid-template-columns: repeat(4, 1fr);
  gap: 0; margin: 60px 0;
  border-top: 1px solid var(--rule);
  border-bottom: 1px solid var(--rule);
}
.facts-strip .fact {
  padding: 32px 24px;
  border-right: 1px solid var(--rule);
}
.facts-strip .fact:last-child { border-right: none; }
.facts-strip .fact .label { display: block; margin-bottom: 8px; }
.facts-strip .fact .val {
  font-family: 'Playfair Display', serif; font-weight: 600;
  font-size: 24px; color: var(--gold-bright); line-height: 1.3;
}
.facts-strip .fact .sub {
  font-style: italic; color: var(--text-soft);
  font-size: 17px; margin-top: 6px;
  font-weight: 500;
}

/* Career timeline */
.timeline { margin-top: 40px; }
.timeline .year-block {
  display: grid; grid-template-columns: 140px 1fr;
  gap: 40px; padding: 28px 0;
  border-bottom: 1px solid rgba(212,168,87,0.15);
}
.timeline .year-block:last-child { border-bottom: none; }
.timeline .year {
  font-family: 'Playfair Display', serif;
  font-size: 32px; font-weight: 600;
  color: var(--gold);
}
.timeline .event h4 {
  font-family: 'Playfair Display', serif;
  font-size: 22px; font-weight: 600;
  color: var(--text); margin-bottom: 6px;
}
.timeline .event p {
  color: var(--text-soft); font-style: italic;
  font-weight: 500; line-height: 1.55;
}

/* ===== OPERE PAGE ===== */
.catalog-nav {
  display: flex; justify-content: center; gap: 0;
  flex-wrap: wrap;
  border-top: 1px solid var(--rule);
  border-bottom: 1px solid var(--rule);
  margin-bottom: 80px;
}
.catalog-nav a {
  text-decoration: none; color: var(--text-soft);
  padding: 20px 32px;
  font-size: 13px; letter-spacing: 0.3em; text-transform: uppercase;
  font-weight: 500;
  border-right: 1px solid var(--rule);
  transition: all .3s;
  position: relative;
}
.catalog-nav a:last-child { border-right: none; }
.catalog-nav a:hover, .catalog-nav a.active { color: var(--gold); background: rgba(212,168,87,0.04); }

.catalog-group { margin-bottom: 100px; scroll-margin-top: 120px; }
.catalog-group .group-header {
  display: flex; align-items: baseline; gap: 24px;
  margin-bottom: 50px;
  padding-bottom: 24px;
  border-bottom: 1px solid var(--rule);
}
.catalog-group .group-header .num {
  font-family: 'Playfair Display', serif;
  font-size: 20px; color: var(--gold); letter-spacing: 0.1em;
}
.catalog-group .group-header h2 {
  font-family: 'Playfair Display', serif;
  font-size: clamp(36px, 4.5vw, 56px);
  font-weight: 600; flex: 1;
  color: var(--text);
}
.catalog-group .group-header .count {
  font-style: italic; color: var(--text-soft);
  font-size: 18px; font-weight: 500;
}

.work-list {
  display: grid; gap: 0;
}
.work-row {
  display: grid;
  grid-template-columns: 80px 1fr auto;
  gap: 32px; align-items: baseline;
  padding: 24px 0;
  border-bottom: 1px solid rgba(212,168,87,0.15);
  transition: background .3s;
}
.work-row:hover { background: rgba(212,168,87,0.03); }
.work-row .year {
  font-family: 'Playfair Display', serif;
  font-weight: 600; font-size: 22px;
  color: var(--gold);
}
.work-row .work-info h4 {
  font-family: 'Playfair Display', serif;
  font-size: 24px; font-weight: 600;
  color: var(--text);
  margin-bottom: 6px;
  line-height: 1.25;
}
.work-row .work-info p {
  font-style: italic; color: var(--text-soft);
  font-size: 18px; font-weight: 500; line-height: 1.4;
}
.work-row .work-links {
  display: flex; gap: 10px; align-items: center;
}
.work-row .work-links a {
  width: 30px; height: 30px;
  display: grid; place-items: center;
  color: var(--text-soft); text-decoration: none;
  transition: color .3s;
}
.work-row .work-links a:hover { color: var(--gold-bright); }
.work-row .work-links svg { width: 20px; height: 20px; }
.work-row .work-links .editor {
  font-size: 12px; letter-spacing: 0.2em;
  text-transform: uppercase; color: var(--gold);
  margin-left: 12px; font-weight: 500;
}

/* ===== SPARTITI PAGE ===== */
.scores-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 32px;
}
.score-card-full {
  background: rgba(212,168,87,0.04);
  border: 1px solid var(--rule);
  padding: 36px; transition: all .3s;
  display: flex; flex-direction: column;
}
.score-card-full:hover {
  background: rgba(212,168,87,0.08);
  border-color: var(--gold);
  transform: translateY(-4px);
}
.score-card-full .cat {
  font-size: 11px; letter-spacing: 0.3em; text-transform: uppercase;
  color: var(--gold-bright); margin-bottom: 16px; font-weight: 500;
}
.score-card-full h4 {
  font-family: 'Playfair Display', serif;
  font-size: 26px; font-weight: 600;
  line-height: 1.2; color: var(--text);
  margin-bottom: 10px;
}
.score-card-full .inst {
  font-style: italic; color: var(--text-soft);
  font-size: 17px; margin-bottom: 18px;
  font-weight: 500; line-height: 1.5;
}
.score-card-full .details {
  font-size: 15px; color: var(--muted);
  margin-bottom: 24px; font-weight: 500;
  line-height: 1.5;
}
.score-card-full .price-row {
  margin-top: auto; padding-top: 20px;
  border-top: 1px solid var(--rule);
  display: flex; justify-content: space-between; align-items: center;
}
.score-card-full .price {
  font-family: 'Playfair Display', serif;
  font-weight: 600; font-size: 30px;
  color: var(--gold-bright);
}
.score-card-full .buy {
  font-size: 11px; letter-spacing: 0.3em; text-transform: uppercase;
  color: var(--text); text-decoration: none; padding: 10px 18px;
  border: 1px solid var(--gold); transition: all .3s;
  font-weight: 500;
}
.score-card-full .buy:hover { background: var(--gold); color: var(--bg); }

.info-block {
  background: rgba(212,168,87,0.04);
  border-left: 3px solid var(--gold);
  padding: 32px 40px; margin: 80px 0 60px;
}
.info-block h3 {
  font-family: 'Playfair Display', serif;
  font-size: 26px; font-weight: 600;
  margin-bottom: 14px; color: var(--text);
}
.info-block p {
  font-style: italic; color: var(--text-soft);
  font-size: 18px; line-height: 1.6; font-weight: 500;
}

/* ===== EVENTI PAGE ===== */
.event-list { display: flex; flex-direction: column; gap: 0; }
.event-row {
  display: grid; grid-template-columns: 180px 1fr 240px;
  gap: 48px; padding: 36px 0;
  border-bottom: 1px solid var(--rule);
  align-items: center;
}
.event-row .date-block {
  text-align: left;
}
.event-row .date-block .day {
  font-family: 'Playfair Display', serif;
  font-size: 64px; font-weight: 600;
  color: var(--gold); line-height: 1;
}
.event-row .date-block .month-year {
  font-size: 13px; letter-spacing: 0.25em;
  text-transform: uppercase; color: var(--text-soft);
  margin-top: 8px; font-weight: 500;
}
.event-row .info .tag {
  display: inline-block; font-size: 11px;
  letter-spacing: 0.3em; text-transform: uppercase;
  color: var(--gold-bright); margin-bottom: 10px;
  font-weight: 500;
}
.event-row .info h3 {
  font-family: 'Playfair Display', serif;
  font-size: 28px; font-weight: 600;
  color: var(--text); margin-bottom: 8px; line-height: 1.2;
}
.event-row .info p {
  font-style: italic; color: var(--text-soft);
  font-size: 18px; font-weight: 500; line-height: 1.5;
}
.event-row .venue {
  text-align: right; font-style: italic;
  color: var(--text-soft); font-size: 17px;
  font-weight: 500; line-height: 1.4;
}
.event-row .venue strong {
  display: block; font-weight: 600; color: var(--text);
  font-style: normal; font-size: 19px; margin-bottom: 4px;
}

.empty-state {
  text-align: center; padding: 80px 40px;
  border: 1px dashed var(--rule);
  background: rgba(212,168,87,0.02);
}
.empty-state .ornament {
  color: var(--gold); font-size: 36px; margin-bottom: 20px;
}
.empty-state h3 {
  font-family: 'Playfair Display', serif;
  font-size: 32px; font-weight: 600;
  color: var(--text); margin-bottom: 14px;
}
.empty-state p {
  font-style: italic; color: var(--text-soft);
  font-size: 19px; font-weight: 500; max-width: 540px;
  margin: 0 auto; line-height: 1.5;
}

/* ===== CONTATTI PAGE ===== */
.contact-grid {
  display: grid; grid-template-columns: 1fr 1.2fr;
  gap: 80px; align-items: start;
}
.contact-info h3 {
  font-family: 'Playfair Display', serif;
  font-size: 32px; font-weight: 600;
  color: var(--text); margin-bottom: 24px;
}
.contact-info p {
  color: var(--text);
  font-size: 20px; line-height: 1.6;
  margin-bottom: 32px;
}
.contact-detail {
  padding: 24px 0;
  border-bottom: 1px solid var(--rule);
}
.contact-detail:last-child { border-bottom: none; }
.contact-detail .label { display: block; margin-bottom: 8px; }
.contact-detail .val {
  font-size: 22px; color: var(--text);
}
.contact-detail .val a {
  color: var(--gold-bright); text-decoration: none;
  transition: color .3s;
}
.contact-detail .val a:hover { color: var(--gold); }

.contact-form {
  background: rgba(212,168,87,0.04);
  padding: 48px; border: 1px solid var(--rule);
}
.contact-form .form-row {
  margin-bottom: 24px;
}
.contact-form label {
  display: block; font-size: 12px;
  letter-spacing: 0.25em; text-transform: uppercase;
  color: var(--gold); margin-bottom: 10px;
  font-weight: 500;
}
.contact-form input,
.contact-form textarea {
  width: 100%; background: rgba(20,17,13,0.5);
  border: 1px solid var(--rule);
  color: var(--text);
  font-family: 'Cormorant Garamond', serif;
  font-size: 19px; padding: 14px 16px;
  font-weight: 500;
  transition: border .3s;
}
.contact-form input:focus,
.contact-form textarea:focus {
  outline: none; border-color: var(--gold);
}
.contact-form textarea { resize: vertical; min-height: 140px; font-family: inherit; }
.contact-form button {
  background: transparent; color: var(--text);
  border: 1px solid var(--gold);
  padding: 14px 32px;
  font-size: 12px; letter-spacing: 0.3em; text-transform: uppercase;
  cursor: pointer; transition: all .3s;
  font-weight: 500; font-family: inherit;
}
.contact-form button:hover { background: var(--gold); color: var(--bg); }

/* ===== FOOTER ===== */
footer { padding: 80px 48px 40px; background: var(--bg-alt); border-top: 1px solid var(--rule); }
.foot-grid { display: grid; grid-template-columns: 2fr 1fr 1fr 1fr; gap: 60px; margin-bottom: 60px; }
.foot-brand .mark { font-family: 'Playfair Display', serif; font-weight: 600; font-size: 38px; margin-bottom: 16px; color: var(--text); text-decoration: none; display: inline-block; }
.foot-brand .mark span { color: var(--gold); }
.foot-brand p { font-style: italic; color: var(--text-soft); max-width: 340px; line-height: 1.5; font-weight: 500; font-size: 19px; }
.foot-col h4 {
  font-size: 12px; letter-spacing: 0.3em; text-transform: uppercase;
  color: var(--gold); margin-bottom: 22px; font-weight: 600;
}
.foot-col ul { list-style: none; }
.foot-col ul li { margin-bottom: 12px; }
.foot-col ul a { text-decoration: none; color: var(--text-soft); font-size: 19px; transition: color .3s; }
.foot-col ul a:hover { color: var(--gold-bright); }
.foot-bottom {
  padding-top: 30px; border-top: 1px solid var(--rule);
  display: flex; justify-content: space-between;
  font-size: 15px; color: var(--muted); font-style: italic;
}

@keyframes rise { from { opacity: 0; transform: translateY(24px); } to { opacity: 1; transform: translateY(0); } }
.hero h1 .first { animation: rise 1s .2s both; }
.hero h1 .surname { animation: rise 1.1s .35s both; }
.hero h1 .dates { animation: rise 1.1s .5s both; }
.hero .tagline { animation: rise 1s .8s both; }
.hero .meta-row { animation: rise 1s 1s both; }

/* ===== RESPONSIVE ===== */
@media (max-width: 980px) {
  nav.top { padding: 16px 24px; }
  nav.top ul { display: none; }
  section { padding: 80px 24px; }
  .page-header { padding: 140px 24px 60px; }
  .hero { padding: 120px 24px 60px; grid-template-columns: 1fr; }
  .hero-portrait { aspect-ratio: 4/5; }
  .bio { grid-template-columns: 1fr; gap: 40px; }
  .bio-text { column-count: 1; }
  .news-grid { grid-template-columns: 1fr; }
  .news-item { padding: 28px 0; border-right: none; border-bottom: 1px solid var(--rule); }
  .disc-grid { grid-template-columns: 1fr 1fr; gap: 18px; }
  .spartiti-content { grid-template-columns: 1fr; gap: 50px; }
  .foot-grid { grid-template-columns: 1fr 1fr; gap: 40px; }
  .section-head { flex-direction: column; gap: 12px; align-items: flex-start; }
  .section-head .aside { text-align: left; }
  .facts-strip { grid-template-columns: 1fr 1fr; }
  .facts-strip .fact:nth-child(2) { border-right: none; }
  .facts-strip .fact:nth-child(1), .facts-strip .fact:nth-child(2) { border-bottom: 1px solid var(--rule); }
  .work-row { grid-template-columns: 60px 1fr; gap: 20px; }
  .work-row .work-links { grid-column: 1 / -1; padding-left: 80px; padding-top: 4px; }
  .event-row { grid-template-columns: 1fr; gap: 16px; }
  .event-row .venue { text-align: left; }
  .scores-grid { grid-template-columns: 1fr 1fr; }
  .contact-grid { grid-template-columns: 1fr; }
  .timeline .year-block { grid-template-columns: 1fr; gap: 8px; }
}
@media (max-width: 580px) {
  .disc-grid { grid-template-columns: 1fr; }
  .spartiti-preview { grid-template-columns: 1fr; }
  .foot-grid { grid-template-columns: 1fr; }
  .hero .meta-row { flex-wrap: wrap; gap: 24px; }
  .facts-strip { grid-template-columns: 1fr; }
  .facts-strip .fact { border-right: none; border-bottom: 1px solid var(--rule); }
  .facts-strip .fact:last-child { border-bottom: none; }
  .scores-grid { grid-template-columns: 1fr; }
  .catalog-nav a { padding: 14px 20px; font-size: 11px; }
  .contact-form { padding: 28px; }
}

/* ===== v2: store, discografia, admin ===== */
.container{max-width:1400px;margin:0 auto}.store-layout{display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:60px}.store-toolbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:34px;border-bottom:1px solid var(--rule);padding-bottom:20px}.store-toolbar select{background:var(--bg-alt);border:1px solid var(--rule);color:var(--text);padding:12px 18px;font-family:inherit;font-size:17px}.product-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.product-card,.album-card,.admin-card{border:1px solid var(--rule);background:rgba(255,255,255,.015);padding:24px;transition:.3s}.product-card:hover,.album-card:hover,.admin-card:hover{transform:translateY(-3px);border-color:rgba(212,168,87,.55)}.product-cover,.album-cover{height:210px;background:linear-gradient(145deg,#241d14,#0d0b08);border:1px solid var(--rule);display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;margin-bottom:22px;position:relative;overflow:hidden}.product-cover:before,.album-cover:before{content:"";position:absolute;width:180px;height:180px;border:1px solid var(--rule);border-radius:50%;transform:rotate(25deg)}.product-cover span{font:600 48px 'Playfair Display';color:var(--gold);z-index:1}.product-cover small{letter-spacing:.3em;color:var(--text-soft);z-index:1}.product-card .cat,.album-card .cat{font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:var(--gold)}.product-card h3,.album-card h3,.admin-card h3{font:600 28px 'Playfair Display';margin:9px 0;color:var(--text)}.product-card p,.album-card p,.admin-card p{font-size:18px;color:var(--text-soft);line-height:1.4}.product-bottom{display:flex;justify-content:space-between;align-items:center;margin-top:24px;border-top:1px solid var(--rule);padding-top:16px}.product-bottom strong{font:600 24px 'Playfair Display';color:var(--gold-bright)}.buy,.gold-button{border:1px solid var(--gold);background:transparent;color:var(--text);padding:10px 16px;text-decoration:none;font-family:inherit;font-size:13px;letter-spacing:.16em;text-transform:uppercase;cursor:pointer}.buy:hover,.gold-button:hover{background:var(--gold);color:var(--bg)}.cart-panel{position:sticky;top:110px;height:max-content;border:1px solid var(--rule);padding:26px;background:var(--bg-alt)}.cart-title{display:flex;justify-content:space-between;font:600 27px 'Playfair Display';padding-bottom:18px;border-bottom:1px solid var(--rule)}.cart-title strong{color:var(--gold)}.cart-line{display:flex;justify-content:space-between;gap:10px;padding:15px 0;border-bottom:1px solid var(--rule)}.cart-line strong{display:block;font:600 19px 'Playfair Display'}.cart-line small{color:var(--text-soft)}.cart-line button{background:none;border:0;color:var(--muted);font-size:25px;cursor:pointer}.cart-total{display:flex;justify-content:space-between;padding:20px 0;font-size:18px}.cart-total strong{color:var(--gold-bright);font:600 25px 'Playfair Display'}.cart-panel .gold-button{width:100%}.tiny{font-size:13px;color:var(--muted);font-style:italic;margin-top:13px}.empty{color:var(--muted);font-style:italic;font-size:17px;padding:20px 0}.album-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:22px}.album-card{display:grid;grid-template-columns:190px 1fr;gap:26px}.album-cover{height:190px;margin:0}.album-cover span{position:absolute;top:12px;left:14px;color:var(--gold);font-size:12px;letter-spacing:.2em}.album-cover b{z-index:1;font:600 25px 'Playfair Display';padding:20px}.album-actions{display:flex;gap:20px;margin-top:22px}.album-actions a,.social-links a{color:var(--gold-bright);text-decoration:none;font-size:14px;letter-spacing:.18em;text-transform:uppercase}.social-links{display:flex;gap:30px;margin-top:24px}.admin-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:20px}.admin-card{min-height:230px}.admin-card .gold-button{margin-top:25px}.setup-note{border:1px solid var(--rule);margin-top:35px;padding:30px;background:rgba(212,168,87,.03)}.setup-note h3{font:600 28px 'Playfair Display';margin-bottom:10px;color:var(--gold-bright)}
@media(max-width:1100px){.product-grid{grid-template-columns:repeat(2,1fr)}.store-layout{grid-template-columns:1fr}.cart-panel{position:static}.album-grid{grid-template-columns:1fr}}
@media(max-width:580px){.product-grid,.admin-grid{grid-template-columns:1fr}.album-card{grid-template-columns:1fr}.album-cover{height:230px}.store-toolbar{align-items:flex-start;gap:15px;flex-direction:column}}

/* Forms and narrow-screen administration */
.admin-wrap{max-width:1200px;margin:60px auto;padding:24px}
.admin-wrap label{display:block;margin:16px 0}
.admin-wrap input:not([type=checkbox]):not([type=hidden]),.admin-wrap textarea{box-sizing:border-box;width:100%;background:#0d0b08;color:#f3ead7;border:1px solid #75603c;padding:12px;font:inherit}
.admin-wrap textarea{min-height:140px}.admin-wrap input[type=checkbox]{width:auto}
.admin-wrap button{background:#e8c47a;color:#14110d;border:1px solid #e8c47a;padding:10px 16px;font:inherit;cursor:pointer}
.admin-wrap a{color:#e8c47a}.admin-wrap .btn{display:inline-block;padding:10px 16px;border:1px solid #b99856}
.admin-wrap .admin-nav{display:flex;gap:12px;flex-wrap:wrap}.admin-wrap h1{font-size:clamp(30px,5vw,46px)}

/* Content editor and uncropped portrait. */
.site-portrait{display:block;width:100%;height:100%;object-fit:contain;position:absolute;inset:0}
.hero-portrait:has(.site-portrait)::before{display:none}
.hero-portrait .pp-label{background:rgba(10,8,5,.78);padding:10px;gap:12px;flex-wrap:wrap}
.editor-portrait{display:block;max-width:300px;width:100%;max-height:400px;object-fit:contain}
.admin-wrap input,.admin-wrap textarea{box-sizing:border-box;max-width:100%}
.admin-wrap input[type=checkbox]{width:auto}
.admin-wrap .notice{padding:16px;border:1px solid var(--gold)}
.admin-wrap .admin-nav{display:flex;gap:10px;flex-wrap:wrap;margin:20px 0}
.admin-wrap .btn{display:inline-block;padding:10px 16px;border:1px solid var(--gold);cursor:pointer}
.admin-wrap a[aria-current=page]{text-decoration:underline;font-weight:bold}
@media(max-width:580px){.admin-wrap{margin:25px auto!important;padding:18px!important}.admin-wrap h1{font-size:32px!important}.hero .meta-row{gap:20px;flex-wrap:wrap}}

.editor-actions{position:sticky;top:0;z-index:10;background:#14110d;border-bottom:1px solid var(--rule);padding:8px 0;display:flex;align-items:center;gap:20px;flex-wrap:wrap}

/* Keep the main content visible immediately, including reduced-motion and background tabs. */
.hero{overflow:hidden}.hero>*{min-width:0}
.hero h1 .first,.hero h1 .surname,.hero h1 .dates,.hero .tagline,.hero .meta-row{animation:none}
.mobile-menu{display:none}
@media(max-width:980px){.mobile-menu{display:block;padding:12px 24px;border-bottom:1px solid var(--rule)}.mobile-menu summary{cursor:pointer;color:var(--gold)}.mobile-menu ul{list-style:none;display:flex;flex-wrap:wrap;gap:12px 24px;padding-top:12px}.mobile-menu a{color:var(--text);text-decoration:none}.hero{padding-top:60px}}

nav.top{position:relative}

.admin-wrap select{box-sizing:border-box;width:100%;max-width:100%;background:#0d0b08;color:var(--text);border:1px solid var(--rule);padding:12px;font:inherit}.legal-links{display:flex;gap:16px}.legal-links a{color:var(--text-soft)}

/* Palette condivisa: nessun blu o viola predefinito per i collegamenti. */
a:link,a:visited{color:var(--gold-bright);text-decoration-color:currentColor;text-underline-offset:.18em}
a:hover,a:active{color:#ffe0a3}
a:focus-visible,button:focus-visible,summary:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #ffe0a3;outline-offset:4px}
a.btn:link,a.btn:visited{color:var(--gold-bright);border-color:var(--gold);text-decoration:none}
a.btn:hover,a.btn:active,.admin-wrap a.btn:hover,.admin-wrap a.btn:active{background:var(--gold-bright);color:#14110d}
.admin-wrap a:not(.btn):hover,.admin-wrap a:not(.btn):active{color:#ffe0a3}
.admin-wrap button:hover,.admin-wrap button:active{background:#ffe0a3;color:#14110d;border-color:#ffe0a3}
nav.top a:visited,.foot-col a:visited{color:var(--text-soft)}
nav.top .mark:visited{color:var(--text)}
nav.top a.admin-btn:link,nav.top a.admin-btn:visited{color:var(--gold)}
nav.top a.admin-btn:hover{color:#14110d}
.legal-links a:link,.legal-links a:visited{color:var(--gold-bright)}
.account-card{border:1px solid var(--rule);padding:22px;margin:20px 0;overflow-wrap:anywhere}
.account-card summary{cursor:pointer;color:var(--gold-bright);padding:10px 0}
.account-card h3{font-size:26px}.account-card h4{font-size:22px}

/* Catalogo unico: filtri accessibili anche senza JavaScript. */
.catalog-filters{display:flex;align-items:flex-end;gap:18px;flex-wrap:wrap;margin:30px 0;padding:24px;border:1px solid var(--rule)}
.catalog-filters label{display:flex;flex:1 1 220px;min-width:0;flex-direction:column;gap:8px;color:var(--gold-bright)}
.catalog-filters select{width:100%;min-width:0;background:#14110d;color:var(--text);border:1px solid var(--gold);padding:12px;font:inherit}
.catalog-filters button{background:var(--gold-bright);color:#14110d;font:inherit;cursor:pointer}
.catalog-filters button:hover{background:#ffe0a3;color:#14110d}
.work-actions{display:flex;gap:14px;flex-wrap:wrap;margin:28px 0}.work-cover{max-width:320px;width:100%;height:auto;margin:20px 0}
.card{overflow-wrap:anywhere}.section-head h1{font-size:clamp(30px,5vw,54px);line-height:1.2}
@media(max-width:600px){.catalog-filters{padding:16px}.catalog-filters label{flex-basis:100%}}

.section-head h2 a:link,.section-head h2 a:visited{color:inherit;text-decoration:none}.section-head h2 a:hover{color:var(--gold-bright);text-decoration:underline}
.carousel-controls{display:flex;gap:12px;align-items:center;justify-content:flex-end;margin:0 0 18px}.carousel-controls span{margin-right:auto;color:var(--text-soft)}
.carousel-controls button{background:var(--gold-bright);color:#14110d;border:1px solid var(--gold);font:inherit;font-size:24px;min-width:48px;min-height:48px;cursor:pointer}.carousel-controls button:disabled{opacity:.35;cursor:default}
.home-carousel{display:flex;gap:24px;overflow-x:auto;scroll-snap-type:x mandatory;padding:4px 2px 22px;scrollbar-color:var(--gold) #14110d;align-items:stretch}
.home-carousel>.news-item,.home-carousel>.disc-card{flex:0 0 calc((100% - 48px)/3);min-width:260px;scroll-snap-align:start;box-sizing:border-box;overflow-wrap:anywhere}
.home-carousel .news-item{padding:24px;border:1px solid var(--rule)}.home-carousel .disc-card{display:block}.listen-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}.score-list{list-style:none;padding:0;display:grid;gap:12px;margin:20px 0}.scores-title{margin-top:40px}.score-list a{overflow-wrap:anywhere}
@media(max-width:700px){.home-carousel>.news-item,.home-carousel>.disc-card{flex-basis:85%;min-width:0}.listen-grid{grid-template-columns:1fr}}
