/* ═══════════════════════════════════════════════════════════
   MA Masters — main.css — v1.3.3
   CSS 100% fiel ao mockup MA Masters 4.
   Tipografia e estrutura idênticas ao design system MA Media.
   ═══════════════════════════════════════════════════════════ */

/* ── 1. FONTES ───────────────────────────────────────────────
   Horizon Bold: self-hosted (Horizon-Bold.ttf no tema)
   Inter: Google Fonts CDN (substituir por self-hosted em prod)
   ──────────────────────────────────────────────────────────── */

@font-face {
  font-family: 'Horizon';
  src: url('../fonts/Horizon-Bold.woff2') format('woff2'),
       url('../fonts/Horizon-Bold.woff')  format('woff');
  font-weight: 700;
  font-style: normal;
  font-display: block;
  /* A Horizon declara um glifo para € (U+20AC) mas esse glifo esta VAZIO:
     desenha zero pixeis e so ocupa avanco. Como o caracter existe no cmap da
     fonte, o browser NAO faz fallback — renderiza o glifo em branco, e o €
     simplesmente desaparecia do total (verificado por medicao em canvas:
     0 pixeis para € em Horizon, 426 em Inter).

     O unicode-range abaixo cobre tudo EXCEPTO U+20AC, retirando o € do
     alcance desta face. O browser passa a ir buscá-lo a proxima familia da
     stack (Inter). Os algarismos (U+0030-0039) ficam intactos em Horizon —
     confirmado: 975 pixeis para "5", igual a antes.

     Nao alterar sem testar o €: e obrigatorio por lei na exibicao de precos. */
  unicode-range: U+0-20AB, U+20AD-10FFFF;
}

@import url('https://fonts.googleapis.com/css2?family=Inter:ital,wght@0,300;0,400;0,500;0,600;0,700;1,300;1,400&display=swap');

/* ── 2. VARIÁVEIS MAMEDIA-THEME ──────────────────────────────
   Naming convention do mamedia-theme — mamedia-blocks e plugins
   usam estes nomes. Definidos no body para maior especificidade.
   ──────────────────────────────────────────────────────────── */

body.mode-dark {
  /* mamedia-theme standard */
  --bg:        #090909;   --bg-alt:    #0c0c0a;
  --surface:   #0f0f0d;   --surface-2: #141412;
  --border:    #1c1c1a;   --border-2:  #242422;   --border-3:  #2e2e2c;
  --text:      #f0efe8;   --text-2:    #a0a090;   --text-3:    #606058;
  --text-4:    #3a3a38;   --text-5:    #1e1e1c;
  --dot-grid:  rgba(255,255,255,.03);
  --mm-gold:        #b8a07a;
  --mm-gold-hover:  #d4b896;
  --mm-gold-dark:   #9a845e;
  --mm-gold-bg:     rgba(184,160,122,.1);
  --mm-gold-border: rgba(184,160,122,.2);
  --font-heading: 'Horizon', 'Inter', system-ui, sans-serif;
  --font-body:    'Inter', system-ui, sans-serif;
  /* legacy aliases (mamedia-blocks usa surface-1) */
  --surface-1: var(--surface);
  /* aliases mockup shorthand */
  --s0:#0c0c0a; --s1:#0f0f0d; --s2:#141412; --s3:#1a1a18; --s4:#202020;
  --b1:#1c1c1a; --b2:#242422; --b3:#2e2e2c; --b4:#3a3a38;
  --g:#b8a07a;  --g2:#d4b896; --g3:rgba(184,160,122,.1); --g4:rgba(184,160,122,.06);
  --t1:#f0efe8; --t2:#a0a090; --t3:#606058; --t4:#3a3a38; --t5:#242422;
  --nav-bg:rgba(9,9,9,.95); --hero-dot-op:.7; --overlay-bg:rgba(9,9,9,.97);
  --cta-bg:var(--t1); --cta-c:#0a0a0a; --cta-bg-h:#fff;
  --r:10px; --r2:16px; --r3:24px; --rp:100px;
  /* Aliases mamedia-blocks (usa --r-md e --t) */
  --r-md:10px; --t:.15s ease;
  --fh:'Horizon','Inter',system-ui,sans-serif; --fb:'Inter',system-ui,sans-serif;
}

body.mode-light {
  /* mamedia-theme standard */
  --bg:        #f5f4f0;   --bg-alt:    #f0efe8;
  --surface:   #ffffff;   --surface-2: #f0efe9;
  --border:    #e4e2db;   --border-2:  #d0cec6;   --border-3:  #b8b6af;
  --text:      #0d0d0d;   --text-2:    #3a3a3a;   --text-3:    #6a6a6a;
  --text-4:    #a0a0a0;   --text-5:    #d0cfc8;
  --dot-grid:  rgba(0,0,0,.04);
  --mm-gold:        #b8a07a;
  --mm-gold-hover:  #d4b896;
  --mm-gold-dark:   #9a845e;
  --mm-gold-bg:     rgba(184,160,122,.08);
  --mm-gold-border: rgba(184,160,122,.2);
  --font-heading: 'Horizon', 'Inter', system-ui, sans-serif;
  --font-body:    'Inter', system-ui, sans-serif;
  --surface-1: var(--surface);
  --s0:#f0efe8; --s1:#ffffff; --s2:#ffffff; --s3:#f5f4f0; --s4:#ece9e1;
  --b1:#e4e2db; --b2:#d0cec6; --b3:#d0cec6; --b4:#a0a0a0;
  --g:#b8a07a;  --g2:#9a845e; --g3:rgba(184,160,122,.08); --g4:rgba(184,160,122,.06);
  --t1:#0d0d0d; --t2:#3a3a3a; --t3:#6a6a6a; --t4:#a0a0a0; --t5:#d0cfc8;
  --nav-bg:rgba(245,244,240,.95); --hero-dot-op:.5; --overlay-bg:rgba(245,244,240,.97);
  --cta-bg:#0d0d0d; --cta-c:#fff; --cta-bg-h:#141414;
  --r:10px; --r2:16px; --r3:24px; --rp:100px;
  --r-md:10px; --t:.15s ease;
  --fh:'Horizon','Inter',system-ui,sans-serif; --fb:'Inter',system-ui,sans-serif;
}

