/* ═══════════════════════════════════════════════════════════════
   TRIEF® EVENTS — MODELO v2
   O mesmo desenho do painel, das propostas e do Wedding Hub,
   agora no site público. Carregado pelo core/nav.php, por isso
   chega a todas as páginas que usam a navegação partilhada.

   Como está feito: primeiro redefine os tokens antigos do
   style.css (por isso as páginas mudam sem serem reescritas) e
   só depois acrescenta os componentes novos (.v2-*).
   ═══════════════════════════════════════════════════════════════ */

:root {
  /* ── superfícies ── */
  --black:        #050506;
  --bg:           #09090a;
  --surface:      #101012;
  --surface-2:    #151518;
  --surface-3:    #1c1c20;

  /* ── dourado ── */
  --gold:         #d4af37;
  --gold-light:   #e7c96a;
  --gold-dark:    #8a6b2a;
  --gold-dim:     rgba(212,175,55,.10);
  --gold-glow:    rgba(212,175,55,.34);
  --gold-gradient: linear-gradient(135deg,#d4af37 0%,#e7c96a 55%,#d4af37 100%);

  /* ── estado ── */
  --v2-green:     #3ecf8e;
  --v2-amber:     #f2b84b;
  --v2-red:       #f26b6b;

  /* ── texto ── */
  --text-primary:   #f3f3f4;
  --text-secondary: rgba(243,243,244,.72);
  --text-muted:     rgba(243,243,244,.48);
  --text-dim:       rgba(243,243,244,.22);
  --text: var(--text-primary);

  /* ── linhas ── */
  --line:         rgba(255,255,255,.075);
  --border:       rgba(255,255,255,.075);
  --border-hover: rgba(212,175,55,.38);

  --glass:   rgba(255,255,255,.022);
  --glass-2: rgba(255,255,255,.04);

  /* ── letra ── */
  --font-display: 'Cormorant Garamond', Georgia, serif;
  --font-body:    'Inter', system-ui, -apple-system, sans-serif;
  --font-mono:    'DM Mono', ui-monospace, monospace;

  /* ── raios ── */
  --radius-sm: 10px;
  --radius-md: 12px;
  --radius-lg: 16px;
  --radius-xl: 22px;
}

html, body { background: var(--bg); }
body {
  font-family: var(--font-body);
  color: var(--text-primary);
  -webkit-font-smoothing: antialiased;
  letter-spacing: -.005em;
}

/* Números, etiquetas e tudo o que é dado em DM Mono — o Cormorant
   tem algarismos antigos e fica ilegível em preços e contagens. */
.v2-num, .stat-box strong, .stat-box b, .stat-number,
.timeline-year-btn, .label-gold {
  font-family: var(--font-mono);
  font-variant-numeric: tabular-nums;
}

h1, h2, h3, .section-title, .content-section h2 {
  font-family: var(--font-display);
  font-weight: 300;
  letter-spacing: -.01em;
}
h1 em, h2 em, .v2-i { font-style: italic; color: var(--gold-light); }

a { color: inherit; }
::selection { background: rgba(212,175,55,.28); }

/* ── TOPBAR ──────────────────────────────────────────────────── */
.main-header {
  background: rgba(9,9,10,.86) !important;
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  border-bottom: 1px solid var(--line) !important;
  box-shadow: none !important;
}
.main-nav ul > li > a {
  font-family: var(--font-body);
  font-size: 12.5px;
  font-weight: 500;
  letter-spacing: .01em;
  color: var(--text-secondary);
  transition: color .2s ease;
}
.main-nav ul > li > a:hover,
.main-nav ul > li > a.active { color: var(--gold-light); }
.main-nav ul > li > a.active { position: relative; }
.main-nav ul > li > a.active::after {
  content: ''; position: absolute; left: 0; right: 0; bottom: -7px;
  height: 1.5px; background: var(--gold); border-radius: 2px;
}
.nav-dropdown-menu .nav-dropdown-inner {
  background: var(--surface-2) !important;
  border: 1px solid var(--line) !important;
  border-radius: var(--radius-lg) !important;
  box-shadow: 0 24px 60px rgba(0,0,0,.6) !important;
}
.nav-dropdown-inner a:hover { background: rgba(212,175,55,.08) !important; }
.nd-text small { color: var(--text-muted); font-size: 10.5px; }

/* Botão principal — gradiente dourado, texto escuro */
.btn-budget, .btn-menu-orcamento, .v2-btn {
  background: var(--gold-gradient) !important;
  color: #14120b !important;
  border: none !important;
  border-radius: 999px !important;
  font-family: var(--font-body) !important;
  font-weight: 700 !important;
  font-size: 12px !important;
  letter-spacing: .01em !important;
  box-shadow: 0 8px 24px rgba(212,175,55,.22) !important;
  transition: transform .2s var(--ease,ease), box-shadow .2s ease !important;
}
.btn-budget:hover, .btn-menu-orcamento:hover, .v2-btn:hover {
  transform: translateY(-2px);
  box-shadow: 0 14px 34px rgba(212,175,55,.3) !important;
}
.v2-btn { display: inline-flex; align-items: center; gap: 8px; padding: 12px 22px; text-decoration: none; }
.v2-btn-ghost {
  display: inline-flex; align-items: center; gap: 8px; padding: 12px 22px;
  border-radius: 999px; text-decoration: none;
  background: transparent; color: var(--text-secondary);
  border: 1px solid var(--line); font-size: 12.5px; font-weight: 600;
  transition: border-color .2s ease, color .2s ease;
}
.v2-btn-ghost:hover { border-color: var(--border-hover); color: var(--gold-light); }

/* ── HERO ────────────────────────────────────────────────────── */
.v2-kicker, .label-gold {
  display: inline-block;
  font-family: var(--font-mono) !important;
  font-size: 10.5px !important;
  font-weight: 500 !important;
  letter-spacing: .22em !important;
  text-transform: uppercase !important;
  color: var(--gold-light) !important;
  background: rgba(212,175,55,.08) !important;
  border: 1px solid rgba(212,175,55,.26) !important;
  border-radius: 999px !important;
  padding: 6px 14px !important;
  box-shadow: none !important;
  min-height: 0 !important;
}
.v2-hero { padding: clamp(56px,9vh,104px) 0 clamp(32px,5vh,56px); }
.v2-hero h1 {
  font-size: clamp(2.4rem,6vw,4.4rem);
  line-height: 1.04;
  margin: 18px 0 14px;
}
.v2-lead {
  color: var(--text-secondary);
  font-size: clamp(14px,1.6vw,16.5px);
  line-height: 1.75;
  max-width: 62ch;
}

/* Chips de informação */
.v2-chips { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 22px; }
.v2-chip {
  display: inline-flex; align-items: center; gap: 7px;
  padding: 7px 13px; border-radius: 999px;
  background: var(--surface-2); border: 1px solid var(--line);
  font-size: 12px; color: var(--text-secondary);
}
.v2-chip b { color: var(--text-primary); font-family: var(--font-mono); font-weight: 500; }

/* Separadores em pastilhas */
.v2-pills { display: flex; gap: 7px; overflow-x: auto; padding-bottom: 4px; scrollbar-width: none; }
.v2-pills::-webkit-scrollbar { display: none; }
.v2-pill {
  flex: 0 0 auto; padding: 9px 16px; border-radius: 999px;
  background: var(--surface-2); border: 1px solid var(--line);
  color: var(--text-secondary); font-size: 12.5px; font-weight: 500;
  cursor: pointer; text-decoration: none; transition: all .2s ease;
}
.v2-pill:hover { border-color: var(--border-hover); color: var(--gold-light); }
.v2-pill.on { background: rgba(212,175,55,.12); border-color: rgba(212,175,55,.4); color: var(--gold-light); }

/* ── CARTÕES ─────────────────────────────────────────────────── */
.v2-card, .value-card, .team-card, .stat-box, .equip-item, .event-type, .timeline-content {
  background: var(--surface-2) !important;
  border: 1px solid var(--line) !important;
  border-radius: var(--radius-lg) !important;
  box-shadow: none !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
  transition: border-color .25s ease, transform .25s ease !important;
}
.v2-card:hover, .value-card:hover, .team-card:hover, .equip-item:hover, .event-type:hover {
  border-color: var(--border-hover) !important;
  transform: translateY(-3px) !important;
  background: var(--surface-3) !important;
}
.value-card h3, .v2-card h3 { color: var(--text-primary); font-size: 1.25rem; }
.value-card p, .v2-card p { color: var(--text-secondary); font-size: 13.5px; line-height: 1.75; }
.value-icon { font-size: 1.9rem !important; opacity: .95; }

.stat-box strong, .stat-box .stat-number {
  color: var(--gold-light);
  font-size: clamp(1.7rem,3.4vw,2.4rem);
  font-weight: 500;
}

.divider-gold {
  height: 1px !important; border: 0 !important;
  background: linear-gradient(90deg,transparent,rgba(212,175,55,.42),transparent) !important;
}

/* ── LINHA DO TEMPO ──────────────────────────────────────────── */
.timeline-marker { background: var(--gold) !important; box-shadow: 0 0 0 4px rgba(212,175,55,.14) !important; }
.timeline-year-btn {
  background: rgba(212,175,55,.1) !important;
  border: 1px solid rgba(212,175,55,.3) !important;
  color: var(--gold-light) !important;
  border-radius: 999px !important;
}
.timeline-year-btn:hover { background: rgba(212,175,55,.2) !important; }
.timeline-modal-content, .bio-modal-content {
  background: var(--surface-2) !important;
  border: 1px solid var(--line) !important;
  border-radius: var(--radius-xl) !important;
}

/* ── RODAPÉ ──────────────────────────────────────────────────── */
.main-footer {
  background: var(--surface) !important;
  border-top: 1px solid var(--line) !important;
}
.footer-column h4 {
  font-family: var(--font-mono) !important;
  font-size: 10.5px !important;
  letter-spacing: .2em !important;
  text-transform: uppercase !important;
  color: var(--gold) !important;
  font-weight: 500 !important;
}
.footer-column a { color: var(--text-secondary) !important; font-size: 13px !important; }
.footer-column a:hover { color: var(--gold-light) !important; }
.footer-desc, .footer-location { color: var(--text-muted) !important; }
.footer-bottom { border-top: 1px solid var(--line) !important; background: transparent !important; }

#btnTop {
  background: var(--surface-3) !important;
  border: 1px solid var(--line) !important;
  color: var(--gold-light) !important;
  border-radius: 999px !important;
}

