/*
Theme Name: TourwithChe
Author: TourwithChe
Description: Official theme for TourwithChe Rwanda — gorilla trekking, safari and custom itineraries
Version: 2.7
*/

:root{
  --sage:#c5ddd3; --sage-dark:#a8c9bb; --brown:#3a2b1a; --brown-mid:#5c4433;
  --cream:#f7f3ee; --cream-dark:#ede7de; --white:#fff; --text:#2a1f14;
  --muted:#7a6a5a; --gold:#b8965a;
  --font-display:'Cormorant Garamond',Georgia,serif;
  --font-body:'DM Sans',system-ui,-apple-system,sans-serif;
  --max:1200px; --pad:96px 0; --radius:4px;
}

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
html,body{overflow-x:hidden;max-width:100%;-webkit-text-size-adjust:100%}
body{font-family:var(--font-body);font-size:16px;line-height:1.7;color:var(--text);background:var(--white);-webkit-font-smoothing:antialiased}
img{display:block;max-width:100%;height:auto}
a{color:inherit;text-decoration:none}
ul{list-style:none}

h1,h2,h3,h4,h5{font-family:var(--font-display);font-weight:500;line-height:1.15;color:var(--brown)}
h1{font-size:clamp(2.6rem,5.5vw,4.8rem)}
h2{font-size:clamp(1.9rem,3.5vw,3rem)}
h3{font-size:clamp(1.3rem,2vw,1.9rem)}
h4{font-size:1.2rem}
p{max-width:66ch}

.eyebrow{font-family:var(--font-body);font-size:.7rem;font-weight:500;letter-spacing:.2em;text-transform:uppercase;color:var(--gold);display:block;margin-bottom:.6rem}

.container{max-width:var(--max);margin:0 auto;padding:0 32px}
.section{padding:var(--pad)}
.sec-head{margin-bottom:56px}
.sec-head p{margin-top:.8rem;color:var(--muted);font-size:1.05rem}
.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:center}
.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:28px}
.grid-4{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}

