/* detail.css — estilos das páginas de tour (consolidado: sem @import, carrega mais rápido) */
:root{--white:#fff;
--black:#000;
--surface-blue:#e8f2fb;

--blue:#1a365d;
--gold:#E8B923;
--gold-ink:#8C6400;
--gold-border:rgba(232,185,35,.58);
--gold-soft:rgba(232,185,35,.22);
--gold-focus:rgba(232,185,35,.18);


--success:#096a35;
--text:#000;
--muted:rgba(0,0,0,.62);
--muted-strong:rgba(0,0,0,.68);
--overlay:rgba(13,24,38,.76);

--shadow-pill:0 10px 24px rgba(26,54,93,.12);
--shadow-modal:0 28px 86px rgba(0,0,0,.32);
--radius-lg:36px;
--pill-height:50px;
--font-body:-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif;
--font-display:Georgia,"Times New Roman",serif;
--ease:cubic-bezier(.16,1,.3,1);


--fs-2:.76rem;
--fs-3:.86rem;
--fs-4:.94rem;
--fs-5:1rem;
--fs-6:1.12rem;
--fs-7:1.25rem;
--fs-8:1.35rem;

--fs-11:2.2rem;


--ttv-check-soft:#2f9e64;
--ttv-x-red:#d85b5b;


}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;
font-family:var(--font-body);
color:var(--text);
background:var(--white);
overflow-x:hidden;
-webkit-font-smoothing:antialiased;
text-rendering:optimizeLegibility}body.photo-zoom-open{position:fixed;
width:100%}
body.menu-open{overflow:hidden}a{color:inherit}img,svg{max-width:100%}button,input,select{font:inherit}.svg-symbols{position:absolute;
width:0;
height:0;
overflow:hidden}:focus-visible{outline:2px solid var(--gold);
outline-offset:4px}@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms;
animation-iteration-count:1;
transition-duration:.01ms;
scroll-behavior:auto}}#main-nav{position:fixed;
inset:0 0 auto 0;
z-index:1000;
min-height:64px;
padding:10px 24px;
background:var(--blue);
border-bottom:1px solid var(--gold-soft);
display:flex;
align-items:center;
justify-content:center;
transition:box-shadow .24s ease,min-height .24s var(--ease)}#main-nav.scrolled{min-height:58px;
box-shadow:0 8px 26px rgba(0,0,0,.24);
border-bottom-color:var(--gold)}.nav-brand-main{position:absolute;
left:50%;
top:50%;
transform:translate(-50%,-50%);
text-align:center;
text-decoration:none;
border-radius:8px}.nav-brand-main-text{font-weight:700;
color:var(--white);
letter-spacing:.02em;
font-size:clamp(1rem,3vw,1.18rem);
white-space:nowrap}.hamburger-menu-btn{position:absolute;
left:24px;
top:50%;
transform:translateY(-50%);
width:44px;
height:44px;
padding:0;
border:0;
border-radius:999px;
background:transparent;
display:inline-flex;
flex-direction:column;
align-items:center;
justify-content:center;
gap:5px;
cursor:pointer}.hamburger-menu-btn span{display:block;
width:18px;
height:2px;
border-radius:2px;
background:var(--gold);
transition:transform .18s ease,opacity .18s ease}.hamburger-menu-btn[aria-expanded=true] span:nth-child(1){transform:translateY(7px) rotate(45deg)}.hamburger-menu-btn[aria-expanded=true] span:nth-child(2){opacity:0}.hamburger-menu-btn[aria-expanded=true] span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}.hamburger-menu-panel{position:fixed;
top:calc(64px + env(safe-area-inset-top));
left:24px;
width:min(270px,calc(100vw - 44px));
padding:8px 20px;
border-radius:22px;
background:#0d2240;
border:1px solid rgba(232,185,35,.28);
box-shadow:0 24px 70px rgba(0,0,0,.32);
opacity:0;
visibility:hidden;
pointer-events:none;
transform:translateY(-8px) scale(.98);
transition:opacity .18s ease,transform .18s ease,visibility .18s ease}.hamburger-menu-panel.open{opacity:1;
visibility:visible;
pointer-events:auto;
transform:translateY(0) scale(1)}.hamburger-menu-link{display:flex;
align-items:center;
padding:16px 0;
border-top:1px solid rgba(232,185,35,.25);
color:rgba(255,255,255,.9);
font-weight:700;
font-size:var(--fs-3);
letter-spacing:.12em;
text-transform:uppercase;
text-decoration:none}.hamburger-menu-link:first-child{border-top:0}.hamburger-menu-link::after{content:"";
width:13px;
height:9px;
margin-left:9px;
background:var(--gold);
-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5L6 6.5L11 1.5' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/contain no-repeat;
mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5L6 6.5L11 1.5' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/contain no-repeat}.hamburger-menu-link:hover,.hamburger-menu-link:focus-visible{color:var(--gold);
outline:0}.lang-select{position:absolute;
right:24px;
top:50%;
transform:translateY(-50%);
z-index:1003}.lang-select-btn{display:inline-flex;
align-items:center;
gap:6px;
height:44px;
padding:0 6px;
border:0;
border-radius:999px;
background:transparent;
color:var(--white);
cursor:pointer}.lang-flag{font-size:1.18rem;
line-height:1}.lang-caret{width:11px;
height:11px;
color:var(--gold);
transition:transform .18s ease}.lang-select-btn[aria-expanded=true] .lang-caret{transform:rotate(180deg)}.lang-menu{position:absolute;
top:calc(100% + 10px);
right:0;
min-width:198px;
padding:8px;
border-radius:18px;
background:#0d2240;
border:1px solid rgba(232,185,35,.28);
box-shadow:0 24px 70px rgba(0,0,0,.32);
display:flex;
flex-direction:column;
gap:2px;
opacity:0;
visibility:hidden;
pointer-events:none;
transform:translateY(-8px) scale(.98);
transition:opacity .18s ease,transform .18s ease,visibility .18s ease}.lang-menu.open{opacity:1;
visibility:visible;
pointer-events:auto;
transform:translateY(0) scale(1)}.lang-option{display:flex;
align-items:center;
gap:12px;
width:100%;
padding:11px 14px;
border:0;
border-radius:999px;
background:transparent;
color:rgba(255,255,255,.9);
font-weight:600;
font-size:var(--fs-3);
cursor:pointer;
text-align:left}.lang-option:hover,.lang-option:focus-visible,.lang-option[aria-current=true]{background:rgba(232,185,35,.16);
color:var(--gold);
outline:0}.lang-option[aria-current=true]{font-weight:800}.crpage-main{margin:0 auto;
padding:104px 16px 40px;
text-align:center}.crpage-back{display:inline-block;
margin:0 0 16px;
color:var(--blue);
text-decoration:none;
font-weight:700}.tour-detail-gallery{position:relative;
margin:0 0 24px;
border-radius:20px;
overflow:hidden}.tour-image-scroll-wrap{position:relative;
overflow:hidden;
background:var(--surface-blue)}.tour-image-scroll-wrap::after{content:"";
position:absolute;
left:0;
right:0;
bottom:0;
height:48px;
background:linear-gradient(to top,rgba(0,0,0,.32),rgba(0,0,0,0));
pointer-events:none}
/* Carousel dots: single permanent layer, outside the horizontal image scroller. */
.tour-detail-gallery>.tour-scroll-dots,.tour-detail-gallery .tour-scroll-dots{
position:absolute!important;
left:50%!important;
right:auto!important;
bottom:12px!important;
transform:translateX(-50%)!important;
display:flex!important;
align-items:center!important;
justify-content:center!important;
gap:7px!important;
min-height:23px!important;
padding:6px 9px!important;
border-radius:999px!important;
background:rgba(13,34,64,.58)!important;
border:1px solid rgba(255,255,255,.38)!important;
box-shadow:0 5px 18px rgba(0,0,0,.26)!important;
opacity:1!important;
visibility:visible!important;
pointer-events:auto!important;
z-index:20!important}
.tour-detail-gallery .tour-scroll-dots[hidden]{display:flex!important}
.tour-detail-gallery .tour-scroll-dot{
appearance:none!important;
-webkit-appearance:none!important;
display:block!important;
flex:0 0 auto!important;
width:8px!important;
min-width:8px!important;
height:8px!important;
min-height:8px!important;
padding:0!important;
margin:0!important;
border:1px solid rgba(255,255,255,.9)!important;
border-radius:999px!important;
background:rgba(255,255,255,.95)!important;
box-shadow:0 1px 4px rgba(0,0,0,.42)!important;
cursor:pointer!important}
.tour-detail-gallery .tour-scroll-dot.active{
width:22px!important;
min-width:22px!important;
background:var(--gold)!important;
border-color:var(--gold)!important}
.tour-image-scroll{display:flex;
width:100%;
overflow-x:auto;
scroll-snap-type:x mandatory;
scrollbar-width:none;
-webkit-overflow-scrolling:touch}.tour-image-scroll::-webkit-scrollbar{display:none}.tour-image-scroll-img{flex:0 0 100%;
width:100%;
scroll-snap-align:start;
display:block;
color:transparent;
user-select:none;
-webkit-user-drag:none;
cursor:zoom-in}.tour-detail-title{margin:0 0 24px;
color:var(--black);
font-family:var(--font-display);
font-size:clamp(1.6rem,5.6vw,2.24rem);
line-height:1.12;
text-align:center}.tour-detail-content{max-width:760px;
margin:0 auto}.tour-block-title{margin:0 0 12px;
color:var(--black);
font-family:var(--font-display);
font-size:var(--fs-7);
text-align:center}.tour-detail-description,.tour-detail-includes,.tour-detail-excludes{margin:0 0 24px;
padding:22px 24px;
border-radius:22px;
background:var(--surface-blue);
border:1px solid var(--gold-border);
color:var(--muted-strong);
font-size:var(--fs-5);
line-height:1.7;
text-align:center;
font-weight:300}.tour-detail-facts{display:flex;
flex-direction:column;
gap:18px;
margin:0 0 28px;
padding:22px 24px;
border-radius:24px;
background:var(--surface-blue);
border:1px solid var(--gold-border);
box-shadow:0 10px 28px rgba(26,54,93,.05)}.tour-detail-facts .detail-fact-row{display:grid;
grid-template-columns:34px 1fr;
gap:16px;
align-items:center;
font-size:var(--fs-6);
text-align:left}.tour-detail-facts .detail-fact-body{min-width:0}.tour-detail-facts strong{display:block;
color:var(--black);
font-weight:800;
font-size:var(--fs-6);
line-height:1.3;
letter-spacing:.01em}.tour-detail-facts span{display:block;
margin-top:4px;
color:var(--muted-strong);
font-weight:400;
font-size:var(--fs-4);
line-height:1.55}@media (max-width:640px){.tour-detail-facts{padding:20px 18px;
border-radius:22px}.tour-detail-facts .detail-fact-row{grid-template-columns:32px 1fr;
gap:14px;
font-size:1.04rem}.tour-detail-facts strong{font-size:1.04rem}.tour-detail-facts span{font-size:.94rem;
line-height:1.5}}.tour-detail-includes ul{margin:0;
padding:0;
list-style:none}.tour-detail-includes li{display:flex;
align-items:flex-start;
justify-content:center;
gap:10px;
padding:4px 0;
color:var(--muted-strong);
font-size:var(--fs-5);
font-weight:300;
line-height:1.65;
text-align:center}.list-check{width:18px;
height:18px;
flex:0 0 auto;
color:var(--gold-ink);
margin-top:5px}.tour-perfect-chips{display:flex;
flex-wrap:wrap;
justify-content:center;
gap:10px;
margin:0 0 26px}.tour-perfect-chip{display:inline-flex;
align-items:center;
justify-content:center;
min-height:36px;
padding:7px 14px;
border-radius:999px;
background:var(--white);
border:1px solid var(--gold-border);
color:var(--black);
font-size:var(--fs-3);
font-weight:800;
box-shadow:0 8px 20px rgba(26,54,93,.05);
text-align:center}.tour-detail-excludes{list-style:none}.tour-detail-excludes li{display:flex;
align-items:flex-start;
justify-content:center;
gap:8px;
padding:0}.tour-price-pill{width:fit-content;
min-width:230px;
max-width:100%;
min-height:50px;
display:flex;
align-items:center;
justify-content:center;
gap:8px;
margin:0 auto 4px;
padding:10px 18px;
border-radius:999px;
background:var(--white);
border:1px solid var(--gold-border);
color:var(--black);
font-size:var(--fs-5);
font-weight:700;
box-shadow:0 12px 30px rgba(26,54,93,.12);
text-align:center}.tour-price-pill strong{font-size:1.24em;
line-height:1}.tour-price-pill span{display:inline-block;
color:var(--muted-strong);
font-weight:700}@media (max-width:640px){.tour-price-pill{width:fit-content;
min-width:220px;
max-width:calc(100% - 28px);
min-height:50px;
font-size:1rem}.tour-price-pill strong{font-size:1.22em}}.booking-inquiry-heading,.booking-payment-heading{margin:0 auto 2px;
color:var(--gold-ink);
font-size:var(--fs-2);
font-weight:800;
letter-spacing:.08em;
text-transform:uppercase;
text-align:center}.booking-payment-heading{margin-top:24px}.booking-small-note,.booking-replies{display:block;
width:100%;
max-width:560px;
margin:2px auto 0;
text-align:center;
color:var(--muted);
font-size:var(--fs-2);
font-weight:400;
line-height:1.45}.booking-replies{margin-top:4px}.booking-inquiry-row,.tour-detail-actions>.booking-payment-group{width:min(100%,420px);
margin-left:auto;
margin-right:auto}.booking-inquiry-row{display:flex;
}.booking-payment-group{display:flex;
flex-direction:column;
gap:10px;
margin-top:0;
}.book-btn,.booking-submit-btn{min-height:var(--pill-height);
height:var(--pill-height);
border-radius:999px;
border:1.5px solid var(--gold);
display:inline-flex;
align-items:center;
justify-content:center;
gap:8px;
padding:0 18px;
line-height:1;
text-decoration:none;
font-size:var(--fs-3);
font-weight:700;
letter-spacing:.045em;
text-transform:uppercase;
white-space:nowrap;
cursor:pointer;
box-shadow:var(--shadow-pill);
transition:transform .2s var(--ease),box-shadow .22s var(--ease),opacity .18s ease}.book-btn,.booking-stripe-btn{width:100%;
max-width:none;
background:var(--gold);
color:var(--black)}.booking-inquiry-btn{flex:1;
min-width:0}.booking-inquiry-icon,.booking-stripe-btn svg{width:17px;
height:17px;
flex:0 0 auto}.book-btn:hover,.booking-submit-btn:hover{transform:translateY(-1px)}.book-btn:active,.booking-submit-btn:active{transform:scale(.97)}.booking-submit-btn:disabled{opacity:.72;
cursor:not-allowed;
box-shadow:none;
background:#eadb9f;
color:rgba(0,0,0,.5)}footer{padding:58px 24px 28px;
background:var(--white);
color:var(--text);
text-align:center;
border-top:1px solid rgba(232,185,35,.28)}.footer-top{max-width:1000px;
margin:0 auto 28px;
display:grid;
gap:24px;
justify-items:center}.footer-brand{color:var(--black);
font-family:var(--font-display);
font-size:var(--fs-8);
font-weight:700;
letter-spacing:.02em}.footer-made{margin:7px auto 0;
color:var(--muted);
font-family:var(--font-display);
font-style:italic;
font-size:var(--fs-4);
font-weight:600}.footer-contact p{margin:0 0 10px;
color:var(--muted-strong)}.footer-contact a{color:rgba(0,0,0,.76);
text-decoration:none}.madeira-tourism-logo-wrap{margin:22px auto 14px}.madeira-tourism-img{max-width:160px;
max-height:56px;
object-fit:contain}.footer-certification{display:flex;
justify-content:center}.turismo-license-badge{display:inline-flex;
align-items:center;
gap:12px;
color:var(--text)}.tp-logo-mark{display:inline-flex;
align-items:center}.turismo-portugal-img{width:106px;
max-height:54px;
object-fit:contain}.footer-license-copy{display:inline-flex;
flex-direction:column;
align-items:center;
text-align:center}.footer-license-kicker{color:rgba(0,0,0,.7);
font-size:.66rem;
letter-spacing:.08em;
text-transform:uppercase}.footer-license-number{margin-top:4px;
color:var(--black);
font-size:var(--fs-2);
font-weight:700;
white-space:nowrap}.footer-privacy{max-width:640px;
margin:30px auto 0;
color:rgba(0,0,0,.55);
font-size:var(--fs-2);
line-height:1.62;
text-align:center}.footer-bottom{max-width:1000px;
margin:26px auto 0;
padding-top:22px;
border-top:1px solid rgba(26,54,93,.12);
display:flex;
justify-content:center;
gap:14px 28px;
flex-wrap:wrap;
color:rgba(0,0,0,.55);
font-size:var(--fs-3)}.booking-modal-overlay,.photo-zoom-overlay{position:fixed;
inset:0;
z-index:2000;
background:var(--overlay);
-webkit-backdrop-filter:blur(8px);
backdrop-filter:blur(8px);
display:flex;
align-items:center;
justify-content:center}.photo-zoom-overlay{z-index:9999;
background:rgba(0,0,0,.94);
padding:0}.booking-modal-overlay[hidden],.photo-zoom-overlay[hidden]{display:none}.booking-modal-content{position:relative;
width:min(96vw,640px);
margin:10px 0;
overflow-y:auto;
background:var(--white);
border-radius:var(--radius-lg);
box-shadow:var(--shadow-modal);
border:1.5px solid var(--gold-border);
overscroll-behavior:contain;
-webkit-overflow-scrolling:touch}.booking-modal-body{padding:34px 34px 44px}.booking-modal-close{position:absolute;
top:14px;
right:14px;
width:42px;
height:42px;
border-radius:50%;
border:1px solid rgba(232,185,35,.48);
background:var(--white);
color:var(--black);
display:inline-flex;
align-items:center;
justify-content:center;
padding:0;
cursor:pointer;
box-shadow:0 2px 10px rgba(0,0,0,.14)}.booking-modal-close svg{display:block;
width:14px;
height:14px}.booking-modal-eyebrow,.booking-modal-title{text-align:center}.booking-modal-eyebrow{margin:0 0 10px;
color:var(--gold-ink);
font-weight:700}.booking-modal-title{margin:0 0 24px;
font-family:var(--font-display);
font-size:var(--fs-11);
color:var(--black)}.booking-grid{display:grid;
grid-template-columns:repeat(2,minmax(0,1fr));
gap:15px}.booking-field{display:flex;
flex-direction:column;
gap:8px}.booking-field>span{color:var(--black);
font-size:var(--fs-3);
font-weight:800;
letter-spacing:.03em;
text-align:left;
padding-left:18px}.booking-field input,.booking-field select{width:100%;
padding:0 18px;
border-radius:999px;
border:1px solid var(--gold-border);
background:var(--surface-blue);
color:var(--black);
font-size:16px;
font-weight:500;
text-align:left;
outline:none;
box-shadow:0 8px 20px rgba(26,54,93,.05)}.booking-field select{appearance:none;
-webkit-appearance:none;
padding-right:44px;
background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8' fill='none'%3E%3Cpath d='M1 1.5L6 6.5L11 1.5' stroke='%23d4af37' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
background-repeat:no-repeat;
background-position:right 18px center;
background-size:12px 8px}.booking-field input:focus,.booking-field select:focus{border-color:var(--gold);
box-shadow:0 0 0 3px var(--gold-focus)}.booking-total-pill{min-height:44px;
height:44px;
width:fit-content;
max-width:calc(100% - 40px);
margin:24px auto 0;
padding:0 22px;
border:1.5px solid var(--gold-border);
border-radius:999px;
background:var(--white);
display:flex;
align-items:center;
justify-content:center;
font-size:var(--fs-5);
font-weight:600;
color:var(--muted-strong)}.booking-total-pill:empty{display:none}.booking-total-inner{display:inline-flex;
align-items:center;
justify-content:center;
gap:8px;
white-space:nowrap}.booking-inquiry-group{display:flex;
flex-direction:column;
gap:10px;
margin-top:20px}.booking-modal-body .booking-inquiry-row,.booking-modal-body .booking-payment-group{width:100%}.booking-card-marks{display:flex;
flex-wrap:wrap;
gap:10px 12px;
justify-content:center;
align-items:center;
margin:14px auto 0;
max-width:330px}.booking-card-marks img{width:42px;
height:26px;
display:block;
object-fit:contain}.booking-secure-badge{display:flex;
align-items:center;
justify-content:center;
gap:7px;
margin:10px auto 0;
color:var(--muted);
font-size:var(--fs-2);
font-weight:700}.booking-secure-badge svg{width:14px;
height:14px}.booking-status{min-height:1.4em;
margin:16px 0 0;
text-align:center;
font-size:var(--fs-3);
line-height:1.45;
color:var(--black)}.booking-status.is-success{color:var(--success)}.photo-zoom-track{display:flex;
width:100%;
height:100%;
overflow-x:auto;
scroll-snap-type:x mandatory;
scrollbar-width:none;
-webkit-overflow-scrolling:touch}.photo-zoom-track::-webkit-scrollbar{display:none}.photo-zoom-slide{flex:0 0 100%;
width:100%;
height:100%;
display:flex;
align-items:center;
justify-content:center;
scroll-snap-align:center;
padding:18px;
cursor:zoom-out}.photo-zoom-img{max-width:92vw;
max-height:86vh;
object-fit:contain;
border-radius:14px;
box-shadow:0 24px 80px rgba(0,0,0,.6)}.photo-zoom-nav,.photo-zoom-close{position:absolute;
width:46px;
height:46px;
padding:0;
border-radius:50%;
background:rgba(255,255,255,.16);
border:1px solid rgba(255,255,255,.45);
color:var(--white);
font-size:var(--fs-7);
display:flex;
align-items:center;
justify-content:center;
cursor:pointer;
-webkit-backdrop-filter:blur(6px);
backdrop-filter:blur(6px)}.photo-zoom-prev{left:10px;
top:50%;
transform:translateY(-50%)}.photo-zoom-next{right:10px;
top:50%;
transform:translateY(-50%)}.photo-zoom-close{top:calc(16px + env(safe-area-inset-top));
right:16px}
/* === Ícones do zoom de fotos (SVG centrado por máscara — perfeitamente centrado, substitui os glifos ‹ › ✕ tortos) === */
.photo-zoom-close,.photo-zoom-nav{font-size:0;line-height:0}
.photo-zoom-close::before,.photo-zoom-nav::before{content:"";position:absolute;top:50%;left:50%;width:44%;height:44%;transform:translate(-50%,-50%);background:currentColor;-webkit-mask:var(--zoom-ico) center/contain no-repeat;mask:var(--zoom-ico) center/contain no-repeat}
.photo-zoom-close{--zoom-ico:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-width='2.4' stroke-linecap='round' d='M7 7L17 17M17 7L7 17'/%3E%3C/svg%3E")}
.photo-zoom-prev{--zoom-ico:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round' d='M15 5L9 12L15 19'/%3E%3C/svg%3E")}
.photo-zoom-next{--zoom-ico:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round' d='M9 5L15 12L9 19'/%3E%3C/svg%3E")}
@media (max-width:760px){.booking-modal-overlay{padding:10px;
align-items:flex-start;
overflow-y:auto;
overscroll-behavior:contain;
-webkit-overflow-scrolling:touch}.booking-modal-body{padding:30px 18px calc(26px + env(safe-area-inset-bottom))}.booking-grid{grid-template-columns:1fr}.booking-inquiry-row{gap:8px}.booking-submit-btn{letter-spacing:.04em}.tour-detail-title{font-size:clamp(1.6rem,7.2vw,2.04rem)}
.tour-detail-kicker{margin:0 0 9px;text-align:center;font-family:var(--font-body);font-size:.74rem;font-weight:700;line-height:1.2;letter-spacing:.18em;text-transform:uppercase;color:var(--gold-ink)}
.tour-detail-rule{display:block;width:52px;height:3px;margin:0 auto 18px;border-radius:2px;background:var(--gold)}}@media (max-width:640px){#main-nav{min-height:62px;
padding:10px 18px}.hamburger-menu-btn{left:16px;
width:42px;
height:42px}.hamburger-menu-panel{left:16px;
width:calc(100vw - 32px)}.lang-select{right:16px}.lang-select-btn{height:42px;
padding:0 11px}.crpage-main{padding:92px 16px 34px}.tour-detail-description,.tour-detail-includes,.tour-detail-excludes{padding:20px 16px}.tour-detail-facts{grid-template-columns:repeat(3,1fr);
gap:8px}.tour-detail-includes li{text-align:left;
justify-content:flex-start;
font-size:var(--fs-4)}.tour-perfect-chip{font-size:var(--fs-2);
min-height:34px;
padding:7px 12px}.footer-bottom{flex-direction:column;
gap:8px}}@media (max-width:380px){.nav-brand-main-text{font-size:.96rem}.booking-inquiry-row{gap:8px}.booking-submit-btn{font-size:.78rem}}.booking-whatsapp-btn{border-color:var(--gold);
}.booking-email-btn{border-color:var(--gold);
}.book-btn,.booking-submit-btn,.booking-inquiry-btn,.booking-total-pill,.lang-option{height:50px;
min-height:50px;
}.tour-detail-actions .book-btn,.booking-inquiry-row .booking-submit-btn,.booking-payment-group .booking-submit-btn{height:50px;
min-height:50px;
}.booking-stripe-btn{background:var(--gold);
color:#000;
}.booking-payment-group .booking-stripe-btn,.booking-payment-group .book-btn.booking-stripe-btn{width:100%;
  max-width:none;
  margin:0;
}.booking-field input,.booking-field select{padding-top:0;
  padding-bottom:0;
  box-sizing:border-box;
  line-height:1.2;
}.booking-field input[type="date"],.booking-field input[type="time"]{-webkit-appearance:none;
  appearance:none;
}.booking-field input[type="date"]::-webkit-date-and-time-value,.booking-field input[type="time"]::-webkit-date-and-time-value{height:50px;
  line-height:50px;
  margin:0;
  padding:0;
  text-align:left;
}.booking-field input[type="date"]::-webkit-calendar-picker-indicator,.booking-field input[type="time"]::-webkit-calendar-picker-indicator{margin:0;
}@media (max-width:640px){.booking-field input,.booking-field select{height:50px;
    min-height:50px;
}}.tour-highlights-list li{align-items:flex-start;
}.tour-highlights-list .list-check{display:none;
}@media (max-width:640px){}.tour-image-scroll-wrap{width:100%;
}@media (min-width:901px){.tour-image-scroll-img{aspect-ratio:16 / 10;
}}@media (max-width:640px){.tour-image-scroll-img{aspect-ratio:4 / 3;
}}.crpage-main{max-width:980px;
}.crpage-main .tour-detail-gallery{margin-bottom:30px;
}@media (min-width:1100px){.crpage-main{max-width:1040px;
}}@media (max-width:640px){.crpage-main{padding-left:12px;
padding-right:12px;
}.crpage-main .tour-detail-gallery{border-radius:22px;
}}.booking-replies,.booking-small-note,.footer-privacy,.book-btn,.booking-submit-btn,.booking-inquiry-btn,.booking-total-pill{height:50px;
min-height:50px;
}.booking-field input,.booking-field select{height:50px;
min-height:50px;
}.booking-inquiry-row{width:100%;
max-width:640px;
margin-left:auto;
margin-right:auto;
gap:16px;
}.booking-inquiry-row .booking-inquiry-btn{flex:1 1 0;
min-width:0;
margin:0;
}.booking-payment-group{width:100%;
max-width:640px;
margin:10px auto 0;
padding:0;
border:0;
border-radius:0;
background:transparent;
box-shadow:none;
}.booking-payment-group .booking-stripe-btn,.booking-payment-group button.book-btn{width:100%;
max-width:none;
margin:0;
border-radius:999px;
}.booking-whatsapp-btn{background:#25d366;
color:#fff;
text-shadow:0 0 2px rgba(0,0,0,.55),0 1px 1px rgba(0,0,0,.45);
}.booking-email-btn{background:#1366C4;
color:#fff;
}@media (max-width:640px){.booking-inquiry-row{gap:10px}.booking-inquiry-btn{font-size:var(--fs-3);
padding-left:10px;
padding-right:10px}}#ic-1 path,#ic-8 path{stroke-width:1.75;
}/* === Tour details: sistema de ícones consolidado + cartão de pagamento === *//* Factos — ícones informativos a dourado, oticamente centrados na 1.ª linha do título */.fact-icon{width:26px;
height:26px;
flex:0 0 26px;
color:var(--gold)}.fact-icon path{stroke-width:1.75;
}/* Destaques — bullet dourado */.tour-highlights-list .highlight-bullet{flex:0 0 auto;
color:var(--gold);
font-size:1.1em;
font-weight:800;
line-height:1.5;
margin-top:0;
}/* Incluídos — check verde, tamanho único e consistente */.tour-detail-includes .list-check{width:18px;
height:18px;
flex:0 0 18px;
color:var(--ttv-check-soft);
opacity:1;
margin-top:calc((1.65em - 18px) / 2);
}.tour-detail-includes .list-check path{stroke-width:2;
}/* Excluídos — × vermelho, à mesma escala do check */.tour-detail-excludes li::before{content:"\00d7";
color:var(--ttv-x-red);
font-size:1.3rem;
font-weight:600;
line-height:1;
width:18px;
min-width:18px;
flex:0 0 18px;
text-align:center;
margin-top:.2em;
}/* Bloco de pagamento/reserva nas páginas de tour — cartão com borda dourada */.tour-detail-actions{max-width:760px;
margin:28px auto 0;
display:flex;
flex-direction:column;
align-items:center;
gap:14px;
padding:28px 22px;
border:1px solid var(--gold-border);
border-radius:28px;
background:var(--white);
box-shadow:0 12px 30px rgba(26,54,93,0.07)}.footer-made-care{display:block;
color:var(--gold-ink);
font-family:var(--font-body);
font-size:.72em;
font-style:normal;
font-weight:800;
letter-spacing:.16em;
text-transform:uppercase}/* === Animação de entrada do modal de reserva (porta do principal, sem mexer no JS) === */@keyframes ttvModalOverlayIn{from{opacity:0}to{opacity:1}}@keyframes ttvModalContentIn{from{opacity:0;
transform:translateY(18px) scale(.975)}to{opacity:1;
transform:none}}.booking-modal-overlay:not([hidden]){animation:ttvModalOverlayIn 240ms ease both}.booking-modal-overlay:not([hidden]) html.booking-modal-open{scrollbar-gutter:stable}html.menu-open{scrollbar-gutter:stable}html.photo-zoom-open{scrollbar-gutter:stable}body.booking-modal-open{position:fixed;
width:100%}

/* === Tour detail base fixes v6: menu + gallery controlled at the source === */
:root{
  --tour-detail-width:860px;
  --tour-gallery-ratio:4 / 3;
}

/* One fixed width for gallery and all content cards */
.tour-detail-gallery,
.tour-detail-content{
  width:100%;
  max-width:var(--tour-detail-width);
  margin-left:auto;
  margin-right:auto;
}

/* The gallery height is defined here, not by the image file dimensions */
.tour-detail-gallery{
  aspect-ratio:var(--tour-gallery-ratio);
  margin-bottom:30px;
  border-radius:22px;
  overflow:hidden;
  background:var(--surface-blue);
}
.tour-image-scroll-wrap,
.tour-image-scroll{
  width:100%;
  height:100%;
}
.tour-image-scroll-wrap{
  position:relative;
  overflow:hidden;
  aspect-ratio:auto;
  background:var(--surface-blue);
}
.tour-image-scroll{
  display:flex;
  overflow-x:auto;
  overflow-y:hidden;
  scroll-snap-type:x mandatory;
  scrollbar-width:none;
  -webkit-overflow-scrolling:touch;
}
.tour-image-scroll::-webkit-scrollbar{display:none;}
.tour-image-scroll-img{
  flex:0 0 100%;
  width:100%;
  min-width:100%;
  max-width:100%;
  height:100%;
  display:block;
  aspect-ratio:auto;
  object-fit:cover;
  object-position:50% 0%;
  scroll-snap-align:start;
  color:transparent;
  user-select:none;
  -webkit-user-drag:none;
  cursor:zoom-in;
}
.tour-image-scroll-wrap::after{
  content:"";
  position:absolute;
  left:0;
  right:0;
  bottom:0;
  height:46px;
  background:linear-gradient(to top,rgba(0,0,0,.28),rgba(0,0,0,0));
  pointer-events:none;
}




/* Desktop can use a wider crop, mobile keeps top crop to remove exported blank bands */
@media (min-width:901px){
  :root{--tour-gallery-ratio:16 / 10;}
  .tour-image-scroll-img{object-position:50% 45%;}
}
@media (max-width:640px){
  .crpage-main{padding-left:12px;padding-right:12px;}
  .tour-detail-gallery{border-radius:22px;}
}

/* Cristo Rei first image needs a stronger top crop because the original file has empty space under the photo */
html[data-page="cristo-rei"] .tour-detail-gallery .tour-image-scroll-img:first-child{
  object-position:50% 0%;
  transform:scale(1.18);
  transform-origin:50% 0%;
}
@media (min-width:901px){
  html[data-page="cristo-rei"] .tour-detail-gallery .tour-image-scroll-img:first-child{
    object-position:50% 10%;
    transform:scale(1.12);
    transform-origin:50% 10%;
  }
}

/* Menu: CSS follows both the .open class and body/menu state, so Safari/iPhone has no hidden-state conflict */
.hamburger-menu-btn{
  z-index:1006;
  touch-action:manipulation;
  -webkit-tap-highlight-color:transparent;
}
.hamburger-menu-panel{
  position:fixed;
  top:calc(64px + env(safe-area-inset-top));
  left:24px;
  z-index:1007;
  display:block;
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  transform:translateY(-8px) scale(.98);
}
.hamburger-menu-panel.open,
body.menu-open .hamburger-menu-panel,
html.menu-open .hamburger-menu-panel{
  opacity:1;
  visibility:visible;
  pointer-events:auto;
  transform:translateY(0) scale(1);
}
@media (max-width:640px){
  .hamburger-menu-panel{
    top:calc(62px + env(safe-area-inset-top));
    left:16px;
    width:calc(100vw - 32px);
  }
}

/* === Galeria uniforme: todos os slides com a MESMA altura fixa, sem barra azul, igual em todos os tours === */
/* Safari/iOS não resolve height:100% através de um aspect-ratio no pai; por isso a própria imagem define a altura pelo seu aspect-ratio. */
.tour-detail-gallery{aspect-ratio:4 / 3;}
.tour-image-scroll-wrap,
.tour-image-scroll{height:auto;}
.tour-image-scroll-img{aspect-ratio:4 / 3;height:auto;width:100%;min-width:100%;max-width:100%;object-fit:cover;}
@media (min-width:901px){
  .tour-detail-gallery{aspect-ratio:16 / 10;}
  .tour-image-scroll-img{aspect-ratio:16 / 10;}
}


/* === v7: menu estável em iPhone + pontos do carrossel sempre visíveis === */
#main-nav{z-index:1008;}
.hamburger-menu-btn,.lang-select{z-index:1010;}
.hamburger-menu-backdrop{
  position:fixed;
  inset:0;
  z-index:1006;
  background:rgba(13,24,38,.46);
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  transition:opacity .18s ease,visibility .18s ease;
}
.hamburger-menu-backdrop.open{
  opacity:1;
  visibility:visible;
  pointer-events:auto;
}
.hamburger-menu-panel{
  z-index:1009;
  max-height:calc(100dvh - 82px - env(safe-area-inset-top));
  overflow-y:auto;
  -webkit-overflow-scrolling:touch;
}

/* === Unificar tamanho de letra: factos, incluídos e excluídos = tamanho da descrição (fs-5) === */
.tour-detail-facts .detail-fact-body span,
.tour-detail-includes li,
.tour-detail-includes li span,
.tour-detail-excludes li{
  font-size:var(--fs-4);
}
