/* Restaurante Magalhães — Desde 1917 */
:root{
  --carvao:#1C1B19; --carvao-prof:#141312; --carvao-cartao:#26241F;
  --dourado:#C8A24E; --dourado-claro:#E6C879;
  --creme:#F3EBD9; --creme-sombra:#ECE0C6;
  --texto-claro:#EFE7D6; --texto-suave:#CABFA6; --texto-escuro:#2A2723;
  --linha:rgba(200,162,78,.28);
  --serif:'Cormorant Garamond',Georgia,serif;
  --sans:'Source Sans 3',Inter,system-ui,sans-serif;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--carvao-prof);color:var(--texto-claro);font-family:var(--sans);-webkit-font-smoothing:antialiased}
img{max-width:100%}
a{color:var(--dourado);text-decoration:none}
a:hover{color:var(--dourado-claro)}
:focus-visible{outline:2px solid var(--dourado);outline-offset:3px}
::selection{background:rgba(200,162,78,.35)}
h1,h2,h3{font-family:var(--serif);font-weight:600;margin:0}
h2{font-size:clamp(32px,4.6vw,46px);line-height:1.15;color:var(--texto-escuro)}
h2.claro{color:var(--texto-claro)}
p{line-height:1.75}
.centrado{text-align:center}
.eyebrow{display:block;font-size:.72rem;letter-spacing:.28em;text-transform:uppercase;color:var(--dourado);font-weight:600}
.eyebrow-escuro{display:block;font-size:.72rem;letter-spacing:.28em;text-transform:uppercase;color:var(--texto-escuro);font-weight:700}
.eyebrow-linha{display:flex;align-items:center;justify-content:center;gap:14px}
.eyebrow-linha>span:first-child,.eyebrow-linha>span:last-child{width:34px;height:1px;background:var(--dourado)}
.coluna-estreita{max-width:640px;margin:0 auto;padding:0 24px}
.coluna-larga{max-width:1100px;margin:0 auto;padding:0 24px}

/* Botões */
.btn{display:inline-flex;align-items:center;min-height:44px;padding:15px 32px;font-size:12px;font-weight:700;letter-spacing:.2em;text-transform:uppercase;transition:background .3s,color .3s}
.btn-cheio{background:var(--dourado);color:var(--carvao-prof)}
.btn-cheio:hover{background:var(--dourado-claro);color:var(--carvao-prof)}
.btn-contorno{border:1px solid rgba(200,162,78,.6);color:var(--dourado-claro)}
.btn-contorno:hover{background:rgba(200,162,78,.12)}
.btn-escuro{border:1px solid var(--texto-escuro);color:var(--texto-escuro)}
.btn-escuro:hover{background:var(--texto-escuro);color:var(--creme)}

/* Cabeçalho */
.cabecalho{position:fixed;top:0;left:0;right:0;z-index:80;background:transparent;border-bottom:1px solid transparent;transition:background .45s,border-color .45s;backdrop-filter:blur(6px)}
.cabecalho.solido{background:rgba(20,19,18,.96);border-bottom:1px solid var(--linha)}
.cabecalho-inner{max-width:1200px;margin:0 auto;padding:0 24px;height:68px;display:flex;align-items:center;justify-content:space-between;gap:24px}
.marca img{height:34px;width:auto;display:block}
.nav-desktop{display:none;align-items:center;gap:34px}
.nav-desktop a{font-size:11.5px;font-weight:600;letter-spacing:.22em;text-transform:uppercase;color:var(--texto-suave)}
.nav-desktop a:hover,.nav-desktop a.ativo{color:var(--dourado-claro)}
.btn-reservar{border:1px solid rgba(200,162,78,.6);padding:10px 22px;color:var(--dourado-claro)!important}
.btn-reservar:hover{background:var(--dourado);color:var(--carvao-prof)!important}
.hamburger{background:none;border:none;cursor:pointer;display:flex;flex-direction:column;gap:6px;padding:12px 4px}
.hamburger span{display:block;width:24px;height:1.5px;background:var(--dourado)}
.hamburger span:last-child{width:16px}
.menu-movel{position:fixed;inset:0;z-index:90;background:rgba(20,19,18,.98);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:30px}
.menu-movel[hidden]{display:none}
.menu-movel a{font-family:var(--serif);font-size:34px;font-weight:500;color:var(--texto-claro)}
.menu-movel a.ativo{color:var(--dourado-claro)}
.menu-movel .fechar{position:absolute;top:18px;right:20px;background:none;border:1px solid rgba(200,162,78,.4);color:var(--dourado-claro);font-size:13px;letter-spacing:.2em;text-transform:uppercase;padding:10px 18px;cursor:pointer}
.menu-sep{width:40px;height:1px;background:rgba(200,162,78,.4)}
.menu-movel .menu-tel{font-family:var(--sans);font-size:12px;font-weight:600;letter-spacing:.26em;text-transform:uppercase;color:var(--dourado-claro)}

