/* ==================================================================
   EXCLUSIVE WORLD TOURS — a folha comum a todas as paginas novas

   Desenho A, "o bilhete" (escolhido pelo Ricardo a 1 out 2026):
   fotografia grande com titulo gigante, etiqueta de bagagem com o
   preco, faixa preta dos factos, carimbos e bilhetes. Contorno preto
   e sombra dura so nos objetos; sem letra manuscrita.

   O que esta aqui serve a homepage, a lista /tours/ e as paginas de
   tour: cabecalho, menu do telemovel, rodape, o heroi com a etiqueta,
   a faixa preta dos factos, o cartao do tour, as perguntas e os
   botoes. O que so existe na pagina de tour fica em tools/tour.css;
   o que so existe na homepage ou na lista fica dentro dessa pagina.

   Os enderecos desta folha levam "?v=" com um resumo do conteudo,
   escrito pelo tools/build-tours.py: muda a folha, muda o endereco,
   e nenhum browser fica com a versao velha guardada.

   Tipos de letra:
     Anton            titulos e numeros (a voz do cartaz)
     Instrument Sans  todo o resto
   ================================================================== */

/* As letras vivem no proprio site (assets/fontes, licenca OFL nos
   ficheiros LICENSE-*). Antes vinham do Google Fonts, que recebia o IP
   de cada visitante: na UE isso pede consentimento. Assim nao. */