/* ── 3. RESET ────────────────────────────────────────────────*/

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

/* ══════════ MODE VARIABLES ══════════ */
.mode-dark{
  --bg:#090909;--s0:#0c0c0a;--s1:#0f0f0d;--s2:#141412;--s3:#1a1a18;--s4:#202020;
  --b1:#1c1c1a;--b2:#242422;--b3:#2e2e2c;--b4:#3a3a38;
  --g:#b8a07a;--g2:#d4b896;--g3:rgba(184,160,122,.1);--g4:rgba(184,160,122,.06);
  --t1:#f0efe8;--t2:#a0a090;--t3:#606058;--t4:#3a3a38;--t5:#242422;
  --nav-bg:rgba(9,9,9,.95);--hero-dot-op:.7;--overlay-bg:rgba(9,9,9,.97);
  --cta-bg:var(--t1);--cta-c:#0a0a0a;--cta-bg-h:#fff;
  --r:10px;--r2:16px;--r3:24px;--rp:100px;
  --fh:'Horizon','Inter',system-ui,sans-serif;--fb:'Inter',system-ui,sans-serif;
}
.mode-light{
  --bg:#f5f4f0;--s0:#f0efe8;--s1:#ffffff;--s2:#ffffff;--s3:#f5f4f0;--s4:#ece9e1;
  --b1:#e4e2db;--b2:#d0cec6;--b3:#d0cec6;--b4:#a0a0a0;
  --g:#b8a07a;--g2:#9a845e;--g3:rgba(184,160,122,.08);--g4:rgba(184,160,122,.06);
  --t1:#0d0d0d;--t2:#3a3a3a;--t3:#6a6a6a;--t4:#a0a0a0;--t5:#d0cfc8;
  --nav-bg:rgba(245,244,240,.95);--hero-dot-op:.5;--overlay-bg:rgba(245,244,240,.97);
  --cta-bg:#0d0d0d;--cta-c:#fff;--cta-bg-h:#141414;
  --r:10px;--r2:16px;--r3:24px;--rp:100px;
  --fh:'Horizon','Inter',system-ui,sans-serif;--fb:'Inter',system-ui,sans-serif;
}



/* ── SWITCHER ── */







/* ══════════ SHARED COMPONENT STYLES ══════════ */
.mm{font-family:var(--fb);line-height:1.5}
.mm nav.sn{height:60px;display:flex;align-items:center;justify-content:space-between;
  padding:0 56px;border-bottom:1px solid var(--b1);background:var(--nav-bg);
  backdrop-filter:blur(16px);position:sticky;top:50px;z-index:100}
.mm .nl img{height:24px;width:auto}
.mm .nm{display:flex;gap:28px;align-items:center}
.mm .nm a{color:var(--t3);font-size:13px;text-decoration:none;transition:color .15s}
.mm .nm a:hover{color:var(--t1)}
.mm .ncta{background:var(--g);color:#000;padding:8px 20px;border-radius:8px;
  font-size:13px;font-weight:600;text-decoration:none;transition:background .15s}
.mm .ncta:hover{background:var(--g2)}

/* Buttons — MA Masters (classes do tema MA Media) */
.mm .bgold{display:inline-flex;align-items:center;gap:8px;background:var(--g);color:#000;
  padding:12px 24px;border-radius:9px;font-size:13px;font-weight:600;
  text-decoration:none;cursor:pointer;border:none;font-family:var(--fb);transition:background .15s}
.mm .bgold:hover{background:var(--g2)}
/* Ghost: border visível em dark mode (--b3 é demasiado escuro) */
.mm .bgh{display:inline-flex;align-items:center;gap:8px;border:1px solid rgba(255,255,255,.18);color:var(--t2);
  padding:12px 22px;border-radius:9px;font-size:13px;text-decoration:none;cursor:pointer;
  background:transparent;font-family:var(--fb);transition:all .15s}
.mm .bgh:hover{border-color:rgba(255,255,255,.35);color:var(--t1)}
.mm .bg{display:inline-flex;align-items:center;gap:8px;background:var(--cta-bg);color:var(--cta-c);
  padding:12px 24px;border-radius:9px;font-size:13px;font-weight:500;
  text-decoration:none;cursor:pointer;border:none;font-family:var(--fb);transition:background .15s}
.mm .bg:hover{background:var(--cta-bg-h)}

/* Aliases mamedia-blocks (.btn-*) → mesmo estilo que .bgold/.bgh/.bg
   O plugin carrega o seu blocks.css com estas classes, mas o tema
   fornece-as também como fallback e garante as variáveis corretas. */
