/* =================================================================
   /imprensa · Os Músicos - 2026
   Página standalone, sem dependências externas além do Google Fonts.
   Pode ser embebida em WordPress, página estática ou subdomínio.
   ================================================================= */

@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&family=Playfair+Display:wght@600;700&display=swap');

:root {
  --gold: #f5b800;
  --gold-soft: #fcc700;
  --navy: #363451;
  --otr-gold: #b89a6a;
  --purple: #7c3aed;
  --purple-soft: #b96bff;
  --green: #2d8a5b;
  --ink: #1a1a1a;
  --ink-soft: #555;
  --line: #e5e5e5;
  --bg: #faf8f3;
  --bg-deep: #f5f1e6;
  --white: #ffffff;
  --container: 1200px;
  --container-narrow: 820px;
}

* { box-sizing: border-box; }

html { scroll-behavior: smooth; }

body {
  margin: 0;
  font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  font-size: 17px;
  line-height: 1.6;
  color: var(--ink);
  background: var(--white);
  -webkit-font-smoothing: antialiased;
}

a { color: var(--ink); text-decoration: underline; text-underline-offset: 3px; transition: color .15s; }
a:hover { color: var(--gold); }
a:focus-visible { outline: 3px solid var(--gold); outline-offset: 2px; border-radius: 2px; }

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

.container {
  max-width: var(--container);
  margin: 0 auto;
  padding: 0 24px;
}
.container.narrow { max-width: var(--container-narrow); }

/* =========== TOPBAR =========== */
.topbar {
  position: sticky;
  top: 0;
  background: rgba(255,255,255,0.96);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  border-bottom: 1px solid var(--line);
  display: flex;
  align-items: center;
  padding: 14px 24px;
  z-index: 100;
}
.topbar .brand { display: inline-flex; align-items: center; gap: 18px; text-decoration: none; }
.topbar .brand img { height: 42px; width: auto; }
.topbar .brand .brand-divider {
  display: inline-block;
  width: 1px;
  height: 32px;
  background: var(--line);
}
.topbar .brand .brand-otr { height: 42px; }
@media (max-width: 600px) {
  .topbar .brand .brand-divider,
  .topbar .brand .brand-otr { display: none; }
}
.topbar .topnav {
  list-style: none;
  display: flex;
  gap: 28px;
  margin: 0 0 0 auto;
  padding: 0;
}
.topbar .topnav a {
  text-decoration: none;
  font-weight: 500;
  font-size: 15px;
  color: var(--ink);
  padding: 6px 0;
  border-bottom: 2px solid transparent;
}
.topbar .topnav a:hover { border-bottom-color: var(--gold); color: var(--ink); }
.topbar .topnav a.active { border-bottom-color: var(--gold); color: var(--ink); font-weight: 600; }