/* Hero */
.hero{min-height:100vh;display:grid;place-items:center;position:relative;overflow:hidden;padding:100px 24px 80px;background:var(--carvao-prof)}
.hero-fundo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 62%;opacity:.42}
.hero-veu{position:absolute;inset:0;background:linear-gradient(to bottom,rgba(20,19,18,.94),rgba(20,19,18,.58) 42%,rgba(20,19,18,.93))}
.hero-conteudo{position:relative;z-index:1;text-align:center;animation:heroIn 1.3s cubic-bezier(.2,.6,.2,1) both}
.hero-conteudo h1 img{width:min(560px,82vw);height:auto;display:block;margin:0 auto}
.hero-desde{display:flex;align-items:center;justify-content:center;gap:16px;margin:26px 0}
.hero-desde span{font-size:.78rem;letter-spacing:.34em;text-transform:uppercase;color:var(--texto-claro)}
.hero-desde .linha{width:54px;height:1px;background:var(--linha)}
.hero-frase{font-family:var(--serif);font-style:italic;font-size:clamp(19px,2.4vw,24px);color:var(--texto-suave);max-width:520px;margin:0 auto;line-height:1.5}
.hero-botoes{display:flex;justify-content:center;gap:16px;margin-top:42px;flex-wrap:wrap}
.hero-seta{position:absolute;bottom:34px;left:50%;margin-left:-7px;width:14px;height:14px;border-right:1px solid var(--dourado);border-bottom:1px solid var(--dourado);transform:rotate(45deg);animation:drift 2.6s ease-in-out infinite;opacity:.7}
@keyframes heroIn{from{opacity:0;transform:translateY(26px)}to{opacity:1;transform:none}}
@keyframes drift{0%,100%{transform:rotate(45deg) translate(0,0)}50%{transform:rotate(45deg) translate(5px,5px)}}

/* Secções */
.seccao-creme{background:var(--creme);color:var(--texto-escuro);padding:clamp(72px,10vw,130px) 0}
.seccao-creme h2{margin:22px 0 26px}
.seccao-creme p{font-size:17px;margin:0 0 18px;text-wrap:pretty}
.seccao-creme .btn{margin-top:18px}
.nota-reconhecimento{display:flex;align-items:center;justify-content:center;gap:14px;margin:10px 0 18px}
.nota-reconhecimento>span{flex:none;width:26px;height:1px;background:var(--dourado)}
.nota-reconhecimento small{font-size:13px;line-height:1.7;max-width:460px}
.seccao-escura{background:var(--carvao);padding:clamp(72px,10vw,130px) 0}
.seccao-escura h2{margin:18px 0 0}
.seccao-escura .centrado{margin-bottom:clamp(48px,7vw,80px)}

/* Cartões especialidade */
.cartao{display:grid;grid-template-columns:1fr;background:var(--carvao-cartao);border:1px solid var(--linha);margin-bottom:clamp(36px,5vw,56px)}
.cartao:last-child{margin-bottom:0}
.cartao-foto{aspect-ratio:4/5;position:relative;overflow:hidden;background:var(--carvao-prof)}
.cartao-foto img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.cartao-foto i{position:absolute;inset:12px;border:1px solid rgba(230,200,121,.5);pointer-events:none}
.cartao-texto{display:flex;flex-direction:column;justify-content:center;padding:clamp(32px,5vw,64px)}
.cartao-texto h3{font-size:clamp(30px,3.6vw,40px);color:var(--texto-claro);margin:14px 0 4px}
.prato-tecnico{font-family:var(--serif);font-style:italic;font-size:19px;color:var(--texto-suave);margin:0 0 18px}
.cartao-texto p{font-size:16px;color:var(--texto-suave);margin:0 0 22px;text-wrap:pretty}
.nota-servico{display:flex;align-items:center;gap:12px;font-size:13px;letter-spacing:.06em;color:var(--dourado-claro)}
.nota-servico span{width:26px;height:1px;background:var(--dourado)}