/* ── MENU MÓVEL ──────────────────────────────────────────────── */
.nav-overlay { background: rgba(9,9,10,.97) !important; backdrop-filter: blur(18px); }
.nav-overlay a { font-family: var(--font-body) !important; font-size: 15px !important; }
.nav-overlay a:hover { color: var(--gold-light) !important; }

/* ── GRELHA ──────────────────────────────────────────────────── */
.v2-wrap { max-width: 1180px; margin: 0 auto; padding: 0 16px; }
.v2-grid { display: grid; gap: 14px; }
@media (min-width: 760px) { .v2-grid-2 { grid-template-columns: 1fr 1fr; } }
@media (min-width: 980px) { .v2-grid-3 { grid-template-columns: repeat(3,1fr); } }

/* ═══════════════════════════════════════════════════════════════
   PARTE 2 — o resto do site público
   Os nomes aqui são os que já existem no style.css, por isso
   estas regras chegam a todas as páginas sem lhes mexer.
   ═══════════════════════════════════════════════════════════════ */

/* ── ritmo e grelha ──────────────────────────────────────────── */
.container, .section-inner, .hero-container, .footer-container { max-width: 1180px !important; }
.content-section, .faq-section, .team-section, .coverage-section,
.diff-section, .portfolio-section, .cta-section, .universos-section,
.equipa-section { padding: clamp(44px,7vh,86px) 0 !important; }
.section-title, .section-header h2 {
  font-family: var(--font-display); font-weight: 300;
  font-size: clamp(1.9rem,4vw,3rem); line-height: 1.12; letter-spacing: -.01em;
}
.section-header p, .pricing-intro, .text-muted-p { color: var(--text-secondary) !important; font-size: 14px; line-height: 1.75; }
.text-gold { color: var(--gold-light) !important; }
p { line-height: 1.75; }

