@font-face { font-family:'Figtree'; font-style:normal; font-weight:300 900; font-display:swap;
  src:url(assets/fonts/Figtree-latin.woff2) format('woff2');
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; }
@font-face { font-family:'Figtree'; font-style:normal; font-weight:300 900; font-display:swap;
  src:url(assets/fonts/Figtree-latin-ext.woff2) format('woff2');
  unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF; }

:root { --navy:#150578; --fundo:#0c0350; --laranja:#ED5C12; --amarelo:#FFD136; --azul:#2589BD; --creme:#F3E7D3; --suave:#c9c4f0; }
* { box-sizing:border-box; margin:0; padding:0; }
body { font-family:'Figtree',system-ui,sans-serif; color:var(--navy); background:#fff; line-height:1.55; font-size:17px; }
.wrap { max-width:1160px; margin:0 auto; padding:0 24px; }
.serif { font-family:'Newsreader',serif; font-weight:400; text-transform:none; letter-spacing:-.01em; font-style:italic; }
/* cabeçalho: 3 secções + Pedir materiais com seta */
.top { display:flex; justify-content:space-between; align-items:center; gap:24px; position:relative; z-index:2; padding-top:26px; }
.top img { height:36px; }
.top nav { display:flex; gap:28px; align-items:center; font-size:15px; }
.top nav a { color:#fff; text-decoration:none; opacity:.9; }
.top nav a.pedir { font-weight:700; opacity:1; }
/* abertura laranja com o símbolo em padrão */
.hero { background:var(--laranja); color:#fff; position:relative; overflow:hidden; }
.hero::before { content:""; position:absolute; inset:-20%; background:url(assets/faiscas-simbolo-branco.svg) 0 0/90px repeat; opacity:.09; transform:rotate(-8deg); }
.hero .wrap { position:relative; }
.hero-c { position:relative; z-index:2; padding:88px 0 96px; max-width:760px; }
.hero h1 { font-size:clamp(46px,7vw,96px); line-height:.93; letter-spacing:-.035em; font-weight:700; text-transform:uppercase; }
.hero .sub { font-size:clamp(22px,2.4vw,30px); font-weight:500; margin-top:18px; color:var(--navy); }
.hero .lead { font-size:20px; max-width:40ch; margin:22px 0 36px; }
.btn { display:inline-block; background:#fff; color:var(--navy); text-decoration:none; font-weight:700; padding:16px 28px; box-shadow:6px 6px 0 var(--navy); text-transform:uppercase; letter-spacing:.04em; border:0; font:inherit; font-weight:700; cursor:pointer; }
.band { padding:88px 0; }
.b-amarelo { background:var(--amarelo); } .b-navy { background:var(--navy); color:#fff; } .b-laranja { background:var(--laranja); color:#fff; } .b-creme { background:var(--creme); } .b-azul { background:var(--azul); color:#fff; }
h2 { font-size:clamp(36px,5vw,62px); line-height:.98; letter-spacing:-.03em; text-transform:uppercase; }
h2 + .sub2 { font-size:19px; max-width:60ch; margin:18px 0 40px; }
.two { display:grid; grid-template-columns:1fr 1fr; gap:56px; font-size:19px; }
.two p + p { margin-top:16px; }
/* o que partilhamos: círculos coloridos (direção 2) */
.cards { display:grid; grid-template-columns:repeat(3,1fr); gap:18px; }
.card { background:#fff; border-radius:28px; padding:30px 26px; color:var(--navy); }
.card i { display:block; width:44px; height:44px; border-radius:50%; margin-bottom:18px; }
.card b { font-size:24px; display:block; margin-bottom:4px; }
/* bilhetes (direção 4) */
.tickets { display:grid; grid-template-columns:repeat(3,1fr); gap:22px; }
.ticket { background:var(--navy); color:#fff; border-radius:16px; padding:26px 30px 26px 26px; position:relative;
  -webkit-mask:radial-gradient(circle 14px at 100% 50%,transparent 13px,#000 14px); mask:radial-gradient(circle 14px at 100% 50%,transparent 13px,#000 14px); }
.ticket b { font-size:24px; color:var(--amarelo); display:block; margin-bottom:4px; }
.nota { margin-top:22px; font-size:15px; }
/* grelha das aulas (direção 3) */
.tiles { display:grid; grid-template-columns:repeat(4,1fr); gap:12px; }
.tile { padding:20px; min-height:150px; display:flex; flex-direction:column; justify-content:space-between; color:#fff; }
.tile span { font-size:44px; font-weight:700; line-height:1; }
.tile b { font-size:18px; display:block; line-height:1.25; }
.tile small { font-size:14px; opacity:.92; }
.c { background:var(--azul); } .f { background:var(--laranja); } .q { background:var(--navy); } .b { background:var(--amarelo); color:var(--navy); } .u { background:#fff; color:var(--navy); box-shadow:inset 0 0 0 3px var(--navy); }
.legenda { display:flex; gap:20px; margin-top:20px; font-size:14px; flex-wrap:wrap; }
.legenda i { display:inline-block; width:12px; height:12px; margin-right:6px; vertical-align:-1px; box-shadow:inset 0 0 0 1px var(--navy); }
/* lista das aulas em duas colunas (direção 2) */
.lista { display:grid; grid-template-columns:1fr 1fr; gap:0 48px; }
.lista div { display:flex; gap:18px; align-items:baseline; padding:14px 0; border-bottom:2px solid rgba(21,5,120,.15); }
.lista span { font-weight:700; color:var(--laranja); font-size:24px; width:36px; flex:none; }
.lista b { display:block; } .lista small { font-size:15px; }
/* números */
.nums { display:grid; grid-template-columns:repeat(3,1fr); gap:32px; }
.nums strong { font-size:clamp(40px,4.6vw,64px); line-height:.95; letter-spacing:-.04em; display:block; }
.nums p { margin-top:14px; }
.b-navy .nums strong { color:var(--amarelo); }
/* pedido */
.cta h2 { margin-bottom:16px; }
.cta p { font-size:20px; max-width:46ch; margin-bottom:34px; }
.copiar { display:inline-flex; align-items:stretch; background:#fff; box-shadow:6px 6px 0 var(--navy); }
.copiar span { padding:16px 22px; color:var(--navy); font-weight:700; font-size:20px; }
.copiar button { background:var(--navy); color:#fff; border:0; padding:0 22px; font:inherit; font-weight:700; cursor:pointer; text-transform:uppercase; letter-spacing:.04em; font-size:14px; }
.mailtxt { display:block; margin-top:16px; font-size:15px; opacity:.9; }
/* rodapé com logótipos */
.logos-band { background:#fff; padding:44px 0; border-top:3px solid var(--navy); }
.logos-band .t { font-size:13px; text-transform:uppercase; letter-spacing:.12em; font-weight:700; margin-bottom:22px; }
.logos { display:flex; flex-wrap:wrap; align-items:center; gap:28px 40px; }
.logos img { height:40px; width:auto; }
.logos img.q { height:52px; }
.logos span { border:2px dashed #b9b4d6; padding:10px 14px; font-size:12px; }
.fim { background:var(--navy); color:#fff; font-size:14px; padding:22px 0; }
.fim .wrap { display:flex; justify-content:space-between; gap:24px; flex-wrap:wrap; }
.foto-band img { width:100%; height:380px; object-fit:cover; display:block; }
.foto-band .leg { font-size:13px; padding:10px 0 0; }
@media (max-width:760px){ .two,.nums,.cards,.tickets,.lista{grid-template-columns:1fr;} .tiles{grid-template-columns:1fr 1fr;} .top nav a:not(.pedir){display:none;} .hero-split{grid-template-columns:1fr !important;} }

body { background:var(--creme); }
.logos-band { background:var(--creme); }
.aceso { color:#fff; text-shadow:0 0 10px rgba(255,244,200,.95), 0 0 28px rgba(255,209,54,.95), 0 0 60px rgba(255,209,54,.7); }
/* abertura: só as faíscas verticais, a desvanecer para a esquerda, até ao topo da página */
.hero::before { display:none; }
.faiscas { position:absolute; top:0; right:0; bottom:0; width:60%; pointer-events:none; z-index:1;
  background:url(assets/texturas/faiscas-fogo-alto-amarelo.png) right bottom/cover no-repeat;
  -webkit-mask-image:linear-gradient(to right, transparent 0%, #000 45%); mask-image:linear-gradient(to right, transparent 0%, #000 45%); opacity:.9; }
@media (max-width:760px){ .faiscas { width:100%; opacity:.4; } }
/* grelha das aulas: quadrados iguais e mais baixos */
.tiles { grid-auto-rows:1fr; }
.tile { min-height:118px; padding:16px 18px; }
.tile span { font-size:34px; }
/* pedido: laranja com o padrão do símbolo, como a abertura da versão 1 */
.cta { position:relative; overflow:hidden; }
.cta::before { content:""; position:absolute; inset:-20%; background:url(assets/faiscas-simbolo-branco.svg) 0 0/90px repeat; opacity:.09; transform:rotate(-8deg); pointer-events:none; }
.cta .wrap { position:relative; }
.cta .pergunta { font-size:24px; font-weight:700; }
.b-amarelo .nums strong { color:var(--navy); }
.b-azul .nums strong { color:var(--amarelo); }
/* cabeçalho em navy: lê-se sobre o laranja e sobre as faíscas */
.top nav { font-size:17px; gap:30px; }
.top nav a { color:#000; opacity:1; font-weight:700; }
/* halo laranja: afasta as faíscas das letras sem caixa */
.top nav a { text-shadow:0 0 3px var(--laranja), 0 0 6px var(--laranja), 0 0 10px var(--laranja), 0 0 16px var(--laranja); }
.top nav a.pedir { font-weight:700; }
/* aulas: lista em 3 colunas (ronda 3) */
.lista3 { display:grid; grid-template-columns:repeat(3,1fr); gap:0 40px; }
.lista3 h3 { font-size:13px; text-transform:uppercase; letter-spacing:.12em; padding-bottom:10px; border-bottom:3px solid var(--navy); }
.lista3 .it { display:flex; gap:16px; align-items:baseline; padding:14px 0; border-bottom:1px solid rgba(21,5,120,.18); }
.lista3 .it span { font-weight:800; color:var(--laranja); font-size:24px; width:34px; flex:none; }
.lista3 .it b { display:block; } .lista3 .it small { font-size:15px; }
.lista3 .it em { display:block; font-style:normal; font-size:11.5px; text-transform:uppercase; letter-spacing:.12em; font-weight:600; opacity:.6; margin-bottom:2px; }
/* aulas: grelha sóbria, cor só na etiqueta da área */
.sobrias { display:grid; grid-template-columns:repeat(4,1fr); gap:12px; grid-auto-rows:1fr; }
.sob { background:#fff; padding:18px 18px 20px; border-top:3px solid var(--navy); }
.sob-top { display:flex; justify-content:space-between; align-items:center; margin-bottom:22px; }
.sob .num { font-weight:800; font-size:22px; color:var(--laranja); }
.sob .area { font-size:12px; text-transform:uppercase; letter-spacing:.08em; font-weight:600; display:flex; align-items:center; gap:6px; }
.sob .area i { width:10px; height:10px; border-radius:50%; box-shadow:inset 0 0 0 1px var(--navy); }
.sob b { display:block; font-size:18px; line-height:1.25; } .sob small { font-size:14px; }
@media (max-width:760px){ .lista3{grid-template-columns:1fr; gap:28px;} .sobrias{grid-template-columns:1fr 1fr;} }
/* títulos das secções em letra normal (21/09); a abertura mantém maiúsculas */
h2 { text-transform:none; letter-spacing:-.025em; font-weight:800; font-size:clamp(34px,4.4vw,56px); line-height:1.02; }
#faiscas .h3 { text-transform:none; letter-spacing:-.02em; font-weight:800; }
#faiscas .passos b { text-transform:none; letter-spacing:-.01em; }
.hero h1 { font-weight:800; }
/* citações dos alunos, na secção dos resultados */
.citacoes { display:grid; grid-template-columns:repeat(3,1fr); gap:32px; margin-top:56px; padding-top:40px; border-top:1px solid rgba(255,255,255,.4); }
.citacoes blockquote { margin:0; }
.citacoes p { font-size:20px; line-height:1.4; font-weight:500; }
.citacoes p::before { content:"«"; }
.citacoes p::after { content:"»"; }
.citacoes cite { display:block; margin-top:10px; font-style:normal; font-size:14px; text-transform:uppercase; letter-spacing:.12em; opacity:.85; }
@media (max-width:760px){ .citacoes{grid-template-columns:1fr;} }
/* botão da abertura: navy, letra branca */
.hero .btn { background:var(--navy); color:#fff; box-shadow:6px 6px 0 var(--amarelo); }
.b-creme2 { background:var(--creme); border-top:2px solid rgba(21,5,120,.15); }
/* como é uma aula: três passos, sem cor nova */
.sep { border-top:2px solid rgba(21,5,120,.15); }
.sep-top { margin-top:72px; }
h2 + .sub2.destaque { font-size:26px; font-weight:700; margin-top:14px; color:var(--laranja); }
/* a abertura ocupa o ecrã todo */
.hero { min-height:100vh; min-height:100svh; display:flex; flex-direction:column; }
.hero > .wrap { flex:1; display:flex; flex-direction:column; width:100%; }
.hero .hero-c { margin:auto 0; }
#projeto .two p + p { margin-top:0; }
#contacto p { font-size:21px; max-width:52ch; margin-bottom:28px; }
.passos b { font-size:24px; }
.passos.obj { grid-template-columns:repeat(4,1fr); gap:12px; } .passos.obj > div { padding-right:18px; } .passos.obj b { font-size:21px; }
.passos.dois { grid-template-columns:1fr 1fr; gap:56px; max-width:none; }
@media (max-width:760px){ .passos.obj,.passos.dois{grid-template-columns:1fr; gap:28px;} }
.passos { display:grid; grid-template-columns:repeat(3,1fr); gap:40px; }
.passos span { font-size:15px; font-weight:700; color:var(--laranja); letter-spacing:.1em; }
.passos b { display:block; font-size:28px; text-transform:uppercase; letter-spacing:-.02em; margin:6px 0 8px; }
/* fotografias dentro da faixa creme */
.fotos-in { display:grid; grid-template-columns:repeat(4,1fr); gap:12px; margin:56px 0; }
.fotos-in img { width:100%; aspect-ratio:1; object-fit:cover; display:block; }
.h3 { font-size:clamp(26px,3vw,36px); text-transform:uppercase; letter-spacing:-.02em; margin-bottom:28px; }
/* faixa de fotografias (já não usada) */
.fotos { display:grid; grid-template-columns:repeat(4,1fr); }
.fotos img { width:100%; aspect-ratio:1; object-fit:cover; display:block; }
/* pedido em duas colunas, com o que ajuda saber */
.cta-grid { display:grid; grid-template-columns:1.3fr 1fr; gap:56px; align-items:start; }
.ajuda { border-left:3px solid #fff; padding:6px 0 6px 24px; margin-top:8px; }
.ajuda b { display:block; text-transform:uppercase; letter-spacing:.1em; font-size:13px; margin-bottom:10px; }
.ajuda li { list-style:none; font-size:18px; padding:4px 0; }
.rotulo { display:block; text-transform:uppercase; letter-spacing:.12em; font-size:13px; font-weight:700; margin-top:8px; }
.email { display:inline-block; color:#fff; font-size:clamp(26px,3.4vw,42px); font-weight:700; letter-spacing:-.02em; text-decoration:none; border-bottom:3px solid rgba(255,255,255,.5); margin:6px 0 10px; overflow-wrap:anywhere; }
.email:hover { border-bottom-color:#fff; }
.resposta { display:block; font-size:15px; }
.ajuda2 { margin-top:28px !important; margin-bottom:0 !important; font-size:16px !important; padding-top:18px; border-top:1px solid rgba(255,255,255,.45); max-width:60ch; }
.fim a { color:#fff; text-decoration:none; font-weight:700; }
.sobre { font-size:15px; margin:0 0 22px; max-width:70ch; }
@media (max-width:760px){ .passos,.cta-grid{grid-template-columns:1fr;} .fotos-in{grid-template-columns:1fr 1fr;} }

.card i.c-amarelo { background:var(--amarelo); } .card i.c-laranja { background:var(--laranja); } .card i.c-azul { background:var(--azul); }
.sobre a { color:inherit; font-weight:700; }
.logos img.l-tt2 { height:20px; } .logos img.l-bipzip { height:46px; }
