/* Titus Boat Tours: estilos do site (copiados do index). Usado pelas páginas legais. */
    @font-face{font-family:"Open Sans";font-style:normal;font-weight:400;font-display:swap;src:url("/fonts/open-sans/open-sans-v44-latin-regular.woff2") format("woff2")}
    @font-face{font-family:"Open Sans";font-style:normal;font-weight:700;font-display:swap;src:url("/fonts/open-sans/open-sans-v44-latin-700.woff2") format("woff2")}

    :root{
      --ink:#0E2A33;          /* azul-petróleo da ria: texto e fundos escuros */
      --ink-2:#4A636B;        /* texto secundário */
      --lagoon:#0B7A55;       /* verde da marca: botões principais */
      --lagoon-700:#096846;
      --lagoon-50:#E6F4EE;
      --cacela:#1F5FA8;       /* azul das portas de Cacela Velha: Aqua Táxi e foco */
      --cacela-50:#E4EEF9;
      --sand:#EFE4CF;         /* areia dos bancos: talão do bilhete da Fábrica */
      --gold:#D9A21B;         /* estrelas */
      --wa:#25D366;           /* verde do WhatsApp */
      --salt:#F3F7F5;         /* fundo alternado */
      --line:#D6E2DD;
      --wrap:1160px;
      --gutter:16px;
      --r-s:10px;
      --r-m:16px;
      --header-h:60px;
      --dock-h:76px;
      --focus:0 0 0 3px #FFFFFF,0 0 0 5px #1F5FA8;
    }

    /* ---------- Base (com proteção contra as regras antigas do css/indexcss.css) ---------- */
    *,*::before,*::after{box-sizing:border-box}
    html{scroll-behavior:smooth;scroll-padding-top:calc(var(--header-h) + 8px);-webkit-text-size-adjust:100%}
    body.tt-body{margin:0!important;padding:0 0 calc(var(--dock-h) + env(safe-area-inset-bottom))!important;background:#fff!important;color:var(--ink);font-family:"Open Sans",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;font-size:1rem;line-height:1.6;-webkit-tap-highlight-color:transparent}
    :where(.tt-body) :is(h1,h2,h3,p,ul,ol,figure,blockquote){margin:0}
    :where(.tt-body) img{max-width:100%;display:block}
    :where(.tt-body) a{color:inherit}
    .tt-body :focus-visible{outline:none;box-shadow:var(--focus);border-radius:6px}
    .hidden{display:none!important}
    [x-cloak]{display:none!important}
    .tt-sr{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
    .tt-wrap{width:min(100% - 2*var(--gutter),var(--wrap));margin-inline:auto}
    .tt-icon{width:1.25em;height:1.25em;flex:0 0 auto;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
    .tt-icon--fill{fill:currentColor;stroke:none}
    .tt-skip{position:absolute;left:12px;top:-60px;z-index:400;background:var(--ink);color:#fff!important;padding:10px 16px;border-radius:var(--r-s);text-decoration:none;font-weight:700}
    .tt-skip:focus{top:12px}

    /* ---------- Tipografia e secções ---------- */
    .tt-h2{font-size:clamp(1.5rem,1.15rem + 1.6vw,2.25rem);line-height:1.15;font-weight:700;letter-spacing:-.015em;color:var(--ink);text-wrap:balance}
    .tt-lead{margin-top:8px!important;max-width:62ch;color:var(--ink-2);font-size:1rem}
    .tt-section{padding:44px 0}
    .tt-section--salt{background:var(--salt)}
    .tt-section__head{margin-bottom:20px}
    .tt-lazy{content-visibility:auto;contain-intrinsic-size:auto 900px}

    /* ---------- Botões (resposta ao toque) ---------- */
    .tt-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:48px;padding:0 18px;border-radius:var(--r-s);font-weight:700;font-size:1rem;line-height:1.1;text-decoration:none;border:2px solid transparent;cursor:pointer;font-family:inherit;transition:background-color .15s ease,border-color .15s ease,color .15s ease,transform .1s ease;touch-action:manipulation}
    .tt-btn:active{transform:scale(.97)}
    .tt-btn--primary{background:var(--lagoon);color:#fff!important}
    .tt-btn--primary:hover{background:var(--lagoon-700)}
    .tt-btn--ghost{background:#fff;border-color:var(--line);color:var(--ink)!important}
    .tt-btn--ghost:hover{border-color:var(--lagoon);color:var(--lagoon)!important}
    .tt-btn--wa{background:var(--wa);color:var(--ink)!important}
    .tt-btn--wa:hover{background:#1FBF5B}
    .tt-btn--block{width:100%}
    a.tt-link{color:var(--lagoon);font-weight:700;text-decoration:underline;text-underline-offset:3px}
    a.tt-link:hover{color:var(--lagoon-700)}

    /* ---------- Cabeçalho (esconde-se ao descer, volta ao subir) ---------- */
    #navbar.tt-header{position:sticky!important;top:0!important;z-index:200;height:var(--header-h);margin:0;padding:0;background:rgba(255,255,255,.97);border-bottom:1px solid var(--line);box-shadow:none;backdrop-filter:saturate(1.2) blur(10px);-webkit-backdrop-filter:saturate(1.2) blur(10px);transition:transform .25s ease}
    #navbar.tt-header.is-hidden{transform:translateY(-100%)}
    .tt-header__inner{height:100%;display:flex;align-items:center;gap:8px}
    .tt-brand{display:flex;align-items:center;gap:10px;text-decoration:none;min-width:0;margin-right:auto}
    .tt-brand img{width:40px;height:40px;object-fit:contain}
    .tt-brand__name{display:block;font-weight:700;font-size:1.0625rem;line-height:1.15;color:var(--ink);white-space:nowrap}
    .tt-brand__place{display:block;font-size:.8125rem;line-height:1.2;color:var(--ink-2);white-space:nowrap}
    .tt-nav{display:none}
    .tt-header__cta{display:none!important}
    .tt-menu-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-width:44px;min-height:44px;padding:0 12px;border-radius:var(--r-s);border:1.5px solid var(--line);background:#fff;color:var(--ink);font:700 .9375rem/1 "Open Sans",system-ui,sans-serif;cursor:pointer}
    .tt-menu{position:absolute;left:0;right:0;top:var(--header-h);max-height:calc(100dvh - var(--header-h) - var(--dock-h));overflow:auto;background:#fff;border-bottom:1px solid var(--line);box-shadow:0 18px 30px rgba(14,42,51,.14);padding:4px var(--gutter) 12px}
    .tt-menu[hidden]{display:none}
    .tt-menu a{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:54px;border-bottom:1px solid var(--line);text-decoration:none;font-weight:700;font-size:1.0625rem;color:var(--ink)}
    .tt-menu a:last-child{border-bottom:0}
    .tt-menu small{font-weight:400;color:var(--ink-2);font-size:.875rem;white-space:nowrap}

    /* Idioma (mesmos IDs do script de tradução) */
    #floatingLang{position:relative}
    #langToggle{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-width:44px;min-height:44px;padding:0 10px;border-radius:var(--r-s);background:#fff;color:var(--ink);border:1.5px solid var(--line);font:700 .875rem/1 "Open Sans",system-ui,sans-serif;cursor:pointer}
    #langToggle img{width:20px;height:15px;border-radius:2px}
    #langCode{display:none}
    #langList{position:absolute;top:52px;right:0;z-index:260;min-width:190px;background:var(--ink);border-radius:12px;padding:6px;box-shadow:0 12px 28px rgba(14,42,51,.3);max-height:60vh;overflow:auto}
    #langList ul{list-style:none;margin:0;padding:0;display:grid;gap:2px}
    #langList .lang-btn{display:flex;align-items:center;gap:10px;width:100%;min-height:44px;padding:0 12px;border:0;border-radius:8px;background:transparent;color:#fff;font:600 .9375rem/1 "Open Sans",system-ui,sans-serif;cursor:pointer}
    #langList .lang-btn:hover{background:rgba(255,255,255,.1)}
    #langList a.lang-btn{text-decoration:none;color:#fff}
    #langList .lang-btn[aria-current]{background:rgba(255,255,255,.16)}
    #langList img{width:20px;height:15px;border-radius:2px}
    .gt-hidden{position:absolute!important;left:-9999px!important;top:-9999px!important;width:1px!important;height:1px!important;overflow:hidden!important}

    /* ---------- Topo ---------- */
    .tt-hero{position:relative;isolation:isolate;display:flex;align-items:flex-end;min-height:min(62svh,480px);color:#fff;overflow:hidden;background:#12403f}
    .tt-hero__img{position:absolute;inset:0;z-index:-2}
    .tt-hero__img img{width:100%;height:100%;object-fit:cover;object-position:65% 50%}
    .tt-hero::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(0deg,rgba(9,30,36,.92) 0%,rgba(9,30,36,.62) 48%,rgba(9,30,36,.08) 82%)}
    .tt-hero__content{padding:20px 0 104px}
    .tt-hero__place{display:inline-flex;align-items:center;gap:6px;margin-bottom:10px;font-size:.875rem;font-weight:700;color:rgba(255,255,255,.9)}
    .tt-hero h1{max-width:17ch;font-size:clamp(1.85rem,1.15rem + 3.4vw,3.6rem);line-height:1.08;font-weight:700;letter-spacing:-.02em;color:#fff;text-wrap:balance}
    .tt-hero__sub{max-width:48ch;margin-top:10px!important;font-size:clamp(1rem,.95rem + .3vw,1.2rem);line-height:1.5;color:rgba(255,255,255,.92)}
    .tt-hero__rating{display:inline-flex;align-items:center;gap:8px;margin-top:14px;padding:8px 12px;border-radius:999px;background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.28);color:#fff!important;text-decoration:none;font-size:.9375rem;font-weight:600}
    .tt-hero__rating .tt-icon{color:#F2C14E;width:18px;height:18px}

    /* ---------- Bilhetes: o elemento marcante da página ---------- */
    .tt-tickets{position:relative;z-index:5;margin-top:-80px;padding-bottom:8px}
    .tt-tickets__grid{display:grid;grid-template-columns:minmax(0,1fr);gap:14px}
    .tt-ticket{--stub-bg:var(--sand);--stub-h:84px;filter:drop-shadow(0 1px 1px rgba(14,42,51,.10)) drop-shadow(0 10px 20px rgba(14,42,51,.15))}
    .tt-ticket--taxi{--stub-bg:var(--cacela-50)}
    .tt-ticket--tours{--stub-bg:var(--lagoon-50)}
    .tt-ticket__card{height:100%;display:flex;flex-direction:column;background:#fff;border-radius:var(--r-m);overflow:hidden;
      -webkit-mask:radial-gradient(circle 11px at 0 calc(100% - var(--stub-h)),#0000 97%,#000 100%) left/51% 100% no-repeat,radial-gradient(circle 11px at 100% calc(100% - var(--stub-h)),#0000 97%,#000 100%) right/51% 100% no-repeat;
              mask:radial-gradient(circle 11px at 0 calc(100% - var(--stub-h)),#0000 97%,#000 100%) left/51% 100% no-repeat,radial-gradient(circle 11px at 100% calc(100% - var(--stub-h)),#0000 97%,#000 100%) right/51% 100% no-repeat}
    .tt-ticket__main{flex:1;padding:18px 18px 16px;display:flex;flex-direction:column;gap:8px}
    .tt-ticket__route{display:flex;align-items:center;gap:8px;color:var(--ink-2);font-size:.8125rem;font-weight:700}
    .tt-ticket h3{font-size:1.25rem;line-height:1.2;font-weight:700;color:var(--ink)}
    .tt-ticket__facts{padding:0;list-style:none;display:grid;gap:4px;font-size:.9375rem;color:var(--ink);line-height:1.45}
    .tt-ticket__facts li{display:flex;gap:8px;align-items:flex-start}
    .tt-ticket__facts .tt-icon{color:var(--lagoon);margin-top:3px;width:1em;height:1em}
    .tt-ticket__more{margin-top:2px;font-size:.9375rem}
    .tt-ticket__stub{height:var(--stub-h);flex:0 0 auto;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:0 16px 0 18px;background:var(--stub-bg);border-top:2px dashed rgba(14,42,51,.22)}
    .tt-ticket__price{display:flex;flex-direction:column;line-height:1.15}
    .tt-ticket__from{font-size:.75rem;color:var(--ink-2)}
    .tt-ticket__value{font-size:1.625rem;font-weight:700;color:var(--ink);font-variant-numeric:tabular-nums;letter-spacing:-.02em;white-space:nowrap}
    .tt-ticket__stub .tt-btn{min-height:48px;padding:0 16px;white-space:nowrap}

    /* ---------- Faixa de confiança ---------- */
    .tt-proof{padding:22px 0 6px}
    .tt-proof__list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;padding:0;list-style:none}
    .tt-proof__item{display:flex;align-items:center;gap:10px;min-height:60px;padding:10px 12px;border:1px solid var(--line);border-radius:12px;text-decoration:none;color:var(--ink);background:#fff}
    a.tt-proof__item:hover{border-color:var(--lagoon)}
    .tt-proof__item .tt-icon{width:22px;height:22px;color:var(--gold)}
    .tt-proof__item .tt-icon.is-green{color:var(--lagoon)}
    .tt-proof__item b{display:block;font-size:1.125rem;line-height:1.15}
    .tt-proof__item span{display:block;font-size:.8125rem;line-height:1.25;color:var(--ink-2)}
    .tt-proof__item>span{min-width:0}


    /* ---------- Para onde quer ir? (destinos) ---------- */
    .tt-dests{padding-top:36px}
    .tt-dest-list{display:grid;gap:0;padding:0;list-style:none;border-top:1px solid var(--line)}
    .tt-dest{display:flex;align-items:center;justify-content:space-between;gap:14px;min-height:72px;padding:12px 2px;border-bottom:1px solid var(--line);text-decoration:none;color:var(--ink)}
    .tt-dest:active{background:var(--salt)}
    .tt-dest__text{min-width:0}
    .tt-dest h3{margin:0;font-size:1.0625rem;font-weight:700;line-height:1.25;color:var(--ink)}
    .tt-dest__text>span{display:block;margin-top:2px;font-size:.875rem;line-height:1.4;color:var(--ink-2)}
    .tt-dest__price{flex:0 0 auto;text-align:right;font-weight:700;font-size:1.125rem;line-height:1.1;color:var(--lagoon);white-space:nowrap}
    .tt-dest__price small{display:block;font-size:.75rem;font-weight:400;color:var(--ink-2)}
    .tt-dests__note{margin-top:12px!important;font-size:.875rem;color:var(--ink-2)}
    .tt-chips{display:flex!important;flex-wrap:wrap;gap:4px;margin:4px 0 2px!important}
    .tt-chip{display:inline-block!important;margin:0!important;padding:2px 8px;border-radius:999px;font-size:.75rem!important;font-weight:700;line-height:1.5!important}
    .tt-chip--tr{background:#E1F0E8;color:#0A5C40!important}
    .tt-chip--aq{background:#E3ECF7;color:#1A4F8C!important}
    .tt-chip--pa{background:var(--sand);color:#5A4318!important}
    .tt-routes{margin-top:12px;border:1px solid var(--line);border-radius:var(--r-m);background:#fff}
    .tt-routes summary{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:52px;padding:0 16px;font-weight:700;cursor:pointer;list-style:none}
    .tt-routes summary::-webkit-details-marker{display:none}
    .tt-routes summary .tt-icon{flex:none;width:20px;height:20px;transition:transform .2s ease}
    .tt-routes[open] summary .tt-icon{transform:rotate(45deg)}
    .tt-routes__table{width:100%;border-collapse:collapse;font-size:.9375rem}
    .tt-routes__table caption{caption-side:top;text-align:left;padding:0 16px 8px;font-size:.8125rem;color:var(--ink-2)}
    .tt-routes__table th,.tt-routes__table td{padding:9px 16px;border-top:1px solid var(--line);text-align:left}
    .tt-routes__table thead th{font-size:.8125rem;color:var(--ink-2);font-weight:700}
    .tt-routes__table tbody th{font-weight:400;color:var(--ink)}
    .tt-routes__table td{text-align:right;white-space:nowrap;font-weight:700;color:var(--ink);width:1%}
    .tt-routes__table thead th:not(:first-child){text-align:right}
    .tt-routes .tt-btn{margin:12px 16px 16px;width:calc(100% - 32px)}
    .tt-near{display:grid;gap:8px;margin-bottom:12px}
    .tt-btn--ink{background:var(--ink);color:#fff!important}
    .tt-btn--ink:hover{background:#163A45}
    .tt-btn--ink:disabled{opacity:.7;cursor:progress}
    .tt-near__msg{min-height:1.4em;font-size:.9375rem;color:var(--ink)}
    .tt-near__msg:empty{display:none}
    .tt-place__dist{display:inline-flex;align-self:flex-start;margin-top:-2px!important;padding:2px 10px;border-radius:999px;background:var(--salt);font-size:.8125rem!important;font-weight:700;color:var(--ink)!important}
    .tt-place.is-near{border:2px solid var(--lagoon);box-shadow:0 6px 18px rgba(11,122,85,.14)}
    .tt-place.is-near .tt-place__dist{background:var(--lagoon);color:#fff!important}

    /* ---------- Passeios: carrossel no telemóvel, grelha no computador ---------- */
    .tt-group{display:grid;border:1px solid var(--line);border-radius:var(--r-m);overflow:hidden;background:#fff;margin-bottom:24px}
    .tt-group__img{aspect-ratio:2/1;background:#cfe3dd}
    .tt-group__img img{width:100%;height:100%;object-fit:cover}
    .tt-group__body{padding:18px;display:flex;flex-direction:column;gap:10px}
    .tt-group__tag{align-self:flex-start;padding:4px 10px;border-radius:999px;background:var(--cacela-50);color:var(--cacela);font-size:.8125rem;font-weight:700}
    .tt-group h3{font-size:1.25rem;font-weight:700;line-height:1.25}
    .tt-group p{color:var(--ink-2);font-size:.9375rem}
    .tt-group__row{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:4px}
    .tt-group .tt-group__price{font-size:1.625rem;font-weight:700;color:var(--ink);line-height:1.1}
    .tt-group .tt-group__price small{display:block;font-size:.8125rem;font-weight:400;color:var(--ink-2)}
    .tt-carousel-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}
    .tt-carousel-head h3{font-size:1.125rem;font-weight:700}
    .tt-swipe{display:inline-flex;align-items:center;gap:6px;font-size:.8125rem;color:var(--ink-2);white-space:nowrap}
    .tt-swipe .tt-icon{width:16px;height:16px}
    .tt-scroller{display:grid;grid-auto-flow:column;grid-auto-columns:82%;gap:12px;margin:0 calc(-1 * var(--gutter));padding:2px var(--gutter) 14px;overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x mandatory;scroll-padding-inline:var(--gutter);scrollbar-width:none;list-style:none}
    .tt-scroller::-webkit-scrollbar{display:none}
    .tt-scroller>li{scroll-snap-align:start;display:flex}
    .tt-dots{display:flex;justify-content:center;gap:6px;margin-top:2px}
    .tt-dots span{width:7px;height:7px;border-radius:50%;background:#C3D3CD;transition:background-color .2s ease,width .2s ease}
    .tt-dots span.is-on{width:20px;border-radius:4px;background:var(--lagoon)}
    .tt-tour{display:flex;flex-direction:column;width:100%;background:#fff;border:1px solid var(--line);border-radius:var(--r-m);overflow:hidden}
    .tt-tour__img{position:relative;aspect-ratio:16/10;background:#cfe3dd}
    .tt-tour__img img{width:100%;height:100%;object-fit:cover}
    .tt-tour__price{position:absolute;left:10px;bottom:10px;background:#fff;color:var(--ink);font-weight:700;font-size:.9375rem;padding:5px 10px;border-radius:8px}
    .tt-tour__body{padding:14px 14px 16px;display:flex;flex-direction:column;gap:8px;flex:1}
    .tt-tour h4{font-size:1.125rem;font-weight:700;line-height:1.25;color:var(--ink);margin:0}
    .tt-tour__meta{display:flex;flex-wrap:wrap;gap:4px 12px;font-size:.8125rem;color:var(--ink-2)}
    .tt-tour__meta span{display:inline-flex;align-items:center;gap:5px}
    .tt-tour__meta .tt-icon{width:15px;height:15px}
    .tt-tour p{font-size:.9375rem;color:var(--ink-2);line-height:1.5}
    .tt-tour__actions{display:flex;gap:8px;margin-top:auto;padding-top:4px}
    .tt-tour__actions .tt-btn{flex:1 1 0;min-height:46px;padding:0 10px;font-size:.9375rem}
    .tt-no-js-details .tt-tour__details{display:none}

    /* ---------- Avaliações ---------- */
    .tt-review{display:flex;flex-direction:column;gap:12px;width:100%;background:#fff;border-radius:var(--r-m);padding:18px;border:1px solid var(--line)}
    .tt-review blockquote p{font-size:1.0625rem;line-height:1.5;color:var(--ink)}
    .tt-review figcaption{margin-top:auto;font-size:.8125rem;color:var(--ink-2)}
    .tt-review figcaption a{color:var(--ink-2)}
    .tt-stars{display:flex;gap:2px;color:var(--gold)}
    .tt-stars .tt-icon{width:17px;height:17px}
    .tt-reviews__more{display:flex;flex-wrap:wrap;gap:8px 18px;margin-top:10px!important;font-size:.9375rem}

    /* ---------- Sobre ---------- */
    .tt-about{display:grid;gap:20px}
    .tt-about__text{color:var(--ink-2);font-size:1rem;max-width:62ch}
    .tt-facts{display:grid;gap:8px;padding:0;list-style:none}
    .tt-facts li{display:flex;gap:12px;align-items:center;padding:12px 14px;border-radius:12px;background:#fff;border:1px solid var(--line)}
    .tt-facts .tt-icon{width:24px;height:24px;color:var(--lagoon)}
    .tt-facts b{display:block;color:var(--ink);font-size:.9375rem;line-height:1.3}
    .tt-facts span{display:block;color:var(--ink-2);font-size:.8125rem;line-height:1.3}

    /* ---------- Como funciona (sequência real: por isso tem números) ---------- */
    .tt-steps{display:grid;gap:14px;padding:0;list-style:none;counter-reset:passo}
    .tt-steps li{counter-increment:passo;display:grid;grid-template-columns:40px 1fr;gap:12px;align-items:start}
    .tt-steps li::before{content:counter(passo);width:40px;height:40px;border-radius:50%;display:grid;place-items:center;background:var(--ink);color:#fff;font-weight:700}
    .tt-steps b{display:block;font-size:1rem;color:var(--ink)}
    .tt-steps span{display:block;color:var(--ink-2);font-size:.9375rem}

    /* ---------- Como chegar ---------- */
    .tt-places{display:grid;gap:12px}
    .tt-place{border:1px solid var(--line);border-radius:var(--r-m);padding:16px;background:#fff;display:flex;flex-direction:column;gap:8px}
    .tt-place h3{display:flex;align-items:center;gap:8px;font-size:1.0625rem;font-weight:700;color:var(--ink)}
    .tt-place h3 .tt-icon{color:var(--lagoon)}
    .tt-place p{color:var(--ink-2);font-size:.9375rem}
    .tt-place__actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:4px}
    .tt-place__actions .tt-btn{min-height:46px;padding:0 10px;font-size:.9375rem}
    .tt-place p.tt-place__addr{font-size:.875rem;color:var(--ink-2);margin-top:-4px}
    .tt-place__addr a{display:inline-block;padding:4px 0;font-weight:700;color:var(--ink);white-space:nowrap;text-decoration:underline;text-underline-offset:3px}
    .tt-place__head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}
    .tt-place__head h3{min-width:0;padding-top:6px}
    .tt-place__rating{flex:none;display:inline-flex;align-items:center;gap:4px;min-height:36px;padding:0 10px;border:1px solid var(--line);border-radius:999px;font-size:.8125rem;color:var(--ink-2);text-decoration:none;background:#fff}
    .tt-place__rating:hover{border-color:var(--lagoon)}
    .tt-place__rating .tt-icon{width:16px;height:16px;color:var(--gold)}
    .tt-place__rating b{font-size:.9375rem;color:var(--ink)}
    .tt-map{margin-top:12px}
    .tt-map iframe{width:100%;height:320px;border:0;border-radius:var(--r-m);display:block}

    /* ---------- Perguntas frequentes ---------- */
    .tt-faq{max-width:820px}
    .tt-faq details{border-bottom:1px solid var(--line)}
    .tt-faq summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:14px;min-height:56px;padding:12px 0;font-weight:700;font-size:1rem;color:var(--ink)}
    .tt-faq summary::-webkit-details-marker{display:none}
    .tt-faq summary .tt-icon{transition:transform .2s ease;color:var(--lagoon)}
    .tt-faq details[open] summary .tt-icon{transform:rotate(45deg)}
    .tt-faq details p{padding:0 0 16px;color:var(--ink-2);max-width:68ch}

    /* ---------- Contacto: WhatsApp primeiro ---------- */
    .tt-contact{background:var(--ink);color:#fff}
    .tt-contact .tt-h2{color:#fff}
    .tt-contact .tt-lead{color:#B9CCD1}
    .tt-contact__grid{display:grid;gap:24px}
    .tt-contact__quick{display:grid;gap:10px;margin-top:18px}
    .tt-contact__quick .tt-btn{min-height:56px;font-size:1.0625rem}
    .tt-contact__quick .tt-btn--call{background:transparent;border-color:rgba(255,255,255,.4);color:#fff!important}
    .tt-contact__mail{display:inline-flex;align-items:center;gap:8px;margin-top:4px;color:#fff;font-weight:600;text-decoration:underline;text-underline-offset:3px}
    .tt-contact__mail .tt-icon{color:#7FE0B4}
    .tt-form{display:grid;gap:16px;background:#fff;color:var(--ink);border-radius:var(--r-m);padding:20px;box-shadow:0 18px 40px rgba(0,0,0,.25)}
    .tt-form__title{font-size:1.125rem;font-weight:700}
    /* Ganham às regras antigas de .input-field (feitas para fundo escuro) */
    #contactForm .tt-field label{display:block;margin-bottom:6px;color:var(--ink)!important;font-weight:700;font-size:.9375rem}
    #contactForm .tt-field input,#contactForm .tt-field textarea{display:block;width:100%;min-height:52px;margin:0;padding:12px 14px;font:inherit;font-size:1rem!important;line-height:1.4;color:var(--ink)!important;-webkit-text-fill-color:var(--ink);caret-color:var(--lagoon);opacity:1!important;background:#F7FAF9!important;border:2px solid #6B8088!important;border-radius:var(--r-s)!important;box-shadow:none!important;outline:none;transition:border-color .15s ease,box-shadow .15s ease,background-color .15s ease}
    #contactForm .tt-field textarea{min-height:120px;resize:vertical}
    #contactForm .tt-field input::placeholder,#contactForm .tt-field textarea::placeholder{color:#5E7A72!important;-webkit-text-fill-color:#5E7A72;opacity:1}
    #contactForm .tt-field input:focus,#contactForm .tt-field textarea:focus{background:#fff!important;border-color:var(--lagoon)!important;box-shadow:0 0 0 4px rgba(11,122,85,.22)!important}
    #contactForm .tt-field input[aria-invalid="true"],#contactForm .tt-field textarea[aria-invalid="true"]{border-color:#B42318!important;background:#FFF6F5!important;box-shadow:0 0 0 4px rgba(180,35,24,.14)!important}
    #contactForm .tt-field input:-webkit-autofill{-webkit-box-shadow:0 0 0 1000px #EEF6F2 inset!important;-webkit-text-fill-color:var(--ink)!important}
    #contactForm .tt-field .input-error{display:block;min-height:1em;margin-top:6px;color:#B42318!important;font-size:.875rem;font-weight:600}
    #contactForm .tt-field .iti{width:100%;display:block}
    #contactForm .tt-field .iti input{padding-left:52px}
    .tt-form .tt-btn{width:100%;min-height:52px;font-size:1.0625rem}
    .tt-form__note{font-size:.8125rem;color:var(--ink-2)}
    .tt-spin{animation:tt-spin 1s linear infinite}
    @keyframes tt-spin{to{transform:rotate(360deg)}}

    /* ---------- Rodapé ---------- */
    footer.tt-footer{background:#0A2027;color:#C9D8DC;padding:40px 0 24px;margin:0;box-shadow:none;border:0}
    .tt-footer a{color:#fff;text-decoration:none}
    .tt-footer a:hover{text-decoration:underline;text-underline-offset:3px}
    .tt-footer__brand{display:grid;gap:10px;padding-bottom:22px;border-bottom:1px solid rgba(255,255,255,.14)}
    .tt-footer__brand h2{font-size:1.125rem;font-weight:700;color:#fff}
    .tt-footer address{font-style:normal;font-size:.9375rem;line-height:1.6}
    .tt-footer__maps{display:flex;flex-wrap:wrap;gap:8px;margin-top:4px}
    .tt-footer__maps a{flex:1 1 auto;display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:0 12px;white-space:nowrap;border:1px solid rgba(255,255,255,.3);border-radius:var(--r-s);font-weight:700;font-size:.9375rem}
    .tt-footer__cols{display:grid;grid-template-columns:1fr 1fr;gap:22px 16px;padding:22px 0}
    /* Alvos de toque com pelo menos 44 px de altura (recomendação do Google para telemóvel) */
    .tt-footer__cols li a,.tt-footer__cols li button.tt-linklike{display:inline-flex;align-items:center;min-height:44px}
    .tt-footer__cols ul{display:grid;gap:0!important}
    .tt-ticket__more,.tt-contact__mail{display:inline-flex;align-items:center;min-height:44px}
    figcaption a{display:inline-block;padding:12px 0;margin:-12px 0}
    .tt-place__rating{min-height:44px!important}
    .tt-footer address a[href^="tel:"]{white-space:nowrap}
    .tt-footer h3{font-size:.9375rem;font-weight:700;color:#fff;margin:0 0 10px}
    .tt-footer ul{padding:0;list-style:none;display:grid;gap:10px;font-size:.9375rem}
    .tt-footer__follow{grid-column:1 / -1;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px}
    .tt-footer__follow h3{flex-basis:100%;margin:0}
    .tt-footer__social{display:flex;gap:10px}
    .tt-footer__social a{width:44px;height:44px;display:grid;place-items:center;border-radius:50%;border:1px solid rgba(255,255,255,.25)}
    .tt-footer__social .tt-icon{width:20px;height:20px}
    .tt-lre{display:inline-flex;align-items:center;justify-content:center;min-height:44px;max-width:100%;padding:6px 14px;white-space:normal;text-align:center;border:1px solid rgba(255,255,255,.3);border-radius:var(--r-s);font-weight:700;font-size:.9375rem}
    .tt-footer button.tt-linklike{background:none;border:0;padding:0;color:#fff;font:inherit;cursor:pointer;text-align:left}
    .tt-footer__legal{display:grid;gap:8px;padding-top:18px;border-top:1px solid rgba(255,255,255,.14);font-size:.8125rem;line-height:1.5}

    /* ---------- Botões fixos WhatsApp / Ligar ---------- */
    .tt-dock{position:fixed;left:0;right:0;bottom:0;z-index:150;display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr) minmax(0,1fr);gap:8px;padding:10px max(12px,env(safe-area-inset-right)) calc(10px + env(safe-area-inset-bottom)) max(12px,env(safe-area-inset-left));background:rgba(255,255,255,.97);border-top:1px solid var(--line);box-shadow:0 -8px 24px rgba(14,42,51,.10)}
    .tt-dock a{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:54px;border-radius:12px;font-weight:700;font-size:1rem;text-decoration:none;border:2px solid transparent;white-space:nowrap;touch-action:manipulation;transition:transform .1s ease}
    .tt-dock a:active{transform:scale(.97)}
    .tt-dock a{min-width:0}
    @media (max-width:359px){.tt-dock a{gap:4px;padding:0 4px}.tt-dock .tt-icon{width:18px;height:18px}}
    .tt-dock .tt-icon{width:22px;height:22px}
    .tt-dock__wa{background:var(--wa);color:var(--ink)!important}
    .tt-dock__call{background:var(--ink);color:#fff!important}
    .tt-dock__book{background:#fff;color:var(--lagoon)!important;border-color:var(--lagoon)!important}
    .tt-dock__num{display:none}
    @media (max-width:379px){:root{--gutter:14px}.tt-ticket__stub{gap:8px;padding:0 12px 0 14px}.tt-ticket__stub .tt-btn{padding:0 12px;font-size:.9375rem}.tt-ticket__value{font-size:1.375rem}.tt-proof__item{padding:10px}.tt-dock{gap:6px}.tt-dock a{font-size:.875rem;gap:6px;padding:0 6px}.tt-dock .tt-icon{width:19px;height:19px}.tt-brand__place{display:none}}

    /* Voltar ao topo: canto inferior direito, por cima da barra do telemóvel */
    #floatingIcons{position:fixed;right:max(12px,env(safe-area-inset-right));bottom:calc(var(--dock-h) + 12px + env(safe-area-inset-bottom));z-index:160}
    #backToTop{width:48px;height:48px;border-radius:50%;border:2px solid #fff;background:var(--ink);color:#fff;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:0 6px 18px rgba(14,42,51,.30);opacity:0;visibility:hidden;transform:translateY(8px);transition:opacity .2s ease,transform .2s ease,visibility .2s}
    #backToTop.is-on{opacity:1;visibility:visible;transform:none}
    #backToTop:active{transform:scale(.94)}
    #backToTop svg{width:24px;height:24px}

    /* ---------- Aviso de cookies ---------- */
    .tt-consent{position:fixed;left:0;right:0;bottom:0;z-index:300;background:#fff;color:var(--ink);border-radius:16px 16px 0 0;box-shadow:0 -12px 36px rgba(14,42,51,.22);padding:16px 16px calc(14px + env(safe-area-inset-bottom));border-top:1px solid var(--line)}
    .tt-consent[hidden]{display:none}
    .tt-consent p{font-size:.875rem;line-height:1.5;color:var(--ink-2)}
    .tt-consent p b{color:var(--ink)}
    .tt-consent__actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:12px}
    .tt-consent__actions .tt-btn{min-height:46px;font-size:.9375rem}

    /* ================= Tablet (≥ 720 px) ================= */
    @media (min-width:720px){
      :root{--gutter:24px}
      .tt-section{padding:64px 0}
      .tt-section__head{margin-bottom:28px}
      .tt-tickets__grid{grid-template-columns:repeat(2,minmax(0,1fr))}
      .tt-ticket--tours{grid-column:1 / -1}
      .tt-proof__list{grid-template-columns:repeat(4,1fr)}
      .tt-scroller{grid-auto-columns:46%}
      .tt-group{grid-template-columns:1.1fr 1fr}
      .tt-group__img{aspect-ratio:auto;min-height:280px}
      .tt-group__body{padding:28px;justify-content:center}
      .tt-places{grid-template-columns:1fr 1fr}
      .tt-dest-list{grid-template-columns:1fr 1fr;column-gap:32px}
      .tt-dest:hover h3{color:var(--lagoon)}
      .tt-steps{grid-template-columns:repeat(3,1fr);gap:24px}
      .tt-about{grid-template-columns:1.3fr 1fr;gap:40px;align-items:start}
      .tt-footer__cols{grid-template-columns:repeat(3,1fr)}
      .tt-footer__follow{grid-column:auto;display:block}
      .tt-footer__follow h3{margin:0 0 10px}
      .tt-footer__lre{margin-top:14px!important}
    }

    /* ================= Computador (≥ 1024 px) ================= */
    @media (min-width:1024px){
      :root{--header-h:76px}
      body.tt-body{padding-bottom:0!important}
      #navbar.tt-header.is-hidden{transform:none}
      .tt-brand img{width:44px;height:44px}
      .tt-brand__name{font-size:1.125rem}
      .tt-nav{display:flex;align-items:center;gap:2px;margin-right:8px}
      .tt-nav a{padding:10px 12px;border-radius:8px;text-decoration:none;font-weight:700;font-size:.9375rem;color:var(--ink)}
      .tt-nav a:hover{background:var(--salt);color:var(--lagoon)}
      .tt-header__cta{display:inline-flex!important;margin-left:8px}
      .tt-menu-btn,.tt-menu{display:none!important}
      #langCode{display:inline}
      .tt-hero{min-height:clamp(560px,76vh,700px)}
      .tt-hero__content{padding:64px 0 150px}
      .tt-tickets{margin-top:-112px}
      .tt-tickets__grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
      .tt-ticket--tours{grid-column:auto}
      .tt-section{padding:84px 0}
      .tt-scroller{grid-auto-flow:row;grid-template-columns:repeat(3,1fr);grid-auto-columns:auto;gap:24px;margin:0;padding:0;overflow:visible}
      .tt-swipe,.tt-dots{display:none}
      .tt-footer__cols{grid-template-columns:repeat(3,1fr)}
      .tt-contact__grid{grid-template-columns:1fr 1.1fr;gap:56px;align-items:start}
      .tt-footer__maps{max-width:480px}
      /* Botões fixos no canto inferior direito, com o número à vista */
      .tt-dock{left:auto;right:24px;bottom:24px;display:flex;gap:10px;padding:0;background:none;border:0;box-shadow:none}
      .tt-dock a{min-height:56px;padding:0 22px;border-radius:999px;box-shadow:0 10px 28px rgba(14,42,51,.28)}
      .tt-dock__book{display:none!important}
      .tt-dock__num{display:inline}
      #floatingIcons{right:24px;bottom:96px}
      .tt-consent{left:24px;right:auto;bottom:24px;max-width:400px;border-radius:var(--r-m);border:1px solid var(--line)}
    }

    @media (prefers-reduced-motion:reduce){
      html{scroll-behavior:auto}
      *,*::before,*::after{transition:none!important;animation:none!important}
    }