/* All Right Tours — custom styles & motion  |  Developed by DKwebArt */
@font-face{font-family:Fraunces;font-style:normal;font-weight:300 900;font-display:swap;src:url(../fonts/fraunces-latin-wght-normal.woff2) format("woff2")}
@font-face{font-family:Fraunces;font-style:italic;font-weight:300 900;font-display:swap;src:url(../fonts/fraunces-latin-wght-italic.woff2) format("woff2")}
@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../fonts/inter-latin-wght-normal.woff2) format("woff2")}
:root{--navy:#0B2E4F;--teal:#0E6E7E;--aqua:#2BB6D3;--sun:#F2A33A;--cream:#FBF7EF;--sand:#F3EBDD;--ink:#1D2A38}
[x-cloak]{display:none!important}
html{scroll-behavior:smooth}
body{overflow-x:hidden}
::selection{background:var(--sun);color:var(--navy)}
::-webkit-scrollbar{width:10px}::-webkit-scrollbar-track{background:var(--cream)}::-webkit-scrollbar-thumb{background:var(--teal);border-radius:10px;border:2px solid var(--cream)}

/* Typography helpers */
.eyebrow{font-size:.78rem;font-weight:700;letter-spacing:.22em;text-transform:uppercase;display:inline-flex;align-items:center;gap:.7rem}
.eyebrow::before{content:"";width:28px;height:2px;background:currentColor;display:inline-block}
.h-section{font-family:Fraunces,Georgia,serif;font-weight:600;line-height:1.08;letter-spacing:-.01em;font-size:clamp(2rem,4.2vw,3.4rem);color:var(--navy)}
.h-section em{font-style:italic;color:var(--teal)}
.prose-tour p{margin:0 0 1.05rem;line-height:1.8;color:#3b4a5a}
.prose-tour h2{font-family:Fraunces,Georgia,serif;font-size:1.6rem;color:var(--navy);margin:2rem 0 .8rem;font-weight:600}
.prose-tour h3{font-family:Fraunces,Georgia,serif;font-size:1.25rem;color:var(--navy);margin:1.5rem 0 .6rem}
.prose-tour ul{list-style:disc;padding-left:1.25rem;margin:0 0 1rem}.prose-tour li{margin:.3rem 0}
.prose-tour a{color:var(--teal);text-decoration:underline}

/* Buttons */
.btn-sun,.btn-teal,.btn-ghost-light,.btn-outline{display:inline-flex;align-items:center;justify-content:center;gap:.55rem;border-radius:999px;padding:.95rem 1.7rem;font-weight:600;transition:all .35s cubic-bezier(.2,.8,.2,1);position:relative;overflow:hidden;isolation:isolate}
.btn-sun{background:var(--sun);color:var(--navy);box-shadow:0 12px 30px -12px rgba(242,163,58,.8)}
.btn-sun::after,.btn-teal::after{content:"";position:absolute;inset:0;background:linear-gradient(120deg,transparent 30%,rgba(255,255,255,.45) 50%,transparent 70%);transform:translateX(-120%);transition:transform .7s;z-index:-1}
.btn-sun:hover::after,.btn-teal:hover::after{transform:translateX(120%)}
.btn-sun:hover{transform:translateY(-2px);box-shadow:0 18px 36px -14px rgba(242,163,58,.95)}
.btn-teal{background:var(--teal);color:#fff}.btn-teal:hover{background:var(--navy);transform:translateY(-2px)}
.btn-ghost-light{border:1.5px solid rgba(255,255,255,.55);color:#fff;backdrop-filter:blur(6px);background:rgba(255,255,255,.06)}
.btn-ghost-light:hover{background:#fff;color:var(--navy)}
.btn-outline{border:1.5px solid var(--navy);color:var(--navy)}.btn-outline:hover{background:var(--navy);color:#fff}

/* Header states */
.site-header.is-clear{background:linear-gradient(to bottom,rgba(7,30,53,.55),rgba(7,30,53,0))}
.site-header.is-clear .logo-color{opacity:0}.site-header.is-clear .logo-white{opacity:1}
.site-header.is-clear .nav-link{color:rgba(255,255,255,.9)}
.site-header.is-clear .header-ghost{color:#fff;background:rgba(255,255,255,.12);backdrop-filter:blur(8px)}
.site-header.is-solid{background:rgba(255,255,255,.88);backdrop-filter:blur(14px) saturate(1.4);box-shadow:0 10px 30px -18px rgba(11,46,79,.35)}
.site-header.is-solid .logo-color{opacity:1}.site-header.is-solid .logo-white{opacity:0}
.site-header.is-solid .nav-link{color:var(--navy)}
.site-header.is-solid .header-ghost{color:var(--navy);background:var(--cream)}
.site-header.is-solid .header-row{height:68px}
.header-row{transition:height .4s}
.nav-link{position:relative;padding:.55rem .7rem;border-radius:999px;transition:color .3s}
.nav-link::after{content:"";position:absolute;left:.7rem;right:.7rem;bottom:.25rem;height:2px;background:var(--sun);transform:scaleX(0);transform-origin:left;transition:transform .35s}
.nav-link:hover::after,.nav-link.active::after{transform:scaleX(1)}
.scroll-progress{position:absolute;left:0;bottom:0;height:3px;width:var(--progress,0%);background:linear-gradient(90deg,var(--teal),var(--aqua),var(--sun));transition:width .1s linear}
.mobile-links a{padding:.7rem 0;border-bottom:1px solid rgba(255,255,255,.08);opacity:0;transform:translateX(20px);animation:slideIn .5s forwards}
.mobile-links a:nth-child(n){animation-delay:calc(var(--i,0)*60ms)}
@keyframes slideIn{to{opacity:1;transform:none}}

/* Reveal on scroll */
.reveal{opacity:0;transform:translateY(34px);transition:opacity .9s cubic-bezier(.2,.8,.2,1),transform .9s cubic-bezier(.2,.8,.2,1);transition-delay:var(--d,0s)}
.reveal.in{opacity:1;transform:none}
.reveal-left{opacity:0;transform:translateX(-40px);transition:all 1s cubic-bezier(.2,.8,.2,1);transition-delay:var(--d,0s)}
.reveal-left.in{opacity:1;transform:none}
.reveal-zoom{opacity:0;transform:scale(.94);transition:all 1s cubic-bezier(.2,.8,.2,1);transition-delay:var(--d,0s)}
.reveal-zoom.in{opacity:1;transform:none}
.clip-reveal{clip-path:inset(0 0 100% 0);transition:clip-path 1.2s cubic-bezier(.7,0,.2,1);transition-delay:var(--d,0s)}
.clip-reveal.in{clip-path:inset(0 0 0 0)}
@media (prefers-reduced-motion:reduce){.reveal,.reveal-left,.reveal-zoom,.clip-reveal{opacity:1;transform:none;clip-path:none;transition:none}}

/* Hero */
.hero-slide{position:absolute;inset:0;opacity:0;transition:opacity 1.6s ease}
.hero-slide.active{opacity:1;z-index:1}
.hero-slide img{width:100%;height:100%;object-fit:cover;transform:scale(1.15);transition:transform 9s linear}
.hero-slide.active img{transform:scale(1)}
.hero-overlay{background:linear-gradient(100deg,rgba(7,30,53,.88) 0%,rgba(7,30,53,.55) 45%,rgba(7,30,53,.15) 100%),linear-gradient(to top,rgba(7,30,53,.75),transparent 40%)}
.hero-word{display:inline-block;overflow:hidden;vertical-align:top;padding-bottom:.08em}
.hero-word>span{display:inline-block;transform:translateY(110%);animation:wordUp 1s cubic-bezier(.2,.8,.2,1) forwards;animation-delay:calc(.25s + var(--w)*.08s)}
@keyframes wordUp{to{transform:none}}
.hero-fade{opacity:0;transform:translateY(16px);animation:fadeUp 1s .9s cubic-bezier(.2,.8,.2,1) forwards}
.hero-fade.d2{animation-delay:1.15s}.hero-fade.d3{animation-delay:1.35s}
@keyframes fadeUp{to{opacity:1;transform:none}}
.hero-progress{height:2px;background:rgba(255,255,255,.25);overflow:hidden;border-radius:2px}
.hero-progress span{display:block;height:100%;background:var(--sun);width:0}
[data-hero-dot].run .hero-progress span{animation:prog 7s linear forwards}
@keyframes prog{to{width:100%}}
.grain::before{content:"";position:absolute;inset:0;pointer-events:none;z-index:2;opacity:.07;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}
.scroll-cue{width:26px;height:42px;border:2px solid rgba(255,255,255,.6);border-radius:20px;position:relative}
.scroll-cue::after{content:"";position:absolute;left:50%;top:8px;width:4px;height:8px;margin-left:-2px;border-radius:4px;background:#fff;animation:cue 1.8s infinite}
@keyframes cue{0%{opacity:0;transform:translateY(0)}40%{opacity:1}100%{opacity:0;transform:translateY(14px)}}

/* Marquee */
.marquee{display:flex;overflow:hidden;user-select:none;mask-image:linear-gradient(90deg,transparent,#000 10%,#000 90%,transparent)}
.marquee-track{display:flex;flex-shrink:0;gap:3rem;min-width:100%;animation:marquee 40s linear infinite;padding-right:3rem}
.marquee:hover .marquee-track{animation-play-state:paused}
.marquee.reverse .marquee-track{animation-direction:reverse}
@keyframes marquee{to{transform:translateX(-100%)}}

/* Cards */
.tour-card{position:relative;border-radius:28px;overflow:hidden;background:#fff;box-shadow:0 10px 30px -12px rgba(11,46,79,.18);transition:transform .6s cubic-bezier(.2,.8,.2,1),box-shadow .6s}
.tour-card:hover{transform:translateY(-8px);box-shadow:0 30px 60px -24px rgba(11,46,79,.4)}
.img-zoom{overflow:hidden}.img-zoom img{transition:transform 1.2s cubic-bezier(.2,.8,.2,1)}
.group:hover .img-zoom img,.img-zoom:hover img{transform:scale(1.08)}
.stop-chip{display:inline-flex;align-items:center;gap:.35rem;font-size:.75rem;font-weight:600;padding:.3rem .7rem;border-radius:999px;background:var(--cream);color:var(--teal)}
.dest-card .dest-overlay{background:linear-gradient(to top,rgba(7,30,53,.92) 0%,rgba(7,30,53,.35) 45%,transparent 75%)}
.dest-card .dest-more{max-height:0;opacity:0;transition:all .6s cubic-bezier(.2,.8,.2,1)}
.dest-card:hover .dest-more{max-height:120px;opacity:1}
.rank{font-family:Fraunces,serif;font-weight:700;-webkit-text-stroke:1.5px rgba(255,255,255,.85);color:transparent;line-height:1}

/* Itinerary timeline (client reference style) */
.timeline{position:relative}
.timeline::before{content:"";position:absolute;left:19px;top:10px;bottom:10px;width:3px;border-radius:3px;background:linear-gradient(to bottom,var(--teal),var(--aqua) 60%,rgba(43,182,211,.15))}
.tl-dot{position:absolute;left:4px;top:28px;width:33px;height:33px;border-radius:50%;background:var(--teal);box-shadow:0 0 0 6px var(--cream),0 0 0 8px rgba(14,110,126,.25)}
.tl-dot::after{content:"";position:absolute;inset:10px;border-radius:50%;background:#fff}
.day-card{background:linear-gradient(180deg,#fffdf8,#fbf6ea);border:1px solid #efe6d4;border-radius:28px;box-shadow:0 16px 40px -28px rgba(11,46,79,.45)}
.day-badge{background:var(--teal);color:#fff;font-weight:700;border-radius:999px;padding:.45rem 1.1rem;font-size:.95rem;letter-spacing:.02em}
.overnight{background:#eef3f6;color:#4a5a6b;border-radius:999px;padding:.45rem 1rem;font-size:.92rem}
.check-li{display:flex;gap:.8rem;align-items:flex-start;padding:.38rem 0;font-size:1.02rem;color:#2c3a48}
.check-li svg{flex:none;margin-top:.25rem;color:var(--teal)}
.coord{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.12em;color:rgba(11,46,79,.35)}

/* Route line */
.route{display:flex;flex-wrap:wrap;align-items:center;gap:.4rem .2rem}
.route .stop{display:inline-flex;align-items:center;gap:.4rem;font-weight:600;font-size:.88rem;color:#fff}
.route .stop::before{content:"";width:9px;height:9px;border-radius:50%;background:var(--sun);box-shadow:0 0 0 3px rgba(242,163,58,.3)}
.route .sep{width:22px;height:2px;background:repeating-linear-gradient(90deg,rgba(255,255,255,.7) 0 4px,transparent 4px 8px)}

/* Gallery */
.masonry{columns:1;column-gap:1rem}
@media(min-width:640px){.masonry{columns:2}}
@media(min-width:1024px){.masonry{columns:3}}
@media(min-width:1280px){.masonry{columns:4}}
.masonry>*{break-inside:avoid;margin-bottom:1rem}

/* FAQ */
.faq-item summary{list-style:none;cursor:pointer}
.faq-item summary::-webkit-details-marker{display:none}
.faq-item[open] .faq-icon{transform:rotate(45deg);background:var(--sun);color:var(--navy)}
.faq-icon{transition:all .35s}

/* Forms */
.field{width:100%;border:1.5px solid #e7dfcf;background:#fff;border-radius:14px;padding:.85rem 1rem;font-size:.95rem;transition:border-color .25s,box-shadow .25s;color:var(--ink)}
.field:focus{outline:none;border-color:var(--teal);box-shadow:0 0 0 4px rgba(14,110,126,.12)}
.label{display:block;font-size:.8rem;font-weight:600;color:#55657a;margin-bottom:.4rem;letter-spacing:.02em}
.chip-check input{position:absolute;opacity:0}
.chip-check span{display:inline-block;border:1.5px solid #e7dfcf;border-radius:999px;padding:.5rem 1rem;font-size:.88rem;cursor:pointer;transition:all .25s;background:#fff}
.chip-check input:checked+span{background:var(--teal);border-color:var(--teal);color:#fff}

/* Page hero (inner pages) */
.page-hero{position:relative;min-height:62vh;display:flex;align-items:flex-end;color:#fff;overflow:hidden}
.page-hero img.bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transform:scale(1.08);animation:slowZoom 14s ease-out forwards}
@keyframes slowZoom{to{transform:scale(1)}}
.page-hero .shade{position:absolute;inset:0;background:linear-gradient(to top,rgba(7,30,53,.92),rgba(7,30,53,.35) 55%,rgba(7,30,53,.45))}

/* Floating WhatsApp pulse */
.wa-float{position:relative}
.wa-float::before{content:"";position:absolute;inset:0;border-radius:50%;background:#25D366;animation:pulse 2.4s infinite;z-index:-1}
@keyframes pulse{0%{transform:scale(1);opacity:.6}100%{transform:scale(1.7);opacity:0}}

/* Tilt */
.tilt{transform-style:preserve-3d;transition:transform .4s ease}

/* Decorative */
.wave-divider{display:block;width:100%;height:auto}
.dot-grid{background-image:radial-gradient(rgba(14,110,126,.18) 1.2px,transparent 1.2px);background-size:22px 22px}
.float-y{animation:floatY 6s ease-in-out infinite}
@keyframes floatY{50%{transform:translateY(-12px)}}
.spin-slow{animation:spin 30s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}
.line-clamp-2{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.line-clamp-3{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