.btn{display:inline-block;font-family:var(--font-body);font-size:.75rem;font-weight:500;letter-spacing:.14em;text-transform:uppercase;padding:15px 38px;border-radius:var(--radius);border:none;cursor:pointer;transition:all .22s ease}
.btn-primary{background:var(--brown);color:var(--white)}
.btn-primary:hover{background:var(--brown-mid);transform:translateY(-1px)}
.btn-outline{background:transparent;color:var(--white);border:1.5px solid rgba(255,255,255,.6)}
.btn-outline:hover{background:rgba(255,255,255,.1)}
.btn-gold{background:var(--gold);color:var(--white)}
.btn-gold:hover{background:#a07848;transform:translateY(-1px)}

/* NAV */
.site-header{position:fixed;top:0;left:0;right:0;z-index:100;padding:20px 0;transition:background .3s ease,padding .3s ease}
.site-header.scrolled{background:var(--brown);padding:12px 0;box-shadow:0 2px 24px rgba(0,0,0,.2)}
.nav-inner{display:flex;align-items:center;justify-content:space-between;flex-wrap:nowrap;min-height:56px}
.site-logo{display:flex;align-items:center;flex-shrink:0;text-decoration:none}
.logo-text{font-family:var(--font-display);font-size:1.45rem;font-weight:600;color:var(--white);letter-spacing:.02em;line-height:1;white-space:nowrap}
.logo-che{color:var(--sage);font-style:normal;font-weight:600}
.nav-links{display:flex;align-items:center;gap:24px;list-style:none;padding:0;margin:0;flex-shrink:0}
.nav-links a{font-size:.76rem;font-weight:500;letter-spacing:.1em;text-transform:uppercase;color:rgba(255,255,255,.82);transition:color .2s;white-space:nowrap}
.nav-links a:hover{color:var(--white)}
.nav-cta{background:var(--sage)!important;color:var(--brown)!important;padding:9px 20px!important;border-radius:var(--radius)!important;letter-spacing:.08em!important}
.nav-cta:hover{background:var(--sage-dark)!important}
.hamburger{display:none;flex-direction:column;gap:5px;cursor:pointer;background:none;border:none;padding:4px}
.hamburger span{width:24px;height:1.5px;background:var(--white);display:block}

.has-dropdown{position:relative}
.has-dropdown>a{display:flex;align-items:center;gap:4px}
.chevron-sm{display:inline-block;width:0;height:0;border-left:4px solid transparent;border-right:4px solid transparent;border-top:5px solid rgba(255,255,255,.7);margin-left:5px;vertical-align:middle;transition:transform .2s;position:relative;top:-1px}
.has-dropdown:hover .chevron-sm,.has-dropdown.open .chevron-sm{transform:rotate(180deg)}
.dropdown{position:absolute;top:calc(100% + 14px);left:-16px;background:var(--brown);border-radius:var(--radius);padding:8px 0;min-width:200px;opacity:0;pointer-events:none;transform:translateY(-6px);transition:all .18s ease;box-shadow:0 8px 32px rgba(0,0,0,.28);z-index:200}
.has-dropdown:hover .dropdown,.has-dropdown.open .dropdown{opacity:1;pointer-events:all;transform:translateY(0)}
.dropdown li a{display:block;padding:10px 20px;font-size:.8rem!important;letter-spacing:.08em!important;color:rgba(255,255,255,.75)!important;text-transform:uppercase;transition:color .15s,background .15s}
.dropdown li a:hover{color:var(--white)!important;background:rgba(255,255,255,.07)}

/* HERO */
.hero{position:relative;height:100vh;min-height:680px;display:flex;align-items:flex-end;overflow:hidden}
.hero-bg{position:absolute;inset:0;background:var(--brown)}
.hero-bg img{width:100%;height:100%;object-fit:cover;opacity:.78}
.hero-overlay{position:absolute;inset:0;background:linear-gradient(to top,rgba(20,10,2,.95) 0%,rgba(20,10,2,.4) 50%,rgba(20,10,2,.08) 100%)}
.hero-content{position:relative;z-index:2;padding:0 0 72px;width:100%}
.hero-content h1{color:var(--white);max-width:860px;font-style:italic;margin-bottom:20px}
.hero-content h1 em{font-style:normal;color:var(--sage)}
.hero-content p{color:rgba(255,255,255,.78);font-size:1.08rem;max-width:500px;margin-bottom:36px}
.hero-btns{display:flex;gap:14px;flex-wrap:wrap;align-items:center}

/* STATS */
.twc-stats-wrap{background:#2a1f14;padding:0;overflow:hidden}
.twc-stats-inner{max-width:1200px;margin:0 auto;padding:0 20px}
.twc-stats-grid{display:grid;grid-template-columns:repeat(6,1fr);border-top:1px solid rgba(255,255,255,.06)}
.twc-stat-item{padding:28px 16px;text-align:center;border-right:1px solid rgba(255,255,255,.07)}
.twc-stat-item:last-child{border-right:none}
.twc-stat-num{font-family:var(--font-display);font-size:2.8rem;font-weight:500;color:var(--sage);line-height:1;margin-bottom:10px}
.twc-stat-label{font-size:.72rem;font-weight:500;letter-spacing:.12em;text-transform:uppercase;color:rgba(255,255,255,.55);margin-bottom:4px}
.twc-stat-sub{font-size:.7rem;color:rgba(255,255,255,.3)}

/* INTRO */
.intro-section{background:var(--cream)}
.intro-text{padding-right:56px}
.intro-text blockquote{font-family:var(--font-display);font-size:1.55rem;font-style:italic;color:var(--brown);line-height:1.5;margin:20px 0;padding-left:18px;border-left:2px solid var(--gold)}
.intro-img{position:relative}
.intro-img img{width:100%;height:560px;object-fit:cover;object-position:center 12%;border-radius:var(--radius)}
.intro-badge{background:var(--brown);color:var(--white);padding:18px 24px;border-radius:var(--radius);font-size:.82rem;display:inline-block;margin-top:24px}
.intro-badge strong{display:block;font-family:var(--font-body);font-size:.95rem;font-weight:600;color:var(--sage);letter-spacing:.04em;margin-bottom:3px}

/* GORILLA */
.gorilla-section{background:var(--brown);overflow:hidden;position:relative}
.gorilla-text{color:var(--white);padding-right:40px}
.gorilla-text h2{color:var(--white)}
.gorilla-text .eyebrow{color:var(--sage)}
.gorilla-text p{color:rgba(255,255,255,.72);margin:18px 0 28px}
.gorilla-stats{display:flex;gap:28px;margin:24px 0 32px}
.stat{border-left:2px solid var(--gold);padding-left:14px}
.stat strong{display:block;font-family:var(--font-display);font-size:2rem;font-weight:500;color:var(--sage);line-height:1}
.stat span{font-size:.76rem;color:rgba(255,255,255,.55);letter-spacing:.06em}
.gorilla-img img{width:100%;height:560px;object-fit:cover;border-radius:var(--radius)}

/* TOURS */
.tours-section{background:var(--white)}
.tour-card{position:relative;border-radius:var(--radius);overflow:hidden}
.tour-card img{width:100%;height:420px;object-fit:cover;transition:transform .55s ease;display:block}
.tour-card:hover img{transform:scale(1.04)}
.tour-overlay{position:absolute;inset:0;background:linear-gradient(to top,rgba(20,10,2,.9) 0%,transparent 55%);display:flex;flex-direction:column;justify-content:flex-end;padding:26px;transition:background .3s}
.tour-card:hover .tour-overlay{background:linear-gradient(to top,rgba(20,10,2,.96) 0%,rgba(20,10,2,.25) 55%)}
.tour-overlay h3{color:var(--white);font-size:1.45rem;margin-bottom:6px}
.tour-overlay p{color:rgba(255,255,255,.68);font-size:.86rem;max-width:100%;opacity:0;transform:translateY(8px);transition:all .28s ease;margin-bottom:12px}
.tour-card:hover .tour-overlay p{opacity:1;transform:translateY(0)}
.tour-link{font-size:.72rem;font-weight:500;letter-spacing:.12em;text-transform:uppercase;color:var(--sage)}
.tour-link::after{content:' →'}

/* EXPERIENCES */
.exp-section{background:var(--brown);text-align:center;padding:80px 0}
.exp-section h2{color:var(--white);margin-bottom:14px}
.exp-section>.container>p{color:rgba(255,255,255,.68);margin:0 auto 36px}
.exp-logos{display:flex;justify-content:center;gap:52px;flex-wrap:wrap;margin:36px 0}
.exp-item strong{display:block;font-family:var(--font-display);font-size:1.08rem;font-weight:500;color:var(--sage);margin-bottom:4px}
.exp-item span{font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;color:rgba(255,255,255,.45)}

/* PACKAGES */
.pkg-section{background:var(--cream)}
.pkg-grid{display:grid;grid-template-columns:1fr 1fr;gap:28px;margin-top:48px}
.pkg-card{background:var(--white);border-radius:var(--radius);overflow:hidden;border:1px solid var(--cream-dark)}
.pkg-card.featured{border:2px solid var(--gold)}
.pkg-header{background:var(--brown);padding:30px;color:var(--white)}
.pkg-card.featured .pkg-header{background:var(--gold)}
.pkg-label{font-size:.68rem;letter-spacing:.18em;text-transform:uppercase;color:rgba(255,255,255,.55);margin-bottom:6px}
.pkg-header h3{color:var(--white);font-size:1.9rem;margin-bottom:4px}
.pkg-price{font-size:.82rem;color:rgba(255,255,255,.7);letter-spacing:.04em;margin-top:6px}
.pkg-body{padding:30px}
.pkg-features{display:flex;flex-direction:column;gap:11px;margin-bottom:26px}
.pkg-features li{display:flex;gap:10px;font-size:.88rem;color:var(--muted);align-items:flex-start}
.pkg-features li::before{content:'✓';color:var(--gold);font-weight:700;flex-shrink:0;margin-top:2px}

/* TESTIMONIALS */
.testi-section{background:var(--cream)}
.testi-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-top:48px}
.testi-card{background:var(--white);padding:30px;border-radius:var(--radius);border:1px solid var(--cream-dark)}
.stars{color:var(--gold);font-size:.9rem;letter-spacing:2px;margin-bottom:14px}
.testi-card blockquote{font-family:var(--font-display);font-size:1.05rem;font-style:italic;color:var(--brown);line-height:1.65;margin-bottom:18px}
.testi-author{font-size:.8rem;color:var(--muted)}
.testi-author strong{display:block;color:var(--text);font-weight:500}

/* CTA */
.cta-section{background:var(--sage);padding:96px 0;text-align:center}
.cta-section h2{color:var(--brown);margin-bottom:14px}
.cta-section p{color:var(--brown-mid);margin:0 auto 32px}
.cta-btns{display:flex;gap:14px;justify-content:center;flex-wrap:wrap}

/* FOOTER */
.site-footer{background:var(--brown);color:rgba(255,255,255,.62);padding:72px 0 28px}
.footer-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:44px;margin-bottom:52px}
.footer-brand h3{font-family:var(--font-display);font-size:1.45rem;color:var(--white);margin-bottom:10px}
.footer-brand p{font-size:.86rem;line-height:1.7;max-width:260px}
.footer-col h4{font-family:var(--font-body);font-size:.68rem;font-weight:500;letter-spacing:.16em;text-transform:uppercase;color:var(--sage);margin-bottom:18px}
.footer-col ul{display:flex;flex-direction:column;gap:9px}
.footer-col ul a{font-size:.86rem;color:rgba(255,255,255,.58);transition:color .2s}
.footer-col ul a:hover{color:var(--white)}
.footer-bottom{border-top:1px solid rgba(255,255,255,.08);padding-top:24px;display:flex;align-items:center;justify-content:space-between;font-size:.76rem}
.footer-bottom a{color:var(--sage)}

