*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
:root{
  /* Paleta premium — azul-noite profundo + ouro champagne + areia */
  --blue:#0e2a4d;--blue-dark:#071a33;--blue-mid:#1f4a85;--blue-soft:#e8eef8;
  --gold:#c9a35a;--gold-light:#e8d4a0;--gold-deep:#a37f3a;
  --off-white:#faf8f3;--cream:#f4ede0;--light-gray:#eef1f7;
  --text:#1a1f2c;--text-muted:#6b7280;--text-soft:#9aa3b2;--border:#e3e8f0;
  --nav-h:74px;
  --shadow-sm:0 2px 8px rgba(14,42,77,.06);
  --shadow-md:0 8px 24px rgba(14,42,77,.10);
  --shadow-lg:0 20px 60px rgba(14,42,77,.18);
  --shadow-gold:0 12px 40px rgba(201,163,90,.28);
  --ease:cubic-bezier(.16,1,.3,1);
}
html{scroll-behavior:smooth}
body{font-family:'Outfit',sans-serif;color:var(--text);background:#fff;overflow-x:hidden;-webkit-font-smoothing:antialiased;font-feature-settings:"kern","liga","calt"}
img{max-width:100%;display:block}
::-webkit-scrollbar{width:6px}::-webkit-scrollbar-thumb{background:var(--gold);border-radius:3px}
::selection{background:var(--gold);color:var(--blue-dark)}
.serif{font-family:'Playfair Display',serif}



/* ═══ SKELETON LOADER ═══ */
.skeleton{
  background:linear-gradient(90deg,#f0f0f0 25%,#e0e0e0 37%,#f0f0f0 63%);
  background-size:400px 100%;
  animation:skeletonShimmer 1.4s ease-in-out infinite;
  border-radius:3px;
}
@keyframes skeletonShimmer{
  0%{background-position:-400px 0}
  100%{background-position:400px 0}
}

/* Animações entrada */
@keyframes fadeUp{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}
@keyframes fadeIn{from{opacity:0}to{opacity:1}}
@keyframes shimmer{0%{background-position:-200% 0}100%{background-position:200% 0}}
@keyframes float{0%,100%{transform:translateY(0)}50%{transform:translateY(-6px)}}
.reveal{opacity:0}
.reveal.in{animation:fadeUp .9s var(--ease) forwards}

.azulejo-border{height:14px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='40' height='14'%3E%3Crect width='40' height='14' fill='%230e2a4d'/%3E%3Ccircle cx='10' cy='7' r='4' fill='none' stroke='%23c9a35a' stroke-width='1.4'/%3E%3Ccircle cx='30' cy='7' r='4' fill='none' stroke='%23c9a35a' stroke-width='1.4'/%3E%3Cline x1='0' y1='7' x2='6' y2='7' stroke='%23c9a35a' stroke-width='.8'/%3E%3Cline x1='14' y1='7' x2='26' y2='7' stroke='%23c9a35a' stroke-width='.8'/%3E%3Cline x1='34' y1='7' x2='40' y2='7' stroke='%23c9a35a' stroke-width='.8'/%3E%3C/svg%3E");background-repeat:repeat-x;background-size:40px 14px}

/* ═══ TOP BAR — anúncio rolante ═══ */
.top-bar{background:linear-gradient(90deg,var(--blue-dark) 0%,var(--blue) 50%,var(--blue-dark) 100%);padding:8px 4%;display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;position:relative;overflow:hidden}
.top-bar::before{content:'';position:absolute;inset:0;background:linear-gradient(90deg,transparent,rgba(201,163,90,.08),transparent);background-size:200% 100%;animation:shimmer 8s linear infinite;pointer-events:none}
.top-bar-info{font-size:.72rem;color:rgba(255,255,255,.78);letter-spacing:.04em;font-weight:500;display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.top-bar-info a{color:var(--gold-light);text-decoration:none;transition:color .2s}
.top-bar-info a:hover{color:#fff}
.top-bar-info .pulse-dot{display:inline-block;width:7px;height:7px;background:#4ade80;border-radius:50%;box-shadow:0 0 0 0 rgba(74,222,128,.6);animation:pulse 2s infinite}
@keyframes pulse{0%{box-shadow:0 0 0 0 rgba(74,222,128,.6)}70%{box-shadow:0 0 0 8px rgba(74,222,128,0)}100%{box-shadow:0 0 0 0 rgba(74,222,128,0)}}
.top-bar-langs{display:flex;gap:4px}
.lang-btn{background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.18);color:rgba(255,255,255,.85);padding:3px 10px;font-size:.68rem;cursor:pointer;font-family:inherit;letter-spacing:.06em;transition:all .25s;border-radius:3px;font-weight:600}
.lang-btn:hover,.lang-btn.active{background:var(--gold);border-color:var(--gold);color:var(--blue-dark)}

/* ═══ NAV ═══ */
nav{background:rgba(255,255,255,.96);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);box-shadow:0 1px 0 rgba(14,42,77,.06),0 4px 24px rgba(14,42,77,.04);position:sticky;top:0;z-index:500;transition:box-shadow .3s}
nav.scrolled{box-shadow:0 4px 32px rgba(14,42,77,.12)}
.nav-inner{display:flex;align-items:center;padding:0 4%;height:var(--nav-h);border-bottom:2px solid var(--gold);gap:12px;max-width:100%}
.nav-brand{display:flex;align-items:center;gap:12px;text-decoration:none;flex-shrink:0;min-width:0}
.nav-logo-circle{width:54px;height:54px;border-radius:50%;background:linear-gradient(135deg,var(--blue) 0%,var(--blue-dark) 100%);border:2.5px solid var(--gold);display:flex;align-items:center;justify-content:center;flex-shrink:0;box-shadow:var(--shadow-md);transition:transform .4s var(--ease);overflow:hidden}
.nav-logo-circle img{width:100%;height:100%;object-fit:cover;border-radius:50%}
.nav-brand:hover .nav-logo-circle{transform:rotate(-8deg) scale(1.05)}
.nav-logo-circle svg{width:36px;height:36px}
.nav-brand-name{font-family:'Playfair Display',serif;font-size:1.2rem;color:var(--blue);font-weight:700;line-height:1;white-space:nowrap;letter-spacing:.01em}
.nav-brand-sub{font-size:.56rem;color:var(--gold-deep);letter-spacing:.22em;text-transform:uppercase;font-weight:700;margin-top:3px}
.nav-links{display:flex;list-style:none;margin-left:auto;gap:0}
.nav-links a{display:block;padding:0 14px;height:var(--nav-h);line-height:var(--nav-h);text-decoration:none;color:var(--blue);font-size:.72rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;border-bottom:2px solid transparent;transition:all .25s;position:relative;white-space:nowrap}
.nav-links a::before{content:'';position:absolute;bottom:-2px;left:50%;width:0;height:2px;background:var(--gold);transition:all .3s var(--ease);transform:translateX(-50%)}
.nav-links a:hover::before,.nav-links a.active::before{width:60%}
.nav-links a:hover,.nav-links a.active{color:var(--gold-deep)}

.nav-cart-btn{position:relative;flex-shrink:0;margin-left:auto;background:none;border:1.5px solid var(--gold);color:var(--blue);padding:8px 14px;font-size:.7rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;cursor:pointer;transition:all .25s;display:flex;align-items:center;gap:7px;font-family:inherit;border-radius:3px}
.nav-cart-btn:hover{background:var(--gold);color:var(--blue-dark);box-shadow:var(--shadow-gold)}
.nav-cart-count{background:var(--gold);color:var(--blue-dark);font-size:.6rem;font-weight:800;width:20px;height:20px;border-radius:50%;display:flex;align-items:center;justify-content:center;transition:transform .3s var(--ease)}
.nav-cart-btn:hover .nav-cart-count{background:var(--blue-dark);color:var(--gold)}
.nav-cart-count.bump{transform:scale(1.5)}
.nav-auth-btn{flex-shrink:0;margin-left:6px;background:linear-gradient(135deg,var(--blue) 0%,var(--blue-mid) 100%);color:#fff;padding:9px 16px;font-size:.7rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;border:none;cursor:pointer;transition:all .25s;white-space:nowrap;font-family:inherit;display:flex;align-items:center;gap:6px;border-radius:3px;box-shadow:var(--shadow-sm)}
.nav-auth-btn:hover{background:linear-gradient(135deg,var(--gold) 0%,var(--gold-deep) 100%);color:var(--blue-dark);box-shadow:var(--shadow-gold);transform:translateY(-1px)}
.nav-user-avatar{width:24px;height:24px;border-radius:50%;border:1.5px solid var(--gold);object-fit:cover}
.nav-hamburger{display:none;flex-direction:column;justify-content:center;gap:5px;width:40px;height:40px;background:none;border:1px solid var(--border);cursor:pointer;padding:7px;margin-left:8px;flex-shrink:0;border-radius:4px;transition:border-color .2s}
.nav-hamburger:hover{border-color:var(--gold)}
.nav-hamburger span{display:block;height:2px;background:var(--blue);border-radius:1px;transition:all .3s}
.nav-hamburger.open span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.nav-hamburger.open span:nth-child(2){opacity:0}
.nav-hamburger.open span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
.mobile-menu{display:none;position:fixed;top:0;left:0;right:0;bottom:0;z-index:490;background:linear-gradient(160deg,var(--blue-dark) 0%,var(--blue) 100%);flex-direction:column;padding:calc(var(--nav-h) + 60px) 7% 2rem;overflow-y:auto}
.mobile-menu.open{display:flex}
.mobile-menu ul{list-style:none;display:flex;flex-direction:column;gap:0}
.mobile-menu ul li a{display:block;padding:1.1rem 0;font-size:1.05rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:rgba(255,255,255,.85);text-decoration:none;border-bottom:1px solid rgba(255,255,255,.08);transition:all .2s;font-family:inherit}
.mobile-menu ul li a:hover{color:var(--gold);padding-left:8px}
.mob-cart-btn{margin-top:1.5rem;background:none;border:2px solid var(--gold);color:var(--gold);padding:1rem;text-align:center;font-size:.85rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;cursor:pointer;display:block;width:100%;font-family:inherit;border-radius:3px;transition:all .25s}
.mob-cart-btn:hover{background:var(--gold);color:var(--blue-dark)}
.mob-reserve{margin-top:.8rem;background:var(--gold);color:var(--blue-dark);padding:1rem;text-align:center;font-size:.9rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;text-decoration:none;display:block;border-radius:3px;transition:all .25s;box-shadow:var(--shadow-gold)}

/* ═══ FOOTER ═══ */
footer{background:var(--blue-dark);color:rgba(255,255,255,.6);position:relative;overflow:hidden}
footer::before{content:'';position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,var(--gold),transparent)}
.footer-top{display:grid;grid-template-columns:1.6fr 1fr 1fr 1fr;gap:2.5rem;padding:4rem 5% 3rem;border-bottom:1px solid rgba(255,255,255,.07);max-width:1280px;margin:0 auto}
.footer-brand-name{font-family:'Playfair Display',serif;font-size:1.35rem;color:#fff;margin-bottom:.4rem;font-weight:700}
.footer-brand-sub{font-size:.62rem;color:var(--gold);letter-spacing:.22em;text-transform:uppercase;font-weight:700;margin-bottom:1rem}
.footer-about{font-size:.82rem;color:rgba(255,255,255,.55);line-height:1.8;margin-bottom:1.2rem}
.footer-social{display:flex;gap:8px;margin-top:1rem}
.footer-social a{color:rgba(255,255,255,.5);font-size:.72rem;border:1px solid rgba(255,255,255,.15);padding:6px 12px;text-decoration:none;transition:all .25s;border-radius:3px;font-weight:600}
.footer-social a:hover{color:var(--blue-dark);background:var(--gold);border-color:var(--gold)}
.footer-col-title{font-size:.72rem;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:var(--gold);margin-bottom:1.1rem}
.footer-links{list-style:none;display:flex;flex-direction:column;gap:.6rem}
.footer-links a{font-size:.82rem;color:rgba(255,255,255,.55);text-decoration:none;transition:all .2s;display:inline-flex;align-items:center;gap:6px}
.footer-links a::before{content:'';width:0;height:1px;background:var(--gold);transition:width .25s}
.footer-links a:hover{color:#fff}
.footer-links a:hover::before{width:12px}
.footer-bottom{padding:1.2rem 5%;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:.6rem;max-width:1280px;margin:0 auto}
.footer-copy{font-size:.74rem;color:rgba(255,255,255,.35)}
.footer-admin{font-size:.66rem;color:rgba(255,255,255,.2);text-decoration:none;transition:color .2s}
.footer-admin:hover{color:rgba(255,255,255,.5)}
@media(max-width:768px){.footer-top{grid-template-columns:1fr 1fr;gap:2rem}}
@media(max-width:480px){.footer-top{grid-template-columns:1fr}}

/* ═══ TOAST ═══ */
.toast{position:fixed;bottom:24px;right:24px;z-index:1000;background:linear-gradient(135deg,var(--blue) 0%,var(--blue-dark) 100%);color:#fff;padding:1rem 1.5rem;font-size:.85rem;font-weight:600;box-shadow:var(--shadow-lg);transform:translateY(90px);opacity:0;transition:all .4s var(--ease);display:flex;align-items:center;gap:8px;max-width:340px;border-left:3px solid var(--gold);border-radius:4px;font-family:inherit}
.toast.show{transform:translateY(0);opacity:1}

/* ═══ DRAWER CARRINHO (mantido) ═══ */
.cart-overlay{position:fixed;inset:0;background:rgba(7,26,51,.6);z-index:800;opacity:0;pointer-events:none;transition:opacity .35s;backdrop-filter:blur(4px)}
.cart-overlay.open{opacity:1;pointer-events:all}
.cart-drawer{position:fixed;top:0;right:0;bottom:0;width:min(440px,100vw);background:#fff;z-index:801;transform:translateX(100%);transition:transform .4s var(--ease);display:flex;flex-direction:column;box-shadow:-12px 0 50px rgba(0,0,0,.22)}
.cart-drawer.open{transform:translateX(0)}
.cart-header{background:linear-gradient(135deg,var(--blue) 0%,var(--blue-dark) 100%);padding:1.4rem 1.6rem;display:flex;align-items:center;justify-content:space-between;color:#fff;border-bottom:2px solid var(--gold)}
.cart-header-title{font-family:'Playfair Display',serif;font-size:1.3rem;font-weight:700;margin-bottom:.2rem}
.cart-header-sub{font-size:.74rem;color:rgba(255,255,255,.65)}
.cart-close{background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.2);color:#fff;width:34px;height:34px;font-size:1rem;cursor:pointer;border-radius:50%;transition:all .2s;display:flex;align-items:center;justify-content:center}
.cart-close:hover{background:var(--gold);border-color:var(--gold);color:var(--blue-dark)}
.cart-body{flex:1;overflow-y:auto;padding:1.2rem 1.4rem}
.cart-empty{text-align:center;padding:3rem 1rem;color:var(--text-muted)}
.cart-empty-icon{font-size:3rem;margin-bottom:.8rem;opacity:.5}
.cart-empty p{font-size:.88rem;line-height:1.7}
.cart-item{background:var(--off-white);padding:1rem;margin-bottom:.9rem;border:1px solid var(--border);border-radius:4px;transition:border-color .2s}
.cart-item:hover{border-color:var(--gold)}
.cart-item-top{display:flex;align-items:flex-start;gap:.85rem;margin-bottom:.85rem}
.cart-item-img{width:64px;height:64px;background-size:cover;background-position:center;background-color:var(--light-gray);flex-shrink:0;border-radius:3px}
.cart-item-info{flex:1;min-width:0}
.cart-item-cat{font-size:.6rem;color:var(--gold-deep);letter-spacing:.18em;text-transform:uppercase;font-weight:700;margin-bottom:.2rem}
.cart-item-name{font-family:'Playfair Display',serif;font-size:1rem;color:var(--blue);font-weight:700;line-height:1.25}
.cart-item-remove{background:none;border:none;color:var(--text-muted);cursor:pointer;font-size:.95rem;padding:4px 6px;transition:color .2s;flex-shrink:0}
.cart-item-remove:hover{color:#dc2626}
.cart-item-controls{display:grid;grid-template-columns:1fr 1fr;gap:.7rem}
.ci-group{display:flex;flex-direction:column;gap:.25rem}
.ci-label{font-size:.62rem;color:var(--text-muted);letter-spacing:.1em;text-transform:uppercase;font-weight:600}
.ci-input,.ci-select{border:1px solid var(--border);padding:.45rem .55rem;font-family:inherit;font-size:.78rem;outline:none;transition:border .2s;border-radius:3px;background:#fff;color:var(--text)}
.ci-input:focus,.ci-select:focus{border-color:var(--gold)}
.cart-item-subtotal{font-family:'Cormorant Garamond',serif;font-size:1rem;color:var(--blue);font-weight:700}
.cart-footer{padding:1.2rem 1.4rem;border-top:1px solid var(--border);background:#fff}
.cart-total-row{display:flex;align-items:center;justify-content:space-between;margin-bottom:.9rem}
.cart-total-label{font-size:.78rem;color:var(--text-muted);letter-spacing:.06em;text-transform:uppercase;font-weight:600}
.cart-total-val{font-family:'Playfair Display',serif;font-size:1.7rem;color:var(--blue);font-weight:700}
.btn-checkout{width:100%;background:linear-gradient(135deg,var(--gold) 0%,var(--gold-deep) 100%);color:var(--blue-dark);border:none;padding:1.05rem;font-size:.86rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;cursor:pointer;transition:all .3s var(--ease);font-family:inherit;border-radius:3px;box-shadow:var(--shadow-gold)}
.btn-checkout:hover:not(:disabled){background:linear-gradient(135deg,var(--blue) 0%,var(--blue-dark) 100%);color:#fff;transform:translateY(-1px)}
.btn-checkout:disabled{opacity:.4;cursor:not-allowed}
.cart-note{text-align:center;font-size:.7rem;color:var(--text-muted);margin-top:.7rem;line-height:1.5}


.auth-overlay{position:fixed;inset:0;background:rgba(7,26,51,.6);z-index:900;opacity:0;pointer-events:none;transition:opacity .3s;backdrop-filter:blur(4px)}
.auth-overlay.open{opacity:1;pointer-events:all}
.auth-modal{position:fixed;top:50%;left:50%;transform:translate(-50%,-48%) scale(.95);background:#fff;z-index:901;width:min(440px,92vw);max-height:90vh;overflow:hidden;display:flex;flex-direction:column;box-shadow:0 30px 80px rgba(0,0,0,.3);opacity:0;pointer-events:none;transition:all .35s var(--ease);border-radius:6px}
.auth-modal.open{opacity:1;pointer-events:all;transform:translate(-50%,-50%) scale(1)}
.auth-modal-header{background:linear-gradient(135deg,var(--blue) 0%,var(--blue-dark) 100%);padding:1.6rem 1.8rem;color:#fff;position:relative;border-bottom:2px solid var(--gold)}
.auth-modal-title{font-family:'Playfair Display',serif;font-size:1.5rem;font-weight:700;margin-bottom:.3rem}
.auth-modal-sub{font-size:.78rem;color:rgba(255,255,255,.7)}
.auth-modal-close{position:absolute;top:14px;right:14px;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.2);color:#fff;width:32px;height:32px;font-size:.95rem;cursor:pointer;border-radius:50%;transition:all .2s;display:flex;align-items:center;justify-content:center}
.auth-modal-close:hover{background:var(--gold);color:var(--blue-dark);border-color:var(--gold)}
.auth-modal-body{flex:1;overflow-y:auto;padding:1.6rem 1.8rem}
.auth-tabs{display:flex;border-bottom:1px solid var(--border);margin-bottom:1.4rem}
.auth-tab{flex:1;padding:.8rem;background:none;border:none;font-family:inherit;font-size:.78rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--text-muted);cursor:pointer;border-bottom:2px solid transparent;transition:all .2s}
.auth-tab.active{color:var(--blue);border-bottom-color:var(--gold)}
.auth-form{display:flex;flex-direction:column;gap:.9rem}
.auth-field{display:flex;flex-direction:column;gap:.35rem}
.auth-field label{font-size:.7rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--blue)}
.auth-field input{border:1.5px solid var(--border);padding:.78rem .95rem;font-family:inherit;font-size:.88rem;outline:none;transition:all .2s;border-radius:3px;background:var(--off-white)}
.auth-field input:focus{border-color:var(--gold);background:#fff;box-shadow:0 0 0 3px rgba(201,163,90,.12)}
.auth-error{background:#fef2f2;border:1px solid #fecaca;color:#b91c1c;padding:.75rem 1rem;font-size:.78rem;border-radius:4px;display:none;line-height:1.55}
.auth-submit{background:linear-gradient(135deg,var(--blue) 0%,var(--blue-dark) 100%);color:#fff;border:none;padding:1rem;font-size:.82rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase;cursor:pointer;transition:all .3s var(--ease);font-family:inherit;border-radius:4px;margin-top:.4rem;box-shadow:var(--shadow-md);width:100%}
.auth-submit:hover:not(:disabled){background:linear-gradient(135deg,var(--gold) 0%,var(--gold-deep) 100%);color:var(--blue-dark);box-shadow:var(--shadow-gold);transform:translateY(-1px)}
.auth-submit:disabled{opacity:.45;cursor:not-allowed}
.auth-divider{text-align:center;font-size:.68rem;color:var(--text-muted);letter-spacing:.14em;text-transform:uppercase;margin:1.1rem 0;position:relative}
.auth-divider::before,.auth-divider::after{content:'';position:absolute;top:50%;width:36%;height:1px;background:var(--border)}
.auth-divider::before{left:0}.auth-divider::after{right:0}
.btn-google{width:100%;background:#fff;color:var(--text);border:1.5px solid var(--border);padding:.88rem;font-family:inherit;font-size:.84rem;font-weight:600;cursor:pointer;border-radius:4px;display:flex;align-items:center;justify-content:center;gap:10px;transition:all .25s;box-shadow:0 1px 4px rgba(0,0,0,.06)}
.btn-google:hover{border-color:var(--blue);background:var(--off-white);box-shadow:var(--shadow-sm)}
.auth-link{background:none;border:none;color:var(--blue-mid);font-size:.78rem;cursor:pointer;text-decoration:underline;font-family:inherit;text-align:center;padding:.4rem;display:block;width:100%;transition:color .2s}
.auth-link:hover{color:var(--gold-deep)}
.auth-consent{display:flex;align-items:flex-start;gap:8px;font-size:.74rem;color:var(--text-muted);line-height:1.6;padding:.5rem;background:var(--off-white);border-radius:4px;border:1px solid var(--border)}
.auth-consent input{margin-top:3px;accent-color:var(--blue);flex-shrink:0}
.auth-consent a{color:var(--blue);font-weight:600}

/* ═══ AUTH USER PANEL — redesign ═══ */
.auth-user-panel{display:flex;align-items:center;gap:1.1rem;padding:1.2rem 1.4rem;background:linear-gradient(135deg,var(--blue) 0%,var(--blue-dark) 100%);border-radius:6px;margin-bottom:1.4rem;position:relative;overflow:hidden}
.auth-user-panel::before{content:'';position:absolute;top:-30px;right:-30px;width:120px;height:120px;background:rgba(201,163,90,.12);border-radius:50%;pointer-events:none}
.auth-user-panel-avatar{width:54px;height:54px;border-radius:50%;background:linear-gradient(135deg,var(--gold) 0%,var(--gold-deep) 100%);display:flex;align-items:center;justify-content:center;font-family:'Playfair Display',serif;font-size:1.5rem;font-weight:700;color:var(--blue-dark);border:2.5px solid rgba(255,255,255,.25);flex-shrink:0;box-shadow:0 4px 16px rgba(0,0,0,.2)}
.auth-user-panel-avatar img{width:100%;height:100%;border-radius:50%;object-fit:cover}
.auth-user-panel-name{font-family:'Playfair Display',serif;font-size:1.2rem;font-weight:700;color:#fff;line-height:1.2;margin-bottom:2px}
.auth-user-panel-email{font-size:.72rem;color:rgba(255,255,255,.65);letter-spacing:.02em}
.auth-btn-primary{width:100%;background:linear-gradient(135deg,var(--blue) 0%,var(--blue-dark) 100%);color:#fff;border:none;padding:.9rem;font-size:.82rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;cursor:pointer;transition:all .3s;font-family:inherit;border-radius:3px;margin-top:.4rem}
.auth-btn-primary:hover{background:linear-gradient(135deg,var(--gold) 0%,var(--gold-deep) 100%);color:var(--blue-dark)}
.auth-btn-danger{width:100%;background:none;border:1.5px solid #fecaca;color:#b91c1c;padding:.8rem;font-size:.8rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;cursor:pointer;transition:all .25s;font-family:inherit;border-radius:3px;margin-top:.5rem}
.auth-btn-danger:hover{background:#fef2f2;border-color:#dc2626}

/* ── Auth form aliases used by JS ── */
.auth-btn-google{width:100%;background:#fff;color:var(--text);border:1.5px solid var(--border);padding:.88rem;font-family:inherit;font-size:.84rem;font-weight:600;cursor:pointer;border-radius:4px;display:flex;align-items:center;justify-content:center;gap:10px;transition:all .25s;box-shadow:0 1px 4px rgba(0,0,0,.06)}
.auth-btn-google svg{width:20px;height:20px;flex-shrink:0}
.auth-btn-google:hover{border-color:var(--blue);background:var(--off-white);box-shadow:var(--shadow-sm)}

/* ── Google-only auth modal ── */
.auth-google-only{display:flex;flex-direction:column;gap:1.2rem;padding:.4rem 0}
.auth-google-desc{font-size:.84rem;color:var(--text-muted);line-height:1.7;text-align:center;padding:.8rem 1rem;background:var(--off-white);border-radius:6px;border:1px solid var(--border)}
.auth-privacy-note{font-size:.72rem;color:var(--text-soft);line-height:1.6;text-align:center;padding:.6rem 0;border-top:1px solid var(--border);margin-top:.4rem}
.auth-forgot{background:none;border:none;color:var(--text-muted);font-size:.74rem;cursor:pointer;font-family:inherit;text-align:right;display:block;width:100%;margin-bottom:.2rem;padding:.2rem 0;transition:color .2s;text-decoration:underline}
.auth-forgot:hover{color:var(--blue)}
.auth-field-err{font-size:.7rem;color:#dc2626;margin-top:.15rem;display:none}
.auth-field-err:not(:empty){display:block}
.contacto-canais{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--border);margin:0 5%}
.canal-card{background:#fff;padding:2rem 1.6rem;display:flex;flex-direction:column;align-items:center;text-align:center;gap:.8rem;cursor:pointer;transition:all .3s;text-decoration:none;color:inherit;position:relative}
.canal-card:hover{background:var(--off-white);transform:translateY(-3px)}
.canal-icon{font-size:2rem;color:var(--gold)}
.canal-title{font-family:'Playfair Display',serif;font-size:1.15rem;color:var(--blue);font-weight:700}
.canal-desc{font-size:.8rem;color:var(--text-muted);line-height:1.6}
.canal-arrow{position:absolute;right:1.4rem;top:50%;transform:translateY(-50%);color:var(--gold);font-size:1.2rem;opacity:0;transition:all .3s}
.canal-card:hover .canal-arrow{opacity:1;transform:translateY(-50%) translateX(4px)}

/* ═══ FAQ ═══ */
.faq-list{max-width:800px;margin:0 auto;display:flex;flex-direction:column;gap:.7rem}
.faq-item{background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.08);padding:1.2rem 1.4rem;cursor:pointer;transition:all .25s;border-radius:4px}
.faq-item:hover{background:rgba(255,255,255,.06);border-color:rgba(201,163,90,.3)}
.faq-q{display:flex;align-items:center;justify-content:space-between;font-size:.92rem;color:#fff;font-weight:600;letter-spacing:.01em}
.faq-icon{font-size:1.3rem;color:var(--gold);flex-shrink:0;transition:transform .3s;font-weight:300;line-height:1}
.faq-a{font-size:.84rem;color:rgba(255,255,255,.65);line-height:1.8;max-height:0;overflow:hidden;transition:max-height .35s ease,padding .3s;padding-bottom:0}
.faq-item.open .faq-a{max-height:200px;padding-bottom:1rem;padding-top:.8rem}
.faq-item.open .faq-icon{transform:rotate(45deg)}
.faq-item.open .faq-q{color:var(--gold-light)}

@media(max-width:900px){
  .nav-links{display:none}
  .nav-cart-btn .nav-cart-label,.nav-auth-btn .nav-auth-text{display:none}
  .nav-hamburger{display:flex}
  .section-pad{padding:4rem 5%}
  .contacto-canais{grid-template-columns:1fr;margin:0 5% 1px}
  .canal-card{flex-direction:row;align-items:flex-start;gap:1.2rem;padding:1.5rem;text-align:left}
  .canal-icon{font-size:1.7rem;margin-top:.2rem;flex-shrink:0}
  .canal-arrow{display:none}
  .urgency-content{flex-direction:column;text-align:center;gap:1.2rem}
}
@media(max-width:600px){
  .canal-card{padding:1.2rem}
  .canal-title{font-size:1rem}
  .canal-sub{font-size:.78rem;word-break:break-all}
  .canal-desc{font-size:.76rem}
  .hero-arrow{width:40px;height:40px}
  .hero-prev{left:10px}.hero-next{right:10px}
}
@media(max-width:380px){
  .nav-logo-circle{width:42px;height:42px}
  .nav-brand-name{font-size:.92rem}
  .nav-brand-sub{display:none}
  .nav-cart-btn{padding:6px 8px;font-size:.65rem}
  .nav-auth-btn{padding:6px 8px;font-size:.65rem}
  .stat-num{font-size:2.2rem}
}

/* ═══ MELHORIAS DE RESPONSIVIDADE ═══ */

/* Top bar: empilha em ecrãs pequenos */
@media(max-width:600px){
  .top-bar{flex-direction:column;gap:6px;padding:8px 4%;text-align:center}
  .top-bar-info{justify-content:center;font-size:.68rem;gap:8px}
  .top-bar-langs{justify-content:center}
}

/* Link Reservas injetado ao fazer login */
.nav-reservas-link{flex-shrink:0;background:none;border:1.5px solid var(--border);color:var(--blue);padding:7px 14px;font-size:.72rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;text-decoration:none;transition:all .22s;white-space:nowrap;display:flex;align-items:center;gap:6px;border-radius:3px;align-self:center}
.nav-reservas-link:hover{background:var(--blue);color:#fff;border-color:var(--blue)}
@media(max-width:900px){.nav-reservas-link{display:none!important}}

/* Nav: ajustes para mobile */
@media(max-width:900px){
  .nav-inner{padding:0 3%;gap:8px}
  .nav-cart-btn{padding:7px 10px}
  .nav-auth-btn{padding:7px 10px}
}

/* Hero: melhorias mobile */
@media(max-width:768px){
  .hero{height:clamp(480px,75vh,660px)}
  .slide-content{padding:0 5%}
  .slide-actions{gap:10px}
  .slide-btn,.slide-btn-ghost{padding:.85rem 1.4rem;font-size:.74rem}
  .hero-trust{left:50%;transform:translateX(-50%);white-space:nowrap;bottom:60px}
}
@media(max-width:480px){
  .hero{height:clamp(420px,70vh,560px)}
  .slide-content{padding:0 4%}
  .slide-actions{flex-direction:column;align-items:flex-start;gap:8px}
  .slide-btn,.slide-btn-ghost{width:100%;justify-content:center}
  .hero-trust{display:none}
}

/* Features bar */
@media(max-width:480px){
  .feature-item{padding:16px 14px;gap:10px}
  .feature-icon{font-size:1.4rem}
  .feature-title{font-size:.76rem}
}

/* Section padding mobile */
@media(max-width:480px){
  .section-pad{padding:3rem 4%}
  .section-header{margin-bottom:2.5rem}
  .section-title{font-size:clamp(1.6rem,5.5vw,2.3rem)}
}

/* Porquê grid */
@media(max-width:480px){
  .porque-grid{grid-template-columns:1fr;gap:1rem}
  .porque-card{padding:1.8rem 1.4rem}
}

/* Tours grid */
@media(max-width:600px){
  .tours-grid{grid-template-columns:1fr;gap:1.2rem}
  .tour-footer{flex-direction:column;align-items:stretch;gap:10px}
  .tour-actions{justify-content:stretch;min-width:unset;flex:unset;width:100%}
  .tour-actions .btn-book,.tour-actions .btn-cart{flex:1;min-height:48px}
  .tour-price-wrap{margin-bottom:.3rem}
  .tours-filter{gap:6px;padding:0 2%;overflow-x:auto;-webkit-overflow-scrolling:touch;justify-content:flex-start;flex-wrap:nowrap;scrollbar-width:none;-ms-overflow-style:none}
  .tours-filter::-webkit-scrollbar{display:none}
  .filter-btn{padding:.5rem 1rem;font-size:.68rem;flex-shrink:0}
}
@media(max-width:360px){
  .tour-meta{gap:8px}
}

/* Sobre / stats */
@media(max-width:480px){
  .sobre-stats{grid-template-columns:1fr 1fr;gap:.7rem}
  .stat-box{padding:1.2rem .9rem}
  .stat-num{font-size:2rem}
}
@media(max-width:360px){
  .sobre-stats{grid-template-columns:1fr}
}

/* Como funciona */
@media(max-width:480px){
  .como-grid{grid-template-columns:1fr;gap:1.2rem}
  #como{padding:3.5rem 4%}
}

/* Destinos mosaico */
@media(max-width:520px){
  .destinos-mosaic{grid-template-columns:1fr;grid-template-rows:repeat(5,160px)}
  .destino-tile:first-child{grid-row:auto;grid-column:auto}
}

/* Testemunhos */
@media(max-width:480px){
  .testemunhos-grid{grid-template-columns:1fr;gap:1.2rem}
  .testemunho-card{padding:1.4rem 1.2rem}
  .testemunho-text{font-size:.88rem}
  .testemunho-name{font-size:.82rem}
  .testemunho-author{gap:10px}
  .testemunho-avatar{width:38px;height:38px;font-size:.85rem}
}

/* Urgency banner */
@media(max-width:480px){
  .urgency-banner{padding:1.8rem 4%}
  .urgency-text h3{font-size:1.15rem}
  .urgency-text p{font-size:.78rem}
  .urgency-btn{width:100%;text-align:center;display:flex;align-items:center;justify-content:center}
  .urgency-timer{gap:4px}
  .ut-block{padding:.45rem .6rem;min-width:44px}
  .ut-block span{font-size:1.4rem}
  .ut-sep{font-size:1.2rem}
}

/* Comptecto form */
@media(max-width:480px){
  .contact-form-box{padding:1.6rem 1.2rem}
  .cf-row{grid-template-columns:1fr}
}

/* Canais de contacto */
@media(max-width:480px){
  .contacto-canais{margin:0 4% 1px}
  .canal-card{gap:1rem;padding:1.2rem}
}

/* Footer */
@media(max-width:360px){
  .footer-top{grid-template-columns:1fr;gap:1.6rem}
  .footer-bottom{flex-direction:column;text-align:center;align-items:center}
}

/* Toast em mobile */
@media(max-width:480px){
  .toast{left:16px;right:16px;max-width:none;bottom:16px}
}

/* Botão voltar ao topo em mobile */
@media(max-width:480px){
  #btnTopo{bottom:20px;right:14px;width:38px;height:38px;font-size:.85rem}
}

/* Auth modal */
@media(max-width:480px){
  .auth-modal{width:96vw;max-height:92vh}
  .auth-modal-body{padding:1.2rem}
  .auth-modal-header{padding:1.2rem 1.2rem}
  .auth-modal-title{font-size:1.2rem}
  .auth-modal-sub{font-size:.72rem}
  .auth-field input{padding:.7rem .8rem}
  .auth-submit{padding:.9rem}
}

/* Carrinho drawer */
@media(max-width:480px){
  .cart-drawer{width:100vw}
  .cart-header{padding:1rem 1.2rem}
  .cart-header-title{font-size:1.1rem}
  .cart-body{padding:1rem}
  .cart-item{padding:.9rem}
  .cart-item-controls{grid-template-columns:1fr 1fr}
  .cart-footer{padding:1rem 1.2rem}
  .cart-total-val{font-size:1.4rem}
  .btn-checkout{padding:.9rem;font-size:.8rem}
}

/* Cookie banner */
@media(max-width:600px){
  #cookieBanner{width:100%!important;left:0!important;right:0!important;padding:1rem!important;border-radius:0!important}
  #cookiePersonalizarModal{width:96vw!important;left:2%!important;right:2%!important;padding:1rem!important}
  .rl-style-09975478{padding:1rem 4%;flex-direction:column;gap:1rem}
  .rl-style-39cc9465{min-width:0}
}
@media(max-width:480px){
  #cookieBanner .rl-style-770660bf,
  .rl-style-770660bf {
    width: 100%;
    flex-direction: column;
    gap: 8px;
  }
  #cookieBanner button,
  .rl-style-5d50e8c6,
  .rl-style-c36bf467,
  .rl-style-b10360dc {
    width: 100% !important;
    text-align: center;
    min-height: 48px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: .75rem !important;
  }
  .rl-style-b35b3b02{font-size:.78rem}
  .rl-style-795315bd{font-size:.7rem}
  /* Cookie personalizar modal */
  .rl-style-c6312c5a{width:96vw!important}
  .rl-style-01a246d7{padding:1rem 1.2rem}
  .rl-style-66f8dd5c{padding:1rem 1.2rem}
  .rl-style-f28c4112{font-size:.95rem}
  .rl-style-becd9702,.rl-style-f3e990b5{padding:.8rem}
  .rl-style-e5706f94{font-size:.78rem}
}

/* Melhorar touch targets */
@media(max-width:900px){
  .filter-btn{min-height:40px}
  .tour-fav{width:40px;height:40px}
  .lang-btn{padding:5px 12px;min-height:32px}
}

/* Overflow horizontal prevention */
html,body{max-width:100%;overflow-x:hidden}
.hero-slides,.hero-slide,.destinos-mosaic,.tours-grid,.porque-grid{max-width:100%}

/* ── iOS ZOOM FIX: inputs sempre ≥ 16px em mobile ── */
@media(max-width:900px){
  input, textarea, select {
    font-size: 16px !important;
  }
}
/* ── Touch targets mínimos ── */
@media(max-width:900px){
  button, .btn-book, .btn-cart, .slide-btn, .slide-btn-ghost,
  .filter-btn, .lang-btn, .nav-cart-btn, .nav-auth-btn,
  .nav-hamburger, .tour-fav, .hero-arrow, .footer-social a {
    min-height: 44px;
    min-width: 44px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
  }
  .lang-btn, .filter-btn { min-width: unset; }
}
/* ── Modais fullscreen em mobile ── */
@media(max-width:520px){
  .auth-modal { width: 96vw !important; }
  .cart-drawer { width: 100vw !important; }
}
/* ── Prevent horizontal scroll on all containers ── */
.tours-grid, .porque-grid, .testemunhos-grid,
.destinos-mosaic, .sobre-inner, .contacto-inner,
.footer-top, .features-bar, .como-grid {
  max-width: 100%;
  overflow: hidden;
}

/* ══════════════════════════════════════════════════
   MOBILE-FIRST COMPREHENSIVE FIXES
══════════════════════════════════════════════════ */

/* ── Mobile menu safe area padding (for notch devices) ── */
@supports(padding-top: env(safe-area-inset-top)){
  .mobile-menu{padding-top:calc(var(--nav-h) + env(safe-area-inset-top) + 40px)}
  .cart-drawer{padding-bottom:env(safe-area-inset-bottom)}
}

/* ── Contacto section heading mobile ── */
@media(max-width:600px){
  .rl-style-2654ac63{padding:2.5rem 4% 2rem}
  .rl-style-48572bbf{font-size:clamp(1.5rem,5vw,2rem)}
  .rl-style-6c06eb32{font-size:.8rem}
  .rl-style-f0d7062c{padding:1.5rem 4% 2.5rem}
}

/* ── FAQ mobile fix ── */
@media(max-width:480px){
  .faq-list{gap:.5rem}
  .faq-item{padding:1rem}
  .faq-q{font-size:.84rem;gap:10px}
  .faq-a{font-size:.78rem}
}

/* ── Footer links & bottom row mobile ── */
@media(max-width:480px){
  .footer-top{padding:2.5rem 4% 2rem}
  .footer-bottom{padding:1rem 4%;flex-direction:column;align-items:center;text-align:center;gap:.8rem}
  .rl-style-25af1aab{flex-direction:column;align-items:center;gap:.5rem}
  .footer-social{flex-wrap:wrap;justify-content:center}
  .footer-col-title{margin-bottom:.8rem}
}

/* ── Top bar langs wrap on smallest ── */
@media(max-width:380px){
  .top-bar{padding:6px 3%}
  .top-bar-info{font-size:.62rem;gap:6px}
  .lang-btn{padding:4px 8px;font-size:.6rem}
}

/* ── Mobile menu improvements ── */
@media(max-width:900px){
  .mobile-menu ul li a{padding:.9rem 0;font-size:.95rem}
  .mob-cart-btn{padding:.9rem;font-size:.8rem;min-height:48px}
  .mob-reserve{padding:.9rem;font-size:.82rem;min-height:48px}
}

/* ── Sobre section stats full-width on tiny screens ── */
@media(max-width:380px){
  .sobre-inner{gap:2rem}
  .sobre-text .section-title{font-size:clamp(1.5rem,6vw,2rem)}
  .sobre-text p{font-size:.88rem}
}

/* ── Ensure images don't overflow ── */
img{max-width:100%;height:auto}

/* ── Scroll snap for tours filter on mobile ── */
@media(max-width:600px){
  .tours-filter{scroll-snap-type:x mandatory;scroll-padding:0 4%}
  .filter-btn{scroll-snap-align:start}
}

/* ── Canal badge position fix ── */
@media(max-width:600px){
  .canal-badge{font-size:.6rem;padding:2px 8px}
  .canal-body{min-width:0}
}