/* ── heros de todas as páginas ───────────────────────────────── */
.page-hero, .hero, .hp-hero, .services-hero, .gallery-hero, .reviews-hero {
  background: radial-gradient(1100px 420px at 50% -12%, rgba(212,175,55,.07), transparent 70%), var(--bg) !important;
  border-bottom: 1px solid var(--line);
}
.page-hero h1, .hero h1, .hp-hero h1, .services-hero h1, .gallery-hero h1, .reviews-hero h1 {
  font-family: var(--font-display); font-weight: 300;
  font-size: clamp(2.3rem,5.6vw,4.2rem); line-height: 1.05;
}
.page-hero h1 span, .hero h1 span { color: var(--gold-light); font-style: italic; }
.hp-hero-eyebrow, .scroll-indicator, .hp-scroll-hint, .exclusivity-badge, .card-tag, .sc-card-tag, .cov-tag, .team-badge {
  font-family: var(--font-mono) !important;
  font-size: 10.5px !important; letter-spacing: .18em !important;
  text-transform: uppercase !important; color: var(--gold-light) !important;
}

/* ── botões ──────────────────────────────────────────────────── */
.btn, .filter-btn {
  font-family: var(--font-body) !important; font-weight: 600 !important;
  font-size: 12.5px !important; letter-spacing: 0 !important;
  border-radius: 999px !important; padding: 12px 24px !important;
  transition: transform .2s ease, border-color .2s ease, box-shadow .2s ease !important;
}
.btn-gold {
  background: var(--gold-gradient) !important; color: #14120b !important;
  border: none !important; box-shadow: 0 8px 24px rgba(212,175,55,.2) !important;
}
.btn-gold:hover { transform: translateY(-2px); box-shadow: 0 14px 34px rgba(212,175,55,.3) !important; }
.btn-outline, .filter-btn {
  background: transparent !important; color: var(--text-secondary) !important;
  border: 1px solid var(--line) !important;
}
.btn-outline:hover, .filter-btn:hover { border-color: var(--border-hover) !important; color: var(--gold-light) !important; }
.filter-btn.active { background: rgba(212,175,55,.12) !important; border-color: rgba(212,175,55,.4) !important; color: var(--gold-light) !important; }

