/* ==========================================================================
   TAM - Tours & Activities Marketplace
   Corporate site design system. Shared by /en /es /pt-br.
   ========================================================================== */

:root{
  /* Brand */
  --orange:#E4552A;
  --orange-600:#CC4722;
  --orange-700:#B33D1D;
  --orange-050:#FDF1ED;

  /* Neutrals */
  --ink:#0F1115;
  --ink-700:#2B3038;
  --muted:#5B6472;
  --line:#E3E7EC;
  --bg:#FFFFFF;
  --bg-alt:#F7F8FA;
  --bg-dark:#0F1115;

  /* Shape */
  --radius:14px;
  --radius-lg:20px;
  --maxw:1160px;
  --pad:clamp(1.15rem, 4vw, 2rem);

  /* Type */
  --font:"Inter var","Inter",system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
}

*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *{animation-duration:.001ms !important; transition-duration:.001ms !important}
}

body{
  margin:0;
  font-family:var(--font);
  color:var(--ink);
  background:var(--bg);
  font-size:17px;
  line-height:1.62;
  -webkit-font-smoothing:antialiased;
}

img{max-width:100%; display:block}
a{color:var(--orange); text-decoration:none}
a:hover{text-decoration:underline}

:focus-visible{outline:3px solid var(--orange); outline-offset:2px; border-radius:4px}