/* =========== HERO =========== */
.hero {
  background:
    radial-gradient(circle at 15% 50%, rgba(245,184,0,0.08), transparent 50%),
    radial-gradient(circle at 85% 30%, rgba(245,184,0,0.05), transparent 60%),
    var(--bg);
  padding: 90px 0 80px;
  border-bottom: 1px solid var(--line);
}
.hero-inner {
  max-width: 880px;
  margin: 0 auto;
  padding: 0 24px;
  text-align: center;
}
.kicker {
  font-family: 'Inter', sans-serif;
  font-size: 13px;
  font-weight: 600;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: var(--ink-soft);
  margin: 0 0 18px;
}
.kicker-yellow { color: #8a6a00; }
.kicker-gold { color: var(--otr-gold); }
.kicker-purple { color: var(--purple); }
.kicker-green { color: var(--green); }

.hero h1 {
  font-family: 'Playfair Display', Georgia, serif;
  font-size: clamp(48px, 8vw, 88px);
  font-weight: 700;
  line-height: 1;
  margin: 0 0 24px;
  letter-spacing: -1px;
}
.hero .lead {
  font-size: 19px;
  line-height: 1.55;
  color: var(--ink-soft);
  max-width: 640px;
  margin: 0 auto 36px;
}
.hero-cta { display: flex; gap: 14px; justify-content: center; flex-wrap: wrap; }

.btn-primary {
  display: inline-flex;
  align-items: center;
  padding: 14px 28px;
  background: var(--ink);
  color: var(--white) !important;
  text-decoration: none;
  font-weight: 600;
  font-size: 15px;
  border-radius: 999px;
  transition: transform .15s, background .15s;
}
.btn-primary:hover { background: var(--gold); color: var(--ink) !important; transform: translateY(-1px); }

.btn-ghost {
  display: inline-flex;
  align-items: center;
  padding: 14px 28px;
  background: transparent;
  color: var(--ink) !important;
  text-decoration: none;
  font-weight: 600;
  font-size: 15px;
  border: 2px solid var(--ink);
  border-radius: 999px;
  transition: background .15s;
}
.btn-ghost:hover { background: var(--ink); color: var(--white) !important; }

/* =========== FEATURED (Gala) =========== */
.featured {
  padding: 80px 0;
  background: var(--white);
}
.featured-grid {
  display: grid;
  grid-template-columns: 1.1fr 1fr;
  gap: 56px;
  align-items: center;
  margin-top: 16px;
}
.featured-text h2 {
  font-family: 'Playfair Display', Georgia, serif;
  font-size: 38px;
  line-height: 1.15;
  margin: 0 0 18px;
  font-weight: 700;
}
.featured-text h2 .muted {
  display: block;
  font-size: 18px;
  color: var(--ink-soft);
  font-style: italic;
  font-weight: 400;
  margin-top: 6px;
}
.featured-text p {
  font-size: 17px;
  color: var(--ink);
  margin: 0 0 14px;
}
.featured-image img {
  width: 100%;
  border-radius: 8px;
  box-shadow: 0 30px 60px -25px rgba(0,0,0,0.25);
  aspect-ratio: 4/5;
  object-fit: cover;
  background: var(--bg-deep);
}
.featured-image .caption {
  margin-top: 12px;
  font-size: 13px;
  color: var(--ink-soft);
  text-align: center;
}

/* =========== DOWNLOADS =========== */
.downloads {
  display: flex;
  flex-direction: column;
  gap: 10px;
  margin-top: 28px;
}
.downloads-row {
  flex-direction: row;
  flex-wrap: wrap;
}
.dl {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 14px 18px;
  background: var(--bg);
  border: 1px solid var(--line);
  border-radius: 10px;
  text-decoration: none;
  color: var(--ink);
  transition: background .15s, border-color .15s, transform .12s;
}
.dl:hover {
  background: var(--white);
  border-color: var(--gold);
  transform: translateY(-1px);
  color: var(--ink);
}
/* =========== ÍCONES DE DOWNLOAD (line icons, herdam a cor via currentColor) ===========
   Set próprio, traço 1.75px em grelha 24x24, cantos arredondados. Sem símbolos de marca.
   Cada <span class="dl-ico" data-ico="X"> recebe a máscara; a cor vem do texto do .dl. */
.dl-ico {
  display: inline-block;
  width: 24px;
  height: 24px;
  font-size: 24px;
  line-height: 1;
  flex-shrink: 0;
}
@supports ((-webkit-mask-image: url("")) or (mask-image: url(""))) {
  .dl-ico[data-ico] {
    background-color: currentColor;
    -webkit-mask-repeat: no-repeat; mask-repeat: no-repeat;
    -webkit-mask-position: center; mask-position: center;
    -webkit-mask-size: 24px 24px; mask-size: 24px 24px;
  }
}
.dl-ico[data-ico="doc"] { -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M14 3H7a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2V8z'/%3E%3Cpath d='M14 3v5h5'/%3E%3Cpath d='M9 13h6M9 17h4'/%3E%3C/svg%3E"); mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M14 3H7a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2V8z'/%3E%3Cpath d='M14 3v5h5'/%3E%3Cpath d='M9 13h6M9 17h4'/%3E%3C/svg%3E"); }
.dl-ico[data-ico="person"] { -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='8' r='4'/%3E%3Cpath d='M4.5 20.5a7.5 7.5 0 0 1 15 0'/%3E%3C/svg%3E"); mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='8' r='4'/%3E%3Cpath d='M4.5 20.5a7.5 7.5 0 0 1 15 0'/%3E%3C/svg%3E"); }
.dl-ico[data-ico="chart"] { -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 20h16'/%3E%3Cpath d='M7 16v-4M12 16V6M17 16V9'/%3E%3C/svg%3E"); mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 20h16'/%3E%3Cpath d='M7 16v-4M12 16V6M17 16V9'/%3E%3C/svg%3E"); }
.dl-ico[data-ico="logo"] { -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='9' cy='9' r='5.5'/%3E%3Crect x='11.5' y='11.5' width='9' height='9' rx='1.5'/%3E%3C/svg%3E"); mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='9' cy='9' r='5.5'/%3E%3Crect x='11.5' y='11.5' width='9' height='9' rx='1.5'/%3E%3C/svg%3E"); }
.dl-ico[data-ico="photo"] { -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 7.5h3L8.8 5h6.4L17 7.5h3a1 1 0 0 1 1 1V19a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V8.5a1 1 0 0 1 1-1z'/%3E%3Ccircle cx='12' cy='13.5' r='3.5'/%3E%3C/svg%3E"); mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 7.5h3L8.8 5h6.4L17 7.5h3a1 1 0 0 1 1 1V19a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V8.5a1 1 0 0 1 1-1z'/%3E%3Ccircle cx='12' cy='13.5' r='3.5'/%3E%3C/svg%3E"); }
.dl-ico[data-ico="zip"] { -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='4' width='18' height='5' rx='1'/%3E%3Cpath d='M5 9v10a1 1 0 0 0 1 1h12a1 1 0 0 0 1-1V9'/%3E%3Cpath d='M10 13h4'/%3E%3C/svg%3E"); mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='4' width='18' height='5' rx='1'/%3E%3Cpath d='M5 9v10a1 1 0 0 0 1 1h12a1 1 0 0 0 1-1V9'/%3E%3Cpath d='M10 13h4'/%3E%3C/svg%3E"); }
.dl-ico[data-ico="text"] { -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 6h16M4 10h16M4 14h16M4 18h10'/%3E%3C/svg%3E"); mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 6h16M4 10h16M4 14h16M4 18h10'/%3E%3C/svg%3E"); }
.dl-ico[data-ico="image"] { -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='4' width='18' height='16' rx='2'/%3E%3Ccircle cx='8.5' cy='9.5' r='1.5'/%3E%3Cpath d='M21 15.5l-5-5L6.5 20'/%3E%3C/svg%3E"); mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='4' width='18' height='16' rx='2'/%3E%3Ccircle cx='8.5' cy='9.5' r='1.5'/%3E%3Cpath d='M21 15.5l-5-5L6.5 20'/%3E%3C/svg%3E"); }
.dl-ico[data-ico="link"] { -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M14 4h6v6'/%3E%3Cpath d='M20 4l-9 9'/%3E%3Cpath d='M18 14v5a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1V7a1 1 0 0 1 1-1h5'/%3E%3C/svg%3E"); mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M14 4h6v6'/%3E%3Cpath d='M20 4l-9 9'/%3E%3Cpath d='M18 14v5a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1V7a1 1 0 0 1 1-1h5'/%3E%3C/svg%3E"); }

.dl-info {
  display: flex;
  flex-direction: column;
  line-height: 1.3;
}
.dl-info strong {
  font-weight: 600;
  font-size: 15px;
  margin-bottom: 2px;
}
.dl-info span {
  font-size: 13px;
  color: var(--ink-soft);
}
.dl-big {
  flex: 1 1 320px;
}

/* =========== INTRO PROJETOS =========== */
.projects-intro {
  padding: 80px 0 30px;
  background: var(--bg);
  text-align: center;
}
.projects-intro h2 {
  font-family: 'Playfair Display', Georgia, serif;
  font-size: 36px;
  margin: 0 0 18px;
}
.projects-intro p {
  font-size: 17px;
  color: var(--ink-soft);
  line-height: 1.6;
}

/* =========== PROJECT SECTION (genérica) =========== */
.project {
  padding: 70px 0;
  background: var(--bg);
  border-top: 1px solid var(--line);
}
.project:nth-of-type(odd) { background: var(--white); }
.project-grid {
  display: grid;
  grid-template-columns: 1.4fr 1fr;
  gap: 56px;
  align-items: start;
}
.project-text h2 {
  font-family: 'Playfair Display', Georgia, serif;
  font-size: 38px;
  font-weight: 700;
  line-height: 1.1;
  margin: 6px 0 18px;
}
.project-text h2 em {
  font-style: italic;
  font-weight: 600;
}
.project-text .lead-small {
  font-size: 19px;
  color: var(--ink);
  font-weight: 500;
  line-height: 1.45;
  margin: 0 0 16px;
}
.project-text p {
  color: var(--ink-soft);
  margin: 0 0 12px;
}
.project-downloads {
  background: var(--white);
  border: 1px solid var(--line);
  border-radius: 12px;
  padding: 22px;
}
.project:nth-of-type(odd) .project-downloads { background: var(--bg); }
.project-downloads h3 {
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  color: var(--ink-soft);
  margin: 0 0 14px;
}

/* Cores por projecto - applied by .academia, .ontheroad, .festas, .vila */
.academia .project-text h2,
.academia .featured-text h2 { color: var(--ink); }
.academia .project-text h2::before {
  content: "";
  display: inline-block;
  width: 32px; height: 4px;
  background: var(--gold);
  margin-right: 12px; vertical-align: middle;
}

.ontheroad { background: linear-gradient(180deg, var(--white) 0%, #f7f5f0 100%); }
.ontheroad .project-text h2 { color: var(--navy); }
.ontheroad .project-text h2::before {
  content: ""; display: inline-block; width: 32px; height: 4px;
  background: var(--otr-gold); margin-right: 12px; vertical-align: middle;
}

.festas { background: linear-gradient(180deg, #faf5ff 0%, var(--white) 100%); }
.festas .project-text h2 { color: var(--ink); }
.festas .project-text h2::before {
  content: ""; display: inline-block; width: 32px; height: 4px;
  background: var(--purple); margin-right: 12px; vertical-align: middle;
}

.vila { background: linear-gradient(180deg, var(--white) 0%, #f0f7f3 100%); }
.vila .project-text h2 { color: var(--ink); }
.vila .project-text h2::before {
  content: ""; display: inline-block; width: 32px; height: 4px;
  background: var(--green); margin-right: 12px; vertical-align: middle;
}

/* Oficinas d'Os Músicos - linha "Oficinas v1.0" (amarelo / paper / ink).
   Fundo paper explícito; em posição ímpar a alternância (.project:nth-of-type(odd)) continua a mandar. */
.oficinas { background: #faf8f3; }
.oficinas .project-text h2 { color: #1a1a1a; }
.oficinas .project-text h2::before {
  content: ""; display: inline-block; width: 32px; height: 4px;
  background: #f5b800; margin-right: 12px; vertical-align: middle;
}
.oficinas .project-text p { color: #6b6358; }
.oficinas .project-text .lead-small { color: #2c2418; }
.oficinas .project-downloads { border-color: #e6e0d2; }

/* =========== PACK COMPLETO =========== */
.full-pack {
  padding: 90px 0;
  background: var(--ink);
  color: var(--white);
  text-align: center;
}
.full-pack h2 {
  font-family: 'Playfair Display', Georgia, serif;
  font-size: 36px;
  margin: 0 0 16px;
  color: var(--white);
}
.full-pack p { color: rgba(255,255,255,0.7); margin: 0 auto 28px; max-width: 540px; }
.full-pack .dl {
  background: rgba(255,255,255,0.05);
  border-color: rgba(255,255,255,0.15);
  color: var(--white);
}
.full-pack .dl:hover {
  background: var(--gold);
  border-color: var(--gold);
  color: var(--ink);
}
.full-pack .dl-info span { color: rgba(255,255,255,0.6); }
.full-pack .dl:hover .dl-info span { color: var(--ink); }

/* =========== CONTACTO =========== */
.contact {
  padding: 90px 0;
  background: var(--white);
}
.contact h2 {
  font-family: 'Playfair Display', Georgia, serif;
  font-size: 36px;
  margin: 0 0 36px;
  text-align: center;
}
.contact-grid {
  display: grid;
  grid-template-columns: 1fr 1fr 1.2fr;
  gap: 32px;
  max-width: 1100px;
  margin: 0 auto;
  align-items: start;
}
.contact-card {
  background: var(--bg);
  border-radius: 12px;
  padding: 32px;
  text-align: center;
}
.contact-photo {
  width: 150px;
  height: 150px;
  border-radius: 50%;
  object-fit: cover;
  object-position: center 22%;
  margin: 0 auto 16px;
  background: var(--bg-deep);
}
.contact-card .linkedin {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  margin-top: 10px;
  font-size: 13px;
  color: var(--ink-soft);
  text-decoration: none;
  border: 1px solid var(--line);
  border-radius: 999px;
  padding: 4px 12px;
  transition: all 0.15s;
}
.contact-card .linkedin:hover {
  border-color: #0a66c2;
  color: #0a66c2;
  background: rgba(10,102,194,0.05);
}
.contact-card .linkedin::before {
  content: 'in';
  font-weight: 700;
  background: #0a66c2;
  color: #fff;
  width: 18px;
  height: 18px;
  border-radius: 3px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 10px;
  font-style: italic;
}
.contact-card h3 {
  font-family: 'Playfair Display', Georgia, serif;
  font-size: 22px;
  margin: 0 0 4px;
}
.contact-card .role {
  font-size: 13px;
  letter-spacing: 1px;
  text-transform: uppercase;
  color: var(--ink-soft);
  margin: 0 0 16px;
}
.contact-card .ways a {
  font-size: 14px;
  color: var(--ink);
  text-decoration: none;
  line-height: 1.9;
}
.contact-card .ways a:hover { text-decoration: underline; color: var(--gold); }

.contact-text h3 {
  font-family: 'Playfair Display', Georgia, serif;
  font-size: 24px;
  margin: 0 0 14px;
}
.contact-text ul {
  margin: 0 0 18px;
  padding-left: 20px;
}
.contact-text li {
  margin-bottom: 10px;
  color: var(--ink-soft);
}
.contact-text .small {
  font-size: 13px;
  color: var(--ink-soft);
  border-top: 1px solid var(--line);
  padding-top: 16px;
  margin: 0;
}

/* =========== BOILERPLATE =========== */
.boilerplate {
  padding: 70px 0;
  background: var(--bg);
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
}
.boilerplate h2 {
  font-family: 'Playfair Display', Georgia, serif;
  font-size: 30px;
  margin: 0 0 18px;
  text-align: center;
}
.boilerplate p {
  color: var(--ink-soft);
  font-size: 16px;
  line-height: 1.65;
}

/* =========== FOOTER =========== */
.footer-site {
  background: var(--ink);
  color: rgba(255,255,255,0.7);
  padding: 60px 0 30px;
  font-size: 14px;
}
.footer-cols {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 32px;
  margin-bottom: 40px;
}
.footer-cols strong {
  display: block;
  color: var(--white);
  font-weight: 600;
  margin-bottom: 8px;
  font-size: 13px;
  letter-spacing: 1px;
  text-transform: uppercase;
}
.footer-cols p { margin: 0; line-height: 1.7; }
.footer-cols a { color: rgba(255,255,255,0.7); text-decoration: none; }
.footer-cols a:hover { color: var(--gold); }
.copyright {
  text-align: center;
  color: rgba(255,255,255,0.4);
  font-size: 12px;
  border-top: 1px solid rgba(255,255,255,0.1);
  padding-top: 24px;
}

/* =========== UTILS =========== */
.muted { color: var(--ink-soft); }
.small { font-size: 13px; }

/* =========== RESPONSIVE =========== */
@media (max-width: 880px) {
  .topbar { padding: 12px 16px; flex-direction: row; flex-wrap: wrap; }
  .topbar .brand img { height: 32px; }
  .topbar .topnav { gap: 18px; flex-wrap: wrap; justify-content: flex-end; }
  .topbar .topnav a { font-size: 14px; }
  .hero { padding: 60px 0 50px; }
  .hero h1 { font-size: 48px; }
  .featured-grid,
  .project-grid { grid-template-columns: 1fr; gap: 32px; }
  .featured-image img { aspect-ratio: 16/10; }
  .contact-grid { grid-template-columns: 1fr; }
  .footer-cols { grid-template-columns: 1fr 1fr; gap: 24px; }
  .featured-text h2,
  .project-text h2 { font-size: 30px; }
}

@media (max-width: 480px) {
  body { font-size: 16px; }
  .container { padding: 0 16px; }
  .hero { padding: 40px 0 36px; }
  .hero h1 { font-size: 38px; letter-spacing: -0.5px; }
  .hero .lead { font-size: 17px; }
  .featured, .project, .full-pack, .contact, .boilerplate { padding: 50px 0; }
  .footer-cols { grid-template-columns: 1fr; }
}

/* =========== PRINT (caso alguém imprima) =========== */
@media print {
  .topbar, .hero-cta, .downloads, .full-pack, .footer-site { display: none; }
  body { font-size: 12pt; color: #000; }
}

/* =========== Cores adicionais (kickers + secções novas) =========== */
.kicker-orange { color: #b94e1d; }

/* =========== Secções de projeto (novas marcas) =========== */
.vaoaescola { background: linear-gradient(180deg, #f3faf6 0%, var(--white) 100%); }
.vaoaescola .project-text h2 { color: #1f5c3e; }
.vaoaescola .project-text h2::before { content: ''; display: block; width: 60px; height: 4px; background: #2d8a5b; margin-bottom: 18px; }

.corporate { background: linear-gradient(180deg, var(--white) 0%, #faf7f0 100%); }
.corporate .project-text h2 { color: #1a1a2e; }
.corporate .project-text h2::before { content: ''; display: block; width: 60px; height: 4px; background: #c9a86a; margin-bottom: 18px; }

.summer { background: linear-gradient(180deg, #fff7f1 0%, var(--white) 100%); }
.summer .project-text h2 { color: #b94e1d; }
.summer .project-text h2::before { content: ''; display: block; width: 60px; height: 4px; background: #ff7a45; margin-bottom: 18px; }

/* =========== Galeria de formatos =========== */
.gallery { margin-top: 56px; padding-top: 40px; border-top: 1px solid var(--line); }
.gallery h3 { font-family: 'Playfair Display', Georgia, serif; font-size: 24px; margin: 0 0 6px; color: var(--ink); }
.gallery h4 { font-family: 'Playfair Display', Georgia, serif; font-size: 19px; margin: 0 0 4px; color: var(--ink); }
.gallery-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)); gap: 14px; margin-top: 18px; }
.gallery-grid-3 { grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); }
.gallery-item {
  display: block; text-decoration: none; color: inherit;
  background: var(--white); border: 1px solid var(--line); border-radius: 8px;
  overflow: hidden; transition: all 0.2s; cursor: pointer;
}
.gallery-item:hover { border-color: var(--gold, #b89a6a); transform: translateY(-2px); box-shadow: 0 6px 20px rgba(0,0,0,0.08); }
.gallery-item img { display: block; width: 100%; aspect-ratio: 1/1; object-fit: cover; background: #0a0a0a; }
.gallery-label { display: block; padding: 8px 12px; font-size: 12px; color: var(--ink-soft); border-top: 1px solid var(--line); }

/* =========== Marca-strip (faixa das 5 marcas) =========== */
.marca-strip {
  background: #1a1a2e;
  border-bottom: 1px solid rgba(255,255,255,0.1);
  font-size: 13px;
  color: rgba(255,255,255,0.85);
}
.marca-strip-inner {
  display: flex;
  align-items: center;
  gap: 14px;
  padding-top: 10px;
  padding-bottom: 10px;
  flex-wrap: wrap;
}
.ms-label {
  font-size: 11px;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  color: rgba(255,255,255,0.45);
  font-weight: 600;
  margin-right: 4px;
}
.ms-pill {
  text-decoration: none;
  font-size: 13px;
  font-weight: 500;
  padding: 4px 12px;
  border-radius: 999px;
  color: rgba(255,255,255,0.85);
  border: 1px solid rgba(255,255,255,0.18);
  transition: all 0.15s;
  white-space: nowrap;
}
.ms-pill:hover { background: rgba(255,255,255,0.1); color: #fff; border-color: rgba(255,255,255,0.4); }
.ms-academia:hover { border-color: var(--gold); color: var(--gold); }
.ms-otr:hover { border-color: var(--otr-gold); color: var(--otr-gold); }
.ms-school:hover { border-color: #4dca8d; color: #4dca8d; }
.ms-corporate:hover { border-color: #c9a86a; color: #c9a86a; }
.ms-summer:hover { border-color: #ff7a45; color: #ff7a45; }

@media (max-width: 720px) {
  .marca-strip-inner { gap: 8px; padding: 8px 24px; }
  .ms-label { width: 100%; margin-bottom: 4px; }
  .ms-pill { font-size: 12px; padding: 3px 10px; }
}

/* =========== Footer 5 colunas =========== */
.footer-cols-5 {
  grid-template-columns: 1.3fr 1fr 1.2fr 1.2fr 1fr;
}
@media (max-width: 980px) {
  .footer-cols-5 { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 600px) {
  .footer-cols-5 { grid-template-columns: 1fr; }
}

@media (max-width: 880px) {
  .contact-grid { grid-template-columns: 1fr; }
}

/* =========== Lista de contactos institucionais =========== */
.institutional-contacts {
  list-style: none;
  padding-left: 0;
  margin: 0 0 16px;
}
.institutional-contacts li {
  padding: 8px 0;
  border-bottom: 1px solid var(--line);
  font-size: 14px;
  line-height: 1.5;
}
.institutional-contacts li:last-child { border-bottom: none; }
.institutional-contacts li strong {
  display: inline-block;
  min-width: 170px;
  font-size: 12px;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  color: var(--ink);
}
@media (max-width: 600px) {
  .institutional-contacts li strong { display: block; min-width: 0; margin-bottom: 2px; }
}

/* =========== Arquivo / Eventos passados =========== */
.archive {
  padding: 70px 0;
  background: var(--bg);
  border-top: 1px solid var(--line);
}
.archive h2 {
  font-family: 'Playfair Display', Georgia, serif;
  font-size: 28px;
  margin: 4px 0 6px;
}
.archive .kicker { color: var(--ink-soft); margin-bottom: 4px; }
.archive .muted.small { font-size: 14px; color: var(--ink-soft); margin: 0 0 28px; }
.archive-list {
  display: flex;
  flex-direction: column;
  gap: 20px;
}
.archive-item {
  display: grid;
  grid-template-columns: 1.4fr 1fr;
  gap: 28px;
  align-items: start;
  background: var(--white);
  border: 1px solid var(--line);
  border-radius: 12px;
  padding: 24px;
}
.archive-meta strong {
  display: block;
  font-family: 'Playfair Display', Georgia, serif;
  font-size: 20px;
  margin-bottom: 4px;
  color: var(--ink);
}
.archive-meta span {
  display: block;
  font-size: 13px;
  letter-spacing: 0.5px;
  color: var(--ink-soft);
  margin-bottom: 10px;
}
.archive-meta p {
  margin: 0;
  font-size: 15px;
  color: var(--ink-soft);
  line-height: 1.55;
}
.archive-links {
  display: flex;
  flex-direction: column;
  gap: 10px;
}
@media (max-width: 720px) {
  .archive-item { grid-template-columns: 1fr; gap: 16px; padding: 18px; }
}

/* =================================================================
   EM DESTAQUE · dois sub-blocos (Recital de Natal + Oficinas)
   ================================================================= */
:root {
  --natal-pine: #173A2A;      /* verde-pinho, pacote Recital de Natal 2026 v1 */
  --natal-gold: #E9B220;      /* dourado das luzes */
  --of-yellow: #f5b800;       /* linha Oficinas d'Os Músicos v1.0 */
  --of-paper: #faf8f3;
  --of-ink: #1a1a1a;
  --of-warm: #2c2418;
  --of-muted: #6b6358;
  --of-hair: #e6e0d2;
  --of-asalato: #b95c3f;      /* terracotta Asalato (só filetes: 4,2:1 sobre paper, abaixo de AA para texto) */
  --of-falar: #6D2C3C;        /* wine, landing Falar em Público */
}

.featured-block { position: relative; }
.featured-block + .featured-block {
  margin-top: 80px;
  padding-top: 72px;
  border-top: 1px solid var(--line);
}
/* marca curta no filete entre blocos: mesma página, capítulo seguinte */
.featured-block + .featured-block::before {
  content: "";
  position: absolute;
  top: -2px; left: 0;
  width: 56px; height: 3px;
  background: var(--of-yellow);
}

/* ---------- a) Recital de Natal ---------- */
.kicker-natal {
  color: var(--natal-pine);
  display: flex;
  align-items: flex-start;
  gap: 10px;
}
.kicker-natal::before {
  content: "";
  width: 8px; height: 8px;
  border-radius: 50%;
  background: var(--natal-gold);
  box-shadow: 0 0 0 3px rgba(233,178,32,0.22);
  flex-shrink: 0;
  margin-top: 0.5em;
}
.featured-natal .featured-text h2 { color: var(--natal-pine); }
.featured-natal .featured-text h2 .muted { color: var(--ink-soft); }
.featured-natal .dl:hover { border-color: var(--natal-pine); }
.featured-natal .featured-image img {
  background: var(--natal-pine);
  object-fit: contain;
}

/* Galeria de key visuals: formatos mistos vistos inteiros (contain sobre o próprio pinho) */
.featured-natal .gallery-grid {
  grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
}
.featured-natal .gallery-item img {
  aspect-ratio: 4 / 3;
  object-fit: contain;
  padding: 10px;
  background: var(--natal-pine);
}
.featured-natal .gallery-item:hover { border-color: var(--natal-pine); }

/* ---------- b) Oficinas de novembro ---------- */
.featured-oficinas > h2 {
  font-family: 'Playfair Display', Georgia, serif;
  font-size: 38px;
  line-height: 1.15;
  font-weight: 700;
  color: var(--of-ink);
  margin: 0 0 36px;
  max-width: 820px;
}
.featured-oficinas > h2 .muted {
  display: block;
  font-size: 18px;
  font-style: italic;
  font-weight: 400;
  color: var(--of-muted);
  margin-top: 6px;
}
.oficina-cards {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 28px;
  align-items: stretch;
}
.oficina-card {
  display: flex;
  flex-direction: column;
  background: var(--of-paper);
  border: 1px solid var(--of-hair);
  border-top: 4px solid var(--of-yellow);
  border-radius: 12px;
  overflow: hidden;
}
.oficina-card.oficina-asalato { border-top-color: var(--of-asalato); }
.oficina-card.oficina-falar { border-top-color: var(--of-falar); }
.oficina-card > img {
  width: 100%;
  aspect-ratio: 1200 / 630;
  object-fit: cover;
  background: var(--of-hair);
  border-bottom: 1px solid var(--of-hair);
}
.oficina-card-body {
  display: flex;
  flex-direction: column;
  flex: 1;
  padding: 26px 28px 28px;
}
.oficina-date {
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--of-warm);
  margin: 0 0 10px;
  display: flex;
  align-items: center;
  gap: 10px;
}
.oficina-date::before {
  content: "";
  width: 20px; height: 2px;
  background: var(--of-yellow);
  flex-shrink: 0;
}
.oficina-asalato .oficina-date::before { background: var(--of-asalato); }
.oficina-falar .oficina-date::before { background: var(--of-falar); }
.oficina-card h3 {
  font-family: 'Playfair Display', Georgia, serif;
  font-size: 25px;
  line-height: 1.2;
  font-weight: 700;
  color: var(--of-ink);
  margin: 0 0 12px;
}
.oficina-card-body > p:not(.oficina-date) {
  font-size: 15.5px;
  line-height: 1.6;
  color: var(--of-warm);
  margin: 0;
}
.oficina-card .downloads { margin-top: auto; padding-top: 24px; }
.oficina-card .dl { background: var(--white); border-color: var(--of-hair); }
.oficina-asalato .dl:hover { border-color: var(--of-asalato); }
.oficina-falar .dl:hover { border-color: var(--of-falar); }
.featured-note {
  margin: 28px 0 0;
  padding-top: 18px;
  border-top: 1px solid var(--of-hair);
  color: var(--of-muted);
}

/* =================================================================
   ARQUIVO · galeria opcional dentro do .archive-item
   ================================================================= */
.archive-gallery {
  grid-column: 1 / -1;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
  margin-top: 0;
  padding-top: 20px;
  border-top: 1px solid var(--line);
}
.archive-gallery .gallery-item img {
  aspect-ratio: 4 / 3;
  object-fit: contain;
  padding: 6px;
  background: var(--bg-deep);
}
.archive-gallery .gallery-label { padding: 6px 10px; font-size: 11.5px; }

/* =================================================================
   CONTACTO · contacto principal de imprensa
   ================================================================= */
.press-primary {
  max-width: 760px;
  margin: 0 auto 72px;
  padding: 44px 40px 40px;
  background: var(--of-paper);
  border: 1px solid var(--of-hair);
  border-top: 4px solid var(--gold);
  border-radius: 14px;
  text-align: center;
}
.press-primary .kicker { margin: 0 0 14px; color: var(--of-warm); }
.press-email {
  display: inline-block;
  font-family: 'Playfair Display', Georgia, serif;
  font-weight: 700;
  font-size: clamp(22px, 5.6vw, 46px);
  line-height: 1.15;
  letter-spacing: -0.01em;
  color: var(--of-ink);
  text-decoration: underline;
  text-decoration-color: var(--gold);
  text-decoration-thickness: 3px;
  text-underline-offset: 8px;
  overflow-wrap: anywhere;
}
.press-email:hover { color: var(--of-ink); text-decoration-color: var(--of-ink); }
.press-primary .muted.small { margin: 18px 0 0; font-size: 14px; color: var(--of-muted); }
.contact-subhead {
  font-family: 'Inter', sans-serif;
  font-size: 13px;
  font-weight: 600;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: var(--ink-soft);
  margin: 0 auto 28px;
  display: flex;
  align-items: center;
  gap: 16px;
  max-width: 1100px;
}
.contact-subhead::before,
.contact-subhead::after {
  content: "";
  flex: 1;
  height: 1px;
  background: var(--line);
}

/* ---------- Responsivo dos blocos novos ---------- */
@media (max-width: 880px) {
  .featured-block + .featured-block { margin-top: 56px; padding-top: 52px; }
  .featured-oficinas > h2 { font-size: 30px; }
  .oficina-cards { grid-template-columns: 1fr; gap: 22px; }
  .featured-natal .featured-image img { aspect-ratio: 4 / 5; max-width: 440px; margin: 0 auto; }
}
@media (max-width: 600px) {
  .archive-gallery { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .featured-natal .gallery-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
  .featured-natal .gallery-item img { padding: 6px; }
  .press-primary { padding: 32px 18px 28px; margin-bottom: 52px; }
  .oficina-card-body { padding: 22px 20px 22px; }
  .oficina-card h3 { font-size: 22px; }
}

/* ---------- Afinações de ritmo (blocos existentes) ---------- */
.project-downloads .dl + .dl { margin-top: 10px; }
.contact-text .institutional-contacts li strong { display: block; min-width: 0; margin-bottom: 2px; }
@media (max-width: 600px) {
  .downloads-row .dl { flex: 1 1 100%; }
}

/* ---------- Oficinas no destaque: 3 cartoes (Papel dos Pais sem imagem) ---------- */
.oficina-cards { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.oficina-card.oficina-papel { border-top-color: var(--of-falar); }
.oficina-papel .oficina-date::before { background: var(--of-falar); }
.oficina-papel .dl:hover { border-color: var(--of-falar); }
@media (max-width: 1100px) {
  .oficina-cards { grid-template-columns: 1fr; gap: 22px; }
}