/* ── cartões (toda a família) ────────────────────────────────── */
.feature-card, .concept-card, .hub-card, .hub-card-luxury, .price-card,
.review-card, .sc-card, .sc-card-sm, .sc-card-hero, .service-pack,
.partner-card, .diff-item, .card-wedding, .card-corp, .card-small,
.how-step, .team-member, .equipa-membro, .portfolio-item, .gallery-item,
.faq-item, .stat-item, .hub-feature, .timeline-moments-grid > * {
  background: var(--surface-2) !important;
  border: 1px solid var(--line) !important;
  border-radius: var(--radius-lg) !important;
  box-shadow: none !important;
  backdrop-filter: none !important; -webkit-backdrop-filter: none !important;
  transition: border-color .25s ease, transform .25s ease, background .25s ease !important;
}
.feature-card:hover, .concept-card:hover, .hub-card:hover, .price-card:hover,
.review-card:hover, .sc-card:hover, .service-pack:hover, .partner-card:hover,
.diff-item:hover, .card-wedding:hover, .card-corp:hover, .card-small:hover,
.how-step:hover, .team-member:hover, .portfolio-item:hover, .gallery-item:hover {
  border-color: var(--border-hover) !important;
  background: var(--surface-3) !important;
  transform: translateY(-3px) !important;
}
.feature-card h3, .concept-card h3, .hub-card h3, .price-card h3,
.sc-card h3, .service-pack h3, .card-wedding h3, .card-corp h3, .how-step h3 {
  font-family: var(--font-display); font-weight: 400; font-size: 1.3rem; color: var(--text-primary);
}
.feature-card p, .concept-card p, .hub-card p, .price-card p, .sc-card p,
.service-pack p, .diff-item p, .how-step p, .team-member p {
  color: var(--text-secondary) !important; font-size: 13.5px !important;
}
.feature-icon, .card-icon, .sc-card-icon, .diff-icon, .partner-icon, .team-member-icon, .value-icon {
  font-size: 1.8rem !important; opacity: .95;
}

/* destaque de um cartão sem o encher de dourado */
.price-card-featured, .hub-card-luxury {
  background: var(--surface-3) !important;
  border-color: rgba(212,175,55,.34) !important;
  position: relative;
}

/* ── preços e números ────────────────────────────────────────── */
.price-headline, .stat-item strong, .stat-item .stat-number, .how-num, .hub-card-num {
  font-family: var(--font-mono) !important;
  font-variant-numeric: tabular-nums;
  color: var(--gold-light) !important; font-weight: 500 !important;
}
.price-divider { background: linear-gradient(90deg,transparent,rgba(212,175,55,.35),transparent) !important; height: 1px !important; border: 0 !important; }
.stats-bar { background: var(--surface) !important; border-top: 1px solid var(--line) !important; border-bottom: 1px solid var(--line) !important; }

/* ── chips ───────────────────────────────────────────────────── */
.coverage-chips { display: flex; flex-wrap: wrap; gap: 8px; }
.cov-tag, .c-chip, .hub-badge-tech, .hub-feat {
  background: var(--surface-2) !important; border: 1px solid var(--line) !important;
  border-radius: 999px !important; padding: 7px 13px !important;
  font-size: 11.5px !important; color: var(--text-secondary) !important;
}
.c-chip-main { background: rgba(212,175,55,.12) !important; border-color: rgba(212,175,55,.4) !important; color: var(--gold-light) !important; }

/* ── testemunhos ─────────────────────────────────────────────── */
.review-stars { color: var(--gold) !important; letter-spacing: .12em; }
.review-text { color: var(--text-secondary) !important; font-size: 14px !important; line-height: 1.8 !important; }
.review-author { font-family: var(--font-mono) !important; font-size: 11px !important; letter-spacing: .1em !important; text-transform: uppercase; color: var(--text-muted) !important; }

/* ── FAQ ─────────────────────────────────────────────────────── */
.faq-item { padding: 0 !important; overflow: hidden; }
.faq-q {
  font-family: var(--font-body) !important; font-weight: 600 !important;
  font-size: 14px !important; color: var(--text-primary) !important;
  padding: 16px 18px !important; cursor: pointer;
}
.faq-q:hover { color: var(--gold-light) !important; }

/* ── CTA final ───────────────────────────────────────────────── */
.cta-banner, .cta-inner {
  background: radial-gradient(700px 260px at 50% 0%, rgba(212,175,55,.1), transparent 70%), var(--surface-2) !important;
  border: 1px solid rgba(212,175,55,.24) !important;
  border-radius: var(--radius-xl) !important;
  padding: clamp(30px,5vw,56px) !important;
  box-shadow: none !important;
}
.cta-banner h2 { font-family: var(--font-display); font-weight: 300; font-size: clamp(1.8rem,3.6vw,2.7rem); }
.cta-actions { display: flex; gap: 10px; flex-wrap: wrap; justify-content: center; margin-top: 22px; }

/* ── formulários ─────────────────────────────────────────────── */
input[type=text], input[type=email], input[type=tel], input[type=date],
input[type=time], input[type=number], select, textarea {
  background: var(--surface-2) !important;
  border: 1px solid var(--line) !important;
  border-radius: var(--radius-md) !important;
  color: var(--text-primary) !important;
  font-family: var(--font-body) !important; font-size: 13.5px !important;
  padding: 11px 13px !important;
}
input:focus, select:focus, textarea:focus {
  outline: none !important; border-color: rgba(212,175,55,.45) !important;
  box-shadow: 0 0 0 3px rgba(212,175,55,.1) !important;
}
label { font-size: 12px; color: var(--text-secondary); }

