@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Space+Grotesk:wght@400;500;600;700&display=swap');

:root { --forest:#0b3d2e; --forest-dark:#06291f; --leaf:#2e8b57; --lime:#b8e33d; --sun:#ffd43b; --coral:#ff704d; --coral-dark:#d94d32; --turquoise:#20c9bf; --cream:#fff9ec; --paper:#f4f0e3; --ink:#17261f; --muted:#617168; --white:#fff; --shadow:0 26px 70px rgba(4,39,26,.2); --radius-lg:32px; --radius-md:20px; --ease:cubic-bezier(.22,.61,.36,1); }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; color:var(--ink); background:var(--paper); font-family:'DM Sans','Segoe UI',sans-serif; overflow-x:hidden; }
body.menu-open { overflow:hidden; }
a { color:inherit; text-decoration:none; }
button,select { font:inherit; }
button { cursor:pointer; }
.sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.skip-link { position:fixed; z-index:100; top:12px; left:12px; padding:10px 16px; border-radius:100px; color:var(--forest-dark); background:var(--lime); transform:translateY(-150%); transition:transform 180ms ease; }
.skip-link:focus { transform:translateY(0); }

.site-header { position:absolute; z-index:20; top:0; left:0; width:100%; padding:22px 4.5vw; }
.nav-shell { display:grid; grid-template-columns:1fr auto 1fr; align-items:center; width:min(1320px,100%); min-height:62px; margin:0 auto; padding:8px 10px 8px 18px; color:var(--white); background:rgba(6,41,31,.72); border:1px solid rgba(255,255,255,.2); border-radius:100px; box-shadow:0 16px 40px rgba(0,0,0,.12); backdrop-filter:blur(18px); }
.brand,.nav-actions,.nav-center,.hero-actions,.hero-facts,.detail-row,.sidebar-topline,.button,.text-link,.language-picker,.footer-shell,.footer-brand,.scroll-cue { display:flex; align-items:center; }
.brand { gap:11px; min-width:190px; }
.brand-logo-wrap { display:grid; place-items:center; width:50px; height:50px; overflow:hidden; background:var(--white); border:3px solid rgba(255,255,255,.82); border-radius:50%; box-shadow:0 5px 18px rgba(0,0,0,.2); }
.brand-logo { width:100%; height:100%; object-fit:cover; }
.brand-name { font-family:'Space Grotesk',sans-serif; font-size:14px; font-weight:600; letter-spacing:-.03em; }
.brand-name strong { color:var(--lime); font-weight:700; }.brand-name em { color:var(--sun); font-size:10px; font-style:normal; letter-spacing:.1em; }
.nav-center { justify-content:center; gap:clamp(20px,3vw,48px); }.nav-center a { position:relative; padding:10px 0; color:rgba(255,255,255,.78); font-size:13px; font-weight:600; transition:color 180ms ease; }
.nav-center a::after { position:absolute; right:0; bottom:2px; left:0; height:2px; content:''; background:var(--lime); border-radius:99px; transform:scaleX(0); transition:transform 180ms ease; }
.nav-center a:hover,.nav-center a:focus-visible { color:var(--white); }.nav-center a:hover::after,.nav-center a:focus-visible::after { transform:scaleX(1); }
.nav-actions { justify-content:flex-end; gap:10px; }.language-picker { gap:5px; padding:9px 12px; color:var(--white); border:1px solid rgba(255,255,255,.24); border-radius:100px; }
.language-icon { color:var(--lime); font-size:16px; line-height:1; }.language-picker select { color:inherit; font-size:11px; font-weight:700; background:transparent; border:0; outline:0; cursor:pointer; }.language-picker option { color:var(--ink); }
.native-language-picker { position:relative; display:block; padding:0; border:0; }
.language-trigger { display:flex; align-items:center; gap:8px; min-width:76px; padding:9px 12px; color:var(--white); background:rgba(11,61,46,.68); border:1px solid rgba(255,255,255,.34); border-radius:100px; font:700 11px 'DM Sans',sans-serif; white-space:nowrap; cursor:pointer; transition:background .2s ease,border-color .2s ease,color .2s ease; }
.language-trigger:hover,.language-picker.is-open .language-trigger { color:var(--forest-dark); background:var(--lime); border-color:var(--lime); }
.language-flag { font-size:17px; line-height:1; }.language-chevron { margin-left:auto; font-size:16px; line-height:10px; }
.language-menu { position:absolute; top:calc(100% + 9px); right:0; z-index:20; display:none; width:174px; padding:6px; overflow:hidden; background:var(--white); border:1px solid rgba(6,41,31,.1); border-radius:13px; box-shadow:0 14px 30px rgba(3,33,22,.24); }
.language-picker.is-open .language-menu { display:block; }.language-menu button { display:flex; align-items:center; justify-content:space-between; width:100%; padding:10px 9px; color:var(--ink); background:transparent; border:0; border-radius:8px; font:600 12px 'DM Sans',sans-serif; text-align:left; cursor:pointer; }.language-menu button:hover,.language-menu button:focus-visible { background:#eef5d7; outline:0; }.language-menu small { color:rgba(6,41,31,.48); font-size:10px; }
.brand { min-width:230px; }.brand-logo-wrap { width:68px; height:68px; }.brand-name { font-size:18px; font-weight:700; }.brand-name strong { font-size:20px; }.brand-name em { font-size:12px; }
.language-float { position:fixed; right:25px; bottom:86px; z-index:29; display:none; }.language-float.is-visible { display:block; }.language-float .language-trigger { min-width:0; color:var(--forest-dark); background:var(--lime); border-color:var(--lime); box-shadow:0 8px 20px rgba(3,33,22,.22); }.language-float .language-menu { top:auto; bottom:calc(100% + 9px); }
.nav-cta { padding:12px 19px; color:var(--forest-dark); background:var(--lime); border-radius:100px; font-size:12px; font-weight:700; transition:transform 180ms ease,background 180ms ease; }.nav-cta:hover,.nav-cta:focus-visible { background:var(--sun); transform:translateY(-2px); }
.menu-toggle { display:none; width:42px; height:42px; padding:10px; border:0; border-radius:50%; background:rgba(255,255,255,.12); }.menu-toggle span { display:block; width:19px; height:2px; margin:4px auto; background:var(--white); border-radius:4px; }

.hero { position:relative; display:flex; min-height:max(760px,100svh); overflow:hidden; color:var(--white); isolation:isolate; background-color:var(--forest-dark); background-image:url('src/favela.jpg'); background-attachment:fixed; background-position:center center; background-size:cover; }
.hero-overlay { position:absolute; z-index:-1; inset:0; background:linear-gradient(90deg,rgba(4,28,20,.92) 0%,rgba(4,32,22,.7) 36%,rgba(3,34,24,.24) 70%,rgba(3,33,22,.58) 100%),linear-gradient(0deg,rgba(4,27,18,.7),transparent 45%); }
.hero-glow { position:absolute; z-index:-1; width:500px; height:500px; border-radius:50%; filter:blur(5px); opacity:.25; pointer-events:none; }.hero-glow-one { top:-300px; right:-180px; background:var(--sun); }.hero-glow-two { bottom:-370px; left:-140px; background:var(--turquoise); }
.hero-shell { position:relative; display:grid; grid-template-columns:minmax(0,1.15fr) minmax(280px,.85fr) 220px; align-items:center; gap:20px; width:min(1320px,100%); min-height:760px; margin:0 auto; padding:150px 4.5vw 100px; }
.hero-copy { position:relative; z-index:4; max-width:620px; }.eyebrow,.section-kicker { display:flex; align-items:center; gap:10px; margin:0 0 20px; color:var(--lime); font-size:11px; font-weight:700; letter-spacing:.18em; text-transform:uppercase; }.eyebrow-dot { width:8px; height:8px; background:var(--coral); border-radius:50%; box-shadow:0 0 0 6px rgba(255,112,77,.2); }
 .hero h1,h2,h3,p { margin-top:0; }.hero h1 { max-width:690px; margin-bottom:22px; font-family:'Space Grotesk',sans-serif; font-size:clamp(48px,6vw,86px); font-weight:500; letter-spacing:-.075em; line-height:.96; }.hero h1 span,.hero h1 em,h2 em { color:var(--lime); font-style:normal; }
.hero-description { max-width:460px; margin-bottom:32px; color:rgba(255,255,255,.84); font-size:16px; line-height:1.65; }.hero-actions { gap:24px; flex-wrap:wrap; }.button { justify-content:center; gap:18px; min-height:54px; padding:0 21px 0 24px; border:0; border-radius:100px; font-size:13px; font-weight:700; transition:transform 200ms var(--ease),box-shadow 200ms ease,background 200ms ease; }.button:hover,.button:focus-visible { transform:translateY(-4px); box-shadow:0 16px 28px rgba(0,0,0,.2); }.button-primary { color:var(--forest-dark); background:var(--lime); }.button-primary:hover,.button-primary:focus-visible { background:var(--sun); }.button-light { color:var(--forest-dark); background:var(--white); }.button-dark { color:var(--white); background:var(--forest-dark); }.button-arrow { display:grid; place-items:center; width:28px; height:28px; color:var(--forest-dark); background:var(--white); border-radius:50%; font-size:16px; }.button-light .button-arrow { background:var(--lime); }.button-dark .button-arrow { color:var(--forest-dark); background:var(--lime); }
.text-link { gap:11px; color:var(--white); font-size:13px; font-weight:700; }.text-link span:last-child { color:var(--lime); font-size:18px; transition:transform 180ms ease; }.text-link:hover span:last-child { transform:translateY(4px); }.hero-facts { gap:21px; margin-top:48px; }.hero-fact { display:grid; gap:4px; }.hero-fact strong { font-family:'Space Grotesk',sans-serif; font-size:17px; font-weight:600; }.hero-fact strong small { color:var(--lime); font-family:'DM Sans',sans-serif; font-size:9px; font-weight:700; text-transform:uppercase; }.hero-fact span { color:rgba(255,255,255,.6); font-size:10px; text-transform:uppercase; }.fact-divider { width:1px; height:30px; background:rgba(255,255,255,.25); }

.hero-visual { position:relative; align-self:stretch; min-height:500px; pointer-events:none; }.cristo-halo { position:absolute; top:13%; left:50%; width:clamp(260px,29vw,430px); aspect-ratio:1; border:1px solid rgba(255,212,59,.35); border-radius:50%; box-shadow:0 0 80px rgba(255,212,59,.14),inset 0 0 70px rgba(255,212,59,.1); transform:translateX(-50%); }.cristo-halo::before,.cristo-halo::after { position:absolute; content:''; border:1px solid rgba(184,227,61,.22); border-radius:50%; }.cristo-halo::before { inset:11%; }.cristo-halo::after { inset:-9%; opacity:.5; }
.parallax-cristo { position:absolute; z-index:2; top:52%; left:50%; width:clamp(330px,39vw,570px); max-width:none; filter:drop-shadow(0 22px 18px rgba(0,0,0,.32)); transform:translate3d(-50%,calc(-50% - var(--cristo-shift,0px)),0); will-change:transform; }.visual-stamp { position:absolute; z-index:3; right:1%; bottom:17%; display:grid; place-items:center; width:90px; height:90px; padding:10px; color:var(--forest-dark); background:var(--sun); border:6px solid var(--forest); border-radius:50%; font-size:7px; font-weight:700; line-height:1; text-align:center; transform:rotate(12deg); }.visual-stamp strong { font-family:'Space Grotesk',sans-serif; font-size:23px; line-height:.7; }.visual-stamp span { letter-spacing:.13em; }
.hero-sidebar { position:relative; z-index:4; align-self:center; max-width:220px; padding:28px 24px 25px; overflow:hidden; color:var(--forest-dark); background:linear-gradient(150deg,var(--lime),#68d585); border-radius:22px 22px 22px 4px; box-shadow:var(--shadow); }.sidebar-topline { gap:8px; color:rgba(6,41,31,.66); font-size:9px; font-weight:700; letter-spacing:.1em; text-transform:uppercase; }.sidebar-topline span:first-child { width:7px; height:7px; background:var(--coral); border-radius:50%; }.sidebar-number { margin:39px 0 8px; color:rgba(6,41,31,.5); font-family:'Space Grotesk',sans-serif; font-size:12px; }.hero-sidebar h2 { margin-bottom:13px; font-family:'Space Grotesk',sans-serif; font-size:23px; letter-spacing:-.07em; line-height:1.02; }.hero-sidebar>p:not(.sidebar-number) { margin-bottom:25px; color:rgba(6,41,31,.74); font-size:12px; line-height:1.5; }.sidebar-link { display:flex; justify-content:space-between; align-items:center; padding-top:14px; border-top:1px solid rgba(6,41,31,.25); font-size:11px; font-weight:700; }.sidebar-link span:last-child { font-size:17px; }.sidebar-leaf { position:absolute; right:-5px; bottom:-17px; color:rgba(255,255,255,.4); font-size:80px; transform:rotate(-25deg); }.scroll-cue { position:absolute; z-index:5; bottom:25px; left:4.5vw; gap:13px; color:rgba(255,255,255,.7); font-size:9px; font-weight:700; letter-spacing:.18em; text-transform:uppercase; }.scroll-line { position:relative; display:inline-block; width:44px; height:1px; overflow:hidden; background:rgba(255,255,255,.5); }.scroll-line::after { position:absolute; top:0; left:0; width:16px; height:1px; content:''; background:var(--lime); animation:scrollLine 2s infinite ease-in-out; } @keyframes scrollLine { 0%,100%{transform:translateX(-18px)} 50%{transform:translateX(44px)} }

.section-padding { padding:128px 4.5vw; }.section-shell { width:min(1120px,100%); margin:0 auto; }.experience-section { position:relative; overflow:hidden; background:var(--cream); }.experience-section::after { position:absolute; right:-130px; bottom:-160px; width:350px; height:350px; content:''; border:1px solid rgba(46,139,87,.16); border-radius:50%; box-shadow:0 0 0 34px rgba(46,139,87,.04),0 0 0 70px rgba(46,139,87,.03); }.section-heading { display:inline-block; vertical-align:top; width:47%; }.section-kicker { margin-bottom:24px; color:var(--leaf); }.section-kicker span:first-child { color:var(--coral); }.section-kicker span:last-child { letter-spacing:.16em; }.section-heading h2,.booking-copy h2 { margin-bottom:0; font-family:'Space Grotesk',sans-serif; font-size:clamp(44px,5vw,72px); font-weight:500; letter-spacing:-.075em; line-height:.94; }.experience-intro { display:inline-flex; justify-content:space-between; align-items:flex-end; width:52%; max-width:530px; padding-bottom:5px; }.experience-intro p { max-width:390px; margin-bottom:0; color:var(--muted); font-size:15px; line-height:1.7; }.round-link { display:grid; flex:0 0 auto; place-items:center; width:56px; height:56px; margin-left:20px; color:var(--white); background:var(--forest); border-radius:50%; font-size:25px; transition:transform 180ms ease,background 180ms ease; }.round-link:hover { background:var(--coral); transform:rotate(-45deg); }
.experience-cards { display:grid; grid-template-columns:repeat(3,1fr); gap:18px; margin-top:70px; }.experience-card { position:relative; min-height:260px; padding:26px; overflow:hidden; border-radius:var(--radius-md); transition:transform 220ms var(--ease); }.experience-card:hover { transform:translateY(-8px) rotate(-1deg); }.card-green { color:var(--white); background:var(--forest); }.card-yellow { color:var(--forest-dark); background:var(--sun); }.card-coral { color:var(--white); background:var(--coral); }.card-icon { position:absolute; top:22px; right:24px; font-size:32px; font-weight:300; }.card-number { margin:0 0 52px; font-size:11px; font-weight:700; opacity:.55; }.experience-card h3 { margin-bottom:10px; font-family:'Space Grotesk',sans-serif; font-size:26px; letter-spacing:-.06em; }.experience-card>p:last-child { max-width:245px; margin-bottom:0; font-size:13px; line-height:1.55; opacity:.76; }

.tour-section { position:relative; overflow:hidden; color:var(--white); background:var(--forest); }.tour-section::before { position:absolute; top:-180px; right:5%; width:540px; height:540px; content:''; border:1px solid rgba(184,227,61,.16); border-radius:50%; box-shadow:0 0 0 45px rgba(184,227,61,.04),0 0 0 90px rgba(184,227,61,.02); }.tour-pattern { position:absolute; inset:0; opacity:.07; background-image:linear-gradient(135deg,transparent 24%,var(--lime) 25%,var(--lime) 26%,transparent 27%,transparent 74%,var(--lime) 75%,var(--lime) 76%,transparent 77%); background-size:70px 70px; mask-image:linear-gradient(90deg,transparent,black 25%,black 70%,transparent); }.tour-grid { position:relative; display:grid; grid-template-columns:1fr 1fr; gap:clamp(50px,9vw,130px); align-items:center; }.section-kicker.light { color:var(--lime); }.tour-heading h2 { margin-bottom:25px; font-family:'Space Grotesk',sans-serif; font-size:clamp(45px,5vw,71px); font-weight:500; letter-spacing:-.08em; line-height:.94; }.tour-lead { max-width:390px; margin-bottom:35px; color:rgba(255,255,255,.68); font-size:15px; line-height:1.65; }.price-block { display:flex; flex-wrap:wrap; align-items:baseline; gap:6px 11px; max-width:320px; margin-bottom:30px; }.price-block>span:first-child { width:100%; color:rgba(255,255,255,.55); font-size:12px; }.price-block strong { color:var(--lime); font-family:'Space Grotesk',sans-serif; font-size:53px; letter-spacing:-.08em; line-height:.9; }.price-block sup { font-size:22px; letter-spacing:-.06em; }.price-block>span:last-child { color:rgba(255,255,255,.6); font-size:12px; }.tour-details { padding:34px; background:rgba(255,255,255,.09); border:1px solid rgba(255,255,255,.17); border-radius:var(--radius-lg); backdrop-filter:blur(15px); }.detail-row { gap:18px; padding:19px 0; border-bottom:1px solid rgba(255,255,255,.16); }.detail-row:first-child { padding-top:0; }.detail-icon { display:grid; flex:0 0 auto; place-items:center; width:43px; height:43px; color:var(--forest-dark); background:var(--lime); border-radius:50%; font-size:22px; }.detail-row>div { display:grid; gap:5px; }.detail-label { color:rgba(255,255,255,.52); font-size:10px; font-weight:700; letter-spacing:.12em; text-transform:uppercase; }.detail-row strong { font-size:14px; line-height:1.4; }.detail-row strong i { color:var(--lime); font-style:normal; }.included-box { margin-top:25px; padding:19px; background:rgba(184,227,61,.11); border-radius:15px; }.included-box ul { display:grid; grid-template-columns:1fr 1fr; gap:12px; margin:17px 0 0; padding:0; list-style:none; }.included-box li { display:flex; gap:8px; color:rgba(255,255,255,.83); font-size:12px; line-height:1.4; }.included-box li::before { flex:0 0 auto; content:'✓'; color:var(--lime); font-weight:700; }

.faq-section { background:var(--cream); }
.faq-shell { display:grid; grid-template-columns:minmax(240px,.8fr) minmax(0,1.2fr); gap:clamp(40px,8vw,100px); align-items:start; }
.faq-heading { position:sticky; top:120px; }
.faq-heading h2 { margin:0 0 20px; font-family:'Space Grotesk',sans-serif; font-size:clamp(42px,5vw,64px); font-weight:500; letter-spacing:-.075em; line-height:.96; }
.faq-heading h2 em { color:var(--coral); font-style:normal; }
.faq-intro { max-width:360px; margin:0; color:var(--muted); font-size:15px; line-height:1.65; }
.faq-list { display:grid; gap:12px; }
.faq-item { padding:0 22px; background:var(--white); border:1px solid rgba(6,41,31,.09); border-radius:16px; box-shadow:0 8px 24px rgba(4,39,26,.045); }
.faq-item summary { position:relative; padding:20px 38px 20px 0; color:var(--forest-dark); font-size:15px; font-weight:700; line-height:1.45; list-style:none; cursor:pointer; }
.faq-item summary::-webkit-details-marker { display:none; }
.faq-item summary::after { position:absolute; top:50%; right:0; color:var(--coral); content:'+'; font-size:25px; font-weight:400; transform:translateY(-52%); }
.faq-item[open] summary::after { content:'−'; }
.faq-item p { max-width:700px; margin:0; padding:0 38px 20px 0; color:var(--muted); font-size:14px; line-height:1.7; }
@media (max-width:760px) { .faq-shell { display:block; }.faq-heading { position:static; margin-bottom:32px; }.faq-item { padding-right:17px; padding-left:17px; }.faq-item summary { font-size:14px; } }

.booking-section { background:var(--paper); }.booking-shell { position:relative; display:flex; justify-content:space-between; align-items:center; min-height:260px; gap:45px; padding:50px clamp(30px,6vw,90px); overflow:hidden; color:var(--forest-dark); background:var(--lime); border-radius:var(--radius-lg); }.booking-sun { position:absolute; right:26%; bottom:-210px; width:400px; height:400px; border:2px solid rgba(6,41,31,.14); border-radius:50%; box-shadow:0 0 0 25px rgba(6,41,31,.04),0 0 0 58px rgba(6,41,31,.04),0 0 0 92px rgba(6,41,31,.03); }.booking-copy { position:relative; z-index:1; }.booking-copy .section-kicker { margin-bottom:16px; color:var(--forest); }.booking-copy .section-kicker span:first-child { color:var(--coral-dark); }.booking-copy h2 { font-size:clamp(40px,5vw,64px); }.booking-copy p:last-child { max-width:430px; margin:20px 0 0; color:rgba(6,41,31,.72); font-size:14px; line-height:1.5; }.booking-shell>.button { position:relative; z-index:1; flex-shrink:0; }
.site-footer { padding:27px 4.5vw; color:rgba(255,255,255,.7); background:var(--forest-dark); }.footer-shell { justify-content:space-between; width:min(1120px,100%); margin:0 auto; gap:20px; }.footer-brand { gap:5px; color:var(--white); font-family:'Space Grotesk',sans-serif; font-size:17px; font-weight:600; }.footer-brand span { color:var(--lime); }.footer-brand b { color:var(--sun); font-size:10px; }.footer-shell p,.footer-shell>a:last-child { margin:0; font-size:11px; }.footer-shell>a:last-child { color:var(--lime); font-weight:700; }.footer-shell>a:last-child span { display:inline-block; margin-left:5px; color:var(--white); transition:transform 180ms ease; }.footer-shell>a:last-child:hover span { transform:translate(3px,-3px); }
.whatsapp-float { position:fixed; z-index:30; right:25px; bottom:24px; display:flex; align-items:center; gap:11px; padding:12px 17px 12px 12px; color:var(--white); background:#129b59; border:3px solid rgba(255,255,255,.85); border-radius:100px; box-shadow:0 12px 35px rgba(3,33,22,.28); font-size:12px; font-weight:700; transition:transform 180ms ease,background 180ms ease; }.whatsapp-float:hover,.whatsapp-float:focus-visible { background:#0d7e48; transform:translateY(-4px); }.whatsapp-symbol { display:grid; place-items:center; width:30px; height:30px; color:var(--white); background:#25d366; border-radius:50%; line-height:1; }.whatsapp-symbol svg { width:21px; height:21px; fill:none; stroke:currentColor; stroke-width:1.75; stroke-linecap:round; stroke-linejoin:round; }.whatsapp-pulse { position:absolute; inset:-5px; z-index:-1; border:1px solid rgba(184,227,61,.7); border-radius:100px; animation:pulse 2.4s infinite; } @keyframes pulse { 0%,100%{opacity:.7;transform:scale(.96)} 50%{opacity:0;transform:scale(1.12)} }
.reveal { opacity:0; transform:translateY(26px); transition:opacity 700ms var(--ease),transform 700ms var(--ease); }.reveal.is-visible { opacity:1; transform:translateY(0); }

@media (max-width:1080px) { .nav-shell { grid-template-columns:1fr auto; }.nav-center { display:none; position:absolute; top:83px; right:4.5vw; left:4.5vw; flex-direction:column; gap:2px; align-items:stretch; padding:14px 20px; background:rgba(6,41,31,.96); border:1px solid rgba(255,255,255,.16); border-radius:20px; box-shadow:var(--shadow); backdrop-filter:blur(18px); }.nav-center.is-open { display:flex; }.nav-center a { padding:13px 0; border-bottom:1px solid rgba(255,255,255,.1); }.nav-center a:last-child { border:0; }.nav-center a::after { display:none; }.menu-toggle { display:block; }.hero-shell { grid-template-columns:minmax(0,1.1fr) minmax(230px,.9fr); }.hero-sidebar { position:absolute; right:4.5vw; bottom:100px; max-width:200px; } }
@media (max-width:760px) { .site-header { padding:13px 16px; }.nav-shell { padding-left:10px; }.brand { min-width:auto; }.brand-logo-wrap { width:43px; height:43px; }.brand-name { font-size:12px; }.nav-cta { display:none; }.language-picker { padding:8px 10px; }.hero { min-height:850px; background-attachment:scroll; background-position:58% center; }.hero-overlay { background:linear-gradient(180deg,rgba(4,28,20,.88) 0%,rgba(4,32,22,.62) 46%,rgba(4,27,18,.92) 100%); }.hero-shell { display:block; min-height:850px; padding:150px 22px 110px; }.hero-copy { max-width:100%; }.hero h1 { max-width:390px; font-size:clamp(48px,14vw,67px); }.hero-description { max-width:380px; font-size:14px; }.hero-actions { gap:18px; }.button { min-height:50px; padding-left:19px; font-size:12px; }.hero-facts { position:absolute; right:22px; bottom:88px; left:22px; justify-content:space-between; gap:8px; margin-top:0; }.hero-fact strong { font-size:14px; }.hero-fact span { font-size:8px; }.fact-divider { height:24px; }.hero-visual { position:absolute; top:285px; right:-32px; left:145px; min-height:360px; opacity:.9; }.cristo-halo { top:5%; width:290px; }.parallax-cristo { top:50%; width:365px; }.visual-stamp { right:9%; bottom:5%; width:68px; height:68px; border-width:4px; font-size:5px; }.visual-stamp strong { font-size:17px; }.hero-sidebar { display:none; }.scroll-cue { bottom:35px; left:22px; }.section-padding { padding:84px 22px; }.section-heading,.experience-intro { display:block; width:100%; }.section-heading h2,.tour-heading h2,.booking-copy h2 { font-size:clamp(44px,13vw,60px); }.experience-intro { margin-top:25px; }.experience-intro p { font-size:14px; }.round-link { margin:22px 0 0; }.experience-cards { grid-template-columns:1fr; gap:12px; margin-top:45px; }.experience-card { min-height:210px; }.card-number { margin-bottom:37px; }.tour-grid { grid-template-columns:1fr; gap:50px; }.tour-details { padding:25px 20px; }.included-box ul { grid-template-columns:1fr; }.booking-shell { display:block; padding:40px 25px; }.booking-shell>.button { margin-top:30px; }.footer-shell { flex-wrap:wrap; }.footer-shell p { order:3; width:100%; }.whatsapp-float { right:15px; bottom:15px; padding:8px 12px 8px 8px; }.whatsapp-label { font-size:11px; } }
@media (max-width:390px) { .brand-name { display:block; font-size:12px; }.brand-name strong { font-size:14px; }.hero h1 { font-size:45px; }.hero-visual { left:110px; }.hero-fact strong { font-size:12px; }.hero-fact span { font-size:7px; }.fact-divider { height:18px; }.whatsapp-label { display:none; }.whatsapp-float { width:49px; height:49px; justify-content:center; padding:6px; } }
@media (max-width:760px) { .brand { min-width:auto; }.brand-logo-wrap { width:56px; height:56px; }.brand-name { font-size:15px; }.brand-name strong { font-size:17px; }.brand-name em { font-size:10px; }.nav-actions { gap:7px; }.native-language-picker .language-trigger { min-width:70px; padding:8px 9px; }.language-float { right:15px; bottom:78px; } }
@media (prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } *,*::before,*::after { animation-duration:.01ms!important; animation-iteration-count:1!important; transition-duration:.01ms!important; } .reveal { opacity:1; transform:none; } }
 .experience-gallery-section { padding:118px 4.5vw 136px; color:var(--ink); background:var(--cream); }
 .gallery-heading { display:flex; align-items:flex-end; justify-content:space-between; gap:50px; width:min(1120px,100%); margin:0 auto 58px; }.gallery-heading h2 { margin-top:18px; font-family:'Space Grotesk',sans-serif; font-size:clamp(48px,6vw,78px); letter-spacing:-.07em; line-height:.93; }.gallery-heading h2 em { color:var(--coral); font-style:normal; }.gallery-intro { max-width:305px; margin:0 7% 5px 0; color:var(--muted); font-size:15px; line-height:1.65; }
 .tour-gallery { display:grid; grid-template-columns:1.02fr 1.26fr .82fr; grid-template-rows:260px 210px 300px; grid-auto-rows:300px; gap:14px; width:min(1120px,100%); margin:0 auto; }.gallery-card { position:relative; min-height:0; margin:0; overflow:hidden; background:var(--forest); border-radius:22px; box-shadow:0 18px 35px rgba(4,39,26,.12); }.gallery-card img { width:100%; height:100%; display:block; object-fit:cover; object-position:center; transition:transform .6s var(--ease); }.gallery-card:hover img { transform:scale(1.055); }.gallery-card::after { position:absolute; inset:0; content:''; pointer-events:none; background:linear-gradient(180deg,transparent 48%,rgba(3,26,18,.8) 100%); }.gallery-card figcaption { position:absolute; right:17px; bottom:16px; left:17px; z-index:1; display:flex; align-items:end; justify-content:space-between; color:var(--white); }.gallery-card figcaption small { font-size:11px; font-weight:600; }.gallery-card figcaption strong { color:var(--lime); font-family:'Space Grotesk',sans-serif; font-size:19px; }.gallery-card-tall { grid-row:span 2; }.gallery-card-wide { grid-column:span 2; }.gallery-card-offset { grid-column:3; grid-row:2 / span 2; }.gallery-card-last { grid-column:1 / span 2; grid-row:3; }
 .gallery-foot { display:flex; align-items:center; justify-content:space-between; width:min(1120px,100%); margin:25px auto 0; color:var(--muted); font-size:11px; text-transform:uppercase; letter-spacing:.12em; }.gallery-foot .text-link { margin:0; color:var(--coral); font-size:12px; text-transform:none; letter-spacing:0; }
 @media (max-width:760px) { .experience-gallery-section { padding:84px 22px 92px; }.gallery-heading { display:block; margin-bottom:38px; }.gallery-intro { max-width:330px; margin:26px 0 0; font-size:14px; }.tour-gallery { grid-template-columns:1fr 1fr; grid-template-rows:255px 185px 255px 185px; grid-auto-rows:185px; gap:10px; }.gallery-card { border-radius:15px; }.gallery-card-tall { grid-column:1; grid-row:span 2; }.gallery-card-wide { grid-column:2; grid-row:1; }.gallery-card-square { grid-column:2; grid-row:2; }.gallery-card-offset { grid-column:1 / span 2; grid-row:3; }.gallery-card-last { grid-column:1 / span 2; grid-row:4; }.gallery-foot { display:block; margin-top:22px; line-height:1.8; }.gallery-foot .text-link { display:block; width:max-content; margin-top:9px; } }
/* Compact real-photo presentation */
.experience-gallery-section { padding:88px 4.5vw 92px; }
.gallery-heading { margin-bottom:36px; }
.gallery-heading h2 { font-size:clamp(42px,5vw,64px); }
.gallery-intro { max-width:360px; margin-right:4%; }
.tour-gallery { display:flex; gap:14px; width:min(1120px,100%); padding:3px 2px 15px; margin:0 auto; overflow-x:auto; overscroll-behavior-inline:contain; scroll-snap-type:x proximity; scrollbar-color:var(--leaf) transparent; scrollbar-width:thin; }
.tour-gallery .gallery-card,.tour-gallery .gallery-card-tall,.tour-gallery .gallery-card-wide,.tour-gallery .gallery-card-square,.tour-gallery .gallery-card-offset,.tour-gallery .gallery-card-last { flex:0 0 188px; grid-column:auto; grid-row:auto; height:238px; border-radius:18px; scroll-snap-align:start; }
.tour-gallery .gallery-card:nth-child(1),.tour-gallery .gallery-card:nth-child(4) { flex-basis:220px; }
.tour-gallery .gallery-card img { object-fit:contain; background:#dfe9d6; }
.gallery-foot { margin-top:17px; }
@media (max-width:760px) { .experience-gallery-section { padding:68px 22px 72px; }.gallery-heading { margin-bottom:28px; }.gallery-intro { margin-top:20px; }.tour-gallery { gap:10px; padding-bottom:12px; margin-right:-22px; }.tour-gallery .gallery-card,.tour-gallery .gallery-card-tall,.tour-gallery .gallery-card-wide,.tour-gallery .gallery-card-square,.tour-gallery .gallery-card-offset,.tour-gallery .gallery-card-last { flex-basis:142px; height:190px; border-radius:14px; }.tour-gallery .gallery-card:nth-child(1),.tour-gallery .gallery-card:nth-child(4) { flex-basis:165px; } }
/* Keep the hero as the first visual section */
main { display:flex; flex-direction:column; }
main > .hero { order:-1; }
/* Immersive photo story */
.tour-gallery { display:block; width:min(1120px,100%); overflow:visible; padding:0; }
.gallery-featured { display:grid; grid-template-columns:1.38fr .62fr; gap:14px; height:430px; }
.gallery-photo { position:relative; overflow:hidden; margin:0; background:#dfe9d6; border-radius:24px; box-shadow:0 20px 42px rgba(4,39,26,.14); }
.gallery-photo-button { position:absolute; inset:0; width:100%; height:100%; padding:0; border:0; background:transparent; cursor:zoom-in; }
.gallery-photo img { width:100%; height:100%; display:block; object-fit:cover; object-position:center; transition:transform .7s var(--ease),filter .4s ease; }.gallery-photo:hover img { transform:scale(1.04); filter:saturate(1.08); }
.gallery-photo-main img { object-position:center 42%; }.gallery-photo-side img { object-position:center 42%; }
.gallery-photo::after { position:absolute; inset:0; content:''; pointer-events:none; background:linear-gradient(180deg,transparent 45%,rgba(3,26,18,.78) 100%); }
.gallery-photo figcaption { position:absolute; right:20px; bottom:18px; left:20px; z-index:1; display:flex; align-items:end; justify-content:space-between; color:var(--white); }.gallery-photo figcaption span { font-size:13px; font-weight:600; }.gallery-photo figcaption b { color:var(--lime); font:600 22px 'Space Grotesk',sans-serif; }
.gallery-reel-wrap { position:relative; margin-top:18px; padding:0 45px 17px; }.gallery-reel { display:flex; gap:11px; overflow-x:auto; scroll-behavior:smooth; scroll-snap-type:x mandatory; scrollbar-width:none; }.gallery-reel::-webkit-scrollbar { display:none; }.gallery-photo-thumb { flex:0 0 124px; height:155px; border-radius:14px; scroll-snap-align:start; }.gallery-photo-thumb img { object-position:center; }.gallery-photo-thumb figcaption { right:11px; bottom:10px; left:11px; }.gallery-photo-thumb figcaption span { font-size:10px; }.gallery-photo-thumb figcaption b { font-size:14px; }
.gallery-arrow { position:absolute; top:calc(50% - 20px); z-index:2; display:grid; place-items:center; width:37px; height:37px; color:var(--forest-dark); background:var(--lime); border:0; border-radius:50%; font-size:21px; transition:transform .2s,background .2s; }.gallery-arrow:hover { background:var(--sun); transform:scale(1.08); }.gallery-arrow-prev { left:0; }.gallery-arrow-next { right:0; }.gallery-progress { position:absolute; right:45px; bottom:0; left:45px; height:2px; background:rgba(11,61,46,.15); }.gallery-progress-bar { display:block; width:20%; height:100%; background:var(--coral); transition:width .2s ease; }
.gallery-lightbox { position:fixed; inset:0; z-index:100; display:grid; place-items:center; padding:30px; visibility:hidden; opacity:0; transition:opacity .25s,visibility .25s; }.gallery-lightbox.is-open { visibility:visible; opacity:1; }.gallery-lightbox-backdrop { position:absolute; inset:0; background:rgba(3,22,15,.9); backdrop-filter:blur(8px); }.gallery-lightbox-content { position:relative; z-index:1; display:flex; align-items:center; flex-direction:column; max-width:min(90vw,700px); max-height:90vh; }.gallery-lightbox-content img { max-width:100%; max-height:78vh; border-radius:15px; object-fit:contain; box-shadow:0 22px 50px rgba(0,0,0,.4); }.gallery-lightbox-content p { margin:14px 0 0; color:var(--white); font-size:13px; }.gallery-lightbox-close { position:absolute; top:-14px; right:-14px; z-index:2; width:36px; height:36px; color:var(--forest-dark); background:var(--lime); border:0; border-radius:50%; font-size:25px; line-height:1; }
body.lightbox-open { overflow:hidden; }
@media (max-width:760px) { .gallery-featured { grid-template-columns:1.12fr .88fr; gap:9px; height:270px; }.gallery-photo { border-radius:16px; }.gallery-photo figcaption { right:12px; bottom:11px; left:12px; }.gallery-photo figcaption span { max-width:110px; font-size:10px; }.gallery-photo figcaption b { font-size:16px; }.gallery-reel-wrap { margin-top:11px; padding:0 35px 14px; }.gallery-photo-thumb { flex-basis:105px; height:132px; border-radius:12px; }.gallery-arrow { width:30px; height:30px; font-size:17px; }.gallery-progress { right:35px; left:35px; }.gallery-lightbox { padding:20px; }.gallery-lightbox-content img { max-height:72vh; } }
/* Three priority photos on the opening stage */
.gallery-featured { grid-template-columns:1.12fr .78fr .78fr; }
.gallery-photo-main img { object-position:center; }.gallery-photo-side img,.gallery-photo-third img { object-position:center; }
@media (max-width:760px) { .gallery-featured { grid-template-columns:1.1fr .9fr; grid-template-rows:135px 135px; height:279px; }.gallery-photo-main { grid-row:span 2; }.gallery-photo-side,.gallery-photo-third { grid-column:2; } }
/* The gallery label is descriptive; it does not need a section counter. */
.experience-gallery-section .section-kicker span:first-child { display:none; }
/* Conversion section: why choose Rocinha Tour */
.why-shell { position:relative; }.why-heading { display:grid; grid-template-columns:1fr 1fr; column-gap:70px; align-items:end; margin-bottom:52px; }.why-heading .section-kicker { grid-column:1 / -1; }.why-heading h2 { font-family:'Space Grotesk',sans-serif; font-size:clamp(45px,5vw,72px); font-weight:500; letter-spacing:-.075em; line-height:.94; }.why-heading h2 em { color:var(--leaf); font-style:normal; }.why-lead { max-width:365px; margin:0 0 5px; color:var(--muted); font-size:15px; line-height:1.7; }.why-content { display:grid; grid-template-columns:1fr .78fr; gap:30px; align-items:stretch; }.why-reasons { display:grid; grid-template-columns:repeat(3,1fr); gap:12px; }.why-card { position:relative; min-height:260px; padding:23px; overflow:hidden; border-radius:20px; }.why-card-green { color:var(--white); background:var(--forest); }.why-card-yellow { color:var(--forest-dark); background:var(--sun); }.why-card-turquoise { color:var(--forest-dark); background:var(--turquoise); }.why-number { display:block; font:600 11px 'Space Grotesk',sans-serif; opacity:.5; }.why-icon { position:absolute; top:20px; right:21px; font-size:25px; }.why-card h3 { margin:72px 0 12px; font-family:'Space Grotesk',sans-serif; font-size:20px; letter-spacing:-.045em; }.why-card p { max-width:165px; margin:0; font-size:12px; line-height:1.55; opacity:.75; }.instagram-contact { display:flex; align-items:center; gap:16px; min-height:100%; padding:26px; color:var(--white); background:var(--leaf); border-radius:20px; transition:transform .2s,background .2s; }.instagram-contact:hover { background:#25794b; transform:translateY(-4px); }.instagram-mark { display:grid; flex:0 0 auto; place-items:center; width:49px; height:49px; color:var(--leaf); background:var(--white); border:4px solid rgba(255,255,255,.35); border-radius:15px; font-size:29px; }.instagram-contact div { display:grid; gap:6px; }.instagram-contact small { color:rgba(255,255,255,.72); font-size:10px; line-height:1.3; }.instagram-contact strong { font-family:'Space Grotesk',sans-serif; font-size:16px; }.instagram-arrow { margin-left:auto; align-self:flex-start; color:var(--lime); font-size:22px; }
@media (max-width:760px) { .why-heading { display:block; margin-bottom:35px; }.why-lead { margin-top:24px; font-size:14px; }.why-content { display:block; }.why-reasons { grid-template-columns:1fr; gap:10px; }.why-card { min-height:178px; padding:20px; }.why-card h3 { margin:45px 0 8px; }.why-card p { max-width:280px; }.instagram-contact { min-height:125px; margin-top:10px; padding:20px; }.instagram-contact strong { font-size:14px; } }
/* Authority and conversion section */
.experience-section { position:relative; overflow:hidden; color:var(--forest-dark); background:var(--lime); }
.authority-shell { position:relative; z-index:1; }.authority-orb { position:absolute; border:1px solid rgba(6,41,31,.14); border-radius:50%; pointer-events:none; }.authority-orb-one { right:-120px; top:90px; width:420px; height:420px; box-shadow:0 0 0 32px rgba(255,255,255,.08),0 0 0 67px rgba(255,255,255,.06); }.authority-orb-two { bottom:-220px; left:-160px; width:480px; height:480px; border-color:rgba(32,201,191,.26); }
.authority-header { display:grid; grid-template-columns:1.15fr .85fr; align-items:end; gap:70px; margin-bottom:55px; }.authority-kicker { color:var(--forest); }.authority-kicker span:first-child { color:var(--forest); }.authority-header h2 { color:var(--forest-dark); font-family:'Space Grotesk',sans-serif; font-size:clamp(52px,6.4vw,92px); font-weight:600; letter-spacing:-.085em; line-height:.86; }.authority-header h2 em { color:var(--turquoise); font-style:normal; }.authority-answer { max-width:380px; margin:0 0 7px; color:rgba(6,41,31,.76); font-size:18px; line-height:1.55; }
.authority-cards { display:grid; grid-template-columns:repeat(3,1fr); gap:15px; }.authority-card { position:relative; min-height:330px; padding:28px; overflow:hidden; border-radius:24px; box-shadow:0 20px 34px rgba(6,41,31,.12); transform:translateY(0); transition:transform .28s var(--ease),box-shadow .28s ease; }.authority-card:hover { transform:translateY(-12px) rotate(-1deg); box-shadow:0 30px 44px rgba(6,41,31,.2); }.authority-card-main { color:var(--white); background:var(--forest); }.authority-card-sun { color:var(--forest-dark); background:var(--sun); }.authority-card-water { color:var(--white); background:var(--turquoise); }.authority-card-number { font:600 12px 'Space Grotesk',sans-serif; opacity:.55; }.authority-card-icon { position:absolute; top:24px; right:27px; font-size:31px; transition:transform .3s ease; }.authority-card:hover .authority-card-icon { transform:rotate(18deg) scale(1.18); }.authority-card-copy { position:absolute; right:28px; bottom:29px; left:28px; }.authority-card h3 { margin:0 0 14px; font-family:'Space Grotesk',sans-serif; font-size:30px; letter-spacing:-.065em; line-height:.92; }.authority-card h3 em { color:var(--lime); font-style:normal; }.authority-card-sun h3 em,.authority-card-water h3 em { color:var(--forest); }.authority-card p { max-width:245px; margin:0; font-size:14px; line-height:1.5; opacity:.77; }.authority-card-line { position:absolute; right:28px; bottom:21px; left:28px; height:2px; background:currentColor; opacity:.18; transform:scaleX(.22); transform-origin:left; transition:transform .35s ease; }.authority-card:hover .authority-card-line { transform:scaleX(1); }
.authority-proof { display:flex; align-items:center; gap:17px; margin-top:22px; padding:20px 24px; color:var(--white); background:var(--forest); border-radius:18px; }.authority-proof-mark { display:grid; place-items:center; width:48px; height:48px; color:var(--forest-dark); background:var(--lime); border-radius:50%; font:700 15px 'Space Grotesk',sans-serif; }.authority-proof div:nth-child(2) { display:grid; gap:4px; }.authority-proof strong { font-family:'Space Grotesk',sans-serif; font-size:14px; }.authority-proof div:nth-child(2) span { color:rgba(255,255,255,.6); font-size:11px; }.authority-contacts { display:flex; gap:22px; margin-left:auto; }.authority-contacts a { color:var(--lime); font-size:12px; font-weight:700; }.authority-contacts a:last-child { color:var(--turquoise); }.authority-contacts a span { margin-left:5px; color:var(--white); }
@media (max-width:760px) { .authority-header { display:block; margin-bottom:34px; }.authority-header h2 { font-size:clamp(51px,15vw,72px); }.authority-answer { margin-top:25px; font-size:15px; }.authority-cards { grid-template-columns:1fr; gap:10px; }.authority-card { min-height:225px; padding:22px; border-radius:18px; }.authority-card-copy { right:22px; bottom:24px; left:22px; }.authority-card h3 { font-size:28px; }.authority-card p { max-width:300px; font-size:13px; }.authority-proof { align-items:flex-start; flex-wrap:wrap; padding:18px; }.authority-contacts { width:100%; margin:5px 0 0 65px; gap:16px; } }
/* Official contact channels */
.social-contact-block { display:grid; grid-template-columns:.92fr 1.08fr; gap:42px; align-items:center; margin-top:22px; padding:34px; color:var(--white); background:var(--forest); border-radius:28px; box-shadow:0 24px 44px rgba(6,41,31,.2); }.social-contact-kicker { margin:0 0 13px; color:var(--lime); font-size:10px; font-weight:700; letter-spacing:.17em; text-transform:uppercase; }.social-contact-heading h3 { margin:0; font:600 clamp(34px,4vw,55px)/.9 'Space Grotesk',sans-serif; letter-spacing:-.075em; }.social-contact-heading h3 em { color:var(--turquoise); font-style:normal; }.social-contact-heading>p:last-child { max-width:340px; margin:20px 0 0; color:rgba(255,255,255,.68); font-size:14px; line-height:1.55; }.social-contact-links { display:grid; gap:10px; }.social-contact-card { display:flex; align-items:center; gap:15px; min-height:108px; padding:18px 20px; border-radius:18px; transition:transform .25s ease,filter .25s ease; }.social-contact-card:hover { transform:translateX(7px); filter:brightness(1.06); }.social-instagram { color:var(--forest-dark); background:var(--sun); }.social-whatsapp { color:var(--forest-dark); background:var(--turquoise); }.social-icon { display:grid; flex:0 0 auto; place-items:center; width:45px; height:45px; color:currentColor; border:2px solid currentColor; border-radius:13px; }.social-icon svg { width:25px; height:25px; fill:none; stroke:currentColor; stroke-width:1.7; stroke-linecap:round; stroke-linejoin:round; }.social-contact-card>span:nth-child(2) { display:grid; gap:3px; }.social-contact-card small { font-size:10px; opacity:.65; }.social-contact-card strong { font:700 19px 'Space Grotesk',sans-serif; }.social-contact-card b { font-size:11px; opacity:.72; }.social-contact-card i { margin-left:auto; align-self:flex-start; font-size:22px; font-style:normal; }.social-whatsapp .social-icon svg path:first-child { fill:none; }.social-whatsapp .social-icon svg path:last-child { fill:none; }
@media (max-width:760px) { .social-contact-block { display:block; padding:24px 19px; border-radius:20px; }.social-contact-heading h3 { font-size:42px; }.social-contact-heading>p:last-child { font-size:13px; }.social-contact-links { margin-top:25px; }.social-contact-card { min-height:96px; padding:15px; }.social-contact-card strong { font-size:17px; } }
.social-contact-heading::before { display:block; width:118px; height:78px; margin:-8px 0 12px -10px; content:''; background:url('src/logo-sem-bg.png') center/contain no-repeat; filter:drop-shadow(0 8px 12px rgba(0,0,0,.2)); }
@media (max-width:760px) { .social-contact-heading::before { width:100px; height:65px; margin:-5px 0 10px -7px; } }
/* Tour details: make the decision information immediately scannable */
.tour-heading h2 { font-size:clamp(50px,5.7vw,82px); }.tour-lead { max-width:440px; font-size:17px; }.price-block { max-width:390px; gap:8px 13px; margin:38px 0 34px; }.price-block>span:first-child { color:rgba(255,255,255,.78); font-size:14px; font-weight:600; }.price-block strong { font-size:clamp(64px,6vw,88px); letter-spacing:-.095em; }.price-block sup { font-size:31px; }.price-block>span:last-child { align-self:end; padding-bottom:8px; color:var(--lime); font-size:14px; font-weight:700; }.tour-details { padding:39px; }.detail-row { gap:20px; padding:23px 0; }.detail-icon { width:53px; height:53px; font-size:26px; }.detail-row>div { gap:7px; }.detail-label { color:rgba(255,255,255,.64); font-size:11px; }.detail-row strong { font-size:20px; line-height:1.3; }.detail-row:nth-child(2) strong { color:var(--lime); font-size:27px; }.detail-row:nth-child(3) { align-items:flex-start; }.detail-row:nth-child(3) strong { max-width:300px; font-size:18px; }.included-box { margin-top:29px; padding:23px; background:rgba(184,227,61,.14); border:1px solid rgba(184,227,61,.2); }.included-box .detail-label { color:var(--lime); font-size:12px; }.included-box li { font-size:13px; }
@media (max-width:760px) { .tour-heading h2 { font-size:clamp(48px,14vw,67px); }.tour-lead { font-size:15px; }.price-block { margin:30px 0 28px; }.price-block strong { font-size:68px; }.price-block sup { font-size:24px; }.tour-details { padding:27px 20px; }.detail-row { gap:14px; padding:20px 0; }.detail-icon { width:45px; height:45px; font-size:22px; }.detail-row strong { font-size:18px; }.detail-row:nth-child(2) strong { font-size:24px; }.detail-row:nth-child(3) strong { font-size:16px; }.included-box { padding:19px; }.included-box li { font-size:12px; } }
.footer-brand::before { display:block; width:52px; height:38px; margin-right:8px; content:''; background:url('src/logo-sem-bg.png') center/contain no-repeat; filter:drop-shadow(0 4px 8px rgba(0,0,0,.22)); }
@media (max-width:390px) { .footer-brand::before { width:43px; height:31px; margin-right:5px; } }
/* Keep the featured gallery inside the mobile content width. */
@media (max-width:760px) { .tour-gallery { width:100%; max-width:100%; margin-right:0; }.gallery-featured { width:100%; max-width:100%; min-width:0; } }

/* Infinite gallery carousel */
.experience-gallery-section { overflow:hidden; }
.tour-gallery { display:block; width:min(1120px,100%); overflow:visible; }
.gallery-reel-wrap { position:relative; width:100%; margin-top:18px; padding:0 0 17px; overflow:hidden; }
.gallery-reel { width:100%; overflow:hidden; }
.gallery-track { display:flex; gap:14px; width:max-content; will-change:transform; transform:translate3d(0,0,0); }
.gallery-reel { touch-action:pan-y; cursor:grab; }
.gallery-reel:active { cursor:grabbing; }
.gallery-photo-thumb { position:relative; flex:0 0 clamp(148px,15vw,188px); height:238px; margin:0; overflow:hidden; background:#dfe9d6; border-radius:18px; box-shadow:0 20px 42px rgba(4,39,26,.14); }
.gallery-photo-thumb .gallery-photo-button { position:absolute; inset:0; z-index:1; width:100%; height:100%; padding:0; border:0; color:var(--white); background:transparent; cursor:zoom-in; }
.gallery-photo-thumb img { width:100%; height:100%; display:block; object-fit:cover; object-position:center; transition:transform .7s var(--ease),filter .4s ease; }
.gallery-photo-thumb:hover img { transform:scale(1.04); filter:saturate(1.08); }
.gallery-photo-thumb::after { position:absolute; inset:0; content:''; pointer-events:none; background:linear-gradient(180deg,transparent 45%,rgba(3,26,18,.78) 100%); }
.gallery-photo-thumb figcaption { position:absolute; right:11px; bottom:10px; left:11px; z-index:2; display:flex; align-items:end; justify-content:space-between; color:var(--white); pointer-events:none; }
.gallery-photo-thumb figcaption span { max-width:75%; font-size:10px; font-weight:600; text-align:left; }
.gallery-photo-thumb figcaption b { color:var(--lime); font:600 14px 'Space Grotesk',sans-serif; }
.gallery-photo[data-duplicate='true'] .gallery-photo-button { cursor:zoom-in; }
@media (max-width:760px) {
  .experience-gallery-section { padding:68px 0 72px; }
  .experience-gallery-section .gallery-heading,
  .experience-gallery-section .gallery-foot { margin-right:22px; margin-left:22px; }
  .gallery-reel-wrap { margin-top:11px; padding-bottom:14px; }
  .gallery-track { gap:10px; }
  .gallery-photo-thumb { flex-basis:clamp(138px,42vw,170px); height:190px; border-radius:14px; }
}
@media (prefers-reduced-motion:reduce) {
  .gallery-track { transform:none; }
}
/* Scroll transition between sections */
main > section { position:relative; z-index:0; transform:scale(var(--section-scale,1)); transform-origin:center center; border-radius:var(--section-radius,0); overflow:hidden; will-change:transform,border-radius; }
main > section.hero { z-index:1; }
@media (max-width:760px) { main > section { transform-origin:center top; } }
.experience-section.section-padding { padding-top:86px; padding-bottom:92px; }
.authority-header { margin-bottom:34px; }.authority-cards { gap:12px; }.authority-card { min-height:238px; padding:24px; }.authority-card-copy { right:24px; bottom:25px; left:24px; }.authority-card h3 { font-size:26px; margin-bottom:10px; }.authority-card p { font-size:12px; }.social-contact-block { margin-top:16px; padding:25px 28px; }
@media (max-width:760px) { .experience-section.section-padding { padding-top:64px; padding-bottom:70px; }.authority-header { margin-bottom:30px; }.authority-card { min-height:198px; }.authority-card h3 { font-size:25px; }.social-contact-block { padding:22px 19px; } }
/* Final balance for the authority section */
.experience-section.section-padding { padding-top:64px; padding-bottom:64px; background:var(--paper); }
.authority-header { margin-bottom:28px; }.authority-header h2 { font-size:clamp(46px,5vw,68px); }.authority-answer { font-size:15px; }.authority-cards { gap:10px; }.authority-card { min-height:190px; padding:21px; border-radius:18px; }.authority-card-copy { right:21px; bottom:22px; left:21px; }.authority-card h3 { font-size:24px; }.authority-card p { max-width:240px; font-size:11px; }.authority-card-icon { top:19px; right:21px; font-size:26px; }.social-contact-block { margin-top:13px; padding:20px 23px; border-radius:20px; }
@media (max-width:760px) { .experience-section.section-padding { padding-top:48px; padding-bottom:50px; }.authority-header h2 { font-size:clamp(45px,13vw,62px); }.authority-card { min-height:174px; }.authority-card h3 { font-size:23px; }.authority-card p { font-size:12px; }.social-contact-block { padding:19px 17px; } }
.booking-copy h2 em { color:var(--forest-dark); font-style:normal; }
/* Visitor comments */
.comments-section { color:var(--ink); background:var(--cream); overflow:hidden; }
.comments-heading { display:flex; align-items:end; justify-content:space-between; gap:30px; margin-bottom:40px; }.comments-heading h2 { margin:18px 0 0; font:500 clamp(44px,5vw,70px)/.94 'Space Grotesk',sans-serif; letter-spacing:-.075em; }.comments-heading h2 em { color:var(--coral); font-style:normal; }.comments-open-button { flex-shrink:0; margin-bottom:3px; }
.comments-reel-wrap { overflow:hidden; width:100%; }.comments-reel { overflow:hidden; touch-action:pan-y; }.comments-track { display:flex; gap:14px; width:max-content; will-change:transform; animation:comments-marquee 46s linear infinite; }.comments-reel:hover .comments-track,.comments-reel:focus-within .comments-track { animation-play-state:paused; }.comments-track-static { animation:none; }
.comment-card { position:relative; display:flex; flex:0 0 300px; flex-direction:column; justify-content:space-between; min-height:205px; padding:25px; color:var(--white); background:var(--forest); border-radius:22px; box-shadow:0 18px 35px rgba(4,39,26,.12); }.comment-card:nth-child(3n + 2) { color:var(--forest-dark); background:var(--sun); }.comment-card:nth-child(3n + 3) { color:var(--forest-dark); background:var(--turquoise); }.comment-card p { position:relative; z-index:1; margin:20px 0 24px; font-size:15px; line-height:1.55; }.comment-card strong { font:600 14px 'Space Grotesk',sans-serif; }.comment-quote { position:absolute; top:7px; right:20px; color:var(--lime); font:500 70px/1 'Space Grotesk',sans-serif; }.comment-card:nth-child(3n + 2) .comment-quote,.comment-card:nth-child(3n + 3) .comment-quote { color:var(--forest); }
@keyframes comments-marquee { from { transform:translateX(0); } to { transform:translateX(calc(-50% - 7px)); } }
.comments-modal { position:fixed; inset:0; z-index:110; display:grid; place-items:center; padding:22px; visibility:hidden; opacity:0; transition:opacity .25s,visibility .25s; }.comments-modal.is-open { visibility:visible; opacity:1; }.comments-modal-backdrop { position:absolute; inset:0; background:rgba(3,22,15,.78); backdrop-filter:blur(8px); }.comments-modal-dialog { position:relative; z-index:1; width:min(100%,520px); padding:34px; color:var(--forest-dark); background:var(--cream); border-radius:24px; box-shadow:0 25px 70px rgba(0,0,0,.3); }.comments-modal-dialog h2 { margin:10px 0 24px; font:500 clamp(34px,6vw,48px)/.95 'Space Grotesk',sans-serif; letter-spacing:-.07em; }.comments-modal-close { position:absolute; top:15px; right:15px; width:36px; height:36px; color:var(--forest-dark); background:var(--lime); border:0; border-radius:50%; font-size:24px; line-height:1; }.comments-form { display:grid; gap:16px; }.comments-form label { display:grid; gap:7px; color:var(--muted); font-size:12px; font-weight:700; }.comments-form input,.comments-form textarea { width:100%; padding:13px 14px; color:var(--ink); background:var(--white); border:1px solid rgba(6,41,31,.18); border-radius:11px; outline:0; font:inherit; resize:vertical; }.comments-form input:focus,.comments-form textarea:focus { border-color:var(--leaf); box-shadow:0 0 0 3px rgba(46,139,87,.14); }.comments-form button:disabled { cursor:wait; opacity:.6; }.comments-form-feedback { min-height:18px; margin:0; color:var(--leaf); font-size:12px; }.comments-form-feedback:not(:empty) { margin-top:-6px; }.comments-modal-open { overflow:hidden; }
.admin-page { min-height:100vh; padding:40px 22px; background:var(--paper); }.admin-shell { width:min(900px,100%); margin:0 auto; }.admin-header { display:flex; align-items:center; gap:25px; margin-bottom:28px; }.admin-header h1 { margin:0 auto 0 0; font:500 48px/1 'Space Grotesk',sans-serif; }.admin-header>a { color:var(--coral-dark); font-weight:700; }.admin-login { display:grid; gap:12px; width:min(400px,100%); padding:25px; background:var(--white); border-radius:18px; }.admin-login label { color:var(--muted); font-size:13px; }.admin-login input { padding:12px; border:1px solid rgba(6,41,31,.18); border-radius:10px; }.admin-error { color:var(--coral-dark); font-size:13px; }.admin-list { display:grid; gap:12px; }.admin-comment { display:flex; justify-content:space-between; gap:20px; padding:20px; background:var(--white); border-radius:16px; }.admin-comment strong { font-family:'Space Grotesk',sans-serif; }.admin-comment p { max-width:600px; margin:10px 0 0; color:var(--muted); line-height:1.5; }.admin-status { display:inline-block; margin-left:10px; padding:4px 8px; border-radius:20px; color:var(--forest-dark); background:var(--lime); font-size:10px; text-transform:uppercase; }.admin-status-pendente { background:var(--sun); }.admin-actions form { display:flex; flex-wrap:wrap; gap:6px; }.admin-actions button { padding:8px 10px; color:var(--forest-dark); background:var(--paper); border:1px solid rgba(6,41,31,.15); border-radius:8px; font-size:11px; font-weight:700; }
@media (max-width:760px) { .comments-section { padding:68px 22px 72px; }.comments-heading { display:block; margin-bottom:28px; }.comments-open-button { margin-top:24px; }.comments-track { gap:10px; animation-duration:34s; }.comment-card { flex-basis:calc(100vw - 70px); min-height:190px; padding:21px; border-radius:16px; }.comment-card p { font-size:14px; }.comments-modal-dialog { padding:28px 20px 22px; }.admin-header h1 { font-size:39px; }.admin-comment { display:block; }.admin-actions { margin-top:16px; } }
.admin-logout { color:var(--coral-dark); background:transparent; border:0; font-weight:700; cursor:pointer; }.admin-actions button { padding:8px 10px; color:var(--forest-dark); background:var(--paper); border:1px solid rgba(6,41,31,.15); border-radius:8px; font-size:11px; font-weight:700; cursor:pointer; }.admin-actions { display:flex; flex-wrap:wrap; gap:6px; align-items:start; }
.admin-password-field { position:relative; display:flex; align-items:center; }.admin-password-field input { flex:1; padding-right:78px; }.admin-password-toggle { position:absolute; right:8px; padding:6px 8px; color:var(--leaf); background:transparent; border:0; font-size:11px; font-weight:700; cursor:pointer; }.admin-comment-approved { background:rgba(218,247,214,.72); border-left:4px solid var(--leaf); }.admin-comment-deleted { background:rgba(255,224,218,.72); border-left:4px solid var(--coral); }.admin-comment-pending { background:rgba(255,247,216,.8); }.admin-status-tag { display:inline-block; padding:4px 8px; color:var(--forest-dark); background:var(--lime); border-radius:30px; font-size:9px; font-weight:700; text-transform:uppercase; }.admin-comment-deleted .admin-status-tag { color:#8a2e1e; background:#ffc0af; }.admin-comment-pending .admin-status-tag { background:var(--sun); }
.admin-login[hidden], .admin-dashboard[hidden], .admin-logout[hidden] { display:none!important; }
/* Admin moderation dashboard */
.admin-header-actions { display:flex; align-items:center; gap:20px; }.admin-total { color:var(--muted); font-size:12px; }.admin-total b { color:var(--forest-dark); font:600 18px 'Space Grotesk',sans-serif; }.admin-dashboard { display:grid; gap:20px; }.admin-panel { padding:25px; background:rgba(255,255,255,.62); border:1px solid rgba(6,41,31,.08); border-radius:22px; }.admin-pending-panel { background:#fff6d8; border-color:rgba(255,212,59,.55); }.admin-panel-heading { display:flex; align-items:end; justify-content:space-between; gap:20px; margin-bottom:18px; }.admin-panel-heading h2 { margin:7px 0 0; color:var(--forest-dark); font:600 30px/1 'Space Grotesk',sans-serif; letter-spacing:-.06em; }.admin-panel-heading h2 b { display:inline-grid; place-items:center; min-width:28px; height:28px; padding:0 7px; color:var(--forest-dark); background:var(--sun); border-radius:50px; font-size:13px; vertical-align:middle; }.admin-panel-heading>p { max-width:270px; margin:0; color:var(--muted); font-size:12px; line-height:1.45; }.admin-panel-kicker { color:var(--coral-dark); font-size:10px; font-weight:700; letter-spacing:.13em; text-transform:uppercase; }.admin-history-heading { align-items:center; }.admin-filter-label { display:flex; align-items:center; gap:10px; color:var(--muted); font-size:12px; }.admin-filter { min-width:125px; padding:9px 11px; color:var(--forest-dark); background:var(--white); border:1px solid rgba(6,41,31,.18); border-radius:9px; font-weight:700; }.admin-pending-list,.admin-history-list { display:grid; gap:10px; }.admin-comment { align-items:center; padding:16px 18px; border:1px solid rgba(6,41,31,.09); box-shadow:0 6px 16px rgba(4,39,26,.04); }.admin-comment-pending { border-left:4px solid var(--coral); }.admin-comment-deleted { opacity:.7; }.admin-comment-content { min-width:0; }.admin-comment-meta { display:flex; align-items:center; gap:10px; }.admin-comment-meta span { color:var(--muted); font-size:10px; }.admin-comment p { margin:7px 0 0; font-size:13px; }.admin-action-primary { color:var(--white)!important; background:var(--forest)!important; }.admin-action-danger { color:var(--coral-dark)!important; }.admin-empty { margin:4px 0; color:var(--muted); font-size:13px; }.admin-empty-pending { color:#8a6e17; }
@media (max-width:760px) { .admin-header { align-items:flex-start; }.admin-header-actions { align-items:flex-end; flex-direction:column; gap:7px; }.admin-panel { padding:19px 15px; border-radius:17px; }.admin-panel-heading,.admin-history-heading { align-items:flex-start; flex-direction:column; }.admin-panel-heading>p { max-width:none; }.admin-filter-label { width:100%; justify-content:space-between; }.admin-filter { flex:1; }.admin-comment { align-items:stretch; flex-direction:column; gap:14px; }.admin-actions { margin-top:0; }.admin-action { flex:1; } }
@media (prefers-reduced-motion:reduce) { .comments-track { animation:none; } }
/* Mobile hero: prioritize readable content over the illustration */
@media (max-width:600px) { .hero { min-height:760px; }.hero-shell { display:block; min-height:760px; padding:132px 22px 42px; }.hero-visual { display:none; }.hero-copy { max-width:100%; }.hero h1 { max-width:340px; margin-bottom:18px; font-size:clamp(43px,12.5vw,58px); line-height:.92; }.hero-description { max-width:340px; margin-bottom:24px; font-size:14px; line-height:1.5; }.hero-actions { display:flex; flex-direction:column; align-items:flex-start; gap:15px; }.hero-actions .button { min-height:50px; max-width:100%; padding-right:18px; padding-left:19px; font-size:12px; }.hero-facts { position:static; display:grid; grid-template-columns:1fr auto 1fr auto 1fr; gap:9px; margin-top:28px; }.hero-fact strong { font-size:14px; white-space:nowrap; }.hero-fact span { font-size:8px; white-space:nowrap; }.fact-divider { height:25px; }.scroll-cue { bottom:22px; }.visual-stamp,.cristo-halo { display:none; } }
@media (max-width:390px) { .hero-shell { padding-top:124px; padding-bottom:38px; }.hero h1 { font-size:43px; }.hero-description { max-width:310px; }.hero-facts { gap:6px; }.hero-fact strong { font-size:12px; }.hero-fact span { font-size:7px; }.fact-divider { height:21px; } }
/* Shared vector treatment keeps decorative arrows out of emoji fallback. */
.icon-arrow-svg { display:block; width:1em; height:1em; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.authority-card-icon .icon-arrow-svg { width:31px; height:31px; }
.button-arrow .icon-arrow-svg { width:17px; height:17px; }
.round-link .icon-arrow-svg { width:25px; height:25px; }
.sidebar-link .icon-arrow-svg,.instagram-arrow .icon-arrow-svg,.social-contact-card i .icon-arrow-svg,.footer-shell>a:last-child .icon-arrow-svg { width:1.1em; height:1.1em; }
.gallery-arrow .icon-arrow-svg { width:1em; height:1em; }