.wrap{max-width:var(--maxw); margin:0 auto; padding-inline:var(--pad)}
.skip-link{position:absolute; left:-9999px; top:0; background:#fff; padding:.75rem 1.1rem; z-index:200}
.skip-link:focus{left:1rem; top:1rem}

/* ---------- Type scale ---------- */
h1,h2,h3,h4{margin:0; line-height:1.15; letter-spacing:-.02em; font-weight:800}
h1{font-size:clamp(2.15rem, 5.2vw, 3.65rem)}
h2{font-size:clamp(1.7rem, 3.6vw, 2.5rem)}
h3{font-size:1.16rem; letter-spacing:-.01em}
p{margin:0 0 1rem}
.lead{font-size:clamp(1.06rem,1.9vw,1.24rem); color:var(--muted); line-height:1.6}
.eyebrow{
  display:inline-block; font-size:.775rem; font-weight:800; letter-spacing:.14em;
  text-transform:uppercase; color:var(--orange); margin-bottom:1rem;
}
.section-head{max-width:720px; margin-bottom:clamp(2rem,4vw,3rem)}
.section-head.center{margin-inline:auto; text-align:center}
.section-head p{margin-top:.9rem}

/* ---------- Buttons ---------- */
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:.5rem;
  font:inherit; font-weight:700; font-size:1rem; line-height:1;
  padding:.92rem 1.6rem; border-radius:999px; border:1.5px solid transparent;
  cursor:pointer; text-decoration:none; transition:background .16s, color .16s, border-color .16s, transform .12s;
}
.btn:hover{text-decoration:none; transform:translateY(-1px)}
.btn-primary{background:var(--orange); color:#fff}
.btn-primary:hover{background:var(--orange-600)}
.btn-ghost{background:transparent; color:var(--ink); border-color:var(--line)}
.btn-ghost:hover{border-color:var(--ink); background:var(--bg-alt)}
.btn-light{background:#fff; color:var(--ink)}
.btn-light:hover{background:#f1f2f4}
.btn-outline-light{background:transparent; color:#fff; border-color:rgba(255,255,255,.34)}
.btn-outline-light:hover{border-color:#fff; background:rgba(255,255,255,.08)}
.btn-sm{padding:.62rem 1.15rem; font-size:.92rem}
.btn-block{width:100%}

/* ---------- Header ---------- */
.site-header{
  position:sticky; top:0; z-index:100; background:rgba(255,255,255,.92);
  backdrop-filter:saturate(150%) blur(10px); border-bottom:1px solid var(--line);
}
.header-inner{display:flex; align-items:center; gap:1.5rem; min-height:72px}
.brand{display:flex; align-items:center; flex:0 0 auto}
.brand img{height:46px; width:auto}
.brand:hover{text-decoration:none}

.nav{margin-left:auto; display:flex; align-items:center; gap:1.55rem}
.nav a.nav-link{
  color:var(--ink-700); font-size:.95rem; font-weight:600; text-decoration:none; white-space:nowrap;
}
.nav a.nav-link:hover{color:var(--orange); text-decoration:none}

.header-actions{display:flex; align-items:center; gap:.7rem; flex:0 0 auto}

.lang{position:relative}
.lang-btn{
  display:inline-flex; align-items:center; gap:.4rem; font:inherit; font-size:.9rem; font-weight:700;
  background:none; border:1.5px solid var(--line); border-radius:999px; padding:.5rem .85rem;
  color:var(--ink-700); cursor:pointer;
}
.lang-btn:hover{border-color:var(--ink)}
.lang-btn svg{width:13px; height:13px}
.lang-menu{
  position:absolute; right:0; top:calc(100% + .5rem); min-width:172px; background:#fff;
  border:1px solid var(--line); border-radius:12px; box-shadow:0 12px 30px rgba(15,17,21,.12);
  padding:.35rem; display:none;
}
.lang-menu.open{display:block}
.lang-menu a{
  display:block; padding:.55rem .7rem; border-radius:8px; color:var(--ink-700);
  font-size:.93rem; font-weight:600; text-decoration:none;
}
.lang-menu a:hover{background:var(--bg-alt); text-decoration:none}
.lang-menu a[aria-current="true"]{color:var(--orange)}

.nav-toggle{
  display:none; background:none; border:1.5px solid var(--line); border-radius:10px;
  width:42px; height:42px; cursor:pointer; align-items:center; justify-content:center;
}
.nav-toggle span{display:block; width:18px; height:2px; background:var(--ink); position:relative}
.nav-toggle span::before,.nav-toggle span::after{
  content:""; position:absolute; left:0; width:18px; height:2px; background:var(--ink);
}
.nav-toggle span::before{top:-6px}
.nav-toggle span::after{top:6px}

@media (max-width:1000px){
  .nav{
    position:absolute; left:0; right:0; top:100%; flex-direction:column; align-items:stretch;
    gap:0; background:#fff; border-bottom:1px solid var(--line); padding:.5rem var(--pad) 1.1rem; display:none;
  }
  .nav.open{display:flex}
  .nav a.nav-link{padding:.8rem 0; border-bottom:1px solid var(--line)}
  .nav-toggle{display:inline-flex}
  .header-inner{position:relative}
}

/* ---------- Hero ---------- */
.hero{
  position:relative; overflow:hidden;
  background:
    radial-gradient(900px 460px at 88% -10%, var(--orange-050) 0%, rgba(253,241,237,0) 62%),
    linear-gradient(180deg, #fff 0%, var(--bg-alt) 100%);
  border-bottom:1px solid var(--line);
}
.hero-inner{padding:clamp(3.4rem,8vw,6rem) 0 clamp(2.6rem,5vw,4rem); max-width:840px}
.hero h1{margin-bottom:1.35rem}
.hero .lead{max-width:660px; font-size:clamp(1.08rem,2vw,1.3rem)}
.hero-actions{display:flex; flex-wrap:wrap; gap:.8rem; margin-top:2rem}

.trustbar{border-top:1px solid var(--line); background:rgba(255,255,255,.6)}
.trustbar-inner{display:flex; flex-wrap:wrap; align-items:center; gap:.65rem 1.1rem; padding:1.05rem 0}
.trustbar-label{
  font-size:.76rem; font-weight:800; letter-spacing:.12em; text-transform:uppercase; color:var(--muted);
  margin-right:.4rem;
}
.chip{
  display:inline-block; padding:.34rem .8rem; border:1px solid var(--line); border-radius:999px;
  background:#fff; font-size:.86rem; font-weight:700; color:var(--ink-700);
}

/* ---------- Sections ---------- */
section{padding:clamp(3.2rem,7vw,5.5rem) 0}
.section-alt{background:var(--bg-alt); border-block:1px solid var(--line)}
.section-dark{background:var(--bg-dark); color:#fff}
.section-dark h2,.section-dark h3{color:#fff}
.section-dark .lead,.section-dark p{color:#B9C0CB}
.section-dark .eyebrow{color:#FF8A5F}

/* ---------- Grids & cards ---------- */
.grid{display:grid; gap:1.2rem}
.grid-3{grid-template-columns:repeat(3,1fr)}
.grid-2{grid-template-columns:repeat(2,1fr)}
.grid-6{grid-template-columns:repeat(3,1fr)}
@media (max-width:940px){ .grid-3,.grid-6{grid-template-columns:repeat(2,1fr)} }
@media (max-width:700px){ .grid-3,.grid-2,.grid-6{grid-template-columns:1fr} }

.card{
  position:relative;
  background:#fff; border:1px solid var(--line); border-radius:var(--radius-lg);
  padding:1.75rem 1.6rem; transition:border-color .16s, transform .16s;
}
.card:hover{border-color:#C9D0D9; transform:translateY(-2px)}
.card h3{margin-bottom:.6rem}
.card p{color:var(--muted); margin-bottom:0; font-size:.985rem}
.card .card-icon{
  width:44px; height:44px; border-radius:12px; background:var(--orange-050); color:var(--orange);
  display:flex; align-items:center; justify-content:center; margin-bottom:1.1rem;
}
.card .card-icon svg{width:22px; height:22px}
.card-tag{
  display:inline-block; margin-bottom:.85rem; font-size:.72rem; font-weight:800; letter-spacing:.12em;
  text-transform:uppercase; color:var(--orange); background:var(--orange-050);
  padding:.28rem .62rem; border-radius:6px;
}
.card-featured{border-color:var(--orange); box-shadow:0 0 0 1px var(--orange)}
.card-featured .card-tag{position:absolute; top:1.5rem; right:1.5rem; margin:0}

.card .ticklist{margin:1.15rem 0 0}
.card .ticklist li{font-size:.925rem; margin-bottom:.5rem; color:var(--ink-700)}
.card .ticklist li::before{top:.36rem}

/* Capability list used by every service section */
.cap{display:flex; gap:.9rem; align-items:flex-start}
.cap-num{
  flex:0 0 auto; width:30px; height:30px; border-radius:8px; background:var(--orange-050);
  color:var(--orange); display:flex; align-items:center; justify-content:center; font-size:.82rem; font-weight:800;
  border:1px solid rgba(228,85,42,.22);
}
.cap h3{font-size:1.04rem; margin-bottom:.3rem}
.cap p{font-size:.95rem; margin:0; color:var(--muted)}

/* Link from an overview card into that service's own section */
.card-link{margin:1.15rem 0 0}
.card-link a{font-weight:700; font-size:.95rem; display:inline-flex; align-items:center; gap:.35rem}
.card-link a::after{content:"\2192"}

/* Chip strip: endpoints, inclusions, anything enumerable */
.strip{
  margin-top:2.4rem; padding:1.2rem 1.4rem; background:#fff; border:1px solid var(--line);
  border-radius:var(--radius); display:flex; flex-wrap:wrap; align-items:center; gap:.7rem 1.2rem;
}
.strip-label{font-size:.76rem; font-weight:800; letter-spacing:.12em; text-transform:uppercase; color:var(--muted)}
.strip-chips{display:flex; flex-wrap:wrap; gap:.55rem}

/* Numbered "how it works" flow */
.steps{margin-top:2.4rem}
.steps-label{
  display:block; font-size:.76rem; font-weight:800; letter-spacing:.12em; text-transform:uppercase;
  color:var(--muted); margin-bottom:1.1rem;
}
.steps ol{
  list-style:none; counter-reset:step; margin:0; padding:0;
  display:grid; grid-template-columns:repeat(auto-fit,minmax(190px,1fr)); gap:1.2rem;
}
.steps ol li{
  counter-increment:step; position:relative; padding-top:2.9rem; font-size:.97rem; font-weight:600;
  border-top:2px solid var(--line);
}
.steps ol li::before{
  content:counter(step); position:absolute; top:.9rem; left:0; width:26px; height:26px; border-radius:50%;
  background:var(--orange); color:#fff; font-size:.78rem; font-weight:800;
  display:flex; align-items:center; justify-content:center;
}
.section-cta{margin:2.3rem 0 0}

/* ---------- Comparison table ---------- */
.table-scroll{
  overflow-x:auto; margin-top:2.4rem; background:#fff; border:1px solid var(--line);
  border-radius:var(--radius-lg);
}
table.compare{width:100%; border-collapse:collapse; min-width:620px; font-size:.96rem}
table.compare th,table.compare td{padding:.95rem 1.15rem; text-align:left; border-bottom:1px solid var(--line)}
table.compare thead th{
  font-size:.76rem; letter-spacing:.1em; text-transform:uppercase; color:var(--muted); font-weight:800;
  background:var(--bg-alt);
}
table.compare tbody th{font-weight:700; color:var(--ink)}
table.compare td{color:var(--muted)}
table.compare td.yes{color:var(--ink); font-weight:700}
table.compare td.yes::before{content:"\2713\00a0"; color:var(--orange)}
table.compare tr:last-child th,table.compare tr:last-child td{border-bottom:none}
.compare-quote{
  margin-top:1.9rem; font-size:clamp(1.1rem,2.2vw,1.4rem); font-weight:700; color:var(--ink);
  border-left:3px solid var(--orange); padding-left:1.1rem; line-height:1.45;
}

/* ---------- Two-column audience blocks ---------- */
.audience{display:grid; grid-template-columns:repeat(2,1fr); gap:1.2rem}
@media (max-width:860px){ .audience{grid-template-columns:1fr} }
.audience-col{
  background:#fff; border:1px solid var(--line); border-radius:var(--radius-lg);
  padding:clamp(1.7rem,3vw,2.4rem);
}
.audience-col h3{font-size:1.42rem; margin-bottom:.55rem}
.audience-col > p{color:var(--muted)}
.ticklist{list-style:none; margin:1.3rem 0 1.7rem; padding:0}
.ticklist li{position:relative; padding-left:1.85rem; margin-bottom:.72rem; font-size:.985rem}
.ticklist li::before{
  content:""; position:absolute; left:0; top:.42rem; width:18px; height:18px; border-radius:50%;
  background:var(--orange-050);
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23E4552A' stroke-width='3.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'/%3E%3C/svg%3E");
  background-size:12px; background-position:center; background-repeat:no-repeat;
}

/* ---------- Stats ---------- */
.stats{display:grid; grid-template-columns:repeat(4,1fr); gap:1.2rem}
@media (max-width:820px){ .stats{grid-template-columns:repeat(2,1fr)} }
.stat{border-left:3px solid var(--orange); padding-left:1.1rem}
.stat b{display:block; font-size:clamp(1.9rem,4vw,2.6rem); font-weight:800; letter-spacing:-.03em; line-height:1.1}
.stat span{font-size:.94rem; color:var(--muted)}

/* ---------- Experiences ---------- */
.exp-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:1rem}
@media (max-width:900px){ .exp-grid{grid-template-columns:repeat(2,1fr)} }
@media (max-width:560px){ .exp-grid{grid-template-columns:1fr} }
.exp{
  position:relative; border-radius:var(--radius); overflow:hidden; aspect-ratio:4/3;
  border:1px solid var(--line); background:var(--bg-alt);
}
.exp img{width:100%; height:100%; object-fit:cover; transition:transform .4s ease}
.exp:hover img{transform:scale(1.045)}
.exp figcaption{
  position:absolute; left:0; right:0; bottom:0; padding:1.5rem 1.1rem .95rem; color:#fff;
  font-weight:700; font-size:1rem;
  background:linear-gradient(180deg, rgba(15,17,21,0) 0%, rgba(15,17,21,.82) 100%);
}

/* ---------- Entities ---------- */
.entity{
  background:#fff; border:1px solid var(--line); border-radius:var(--radius-lg); padding:1.7rem 1.55rem;
}
.entity-flag{font-size:1.55rem; line-height:1; margin-bottom:.85rem}
.entity h3{font-size:1.02rem; line-height:1.35; margin-bottom:.75rem}
.entity dl{margin:0; font-size:.93rem}
.entity dt{
  font-size:.72rem; font-weight:800; letter-spacing:.1em; text-transform:uppercase; color:var(--muted);
  margin-top:.7rem;
}
.entity dd{margin:.1rem 0 0; font-weight:700; color:var(--ink)}
.mailing{
  margin-top:1.6rem; padding:1.25rem 1.4rem; background:#fff; border:1px solid var(--line);
  border-radius:var(--radius); display:flex; flex-wrap:wrap; gap:.4rem 1.4rem; align-items:baseline;
}
.mailing b{font-size:.76rem; letter-spacing:.11em; text-transform:uppercase; color:var(--muted)}

/* ---------- FAQ ---------- */
.faq-list{max-width:860px; margin:0 auto; border-top:1px solid var(--line)}
.faq-item{border-bottom:1px solid var(--line)}
.faq-item summary{
  cursor:pointer; list-style:none; padding:1.25rem .5rem 1.25rem 0; font-weight:700; font-size:1.05rem;
  display:flex; align-items:center; justify-content:space-between; gap:1rem;
}
.faq-item summary::-webkit-details-marker{display:none}
.faq-item summary::after{
  content:"+"; font-size:1.5rem; font-weight:400; color:var(--orange); line-height:1; flex:0 0 auto;
}
.faq-item[open] summary::after{content:"\2212"}
.faq-item p{color:var(--muted); padding-bottom:1.25rem; margin:0; max-width:74ch}

/* ---------- Contact ---------- */
.contact-grid{display:grid; grid-template-columns:1fr 1.15fr; gap:clamp(1.6rem,4vw,3.4rem); align-items:start}
@media (max-width:880px){ .contact-grid{grid-template-columns:1fr} }
.form-card{
  background:#fff; border:1px solid var(--line); border-radius:var(--radius-lg);
  padding:clamp(1.6rem,3vw,2.3rem);
}
.field{margin-bottom:1.05rem}
.field label{display:block; font-size:.87rem; font-weight:700; margin-bottom:.4rem; color:var(--ink-700)}
.field input,.field select,.field textarea{
  width:100%; font:inherit; font-size:1rem; padding:.78rem .9rem; border-radius:10px;
  border:1.5px solid var(--line); background:#fff; color:var(--ink); transition:border-color .15s;
}
.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--orange); outline:none}
.field textarea{min-height:118px; resize:vertical}
.field-row{display:grid; grid-template-columns:1fr 1fr; gap:1.05rem}
@media (max-width:560px){ .field-row{grid-template-columns:1fr} }
.hp{position:absolute !important; left:-9999px !important; width:1px; height:1px; overflow:hidden}
.form-note{font-size:.83rem; color:var(--muted); margin:.85rem 0 0; line-height:1.5}
.form-status{margin-top:.9rem; font-size:.93rem; font-weight:600; display:none}
.form-status.ok{display:block; color:#137a4a}
.form-status.err{display:block; color:#b3261e}

/* ---------- Footer ---------- */
.site-footer{background:var(--bg-dark); color:#B9C0CB; padding:clamp(3rem,6vw,4.4rem) 0 2rem; font-size:.93rem}
.footer-top{display:grid; grid-template-columns:1.4fr 1fr 1fr; gap:2.2rem; padding-bottom:2.4rem; border-bottom:1px solid rgba(255,255,255,.12)}
@media (max-width:860px){ .footer-top{grid-template-columns:1fr 1fr} }
@media (max-width:560px){ .footer-top{grid-template-columns:1fr} }
.site-footer img.footer-logo{height:40px; width:auto; margin-bottom:1.2rem}
.site-footer h4{
  font-size:.76rem; letter-spacing:.12em; text-transform:uppercase; color:#fff; margin:0 0 .9rem; font-weight:800;
}
.site-footer a{color:#B9C0CB}
.site-footer a:hover{color:#fff}
.footer-nav{list-style:none; margin:0; padding:0}
.footer-nav li{margin-bottom:.55rem}
.legal{padding-top:1.8rem; font-size:.855rem; line-height:1.75; color:#8A93A0}
.legal-entities{display:grid; grid-template-columns:repeat(3,1fr); gap:.4rem 1.8rem; margin-bottom:1.3rem}
@media (max-width:760px){ .legal-entities{grid-template-columns:1fr} }
.legal-entities span{display:block}
.legal-entities b{color:#D6DBE2; font-weight:700}
.footer-bottom{display:flex; flex-wrap:wrap; gap:.5rem 1.3rem; justify-content:space-between; align-items:center}

/* ---------- Modal ---------- */
.modal{
  position:fixed; inset:0; z-index:300; background:rgba(15,17,21,.55); display:none;
  align-items:center; justify-content:center; padding:1.1rem;
}
.modal.open{display:flex}
.modal-card{
  background:#fff; border-radius:var(--radius-lg); width:min(560px,100%); max-height:92vh; overflow-y:auto;
  padding:clamp(1.6rem,3vw,2.2rem); position:relative;
}
.modal-card h2{font-size:1.55rem; margin-bottom:.5rem}
.modal-close{
  position:absolute; top:.85rem; right:.9rem; width:36px; height:36px; border-radius:50%;
  border:1px solid var(--line); background:#fff; font-size:1.25rem; line-height:1; cursor:pointer; color:var(--ink);
}
.modal-close:hover{background:var(--bg-alt)}

/* ---------- Legal pages ---------- */
.legal-page{max-width:820px; margin-inline:auto; padding-block:clamp(2.4rem,5vw,4rem)}
.legal-page h1{font-size:clamp(1.85rem,4vw,2.5rem); margin-bottom:.6rem}
.legal-page .updated{color:var(--muted); font-size:.92rem; margin-bottom:2.4rem}
.legal-page h2{font-size:1.16rem; margin:2.2rem 0 .7rem}
.legal-page p,.legal-page li{color:var(--ink-700); font-size:1rem}
.legal-page ul,.legal-page ol{padding-left:1.25rem}
.legal-page li{margin-bottom:.5rem}
.legal-page .entity-note{
  background:var(--bg-alt); border:1px solid var(--line); border-radius:var(--radius); padding:1.15rem 1.3rem;
  font-size:.95rem;
}