/* ── rodapé, segunda passagem ────────────────────────────────── */
.main-footer { padding-top: clamp(48px,7vh,76px) !important; margin-top: clamp(48px,7vh,76px) !important; }
.footer-column-destaque { background: transparent !important; border: 0 !important; padding: 0 !important; margin: 0 !important; }
.footer-column h4 { border-bottom: 0 !important; padding-bottom: 0 !important; }
.footer-links { display: flex; gap: 18px; justify-content: center; flex-wrap: wrap; }
.footer-links a { font-size: 12px !important; color: var(--text-muted) !important; }
.footer-links a:hover { color: var(--gold-light) !important; }

/* ── flutuantes ──────────────────────────────────────────────── */
.whatsapp-float { box-shadow: 0 10px 30px rgba(0,0,0,.45) !important; }

/* ── movimento mais discreto ─────────────────────────────────── */
.reveal { transition-duration: .5s !important; }
@media (prefers-reduced-motion: reduce) { .reveal { transition: none !important; } }

/* ═══════════════════════════════════════════════════════════════
   PARTE 3 — HERO DA HOMEPAGE no formato do Wedding Hub
   Duas colunas: à esquerda a promessa, à direita o painel com os
   números e o passo seguinte. O vídeo fica por baixo, esbatido.
   ═══════════════════════════════════════════════════════════════ */

.hp-hero {
  min-height: auto !important;
  display: block !important;
  text-align: left !important;
  padding: 0 !important;
  background: var(--bg) !important;
  border-bottom: 1px solid var(--line);
}
/* Véu só onde o texto assenta: escuro à esquerda, quase limpo à
   direita, para o vídeo continuar a ver-se. O painel da direita
   tem desfoque próprio, por isso não precisa de véu por baixo. */
.hp-hero-overlay {
  background:
    linear-gradient(95deg, rgba(9,9,10,.9) 0%, rgba(9,9,10,.74) 34%, rgba(9,9,10,.34) 62%, rgba(9,9,10,.18) 100%),
    linear-gradient(180deg, rgba(9,9,10,.5) 0%, transparent 22%, transparent 62%, var(--bg) 100%) !important;
}
.hp-hero-video { filter: saturate(1.02) contrast(1.04) brightness(1.06); }
.hp-hero-grain { opacity: .015 !important; }

/* No telemóvel o texto passa por cima do vídeo todo, por isso aí o
   véu volta a ser uniforme — senão não se lê. */
@media (max-width: 999px) {
  .hp-hero-overlay {
    background:
      linear-gradient(180deg, rgba(9,9,10,.72) 0%, rgba(9,9,10,.8) 45%, var(--bg) 100%) !important;
  }
}
.hp-hero-badge, .hp-scroll-hint, .hero-contact-sidebar { display: none !important; }

.hp2 {
  position: relative; z-index: 4;
  max-width: 1180px; margin: 0 auto;
  padding: clamp(96px,14vh,150px) 16px clamp(48px,8vh,84px);
  display: grid; gap: clamp(22px,3vw,38px);
  align-items: start;
}
@media (min-width: 1000px) { .hp2 { grid-template-columns: 1.15fr .85fr; align-items: center; } }

.hp2-kicker {
  display: inline-block;
  font-family: var(--font-mono); font-size: 10.5px; font-weight: 500;
  letter-spacing: .22em; text-transform: uppercase; color: var(--gold-light);
  margin: 0 0 16px;
}
.hp2 h1 {
  font-family: var(--font-display); font-weight: 300;
  font-size: clamp(2.6rem,6.4vw,5rem); line-height: 1.02;
  letter-spacing: -.015em; color: var(--text-primary);
  margin: 0 0 16px; text-shadow: none;
}
.hp2 h1 em {
  font-style: italic; color: var(--gold-light);
  background: none !important; -webkit-text-fill-color: currentColor !important; filter: none !important;
}
.hp2-lead {
  font-family: var(--font-body) !important; font-style: normal !important;
  color: var(--text-secondary) !important; font-weight: 400 !important;
  font-size: clamp(14px,1.7vw,16.5px) !important; line-height: 1.75 !important;
  max-width: 54ch; margin: 0 0 22px !important; text-shadow: none !important;
}
.hp2-chips { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 26px; }
.hp2-chip {
  display: inline-flex; align-items: center; gap: 7px;
  padding: 8px 14px; border-radius: 999px;
  background: rgba(21,21,24,.72); border: 1px solid var(--line);
  backdrop-filter: blur(8px);
  font-size: 12px; color: var(--text-secondary);
}
.hp2-chip b { color: var(--text-primary); font-family: var(--font-mono); font-weight: 500; }
.hp2-actions { display: flex; gap: 10px; flex-wrap: wrap; }

