/* Layout comum a todas as paginas: cabecalho, menu mobile, rodape, WhatsApp e CTA fixo */
/* ---------- Header ---------- */
.progress{position:fixed;top:0;left:0;right:0;height:3px;background:var(--coral);transform-origin:0 50%;transform:scaleX(0);z-index:60}
.site-header{position:fixed;inset:0 0 auto 0;z-index:50;transition:background .4s,box-shadow .4s,color .4s,padding .4s;color:#fff;padding:18px 0}
.site-header.is-solid{background:rgba(255,255,255,.9);backdrop-filter:saturate(1.4) blur(14px);-webkit-backdrop-filter:saturate(1.4) blur(14px);color:var(--ink);box-shadow:0 1px 0 var(--line);padding:10px 0}
.nav{display:flex;align-items:center;justify-content:space-between;gap:24px}
.logo{--logo-ink:#1F4F78;display:flex;align-items:center;text-decoration:none;line-height:0}
.logo-svg{height:58px;width:auto;display:block;overflow:visible}
.site-header:not(.is-solid) .logo{--logo-ink:#FFFFFF}
.site-header.is-solid .logo-svg{height:50px}
@media (max-width:560px){.logo-svg{height:46px}.site-header.is-solid .logo-svg{height:42px}}
.menu{display:flex;gap:28px;list-style:none;margin:0;padding:0;font-size:14.5px;font-weight:500}
.menu a{text-decoration:none;opacity:.88;position:relative;padding:6px 0}
.menu a::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:currentColor;transform:scaleX(0);transform-origin:right;transition:transform .35s var(--ease)}
.menu a:hover::after,.menu a.active::after{transform:scaleX(1);transform-origin:left}
.nav .btn{padding:11px 20px;font-size:14.5px}
.burger{display:none;background:none;border:0;width:44px;height:44px;border-radius:50%;place-items:center}
.burger i{font-size:26px}
@media (max-width:1080px){.menu{display:none}.burger{display:grid}.nav .btn{display:none}}
/* Menu mobile: painel lateral branco */
.drawer-backdrop{position:fixed;inset:0;z-index:69;background:rgba(0,38,64,.35);backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px);opacity:0;visibility:hidden;transition:opacity .4s,visibility 0s linear .4s}
.drawer-backdrop.open{opacity:1;visibility:visible;transition:opacity .4s}
.drawer{position:fixed;top:0;right:0;bottom:0;width:min(86vw,360px);z-index:70;background:#fff;color:var(--ink);display:flex;flex-direction:column;box-shadow:-24px 0 60px -24px rgba(0,0,0,.35);transform:translateX(100%);visibility:hidden;transition:transform .5s var(--ease),visibility 0s linear .5s}
.drawer.open{transform:none;visibility:visible;transition:transform .5s var(--ease)}
.dr-top{display:flex;justify-content:space-between;align-items:center;padding:14px 20px;border-bottom:1px solid var(--line)}
.dr-top .logo-svg{height:44px}

.drawer .close{width:40px;height:40px;border-radius:50%;border:1px solid var(--line);background:#fff;display:grid;place-items:center;font-size:18px;color:var(--ink);transition:background .25s,transform .35s var(--ease)}
.drawer .close:hover{background:var(--sand-2);transform:rotate(90deg)}
.dr-nav{flex:1;overflow-y:auto;padding:8px 20px;display:flex;flex-direction:column}
.dr-nav a{display:flex;justify-content:space-between;align-items:center;padding:15px 2px;font-family:var(--serif);font-size:16px;font-weight:500;text-decoration:none;color:var(--ink);border-bottom:1px solid var(--line);opacity:0;transform:translateX(14px);transition:opacity .4s,transform .45s var(--ease),color .2s}
.dr-nav a:last-child{border-bottom:0}
.dr-nav a i{font-size:15px;color:#B5B5B5;transition:transform .25s,color .25s}
.dr-nav a:hover,.dr-nav a.active{color:var(--sea)}
.dr-nav a.active{font-weight:600}
.dr-nav a:hover i,.dr-nav a.active i{transform:translateX(3px);color:var(--sea)}
.drawer.open .dr-nav a{opacity:1;transform:none}
.drawer.open .dr-nav a:nth-child(2){transition-delay:.04s}.drawer.open .dr-nav a:nth-child(3){transition-delay:.08s}.drawer.open .dr-nav a:nth-child(4){transition-delay:.12s}.drawer.open .dr-nav a:nth-child(5){transition-delay:.16s}.drawer.open .dr-nav a:nth-child(6){transition-delay:.2s}.drawer.open .dr-nav a:nth-child(7){transition-delay:.24s}.drawer.open .dr-nav a:nth-child(8){transition-delay:.28s}
.dr-foot{padding:16px 20px calc(20px + env(safe-area-inset-bottom));border-top:1px solid var(--line);display:grid;gap:14px}
.dr-foot .btn{justify-content:center;width:100%;padding:14px 20px}
.dr-tel{display:flex;align-items:center;gap:12px;text-decoration:none;color:var(--muted);font-size:12.5px;line-height:1.3}
.dr-tel i{width:40px;height:40px;border-radius:50%;background:var(--foam);color:var(--sea);display:grid;place-items:center;font-size:20px;flex:none}
.dr-tel b{display:block;font-family:var(--serif);font-size:16px;color:var(--ink)}
@media (prefers-reduced-motion:reduce){.drawer,.dr-nav a{transition:none}}


/* ---------- Footer ---------- */
footer{background:#033D5B;color:rgba(255,255,255,.72);padding:80px 0 110px;font-size:14.5px}
.foot{display:grid;grid-template-columns:1.4fr repeat(3,1fr);gap:40px}
.foot .foot-h{color:#fff;font-family:var(--serif);font-size:13px;letter-spacing:.14em;text-transform:uppercase;margin:0 0 16px;font-weight:600}
.foot ul{list-style:none;padding:0;margin:0;display:grid;gap:9px}
.foot a{text-decoration:none}
.foot a:hover{color:#fff}
.foot .logo{--logo-ink:#FFFFFF;margin-bottom:20px}.foot .logo-svg{height:72px}
.foot-bottom{margin-top:56px;padding-top:24px;border-top:1px solid rgba(255,255,255,.1);display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;font-size:13px}
@media (max-width:820px){.foot{grid-template-columns:1fr 1fr}}
@media (max-width:360px){.foot{grid-template-columns:1fr}}
/* Central de reservas (rodapé) */
.callbar{display:flex;justify-content:space-between;align-items:center;gap:20px 32px;flex-wrap:wrap;padding:0 0 40px;margin-bottom:48px;border-bottom:1px solid rgba(255,255,255,.12)}
.cb-left{display:flex;align-items:center;gap:16px}
.cb-ico{display:grid;place-items:center;width:48px;height:48px;border-radius:50%;border:1px solid rgba(255,255,255,.22);color:#fff;font-size:22px;flex:none}
.callbar small{display:block;font-size:12px;font-weight:500;letter-spacing:.12em;text-transform:uppercase;color:rgba(255,255,255,.6);margin-bottom:6px}
.call-num{text-decoration:none;color:#fff;font-family:var(--serif);font-weight:700;font-size:clamp(1.35rem,2.4vw,1.7rem);letter-spacing:.01em;line-height:1}
.call-num:hover{color:var(--sun)}
.cb-actions{display:flex;gap:12px;flex-wrap:wrap}
.btn-wa{display:inline-flex;align-items:center;gap:10px;background:#11804A;color:#fff;text-decoration:none;font-weight:600;font-size:15px;border-radius:999px;padding:12px 22px 12px 16px;transition:transform .3s var(--ease),filter .3s}
.btn-wa svg{width:22px;height:22px;fill:currentColor}
.btn-wa:hover{transform:translateY(-2px);filter:brightness(1.05)}
.btn-line{display:inline-flex;align-items:center;gap:8px;color:#fff;text-decoration:none;font-weight:600;font-size:15px;border:1px solid rgba(255,255,255,.3);border-radius:999px;padding:11px 20px;transition:border-color .3s,background .3s}
.btn-line:hover{border-color:#fff;background:rgba(255,255,255,.06)}
@media (max-width:560px){.cb-actions{width:100%;flex-direction:column}.cb-actions a{justify-content:center}}

/* WhatsApp flutuante */
.wa-float{position:fixed;right:20px;bottom:20px;z-index:46;width:60px;height:60px;border-radius:50%;background:#25D366;color:#fff;display:grid;place-items:center;box-shadow:0 12px 28px -8px rgba(0,0,0,.35);transition:transform .3s var(--ease)}
.wa-float svg{width:32px;height:32px;fill:currentColor}
.wa-float::before{content:"";position:absolute;inset:0;border-radius:50%;background:#25D366;z-index:-1;animation:wa-pulse 2.4s ease-out infinite}
.wa-float:hover{transform:scale(1.07)}
.wa-tip{position:absolute;right:calc(100% + 12px);top:50%;transform:translate(8px,-50%);white-space:nowrap;background:#fff;color:var(--ink);font-size:13.5px;font-weight:600;padding:8px 14px;border-radius:10px;box-shadow:var(--shadow);opacity:0;pointer-events:none;transition:opacity .3s,transform .3s var(--ease)}
.wa-float:hover .wa-tip,.wa-float:focus-visible .wa-tip{opacity:1;transform:translate(0,-50%)}
@media (prefers-reduced-motion:reduce){.wa-float::before{animation:none;opacity:0}}
@media (max-width:760px){.wa-float{bottom:84px;right:14px;width:54px;height:54px}.wa-float svg{width:28px;height:28px}}

/* ---------- CTA fixo mobile ---------- */
.m-cta{position:fixed;left:12px;right:12px;bottom:12px;z-index:45;display:none;transform:translateY(140%);transition:transform .5s var(--ease)}
.m-cta.show{transform:none}
.m-cta .btn{width:100%;justify-content:space-between;padding:14px 16px 14px 22px}
@media (max-width:760px){.m-cta{display:block}}