/* PAGE HERO */
.page-hero{height:58vh;min-height:400px;display:flex;align-items:flex-end;position:relative;overflow:hidden}
.page-hero-bg{position:absolute;inset:0;background:var(--brown)}
.page-hero-bg img{width:100%;height:100%;object-fit:cover;opacity:.75}
.page-hero-overlay{position:absolute;inset:0;background:linear-gradient(to top,rgba(20,10,2,.88) 0%,rgba(20,10,2,.25) 100%)}
.page-hero-content{position:relative;z-index:2;padding:0 0 56px;color:var(--white)}
.page-hero-content h1{color:var(--white)}

/* FORM */
.form-wrap{background:var(--white);border-radius:var(--radius);padding:44px;border:1px solid var(--cream-dark);max-width:660px}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.form-group{display:flex;flex-direction:column;gap:5px;margin-bottom:18px}
.form-group label{font-size:.72rem;font-weight:500;letter-spacing:.09em;text-transform:uppercase;color:var(--muted)}
.form-group input,.form-group select,.form-group textarea{padding:11px 14px;border:1px solid var(--cream-dark);border-radius:var(--radius);font-family:var(--font-body);font-size:.94rem;color:var(--text);background:var(--cream);transition:border .2s;width:100%}
.form-group input:focus,.form-group select:focus,.form-group textarea:focus{outline:none;border-color:var(--gold);background:var(--white)}
.form-group textarea{height:110px;resize:vertical}

