:root{
    --ink:#1D2B1F;
    --forest:#203524;
    --forest-deep:#152018;
    --sand:#F6F1E7;
    --sand-2:#EFE7D6;
    --clay:#fa5a46;
    --gold:#fac846;
    --olive:#70756E;
    --line: rgba(29,43,31,0.14);
    --white:#FFFDF9;
    --whatsapp-right:26px;
    --whatsapp-bottom:26px;
  }
  *{box-sizing:border-box; margin:0; padding:0;}
  html{scroll-behavior:smooth;}
  body{ overflow-x:hidden; }
  body{
    font-family:'Work Sans', sans-serif;
    color:var(--ink);
    background:var(--sand);
    -webkit-font-smoothing:antialiased;
  }
  h1,h2,h3,.display{
    font-family:'Fraunces', serif;
    font-weight:500;
    letter-spacing:-0.01em;
    line-height:1.05;
  }
  .accent{ font-style:italic; color:var(--gold); font-weight:500; }
  a{ color:inherit; text-decoration:none; }
  button, input, select, textarea{ font:inherit; }
  button, a, input, select, textarea, summary{ -webkit-tap-highlight-color:transparent; }
  :focus-visible{ outline:3px solid var(--gold); outline-offset:3px; }
  img{ display:block; max-width:100%; width:100%; height:100%; object-fit:cover; }
  .wrap{ max-width:1240px; margin:0 auto; padding:0 32px; }
  .wrap > *, .grid-4 > *, .why-grid > *, .team-grid > *, .detail-layout > *, .contact-layout > *{ min-width:0; }
  .eyebrow{
    font-size:12px; letter-spacing:0.18em; text-transform:uppercase;
    font-weight:600; color:var(--gold); display:flex; align-items:center; gap:10px;
  }
  .eyebrow::before{ content:""; width:22px; height:1px; background:var(--gold); display:block; }
  .btn{
    display:inline-flex; align-items:center; gap:8px;
    padding:14px 26px; border-radius:999px; font-size:14px; font-weight:600;
    letter-spacing:0.01em; cursor:pointer; border:1px solid transparent; white-space:nowrap;
    transition:transform .2s ease, background .2s ease, color .2s ease, border-color .2s ease;
  }
  @media (hover:hover){ .btn:hover{ transform:translateY(-1px); } }
  .btn-primary{ background:var(--gold); color:var(--forest-deep); }
  .btn-primary:hover{ background:#dcae52; }
  .btn-ghost{ background:transparent; color:var(--white); border-color:rgba(255,255,255,0.5); }
  .btn-ghost:hover{ border-color:#fff; background:rgba(255,255,255,0.08); }
  .btn-dark{ background:var(--forest); color:var(--sand); }
  .btn-dark:hover{ background:var(--forest-deep); }

  /* ---------- HEADER ---------- */
  header{
    position:sticky; top:0; z-index:50;
    background:rgba(21,32,24,0.72); backdrop-filter:blur(10px);
    border-bottom:1px solid rgba(255,255,255,0.08);
  }
  .nav{ display:flex; align-items:center; justify-content:space-between; height:80px; }
  .logo{ display:flex; align-items:center; gap:10px; color:var(--white); }
  .logo-mark{
    width:54px; height:54px; display:flex; align-items:center; justify-content:center;
    flex-shrink:0; border:0; border-radius:0; background:transparent; overflow:visible;
  }
  .logo-mark img{ width:100%; height:100%; object-fit:contain; }
  .logo-mark svg{ width:18px; height:18px; }
  .logo-text{ line-height:1.1; }
  .logo-text .name{ font-family:'Fraunces', serif; font-size:17px; font-weight:600; }
  .logo-text .sub{ font-size:9px; letter-spacing:0.16em; text-transform:uppercase; opacity:0.65; }
  .nav-links{ display:flex; align-items:center; gap:36px; }
  .nav-links a{ color:rgba(255,255,255,0.82); font-size:14px; font-weight:500; position:relative; padding:4px 0; }
  .nav-links a:hover{ color:#fff; }
  .nav-links a.active{ color:#fff; }
  .nav-links a.active::after{ content:""; position:absolute; left:0; right:0; bottom:-6px; height:1px; background:var(--gold); }
  .nav-right{ display:flex; align-items:center; gap:18px; }
  .icon-btn{ width:36px; height:36px; border-radius:50%; display:flex; align-items:center; justify-content:center; color:#fff; opacity:0.85; }
  .icon-btn:hover{ opacity:1; background:rgba(255,255,255,0.1); }
  .burger{ display:none; border:0; background:transparent; color:#fff; width:42px; height:42px; padding:10px; cursor:pointer; }
  .burger span{ display:block; width:22px; height:2px; margin:4px auto; background:currentColor; border-radius:2px; transition:transform .2s ease, opacity .2s ease; }

  /* ---------- HERO ---------- */
  .hero{ position:relative; min-height:92vh; display:flex; align-items:flex-end; color:#fff; overflow:hidden; }
  .hero-bg{ position:absolute; inset:0; z-index:0; }
  .hero-bg img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center bottom;
  display: block;
}
  .hero-bg video {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center bottom;
}
  .hero-scrim{
    position:absolute; inset:0; z-index:1;
    background:linear-gradient(180deg, rgba(15,22,16,0.55) 0%, rgba(15,22,16,0.15) 35%, rgba(15,22,16,0.35) 70%, rgba(15,22,16,0.88) 100%);
  }
  .hero-content{ position:relative; z-index:2; width:100%; padding-bottom:64px; }
  .hero-inner{ max-width:640px; }
  .hero h1{ font-size:clamp(40px, 6vw, 66px); margin:18px 0 20px; }
  .hero p{ font-size:17px; line-height:1.6; color:rgba(255,253,249,0.86); max-width:480px; margin-bottom:32px; }
  .hero-actions{ display:flex; gap:14px; flex-wrap:wrap; align-items:center; }
  .play{ display:flex; align-items:center; gap:10px; color:#fff; font-size:14px; font-weight:600; }
  .play-circle{ width:40px; height:40px; border-radius:50%; background:rgba(255,255,255,0.16); border:1px solid rgba(255,255,255,0.5); display:flex; align-items:center; justify-content:center; }

  /* ---------- PLANNER BAR (signature) ---------- */
  .planner-wrap{ position:relative; z-index:10; margin-top:-46px; }
  .planner{
    background:var(--white); border-radius:20px;
    box-shadow:0 24px 60px -20px rgba(21,32,24,0.35);
    display:flex; align-items:stretch; overflow:hidden; border:1px solid var(--line);
  }
  .planner-field{ flex:1; padding:16px 24px; position:relative; }
  .planner-field + .planner-field{ border-left:1px dashed var(--line); }
  .planner-field .label{ font-size:11px; text-transform:uppercase; letter-spacing:0.1em; color:var(--olive); font-weight:600; margin-bottom:4px; }
  .planner-field select, .planner-field input{
    border:none; outline:none; background:transparent; font-family:'Work Sans',sans-serif;
    font-size:15px; font-weight:600; color:var(--ink); width:100%; appearance:none;
  }
  .planner-btn{ margin:8px; padding:0 30px; }
  .planner-btn .btn{ height:100%; width:100%; justify-content:center; }

  /* dotted route motif */
  .route{
    display:flex; align-items:center; gap:6px; margin:0 32px;
  }
  .route span{ width:5px; height:5px; border-radius:50%; background:var(--line); }
  .route span:nth-child(3n){ background:var(--gold); }

  /* ---------- SECTIONS GENERIC ---------- */
  section{ padding:96px 0; }
  .section-head{ display:flex; justify-content:space-between; align-items:flex-end; margin-bottom:44px; gap:24px; flex-wrap:wrap; }
  .section-head h2{ font-size:clamp(28px,3.4vw,38px); margin-top:14px; max-width:560px; }
  .view-all{ font-size:13px; font-weight:600; display:flex; align-items:center; gap:6px; color:var(--forest); border-bottom:1px solid var(--forest); padding-bottom:2px; }

  /* ---------- WHY US ---------- */
  .why{ background:var(--forest-deep); color:var(--sand); }
  .why .eyebrow{ color:var(--gold); }
  .why .section-head h2{ color:#fff; }
  .why-copy{ max-width:620px; color:rgba(246,241,231,0.78); line-height:1.7; margin-bottom:56px; font-size:16px; }
  .why-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:1px; background:rgba(255,255,255,0.1); border:1px solid rgba(255,255,255,0.1); border-radius:18px; overflow:hidden; }
  .why-card{ background:var(--forest-deep); padding:34px 28px; }
  .why-card .num{ font-family:'Fraunces',serif; font-style:italic; color:var(--gold); font-size:14px; margin-bottom:22px; display:block; }
  .why-card h3{ font-size:19px; margin-bottom:10px; color:#fff; font-weight:500;}
  .why-card p{ font-size:14px; line-height:1.6; color:rgba(246,241,231,0.68); }

  /* ---------- EXPERIENCE CARDS ---------- */
  .grid-4{ display:grid; grid-template-columns:repeat(4,1fr); gap:28px; }
  .exp-card{ border-radius:18px; overflow:hidden; background:var(--white); border:1px solid var(--line); transition:transform .25s ease, box-shadow .25s ease; display:flex; flex-direction:column; height:100%; }
  @media (hover:hover){ .exp-card:hover{ transform:translateY(-4px); box-shadow:0 20px 40px -18px rgba(21,32,24,0.3); } }
  .exp-card .thumb{ height:210px; position:relative; flex-shrink:0; }
  .exp-card .thumb .tag{
    position:absolute; top:14px; left:14px; background:rgba(21,32,24,0.85); color:#fff;
    font-size:11px; padding:6px 14px; border-radius:999px; backdrop-filter:blur(6px); font-weight:600;
  }
  .exp-card .body{ padding:26px 24px; display:flex; flex-direction:column; gap:16px; flex:1; }
  .exp-card h3{ font-size:18px; font-weight:500; line-height:1.3; margin:0; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
  .exp-card p{ font-size:14.5px; color:var(--olive); line-height:1.55; margin:0; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
  .exp-card .exp-meta{ display:grid; grid-template-columns:repeat(3,1fr); gap:20px; margin:10px 0; padding:14px 0; border-top:1px solid var(--line); border-bottom:1px solid var(--line); align-items:center; }
  .exp-card .exp-meta .exp-meta-item{ flex:none; min-width:0; text-align:center; }
  .exp-card .cta{
    display:inline-flex;
    align-items:center;
    gap:8px;
    font-size:13px;
    font-weight:700;
    color:var(--clay);
    border:1px solid var(--clay);
    border-radius:999px;
    padding:12px 18px;
    transition:all .2s ease;
    margin-top:auto;
    align-self:flex-start;
  }
  .exp-card .cta:hover{
    background:var(--gold);
    color:var(--forest);
    border-color:var(--gold);
  }

  .hero-actions .play{
    display:inline-flex;
    align-items:center;
    gap:10px;
    padding:14px 24px;
    border:1px solid rgba(255,255,255,0.55);
    border-radius:999px;
    transition:background .2s ease, border-color .2s ease;
  }
  .hero-actions .play:hover{
    background:rgba(255,255,255,0.1);
    border-color:#fff;
  }

  /* ---------- PROMO BANNER ---------- */
  .promo{ padding:0; }
  .promo-card{
    background:var(--forest); border-radius:24px; overflow:hidden;
    display:grid; grid-template-columns:1.1fr 0.9fr; align-items:stretch; position:relative;
  }
  .promo-left{ padding:56px; color:var(--sand); display:flex; flex-direction:column; justify-content:center; }
  .promo-left .eyebrow{ color:var(--gold); margin-bottom:16px; }
  .promo-left h2{ font-size:clamp(28px,3.2vw,36px); color:#fff; margin-bottom:14px; }
  .promo-left p{ color:rgba(246,241,231,0.75); line-height:1.7; margin-bottom:14px; max-width:420px; font-size:15px;}
  .promo-meta{ display:flex; gap:28px; margin-bottom:30px; }
  .promo-meta div{ font-size:13px; color:rgba(246,241,231,0.6); }
  .promo-meta strong{ display:block; font-family:'Fraunces',serif; font-size:20px; color:#fff; font-weight:500; }
  .promo-right{ position:relative; }
  .promo-right {
  position: relative;
  min-height: 500px;
  overflow: hidden;
}
.promo-right img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
  .promo-badge{
    position:absolute; top:28px; right:28px; width:104px; height:104px; border-radius:50%;
    background:var(--gold); color:var(--forest-deep); display:flex; flex-direction:column;
    align-items:center; justify-content:center; text-align:center; font-family:'Fraunces',serif;
    box-shadow:0 10px 30px rgba(0,0,0,0.25);
  }
  .promo-badge .big{ font-size:22px; font-weight:600; line-height:1; }
  .promo-badge .small{ font-size:10px; text-transform:uppercase; letter-spacing:0.06em; margin-top:4px; font-family:'Work Sans',sans-serif; font-weight:700; }

  /* ---------- STORY ---------- */
  .story{ display:grid; grid-template-columns:0.9fr 1.1fr; gap:64px; align-items:center; }
  .story-img{ border-radius:20px; overflow:hidden; height:520px; }
  .story h2{ font-size:clamp(28px,3.4vw,40px); margin-bottom:22px; }
  .story p{ color:var(--olive); line-height:1.8; font-size:16px; margin-bottom:16px; max-width:480px; }
  .story-quote{ margin-top:28px; padding-left:20px; border-left:2px solid var(--gold); font-family:'Fraunces',serif; font-style:italic; font-size:17px; color:var(--forest); max-width:460px; line-height:1.6; }

  /* ---------- TEAM ---------- */
  .team-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:22px; }
  .team-card .thumb{ height:280px; border-radius:16px; overflow:hidden; margin-bottom:16px; }
  .team-card h3{ font-size:17px; margin-bottom:2px; }
  .team-card .role{ font-size:13px; color:var(--clay); font-weight:600; margin-bottom:8px; }
  .team-card p{ font-size:13px; color:var(--olive); line-height:1.5; }

  /* ---------- FINAL CTA ---------- */
  .final-cta{ background:var(--forest-deep); border-radius:28px; padding:80px 60px; text-align:center; position:relative; overflow:hidden; }
  .final-cta::before{
    content:""; position:absolute; inset:0;
    background-image: radial-gradient(circle, rgba(201,154,62,0.35) 1.5px, transparent 1.5px);
    background-size: 26px 26px; opacity:0.35;
  }
  .final-cta-inner{ position:relative; z-index:1; max-width:600px; margin:0 auto; }
  .final-cta h2{ color:#fff; font-size:clamp(30px,4vw,44px); margin-bottom:16px; }
  .final-cta p{ color:rgba(246,241,231,0.75); margin-bottom:32px; font-size:16px; line-height:1.6; }
  .final-cta .hero-actions{ justify-content:center; }

  /* ---------- FOOTER ---------- */
  footer{ background:var(--forest-deep); color:rgba(246,241,231,0.7); padding:72px 0 28px; margin-top:40px; }
  .foot-grid{ display:grid; grid-template-columns:1.5fr 1fr 1fr 1fr 1.3fr; gap:32px; padding-bottom:56px; border-bottom:1px solid rgba(255,255,255,0.1); }
  .foot-brand p{ font-size:13px; line-height:1.7; margin-top:16px; max-width:260px; color:rgba(246,241,231,0.55); }
  .foot-col h4{ font-size:12px; text-transform:uppercase; letter-spacing:0.08em; color:#fff; margin-bottom:18px; font-weight:600; }
  .foot-col a{ display:block; font-size:13.5px; margin-bottom:12px; color:rgba(246,241,231,0.6); }
  .foot-col a:hover{ color:#fff; }
  .newsletter-form{ display:flex; margin-top:14px; border:1px solid rgba(255,255,255,0.18); border-radius:999px; overflow:hidden; }
  .newsletter-form input{ flex:1; background:transparent; border:none; outline:none; padding:12px 16px; color:#fff; font-size:13px; }
  .newsletter-form button{ background:var(--gold); border:none; color:var(--forest-deep); font-weight:700; font-size:13px; padding:0 20px; cursor:pointer; }
  .newsletter-status{ min-height:18px; margin-top:8px; color:rgba(246,241,231,.68); font-size:11.5px; line-height:1.45; }
  .foot-bottom{ display:flex; justify-content:flex-start; align-items:center; gap:28px; padding-top:24px; font-size:12.5px; color:rgba(246,241,231,0.45); }
  .foot-social{ display:flex; flex-wrap:wrap; gap:10px; }
  .foot-social a{ width:38px; height:38px; border-radius:50%; border:1px solid rgba(255,255,255,0.22); color:#fff; display:flex; align-items:center; justify-content:center; transition:transform .25s ease, background-color .25s ease, border-color .25s ease, box-shadow .25s ease; }
  .foot-social a svg{ width:19px; height:19px; fill:currentColor; }
  .foot-social a:hover, .foot-social a:focus-visible{ transform:translateY(-4px); background:var(--gold); border-color:var(--gold); color:var(--forest-deep); box-shadow:0 12px 20px -12px rgba(0,0,0,.9); }
  .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; }

  /* ---------- GALLERY ---------- */
  .gallery-page header{ background:rgba(21,32,24,.94); }
  .gallery-hero{ min-height:620px; position:relative; display:flex; align-items:flex-end; color:var(--white); overflow:hidden; }
  .gallery-hero>img,.gallery-hero-scrim{ position:absolute; inset:0; width:100%; height:100%; }
  .gallery-hero>img{ object-fit:cover; object-position:center; }
  .gallery-hero-scrim{ background:linear-gradient(90deg,rgba(10,18,12,.82),rgba(10,18,12,.26)),linear-gradient(0deg,rgba(10,18,12,.5),transparent 65%); }
  .gallery-hero-content{ position:relative; z-index:1; padding-bottom:72px; }.gallery-hero h1{font-size:clamp(46px,7vw,82px);margin:18px 0;text-transform:uppercase}.gallery-hero p{max-width:620px;font-size:17px;line-height:1.65;color:rgba(255,253,249,.9)}
  .gallery-intro{max-width:920px;padding-top:112px;padding-bottom:68px}.gallery-intro p{font-family:'Fraunces',serif;font-size:clamp(21px,2.5vw,30px);line-height:1.38;margin-top:24px}.gallery-intro p+p{font-family:'Work Sans',sans-serif;font-size:16px;line-height:1.7;max-width:720px;color:var(--olive)}
  .gallery-section{padding-bottom:112px}.gallery-filters{border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:17px 0;margin-bottom:32px;display:flex;flex-wrap:wrap;gap:10px 26px}.gallery-filters button{appearance:none;border:0;background:transparent;color:var(--olive);padding:2px 0;text-transform:uppercase;letter-spacing:.13em;font-size:11px;font-weight:600;cursor:pointer;border-bottom:1px solid transparent}.gallery-filters button.is-active{color:var(--ink);border-color:var(--gold)}
  .gallery-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;transition:opacity .2s ease}.gallery-grid.is-filtering{opacity:.25}.gallery-card,.gallery-card.wide,.gallery-card.standard{appearance:none;border:0;padding:0;position:relative;overflow:hidden;cursor:pointer;color:#fff;text-align:left;min-width:0;background:var(--forest);grid-column:span 1;aspect-ratio:1/1}.gallery-card img{transition:transform .22s ease,filter .22s ease}.gallery-card-info{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:flex-end;padding:24px;opacity:0;background:linear-gradient(transparent 35%,rgba(8,14,10,.78));transition:opacity .22s ease}.gallery-card-info small{text-transform:uppercase;letter-spacing:.15em;font-size:10px;margin-bottom:7px}.gallery-card-info strong{font-family:'Fraunces',serif;font-size:25px;font-weight:500}.gallery-card-info em{font-style:normal;font-size:12px;margin-top:6px;color:rgba(255,255,255,.8)}.gallery-card-info b{float:right;font-size:17px;transition:transform .2s ease}
  @media (hover:hover){.gallery-card:hover img{transform:scale(1.04);filter:brightness(.78)}.gallery-card:hover .gallery-card-info{opacity:1}.gallery-card:hover .gallery-card-info b{transform:translate(3px,-3px)}}
  .gallery-break{background:var(--forest-deep);color:var(--white);padding:112px 0}.gallery-break .wrap{max-width:900px}.gallery-break h2,.gallery-closing h2{font-size:clamp(38px,5vw,64px);max-width:700px;margin:18px 0}.gallery-break p{max-width:620px;line-height:1.7;color:rgba(255,255,255,.77);margin-bottom:30px}.text-link{color:var(--gold);text-transform:uppercase;letter-spacing:.11em;font-weight:600;font-size:12px}.text-link span{font-size:18px;margin-left:5px}.gallery-closing{padding-top:112px;padding-bottom:112px}.gallery-closing p{max-width:570px;line-height:1.7;margin-bottom:30px;color:var(--olive)}
  .lightbox{display:none;position:fixed;inset:0;z-index:100;background:rgba(5,10,7,.9);backdrop-filter:blur(8px);align-items:center;justify-content:center;padding:40px 86px}.lightbox.is-open{display:flex}.lightbox figure{max-width:min(100%,1100px);max-height:100%;text-align:left;color:#fff}.lightbox figure img{width:auto;height:auto;max-width:100%;max-height:calc(100vh - 150px);object-fit:contain}.lightbox figcaption{padding-top:14px}.lightbox figcaption span{display:block;color:var(--gold);text-transform:uppercase;letter-spacing:.14em;font-size:10px}.lightbox figcaption strong{display:block;font-family:'Fraunces',serif;font-size:26px;font-weight:500;margin:3px 0}.lightbox figcaption small{color:rgba(255,255,255,.7)}.lightbox button{position:absolute;border:0;background:rgba(255,255,255,.13);color:#fff;width:46px;height:46px;border-radius:50%;font-size:24px;cursor:pointer}.lightbox-close{right:24px;top:22px;font-size:30px!important}.lightbox-prev{left:24px}.lightbox-next{right:24px}.lightbox-open{overflow:hidden}
  @media (max-width:720px){.gallery-hero{min-height:510px}.gallery-hero-content{padding-bottom:48px}.gallery-intro{padding-top:72px;padding-bottom:48px}.gallery-section{padding-bottom:72px}.gallery-grid{grid-template-columns:repeat(2,1fr);gap:10px}.gallery-card,.gallery-card.wide{grid-column:span 1;aspect-ratio:4/5}.gallery-card.standard{aspect-ratio:1/1}.gallery-card-info{opacity:1;padding:14px;background:linear-gradient(transparent 35%,rgba(8,14,10,.72))}.gallery-card-info strong{font-size:18px}.gallery-card-info em{font-size:10px}.gallery-card-info b{display:none}.gallery-break,.gallery-closing{padding-top:72px;padding-bottom:72px}.lightbox{padding:40px 18px 24px}.lightbox-prev{left:10px}.lightbox-next{right:10px}.lightbox button{width:38px;height:38px}.lightbox-close{right:12px;top:12px}}
  @media (prefers-reduced-motion:reduce){.gallery-grid,.gallery-card img,.gallery-card-info,.gallery-card-info b{transition:none!important}}

  /* ---------- BUILT ON TEK ---------- */
  .tek-signature{display:inline-flex;align-items:center;gap:5px;height:44px;margin-left:auto;color:rgba(246,241,231,.72);font-size:11px;font-weight:600;letter-spacing:.09em;text-transform:uppercase;white-space:nowrap;transition:color .2s ease,transform .2s ease,opacity .2s ease}.tek-signature i{width:1px;height:15px;background:rgba(246,241,231,.28)}.tek-signature img{width:86px;height:44px;object-fit:cover;object-position:center;transition:transform .2s ease,filter .2s ease}.tek-signature:hover,.tek-signature:focus-visible{color:var(--white);transform:translateX(3px);opacity:.92}.tek-signature:hover img,.tek-signature:focus-visible img{transform:scale(1.04);filter:brightness(1.12)}
  .tek-page{--tek-green:#5f8063;--tek-dark:var(--forest-deep);--tek-cream:var(--sand);background:var(--tek-dark);color:var(--tek-cream)}.tek-page *{box-sizing:border-box}.tek-wrap{width:min(1120px,calc(100% - 64px));margin-inline:auto}.tek-page h1,.tek-page h2,.tek-page h3{font-family:'Fraunces',serif;font-weight:500;line-height:1.03}.tek-page p{line-height:1.7}.tek-label{display:block;color:var(--tek-green);font-size:11px;font-weight:700;letter-spacing:.17em;text-transform:uppercase}.tek-hero{min-height:100svh;display:grid;place-items:center;text-align:center;padding:80px 0}.tek-hero-logo{display:block;width:min(680px,92%);height:auto;max-height:340px;object-fit:contain;margin:35px auto 48px}.tek-hero h1{font-size:clamp(42px,6vw,78px);max-width:900px;margin:auto;text-transform:uppercase}.tek-hero p{max-width:690px;margin:28px auto 0;color:rgba(246,241,231,.72);font-size:17px}.tek-statement{padding:150px 0}.tek-statement h2,.tek-project h2,.tek-philosophy h2,.tek-cta h2{font-size:clamp(42px,6vw,76px);max-width:880px;margin:22px 0 34px}.tek-statement h2 i{color:var(--tek-green)}.tek-statement p{font-family:'Fraunces',serif;font-size:clamp(21px,2.5vw,31px);max-width:820px;color:rgba(246,241,231,.84)}.tek-approach{background:var(--tek-cream);color:var(--tek-dark);padding:120px 0}.tek-section-head h2{font-size:clamp(37px,5vw,64px);margin-top:17px}.tek-approach-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:28px;margin-top:65px}.tek-approach article{border-top:1px solid var(--tek-green);padding-top:18px}.tek-approach article b{color:var(--tek-green);font-size:13px;letter-spacing:.12em}.tek-approach h3{font-size:25px;margin:42px 0 14px}.tek-approach p{font-size:14px;color:rgba(21,32,24,.7)}.tek-project{padding:150px 0}.tek-meta{color:rgba(246,241,231,.55);text-transform:uppercase;letter-spacing:.1em;font-size:11px;margin-top:16px}.tek-project-copy{max-width:770px;font-size:18px;color:rgba(246,241,231,.76)}.tek-project-copy p+p{margin-top:20px}.tek-project h3{font-size:28px;margin:55px 0 18px}.tek-project ul{list-style:none;max-width:800px;border-top:1px solid var(--tek-green)}.tek-project li{padding:16px 0 16px 20px;border-bottom:1px solid rgba(246,241,231,.15);position:relative;color:rgba(246,241,231,.77)}.tek-project li:before{content:'—';position:absolute;left:0;color:var(--tek-green)}.tek-philosophy{background:var(--tek-cream);color:var(--tek-dark);padding:140px 0}.tek-philosophy p{font-family:'Fraunces',serif;font-size:clamp(20px,2.3vw,29px);max-width:820px}.tek-cta{padding:145px 0}.tek-cta p{max-width:630px;color:rgba(246,241,231,.72);margin-bottom:36px;font-size:17px}.tek-button,.tek-back{display:inline-flex;align-items:center;min-height:50px;padding:14px 23px;font-size:13px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;transition:background-color .2s ease,color .2s ease,border-color .2s ease}.tek-button{background:var(--tek-green);color:var(--tek-dark);border:1px solid var(--tek-green);margin-right:16px}.tek-button:hover{background:transparent;color:var(--tek-green)}.tek-back{border:1px solid rgba(246,241,231,.35);color:var(--tek-cream)}.tek-back:hover{border-color:var(--tek-green);color:var(--tek-green)}
  @media (max-width:760px){.tek-wrap{width:min(100% - 36px,1120px)}.tek-hero{min-height:780px;padding:70px 0}.tek-hero-logo{width:100%;margin:28px auto 38px}.tek-statement,.tek-project,.tek-cta{padding:85px 0}.tek-approach,.tek-philosophy{padding:80px 0}.tek-approach-grid{grid-template-columns:repeat(2,1fr);gap:26px 18px;margin-top:46px}.tek-approach h3{font-size:21px;margin:28px 0 10px}.tek-button,.tek-back{width:100%;justify-content:center}.tek-button{margin:0 0 13px}}
  @media (prefers-reduced-motion:reduce){.tek-signature,.tek-button,.tek-back{transition:none}}
  .tek-page{--tek-green:#0082C3;}
  .tek-hero-logo-panel{width:min(720px,94%);margin:28px auto 42px;background:#fff;overflow:hidden;}
  .tek-hero-logo{width:100%;max-height:none;margin:0;aspect-ratio:1/1;object-fit:contain;}
  @media (max-width:760px){.tek-hero-logo-panel{width:min(500px,100%);margin:24px auto 34px;}.tek-hero-logo{min-height:0;}}

  /* ---------- WHATSAPP FLOAT ---------- */
  .wa-float{
    position:fixed; bottom:var(--wa-footer-clearance,var(--whatsapp-bottom)); right:var(--whatsapp-right); z-index:60;
    width:56px; height:56px; border-radius:50%; background:var(--olive); display:flex;
    align-items:center; justify-content:center; box-shadow:0 12px 28px rgba(0,0,0,0.25); transition:transform .22s ease, background-color .22s ease, box-shadow .22s ease;
  }
  .wa-float:hover, .wa-float:focus-visible{ transform:translateY(-4px); background:#5f8063; box-shadow:0 16px 30px rgba(0,0,0,.3); }

  @media (max-width: 1080px){
    .nav{ position:relative; }
    .nav-links{ display:none; }
    .burger{ display:block; }
    .nav-links.is-open{ position:absolute; top:calc(100% - 1px); left:0; right:0; z-index:70; display:flex; flex-direction:column; align-items:stretch; gap:0; padding:10px 20px 18px; background:var(--forest-deep); border:1px solid rgba(255,255,255,.1); border-top:0; box-shadow:0 16px 30px rgba(0,0,0,.2); }
    .nav-links.is-open a{ padding:13px 4px; font-size:15px; border-bottom:1px solid rgba(255,255,255,.09); }
    .nav-links.is-open a:last-child{ border-bottom:0; }
    .nav-links a.active::after{ display:none; }
    .burger.is-open span:nth-child(1){ transform:translateY(6px) rotate(45deg); }
    .burger.is-open span:nth-child(2){ opacity:0; }
    .burger.is-open span:nth-child(3){ transform:translateY(-6px) rotate(-45deg); }
    .why-grid{ grid-template-columns:repeat(2,1fr); }
    .grid-4{ grid-template-columns:repeat(2,1fr); }
    .team-grid{ grid-template-columns:repeat(2,1fr); }
    .promo-card{ grid-template-columns:1fr; }
    .promo-right{ min-height:260px; height:260px; }
    .story{ grid-template-columns:1fr; }
    .story-img{ height:320px; order:-1; }
    .foot-grid{ grid-template-columns:repeat(2,1fr); }
    .planner{ flex-wrap:wrap; }
    .planner-field{ flex:1 1 45%; }
    .planner-field + .planner-field{ border-left:none; border-top:1px dashed var(--line); }
    .planner-btn{ flex:1 1 100%; }
  }
  @media (max-width: 620px){
    .wrap{ padding:0 18px; }
    section{ padding:64px 0; }
    .nav{ height:68px; }
    .logo{ gap:8px; }
    .logo-mark{ width:44px; height:44px; }
    .logo-text .name{ font-size:15px; }
    .nav-right{ display:none; }
    .nav-links.is-open{ padding-left:18px; padding-right:18px; }
    .hero{ min-height:78svh; }
    .hero-content{ padding-bottom:38px; }
    .hero h1{ font-size:clamp(34px,10vw,46px); margin:14px 0 16px; }
    .hero p{ font-size:15px; margin-bottom:24px; }
    .hero-actions{ gap:10px; }
    .btn{ padding:12px 18px; font-size:13px; }
    .hero-actions .play{ padding:12px 18px; }
    .planner-wrap{ margin-top:-26px; }
    .planner{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); border-radius:16px; overflow:visible; }
    .planner-field{ min-width:0; padding:14px 15px; border-top:1px dashed var(--line); }
    .planner-field + .planner-field{ border-left:0; border-top:1px dashed var(--line); }
    .planner-field:nth-child(-n+2){ border-top:0; }
    .planner-field:nth-child(even){ border-left:1px dashed var(--line); }
    .planner-field select{ min-height:28px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:14px; }
    .planner-btn{ grid-column:1 / -1; margin:10px; padding:0; }
    .planner-btn .btn{ min-height:50px; }
    .section-head{ margin-bottom:30px; }
    .why-copy{ margin-bottom:34px; font-size:15px; }
    .promo-card{ border-radius:18px; }
    .promo-left{ padding:34px 24px; }
    .promo-meta{ gap:18px; flex-wrap:wrap; }
    .promo-right{ min-height:260px; }
    .promo-badge{ top:16px; right:16px; width:78px; height:78px; }
    .promo-badge .big{ font-size:18px; }
    .story{ gap:30px; }
    .story-img{ height:260px; }
    .story p{ font-size:15px; }
    .team-card .thumb{ height:250px; }
    .final-cta{ border-radius:20px; }
    footer{ padding-top:52px; }
    .foot-grid{ grid-template-columns:1fr; gap:28px; padding-bottom:38px; }
    .newsletter-form{ max-width:360px; }
    .why-grid{ grid-template-columns:1fr; }
    .grid-4{ grid-template-columns:1fr; }
    .team-grid{ grid-template-columns:1fr; }
    .final-cta{ padding:56px 24px; }
    .foot-bottom{ align-items:flex-start; flex-direction:column; gap:18px; }
    .foot-bottom .foot-social{ order:-1; margin-bottom:30px; }
    :root{ --whatsapp-right:16px; --whatsapp-bottom:16px; }
    .wa-float{ width:50px; height:50px; }
    .wa-float svg{ width:23px; height:23px; }
  }
  @media (max-width: 390px){
    .planner{ grid-template-columns:1fr; }
    .planner-field:nth-child(even){ border-left:0; }
    .planner-field:nth-child(2){ border-top:1px dashed var(--line); }
  }

/* ---------- INTERIOR PAGE HERO (About / Team / Adventures / Contact) ---------- */
.page-hero{ position:relative; min-height:52vh; display:flex; align-items:flex-end; color:#fff; overflow:hidden; }
.page-hero .hero-bg, .page-hero .hero-scrim{ position:absolute; inset:0; }
.page-hero .hero-scrim{ background:linear-gradient(180deg, rgba(15,22,16,0.5) 0%, rgba(15,22,16,0.25) 40%, rgba(15,22,16,0.92) 100%); }
.page-hero .wrap{ position:relative; z-index:2; padding-bottom:56px; }
.breadcrumb{ font-size:12.5px; color:rgba(255,255,255,0.65); margin-bottom:16px; display:flex; gap:8px; align-items:center; }
.breadcrumb a{ color:rgba(255,255,255,0.65); }
.breadcrumb a:hover{ color:#fff; }
.page-hero h1{ font-size:clamp(34px,5vw,54px); color:#fff; max-width:680px; }
.page-hero p{ color:rgba(246,241,231,0.82); font-size:16px; max-width:520px; margin-top:14px; line-height:1.6; }

/* ---------- FILTER BAR (Adventures listing) ---------- */
.filter-bar{ background:var(--white); border:1px solid var(--line); border-radius:16px; padding:22px 28px; display:flex; gap:36px; align-items:center; margin-bottom:44px; flex-wrap:nowrap; }
.filter-group{ display:flex; flex-direction:column; gap:8px; flex-shrink:0; align-items:flex-start; }
.filter-group .label{ font-size:10px; text-transform:uppercase; letter-spacing:0.08em; color:var(--olive); font-weight:600; }
.filter-pills{ display:flex; gap:6px; flex-wrap:nowrap; }
.pill{ padding:9px 14px; border-radius:999px; border:1px solid var(--line); font-size:12px; font-weight:600; color:var(--ink); cursor:pointer; background:transparent; transition:.2s ease; white-space:nowrap; flex-shrink:0; }
.pill.is-active, .pill:hover{ background:var(--forest); color:#fff; border-color:var(--forest); }
.results-count{ font-size:12px; color:var(--olive); font-weight:600; white-space:nowrap; margin-left:auto; flex-shrink:0; }

.exp-meta-item{ display:flex; flex-direction:column; align-items:center; gap:6px; color:var(--olive); font-size:12px; font-weight:500; line-height:1.3; }
.meta-icon{ width:20px; height:20px; display:flex; align-items:center; justify-content:center; color:var(--gold); flex-shrink:0; opacity:1; }

@media (max-width: 980px){
  .trip-map-card{ grid-template-columns:1fr; }
  .map-panel{ padding:22px; }
  .map-key{ grid-template-columns:repeat(3,1fr); margin-bottom:18px; padding-bottom:18px; }
  .map-route-controls{ display:grid; grid-template-columns:1fr 1fr; gap:10px; align-items:end; }
  .map-instruction{ grid-column:1 / -1; }.map-route-controls label{ margin:0; }.map-route-controls select,.map-clear{ margin:0; }.map-result{ grid-column:1 / -1; margin-top:2px; min-height:0; }
  .filter-bar{ gap:24px; padding:20px 24px; }
}

@media (max-width: 768px){
  .filter-bar{ gap:20px; padding:18px 20px; flex-wrap:wrap; }
  .filter-pills{ flex-wrap:wrap; }
  .filter-group .label{ font-size:9px; }
  .pill{ padding:8px 12px; font-size:11px; }
  .grid-4{ grid-template-columns:1fr; }
  .exp-card .thumb{ height:200px; }
  .exp-card .body{ padding:22px; gap:14px; }
}

@media (max-width: 620px){
  .adventure-map-section{ padding-top:0; }.map-heading{ margin-bottom:18px; }.map-heading h2{ font-size:29px; }.trip-map-card,#adventure-map{ min-height:400px; border-radius:16px; }.map-key{ grid-template-columns:1fr; gap:8px; }.map-route-controls{ grid-template-columns:1fr; }.map-result{ grid-column:auto; }
  .page-hero{ min-height:46svh; }
  .page-hero .wrap{ padding-bottom:34px; }
  .page-hero h1{ font-size:clamp(30px,9vw,42px); }
  .page-hero p{ font-size:15px; }
  .breadcrumb{ flex-wrap:wrap; gap:5px 8px; }
  /* Keep the adventure filters compact: one swipeable row, not a tall dashboard. */
  .filter-bar{ align-items:center; gap:14px; padding:12px 14px; flex-wrap:nowrap; overflow-x:auto; scrollbar-width:thin; scroll-snap-type:x proximity; }
  .filter-group{ width:auto; flex-direction:row; align-items:center; gap:7px; flex:0 0 auto; }
  .filter-pills{ width:auto; flex-wrap:nowrap; }
  .filter-group .label{ flex:0 0 auto; font-size:9px; }
  .pill{ min-height:38px; padding:8px 12px; font-size:11px; scroll-snap-align:start; }
  .results-count{ width:auto; margin:0; padding-left:2px; font-size:11px; }
  .exp-card .thumb{ height:180px; }
  .exp-card .body{ padding:20px; gap:12px; }
  .exp-card h3{ font-size:17px; }
  .exp-card p{ font-size:13.5px; }
  .exp-card .exp-meta{ grid-template-columns:repeat(3, minmax(0, 1fr)); gap:4px; margin:8px 0; padding:12px 0; }
  .exp-meta-item{ gap:5px; font-size:10.5px; overflow-wrap:anywhere; }
  .meta-icon{ width:18px; height:18px; }
  .exp-card .cta{ min-height:44px; padding:11px 16px; }
  .newsletter-form{ min-height:46px; }
  .newsletter-form button{ min-width:64px; }
  .wa-float{ bottom:calc(var(--whatsapp-bottom) + env(safe-area-inset-bottom)); right:calc(var(--whatsapp-right) + env(safe-area-inset-right)); }
}

/* Keep the Built on TEK credit below the copyright and away from the WhatsApp control. */
.foot-bottom{display:grid;grid-template-columns:minmax(0,1fr) auto;column-gap:28px;row-gap:5px;align-items:center;}
.foot-bottom>span:first-child{grid-column:1;grid-row:1;}
.foot-bottom .tek-signature{grid-column:1;grid-row:2;justify-self:start;margin:0;height:44px;color:rgba(246,241,231,.72);}
.tek-signature i,.tek-signature svg{display:none;}.tek-signature img{display:block;width:86px;height:44px;object-fit:cover;object-position:center;flex:none;}
.foot-bottom .foot-social{grid-column:2;grid-row:1 / span 2;align-self:center;}
@media (max-width:620px){.foot-bottom{grid-template-columns:1fr;row-gap:7px}.foot-bottom>span:first-child,.foot-bottom .tek-signature,.foot-bottom .foot-social{grid-column:1}.foot-bottom .foot-social{grid-row:1;margin:0}.foot-bottom>span:first-child{grid-row:2}.foot-bottom .tek-signature{grid-row:3}.foot-bottom .foot-social{order:initial;}}

/* ---------- PREMIUM ADVENTURE FINDER ---------- */
.filter-bar{ position:relative; display:grid; grid-template-columns:minmax(165px,.85fr) repeat(3,minmax(170px,1fr)) auto; gap:12px; align-items:stretch; padding:14px; border:1px solid rgba(32,53,36,.14); border-radius:22px; background:linear-gradient(135deg,#fffdf8 0%,#f4f0e5 100%); box-shadow:0 20px 40px -32px rgba(21,32,24,.72); }
.filter-intro{ display:flex; flex-direction:column; justify-content:center; padding:12px 16px; border-radius:14px; color:var(--sand); background:var(--forest-deep); }.filter-intro .eyebrow{ color:var(--gold); font-size:9px; }.filter-intro p{ margin:8px 0 0; color:rgba(246,241,231,.7); font:500 13px/1.4 'Work Sans',sans-serif; }
.filter-group{ justify-content:center; gap:10px; min-width:0; padding:12px 14px; border:1px solid rgba(32,53,36,.1); border-radius:14px; background:rgba(255,255,255,.72); }.filter-group .label{ color:var(--forest); font-size:9px; letter-spacing:.13em; }.filter-pills{ gap:5px; flex-wrap:wrap; }
.pill{ min-height:34px; padding:7px 10px; border-color:transparent; color:var(--olive); background:var(--sand); font-size:11px; box-shadow:inset 0 0 0 1px rgba(32,53,36,.1); }.pill.is-active{ color:var(--forest-deep); background:var(--gold); box-shadow:none; border-color:var(--gold); }.pill:hover:not(.is-active),.pill:focus-visible{ color:var(--forest-deep); border-color:rgba(32,53,36,.24); background:#fff; outline:none; }
.filter-actions{ display:flex; flex-direction:column; align-items:flex-end; justify-content:center; gap:8px; min-width:112px; padding:10px 6px 10px 10px; }.results-count{ margin:0; color:var(--forest); font-size:11px; text-align:right; }.filter-reset{ padding:0; border:0; border-bottom:1px solid currentColor; color:var(--olive); background:transparent; font:600 11px 'Work Sans',sans-serif; cursor:pointer; }.filter-reset:hover,.filter-reset:focus-visible{ color:var(--forest-deep); outline:none; }
@media (max-width:1180px){ .filter-bar{ grid-template-columns:minmax(175px,1fr) repeat(2,minmax(190px,1fr)); }.filter-actions{ grid-column:2 / 4; flex-direction:row; justify-content:flex-end; align-items:center; }.filter-group:last-of-type{ grid-column:2 / 3; } }
@media (max-width:760px){ .filter-bar{ grid-template-columns:1fr 1fr; padding:10px; border-radius:18px; gap:9px; overflow:visible; }.filter-intro{ grid-column:1 / -1; padding:14px; }.filter-group{ padding:12px; }.filter-group:first-of-type{ grid-column:1 / -1; }.filter-group:last-of-type{ grid-column:auto; }.filter-actions{ grid-column:1 / -1; flex-direction:row; justify-content:space-between; min-width:0; padding:7px 4px 3px; }.results-count{ text-align:left; }.pill{ padding:7px 9px; } }
@media (max-width:390px){ .filter-bar{ grid-template-columns:1fr; }.filter-group,.filter-group:first-of-type,.filter-group:last-of-type{ grid-column:auto; }.filter-actions{ grid-column:auto; } }

/* Experiences filter: mobile-only bottom-sheet presentation. */
.mobile-adventure-filter{display:none;}
@media (max-width:620px){
  .mobile-adventure-filter{display:block;margin-bottom:28px;}.mobile-adventure-filter + .filter-bar{display:none;}
  .mobile-filter-trigger{display:flex;width:100%;min-height:54px;align-items:center;gap:11px;padding:0 17px;border:1px solid rgba(32,53,36,.17);border-radius:14px;color:var(--forest-deep);background:var(--white);box-shadow:0 13px 28px -23px rgba(21,32,24,.66);font:600 13px 'Work Sans',sans-serif;text-align:left;cursor:pointer;}.mobile-filter-trigger>span{color:var(--gold);font-size:21px;line-height:1}.mobile-filter-trigger b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mobile-filter-trigger em{margin-left:auto;color:var(--olive);font-style:normal;font-size:19px}
  .mobile-filter-backdrop{position:fixed;inset:0;z-index:80;background:rgba(10,18,12,.56);opacity:0;animation:mobile-filter-fade .25s ease-out forwards;}.mobile-filter-sheet{position:fixed;right:0;bottom:0;left:0;z-index:81;max-height:calc(100svh - 45px);overflow-y:auto;padding:12px 18px calc(20px + env(safe-area-inset-bottom));border-radius:22px 22px 0 0;background:var(--sand);box-shadow:0 -18px 48px rgba(0,0,0,.25);animation:mobile-filter-up .3s ease-out forwards;}.mobile-filter-sheet[hidden],.mobile-filter-backdrop[hidden]{display:none!important}.mobile-filter-handle{width:38px;height:4px;margin:0 auto 18px;border-radius:999px;background:rgba(29,43,31,.22)}.mobile-filter-heading{display:flex;align-items:center;justify-content:space-between;padding-bottom:16px;border-bottom:1px solid var(--line)}.mobile-filter-heading h2{font-size:25px;color:var(--forest-deep)}.mobile-filter-close{width:38px;height:38px;border:1px solid var(--line);border-radius:50%;color:var(--forest-deep);background:var(--white);font:400 27px/1 Arial,sans-serif;cursor:pointer}.mobile-filter-options{padding:8px 0 86px}.mobile-filter-group{padding:21px 0 2px}.mobile-filter-group h3{margin-bottom:11px;color:var(--forest);font-family:'Work Sans',sans-serif;font-size:10px;font-weight:700;letter-spacing:.14em;text-transform:uppercase}.mobile-filter-chips{display:flex;flex-wrap:wrap;gap:8px}.mobile-filter-chip{min-height:44px;padding:9px 13px;border:1px solid rgba(29,43,31,.18);border-radius:999px;color:var(--forest);background:var(--white);font:600 12px 'Work Sans',sans-serif;cursor:pointer;transition:background-color .15s ease,color .15s ease,border-color .15s ease}.mobile-filter-chip.is-active{border-color:var(--gold);color:var(--forest-deep);background:var(--gold)}.mobile-filter-actions{position:sticky;bottom:-20px;display:grid;grid-template-columns:auto 1fr;gap:12px;align-items:center;margin:0 -18px;padding:13px 18px calc(13px + env(safe-area-inset-bottom));border-top:1px solid var(--line);background:rgba(246,241,231,.96)}.mobile-filter-actions button{min-height:48px;border-radius:999px;font:700 12px 'Work Sans',sans-serif;cursor:pointer}.mobile-filter-reset{padding:0 8px;border:0;color:var(--olive);background:transparent;text-decoration:underline;text-underline-offset:4px}.mobile-filter-search{padding:0 20px;border:1px solid var(--gold);color:var(--forest-deep);background:var(--gold)}.mobile-filter-open{overflow:hidden}@keyframes mobile-filter-up{from{transform:translateY(100%)}to{transform:translateY(0)}}@keyframes mobile-filter-fade{to{opacity:1}}
}
@media (prefers-reduced-motion:reduce){.mobile-filter-backdrop,.mobile-filter-sheet,.mobile-filter-chip{animation:none!important;transition:none!important}}

/* ---------- ITINERARY / DETAIL PAGE ---------- */
.detail-hero{ position:relative; min-height:64vh; display:flex; align-items:flex-end; color:#fff; overflow:hidden; }
.detail-hero .hero-bg, .detail-hero .hero-scrim{ position:absolute; inset:0; }
.detail-hero .hero-scrim{ background:linear-gradient(180deg, rgba(15,22,16,0.35) 0%, rgba(15,22,16,0.15) 30%, rgba(15,22,16,0.92) 100%); }
.detail-hero .wrap{ position:relative; z-index:2; padding-bottom:44px; }
.detail-meta-row{ display:flex; gap:26px; margin-top:20px; flex-wrap:wrap; }
.detail-meta-row div{ font-size:13px; color:rgba(246,241,231,0.7); }
.detail-meta-row strong{ display:block; font-family:'Fraunces',serif; font-size:19px; color:#fff; font-weight:500; }

.detail-layout{ display:grid; grid-template-columns:1.6fr 1fr; gap:64px; align-items:start; }
.route-map-static{ padding:34px 0 0; }
.route-map-static-card{ display:grid; grid-template-columns:minmax(260px,1.1fr) 1fr; overflow:hidden; border:1px solid var(--line); border-radius:18px; background:var(--white); box-shadow:0 18px 38px -30px rgba(21,32,24,.68); }
.route-map-gis{ min-height:300px; width:100%; background:#dce9df; }
.route-map-static-visual{ display:none; }
.route-map-static-content{ display:flex; flex-direction:column; justify-content:center; align-items:flex-start; padding:30px; background:var(--forest-deep); color:var(--sand); }
.route-map-static-content h2{ margin:10px 0 12px; color:#fff; font-size:clamp(24px,2.8vw,32px); }
.route-map-static-content p{ color:rgba(246,241,231,.76); font-size:14px; line-height:1.6; }
.route-map-static-content > p:not(.route-label){ font-size:0; }.route-map-static-content > p:not(.route-label)::after{ content:'Explore the planned route, nearby stays, airport and local essentials.'; font-size:14px; }
.route-map-static-content .route-label{ margin-bottom:18px; color:#fff; font-weight:600; }.route-map-static-content .route-label strong{ color:var(--gold); }
.route-map-static-content .btn{ margin-top:4px; }
.detail-main h2{ font-size:26px; margin:44px 0 16px; }
.detail-main h2:first-child{ margin-top:0; }
.detail-main p{ color:var(--olive); line-height:1.75; font-size:15.5px; margin-bottom:14px; }
.highlight-list{ list-style:none; display:grid; grid-template-columns:1fr 1fr; gap:12px 20px; }
.highlight-list li{ display:flex; gap:10px; align-items:flex-start; font-size:14.5px; color:var(--ink); line-height:1.5; }
.highlight-list li::before{ content:"✓"; color:var(--clay); font-weight:700; flex-shrink:0; }

.day-item{ border:1px solid var(--line); border-radius:14px; padding:20px 24px; margin-bottom:14px; background:var(--white); }
.day-item .day-tag{ font-size:11px; text-transform:uppercase; letter-spacing:0.08em; color:var(--gold); font-weight:700; margin-bottom:6px; }
.day-item h4{ font-family:'Fraunces',serif; font-size:18px; font-weight:500; margin-bottom:6px; }
.day-item p{ font-size:14px; color:var(--olive); margin:0; line-height:1.6; }

.inc-grid{ display:grid; grid-template-columns:1fr 1fr; gap:28px; }
.inc-col h4{ font-size:13px; text-transform:uppercase; letter-spacing:0.06em; margin-bottom:12px; color:var(--forest); }
.inc-col ul{ list-style:none; }
.inc-col li{ font-size:14px; color:var(--olive); padding:8px 0; border-bottom:1px dashed var(--line); }

.faq-item{ border-bottom:1px solid var(--line); padding:18px 0; }
.faq-item summary{ cursor:pointer; font-family:'Fraunces',serif; font-size:16.5px; font-weight:500; list-style:none; display:flex; justify-content:space-between; align-items:center; }
.faq-item summary::-webkit-details-marker{ display:none; }
.faq-item summary::after{ content:"+"; font-size:20px; color:var(--clay); }
.faq-item[open] summary::after{ content:"–"; }
.faq-item p{ margin-top:10px; color:var(--olive); font-size:14.5px; line-height:1.6; }

/* ---------- ADVENTURE MAP ---------- */
.adventure-map-section{ padding-top:12px; }
.map-heading{ display:flex; justify-content:space-between; gap:30px; margin-bottom:24px; }
.map-heading h2{ margin:10px 0 10px; font-size:clamp(28px,3vw,40px); color:var(--forest-deep); }
.map-heading p{ max-width:700px; color:var(--olive); font-size:15px; line-height:1.65; }
.trip-map-card{ display:grid; grid-template-columns:270px 1fr; min-height:480px; overflow:hidden; background:var(--white); border:1px solid var(--line); border-radius:20px; box-shadow:0 18px 42px -35px rgba(21,32,24,.65); }
.map-panel{ z-index:2; padding:26px 22px; background:var(--forest-deep); color:var(--sand); }
.map-key{ display:grid; gap:12px; margin-bottom:28px; padding-bottom:24px; border-bottom:1px solid rgba(255,255,255,.13); font-size:12px; font-weight:600; }
.map-key span{ display:flex; align-items:center; gap:9px; }
.map-dot{ width:10px; height:10px; border:2px solid rgba(255,255,255,.85); border-radius:50%; display:inline-block; }.map-dot.adventure{ background:var(--gold); }.map-dot.hotel{ background:#4b9dd5; transform:rotate(45deg); border-radius:1px; }.map-dot.airport{ background:#f5f1e8; }
.map-route-controls label{ display:block; margin:20px 0 7px; color:rgba(246,241,231,.68); font-size:11px; font-weight:600; letter-spacing:.08em; text-transform:uppercase; }.map-instruction{ font-size:13px; line-height:1.55; color:rgba(246,241,231,.72); }.map-instruction strong{ color:#fff; font-size:15px; }
.map-route-controls select,.map-route-controls input,.map-clear,.map-find-route{ width:100%; padding:11px 12px; border:1px solid rgba(255,255,255,.22); border-radius:8px; color:var(--sand); background:rgba(255,255,255,.08); font:inherit; font-size:13px; cursor:pointer; }.map-route-controls input{ cursor:text; }.map-route-controls input::placeholder{ color:rgba(246,241,231,.48); }.map-route-controls select option{ color:var(--ink); background:var(--white); }.map-clear,.map-find-route{ margin-top:10px; color:var(--gold); }.map-find-route{ color:var(--forest-deep); background:var(--gold); border-color:var(--gold); font-weight:600; }
.map-result{ min-height:72px; margin-top:22px; padding:13px; border-radius:10px; background:rgba(255,255,255,.09); color:rgba(246,241,231,.8); font-size:12px; line-height:1.45; }.map-result strong{ display:block; color:#fff; font-family:'Fraunces',serif; font-size:22px; font-weight:500; }.map-result small{ display:block; margin-top:3px; color:rgba(246,241,231,.54); }
#adventure-map{ min-height:480px; width:100%; background:#dbe7dc; }.map-note{ margin-top:10px; color:var(--olive); font-size:11px; }
#planning-map{ min-height:430px; width:100%; border-radius:14px; background:#dbe7dc; }.planning-map-section{ margin:28px 0; padding:22px; border:1px solid var(--line); border-radius:16px; background:var(--sand); }.planning-map-section h4{ margin:6px 0 8px; color:var(--forest-deep); font:500 22px 'Fraunces',serif; }.planning-map-section > p{ color:var(--olive); font-size:13px; line-height:1.5; }.planning-map-controls{ display:grid; grid-template-columns:1fr 1fr auto; gap:10px; margin:18px 0; }.planning-map-controls input,.planning-map-controls button{ min-height:44px; padding:10px 12px; border:1px solid var(--line); border-radius:8px; font:inherit; font-size:13px; }.planning-map-controls button{ border-color:var(--gold); color:var(--forest-deep); background:var(--gold); font-weight:700; cursor:pointer; }.planning-route-result{ margin-top:12px; color:var(--olive); font-size:13px; }.planning-route-result strong{ color:var(--forest-deep); }
.map-pin-wrap{ background:transparent; border:0; }.map-pin{ display:grid; place-items:center; width:31px; height:31px; border:2px solid #fff; border-radius:50%; color:#fff; background:var(--clay); box-shadow:0 2px 8px rgba(21,32,24,.32); font-size:13px; font-weight:700; }.map-pin.airport{ background:var(--forest); font-size:14px; }.map-pin.hotel{ background:#357eae; font-size:12px; }.map-pin.other{ width:18px; height:18px; background:#70756e; font-size:0; }.map-pin.route{ background:var(--clay); }.leaflet-tooltip{ padding:4px 7px; border:0; border-radius:5px; color:var(--forest-deep); font:600 11px 'Work Sans',sans-serif; box-shadow:0 2px 8px rgba(21,32,24,.15); }

@media (max-width: 980px){
  .trip-map-card{ grid-template-columns:1fr; }
  .map-panel{ padding:22px; }
  .map-key{ grid-template-columns:repeat(3,1fr); margin-bottom:18px; padding-bottom:18px; }
  .map-route-controls{ display:grid; grid-template-columns:1fr 1fr; gap:10px; align-items:end; }
  .map-instruction{ grid-column:1 / -1; }.map-route-controls label{ margin:0; }.map-route-controls select,.map-clear{ margin:0; }.map-result{ grid-column:1 / -1; margin-top:2px; min-height:0; }
}
@media (max-width: 620px){
  .adventure-map-section{ padding-top:0; }.map-heading{ margin-bottom:18px; }.map-heading h2{ font-size:29px; }.trip-map-card,#adventure-map{ min-height:400px; border-radius:16px; }.map-key{ grid-template-columns:1fr; gap:8px; }.map-route-controls{ grid-template-columns:1fr; }.map-result{ grid-column:auto; }
}

/* Compact adventure map preview + full-screen explorer */
.detail-main .adventure-map-section{ padding:26px 0 12px; }
.trip-map-preview{ position:relative; display:grid; grid-template-columns:minmax(190px, .85fr) 1.15fr; min-height:190px; overflow:hidden; border:1px solid var(--line); border-radius:16px; background:var(--forest-deep); box-shadow:0 18px 34px -30px rgba(21,32,24,.7); }
#adventure-map-preview{ min-height:190px; filter:saturate(.78) contrast(1.06); }
.map-fallback{ width:100%; min-height:190px; padding:24px; display:flex; flex-direction:column; align-items:flex-start; justify-content:flex-end; gap:8px; color:var(--sand); background:linear-gradient(135deg, rgba(32,53,36,.92), rgba(21,32,24,.72)), radial-gradient(circle at 72% 24%, rgba(250,200,70,.46) 0 3px, transparent 4px), radial-gradient(circle at 40% 68%, rgba(250,200,70,.4) 0 3px, transparent 4px); background-size:auto, 72px 72px, 92px 92px; }.map-fallback strong{ padding:9px 13px; border-radius:999px; color:var(--forest-deep); background:var(--gold); font:600 12px 'Work Sans',sans-serif; }
.trip-map-preview::after{ content:""; position:absolute; top:0; bottom:0; left:34%; width:90px; pointer-events:none; background:linear-gradient(90deg,transparent,var(--forest-deep)); }
.trip-map-preview-content{ z-index:1; display:flex; flex-direction:column; align-items:flex-start; justify-content:center; padding:24px 28px 24px 6px; color:var(--sand); }
.trip-map-preview-content h3{ margin:9px 0 8px; color:#fff; font-size:25px; }.trip-map-preview-content p{ max-width:390px; color:rgba(246,241,231,.72); font-size:13px; line-height:1.55; }
.trip-map-preview-content .suggested-route{ margin:0 0 8px; color:#fff; font-size:13px; }.suggested-route strong{ color:var(--gold); }
.map-open{ display:inline-flex; align-items:center; gap:9px; margin-top:16px; padding:9px 14px; border:1px solid rgba(250,200,70,.55); border-radius:999px; color:var(--forest-deep); background:var(--gold); font:600 12px 'Work Sans',sans-serif; cursor:pointer; transition:transform .18s ease, background .18s ease; }.map-open:hover{ background:#fff; transform:translateY(-1px); }.map-open span{ font-size:17px; line-height:1; }
.adventure-map-dialog{ width:min(1180px, calc(100vw - 44px)); height:min(780px, calc(100vh - 44px)); max-width:none; max-height:none; margin:auto; padding:0; overflow:hidden; border:0; border-radius:20px; background:var(--white); box-shadow:0 24px 70px rgba(0,0,0,.42); }.adventure-map-dialog::backdrop{ background:rgba(9,17,11,.72); backdrop-filter:blur(5px); }
.map-dialog-top{ display:flex; align-items:center; justify-content:space-between; gap:20px; min-height:94px; padding:18px 26px; background:var(--white); }.map-dialog-top h2{ margin-top:7px; color:var(--forest-deep); font-size:26px; }.map-close{ width:38px; height:38px; border:1px solid var(--line); border-radius:50%; color:var(--forest-deep); background:var(--sand); font:400 29px/1 Arial,sans-serif; cursor:pointer; }.map-close:hover{ background:var(--gold); }
.map-dialog-body{ display:grid; grid-template-columns:275px 1fr; height:calc(100% - 123px); }.map-dialog-body .map-panel{ overflow:auto; }.map-dialog-body #adventure-map{ min-height:0; height:100%; border-radius:0; }.adventure-map-dialog .map-note{ height:29px; margin:0; padding:8px 14px; background:var(--white); color:var(--olive); font-size:10px; }
.map-dot.amenity{ background:#9c6c3d; }
@media (max-width: 700px){
  .detail-main .adventure-map-section{ padding:20px 0 30px; }.trip-map-preview{ grid-template-columns:1fr; min-height:340px; }.trip-map-preview::after{ top:42%; right:0; bottom:auto; left:0; width:auto; height:90px; background:linear-gradient(transparent,var(--forest-deep)); }.trip-map-preview #adventure-map-preview,.trip-map-preview .map-fallback{ min-height:240px; touch-action:pan-x pan-y; }.trip-map-preview-content{ padding:22px; }.trip-map-preview-content h3{ font-size:23px; }.trip-map-preview-content .suggested-route{ font-size:14px; }.adventure-map-dialog{ width:100vw; height:100vh; border-radius:0; }.map-dialog-top{ min-height:82px; padding:14px 18px; }.map-dialog-top h2{ font-size:21px; }.map-dialog-body{ grid-template-columns:1fr; grid-template-rows:auto 1fr; height:calc(100% - 111px); }.map-dialog-body .map-panel{ padding:15px 18px; }.map-dialog-body .map-key{ grid-template-columns:1fr 1fr; margin-bottom:12px; padding-bottom:12px; }.map-dialog-body .map-route-controls{ grid-template-columns:1fr 1fr; }.map-dialog-body .map-instruction{ display:none; }.map-dialog-body .map-result{ grid-column:1 / -1; }.adventure-map-dialog .map-note{ display:none; }
}

.detail-sidebar{ position:sticky; top:104px; }
.book-card{ background:var(--white); border:1px solid var(--line); border-radius:18px; padding:28px; }
.book-card .price{ font-family:'Fraunces',serif; font-size:30px; margin-bottom:2px; }
.book-card .price span{ font-size:13px; color:var(--olive); font-family:'Work Sans',sans-serif; font-weight:500; }
.book-card .meta-line{ display:flex; justify-content:space-between; padding:10px 0; border-bottom:1px dashed var(--line); font-size:13.5px; color:var(--olive); }
.book-card .meta-line strong{ color:var(--ink); font-weight:600; }
.book-card .btn{ width:100%; justify-content:center; margin-top:18px; }
.book-card .btn-outline{ background:transparent; border:1px solid var(--forest); color:var(--forest); margin-top:10px; }

/* ---------- CONTACT ---------- */
.contact-layout{ display:grid; grid-template-columns:0.95fr 1.05fr; gap:64px; align-items:flex-start; }
.contact-info-card{ background:var(--forest-deep); color:var(--sand); border-radius:20px; padding:40px; }
.contact-info-card h3{ color:#fff; font-size:22px; margin-bottom:14px; }
.contact-info-card p{ color:rgba(246,241,231,0.72); font-size:14.5px; line-height:1.7; margin-bottom:26px; }
.contact-line{ display:flex; gap:12px; align-items:center; padding:12px 0; border-top:1px solid rgba(255,255,255,0.12); font-size:14px; }
.contact-line:first-of-type{ border-top:none; }
.contact-line .ic{ width:34px; height:34px; border-radius:50%; background:rgba(255,255,255,0.08); display:flex; align-items:center; justify-content:center; flex-shrink:0; }

.form-card{ background:var(--white); border:1px solid var(--line); border-radius:20px; padding:40px; }
.booking-summary{ display:flex; flex-direction:column; gap:5px; margin:-2px 0 22px; padding:16px 18px; border:1px solid rgba(250,200,70,.72); border-radius:12px; color:var(--forest-deep); background:linear-gradient(135deg,#fff8df,var(--sand)); }
.booking-summary strong{ font-family:'Fraunces',serif; font-size:19px; font-weight:500; }.booking-summary span{ color:var(--olive); font-size:13px; }
.booking-route-summary,.booking-price-summary{ margin-top:7px; padding-top:9px; border-top:1px solid rgba(32,53,36,.13); color:var(--olive); font-size:12px; line-height:1.45; }.booking-price-summary{ color:var(--forest-deep); font-size:14px; font-weight:600; }
.form-row{ display:grid; grid-template-columns:1fr 1fr; gap:18px; margin-bottom:18px; }
.field{ display:flex; flex-direction:column; gap:6px; }
.field.full{ grid-column:1 / -1; }
.field label{ font-size:12px; font-weight:600; color:var(--olive); text-transform:uppercase; letter-spacing:0.05em; }
.field input, .field select, .field textarea{
  border:1px solid var(--line); border-radius:10px; padding:12px 14px; font-family:'Work Sans',sans-serif;
  font-size:14.5px; color:var(--ink); outline:none; background:var(--sand);
}
.field input:focus, .field select:focus, .field textarea:focus{ border-color:var(--gold); }
.field textarea{ resize:vertical; min-height:110px; }
.form-card .btn{ width:100%; justify-content:center; margin-top:6px; }
.form-status{ color:var(--olive); font-size:13px; line-height:1.5; margin-top:14px; }

/* ---------- PREMIUM JOURNEY FORMS (CONTACT + BOOKING ONLY) ---------- */
#journey-enquiry-form{padding-top:4px;}
.form-card{padding:46px;background:linear-gradient(145deg,var(--white),var(--sand));box-shadow:0 26px 60px -46px rgba(21,32,24,.55);}
.form-card> .eyebrow{margin-bottom:0;}.form-card>h3{font-size:clamp(25px,2.4vw,31px)!important;line-height:1.12;margin-bottom:32px!important;}
.form-row{gap:22px;margin-bottom:26px;}.form-row:nth-of-type(2),.form-row:nth-of-type(5),.form-row:nth-of-type(7){margin-top:46px;position:relative;}
.form-row:nth-of-type(2)::before,.form-row:nth-of-type(5)::before,.form-row:nth-of-type(7)::before{position:absolute;top:-28px;left:0;color:var(--forest);font-size:11px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;}
.form-row:nth-of-type(2)::before{content:'Your details';}.form-row:nth-of-type(5)::before{content:'Trip preferences';}.form-row:nth-of-type(7)::before{content:'Tell us more';}
.field{gap:8px;}.field label{color:var(--forest);font-size:10.5px;letter-spacing:.13em;}
.field input,.field select,.field textarea{min-height:52px;border:1px solid rgba(29,43,31,.2);border-radius:8px;padding:14px 15px;background:rgba(255,253,249,.72);box-shadow:inset 0 -1px 0 rgba(29,43,31,.04);transition:border-color .2s ease,box-shadow .2s ease,background-color .2s ease;}
.field select{appearance:none;background-image:linear-gradient(45deg,transparent 50%,var(--forest) 50%),linear-gradient(135deg,var(--forest) 50%,transparent 50%);background-position:calc(100% - 18px) 22px,calc(100% - 13px) 22px;background-size:5px 5px,5px 5px;background-repeat:no-repeat;padding-right:42px;}
.field textarea{min-height:132px;line-height:1.6;}.field input::placeholder,.field textarea::placeholder{color:rgba(112,117,110,.75);font-size:13px;}
.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--gold);background:var(--white);box-shadow:0 0 0 3px rgba(250,200,70,.22);}
.booking-summary{gap:8px;margin:0 0 36px;padding:22px 24px;border-color:rgba(250,200,70,.8);border-radius:14px;background:var(--sand);box-shadow:0 15px 28px -28px rgba(21,32,24,.6);position:relative;}.booking-summary::before{content:'Your selected journey';display:block;color:var(--forest);font-size:10px;font-weight:700;letter-spacing:.15em;text-transform:uppercase;margin-bottom:2px;}.booking-summary strong{font-size:25px;line-height:1.15;}.booking-summary span{font-size:13.5px;}.booking-route-summary,.booking-price-summary{padding-top:12px;}.booking-price-summary{font-family:'Fraunces',serif;font-size:17px;}
.form-card .btn{min-height:56px;margin-top:8px;font-size:14px;box-shadow:0 12px 20px -15px rgba(21,32,24,.8);}.form-card .btn:hover{box-shadow:0 16px 24px -16px rgba(21,32,24,.8);}.form-status{max-width:430px;margin:13px auto 0;text-align:center;font-size:12px;color:var(--olive);}
.planning-map-section{margin:0 0 30px;padding:28px;border:1px solid var(--line);border-radius:18px;background:var(--sand);box-shadow:0 22px 42px -36px rgba(21,32,24,.55);}.planning-map-section h4{margin:12px 0 9px;color:var(--forest-deep);font-size:24px;}.planning-map-section>p{color:var(--olive);font-size:13px;line-height:1.65;}.planning-map-controls{display:grid;grid-template-columns:1fr 1fr auto;gap:10px;margin:21px 0 15px;}.planning-map-controls input{min-height:46px;padding:11px 13px;border:1px solid var(--line);border-radius:8px;background:var(--white);color:var(--ink);font:inherit;font-size:13px;outline:0;}.planning-map-controls input:focus{border-color:var(--gold);box-shadow:0 0 0 3px rgba(250,200,70,.22);}.planning-map-controls button{min-height:46px;padding:0 17px;border:0;border-radius:8px;background:var(--forest);color:var(--sand);font:600 12px 'Work Sans',sans-serif;cursor:pointer;transition:background .2s ease,transform .2s ease;}.planning-map-controls button:hover{background:var(--forest-deep);transform:translateY(-1px);}.planning-map-section #planning-map{min-height:350px;border:1px solid rgba(29,43,31,.15);border-radius:12px;overflow:hidden;box-shadow:0 15px 30px -25px rgba(21,32,24,.7);}.planning-route-result{margin-top:12px!important;padding-top:12px;border-top:1px solid var(--line);font-size:12px!important;}
@media (max-width:620px){.form-card{padding:30px 20px;border-radius:16px}.form-card>h3{margin-bottom:28px!important}.form-row{gap:17px;margin-bottom:20px}.form-row:nth-of-type(2),.form-row:nth-of-type(5),.form-row:nth-of-type(7){margin-top:42px}.field input,.field select{min-height:54px}.booking-summary{padding:20px 18px;margin-bottom:32px}.booking-summary strong{font-size:22px}.planning-map-section{padding:21px 18px;margin-bottom:22px;border-radius:14px}.planning-map-controls{grid-template-columns:1fr;gap:9px}.planning-map-section #planning-map{min-height:280px}}
@media (prefers-reduced-motion:reduce){.field input,.field select,.field textarea,.planning-map-controls button{transition:none}}

/* ---------- FEEDBACK ---------- */
.review-form{ margin-top:18px; padding:32px; background:var(--white); border:1px solid var(--line); border-radius:22px; box-shadow:0 20px 46px -36px rgba(21,32,24,.55); }
.review-form-intro{ display:flex; align-items:center; gap:14px; margin-bottom:26px; }
.review-form-mark{ width:42px; height:42px; border-radius:50%; display:grid; place-items:center; color:var(--forest-deep); background:var(--gold); font-size:18px; flex-shrink:0; }
.review-form-intro h3, .reviews-heading h3{ font-size:22px; color:var(--forest-deep); }
.review-form-intro p{ margin-top:4px; color:var(--olive); font-size:14px; line-height:1.5; }
.field label span{ text-transform:none; font-weight:400; letter-spacing:0; }
.star-picker{ height:46px; display:flex; align-items:center; gap:4px; }
.rating-star{ border:0; background:transparent; color:#d9d2c3; cursor:pointer; font-size:27px; line-height:1; padding:2px; transition:transform .18s ease, color .18s ease; }
.rating-star.is-selected{ color:var(--gold); }
.rating-star:hover{ transform:translateY(-2px) scale(1.08); }
.review-form input[type="file"]{ width:100%; padding:10px 0; color:var(--olive); font:inherit; font-size:13px; }
.review-form input[type="file"]::file-selector-button{ margin-right:10px; padding:8px 12px; color:var(--forest); background:var(--sand); border:1px solid var(--line); border-radius:999px; font:inherit; font-size:12px; font-weight:600; cursor:pointer; }
.reviews-heading{ display:flex; align-items:end; justify-content:space-between; gap:20px; margin:50px 0 18px; }
.reviews-heading .eyebrow{ margin-bottom:10px; }
.reviews-count{ padding:7px 11px; color:var(--olive); background:rgba(112,117,110,.1); border-radius:999px; font-size:12px; font-weight:600; white-space:nowrap; }
.reviews-feed{ display:grid; gap:16px; }
.review-card{ padding:24px; background:#fff; border:1px solid rgba(29,43,31,.12); border-radius:18px; box-shadow:0 16px 34px -34px rgba(21,32,24,.55); }
.review-card-head, .review-author, .review-name-row, .review-actions, .reply-meta{ display:flex; align-items:center; }
.review-card-head{ justify-content:space-between; gap:18px; background:#fff; }
.review-author{ gap:12px; min-width:0; }
.review-avatar, .reply-avatar{ display:grid; place-items:center; flex-shrink:0; object-fit:cover; color:var(--ink); background:#fff; border:1px solid rgba(29,43,31,.16); box-shadow:none; }
.avatar-initials{ color:var(--ink); background:#fff; }
.review-avatar{ width:48px; height:48px; border-radius:50%; font-size:14px; font-weight:700; }
.reply-avatar{ width:32px; height:32px; border-radius:50%; font-size:11px; font-weight:700; }
.review-name-row{ flex-wrap:wrap; gap:8px; }
.review-name-row h4{ font-family:'Work Sans',sans-serif; font-size:15px; font-weight:700; }
.country-tag{ padding:3px 7px; border-radius:999px; background:var(--sand-2); color:var(--forest); font-size:10px; font-weight:600; }
.review-author time, .reply-meta time{ display:block; margin-top:3px; color:var(--olive); font-size:11px; }
.review-stars{ flex-shrink:0; color:var(--gold); letter-spacing:1px; font-size:15px; }
.review-stars i{ color:#ded7ca; font-style:normal; }
.review-copy{ margin:18px 0 16px; color:var(--ink); font-size:15px; line-height:1.65; white-space:pre-wrap; }
.review-actions{ gap:2px; padding-top:12px; border-top:1px solid var(--line); }
.review-action{ display:inline-flex; align-items:center; gap:7px; padding:7px 9px; color:var(--olive); border:0; border-radius:8px; background:transparent; font:inherit; font-size:13px; font-weight:600; cursor:pointer; transition:background .18s ease, color .18s ease; }
.review-action:hover{ background:var(--sand); color:var(--forest); }
.review-action.is-up.is-active{ color:#2f7d58; background:#e9f5ee; }
.review-action.is-down.is-active{ color:var(--clay); background:#fff0ed; }
.reply-list{ display:grid; gap:12px; margin-top:16px; }
.reply-card{ display:flex; gap:10px; padding:13px 14px; background:var(--sand); border-radius:12px; }
.reply-content{ min-width:0; }
.reply-meta{ flex-wrap:wrap; gap:6px; }
.reply-meta strong{ font-size:13px; }
.reply-meta span{ color:var(--olive); font-size:11px; }
.reply-meta time{ margin:0; }
.reply-content p{ margin-top:5px; color:var(--ink); font-size:13px; line-height:1.55; white-space:pre-wrap; }
.reply-area{ margin-top:14px; padding:14px; border:1px solid var(--line); border-radius:12px; background:var(--sand); }
.reply-fields{ display:grid; grid-template-columns:1fr 1fr; gap:8px; }
.reply-area input, .reply-area textarea{ width:100%; border:1px solid var(--line); border-radius:8px; padding:10px; color:var(--ink); background:var(--white); font:inherit; font-size:13px; outline:none; }
.reply-area textarea{ min-height:82px; resize:vertical; margin-top:8px; }
.reply-area input:focus, .reply-area textarea:focus{ border-color:var(--gold); }
.reply-submit{ margin-top:9px; padding:9px 14px; border:0; border-radius:999px; color:var(--forest-deep); background:var(--gold); font:inherit; font-size:12px; font-weight:700; cursor:pointer; }
.reviews-empty{ padding:48px 24px; text-align:center; border:1px dashed rgba(29,43,31,.22); border-radius:18px; color:var(--olive); }
.reviews-empty span{ color:var(--gold); font-size:24px; }
.reviews-empty h3{ margin:8px 0 6px; font-size:20px; color:var(--forest); }
.reviews-empty p{ max-width:380px; margin:0 auto; font-size:14px; line-height:1.6; }

@media (max-width: 980px){
  .route-map-static-card{ grid-template-columns:1fr; }.route-map-gis{ min-height:300px; }
  .detail-layout{ grid-template-columns:1fr; }
  .detail-sidebar{ position:static; }
  .contact-layout{ grid-template-columns:1fr; }
  .highlight-list{ grid-template-columns:1fr; }
  .inc-grid{ grid-template-columns:1fr; }
}
@media (max-width: 620px){
  .route-map-static{ padding-top:22px; }.route-map-static-card{ border-radius:16px; }.route-map-gis{ min-height:280px; }.route-map-static-content{ padding:24px 20px; }.route-map-static-content h2{ font-size:25px; }
  .detail-hero{ min-height:60svh; }
  .detail-hero .wrap{ padding-bottom:32px; }
  .detail-hero h1{ font-size:clamp(32px,10vw,44px); }
  .detail-meta-row{ gap:14px 20px; }
  .detail-layout{ gap:38px; }
  .detail-main h2{ font-size:24px; margin-top:34px; }
  .day-item{ padding:18px; }
  .book-card, .contact-info-card, .form-card{ padding:24px 20px; }
  .book-card .meta-line{ gap:12px; }
  .contact-line{ align-items:flex-start; }
  .form-row{ grid-template-columns:1fr; }
  .filter-bar{ flex-direction:row; align-items:center; }
  .results-count{ margin-left:0; }
  .review-form{ padding:24px 18px; border-radius:18px; }
  .review-form-intro{ align-items:flex-start; }
  .review-form-intro h3, .reviews-heading h3{ font-size:20px; }
  .reviews-heading{ align-items:flex-start; flex-direction:column; gap:12px; margin-top:38px; }
  .review-card{ padding:18px; }
  .review-card-head{ align-items:flex-start; flex-direction:column; gap:12px; }
  .review-stars{ margin-left:60px; }
  .reply-fields{ grid-template-columns:1fr; }
}