/* Banda citação */
.banda-citacao{background:var(--carvao-prof);border-top:1px solid var(--linha);border-bottom:1px solid var(--linha);padding:clamp(80px,11vw,140px) 24px}
.banda-citacao p{font-family:var(--serif);font-style:italic;font-weight:500;font-size:clamp(26px,4vw,40px);color:var(--texto-claro);text-align:center;max-width:760px;margin:0 auto;line-height:1.4;text-wrap:pretty}

/* Galeria */
.galeria{display:grid;grid-template-columns:repeat(2,1fr);gap:14px;margin-top:clamp(40px,6vw,64px)}
.galeria figure{margin:0;aspect-ratio:1/1;overflow:hidden;background:var(--carvao-cartao)}
.galeria img{width:100%;height:100%;object-fit:cover;transition:transform 1.8s cubic-bezier(.2,.6,.2,1)}
.galeria figure:hover img{transform:scale(1.06)}

/* Banda reserva */
.banda-reserva{background:var(--carvao);padding:clamp(80px,11vw,140px) 24px;text-align:center}
.banda-reserva h2{margin:18px 0 10px}
.banda-reserva .suave{font-size:15px;color:var(--texto-suave);margin:0 0 28px}
.tel-grande{font-family:var(--serif);font-weight:600;font-size:clamp(28px,4.4vw,44px);color:var(--dourado-claro);border-bottom:1px solid var(--linha);padding-bottom:6px}
.tel-grande:hover{color:var(--dourado)}

/* Rodapé */
.rodape{background:var(--carvao-prof);border-top:1px solid var(--linha);padding:clamp(56px,8vw,80px) 24px 36px}
.rodape-grid{max-width:1100px;margin:0 auto;display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:40px}
.rodape-grid>div{display:flex;flex-direction:column;gap:8px;font-size:14.5px;line-height:1.6;color:var(--texto-suave)}
.rodape-grid .eyebrow{margin-bottom:4px}
.rodape-grid a{color:var(--texto-suave)}
.rodape-grid a:hover{color:var(--dourado-claro)}
.rodape-grid a.destaque{color:var(--texto-claro)}
.rodape-marca img{width:170px;height:auto}
.rodape-links{display:flex;gap:14px;margin-top:2px}
.rodape-links a{font-size:11px;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:var(--dourado)}
.rodape-base{max-width:1100px;margin:44px auto 0;padding-top:22px;border-top:1px solid var(--linha);font-size:12.5px;letter-spacing:.1em;color:var(--texto-suave);text-align:center}

/* Páginas interiores */
.pagina-topo{background:var(--carvao-prof);padding:148px 24px 64px;text-align:center}
.pagina-topo h1{font-size:clamp(44px,7vw,72px);color:var(--texto-claro);margin:14px 0 0}
.topo-frase{font-family:var(--serif);font-style:italic;font-size:clamp(18px,2.2vw,22px);color:var(--texto-suave);max-width:480px;margin:18px auto 0;line-height:1.6}