/* painel da direita */
.hp2-panel {
  /* Opaco que chegue para se ler por cima de qualquer fotograma. */
  background: rgba(13,13,15,.93);
  backdrop-filter: blur(18px) saturate(.9); -webkit-backdrop-filter: blur(18px) saturate(.9);
  box-shadow: 0 30px 70px rgba(0,0,0,.5);
  border: 1px solid rgba(212,175,55,.2);
  border-radius: var(--radius-xl);
  padding: clamp(18px,2.4vw,26px);
}
.hp2-panel-t {
  font-family: var(--font-mono); font-size: 10px; letter-spacing: .2em;
  text-transform: uppercase; color: var(--text-muted); margin: 0 0 14px;
}
.hp2-stats { display: grid; grid-template-columns: repeat(4,1fr); gap: 9px; }
.hp2-stat {
  background: rgba(21,21,24,.96); border: 1px solid var(--line);
  border-radius: 14px; padding: 14px 6px; text-align: center;
}
.hp2-stat b {
  display: block; font-family: var(--font-display); font-weight: 300;
  font-size: clamp(1.5rem,2.6vw,2.1rem); color: var(--gold-light); line-height: 1;
}
.hp2-stat span {
  display: block; margin-top: 7px;
  font-family: var(--font-mono); font-size: 8.5px; letter-spacing: .16em;
  text-transform: uppercase; color: var(--text-muted);
}
.hp2-sep { height: 1px; background: var(--line); margin: 18px 0; }
.hp2-next {
  display: flex; align-items: center; gap: 13px;
  padding: 14px 16px; border-radius: 16px; text-decoration: none;
  background: rgba(21,21,24,.96); border: 1px solid var(--line);
  transition: border-color .2s ease, background .2s ease;
}
.hp2-next:hover { border-color: rgba(212,175,55,.4); background: var(--surface-3); }
.hp2-next-ic {
  width: 40px; height: 40px; flex: 0 0 auto; border-radius: 12px;
  display: grid; place-items: center; font-size: 17px;
  background: rgba(212,175,55,.1); border: 1px solid rgba(212,175,55,.26);
}
.hp2-next-tx { flex: 1; min-width: 0; }
.hp2-next-tx i {
  display: block; font-style: normal;
  font-family: var(--font-mono); font-size: 9px; letter-spacing: .18em;
  text-transform: uppercase; color: var(--text-muted); margin-bottom: 3px;
}
.hp2-next-tx b { display: block; font-size: 14px; font-weight: 600; color: var(--text-primary); }
.hp2-next-tx small { display: block; font-size: 11.5px; color: var(--text-muted); margin-top: 2px; }
.hp2-next-ar { color: var(--gold-light); font-size: 15px; }

/* pastilhas de serviços por baixo do hero */
.hp2-pills-wrap {
  position: relative; z-index: 4;
  border-top: 1px solid var(--line);
  background: rgba(9,9,10,.86); backdrop-filter: blur(10px);
}
.hp2-pills { max-width: 1180px; margin: 0 auto; padding: 14px 16px; }

@media (max-width: 520px) {
  .hp2-stats { grid-template-columns: repeat(2,1fr); }
}

/* ═══════════════════════════════════════════════════════════════
   PARTE 4 — correções de estrutura
   ═══════════════════════════════════════════════════════════════ */

/* Nada empurra a página para o lado: era isto que cortava o
   logótipo à esquerda e o botão à direita. */
html, body { max-width: 100%; overflow-x: hidden; }
img, video, iframe { max-width: 100%; }

/* Topbar: uma só linha, sem nada cortado, e encolhe com calma. */
.main-header {
  padding: 0 clamp(14px,2.4vw,34px) !important;
  gap: 14px;
  height: 72px !important;
}
.header-left, .header-right { flex: 0 0 auto; min-width: 0; }
.logo-topo { height: 30px !important; }
.main-nav { min-width: 0; overflow: hidden; }
.main-nav ul { flex-wrap: nowrap; gap: 2px !important; }
.main-nav ul > li > a { white-space: nowrap; padding: 8px 10px !important; }
.btn-budget { white-space: nowrap; padding: 10px 18px !important; }
@media (max-width: 1240px) {
  .main-nav ul > li > a { font-size: 11.5px; padding: 8px 7px !important; }
  .btn-budget { font-size: 11px !important; padding: 9px 14px !important; }
}

/* Hero: um vídeo de cada vez a cobrir tudo, não três lado a lado. */
.hp-video-container {
  display: block !important;
  position: absolute !important; inset: 0 !important;
  width: 100% !important; height: 100% !important;
  overflow: hidden;
}
.hp-hero-video {
  position: absolute !important; inset: 0 !important;
  width: 100% !important; height: 100% !important;
  object-fit: cover !important;
  opacity: 0; transition: opacity 1.4s ease;
}
.hp-hero-video.active { opacity: 1; }

/* Altura suficiente para o vídeo nunca assomar por baixo do conteúdo. */
.hp-hero { position: relative; overflow: hidden !important; }
.hp2 { min-height: calc(100vh - 72px); align-content: center; }
@media (max-width: 999px) { .hp2 { min-height: 0; padding-top: clamp(104px,16vh,150px); } }

/* ═══════════════════════════════════════════════════════════════
   PARTE 5 — hero partilhado das páginas interiores (core/hero_v2.php)
   ═══════════════════════════════════════════════════════════════ */