.mm .btn-gold,
.mm .btn-booking   { display:inline-flex;align-items:center;gap:8px;
  background:var(--mm-gold,#b8a07a);color:#000;padding:12px 24px;
  border-radius:var(--r-md,10px);font-size:13px;font-weight:600;
  font-family:var(--fb);text-decoration:none;border:none;cursor:pointer;
  transition:background var(--t,.15s ease);white-space:nowrap }
.mm .btn-gold:hover,
.mm .btn-booking:hover { background:var(--mm-gold-hover,#d4b896) }

.mm .btn-primary   { display:inline-flex;align-items:center;gap:8px;
  background:var(--text,#f0efe8);color:var(--bg,#090909);padding:12px 24px;
  border-radius:var(--r-md,10px);font-size:13px;font-weight:500;
  font-family:var(--fb);text-decoration:none;border:none;cursor:pointer;
  transition:opacity var(--t,.15s ease) }
.mm .btn-primary:hover { opacity:.85 }

.mm .btn-ghost     { display:inline-flex;align-items:center;gap:8px;
  border:1px solid rgba(255,255,255,.18);color:var(--text-2,#a0a090);
  padding:12px 22px;border-radius:var(--r-md,10px);font-size:13px;
  font-family:var(--fb);text-decoration:none;background:transparent;cursor:pointer;
  transition:border-color var(--t,.15s ease),color var(--t,.15s ease);white-space:nowrap }
.mm .btn-ghost:hover { border-color:rgba(255,255,255,.35);color:var(--text,#f0efe8) }

/* Mode-light override para ghost buttons */
.mm.mode-light .bgh,
.mm .mode-light .bgh    { border-color:var(--b2,#d0cec6);color:var(--t2) }
.mm.mode-light .bgh:hover,
.mm .mode-light .bgh:hover { border-color:var(--b3,#a0a0a0);color:var(--t1) }
.mm.mode-light .btn-ghost,
.mm .mode-light .btn-ghost { border-color:var(--border-2,#d0cec6);color:var(--text-2) }
.mm.mode-light .btn-ghost:hover,
.mm .mode-light .btn-ghost:hover { border-color:var(--border-3,#a0a0a0);color:var(--text) }


/* Typography */
.mm h1{font-size:62px;font-weight:300;line-height:1.04;color:var(--t1);letter-spacing:-2px}
.mm h1 .h{font-family:var(--fh);font-weight:700;letter-spacing:.04em;display:inline}
.mm h1 em{font-style:normal;color:var(--g)}
.mm h2{font-size:38px;font-weight:300;line-height:1.1;color:var(--t1);letter-spacing:-1px}
.mm h2 .h{font-family:var(--fh);font-weight:700;letter-spacing:.04em}
.mm h2 em{font-style:normal;color:var(--g)}
.mm h3{font-size:20px;font-weight:600;color:var(--t1);letter-spacing:-.3px}
.mm .lbl{font-size:11px;font-weight:500;color:var(--g);letter-spacing:1.5px;text-transform:uppercase;margin-bottom:12px}

/* Hero */
.mm .hero{padding:100px 56px 80px;position:relative;overflow:hidden;border-bottom:1px solid var(--b1);background:var(--bg)}
.mm .hero::before{content:'';position:absolute;inset:0;
  background-image:radial-gradient(var(--b1) 1px,transparent 1px);
  background-size:28px 28px;opacity:var(--hero-dot-op)}
.mm .hero-inner{max-width:1040px;margin:0 auto;position:relative;z-index:1}
.mm .hero-tag{display:inline-flex;align-items:center;gap:8px;
  border:1px solid var(--b3);border-radius:100px;padding:5px 14px;margin-bottom:32px;background:var(--s2)}
.mm .hero-tag-dot{width:5px;height:5px;border-radius:50%;background:var(--g)}
.mm .hero-tag span{font-size:12px;color:var(--t3)}
.mm .hero-sub{font-size:16px;color:var(--t3);line-height:1.8;max-width:520px;margin-bottom:36px;font-weight:300}
.mm .hero-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:40px}

/* Sections */
.mm .sec{padding:96px 56px;border-bottom:1px solid var(--b1);background:var(--bg)}
.mm .sec-alt{background:var(--s0)}
.mm .sec-inner{max-width:1040px;margin:0 auto}

/* Occupancy bar */
.occ{margin-top:40px;padding-top:40px;border-top:1px solid var(--b2)}
.occ-bar{height:8px;background:var(--s3);border-radius:4px;overflow:hidden;border:1px solid var(--b2);margin-bottom:10px}
.occ-fill{height:100%;border-radius:4px;background:var(--g);transition:width .6s ease}
.occ-info{display:flex;justify-content:space-between;font-size:12px}
.occ-sold{color:var(--g);font-weight:600}
.occ-left{color:var(--t3)}

/* Timeline / Agenda */
.agenda-item{display:grid;grid-template-columns:100px 1fr;gap:24px;padding:24px 0;border-bottom:1px solid var(--b2)}
.agenda-item:last-child{border-bottom:none}
.agenda-time{font-family:var(--fh);font-size:15px;letter-spacing:.04em;color:var(--g);padding-top:2px}
.agenda-body h4{font-size:16px;font-weight:600;color:var(--t1);margin-bottom:4px}
.agenda-body p{font-size:13px;color:var(--t3);line-height:1.6}

/* Speaker cards */
.spk-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:40px}
.spk{background:var(--s1);border:1px solid var(--b1);border-radius:16px;padding:32px;text-align:center;transition:border-color .2s}
.spk:hover{border-color:var(--b3)}
.spk-av{width:80px;height:80px;border-radius:50%;background:var(--g3);border:1px solid var(--b3);
  display:flex;align-items:center;justify-content:center;margin:0 auto 20px;
  font-size:24px;font-weight:700;color:var(--g);font-family:var(--fh)}
.spk-name{font-size:16px;font-weight:600;color:var(--t1);margin-bottom:4px}
.spk-role{font-size:12px;color:var(--t3);margin-bottom:16px}
.spk-topic{font-size:13px;color:var(--t2);line-height:1.5;font-style:italic}

/* Ticket cards */
.tkt-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-top:40px}
.tkt{background:var(--s1);border:1px solid var(--b1);border-radius:16px;overflow:hidden;transition:border-color .2s;position:relative}
.tkt:hover{border-color:var(--b3)}
.tkt.pop{border-color:var(--g)}
.tkt.pop::before{content:attr(data-badge);position:absolute;top:16px;right:16px;
  font-size:9px;font-weight:700;letter-spacing:1.5px;color:#000;background:var(--g);
  padding:4px 10px;border-radius:100px}

/* Título de destaque (Horizon Bold — Opção B) */
.tkt-highlight{
  font-family:var(--fh);
  font-size:18px;
  font-weight:700;
  color:var(--t1);
  letter-spacing:-.3px;
  line-height:1.2;
  margin-bottom:12px;
}
.tkt-head{padding:32px 32px 0}
.tkt-name{font-size:11px;font-weight:600;letter-spacing:2px;text-transform:uppercase;color:var(--g);margin-bottom:12px}
.tkt-price{font-size:44px;font-weight:700;color:var(--t1);letter-spacing:-2px;margin-bottom:4px;font-family:var(--fh)}
.tkt-price-note{font-size:12px;color:var(--t3);margin-bottom:24px}
.tkt-body{padding:0 32px 32px}
.tkt-feat{list-style:none;padding:0;margin:0 0 24px}
.tkt-feat li{font-size:13px;color:var(--t2);padding:8px 0;border-bottom:1px solid var(--b2);display:flex;align-items:center;gap:10px}
.tkt-feat li:last-child{border-bottom:none}
.tkt-feat li::before{content:'✓';color:var(--g);font-weight:700;font-size:14px}
.tkt-feat li.x::before{content:'—';color:var(--t4)}
.tkt-feat li.x{color:var(--t4)}

/* FAQ */
.faq-item{background:var(--s1);border:1px solid var(--b1);border-radius:16px;padding:24px;margin-bottom:12px}
.faq-q{font-size:15px;font-weight:600;color:var(--t1);margin-bottom:8px}
.faq-a{font-size:13px;color:var(--t3);line-height:1.7}

/* Testimonials */
.tst-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:40px}
.tst{background:var(--s1);border:1px solid var(--b1);border-radius:16px;padding:24px}
.tst-stars{color:var(--g);font-size:13px;letter-spacing:2px;margin-bottom:14px}
.tst-text{font-size:13px;color:var(--t2);line-height:1.7;font-style:italic;margin-bottom:16px;font-weight:300}
.tst-author{display:flex;align-items:center;gap:10px}
.tst-av{width:28px;height:28px;border-radius:50%;background:var(--g3);border:1px solid var(--b3);
  display:flex;align-items:center;justify-content:center;font-size:9px;font-weight:700;color:var(--g);flex-shrink:0}
.tst-info strong{font-size:11px;font-weight:500;color:var(--t1);display:block}
.tst-info span{font-size:10px;color:var(--t4)}

/* CTA Section */
.mm .cta-sec{padding:96px 56px;text-align:center;position:relative;overflow:hidden;background:var(--s0)}
.mm .cta-sec::before{content:'';position:absolute;inset:0;
  background-image:radial-gradient(var(--b1) 1px,transparent 1px);
  background-size:28px 28px;opacity:.8}
.mm .cta-sec::after{content:'';position:absolute;top:0;left:50%;
  transform:translateX(-50%);width:400px;height:1px;background:var(--g);opacity:.2}
.mm .cta-inner{position:relative;z-index:1;max-width:640px;margin:0 auto}

/* Footer */
.mm footer{background:var(--bg);border-top:1px solid var(--b1);padding:28px 56px}
.mm .ft-bot{display:flex;align-items:center;justify-content:space-between}
.mm .ft-bot span{color:var(--t4);font-size:11px}

/* ── WOO PRODUCT PAGE ── */
.woo-product{display:grid;grid-template-columns:1fr 1fr;gap:0;min-height:calc(100vh - 110px)}
.woo-visual{background:var(--s1);border-right:1px solid var(--b1);display:flex;align-items:center;justify-content:center;padding:56px;position:relative}
.woo-visual::before{content:'';position:absolute;inset:0;
  background-image:radial-gradient(var(--b1) 1px,transparent 1px);background-size:28px 28px;opacity:.5}
.woo-card-preview{background:var(--bg);border:1px solid var(--b2);border-radius:24px;
  padding:40px;width:100%;max-width:380px;position:relative;z-index:1;text-align:center}
.woo-card-preview .gold-line{position:absolute;top:0;left:50%;transform:translateX(-50%);width:80px;height:2px;background:var(--g);border-radius:0 0 2px 2px}
.woo-details{padding:56px;overflow-y:auto}
.woo-breadcrumb{font-size:12px;color:var(--t4);margin-bottom:24px}
.woo-breadcrumb a{color:var(--t3);text-decoration:none}
.woo-title{font-size:32px;font-weight:300;color:var(--t1);letter-spacing:-1px;margin-bottom:8px}
.woo-title .h{font-family:var(--fh);font-weight:700;letter-spacing:.04em}
.woo-price-box{font-size:44px;font-weight:700;color:var(--g);font-family:var(--fh);letter-spacing:-1px;margin-bottom:8px}
.woo-price-note{font-size:13px;color:var(--t3);margin-bottom:24px}
.woo-desc{font-size:14px;color:var(--t3);line-height:1.7;margin-bottom:24px;padding-bottom:24px;border-bottom:1px solid var(--b2)}
.woo-meta{margin-bottom:24px}
.woo-meta-row{display:flex;justify-content:space-between;padding:10px 0;border-bottom:1px solid var(--b2);font-size:13px}
.woo-meta-row:last-child{border-bottom:none}
.woo-meta-label{color:var(--t3)}
.woo-meta-val{color:var(--t1);font-weight:500}
.woo-qty{display:flex;align-items:center;gap:12px;margin-bottom:24px}
.woo-qty label{font-size:12px;color:var(--t3);font-weight:500;text-transform:uppercase;letter-spacing:1px}
.woo-qty-ctrl{display:flex;align-items:center;border:1px solid var(--b2);border-radius:9px;overflow:hidden}
.woo-qty-btn{width:40px;height:40px;background:var(--s2);border:none;color:var(--t2);font-size:18px;cursor:pointer;font-family:var(--fb)}
.woo-qty-btn:hover{background:var(--s3);color:var(--t1)}
.woo-qty-val{width:48px;height:40px;text-align:center;background:var(--bg);border:none;
  border-left:1px solid var(--b2);border-right:1px solid var(--b2);color:var(--t1);font-size:14px;font-weight:600;font-family:var(--fb)}
.woo-includes{margin-bottom:24px}
.woo-includes h4{font-size:11px;font-weight:600;letter-spacing:1.5px;text-transform:uppercase;color:var(--t3);margin-bottom:12px}
.woo-includes li{font-size:13px;color:var(--t2);padding:6px 0;display:flex;align-items:center;gap:8px;list-style:none}
.woo-includes li::before{content:'✓';color:var(--g);font-weight:700}

@keyframes slideUp{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}

/* ── 4. WORDPRESS BODY BASE ──────────────────────────────────
   O mockup usa body com background fixo #090909.
   No WP, o modo é controlado pela classe no body/wrapper.
   ──────────────────────────────────────────────────────────── */

body {
  font-family: var(--fb, 'Inter', system-ui, sans-serif);
  -webkit-font-smoothing: antialiased;
  line-height: 1.5;
  overflow-x: hidden;
  background-color: var(--bg, #090909);
  color: var(--t1, #f0efe8);
}

/* ── 5. SITE HEADER (mamedia-theme structure) ────────────────
   O mockup usa nav.sn dentro de .mm.
   No WP, o header é #masthead.site-header.
   ──────────────────────────────────────────────────────────── */

.site-header {
  position: sticky; top: 0; z-index: 100;
  background: var(--nav-bg);
  backdrop-filter: blur(16px);
  border-bottom: 1px solid var(--b1);
  height: 60px;
}
.site-header__inner {
  display: flex; align-items: center; justify-content: space-between;
  height: 100%; padding: 0 56px;
}
.site-header__logo { flex-shrink: 0; }
.site-header__logo img { height: 24px; width: auto; }
.site-header__logo a { display: flex; align-items: center; gap: 8px; text-decoration: none; }
.site-header__logo-text {
  font-family: var(--fh); font-size: 16px; font-weight: 700;
  letter-spacing: .04em; color: var(--t1);
}

.site-header__nav { flex: 1; padding: 0 40px; }
.site-header__nav .nav-menu {
  display: flex; gap: 28px; list-style: none; margin: 0; padding: 0;
}
.site-header__nav .nav-menu li a {
  color: var(--t3); font-size: 13px; text-decoration: none; transition: color .15s;
}
.site-header__nav .nav-menu li a:hover,
.site-header__nav .nav-menu li.current-menu-item > a { color: var(--t1); }

.site-header__right { display: flex; align-items: center; gap: 12px; flex-shrink: 0; }

/* Lang switcher */
.site-header__lang .ml-switcher { display: flex; align-items: center; gap: 6px; }
.site-header__lang .ml-switcher__item {
  font-size: 12px; font-weight: 600; letter-spacing: .05em;
  color: var(--t3); cursor: pointer; text-decoration: none; transition: color .15s;
}
.site-header__lang .ml-switcher__item--active { color: var(--t1); cursor: default; }
.site-header__lang .ml-switcher--inline .ml-switcher__item + .ml-switcher__item::before {
  content: '|'; margin-right: 6px; color: var(--b3); font-weight: 300;
}

/* Mobile toggle */
.menu-toggle {
  display: none; flex-direction: column; gap: 5px;
  width: 36px; height: 36px; align-items: center; justify-content: center;
  border: 1px solid var(--b2); border-radius: 8px;
  background: transparent; cursor: pointer; padding: 0;
}
.menu-toggle__bar { display: block; width: 18px; height: 2px; background: var(--t2); border-radius: 1px; }

/* Skip link */
.skip-link { position: absolute; left: -999em; }
.skip-link:focus {
  left: 6px; top: 7px; z-index: 9999; padding: 6px 14px;
  background: var(--g); color: #000; border-radius: 6px; font-size: 13px; font-weight: 600;
}

/* ── 6. SITE FOOTER ──────────────────────────────────────────*/

.site-footer { background: var(--bg); border-top: 1px solid var(--b1); }
.site-footer__inner { max-width: 1400px; margin: 0 auto; padding: 64px 56px 28px; }
.site-footer__top {
  display: grid;
  grid-template-columns: 280px repeat(3, 1fr);
  gap: 48px;
  padding-bottom: 48px;
  border-bottom: 1px solid var(--b1);
  margin-bottom: 28px;
}
.site-footer__brand-logo { margin-bottom: 16px; }
.site-footer__brand-logo img { height: 24px; width: auto; }
.site-footer__tagline { font-size: 13px; color: var(--t3); line-height: 1.6; margin-bottom: 20px; }
/* Redes sociais — botões redondos com ícone SVG (1.15.0).
   Antes eram links de texto em maiúsculas. */
.social-nav {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
  list-style: none;
  margin: 16px 0 0;
  padding: 0;
}
.social-nav li { margin: 0; }
.social-nav__link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 38px;
  height: 38px;
  border-radius: 50%;
  color: var(--t2, #a0a090);
  background: var(--s1, #0f0f0d);
  border: 1px solid var(--b1, #1c1c1a);
  text-decoration: none;
  transition: color .15s, border-color .15s, background .15s, transform .15s;
}
.social-nav__link:hover,
.social-nav__link:focus-visible {
  color: var(--bg, #090909);
  background: var(--g, #b8a07a);
  border-color: var(--g, #b8a07a);
  transform: translateY(-2px);
}
.social-nav__link:focus-visible { outline: 2px solid var(--g, #b8a07a); outline-offset: 3px; }
.social-nav__initial { font-size: 13px; font-weight: 700; line-height: 1; }
/* Ícone Font Awesome. Cobre os dois modos do plugin oficial: webfont (o <i>
   fica com o glifo) e svg-with-js (o <i> é substituído por um <svg>). */
.social-nav__link i { font-size: 17px; line-height: 1; }
.social-nav__link svg { width: 18px; height: 18px; display: block; }

@media (prefers-reduced-motion: reduce) {
  .social-nav__link { transition: none; }
  .social-nav__link:hover { transform: none; }
}
.site-footer__col-title {
  font-size: 11px; font-weight: 700; letter-spacing: 1.5px;
  text-transform: uppercase; color: var(--t1); margin-bottom: 16px;
}
.footer-nav { list-style: none; padding: 0; margin: 0; }
.footer-nav li { margin-bottom: 10px; }
.footer-nav li a { font-size: 13px; color: var(--t3); text-decoration: none; transition: color .15s; }
.footer-nav li a:hover { color: var(--t1); }
.site-footer__bottom { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 8px; }
.site-footer__copyright, .footer-copyright,
.site-footer__legal-note, .footer-note { font-size: 11px; color: var(--t4); line-height: 1.6; }

/* ── 7. WP PAGE WRAPPER ──────────────────────────────────────
   O mockup usa .mm como wrapper. No WP o wrapper é #page.mm
   com a classe mode-dark/mode-light.
   ──────────────────────────────────────────────────────────── */

#page { background: var(--bg); min-height: 100vh; }
.site-content { min-height: 60vh; }

/* ── 8. MA MASTERS BLOCKS ────────────────────────────────────*/

.mamb-sold-out-badge {
  display: block; text-align: center; padding: 10px;
  font-size: 12px; font-weight: 600; letter-spacing: 1px; text-transform: uppercase;
  color: var(--t3); border: 1px solid var(--b2); border-radius: 9px;
}
.tkt.sold-out { opacity: .6; }
.mamb-urgency-badge {
  font-size: 11px; font-weight: 600; letter-spacing: 1px;
  color: var(--g); text-transform: uppercase; margin-bottom: 10px;
}
.mamb-event-meta__grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 16px; }
.mamb-event-meta__item {
  display: flex; align-items: flex-start; gap: 12px;
  background: var(--s1); border: 1px solid var(--b1); border-radius: 12px; padding: 16px 20px;
}
.mamb-event-meta__icon { font-size: 20px; flex-shrink: 0; line-height: 1; }
.mamb-event-meta__item div { display: flex; flex-direction: column; gap: 2px; }
.mamb-event-meta__item strong { font-size: 14px; color: var(--t1); font-weight: 600; }
.mamb-event-meta__item span  { font-size: 11px; color: var(--t3); }

/* ── 9. CHECKOUT ─────────────────────────────────────────────*/

.checkout-grid { display: grid; grid-template-columns: 1fr 380px; gap: 40px; align-items: start; }
.checkout-section h3 { font-size: 16px; font-weight: 600; color: var(--t1); margin-bottom: 20px; }
.checkout-order-review { background: var(--s1); border: 1px solid var(--b1); border-radius: 16px; padding: 28px; }
.checkout-order-review h3 { font-size: 15px; font-weight: 600; color: var(--t1); margin-bottom: 20px; }

/* ── 10. ANIMAÇÕES ───────────────────────────────────────────*/

@keyframes slideUp { from{opacity:0;transform:translateY(24px)} to{opacity:1;transform:translateY(0)} }

/* ── 11. RESPONSIVE ──────────────────────────────────────────*/

@media (max-width: 1024px) {
  .site-header__inner { padding: 0 32px; }
  .site-footer__inner { padding: 48px 32px 24px; }
  .site-footer__top { grid-template-columns: 1fr 1fr; gap: 32px; }
  .mm .hero, .mm .sec, .mm .cta-sec { padding-inline: 32px; }
  .woo-product { grid-template-columns: 1fr; }
  .tkt-grid { grid-template-columns: 1fr 1fr; }
  .spk-grid { grid-template-columns: 1fr 1fr; }
  .tst-grid { grid-template-columns: 1fr 1fr; }
  .checkout-grid { grid-template-columns: 1fr; }
}

@media (max-width: 768px) {
  .site-header__inner { padding: 0 20px; }
  .site-header__nav { display: none; }
  .site-header__nav.open {
    display: block; position: absolute; top: 60px; left: 0; right: 0;
    background: var(--nav-bg); backdrop-filter: blur(16px);
    border-bottom: 1px solid var(--b1); padding: 16px 20px 20px; z-index: 99;
  }
  .site-header__nav.open .nav-menu { flex-direction: column; gap: 4px; }
  .site-header__nav.open .nav-menu li a { display: block; padding: 8px 0; font-size: 15px; }
  .menu-toggle { display: flex; }
  .mm .hero, .mm .sec, .mm .cta-sec { padding-inline: 20px; }
  .mm .hero { padding-block: 56px 40px; }
  .mm h1 { font-size: clamp(32px, 8vw, 52px); letter-spacing: -1.5px; }
  .mm h2 { font-size: clamp(24px, 6vw, 32px); }
  .tkt-grid { grid-template-columns: 1fr; }
  .spk-grid { grid-template-columns: 1fr 1fr; }
  .tst-grid { grid-template-columns: 1fr; }
  .agenda-item { grid-template-columns: 72px 1fr; gap: 12px; }
  .woo-product { grid-template-columns: 1fr; }
  .woo-visual { min-height: 280px; padding: 32px; }
  .site-footer__inner { padding: 40px 20px 20px; }
  .site-footer__top { grid-template-columns: 1fr; gap: 28px; }
  .site-footer__bottom { flex-direction: column; align-items: flex-start; gap: 6px; }
}

/* ══════════════════════════════════════════════════════════════
   GUTENBERG NATIVE BLOCKS — PADDING & CONTAINMENT
   Blocos nativos (heading, paragraph, html, group) não têm CSS
   próprio. Aqui damos-lhes o mesmo padding horizontal do design.
   Os mamedia-blocks (<section class="mamedia-*">) têm o seu
   próprio CSS do plugin e ficam excluídos destas regras.
   ══════════════════════════════════════════════════════════════ */

/* Contentor base para blocos nativos standalone */
.site-content > .wp-block-heading,
.site-content > .wp-block-paragraph,
.site-content > .wp-block-html,
.site-content > .wp-block-group,
.site-content > .wp-block-cover,
.site-content > .wp-block-columns,
.site-content > .wp-block-separator,
.site-content > .wp-block-list,
.site-content > .wp-block-image,
.site-content > .wp-block-quote {
    padding-inline: 56px;
    max-width: 1152px;
    margin-inline: auto;
    box-sizing: border-box;
    width: 100%;
    display: block;
}

/* Separador (hr) não precisa de max-width forçado */
.site-content > .wp-block-separator {
    max-width: none;
    border: none;
    border-top: 1px solid var(--b1);
    margin: 0;
    padding: 0;
}

/* Espaçamento vertical entre blocos nativos standalone */
.site-content > .wp-block-heading {
    padding-block: 20px 0;
}
.site-content > .wp-block-heading + .wp-block-paragraph {
    padding-top: 0;
}
.site-content > .wp-block-paragraph {
    padding-block: 0 0;
}

/* Grupos de conteúdo (agenda, FAQ, etc.) dentro de wp-block-html */
.site-content > .wp-block-html {
    padding-block: 0;
}

/* Secções completas com .sec dentro de HTML blocks */
.site-content .sec {
    padding: 96px 56px;
    border-bottom: 1px solid var(--b1);
    background: var(--bg);
}
.site-content .sec-alt { background: var(--s0); }
.site-content .sec-inner { max-width: 1040px; margin: 0 auto; }

/* Responsive — native blocks */
@media (max-width: 1024px) {
    .site-content > .wp-block-heading,
    .site-content > .wp-block-paragraph,
    .site-content > .wp-block-html,
    .site-content > .wp-block-group { padding-inline: 32px; }
    .site-content .sec { padding-inline: 32px; }
}

@media (max-width: 768px) {
    .site-content > .wp-block-heading,
    .site-content > .wp-block-paragraph,
    .site-content > .wp-block-html,
    .site-content > .wp-block-group { padding-inline: 20px; }
    .site-content .sec { padding-inline: 20px; }
}



/* ── WORDPRESS BLOCK LAYOUT RESETS ──────────────────────────
   Mínimo necessário. NÃO remover padding/margin dos blocos.
   ──────────────────────────────────────────────────────────── */

/* O WordPress adiciona padding ao .wp-site-blocks se useRootPaddingAwareAlignments=true
   Desactivado no theme.json mas garantir aqui como fallback */
.wp-site-blocks { padding: 0; }

/* Remover só o gap entre blocos — não o padding interno */
.is-layout-flow > * + * { margin-block-start: 0; }

/* Garantir que blocos full-width não são constrangidos */
.wp-block-post-content > .alignfull,
.entry-content > .alignfull {
  max-width: 100vw;
  margin-inline: 0;
}

/* Evitar que WordPress adicione max-width ao content area */
.wp-block-post-content,
.entry-content {
  max-width: none;
  padding: 0;
  margin: 0;
}

/* ═══════════════════════════════════════════════════════════
   OVERRIDE WORDPRESS GLOBAL STYLES — BLOCK GAP & MARGINS
   O WordPress injeta margin-block-start:24px em todos os blocos
   via global-styles-inline-css. Anulamos aqui com especificidade
   suficiente para ganhar sem !important excessivo.
   ═══════════════════════════════════════════════════════════ */

:root { --wp--style--block-gap: 0px; }

:where(.wp-site-blocks) > * {
  margin-block-start: 0;
  margin-block-end: 0;
}
:where(.wp-site-blocks) > :first-child { margin-block-start: 0; }
:where(.wp-site-blocks) > :last-child  { margin-block-end:   0; }

:root :where(.is-layout-flow) > * {
  margin-block-start: 0;
  margin-block-end:   0;
}
:root :where(.is-layout-constrained) > * {
  margin-block-start: 0;
  margin-block-end:   0;
}

/* ─── Padding lateral para blocos WP nativos soltos no content ──────────────
   Quando o editor coloca um wp:heading, wp:paragraph ou wp:columns
   directamente no content area (sem wrapper .sec), estes não têm padding.
   Esta regra garante 56px de cada lado, igual ao padding das secções.
   Os blocos mamedia têm o seu próprio padding via blocks.css — não os tocar.
   ─────────────────────────────────────────────────────────────────────────── */

.site-content > .wp-block-heading,
.site-content > .wp-block-paragraph,
.site-content > .wp-block-columns,
.site-content > .wp-block-html,
.site-content > .wp-block-list,
.site-content > .wp-block-quote,
.site-content > .wp-block-separator,
.site-content > .wp-block-group:not([class*="mamedia"]):not(.sec):not(.sec-alt),
/* Fallback directo em #main */
#main > .wp-block-heading,
#main > .wp-block-paragraph,
#main > .wp-block-columns,
#main > .wp-block-html,
#main > .wp-block-group:not([class*="mamedia"]):not(.sec):not(.sec-alt) {
  padding-inline: 56px;
  max-width: 100%;
  box-sizing: border-box;
  background: var(--bg);
  border-bottom: 1px solid var(--b1);
  padding-block: 48px;
}

@media (max-width: 1024px) {
  .site-content > .wp-block-heading,
  .site-content > .wp-block-paragraph,
  .site-content > .wp-block-columns,
  .site-content > .wp-block-html,
  .site-content > .wp-block-group:not([class*="mamedia"]):not(.sec):not(.sec-alt),
  #main > .wp-block-heading, #main > .wp-block-paragraph,
  #main > .wp-block-columns, #main > .wp-block-html {
    padding-inline: 32px;
  }
}

@media (max-width: 768px) {
  .site-content > .wp-block-heading,
  .site-content > .wp-block-paragraph,
  .site-content > .wp-block-columns,
  .site-content > .wp-block-html,
  .site-content > .wp-block-group:not([class*="mamedia"]):not(.sec):not(.sec-alt),
  #main > .wp-block-heading, #main > .wp-block-paragraph,
  #main > .wp-block-columns, #main > .wp-block-html {
    padding-inline: 20px;
  }
}

/* ─── Occupancy bar standalone ─────────────────────────────────────────────
   Quando usado como bloco autónomo (fora do hero), o .occ precisa
   de padding lateral e fundo para aparecer como secção própria.
   ─────────────────────────────────────────────────────────────────────────── */

.mamb-occ-section {
  background: var(--bg);
  border-bottom: 1px solid var(--b1);
  padding: 40px 56px;
}
.mamb-occ-section .occ {
  margin-top: 0;
  padding-top: 0;
  border-top: none;
  max-width: 1040px;
  margin-inline: auto;
}

@media (max-width: 1024px) { .mamb-occ-section { padding-inline: 32px; } }
@media (max-width: 768px)  { .mamb-occ-section { padding-inline: 20px; } }

/* ─── Blocos placeholder do mamedia-blocks ─────────────────────────────────
   Os placeholders (stats/speakers/testimonials sem conteúdo)
   devem ter padding para não ir edge-to-edge.
   ─────────────────────────────────────────────────────────────────────────── */

.site-content > div[style*="dashed"],
#main > div[style*="dashed"] {
  padding: 24px 56px !important;
  border-inline: none !important;
  border-radius: 0 !important;
}

/* ── MA Masters Testemunhos em Destaque ──────────────────────────── */

.mamb-tst-grid {
  display: grid;
  gap: 20px;
  margin-top: 40px;
}
.mamb-tst-grid--1 { grid-template-columns: 1fr; max-width: 640px; }
.mamb-tst-grid--2 { grid-template-columns: 1fr 1fr; }

.mamb-tst {
  background: var(--s1);
  border: 1px solid var(--b1);
  border-radius: var(--r2);
  padding: 36px;
  display: flex;
  flex-direction: column;
  gap: 20px;
  transition: border-color var(--t);
}
.mamb-tst:hover { border-color: var(--b3); }

.mamb-tst__stars {
  font-size: 18px;
  letter-spacing: 3px;
  color: var(--g);
  line-height: 1;
}

.mamb-tst__text {
  font-size: 16px;
  line-height: 1.75;
  color: var(--t2);
  font-style: italic;
  font-weight: 300;
  margin: 0;
  flex: 1;
}

.mamb-tst__author {
  display: flex;
  align-items: center;
  gap: 12px;
  border-top: 1px solid var(--b2);
  padding-top: 20px;
}

.mamb-tst__av {
  width: 40px;
  height: 40px;
  border-radius: 50%;
  background: var(--g3);
  border: 1px solid var(--g4, rgba(184,160,122,.2));
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 13px;
  font-weight: 700;
  color: var(--g);
  font-family: var(--fh);
  flex-shrink: 0;
}

.mamb-tst__info { display: flex; flex-direction: column; gap: 2px; }
.mamb-tst__info strong { font-size: 13px; font-weight: 600; color: var(--t1); }
.mamb-tst__info span   { font-size: 11px; color: var(--t3); }

@media (max-width: 768px) {
  .mamb-tst-grid--2 { grid-template-columns: 1fr; }
  .mamb-tst { padding: 24px; }
}

/* ── MA Masters About Story ──────────────────────────────────────── */

.mamb-about-story {
  display: grid;
  grid-template-columns: 1fr 1fr;
  min-height: 480px;
  border: 1px solid var(--b1);
  border-radius: var(--r2);
  overflow: hidden;
}

.mamb-about-story__visual {
  border-right: 1px solid var(--b1);
}

.mamb-about-story__edition {
  padding: 40px;
}

.mamb-about-story__edition-number {
  font-family: var(--fh);
  font-size: clamp(72px, 12vw, 140px);
  font-weight: 700;
  color: #fff;
  letter-spacing: -.04em;
  line-height: 1;
  display: block;
  text-shadow: 0 4px 32px rgba(0,0,0,.4);
}

/* Quando não há imagem, o número usa a cor gold */
.mamb-about-story__visual:not([style*="background-image"]) .mamb-about-story__edition-number {
  color: var(--g);
}

.mamb-about-story__content {
  padding: 56px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  background: var(--bg);
}

.mamb-about-story__content h2 { font-weight: 300; }
.mamb-about-story__content p  { margin-top: 16px; }

@media (max-width: 768px) {
  .mamb-about-story { grid-template-columns: 1fr; }
  .mamb-about-story__visual { min-height: 240px; border-right: none; border-bottom: 1px solid var(--b1); }
  .mamb-about-story__content { padding: 32px 20px; }
}

/* ── MA Masters WhatsApp CTA ─────────────────────────────────────── */

.mamb-wa-cta {
  background: var(--s1);
  border: 1px solid var(--b1);
  border-left: 3px solid var(--g);
  border-radius: var(--r2);
  padding: 28px 32px;
  margin: 0;
}

.mamb-wa-cta__inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 32px;
  max-width: 1040px;
  margin: 0 auto;
}

.mamb-wa-cta__text { flex: 1; min-width: 0; }

.mamb-wa-cta__title {
  font-size: 16px !important;
  font-weight: 500 !important;
  color: var(--t1) !important;
  line-height: 1.4 !important;
  margin-bottom: 4px !important;
}

.mamb-wa-cta__subtitle {
  font-size: 13px !important;
  color: var(--t3) !important;
  line-height: 1.6 !important;
  margin: 0 !important;
}

.mamb-wa-cta__action { flex-shrink: 0; }

.mamb-wa-cta__btn {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: #25D366;
  color: #fff;
  padding: 11px 20px;
  border-radius: var(--rp);
  font-size: 13px;
  font-weight: 600;
  text-decoration: none;
  white-space: nowrap;
  transition: background var(--t);
}
.mamb-wa-cta__btn:hover { background: #1da851; color: #fff; }

.mamb-wa-cta__icon {
  width: 18px;
  height: 18px;
  flex-shrink: 0;
}

/* Modo claro */
body.mode-light .mamb-wa-cta {
  background: var(--s1);
  border-color: var(--b1);
  border-left-color: var(--g);
}

@media (max-width: 768px) {
  .mamb-wa-cta { padding: 20px; }
  .mamb-wa-cta__inner { flex-direction: column; align-items: flex-start; gap: 16px; }
  .mamb-wa-cta__action { width: 100%; }
  .mamb-wa-cta__btn { width: 100%; justify-content: center; }
}

/* ── Símbolo de moeda — forçar Inter em todo o lado ─────────────────
   O Horizon Bold não tem o glifo € (ou reporta que tem mas não renderiza).
   O fallback automático não funciona neste caso porque o browser considera
   o glifo "presente" na fonte. Forçamos Inter explicitamente em qualquer
   contexto onde o WooCommerce renderiza o símbolo de moeda.
   ─────────────────────────────────────────────────────────────────── */

.woocommerce-Price-currencySymbol,
.wc-block-components-formatted-money-amount .woocommerce-Price-currencySymbol,
.wc-block-components-product-price .woocommerce-Price-currencySymbol,
.price .woocommerce-Price-currencySymbol,
.amount .woocommerce-Price-currencySymbol {
  font-family: 'Inter', system-ui, sans-serif !important;
  font-weight: 400 !important;
}

/* ── mamedia/hero — subtítulo legível em backgrounds fotográficos ───
   O .mamedia-hero__subtitle usa cor muted que perde contraste sobre
   imagens de fundo. Forçamos branco com text-shadow que garante
   legibilidade independentemente do fundo.
   ─────────────────────────────────────────────────────────────────── */

.mm .mamedia-hero__subtitle,
.mm.mode-dark .mamedia-hero__subtitle,
.mode-dark .mamedia-hero__subtitle {
  color: rgba(240, 239, 232, 0.90) !important;
  text-shadow:
    0 1px 12px rgba(0, 0, 0, 0.65),
    0 2px 4px  rgba(0, 0, 0, 0.40) !important;
}