/* CARDS (inner pages) */
.info-card{background:var(--cream);padding:28px;border-radius:var(--radius)}
.info-card h4{margin-bottom:10px;font-size:1rem;color:var(--brown)}
.info-card p{font-size:.88rem;color:var(--muted);max-width:100%}

/* RESPONSIVE */
@media(max-width:1080px) and (min-width:769px){
  .nav-links{gap:18px}
  .nav-links a{font-size:.68rem}
  .logo-text{font-size:1.15rem}
}
@media(max-width:1024px){
  .grid-4{grid-template-columns:repeat(2,1fr)}
  .footer-grid{grid-template-columns:1fr 1fr}
}
@media(max-width:900px){
  .twc-stats-grid{grid-template-columns:repeat(3,1fr)!important}
  .twc-stat-item{border-right:1px solid rgba(255,255,255,.07)!important;border-bottom:1px solid rgba(255,255,255,.07)!important}
  .twc-stat-item:nth-child(3n){border-right:none!important}
}
@media(max-width:768px){
  :root{--pad:60px 0}
  .container{padding:0 20px}
  .nav-links{display:none!important}
  .hamburger{display:flex}
  .has-dropdown .dropdown{display:none!important}
  .grid-2,.grid-3,.pkg-grid,.testi-grid{grid-template-columns:1fr!important;gap:28px}
  .grid-4{grid-template-columns:1fr 1fr;gap:12px}
  .hero{min-height:100svh}
  .hero-content{padding:0 0 56px}
  .hero-content h1{font-size:2.2rem;line-height:1.2}
  .hero-content p{font-size:.95rem}
  .hero-btns{flex-direction:column;align-items:flex-start;gap:12px}
  .hero-btns .btn{width:100%;text-align:center}
  .intro-text{padding-right:0}
  .intro-text blockquote{font-size:1.3rem}
  .intro-img img{height:320px}
  .gorilla-text{padding-right:0}
  .gorilla-img img{height:280px}
  .gorilla-stats{flex-direction:row;flex-wrap:wrap;gap:16px}
  .stat{min-width:120px}
  .stat strong{font-size:1.6rem}
  .tour-card img{height:260px}
  .tour-card p{opacity:1;transform:none}
  .exp-section{padding:60px 0}
  .exp-logos{gap:28px}
  .pkg-header{padding:24px}
  .pkg-header h3{font-size:1.6rem}
  .pkg-body{padding:24px}
  .testi-card blockquote{font-size:1rem}
  .cta-section{padding:64px 0}
  .cta-btns{flex-direction:column;align-items:center}
  .cta-btns .btn{width:100%;max-width:320px;text-align:center}
  .footer-grid{grid-template-columns:1fr;gap:32px}
  .site-footer{padding:56px 0 24px}
  .footer-bottom{flex-direction:column;gap:8px;text-align:center;font-size:.72rem}
  .page-hero{height:45vh;min-height:280px}
  .page-hero-content h1{font-size:2rem}
  .page-hero-content{padding:0 0 32px}
  .form-row{grid-template-columns:1fr}
}
@media(max-width:520px){
  .twc-stats-grid{grid-template-columns:repeat(2,1fr)!important}
  .twc-stat-item{padding:20px 12px!important}
  .twc-stat-num{font-size:1.9rem!important}
  .twc-stat-item:nth-child(3n){border-right:1px solid rgba(255,255,255,.07)!important}
  .twc-stat-item:nth-child(2n){border-right:none!important}
}
@media(max-width:480px){
  .container{padding:0 16px}
  :root{--pad:52px 0}
  h1{font-size:2rem}
  h2{font-size:1.7rem}
  .logo-text{font-size:1.1rem}
  .form-wrap{padding:28px 20px}
}