.v2-pagehero {
  position: relative;
  background:
    radial-gradient(900px 420px at 78% -6%, rgba(212,175,55,.09), transparent 70%),
    var(--bg);
  border-bottom: 1px solid var(--line);
}
.v2-pagehero-in {
  max-width: 1180px; margin: 0 auto;
  padding: clamp(104px,15vh,158px) 16px clamp(44px,7vh,76px);
  display: grid; gap: clamp(22px,3vw,38px); align-items: center;
}
@media (min-width: 1000px) { .v2-pagehero-in { grid-template-columns: 1.15fr .85fr; } }
.v2-ph-left h1 {
  font-family: var(--font-display); font-weight: 300;
  font-size: clamp(2.3rem,5.6vw,4.2rem); line-height: 1.04;
  letter-spacing: -.015em; margin: 0 0 16px; color: var(--text-primary);
}
.v2-ph-left h1 em { font-style: italic; color: var(--gold-light); }
.hp2-panel-nota {
  margin: 12px 0 0; font-size: 11.5px; line-height: 1.6; color: var(--text-muted);
}
/* páginas antigas: esconder o hero anterior quando o novo entra */
.v2-pagehero + .page-hero, .v2-pagehero + .services-hero,
.v2-pagehero + .gallery-hero, .v2-pagehero + .reviews-hero { display: none; }

/* ═══════════════════════════════════════════════════════════════
   PARTE 6 — bloco de condições (core/condicoes_v2.php)
   ═══════════════════════════════════════════════════════════════ */
.v2-cond { padding: clamp(48px,7vh,84px) 0; border-top: 1px solid var(--line); }
.v2-cond-in { max-width: 1180px; margin: 0 auto; padding: 0 16px; }
.v2-cond-in h2 {
  font-family: var(--font-display); font-weight: 300;
  font-size: clamp(1.8rem,3.8vw,2.7rem); line-height: 1.1; margin: 0 0 12px;
}
.v2-cond-in h2 em { font-style: italic; color: var(--gold-light); }
.v2-cond-grid { display: grid; gap: 12px; margin-top: 26px; }
@media (min-width: 720px)  { .v2-cond-grid { grid-template-columns: 1fr 1fr; } }
@media (min-width: 1080px) { .v2-cond-grid { grid-template-columns: repeat(3,1fr); } }
.v2-cond-card {
  background: var(--surface-2); border: 1px solid var(--line);
  border-radius: var(--radius-lg); padding: 18px 20px;
}
.v2-cond-t {
  font-family: var(--font-mono); font-size: 10px; letter-spacing: .2em;
  text-transform: uppercase; color: var(--gold); margin-bottom: 9px;
}
.v2-cond-card p { margin: 0; font-size: 13px; line-height: 1.75; color: var(--text-secondary); }
.v2-cond-card b { color: var(--text-primary); font-family: var(--font-mono); font-weight: 500; }

/* ═══════════════════════════════════════════════════════════════
   PARTE 7 — setups vindos do catálogo (core/setups_v2.php)
   ═══════════════════════════════════════════════════════════════ */
.v2-setups { padding: clamp(48px,7vh,84px) 0; }
.v2-setups-in { max-width: 1180px; margin: 0 auto; padding: 0 16px; }
.v2-setups-in h2 {
  font-family: var(--font-display); font-weight: 300;
  font-size: clamp(1.8rem,3.8vw,2.7rem); line-height: 1.1; margin: 0 0 12px;
}
.v2-setups-grid { display: grid; gap: 12px; margin-top: 26px; }
@media (min-width: 880px) { .v2-setups-grid { grid-template-columns: repeat(3,1fr); } }
.v2-setup {
  background: var(--surface-2); border: 1px solid var(--line);
  border-radius: var(--radius-xl); padding: 22px 22px 24px;
  transition: border-color .25s ease, transform .25s ease;
}
.v2-setup:hover { border-color: var(--border-hover); transform: translateY(-3px); }
.v2-setup.on { border-color: rgba(212,175,55,.34); background: var(--surface-3); }
.v2-setup-k {
  font-family: var(--font-mono); font-size: 9.5px; letter-spacing: .2em;
  text-transform: uppercase; color: var(--gold); margin-bottom: 10px;
}
.v2-setup h3 {
  font-family: var(--font-display); font-weight: 400; font-size: 1.45rem;
  margin: 0 0 8px; color: var(--text-primary);
}
.v2-setup-p {
  font-family: var(--font-mono); font-size: 1.25rem; color: var(--gold-light);
  margin-bottom: 10px; font-variant-numeric: tabular-nums;
}
.v2-setup-p span {
  font-size: 10px; letter-spacing: .16em; text-transform: uppercase;
  color: var(--text-muted); margin-right: 4px;
}
.v2-setup p { margin: 0; font-size: 13px; line-height: 1.75; color: var(--text-secondary); }
.v2-setups-nota { margin-top: 18px; font-size: 12px; line-height: 1.7; color: var(--text-muted); max-width: 70ch; }