@font-face{font-family:'Anton';font-style:normal;font-weight:400;font-display:swap;src:url(/assets/fontes/anton-latin-400-normal.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:'Anton';font-style:normal;font-weight:400;font-display:swap;src:url(/assets/fontes/anton-latin-ext-400-normal.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}
@font-face{font-family:'Instrument Sans';font-style:normal;font-weight:400;font-display:swap;src:url(/assets/fontes/instrument-sans-latin-400-normal.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:'Instrument Sans';font-style:normal;font-weight:400;font-display:swap;src:url(/assets/fontes/instrument-sans-latin-ext-400-normal.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}
@font-face{font-family:'Instrument Sans';font-style:normal;font-weight:500;font-display:swap;src:url(/assets/fontes/instrument-sans-latin-500-normal.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:'Instrument Sans';font-style:normal;font-weight:500;font-display:swap;src:url(/assets/fontes/instrument-sans-latin-ext-500-normal.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}
@font-face{font-family:'Instrument Sans';font-style:normal;font-weight:600;font-display:swap;src:url(/assets/fontes/instrument-sans-latin-600-normal.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:'Instrument Sans';font-style:normal;font-weight:600;font-display:swap;src:url(/assets/fontes/instrument-sans-latin-ext-600-normal.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}
@font-face{font-family:'Instrument Sans';font-style:normal;font-weight:700;font-display:swap;src:url(/assets/fontes/instrument-sans-latin-700-normal.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:'Instrument Sans';font-style:normal;font-weight:700;font-display:swap;src:url(/assets/fontes/instrument-sans-latin-ext-700-normal.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{
  --yellow:#FFC72C;--yellow-deep:#F2A900;--yellow-soft:#FFF6D6;
  --black:#141414;--ink:#2A2A28;--gray:#5A5A55;--line:#E6E3DA;
  --white:#FFFFFF;--paper:#FFFFFF;--wa:#25D366;
  --display:'Anton',Impact,'Arial Narrow',sans-serif;
  --text:'Instrument Sans',system-ui,-apple-system,'Segoe UI',sans-serif;
}
*{box-sizing:border-box;margin:0;padding:0;}
html{scroll-behavior:smooth;}
body{font-family:var(--text);background:var(--paper);color:var(--black);line-height:1.6;font-size:17px;}
a{color:inherit;text-decoration:none;}
img{max-width:100%;display:block;}
button{font:inherit;color:inherit;}
.container{width:100%;max-width:1240px;margin:0 auto;padding:0 24px;}
:focus-visible{outline:3px solid var(--black);outline-offset:3px;border-radius:6px;}
/* nas zonas pretas o contorno preto nao se via: passa a amarelo */
.topbar :focus-visible,.hero :focus-visible,.pg-hero :focus-visible,.facts :focus-visible,.t-hero :focus-visible,
.passo :focus-visible,.ok :focus-visible,.newsletter :focus-visible,footer :focus-visible,.board :focus-visible{outline-color:var(--yellow);}
/* o atalho "Skip to content": escondido ate receber o foco */
.saltar{position:absolute;left:12px;top:-60px;z-index:2000;background:var(--yellow);color:var(--black);border:2px solid var(--black);border-radius:10px;padding:10px 16px;font-weight:700;}
.saltar:focus{top:12px;}

/* ---------------------------------------------------------------- cabecalho */
.topbar{background:var(--black);color:#E4E4E0;font-size:.82rem;font-weight:600;padding:8px 0;transition:max-height .3s,padding .3s,opacity .3s;max-height:40px;overflow:hidden;}
.topbar .container{display:flex;justify-content:space-between;align-items:center;gap:10px;max-width:1300px;}
.topbar-left{display:flex;gap:22px;flex-wrap:wrap;}
.topbar-left > *{display:flex;align-items:center;gap:6px;}
.topbar-left a:hover{color:var(--yellow);}
.whatsapp-tag{background:var(--wa);color:#04220f;font-weight:700;font-size:.72rem;padding:2px 8px;border-radius:999px;}
.topbar-right{display:flex;gap:16px;align-items:center;}
/* A direita da barra preta: so o chat (nem toda a gente tem WhatsApp). */
.chat-topo{display:inline-flex;align-items:center;gap:7px;color:var(--yellow);font-weight:700;padding:1px 2px;}
.chat-topo:hover{color:#FFFFFF;}
.chat-topo svg{flex:none;}
.chat-ponto{width:7px;height:7px;border-radius:50%;background:var(--wa);box-shadow:0 0 0 2px rgba(37,211,102,.25);}
header{position:sticky;top:0;z-index:1000;}
.nav-wrap{background:var(--white);border-bottom:2px solid var(--black);}
header.scrolled .topbar{max-height:0;padding:0;opacity:0;}
.nav-wrap nav{display:flex;align-items:center;gap:24px;padding:12px 24px;max-width:1300px;margin:0 auto;}
.logo{display:flex;align-items:center;gap:10px;flex-shrink:0;font-family:var(--display);font-size:1.6rem;letter-spacing:.5px;line-height:1;text-transform:uppercase;}
.logo picture{display:block;}
.logo img{height:60px;width:auto;display:block;}
/* sombra dura, como os botoes e os cartoes; segue o contorno arredondado do logo (drop-shadow, nao box-shadow) */
.nav-wrap .logo img{filter:none;}
footer .logo img{height:96px;}
.logo .mark{color:var(--black);width:38px;height:38px;background:var(--yellow);border:2px solid var(--black);border-radius:10px;display:grid;place-items:center;font-size:1.3rem;}
.nav-links{display:flex;gap:28px;list-style:none;align-items:center;margin-left:auto;}
.nav-links a{font-size:.95rem;font-weight:700;padding-bottom:3px;border-bottom:2px solid transparent;}
.nav-links a:hover,.nav-links a[aria-current="page"]{border-bottom-color:var(--yellow);}
.cta-btn{background:var(--yellow);font-weight:700;padding:11px 22px;border-radius:999px;border:2px solid var(--black);font-size:.92rem;white-space:nowrap;box-shadow:3px 3px 0 var(--black);}
.cta-btn:hover{background:var(--yellow-deep);}

/* o menu do telemovel: um painel que desce por baixo da barra */
.burger{display:none;margin-left:auto;width:46px;height:46px;border:2px solid var(--black);border-radius:12px;background:var(--yellow);cursor:pointer;flex-direction:column;align-items:center;justify-content:center;gap:5px;}
.burger span{display:block;width:20px;height:2.5px;background:var(--black);border-radius:2px;transition:transform .2s,opacity .2s;}
.burger[aria-expanded="true"] span:nth-child(1){transform:translateY(7.5px) rotate(45deg);}
.burger[aria-expanded="true"] span:nth-child(2){opacity:0;}
.burger[aria-expanded="true"] span:nth-child(3){transform:translateY(-7.5px) rotate(-45deg);}
.menu-movel{background:var(--white);border-bottom:3px solid var(--black);max-height:calc(100vh - 72px);overflow-y:auto;padding:10px 24px 26px;}
.menu-movel[hidden]{display:none;}
.menu-movel > a{display:block;font-family:var(--display);font-size:1.9rem;line-height:1;text-transform:uppercase;padding:14px 0;border-bottom:1px solid var(--line);}
.menu-movel .paises{display:flex;flex-wrap:wrap;gap:8px;padding:14px 0 16px;border-bottom:1px solid var(--line);}
.menu-movel .paises a{border:2px solid var(--black);border-radius:999px;padding:6px 14px;font-weight:700;font-size:.92rem;}
.menu-movel > a.wa{font-family:var(--text);font-size:1rem;text-transform:none;line-height:1.3;display:flex;justify-content:center;margin-top:20px;padding:14px;border:2px solid var(--black);border-radius:999px;background:var(--wa);color:#04220f;font-weight:700;}

/* ---------------------------------------------------------------- botoes */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;padding:15px 28px;border-radius:999px;border:2px solid var(--black);font-weight:700;font-size:1rem;cursor:pointer;white-space:nowrap;}
.btn-dark{background:var(--black);color:var(--yellow);}
.btn-dark:hover{background:#000;}
.btn-yellow{background:var(--yellow);color:var(--black);box-shadow:4px 4px 0 var(--black);}
.btn-yellow:hover{background:var(--yellow-deep);}
.btn-wa{background:var(--wa);color:#04220f;}

/* ---------------------------------------------------------------- o heroi */
.hero{position:relative;height:640px;background:var(--black);color:var(--white);overflow:hidden;}
.hero-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;}
.hero-shade{position:absolute;inset:0;background:linear-gradient(to top,rgba(20,20,20,.9) 0%,rgba(20,20,20,.35) 45%,rgba(20,20,20,.15) 70%,rgba(20,20,20,.45) 100%);}
.hero-in{position:relative;height:100%;display:flex;flex-direction:column;justify-content:space-between;padding-top:22px;padding-bottom:52px;}
.hero h1{max-width:900px;font-weight:400;}
.hero h1 .k{display:block;font-family:var(--text);font-size:1.15rem;font-weight:600;margin-bottom:14px;}
.hero h1 .big{display:block;font-family:var(--display);font-size:clamp(3.6rem,9vw,8.2rem);line-height:.92;text-transform:uppercase;letter-spacing:.5px;}

/* a etiqueta de bagagem com o preco */
.tag{position:absolute;right:max(24px,calc((100% - 1240px)/2 + 40px));top:56px;width:230px;background:var(--yellow);color:var(--black);border:3px solid var(--black);border-radius:18px;padding:52px 20px 24px;text-align:center;box-shadow:8px 8px 0 var(--black);transform:rotate(6deg);transform-origin:50% 0;}
.tag::before{content:'';position:absolute;top:16px;left:50%;margin-left:-12px;width:24px;height:24px;border-radius:50%;background:var(--white);border:3px solid var(--black);}
.tag::after{content:'';position:absolute;top:-60px;left:50%;width:3px;height:78px;background:var(--black);transform:rotate(-10deg);transform-origin:bottom;}
.tag .from{display:block;font-size:.9rem;font-weight:700;}
.tag strong{display:block;font-family:var(--display);font-weight:400;font-size:4.2rem;line-height:1;}
.tag .w{display:block;font-weight:700;font-size:1.02rem;margin-top:6px;}
.tag .g{display:block;font-size:.88rem;}
@media(prefers-reduced-motion:no-preference){
  .tag{animation:balanco 1.2s ease-out .3s both;}
  @keyframes balanco{0%{transform:rotate(-14deg)}45%{transform:rotate(11deg)}75%{transform:rotate(3deg)}100%{transform:rotate(6deg)}}
}

/* a faixa preta dos factos */
.facts{background:var(--black);color:var(--white);}
.facts-in{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:20px;padding-top:22px;padding-bottom:22px;font-weight:600;}
.facts-in div{display:flex;gap:12px;align-items:center;line-height:1.3;}
.facts-in svg{flex-shrink:0;}

/* ---------------------------------------------------------------- titulos de seccao */
.h-cartaz{font-family:var(--display);font-weight:400;font-size:clamp(2.4rem,5vw,3.6rem);line-height:.98;text-transform:uppercase;letter-spacing:.5px;}

/* ---------------------------------------------------------------- o cartao do tour
   Um tour na lista (homepage, /tours/, "mais tours" das paginas de
   tour). Desenho A: um objeto de contorno preto e sombra dura, como
   a etiqueta e o bilhete; a cidade de partida numa placa preta sobre
   a fotografia; o preco depois de uma linha picotada, como o canhoto
   de um bilhete. O cartao todo e um link. */
.pcs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:34px;padding-top:8px;}
.pc{position:relative;}
.pc-a{display:flex;flex-direction:column;height:100%;background:var(--white);border:3px solid var(--black);border-radius:18px;overflow:hidden;box-shadow:6px 6px 0 var(--black);transition:transform .15s ease,box-shadow .15s ease;}
.pc-a:hover,.pc-a:focus-visible{transform:translate(-3px,-3px);box-shadow:9px 9px 0 var(--black);}
.pc-fita{position:absolute;z-index:2;top:16px;left:16px;padding:5px 12px;border-radius:999px;background:var(--black);color:var(--yellow);font-weight:700;font-size:.85rem;line-height:1.2;pointer-events:none;}
.pc-foto{aspect-ratio:4/3;overflow:hidden;background:#DDD8CC;border-bottom:3px solid var(--black);}
.pc-foto img{width:100%;height:100%;object-fit:cover;}
.pc-k{font-size:.85rem;font-weight:700;color:var(--gray);margin:16px 20px 0;}
.pc-nome{font-family:var(--display);font-weight:400;font-size:1.65rem;line-height:1.05;text-transform:uppercase;letter-spacing:.3px;margin:6px 20px 0;}
.pc-desc{font-size:.95rem;color:var(--ink);margin:10px 20px 0;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;}
.pc-pe{display:flex;justify-content:space-between;align-items:flex-end;gap:12px;margin:auto 0 0;padding:14px 20px 16px;border-top:3px dashed var(--black);margin-top:18px;}
.pc-dur{display:inline-flex;align-items:center;gap:6px;font-weight:700;font-size:.92rem;}
.pc-preco{text-align:right;line-height:1;}
.pc-preco em{display:block;font-style:normal;font-size:.78rem;font-weight:700;margin-bottom:2px;}
.pc-preco b{display:block;font-family:var(--display);font-weight:400;font-size:2rem;}
.pc-preco small{display:block;font-size:.78rem;font-weight:700;color:var(--gray);margin-top:4px;}
.pc-preco.consulta b{font-family:var(--text);font-weight:700;font-size:1rem;}
.pcs-mini{gap:26px;}
.pcs-mini .pc-desc{display:none;}
.pcs-mini .pc-nome{font-size:1.3rem;}
.pcs-mini .pc-preco b{font-size:1.6rem;}

/* os filtros por pais (homepage e /tours/): botoes de alternar */
.filtros{display:inline-flex;flex-wrap:wrap;gap:4px;border:2px solid var(--black);border-radius:999px;padding:4px;margin:8px 0 34px;}
.filtros button{border:0;border-radius:999px;padding:9px 18px;background:transparent;cursor:pointer;font-weight:700;font-size:.95rem;}
.filtros button:hover{background:var(--yellow-soft);}
.filtros button[aria-pressed="true"]{background:var(--black);color:var(--yellow);}

/* o convite amarelo do fim ("outro sitio?"), homepage e /tours/ */
.convite{background:var(--yellow);border-top:3px solid var(--black);border-bottom:3px solid var(--black);padding:88px 0;}
.convite .container{display:flex;justify-content:space-between;align-items:center;gap:40px;flex-wrap:wrap;}
.convite h2{font-size:clamp(2.8rem,6vw,4.8rem);}
.convite p{font-size:1.15rem;max-width:520px;margin-top:12px;}
.convite .botoes{display:flex;gap:14px;flex-wrap:wrap;}

/* ---------------------------------------------------------------- perguntas */
.faq-item{border-top:1px solid var(--line);}
.faq-item:last-child{border-bottom:1px solid var(--line);}
.faq-q{display:flex;justify-content:space-between;align-items:center;gap:20px;width:100%;background:none;border:0;padding:18px 0;font-weight:700;font-size:1.08rem;text-align:left;cursor:pointer;color:var(--black);}
.faq-q .plus{flex-shrink:0;width:34px;height:34px;border-radius:50%;border:2px solid var(--black);display:grid;place-items:center;font-size:1.2rem;line-height:1;transition:transform .2s,background .2s;}
.faq-item.open .plus{transform:rotate(45deg);background:var(--yellow);}
.faq-a{max-height:0;overflow:hidden;transition:max-height .3s ease;color:var(--ink);max-width:680px;}
.faq-item.open .faq-a{max-height:320px;padding-bottom:18px;}

/* ---------------------------------------------------------------- paginas de texto
   About, contacto, cancelamento, magazine e artigos: o topo preto
   com o titulo grande e o texto corrido numa coluna legivel. */
.pg-hero{background:var(--black);color:var(--white);padding:52px 0 64px;}
.pg-hero .crumbs{font-size:.9rem;font-weight:600;color:#D8D8D3;margin-bottom:30px;}
.pg-hero .crumbs a:hover{color:var(--yellow);}
.pg-hero .crumbs .sep{opacity:.6;margin:0 8px;}
.pg-hero h1{font-weight:400;}
.pg-hero h1 .k{display:block;font-size:1.15rem;font-weight:600;margin-bottom:14px;}
.pg-hero h1 .big{display:block;font-family:var(--display);font-size:clamp(3rem,7vw,6.2rem);line-height:.94;text-transform:uppercase;letter-spacing:.5px;max-width:16ch;}
.pg-hero h1 .big.medio{font-size:clamp(2.6rem,5.2vw,4.8rem);max-width:22ch;}
.pg-hero h1 .big.longo{font-size:clamp(2.2rem,4vw,3.8rem);max-width:28ch;line-height:.98;}
.pg-hero .lead{color:#D8D8D3;font-size:1.2rem;line-height:1.5;max-width:640px;margin-top:22px;}
.pg-hero .meta{color:#BDBDB8;font-size:.95rem;font-weight:600;margin-top:18px;}
.prosa{max-width:760px;padding:64px 0 96px;}
.prosa > :first-child{margin-top:0;}
.prosa h2{font-family:var(--display);font-weight:400;font-size:2.4rem;line-height:1.02;text-transform:uppercase;letter-spacing:.3px;margin:56px 0 18px;}
.prosa h3{font-size:1.3rem;line-height:1.3;margin:32px 0 8px;}
.prosa p,.prosa li{color:var(--ink);}
.prosa p{margin-bottom:14px;}
.prosa ul,.prosa ol{padding-left:22px;margin-bottom:16px;}
.prosa li{margin-bottom:6px;}
.prosa a{border-bottom:2px solid var(--yellow);font-weight:600;}
.prosa a:hover{background:var(--yellow-soft);}
.prosa .lede{font-size:1.4rem;line-height:1.5;color:var(--black);}
.prosa hr{border:0;border-top:3px dashed var(--black);margin:48px 0;}
.prosa table{width:100%;border-collapse:collapse;margin:8px 0 12px;}
.prosa th{text-align:left;font-size:.85rem;border-bottom:3px solid var(--black);padding:10px 8px;}
.prosa td{border-bottom:1px solid var(--line);padding:12px 8px;vertical-align:top;}
.prosa td.pr{font-family:var(--display);font-size:1.3rem;white-space:nowrap;}
.caixa{background:var(--yellow);border:3px solid var(--black);border-radius:18px;box-shadow:6px 6px 0 var(--black);padding:22px 24px;margin:28px 0;}
.caixa p:last-child{margin-bottom:0;}
.prosa .pcs{margin-top:20px;}
/* palavras hifenizadas que nao se partem nos titulos ("D-Day"): ver sem_quebra() no build e EpicReserva.nome() */
.nq{white-space:nowrap;}
/* aviso no topo dos rascunhos da revista (so existe em /magazine/drafts/) */
.rascunho{background:var(--white);border:3px dashed var(--black);border-radius:18px;padding:20px 24px;margin:0 0 40px;}
.rascunho p,.rascunho li{font-size:.95rem;}
.rascunho ul{margin-bottom:0;}

/* ---------------------------------------------------------------- rodape */
footer{background:var(--black);color:var(--white);padding:64px 0 30px;}
footer .logo{color:var(--white);}
.footer-grid{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:40px;margin-bottom:44px;}
.footer-grid h4{margin-bottom:14px;font-size:1rem;font-weight:700;color:var(--yellow);}
.footer-grid ul{list-style:none;}
.footer-grid li{margin-bottom:9px;}
.footer-grid a{color:#C9C9C4;font-size:.95rem;}
.footer-grid a:hover{color:var(--yellow);}
.footer-pay-t{color:var(--white);font-weight:700;font-size:.9rem;margin-top:20px;}
.footer-pay{list-style:none;display:flex;flex-wrap:wrap;gap:6px;margin-top:8px;}
.footer-pay li{border:1px solid #555;border-radius:8px;padding:3px 9px;font-size:.78rem;font-weight:700;color:#E4E4E0;}
.footer-bottom{border-top:1px solid #333;padding-top:22px;display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px;color:#A8A8A3;font-size:.88rem;}

/* ---------------------------------------------------------------- telemovel e tablet */
@media(max-width:1080px){
  .pcs{grid-template-columns:repeat(2,minmax(0,1fr));}
}
@media(max-width:960px){
  .nav-links,.cta-btn{display:none;}
  .burger{display:flex;}
  /* no telemovel: WhatsApp, '24/7 support' e o chat (o email fica no menu e no contacto) */
  .topbar-left > :nth-child(2){display:none;}
  .topbar-left{gap:14px;}
  .hero{height:540px;}
  .tag{width:170px;padding:46px 14px 18px;top:150px;right:20px;box-shadow:6px 6px 0 var(--black);}
  .tag strong{font-size:3rem;}
  .tag::after{display:none;}
  .facts-in{grid-template-columns:repeat(2,minmax(0,1fr));font-size:.92rem;}
  .footer-grid{grid-template-columns:1fr 1fr;}
}
@media(max-width:620px){
  .prosa{padding:44px 0 72px;}
  .prosa h2{font-size:2rem;}
  .prosa .lede{font-size:1.2rem;}
  .prosa table{font-size:.88rem;}
  .prosa th,.prosa td{padding:10px 4px;}
  .prosa td.pr{font-size:1.05rem;white-space:normal;}
  .filtros{display:flex;flex-wrap:nowrap;overflow-x:auto;border-radius:18px;}
  .filtros button{flex-shrink:0;}
  .convite{padding:64px 0;}
  .pcs,.pcs-mini{grid-template-columns:1fr;gap:28px;}
}
@media(max-width:520px){
  body{font-size:16px;}
  .container{padding:0 18px;}
  .nav-wrap nav{padding:10px 18px;}
  .logo{font-size:1.35rem;}
  .logo img{height:50px;}
  footer .logo img{height:80px;}
  .hero{height:500px;}
  .hero h1 .big{font-size:3.3rem;}
  .tag{width:140px;top:120px;right:16px;padding:46px 10px 14px;}
  .tag strong{font-size:2.4rem;}
  .tag .w{font-size:.85rem;}
  .tag .g{display:none;}
}
@media(prefers-reduced-motion:reduce){
  *{animation:none!important;transition:none!important;}
  html{scroll-behavior:auto;}
}

/* ---------------------------------------------------------------- guias */
/* o link para a guia: no fim de "More in ..." nas paginas de tour, e por
   baixo dos cartoes de cada pais em /tours/ (tools/guias.json) */
.guia-link{margin-top:26px;font-weight:700;}
.guia-link a,.pais-guias a{border-bottom:2px solid var(--yellow);}
.guia-link a:hover,.pais-guias a:hover{background:var(--yellow-soft);}
.pais-guias{margin-top:30px;padding-top:18px;border-top:2px dashed var(--black);display:flex;flex-wrap:wrap;align-items:baseline;gap:8px 18px;}
.pais-guias p{font-weight:700;}
.pais-guias ul{list-style:none;display:flex;flex-wrap:wrap;gap:8px 18px;font-weight:600;}

/* ---------------------------------------------------------------- formularios */
/* o cartao de formulario do /contact/ e do /become-a-supplier/: abre a
   mensagem pronta no WhatsApp ou no email (nao ha servidor; HANDOVER T6) */
.ct-form{background:var(--white);border:3px solid var(--black);border-radius:22px;box-shadow:10px 10px 0 var(--black);overflow:hidden;}
.ct-form-top{background:var(--yellow);padding:22px 26px 20px;border-bottom:3px dashed var(--black);}
.ct-form-top b{display:block;font-family:var(--display);font-weight:400;font-size:2.2rem;line-height:1.05;text-transform:uppercase;}
.ct-form-top p{font-weight:600;margin-top:6px;}
.ct-form form{padding:24px 26px 26px;}
.campo{margin-bottom:14px;}
.campo label{display:block;font-size:.88rem;font-weight:700;margin-bottom:6px;}
.campo input,.campo select,.campo textarea{width:100%;min-height:50px;padding:12px 14px;border:2px solid var(--black);border-radius:12px;font:inherit;font-size:1rem;background:var(--white);color:var(--black);}
.campo textarea{min-height:130px;resize:vertical;}
.campo input:focus,.campo select:focus,.campo textarea:focus{outline:none;box-shadow:0 0 0 3px var(--yellow);}
.duas{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;}
.enviar{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:6px;}
.enviar button{height:56px;border:3px solid var(--black);border-radius:14px;font-weight:700;font-size:1rem;cursor:pointer;}
.enviar .e-wa{background:var(--wa);color:#04220f;}
.enviar .e-mail{background:var(--black);color:var(--yellow);}
.ct-nota{font-size:.88rem;color:var(--gray);margin-top:12px;}
.ct-erro{margin-bottom:12px;padding:10px 14px;border:2px solid #991B1B;border-radius:12px;background:#FEF2F2;color:#991B1B;font-weight:600;font-size:.92rem;}
.ct-erro[hidden]{display:none;}
@media(max-width:520px){.duas,.enviar{grid-template-columns:1fr;}}

/* ---------------------------------------------------------------- modo escuro
   (6 out 2026) O <html> leva data-tema="escuro" (script no <head>; o
   botao da lua no cabecalho troca e guarda a escolha). As cores do
   site sao variaveis: no escuro invertem-se (papel escuro, letra e
   contornos claros), e o desenho do bilhete fica igual ao contrario.
   Tres excecoes, para nada perder contraste:
   1. zonas escuras de proposito (barra de cima, herois, faixa dos
      factos, rodape, newsletter, passos da reserva): voltam as
      variaveis do modo claro e ficam exatamente como eram;
   2. tudo o que tem fundo amarelo: variaveis do modo claro e letra
      escura (a cor herda-se ja calculada, por isso diz-se outra vez);
   3. botoes pretos com letra amarela: no escuro passam a amarelos com
      letra preta (preto sobre o papel escuro nao se via). */
html[data-tema="escuro"]{
  color-scheme:dark;
  --paper:#121211;--white:#1D1D1B;--black:#F2EFE6;--ink:#E4E1D8;--gray:#AEABA2;--line:#3A3934;
  --yellow-soft:#2B2511;
}
html[data-tema="escuro"] body{background:var(--paper);}
html[data-tema="escuro"] :is(.topbar,footer,.hero,.pg-hero,.t-hero,.facts,.newsletter,.board,.ok,.passo){
  --paper:#FFFFFF;--white:#FFFFFF;--black:#141414;--ink:#2A2A28;--gray:#5A5A55;--line:#E6E3DA;--yellow-soft:#FFF6D6;
  color-scheme:light;
}
html[data-tema="escuro"] :is(.cta-btn,.btn-yellow,.burger,.tag,.carimbo,.saltar,.convite,.t-strip,.avaliacoes,.caixa,
  .bilhete-top,.cartao-top,.ticket-top,.transfer-top,.transfer-nota,.ct-form-top,.bb-canhoto,.logo .mark,.etapas li.on,
  .dia[aria-pressed="true"],.itinerary-item.key .itinerary-time,.nl-form .btn-dark,.bar button,.paises-lista a:hover,
  .lingua-lista a[aria-current="true"],.faq-item.open .plus,.book #airportlink .al-h,.book #airportlink .al-sub,
  .book #airportlink .al-by,.wa){
  --paper:#FFFFFF;--white:#FFFFFF;--black:#141414;--ink:#2A2A28;--gray:#5A5A55;--line:#E6E3DA;--yellow-soft:#FFF6D6;
  color:#141414;color-scheme:light;
}
html[data-tema="escuro"] :is(.btn-dark,.book-btn,.confirmar,.seguir,.qty button,.qty-btn,.pc-fita,.av-plataformas b,
  .enviar .e-mail,.chips button[aria-pressed="true"],.filtros button[aria-pressed="true"],.pick button[aria-pressed="true"],
  .book #airportlink .al-go){
  --black:#141414;background:var(--yellow);color:#141414;border-color:#141414;
}
/* dentro de uma zona amarela, o botao preto continua preto */
html[data-tema="escuro"] :is(.convite,.avaliacoes,.caixa,.t-strip,.cartao-top,.ticket-top) :is(.btn-dark,.book-btn,.confirmar,.seguir){
  background:#141414;color:var(--yellow);
}
html[data-tema="escuro"] .nav-wrap{border-bottom-color:#3A3934;}
html[data-tema="escuro"] footer{border-top:2px solid #2A2A27;}
html[data-tema="escuro"] main img:not(.logo img){filter:brightness(.92);}

/* ---------------------------------------------------------------- ferramentas do cabecalho
   (6 out 2026) Lingua, moeda, conta e tema, no cabecalho branco, no
   computador e no telemovel. Icones de traco fino, sem moldura. */
.ferramentas{display:flex;align-items:center;gap:4px;flex:none;}
.ferramentas > *{height:42px;display:inline-flex;align-items:center;justify-content:center;gap:6px;border-radius:10px;
  padding:0 9px;font-weight:700;font-size:.9rem;color:var(--black);background:none;border:0;cursor:pointer;white-space:nowrap;}
.ferramentas > :hover,.lingua summary:hover{background:var(--yellow-soft);}
.ferramentas .tema{width:42px;padding:0;}
.tema .lua{display:inline-flex;}
.tema .sol{display:none;}
html[data-tema="escuro"] .tema .sol{display:inline-flex;}
html[data-tema="escuro"] .tema .lua{display:none;}
.conta-link span{font-size:.9rem;}
.moeda,.ferramentas .cur-pick{font-variant-numeric:tabular-nums;}
/* a lingua: um <details> com as tres */
.lingua{position:relative;padding:0;}
.lingua summary{list-style:none;height:42px;display:inline-flex;align-items:center;gap:6px;padding:0 9px;border-radius:10px;cursor:pointer;}
.lingua summary::-webkit-details-marker{display:none;}
.lingua summary::after{content:'';width:6px;height:6px;border:solid currentColor;border-width:0 2px 2px 0;transform:rotate(45deg) translateY(-2px);margin-left:2px;}
.lingua-lista{position:absolute;top:calc(100% + 8px);right:0;z-index:20;min-width:170px;background:var(--white);border:2px solid var(--black);
  border-radius:14px;box-shadow:5px 5px 0 var(--black);padding:6px;display:grid;}
.lingua-lista a{display:flex;gap:10px;align-items:center;padding:9px 12px;border-radius:9px;font-weight:600;}
.lingua-lista a b{width:24px;}
.lingua-lista a:hover{background:var(--yellow-soft);}
.lingua-lista a[aria-current="true"]{background:var(--yellow);color:#141414;}
.nav-links{margin-left:auto;}
.nav-wrap nav .ferramentas{margin-left:6px;}
.nav-links a{white-space:nowrap;}
/* computador estreito: a conta so com o icone */
@media(max-width:1300px){
  .nav-links{gap:20px;}
  .conta-link span{display:none;}
  .nav-wrap nav{gap:16px;}
}
/* abaixo disto os links do menu ja nao cabem numa linha (em PT e ES
   sao mais compridos): passam para o menu do hamburguer */
@media(max-width:1180px){
  .nav-links,.cta-btn{display:none;}
  .burger{display:flex;margin-left:6px;}
  .nav-wrap nav .ferramentas{margin-left:auto;}
  .conta-link span{display:inline;}
}
@media(max-width:620px){.conta-link span{display:none;}}
@media(max-width:520px){
  .ferramentas{gap:0;}
  .ferramentas > *{padding:0 6px;height:40px;font-size:.85rem;}
  .ferramentas .tema{width:36px;}
  .lingua summary{padding:0 6px;height:40px;gap:4px;}
  .burger{width:42px;height:42px;margin-left:4px;}
  .nav-wrap nav{gap:8px;padding:10px 14px;}
  .logo img{height:44px;}
}
@media(max-width:360px){.moeda,.ferramentas .cur-pick{font-size:.78rem;}}

/* ---------------------------------------------------------------- o chat (assets/chat.js)
   (7 out 2026) A bolha amarela no canto e o painel do chat; o mesmo
   componente da conversa serve a pagina /account/support/. */
.ch-bolha{position:fixed;right:20px;bottom:calc(20px + env(safe-area-inset-bottom));z-index:900;width:60px;height:60px;border-radius:50%;
  border:2px solid #141414;background:#FFC72C;color:#141414;display:grid;place-items:center;cursor:pointer;box-shadow:4px 4px 0 #141414;}
.ch-bolha:hover{background:#F2A900;}
.ch-bolha .ch-ponto{position:absolute;top:2px;right:2px;width:14px;height:14px;border-radius:50%;background:#D92D20;border:2px solid #FFFFFF;}
.ch-bolha .ch-ponto[hidden]{display:none;}
body:has(.bar) .ch-bolha{bottom:calc(20px + env(safe-area-inset-bottom));}
@media(max-width:960px){body:has(.bar) .ch-bolha{bottom:calc(92px + env(safe-area-inset-bottom));}}
.ch-painel{position:fixed;right:20px;bottom:calc(94px + env(safe-area-inset-bottom));z-index:950;width:min(390px,calc(100vw - 32px));
  height:min(600px,calc(100vh - 140px));display:flex;flex-direction:column;background:var(--white);color:var(--black);
  border:2px solid var(--black);border-radius:20px;box-shadow:8px 8px 0 var(--black);overflow:hidden;}
.ch-painel[hidden]{display:none;}
.ch-cab{display:flex;align-items:center;justify-content:space-between;gap:10px;background:#FFC72C;color:#141414;padding:14px 16px;border-bottom:2px dashed #141414;}
.ch-cab b{display:block;font-family:var(--display);font-weight:400;font-size:1.5rem;line-height:1;text-transform:uppercase;}
.ch-cab span{display:block;font-size:.8rem;font-weight:600;margin-top:3px;}
.ch-x{width:38px;height:38px;border-radius:10px;border:2px solid #141414;background:#FFFFFF;color:#141414;display:grid;place-items:center;cursor:pointer;flex:none;}
.ch-corpo{flex:1;min-height:0;display:flex;flex-direction:column;overflow:auto;}
.ch-pe{padding:9px 16px;border-top:1px solid var(--line);font-size:.88rem;font-weight:700;}
.ch-pe[hidden]{display:none;}
.ch-pe a{border-bottom:2px solid var(--yellow);}
.ch-form{padding:14px 16px 18px;display:grid;gap:10px;}
.ch-intro{font-size:.92rem;color:var(--ink);}
.ch-conta{font-size:.85rem;font-weight:700;color:var(--gray);overflow-wrap:anywhere;}
.ch-campo label{display:block;font-size:.82rem;font-weight:700;margin-bottom:4px;}
.ch-campo label span{font-weight:400;color:var(--gray);}
.ch-campo input,.ch-campo select,.ch-campo textarea,.ch-escrever textarea{width:100%;min-height:44px;padding:10px 12px;border:2px solid var(--black);border-radius:11px;
  font:inherit;font-size:.95rem;background:var(--white);color:var(--black);}
.ch-campo textarea{min-height:92px;resize:vertical;}
.ch-campo :focus,.ch-escrever textarea:focus{outline:none;box-shadow:0 0 0 3px var(--yellow);}
.ch-campo [aria-invalid="true"]{border-color:#B42318;}
.ch-enviar{min-height:46px;border:2px solid #141414;border-radius:12px;background:#141414;color:#FFC72C;font:inherit;font-weight:700;cursor:pointer;padding:0 16px;}
.ch-enviar:disabled{opacity:.6;cursor:wait;}
html[data-tema="escuro"] .ch-enviar{background:#FFC72C;color:#141414;}
.ch-aviso{margin:0 16px 12px;padding:9px 12px;border:2px solid #B42318;border-radius:10px;background:#FEF2F2;color:#8A1C12;font-size:.88rem;font-weight:600;}
.ch-form .ch-aviso{margin:0;}
.ch-aviso[hidden]{display:none;}
.ch-wa{font-size:.85rem;color:var(--gray);}
.ch-wa a{font-weight:700;color:var(--black);border-bottom:2px solid var(--wa);}
.ch-estado{display:flex;flex-wrap:wrap;gap:6px 10px;align-items:center;padding:8px 16px;border-bottom:1px solid var(--line);font-size:.85rem;font-weight:600;color:var(--gray);}
.ch-estado[hidden]{display:none;}
.ch-ticket{font-variant-numeric:tabular-nums;}
.ch-link{background:none;border:0;padding:0;font:inherit;font-weight:700;color:var(--black);border-bottom:2px solid var(--yellow);cursor:pointer;}
.ch-msgs{flex:1;min-height:120px;overflow-y:auto;padding:14px 16px;display:flex;flex-direction:column;gap:10px;}
.ch-msg{max-width:86%;padding:9px 12px 10px;border-radius:14px;border:2px solid var(--black);font-size:.94rem;}
.ch-msg p{white-space:pre-wrap;overflow-wrap:anywhere;margin-top:2px;}
.ch-msg-de{display:flex;gap:8px;align-items:baseline;font-size:.75rem;}
.ch-msg-de span{color:var(--gray);font-variant-numeric:tabular-nums;}
.ch-msg.equipa{align-self:flex-start;background:var(--yellow-soft);border-bottom-left-radius:4px;}
.ch-msg.eu{align-self:flex-end;background:var(--white);border-bottom-right-radius:4px;}
.ch-escrever{display:flex;gap:8px;align-items:flex-end;padding:10px 12px;border-top:2px solid var(--black);}
.ch-escrever[hidden]{display:none;}
.ch-escrever textarea{min-height:46px;max-height:140px;resize:none;}
@media(max-width:520px){
  .ch-bolha{right:14px;width:56px;height:56px;}
  /* no telemovel o chat ocupa o ecra todo, por cima do cabecalho */
  .ch-painel{inset:0;width:auto;height:auto;border:0;border-radius:0;box-shadow:none;z-index:1100;
    padding-top:env(safe-area-inset-top);padding-bottom:env(safe-area-inset-bottom);}
  body.ch-aberto .ch-bolha{display:none;}
}
@media print{.ch-bolha,.ch-painel{display:none!important;}}

/* ---------------------------------------------------------------- lingua e moeda: bandeira + codigo
   (7 out 2026) Os dois botoes com o desenho do site: contorno preto,
   pilula, sombra dura pequena. A lingua com a bandeira; a moeda com o
   simbolo num circulo amarelo. */
.ferramentas .lingua{padding:0;height:auto;background:none;}
.ferramentas .lingua:hover{background:none;}
.lingua summary,.ferramentas .moeda,.ferramentas .cur-pick.moeda{height:38px;display:inline-flex;align-items:center;gap:7px;padding:0 11px 0 7px;
  border:2px solid var(--black);border-radius:999px;background:var(--white);color:var(--black);font-weight:700;font-size:.86rem;
  letter-spacing:.02em;box-shadow:2px 2px 0 var(--black);cursor:pointer;}
.lingua summary:hover,.ferramentas .moeda:hover,.ferramentas .cur-pick.moeda:hover{background:var(--yellow-soft);}
.lingua[open] summary{background:var(--yellow);color:#141414;}
.lingua summary::after{width:5px;height:5px;margin-left:1px;}
.bandeira{display:inline-block;flex:none;width:22px;height:15px;border-radius:3px;overflow:hidden;
  box-shadow:0 0 0 1.5px var(--black);line-height:0;}
.bandeira svg{width:100%;height:100%;display:block;}
.moeda-simb{display:inline-grid;place-items:center;flex:none;width:23px;height:23px;border-radius:50%;background:#FFC72C;color:#141414;
  border:1.5px solid #141414;font-size:.8rem;font-weight:800;line-height:1;letter-spacing:0;}
.moeda-simb[data-len="2"]{font-size:.62rem;}
.moeda-simb[data-len="3"]{font-size:.5rem;}
.cur-rotulo{display:inline-flex;align-items:center;gap:7px;}
.lingua-lista a{gap:10px;}
.lingua-lista a b{width:22px;}
.ferramentas{gap:8px;}
@media(max-width:520px){
  .ferramentas{gap:5px;}
  .lingua summary,.ferramentas .moeda,.ferramentas .cur-pick.moeda{height:36px;padding:0 8px 0 5px;gap:5px;font-size:.8rem;box-shadow:none;}
  .lingua summary::after{display:none;}
  .bandeira{width:20px;height:14px;}
  .moeda-simb{width:21px;height:21px;}
}
@media(max-width:380px){
  .ferramentas .moeda [data-cur-codigo]{display:none;}
  .ferramentas .moeda,.ferramentas .cur-pick.moeda{padding:0 5px;}
}
/* o menu da moeda (7 out 2026): o mesmo desenho do das linguas
   (assets/currency.js monta-o sobre o botao .moeda). Dezasseis moedas:
   duas colunas no computador, uma com scroll no telemovel. */
.moeda-menu summary{font-variant-numeric:tabular-nums;}
.moeda-lista{grid-template-columns:repeat(2,minmax(0,1fr));gap:2px;width:max-content;max-width:min(520px,calc(100vw - 24px));white-space:normal;}
.lingua-lista button{display:flex;gap:10px;align-items:center;width:100%;padding:8px 12px 8px 9px;border:0;border-radius:9px;
  background:none;color:inherit;font:inherit;font-weight:600;text-align:left;cursor:pointer;}
.lingua-lista button:hover{background:var(--yellow-soft);}
.lingua-lista button[aria-pressed="true"]{background:var(--yellow);color:#141414;}
.lingua-lista button b{width:34px;flex:none;}
.moeda-nome{font-size:.86rem;line-height:1.25;}
html[data-tema="escuro"] .lingua-lista button[aria-pressed="true"]{color:#141414;}
@media(max-width:520px){
  .moeda-lista{grid-template-columns:1fr;width:min(300px,calc(100vw - 24px));max-height:min(62vh,440px);overflow-y:auto;overscroll-behavior:contain;}
  .moeda-nome{white-space:normal;}
  .moeda-menu summary [data-cur-codigo]{display:inline;}
}
@media(max-width:380px){.moeda-menu summary [data-cur-codigo]{display:none;}}
@media(max-width:520px){.topbar .tel-num{display:none;}}