/* FAQ */
.faq-list{display:flex;flex-direction:column;gap:12px}
.faq-item{background:var(--white);border:1px solid var(--cream-dark);border-radius:var(--radius);padding:0 24px}
.faq-item summary{cursor:pointer;list-style:none;padding:20px 32px 20px 0;font-family:var(--font-display);font-size:1.2rem;font-weight:500;color:var(--brown);position:relative}
.faq-item summary::-webkit-details-marker{display:none}
.faq-item summary::after{content:'+';position:absolute;right:0;top:50%;transform:translateY(-50%);font-family:var(--font-body);font-size:1.4rem;color:var(--gold);transition:transform .2s}
.faq-item[open] summary::after{transform:translateY(-50%) rotate(45deg)}
.faq-item p{padding:0 0 22px;color:var(--muted);font-size:.95rem;max-width:100%}

/* Floating WhatsApp */
.wa-float{position:fixed;right:20px;bottom:20px;z-index:150;display:flex;align-items:center;gap:10px;background:#25D366;color:#fff;padding:12px 18px 12px 14px;border-radius:999px;box-shadow:0 6px 24px rgba(0,0,0,.22);font-size:.82rem;font-weight:500;letter-spacing:.02em;transition:transform .2s,box-shadow .2s}
.wa-float:hover{transform:translateY(-2px);box-shadow:0 10px 28px rgba(0,0,0,.28)}
@media(max-width:600px){.wa-float span{display:none}.wa-float{padding:14px;right:16px;bottom:16px}}

/* Accessibility: visible keyboard focus, respect reduced motion */
a:focus-visible,button:focus-visible,summary:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--gold);outline-offset:3px}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

/* Urukundo gorilla card (About page) */
.gorilla-card{position:relative;border-radius:var(--radius);overflow:hidden}
.gorilla-card img{width:100%;height:520px;object-fit:cover;display:block}
.gorilla-card .intro-badge{position:absolute;left:20px;bottom:20px;margin:0}
@media(max-width:768px){.gorilla-card img{height:340px}}

/* Real trips gallery (homepage) */
.real-trips{background:var(--cream)}
.trips-grid{display:grid;grid-template-columns:repeat(3,1fr);grid-auto-rows:320px;gap:14px}
.trip-photo{margin:0;overflow:hidden;border-radius:var(--radius);position:relative}
.trip-photo.wide{grid-column:span 2}
.trip-photo img{width:100%;height:100%;object-fit:cover;object-position:center 35%;display:block;transition:transform .6s ease}
.trip-photo:hover img{transform:scale(1.04)}
.trips-note{text-align:center;margin:28px auto 0;color:var(--muted);font-size:.9rem}
.trips-note a{color:var(--brown);text-decoration:underline}
@media(max-width:900px){.trips-grid{grid-template-columns:repeat(2,1fr);grid-auto-rows:220px}}
@media(max-width:520px){.trips-grid{grid-template-columns:1fr;grid-auto-rows:280px}.trip-photo.wide{grid-column:auto}}
@media(prefers-reduced-motion:reduce){.trip-photo img{transition:none}}
.trip-photo img[src*="tea-trail"]{object-position:center 72%}