/* Carta */
.carta-nav{position:sticky;top:68px;z-index:60;background:rgba(243,235,217,.97);border-bottom:1px solid var(--linha);overflow-x:auto}
.carta-nav div{display:flex;gap:26px;padding:0 24px;max-width:900px;margin:0 auto;white-space:nowrap}
.carta-nav a{display:inline-flex;align-items:center;min-height:46px;font-size:11px;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:var(--texto-escuro)}
.carta-nav a:hover{color:var(--dourado)}
.carta-corpo{background:var(--creme);color:var(--texto-escuro);padding:8px 0 72px}
.carta-seccao{max-width:740px;margin:0 auto;padding:60px 24px 0;scroll-margin-top:130px}
.carta-cabeca{text-align:center;margin-bottom:30px}
.carta-cabeca h2{font-size:clamp(28px,4vw,36px)}
.ornamento{display:flex;align-items:center;justify-content:center;gap:12px;margin-bottom:16px}
.ornamento span{width:60px;height:1px;background:rgba(200,162,78,.55)}
.ornamento i{width:7px;height:7px;border:1px solid var(--dourado);transform:rotate(45deg)}
.grupo-titulo{font-family:var(--sans);font-size:.72rem;letter-spacing:.28em;text-transform:uppercase;color:var(--texto-escuro);font-weight:700;margin:26px 0 10px;display:flex;align-items:center;justify-content:center;gap:12px}
.grupo-titulo span{width:26px;height:1px;background:var(--linha)}
.prato{padding:8px 0;text-align:center}
.prato-nome{font-family:var(--serif);font-weight:600;font-size:20px;line-height:1.25;display:block}
.prato-sub{display:block;font-family:var(--serif);font-style:italic;font-size:15px;color:#a07c2f;margin-top:2px}
.carta-nota{max-width:740px;margin:56px auto 0;padding:22px 24px 0;border-top:1px solid var(--linha);text-align:center;font-family:var(--serif);font-style:italic;font-size:16px;color:rgba(42,39,35,.65)}

/* História */
.historia-topo{padding-bottom:80px}
.ano{font-family:var(--serif);font-weight:500;font-size:clamp(110px,20vw,220px);line-height:1;color:var(--dourado-claro);margin:18px 0 8px;letter-spacing:.02em}
.historia-corpo{background:var(--creme);color:var(--texto-escuro);padding:clamp(64px,9vw,110px) 0}
.historia-corpo p{font-size:17.5px;line-height:1.85;margin:0 0 26px;text-wrap:pretty}
.capitular{float:left;font-family:var(--serif);font-weight:600;font-size:74px;line-height:.78;color:var(--dourado);padding:8px 12px 0 0}
.historia-foto{max-width:900px;margin:clamp(36px,5vw,56px) auto;padding:0 24px}
.historia-foto div{aspect-ratio:16/9;position:relative;overflow:hidden;background:var(--carvao-cartao)}
.historia-foto img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.historia-foto i{position:absolute;inset:12px;border:1px solid rgba(230,200,121,.5);pointer-events:none}
.historia-foto figcaption{font-size:12.5px;letter-spacing:.06em;color:rgba(42,39,35,.55);margin-top:10px;text-align:center}
.historia-corpo .destaque{max-width:680px;margin:clamp(48px,7vw,72px) auto;padding:0 24px;text-align:center}
.historia-corpo .destaque p{font-family:var(--serif);font-style:italic;font-weight:500;font-size:clamp(24px,3.6vw,32px);line-height:1.4;margin:0}
.despedida{font-family:var(--serif);font-style:italic;font-size:21px}

/* Contactos */
.contactos-corpo{background:var(--creme);color:var(--texto-escuro);padding:clamp(56px,8vw,90px) 24px}
.contactos-corpo a{color:var(--texto-escuro)}
.contactos-corpo a:hover{color:#a07c2f}
.contactos-grid{max-width:1100px;margin:0 auto;display:grid;grid-template-columns:1fr;gap:clamp(36px,5vw,64px);align-items:start}
.contactos-info{display:flex;flex-direction:column;gap:34px}
.contactos-info>div{display:flex;flex-direction:column;gap:8px}
.contactos-info .morada{font-family:var(--serif);font-size:22px;font-weight:600;line-height:1.4}
.mini-links{display:flex;gap:16px;margin-top:4px;flex-wrap:wrap}
.mini-links a{font-size:11px;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:#a07c2f}
.contactos-info .tel{font-family:var(--serif);font-size:32px;font-weight:600}
.contactos-info p{font-size:14.5px;line-height:1.7;color:rgba(42,39,35,.7);margin:0;max-width:420px}
.horario{display:grid;grid-template-columns:auto 1fr;gap:8px 24px;max-width:380px;font-size:15px}
.horario span{color:rgba(42,39,35,.7)}
.horario b{text-align:right}
.pequeno{font-size:13.5px;line-height:1.7;color:rgba(42,39,35,.6)}
.estacionamento{border-top:1px solid rgba(200,162,78,.4);padding-top:18px}
.mapa-moldura{border:1px solid rgba(200,162,78,.5);padding:10px;background:var(--creme-sombra)}
.mapa-moldura iframe{display:block;width:100%;aspect-ratio:1/1.1;border:0}
.contactos-mapa .pequeno{margin-top:10px;text-align:center}

/* Reveal */
.reveal{opacity:1;transform:none;transition:opacity .9s ease,transform .9s ease}
.js .reveal{opacity:0;transform:translateY(18px)}
.js .reveal.visivel{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .hero-conteudo,.hero-seta{animation:none}
  .js .reveal{opacity:1;transform:none;transition:none}
  .galeria img{transition:none}
}

/* Desktop */
@media (min-width:820px){
  .nav-desktop{display:flex}
  .hamburger{display:none}
  .cartao{grid-template-columns:1fr 1.05fr}
  .cartao.invertido{grid-template-columns:1.05fr 1fr}
  .galeria{grid-template-columns:repeat(3,1fr)}
  .contactos-grid{grid-template-columns:1fr 1fr}
  .mapa-moldura iframe{aspect-ratio:4/4.4}
}
@media (max-width:819px){
  .cartao.invertido{display:flex;flex-direction:column}
  .cartao.invertido .cartao-foto{order:-1}
}