/* ── páginas de serviço curtas ────────────────────────────────── */
.v2-sec { padding: clamp(44px,6.5vh,76px) 0; }
.v2-sec-in { max-width: 1180px; margin: 0 auto; padding: 0 16px; }
.v2-sec h2 {
  font-family: var(--font-display); font-weight: 300;
  font-size: clamp(1.8rem,3.8vw,2.7rem); line-height: 1.1; margin: 0 0 12px;
}
.v2-sec h2 em { font-style: italic; color: var(--gold-light); }
.v2-list { display: grid; gap: 12px; margin-top: 24px; }
@media (min-width: 760px)  { .v2-list-2 { grid-template-columns: 1fr 1fr; } }
@media (min-width: 980px)  { .v2-list-3 { grid-template-columns: repeat(3,1fr); } }
.v2-li {
  background: var(--surface-2); border: 1px solid var(--line);
  border-radius: var(--radius-lg); padding: 18px 20px;
}
.v2-li h3 {
  font-family: var(--font-body); font-size: 14px; font-weight: 600;
  margin: 0 0 7px; color: var(--text-primary);
}
.v2-li p { margin: 0; font-size: 13px; line-height: 1.75; color: var(--text-secondary); }
.v2-cta {
  max-width: 1180px; margin: 0 auto clamp(48px,7vh,84px);
  padding: clamp(28px,4vw,48px) clamp(20px,3vw,40px);
  border-radius: var(--radius-xl); text-align: center;
  background: radial-gradient(700px 260px at 50% 0%, rgba(212,175,55,.1), transparent 70%), var(--surface-2);
  border: 1px solid rgba(212,175,55,.24);
}
.v2-cta h2 { font-family: var(--font-display); font-weight: 300; font-size: clamp(1.7rem,3.4vw,2.5rem); margin: 10px 0 10px; }
.v2-cta p { color: var(--text-secondary); font-size: 14px; margin: 0 auto 22px; max-width: 58ch; }
.v2-cta-b { display: flex; gap: 10px; justify-content: center; flex-wrap: wrap; }

/* ═══════════════════════════════════════════════════════════════
   PARTE 8 — menu móvel sem depender do mobile-menu.css
   Esse ficheiro chegou a estar em falta no servidor (404) e o menu
   deixava de abrir. Isto garante o mínimo: hambúrguer visível no
   telemóvel e painel a abrir por cima.
   ═══════════════════════════════════════════════════════════════ */
.btn-hamburger {
  display: none; flex-direction: column; justify-content: center; gap: 5px;
  width: 42px; height: 42px; padding: 0 9px; cursor: pointer;
  background: transparent; border: 1px solid var(--line); border-radius: 11px;
  z-index: 10001;
}
.btn-hamburger span {
  display: block; height: 1.5px; width: 100%; background: var(--gold-light);
  border-radius: 2px; transition: transform .25s ease, opacity .2s ease;
}
.btn-hamburger.active span:nth-child(1) { transform: translateY(6.5px) rotate(45deg); }
.btn-hamburger.active span:nth-child(2) { opacity: 0; }
.btn-hamburger.active span:nth-child(3) { transform: translateY(-6.5px) rotate(-45deg); }

.nav-overlay {
  position: fixed; inset: 0; z-index: 10000;
  background: rgba(9,9,10,.97); backdrop-filter: blur(18px);
  display: flex; flex-direction: column; align-items: center;
  gap: 4px; padding: 84px 20px 40px; overflow-y: auto;
  opacity: 0; visibility: hidden; transform: translateY(-8px);
  transition: opacity .25s ease, transform .25s ease, visibility .25s;
}
.nav-overlay.active { opacity: 1; visibility: visible; transform: none; }
.nav-overlay > a, .nav-overlay-items > a {
  display: block; width: 100%; max-width: 420px; text-align: center;
  padding: 13px 10px; color: var(--text-secondary); text-decoration: none;
  font-size: 15px; border-radius: 12px;
}
.nav-overlay > a:hover, .nav-overlay-items > a:hover { background: rgba(212,175,55,.08); color: var(--gold-light); }
.nav-overlay-header { display: flex; align-items: center; justify-content: space-between; width: 100%; max-width: 420px; margin-bottom: 14px; }
.nav-overlay-logo { height: 26px; width: auto; }
.nav-overlay .closebtn { font-size: 30px; line-height: 1; color: var(--text-muted); text-decoration: none; padding: 4px 10px; }
.nav-overlay-group { width: 100%; max-width: 420px; }
.nav-overlay-toggle {
  display: flex; align-items: center; justify-content: space-between; gap: 10px;
  width: 100%; padding: 13px 14px; cursor: pointer;
  background: transparent; border: 0; border-radius: 12px;
  color: var(--text-primary); font-family: var(--font-body); font-size: 15px;
}
.nav-overlay-toggle .nav-toggle-icon { color: var(--gold); transition: transform .2s ease; }
.nav-overlay-toggle.open .nav-toggle-icon { transform: rotate(45deg); }
.nav-overlay-items { display: none; padding: 2px 0 8px; }
.nav-overlay-items.open { display: block; }
.nav-overlay-items > a { font-size: 13.5px; color: var(--text-muted); }
.btn-menu-orcamento { margin-top: 16px; text-align: center; padding: 13px 22px !important; }
body.menu-open { overflow: hidden; }

@media (max-width: 1024px) {
  .main-nav { display: none !important; }
  .header-right { display: none !important; }
  .btn-hamburger { display: flex !important; }
}
@media (min-width: 1025px) {
  .nav-overlay { display: none !important; }
}