/* ===== Rwanda map (shared) ===== */
.rw-map{width:100%;height:auto;display:block;overflow:visible}
.rw-land{fill:#cfe3d9;stroke:var(--brown);stroke-width:2.2;stroke-linejoin:round}
.rw-land-texture{pointer-events:none}
.rw-water-label{font-family:var(--font-display);font-style:italic;font-size:22px;fill:#5d8f9e;letter-spacing:.06em}
.rw-route{fill:none;stroke:var(--gold);stroke-width:3;stroke-dasharray:10 9;stroke-linecap:round;stroke-linejoin:round;animation:rwDash 30s linear infinite}
@keyframes rwDash{to{stroke-dashoffset:-600}}
.rw-pin{cursor:pointer;outline:none}
.rw-dot{fill:var(--brown);stroke:#fff;stroke-width:3;transition:transform .25s ease}
.rw-pulse{fill:var(--brown);opacity:0;transform-box:fill-box;transform-origin:center}
.rw-pin-hero .rw-dot,.rw-pin-hero .rw-pulse{fill:var(--gold)}
.rw-pin-hero .rw-pulse{animation:rwPulse 2.4s ease-out infinite}
.rw-pin.is-active .rw-pulse{animation:rwPulse 2.4s ease-out infinite}
@keyframes rwPulse{0%{opacity:.45;transform:scale(.4)}100%{opacity:0;transform:scale(1.6)}}
.rw-pin:hover .rw-dot,.rw-pin:focus-visible .rw-dot,.rw-pin.is-active .rw-dot{transform:scale(1.25)}
.rw-label{font-family:var(--font-body);font-size:21px;font-weight:600;fill:var(--brown);text-anchor:middle;paint-order:stroke;stroke:#f7f3ec;stroke-width:6px;stroke-linejoin:round;pointer-events:none}
.rw-pin-hero .rw-label{font-size:25px}
.rw-pin.is-dim{opacity:.28}

/* Homepage map section */
.map-section{background:var(--cream)}
.map-layout{display:grid;grid-template-columns:1fr 1.35fr;gap:56px;align-items:center}
.map-list{list-style:none;margin:28px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:10px}
.map-item{font:inherit;font-size:.86rem;background:transparent;border:1px solid rgba(58,43,26,.25);color:var(--brown);padding:9px 16px;border-radius:999px;cursor:pointer;transition:all .2s}
.map-item:hover,.map-item.is-active{background:var(--brown);color:#fff;border-color:var(--brown)}
.map-visual{position:relative}
.rw-lake{fill:#bcd8e0;stroke:#8fb7c3;stroke-width:1.5}
.map-card{position:relative;margin-top:28px;max-width:440px;background:#fff;border-radius:var(--radius);box-shadow:0 18px 40px rgba(58,43,26,.18);overflow:hidden;display:grid;grid-template-columns:120px 1fr}
.map-card img{width:120px;height:100%;min-height:150px;object-fit:cover}
.map-card div{padding:14px 16px}
.map-card h3{font-size:1.1rem;margin:0 0 6px}
.map-card p{font-size:.8rem;line-height:1.5;color:var(--muted);margin:0 0 8px;max-width:none}
.map-card a{font-size:.78rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--gold)}
.map-cta{text-align:center;margin-top:56px}
@media(max-width:900px){.map-layout{grid-template-columns:1fr;gap:28px}.map-card{max-width:none}}
@media(prefers-reduced-motion:reduce){.rw-route,.rw-pulse{animation:none!important}}

/* Interactive park map (gorilla page) */
.park-map-section{background:var(--white)}
.park-map{height:560px;border-radius:var(--radius);overflow:hidden;box-shadow:0 14px 40px rgba(58,43,26,.12);z-index:0}
.park-map-note{font-size:.82rem;color:var(--muted);margin:14px auto 0;max-width:760px;text-align:center}
.pm-pin span{display:block;width:100%;height:100%;border-radius:50%;background:var(--brown);border:3px solid #fff;box-shadow:0 2px 8px rgba(0,0,0,.35)}
.pm-pin-hero span{background:var(--gold);animation:pmPulse 2.4s ease-out infinite}
@keyframes pmPulse{0%{box-shadow:0 0 0 0 rgba(184,150,90,.6)}100%{box-shadow:0 0 0 22px rgba(184,150,90,0)}}
.pm-peak{text-align:center;pointer-events:none;display:none}
.show-peaks .pm-peak{display:block}
.pm-peak span{display:block;color:var(--brown);font-size:12px;line-height:1}
.pm-peak em{font-style:normal;font-size:10px;font-weight:600;color:var(--brown);text-shadow:0 0 3px #fff,0 0 3px #fff}
.pm-pop img{width:100%;height:120px;object-fit:cover;border-radius:4px;margin-bottom:8px}
.pm-pop strong{display:block;font-family:var(--font-display);font-size:1.15rem;color:var(--brown)}
.pm-pop p{font-size:.8rem;line-height:1.45;margin:4px 0 8px;color:var(--muted)}
.leaflet-container .pm-pop a{font-size:.75rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--gold)}
.leaflet-popup-content{margin:12px}
@media(max-width:600px){.park-map{height:440px}}
@media(prefers-reduced-motion:reduce){.pm-pin-hero span{animation:none}}

/* ===== Smart trip planner ===== */
.page-hero-short{min-height:56vh}
.planner-section{background:var(--cream)}
.planner-wrap{max-width:1080px}
.planner{background:#fff;border-radius:10px;box-shadow:0 20px 60px rgba(58,43,26,.10);padding:44px 48px;margin-top:-140px;position:relative;z-index:2}
.planner-progress{display:flex;gap:8px;margin-bottom:30px}
.planner-progress span{flex:1;height:4px;border-radius:4px;background:rgba(58,43,26,.12);transition:background .3s}
.planner-progress span.is-on{background:var(--gold)}
.planner-step{border:0;margin:0;padding:0;display:none}
.planner-step.is-current{display:block;animation:plIn .35s ease}
@keyframes plIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
.planner-step legend{font-family:var(--font-display);font-size:2.1rem;color:var(--brown);padding:0;margin-bottom:6px;outline:none}
.planner-num{display:block;font-family:var(--font-body);font-size:.7rem;letter-spacing:.16em;text-transform:uppercase;color:var(--gold);margin-bottom:8px}
.planner-hint{color:var(--muted);margin:0 0 24px}
.pick-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:14px}
.pick-card{position:relative;display:block;border-radius:8px;overflow:hidden;cursor:pointer;border:2px solid transparent;background:var(--cream);transition:border-color .2s,transform .2s}
.pick-card:hover{transform:translateY(-2px)}
.pick-card input{position:absolute;opacity:0;pointer-events:none}
.pick-img{display:block;height:120px;background-size:cover;background-position:center 35%}
.pick-img-plain{background:linear-gradient(135deg,#c9a24a 0%,#b8965a 45%,#7a5a2e 100%)}
.pick-text{display:block;padding:12px 14px}
.pick-text strong{display:block;color:var(--brown);font-size:.95rem}
.pick-text small{color:var(--muted);font-size:.78rem}
.pick-tick{position:absolute;top:10px;right:10px;width:26px;height:26px;border-radius:50%;background:rgba(255,255,255,.9);border:2px solid #fff;box-shadow:0 2px 6px rgba(0,0,0,.2)}
.pick-card input:checked~.pick-tick{background:var(--gold)}
.pick-card input:checked~.pick-tick::after{content:"";position:absolute;left:8px;top:4px;width:6px;height:11px;border:solid #fff;border-width:0 2px 2px 0;transform:rotate(45deg)}
.pick-card:has(input:checked){border-color:var(--gold)}
.pick-card input:focus-visible~.pick-text{outline:2px solid var(--gold);outline-offset:-4px}
.days-picker{text-align:center;padding:20px 0 10px}
.days-out{font-family:var(--font-display);font-size:5.5rem;line-height:1;color:var(--brown)}
.days-unit{display:block;color:var(--muted);letter-spacing:.14em;text-transform:uppercase;font-size:.75rem;margin:6px 0 26px}
.days-picker input[type=range]{width:100%;max-width:560px;-webkit-appearance:none;appearance:none;height:6px;border-radius:6px;background:linear-gradient(90deg,var(--gold) var(--fill,36%),rgba(58,43,26,.15) var(--fill,36%));outline:none}
.days-picker input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:28px;height:28px;border-radius:50%;background:var(--brown);border:4px solid #fff;box-shadow:0 2px 8px rgba(0,0,0,.25);cursor:pointer}
.days-picker input[type=range]::-moz-range-thumb{width:22px;height:22px;border-radius:50%;background:var(--brown);border:4px solid #fff;cursor:pointer}
.days-picker input[type=range]:focus-visible::-webkit-slider-thumb{outline:3px solid var(--gold)}
.days-scale{display:flex;justify-content:space-between;max-width:560px;margin:8px auto 0;color:var(--muted);font-size:.75rem}
.style-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:18px}
.style-card{position:relative;display:block;padding:24px 22px;border-radius:8px;border:2px solid rgba(58,43,26,.12);cursor:pointer;transition:border-color .2s,background .2s}
.style-card input{position:absolute;opacity:0}
.style-card strong{display:block;font-family:var(--font-display);font-size:1.5rem;color:var(--brown);margin-bottom:6px}
.style-card small{color:var(--muted);font-size:.85rem;line-height:1.5}
.style-card:has(input:checked){border-color:var(--gold);background:#fbf7ef}
.style-card:has(input:focus-visible){outline:2px solid var(--gold);outline-offset:2px}
.when-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:18px}
.field{display:block}
.field>span{display:block;font-size:.75rem;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin-bottom:8px}
.field select,.field input{width:100%;font:inherit;padding:14px 16px;border:1px solid rgba(58,43,26,.2);border-radius:6px;background:#fff;color:var(--brown)}
.field-wide{grid-column:1/-1}
.stepper{display:flex;align-items:center;border:1px solid rgba(58,43,26,.2);border-radius:6px;overflow:hidden;width:max-content}
.stepper button{font:inherit;font-size:1.3rem;width:54px;height:50px;border:0;background:var(--cream);color:var(--brown);cursor:pointer}
.stepper output{min-width:64px;text-align:center;font-size:1.2rem;color:var(--brown)}
.planner-nav{display:flex;justify-content:space-between;gap:12px;margin-top:36px}
.planner-nav .planner-next{margin-left:auto}
.planner-error{color:#a3402a;margin:14px 0 0;font-size:.9rem}
.planner-noscript{background:#fff;padding:24px;border-radius:8px}
.planner-building{background:#fff;border-radius:10px;padding:60px 40px;margin-top:-140px;position:relative;z-index:2;text-align:center;box-shadow:0 20px 60px rgba(58,43,26,.10)}
.build-dots{display:flex;justify-content:center;gap:8px;margin-bottom:26px}
.build-dots span{width:10px;height:10px;border-radius:50%;background:var(--gold);animation:bd 1s ease-in-out infinite}
.build-dots span:nth-child(2){animation-delay:.15s}.build-dots span:nth-child(3){animation-delay:.3s}
@keyframes bd{0%,100%{transform:translateY(0);opacity:.4}50%{transform:translateY(-8px);opacity:1}}
.build-steps{list-style:none;padding:0;margin:0;color:var(--brown)}
.build-steps li{padding:6px 0;animation:plIn .35s ease}
.build-steps li::before{content:"\2713";color:var(--gold);margin-right:10px}
.planner-result{margin-top:-140px;position:relative;z-index:2}
.result-head{background:#fff;border-radius:10px 10px 0 0;padding:36px 40px 24px}
.result-title{margin:4px 0 14px}
.result-chips{list-style:none;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:8px}
.result-chips li{background:var(--cream);color:var(--brown);border-radius:999px;padding:6px 14px;font-size:.8rem}
.result-layout{display:grid;grid-template-columns:1.5fr 1fr;gap:28px;background:#fff;border-radius:0 0 10px 10px;padding:12px 40px 40px;box-shadow:0 20px 60px rgba(58,43,26,.10)}
.result-days{list-style:none;margin:0;padding:0;position:relative}
.result-days::before{content:"";position:absolute;left:47px;top:20px;bottom:20px;width:2px;background:repeating-linear-gradient(var(--gold) 0 6px,transparent 6px 12px)}
.day{display:grid;grid-template-columns:96px 1fr;gap:18px;padding:14px 0;position:relative;animation:plIn .45s ease both}
.day-img{width:96px;height:96px;border-radius:50%;background-size:cover;background-position:center;border:4px solid #fff;box-shadow:0 4px 14px rgba(58,43,26,.18);position:relative;z-index:1}
.day-img-plain{background:linear-gradient(135deg,#c9a24a,#7a5a2e)}
.day-num{font-size:.68rem;letter-spacing:.16em;text-transform:uppercase;color:var(--gold)}
.day h3{font-size:1.35rem;margin:2px 0 6px}
.day p{font-size:.9rem;color:var(--muted);margin:0 0 8px;max-width:none}
.day-night{display:inline-block;font-size:.76rem;color:var(--brown-mid);background:var(--cream);padding:4px 10px;border-radius:4px}
.result-side{position:sticky;top:100px;align-self:start}
.result-map{background:var(--cream);border-radius:8px;padding:18px 14px}
.result-notes{margin:18px 0}
.result-notes p{font-size:.85rem;color:var(--brown-mid);border-left:3px solid var(--gold);padding:2px 0 2px 12px;margin:0 0 12px;max-width:none}
.btn-wa{display:flex;align-items:center;justify-content:center;background:#25D366;color:#fff;border-color:#25D366;width:100%;text-align:center}
.btn-wa:hover{background:#1ebe5b;color:#fff}
.result-mail{display:block;text-align:center;font-size:.85rem;color:var(--brown);margin:12px 0 4px;text-decoration:underline}
.result-restart{display:block;margin:6px auto 0;background:none;border:0;font:inherit;font-size:.85rem;color:var(--muted);cursor:pointer;text-decoration:underline}
.result-small{font-size:.76rem;color:var(--muted);text-align:center;margin-top:14px;max-width:none}
@media(max-width:900px){
  .planner{padding:30px 22px;margin-top:-90px}
  .planner-building,.planner-result{margin-top:-90px}
  .style-grid,.when-grid{grid-template-columns:1fr}
  .result-layout{grid-template-columns:1fr;padding:8px 20px 28px}
  .result-head{padding:28px 20px 18px}
  .result-side{position:static}
  .planner-step legend{font-size:1.7rem}
}
@media(max-width:520px){
  .pick-grid{grid-template-columns:1fr 1fr;gap:10px}
  .pick-img{height:90px}
  .day{grid-template-columns:64px 1fr;gap:14px}
  .day-img{width:64px;height:64px}
  .result-days::before{left:31px}
}
@media(prefers-reduced-motion:reduce){.planner-step.is-current,.day,.build-steps li{animation:none}.build-dots span{animation:none;opacity:1}}

.park-map .leaflet-tile-pane{filter:saturate(.8) sepia(.1)}
