  :root{
    --ink:#0b0c0a;
    --ink-soft:#15170f;
    --stone:#f1ece1;
    --stone-dim:#e6dfcf;
    --laterite:#a6491f;
    --laterite-bright:#c25a29;
    --gold:#c9a227;
    --jade:#2e8b57;
    --text-dim:#9a9484;
    --text-dim-dark:#c9c4b3;
    --rule: rgba(241,236,225,0.16);
  }
  *{box-sizing:border-box; margin:0; padding:0;}
  html{scroll-behavior:smooth;}
  body{
    background:var(--ink);
    color:var(--stone);
    font-family:Arial, Helvetica, sans-serif;
    -webkit-font-smoothing:antialiased;
    overflow-x:hidden;
  }
  a{color:inherit; text-decoration:none;}
  ul{list-style:none;}
  img{display:block; width:100%; height:100%; object-fit:cover;}

  .eyebrow{
    font-family:Arial, Helvetica, sans-serif;
    font-size:11.5px;
    letter-spacing:0.14em;
    text-transform:uppercase;
    color:var(--gold);
    display:flex;
    align-items:center;
    gap:10px;
  }
  .eyebrow::before{
    content:'';
    width:22px; height:1px;
    background:var(--gold);
    display:inline-block;
  }
  .khmer-num{
    font-family:Arial, Helvetica, sans-serif;
    opacity:0.65;
  }

  h1,h2,h3{
    font-family:Arial, Helvetica, sans-serif;
    font-weight:500;
    line-height:1.05;
    letter-spacing:-0.01em;
  }

  /* ---------------- Header ---------------- */
  header{
    position:fixed; top:0; left:0; right:0; z-index:100;
    display:flex; align-items:center; justify-content:space-between;
    padding:16px 40px;
    background:#0b0c0a;
    border-bottom:1px solid var(--rule);
  }
  .logo{
    font-family:Arial, Helvetica, sans-serif;
    font-size:24px;
    font-weight:600;
    letter-spacing:0.02em;
  }
  .logo span{color:var(--laterite-bright);}

  nav.primary{display:flex; align-items:center; gap:38px;}
  nav.primary > ul{display:flex; gap:34px; align-items:center;}
  nav.primary > ul > li{position:relative;}
  nav.primary > ul > li > a{
    font-size:13.5px; letter-spacing:0.04em; text-transform:uppercase;
    font-weight:500; padding:10px 0; display:inline-block;
    border-bottom:1px solid transparent;
    transition:opacity 0.2s, border-color 0.2s;
    opacity:1; color:#ffffff;
  }
  nav.primary > ul > li > a:hover, nav.primary > ul > li.open > a{
    opacity:1; border-color:var(--gold);
  }
  .caret{font-size:9px; margin-left:5px; opacity:0.7;}

  .dropdown{
    position:absolute; top:100%; left:50%; transform:translateX(-50%) translateY(6px);
    background:var(--stone);
    border:none;
    border-radius:14px;
    min-width:230px;
    padding:18px 8px 14px;
    box-shadow:0 20px 44px rgba(0,0,0,0.38), 0 4px 14px rgba(0,0,0,0.22);
    opacity:0; visibility:hidden;
    transition:opacity 0.22s ease, transform 0.22s ease;
  }
  li.has-dropdown:hover .dropdown, li.has-dropdown:focus-within .dropdown{
    opacity:1; visibility:visible; transform:translateX(-50%) translateY(0);
  }
  .dropdown-eyebrow{
    display:flex; align-items:center; gap:8px;
    font-family:Arial, Helvetica, sans-serif; font-size:11px; letter-spacing:0.12em;
    text-transform:uppercase; color:#8f8770;
    padding:2px 18px 12px; margin-bottom:6px;
    border-bottom:1px solid rgba(11,12,10,0.1);
  }
  .dropdown-eyebrow::before{
    content:''; width:6px; height:6px; border-radius:50%;
    background:var(--gold); flex:0 0 auto;
  }
  .dropdown a{
    display:block; padding:12px 18px; font-size:15.5px;
    font-family:Arial, Helvetica, sans-serif; font-weight:500;
    color:var(--ink); letter-spacing:0;
    border-left:none; border-radius:8px;
    transition:background 0.2s, color 0.2s;
  }
  .dropdown a:hover{color:var(--laterite); background:rgba(166,73,31,0.08);}

  .dropdown.mega{display:flex; align-items:flex-start; min-width:300px; padding:14px; gap:14px;}
  .dropdown.mega .dropdown-col{flex:0 0 auto; min-width:110px; padding-right:0;}
  .dropdown.mega .dropdown-eyebrow{
    font-family:Arial, Helvetica, sans-serif; font-size:10px; letter-spacing:0.09em;
    color:#9a9a9a; font-weight:700; padding:0 0 8px; margin-bottom:8px; border-bottom:none;
  }
  .dropdown.mega .dropdown-eyebrow::before{width:5px; height:5px; background:var(--laterite-bright);}
  .dropdown.mega .dropdown-col a{
    font-family:Arial, Helvetica, sans-serif; font-weight:500; font-size:13.5px;
    padding:5px 4px; border-radius:8px; color:#333;
  }
  .dropdown.mega .dropdown-col a:hover{color:var(--laterite-bright); background:transparent;}
  .dropdown-media{
    position:relative; flex:0 0 auto; width:130px; height:104px;
    border-radius:12px; overflow:hidden; background:none; display:block;
    clip-path:polygon(12px 0, 100% 0, 100% 100%, 0 100%, 0 12px);
  }
  .dropdown-media-img{position:absolute; inset:0; width:100%; height:100%;}
  .dropdown-media-img img{width:100%; height:100%; object-fit:cover; display:block; filter:brightness(0.65);}
  .dropdown-media-text{
    position:absolute; top:7px; left:7px; right:7px; z-index:1;
    font-family:Arial, Helvetica, sans-serif; font-style:normal; font-weight:700;
    font-size:9.5px; color:#fff; padding:0; line-height:1.28;
  }
  .dropdown-media-cta{
    position:absolute; bottom:6px; right:6px; z-index:1;
    display:flex; align-items:center; gap:4px;
    font-family:Arial, Helvetica, sans-serif; font-size:9px; letter-spacing:0.02em;
    text-transform:none; color:#fff;
    background:#111; padding:5px 8px; border-radius:14px;
  }
  .dropdown-media-cta span{
    display:inline-flex; align-items:center; justify-content:center;
    width:14px; height:14px; border-radius:50%; background:rgba(255,255,255,0.18);
    font-size:8px; transition:transform 0.2s;
  }
  .dropdown-media:hover .dropdown-media-cta span{transform:translateX(2px);}

  .lang-nav-btn{display:flex; align-items:center; gap:8px;}
  .lang-flag{width:20px; height:15px; object-fit:cover; border-radius:2px; flex:0 0 auto; display:inline-block;}
  .dropdown a img.lang-flag{margin-right:2px;}
  .lang-nav .dropdown a{display:flex; align-items:center; gap:8px;}

  .header-right{display:flex; align-items:center; gap:22px; font-size:13px;}
  .burger{display:flex; width:34px; height:34px; align-items:center; justify-content:center; border:1px solid var(--rule); border-radius:50%; cursor:pointer; transition:border-color 0.2s;}
  .burger:hover{border-color:var(--gold);}

  /* Mobile-only compact language switcher, shown beside phone + burger icons */
  .mobile-lang-switch{display:none; position:relative;}
  .mobile-lang-btn{
    display:flex; align-items:center; justify-content:center;
    width:34px; height:34px; border-radius:50%;
    border:1px solid var(--rule); background:none; padding:0; cursor:pointer;
    transition:border-color 0.2s;
  }
  .mobile-lang-btn:hover{border-color:var(--gold);}
  .mobile-lang-btn .lang-flag{width:20px; height:15px;}
  .mobile-lang-dropdown{left:auto; right:0; transform:translateY(6px);}
  .mobile-lang-switch.open .mobile-lang-dropdown{opacity:1; visibility:visible; transform:translateY(0);}
  .header-divider{display:none; width:1px; height:16px; background:rgba(241,236,225,0.55); flex:0 0 auto;}

  /* ---------------- Side contact panel ---------------- */
  .side-overlay{
    position:fixed; inset:0; background:rgba(0,0,0,0.45); z-index:200;
    opacity:0; visibility:hidden; transition:opacity 0.3s ease;
  }
  .side-overlay.open{opacity:1; visibility:visible;}
  .side-panel{
    position:fixed; top:0; right:0; bottom:0; width:300px; max-width:88vw;
    background:#fff; color:#1c1c1c; z-index:201;
    box-shadow:-18px 0 44px rgba(0,0,0,0.25);
    transform:translateX(100%); transition:transform 0.35s cubic-bezier(0.65,0,0.35,1);
    display:flex; flex-direction:column;
  }
  .side-panel.open{transform:translateX(0);}
  .side-panel-inner{padding:28px 26px; flex:1; overflow-y:auto; position:relative;}
  .side-close{
    position:absolute; top:20px; right:20px;
    width:32px; height:32px; border-radius:50%; border:1px solid var(--laterite-bright);
    color:var(--laterite-bright); background:#fff;
    display:flex; align-items:center; justify-content:center; cursor:pointer;
    transition:background 0.2s, color 0.2s;
  }
  .side-close:hover{background:var(--laterite-bright); color:#fff;}
  .side-logo{display:flex; flex-direction:column; align-items:flex-start; gap:8px; margin-bottom:6px;}
  .side-logo-img{height:40px; width:auto; border-radius:6px; display:block;}
  .side-logo-text{font-family:Arial, Helvetica, sans-serif; font-size:20px; line-height:1.1;}
  .side-logo-text span{color:var(--laterite-bright); font-weight:700;}
  .side-rule{height:2px; width:100%; background:var(--laterite-bright); opacity:0.25; margin:18px 0 22px;}
  .side-block{margin-bottom:22px;}
  .side-block h4{font-size:13.5px; font-weight:700; margin-bottom:6px; color:#111;}
  .side-block p, .side-block a{font-size:13.5px; color:#555; line-height:1.5; text-decoration:none;}
  .side-socials{display:flex; gap:10px; margin-top:6px;}
  .side-socials a{
    width:32px; height:32px; border-radius:50%; border:1px solid var(--laterite-bright);
    color:var(--laterite-bright); display:flex; align-items:center; justify-content:center;
    transition:background 0.2s, color 0.2s;
  }
  .side-socials a:hover{background:var(--laterite-bright); color:#fff;}
  .side-panel-footer{
    padding:16px 26px; border-top:1px solid #eee;
    display:flex; align-items:center; justify-content:space-between;
  }
  .side-contact-btn{
    border:1px solid #ccc; border-radius:20px; padding:9px 18px;
    font-size:12.5px; font-weight:600; color:#222; background:#fff; cursor:pointer;
  }
  .side-chat-btn{
    width:38px; height:38px; border-radius:50%; background:var(--laterite-bright); color:#fff;
    display:flex; align-items:center; justify-content:center; cursor:pointer; flex:0 0 auto;
  }
  .side-mobile-nav{display:none;}
  .side-mobile-nav-rule{display:none;}
  .call-us{
    display:flex;
    align-items:center; gap:14px;
    padding-right:20px; margin-right:6px;
    border-right:1px solid rgba(241,236,225,0.55);
    color:var(--stone);
  }
  .call-us-icon{
    width:34px; height:34px; border-radius:50%;
    border:1px solid var(--rule);
    display:flex; align-items:center; justify-content:center;
    flex:0 0 auto;
    transition:border-color 0.2s, background 0.2s;
  }
  .call-us-icon svg{width:15px; height:15px;}
  .call-us:hover .call-us-icon{border-color:var(--gold); background:rgba(201,162,39,0.12);}
  .call-us-text{display:flex; flex-direction:column; line-height:1.3;}
  .call-us-label{font-size:13px; color:#ffffff; letter-spacing:0.02em; font-weight:700;}
  .call-us-number{font-family:Arial, Helvetica, sans-serif; font-size:13px; color:var(--stone); font-weight:300;}

  /* ---------------- Hero: three-panel peek carousel ---------------- */
  .hero{
    position:relative;
    background:#000;
    padding-top:78px; /* clears fixed header */
    overflow:hidden;
  }
  .hero-ambient-bg{
    position:absolute; inset:-40px; z-index:0;
    background-size:cover; background-position:center;
    filter:blur(8px) saturate(160%) brightness(0.62);
    transform:scale(1.18);
  }
  .hero-stage{
    position:relative; z-index:1; overflow:hidden;
    height:min(48vh, 480px); min-height:290px;
    background:transparent;
  }
  .hero-track{
    display:flex; align-items:stretch; gap:28px;
    height:100%;
    will-change:transform;
  }
  .peek{
    position:relative; overflow:hidden; cursor:pointer;
    flex:0 0 auto;
    height:100%;
  }
  .peek img{
    width:100%; height:100%; object-fit:cover;
    transition:opacity 0.5s ease;
    filter:brightness(0.62);
  }
  .peek.focused img{filter:brightness(0.94);}
  .play-dot{
    position:absolute; top:50%; left:50%; transform:translate(-50%,-50%);
    width:66px; height:66px; border-radius:50%;
    background:rgba(11,12,10,0.35);
    border:1px solid rgba(241,236,225,0.6);
    display:flex; align-items:center; justify-content:center;
    cursor:pointer; transition:background 0.25s, transform 0.25s;
  }
  .peek.focused .play-dot{width:78px; height:78px;}
  .play-dot:hover{background:rgba(11,12,10,0.55); transform:translate(-50%,-50%) scale(1.06);}
  .play-dot svg{width:20px; height:20px; fill:none; stroke:var(--stone);}

  /* ---------------- Hero photo album lightbox ---------------- */
  .hero-lightbox-backdrop{
    display:none; position:fixed; inset:0; z-index:999;
    background:rgba(6,7,5,0.94);
    align-items:center; justify-content:center;
    padding:32px 24px;
    opacity:0; transition:opacity 0.25s ease;
  }
  .hero-lightbox-backdrop.open{display:flex; opacity:1;}
  .hero-lightbox{
    position:relative; width:100%; max-width:1100px;
    display:flex; flex-direction:column; gap:18px;
  }
  .hero-lightbox-close{
    position:absolute; top:-52px; right:0;
    width:40px; height:40px; border-radius:50%;
    background:rgba(241,236,225,0.08); border:1px solid var(--rule);
    color:var(--stone); display:flex; align-items:center; justify-content:center;
    cursor:pointer; transition:background 0.2s, transform 0.2s;
  }
  .hero-lightbox-close:hover{background:rgba(241,236,225,0.18); transform:rotate(90deg);}
  .hero-lightbox-close svg{width:18px; height:18px;}

  .hero-lightbox-main{
    display:flex; align-items:center; gap:14px;
  }
  .hero-lightbox-arrow{
    flex:0 0 auto; width:46px; height:46px; border-radius:50%;
    background:rgba(241,236,225,0.08); border:1px solid var(--rule);
    display:flex; align-items:center; justify-content:center;
    color:var(--stone); cursor:pointer;
    transition:background 0.2s, transform 0.2s;
  }
  .hero-lightbox-arrow:hover{background:rgba(241,236,225,0.18); transform:scale(1.06);}
  .hero-lightbox-arrow svg{width:20px; height:20px;}

  .hero-lightbox-stage{
    position:relative; flex:1 1 auto; min-width:0;
    height:min(60vh, 560px);
    border-radius:4px; overflow:hidden;
    background:var(--ink-soft);
  }
  .hero-lightbox-stage img{
    width:100%; height:100%; object-fit:cover;
  }
  .hero-lightbox-caption{
    position:absolute; left:0; right:0; bottom:0;
    padding:28px 28px 22px;
    background:linear-gradient(to top, rgba(6,7,5,0.88), rgba(6,7,5,0));
  }
  .hero-lightbox-caption h3{
    font-family:Arial, Helvetica, sans-serif; font-size:24px; margin:8px 0 6px; color:var(--stone);
  }
  .hero-lightbox-caption p{
    font-size:14px; color:var(--text-dim-dark); max-width:560px; line-height:1.5;
  }
  .hero-lightbox-count{
    position:absolute; top:16px; right:18px;
    font-family:Arial, Helvetica, sans-serif; font-size:12px;
    letter-spacing:0.06em; color:var(--stone);
    background:rgba(6,7,5,0.55); border:1px solid var(--rule);
    padding:5px 10px; border-radius:20px;
  }

  .hero-lightbox-thumbs{
    display:flex; gap:10px; overflow-x:auto; padding:2px 2px 6px;
    scrollbar-width:thin;
  }
  .hero-lightbox-thumbs::-webkit-scrollbar{height:5px;}
  .hero-lightbox-thumbs::-webkit-scrollbar-thumb{background:var(--rule); border-radius:4px;}
  .hlb-thumb{
    flex:0 0 auto; width:104px; height:70px; border-radius:3px; overflow:hidden;
    cursor:pointer; opacity:0.5; border:2px solid transparent;
    transition:opacity 0.2s, border-color 0.2s;
  }
  .hlb-thumb img{width:100%; height:100%; object-fit:cover;}
  .hlb-thumb:hover{opacity:0.85;}
  .hlb-thumb.active{opacity:1; border-color:var(--gold);}

  @media(max-width:900px){
    .hero-lightbox-stage{height:44vh;}
    .hero-lightbox-arrow{width:38px; height:38px;}
    .hero-lightbox-caption h3{font-size:19px;}
    .hlb-thumb{width:78px; height:54px;}
  }

  /* Phone: show just the photo with prev/next controls, nothing else */
  @media(max-width:640px){
    .hero-lightbox-backdrop{padding:0;}
    .hero-lightbox{gap:0; height:100%;}
    .hero-lightbox-main{position:relative; height:100%;}
    .hero-lightbox-stage{height:100vh; border-radius:0;}
    .hero-lightbox-close{
      top:16px; right:16px; z-index:3;
      background:rgba(6,7,5,0.55);
    }
    .hero-lightbox-arrow{
      position:absolute; top:50%; transform:translateY(-50%); z-index:3;
      background:rgba(6,7,5,0.45);
    }
    .hero-lightbox-arrow.prev{left:12px;}
    .hero-lightbox-arrow.next{right:12px;}
    .hero-lightbox-caption,
    .hero-lightbox-count,
    .hero-lightbox-thumbs{display:none;}
  }

  /* ---------------- Tour detail modal ---------------- */
  .tour-modal-backdrop{
    display:none; position:fixed; inset:0; z-index:999;
    background:rgba(6,7,5,0.72); -webkit-backdrop-filter:blur(2px); backdrop-filter:blur(2px);
    align-items:center; justify-content:center;
    padding:32px 20px;
    opacity:0; transition:opacity 0.25s ease;
  }
  .tour-modal-backdrop.open{display:flex; opacity:1;}
  .tour-modal{
    position:relative; width:100%; max-width:1512px; max-height:75vh;
    display:flex; background:var(--ink-soft);
    border-radius:8px; overflow:hidden;
    box-shadow:0 40px 90px rgba(0,0,0,0.5);
    transform:translateY(14px); opacity:0;
    transition:transform 0.32s cubic-bezier(0.2,0.8,0.2,1), opacity 0.28s ease;
  }
  .tour-modal-backdrop.open .tour-modal{transform:translateY(0); opacity:1;}

  .tour-modal-close{
    position:absolute; top:18px; right:18px; z-index:3;
    width:37px; height:37px; border-radius:50%; border:none;
    background:rgba(11,12,10,0.5); color:var(--stone);
    display:flex; align-items:center; justify-content:center;
    cursor:pointer; transition:background 0.2s, transform 0.2s;
  }
  .tour-modal-close svg{width:16px; height:16px;}
  .tour-modal-close:hover{background:rgba(11,12,10,0.75); transform:rotate(90deg);}

  .tour-modal-media{position:relative; flex:1.35 1 0; min-width:0; background:#000;}
  .tour-modal-media img{width:100%; height:100%; object-fit:cover; display:block; cursor:pointer;}
  .tour-modal-tag{
    position:absolute; left:18px; bottom:18px;
    display:flex; align-items:center; gap:8px;
    background:rgba(11,12,10,0.6); color:var(--stone);
    font-family:Arial, Helvetica, sans-serif; font-size:11px; letter-spacing:0.06em;
    padding:8px 12px; border-radius:2px;
  }
  .tour-modal-tag::before{content:''; width:3px; height:14px; background:var(--jade); display:inline-block;}
  .tour-modal-arrow{
    position:absolute; top:50%; transform:translateY(-50%);
    width:35px; height:35px; border-radius:50%;
    background:rgba(11,12,10,0.45); border:1px solid rgba(241,236,225,0.25);
    color:var(--stone); display:flex; align-items:center; justify-content:center;
    cursor:pointer; transition:background 0.2s, transform 0.2s; opacity:0.75;
  }
  .tour-modal-arrow svg{width:14px; height:14px;}
  .tour-modal-arrow:hover{background:rgba(11,12,10,0.7); opacity:1;}
  .tour-modal-arrow.prev{left:14px;}

  .tour-modal-info{
    flex:1 1 0; min-width:304px; max-width:448px;
    padding:32px 35px 35px; overflow-y:auto;
    display:flex; flex-direction:column;
  }
  .tour-modal-eyebrow{
    font-family:Arial, Helvetica, sans-serif; font-size:10px; letter-spacing:0.1em;
    color:var(--jade); text-transform:uppercase; margin-bottom:10px;
  }
  .tour-modal-info h3{
    font-family:Arial, Helvetica, sans-serif; font-size:30px; color:var(--stone); margin-bottom:7px;
  }
  .tour-modal-location{font-size:13px; color:var(--text-dim); margin-bottom:16px;}

  .tour-modal-thumb{
    width:58px; height:42px; border-radius:3px; overflow:hidden;
    border:2px solid var(--jade); margin-bottom:16px;
  }
  .tour-modal-thumb img{width:100%; height:100%; object-fit:cover; display:block;}

  .tour-modal-desc{
    font-size:13px; line-height:1.65; color:var(--text-dim-dark); margin-bottom:18px;
  }

  .tour-modal-arrow.next{
    position:static; transform:none; margin-left:auto; margin-bottom:18px;
  }

  .tour-modal-rule{height:1px; background:var(--rule); margin-bottom:19px;}

  .tour-modal-attrs{
    display:grid; grid-template-columns:1fr 1fr; gap:16px 11px; margin-bottom:26px;
  }
  .tour-modal-attrs div{display:flex; flex-direction:column; gap:5px;}
  .tour-modal-attr-label{
    font-family:Arial, Helvetica, sans-serif; font-size:10px; letter-spacing:0.08em;
    color:var(--text-dim); text-transform:uppercase;
  }
  .tour-modal-attr-value{font-size:13px; color:var(--stone); font-weight:600;}

  .tour-modal-cta{
    margin-top:auto; align-self:flex-start;
    background:var(--jade); color:#fff; font-weight:600; font-size:13px;
    padding:12px 22px; border-radius:6px; text-decoration:none;
    transition:background 0.2s, transform 0.2s;
  }
  .tour-modal-cta:hover{background:#256e46; transform:translateY(-1px);}

  @media(max-width:760px){
    .tour-modal{flex-direction:column; max-height:75vh; overflow-y:auto;}
    .tour-modal-media{height:38vh; flex:none;}
    .tour-modal-info{max-width:none; min-width:0; padding:19px 16px 19px;}
    .tour-modal-info h3{font-size:21px;}
  }

  .hero-info{
    position:relative; z-index:2;
    max-width:1840px; margin:0 auto;
    padding:10px 8px 8px 8px;
  }
  .hero-row{
    padding-left:30%; padding-right:30%;
    display:flex; align-items:center; gap:18px;
  }
  .hero-center{
    display:flex; flex-direction:column; align-items:flex-start;
    flex:0 1 auto; max-width:600px; min-width:0;
  }
  .hero-caption{max-width:600px;}
  .hero-caption h2{font-size:clamp(19px,2.2vw,26px); color:var(--stone); margin:5px 0 4px; font-family:Arial, Helvetica, sans-serif; font-weight:700; letter-spacing:-0.01em;}
  .hero-caption p{font-size:13px; color:var(--text-dim-dark); max-width:480px; line-height:1.45;}

  .hero-controls{
    margin-top:14px;
    width:100%;
    display:flex; align-items:center; justify-content:center; gap:10px;
  }
  .arrow{
    position:static;
    flex:0 0 auto;
    width:auto; height:auto; border:none; background:none;
    display:flex; align-items:center; justify-content:center; cursor:pointer;
    color:rgba(255,255,255,0.95); transition:color 0.2s, transform 0.2s;
    padding:8px;
    filter:drop-shadow(0 1px 4px rgba(0,0,0,0.65));
  }
  .arrow svg{width:30px; height:30px; display:block;}
  .arrow:hover{color:var(--gold); transform:scale(1.1);}
  .arrow.prev{margin-left:-8px;}
  .arrow.next{margin-left:auto; margin-right:-8px;}
  .dots{display:flex; gap:9px; align-items:center;}
  .dot-track{
    width:8px; height:8px; border-radius:50%;
    background:var(--stone);
    position:relative; overflow:hidden; cursor:pointer;
    transition:width 0.3s ease, border-radius 0.3s ease, background 0.3s ease;
  }
  .dot-track .fill{
    position:absolute; top:0; left:0; height:100%; width:0%;
    background:var(--stone);
  }
  .dot-track.current{width:70px; border-radius:4px; background:rgba(241,236,225,0.35);}
  .dot-track.current .fill{width:100%; transition:width 6s linear; border-radius:4px;}
  .pause-toggle{
    background:rgba(90,80,75,0.4);
    backdrop-filter:blur(6px);
    -webkit-backdrop-filter:blur(6px);
    border:1px solid rgba(255,255,255,0.22);
    border-radius:6px;
    padding:8px 12px;
    display:flex; align-items:center; gap:7px;
    margin-left:8px;
  }
  .pt-seg{
    border:none; background:transparent; cursor:pointer; padding:0;
    display:flex; align-items:center; justify-content:center;
    color:var(--stone);
  }
  .pt-seg svg{width:13px; height:13px; display:block;}
  .pt-seg:hover{color:var(--gold);}
  .pt-divider{
    width:1px; height:13px;
    background:var(--stone);
    transform:rotate(20deg);
  }

  /* ---------------- Below hero: language links + Latest News ---------------- */
  .below-hero{background:#fff; padding:20px 0 0;}
  .below-hero-inner{
    /* Reproduces hero-row's centered-1240px inner edges exactly on
       both sides, so the news box locks to the same grid width as
       the caption row above. */
    padding-left:max(48px, calc((100vw - 1240px) / 2 + 48px));
    padding-right:max(48px, calc((100vw - 1240px) / 2 + 48px));
  }
  .news-box{
    position:relative;
    display:flex; align-items:stretch;
    background:#fff;
    padding:0 26px;
    border-radius:14px;
    border:1px solid #ececec;
    box-shadow:0 4px 18px rgba(0,0,0,0.06), 0 1px 3px rgba(0,0,0,0.05);
    overflow:hidden;
  }
  .news-box::after{
    content:'';
    position:absolute;
    left:0; right:0; bottom:0;
    height:4px;
    background:linear-gradient(90deg, #2f6fed 0%, #3fb6cf 50%, #3ddc97 100%);
  }
  .news-label{
    flex:0 0 auto; background:transparent; color:#444;
    padding:20px 26px 20px 0; min-width:150px;
    display:flex; flex-direction:column; align-items:center; gap:5px;
    border-right:1px solid #ddd;
    font-size:17px; font-weight:400;
    text-align:center;
    white-space:nowrap;
  }
  .news-label svg{width:40px; height:40px; opacity:0.7;}
  .news-text{
    flex:1; display:flex; align-items:center; justify-content:center; padding:20px 26px;
    font-size:17px; color:#222; overflow:hidden; white-space:nowrap; text-align:center;
  }
  .ticker-item{display:none; animation:fadeup 0.5s ease;}
  .ticker-item.show{display:block;}
  @keyframes fadeup{from{opacity:0; transform:translateY(6px);} to{opacity:1; transform:translateY(0);}}

  /* ---------------- Vision statement (video hero) ---------------- */
  .vision{
    position:relative; background:var(--ink);
    text-align:center; overflow:hidden;
  }
  .vision-hero{
    position:relative; overflow:hidden;
    min-height:640px; display:flex; flex-direction:column;
    align-items:center; justify-content:center;
    padding:120px 40px;
  }
  .vision-video{
    position:absolute; inset:0; z-index:0;
    width:100%; height:100%; object-fit:cover;
    filter:brightness(0.82) saturate(1.05);
  }
  .vision-hero-overlay{
    position:absolute; inset:0; z-index:1;
    background:linear-gradient(180deg,
      rgba(11,12,10,0.6) 0%,
      rgba(11,12,10,0.1) 30%,
      rgba(11,12,10,0.1) 65%,
      rgba(11,12,10,0.65) 100%);
  }
  .vision-hero-content{position:relative; z-index:2;}
  .vision-pause{
    position:absolute; top:36px; right:40px; z-index:2;
    width:34px; height:34px; border:1px solid var(--rule); border-radius:50%;
    display:flex; align-items:center; justify-content:center; cursor:pointer;
    background:rgba(11,12,10,0.3);
  }
  .vision h2{
    font-size:clamp(30px, 5vw, 62px); max-width:920px; margin:0 auto 22px;
    color:var(--stone);
  }
  .vision p{
    max-width:560px; margin:0 auto; color:var(--text-dim-dark); font-size:15.5px; line-height:1.6;
  }

  /* ---------------- Section shell ---------------- */
  section.block{padding:70px 40px;}
  #destinations{padding-top:70px; padding-bottom:60px;}
  #tours{padding-top:60px; padding-bottom:60px;}
  .block-head{display:flex; justify-content:space-between; align-items:flex-end; margin-bottom:56px; gap:24px; flex-wrap:wrap;}
  .block-head h2{font-size:clamp(28px,3.4vw,46px);}
  .block-head p{max-width:420px; font-size:14.5px; line-height:1.6; color:var(--text-dim-dark);}

  /* ---------------- Reviews ---------------- */
  .reviews{background:#f4f6f5; padding:44px 40px 80px; text-align:center;}
  .reviews-head h2{
    font-size:clamp(26px,3vw,36px); color:#1c4a2e; margin-bottom:10px; font-weight:700;
  }
  .reviews-head p{font-size:15px; color:#5a6a63; margin-bottom:44px;}
  .reviews-grid{
    max-width:1320px; margin:0 auto; display:grid;
    grid-template-columns:1fr 1.6fr; gap:24px; text-align:left;
  }
  @media (max-width:820px){ .reviews-grid{grid-template-columns:1fr;} }
  .review-card{
    background:#ffffff; border:1px solid #e3e8e5; border-radius:14px; padding:28px;
  }
  .review-card.highlight{background:#e9f3ee; border-color:#d3e6dd; position:relative;}
  .ta-brand{display:flex; align-items:center; gap:10px; margin-bottom:18px; font-weight:600; color:#1c2733; font-size:15px;}
  .ta-logo{width:26px; height:26px; border-radius:50%; object-fit:cover;}
  .see-all-btn{
    position:absolute; top:24px; right:24px; border:1px solid var(--jade); color:var(--jade);
    background:#ffffff; border-radius:20px; padding:7px 16px; font-size:12.5px; font-weight:600; cursor:pointer;
    box-sizing:border-box; z-index:5; transition:background 0.18s ease, color 0.18s ease, border-color 0.18s ease;
  }
  .see-all-btn:hover{background:var(--jade); color:#ffffff; border-color:var(--jade);}
  .ta-list-card-header{position:absolute; top:24px; right:24px; display:flex; align-items:center; gap:14px; z-index:5;}
  .ta-see-all-btn{position:static;}
  .ta-header-logo{width:26px; height:26px; border-radius:50%; object-fit:cover; pointer-events:none;}
  .review-card h3{font-size:22px; color:#1c2733; margin-bottom:12px; font-weight:700;}
  .ta-rank{font-size:13px; color:#5a6a63; margin-bottom:10px;}
  .ta-stars{display:flex; align-items:center; gap:6px; margin-bottom:20px;}
  .ta-dot{width:16px; height:16px; border-radius:50%; background:var(--jade); display:inline-block;}
  .ta-dot.empty{background:none; border:2px solid var(--jade);}
  .ta-stars span{font-size:13.5px; color:#1c2733; margin-left:4px;}
  .ta-stars-input .ta-dot{
    background:none; border:2px solid var(--jade); cursor:pointer;
    transition:transform 0.15s ease, background 0.15s ease;
  }
  .ta-stars-input .ta-dot.filled{background:var(--jade);}
  .ta-stars-input .ta-dot:hover{transform:scale(1.15);}
  .ta-stars-input span#ratingLabel{color:#5a6a63;}
  .review-form-card{display:flex; flex-direction:column;}
  .review-textarea{
    width:100%; min-height:180px; border:1px solid #d8dedb; border-radius:8px; padding:12px;
    font-size:13.5px; color:#5a6a63; resize:vertical; font-family:inherit; margin-bottom:20px;
    flex:1 1 auto;
  }
  .review-continue-btn{
    background:var(--jade); color:#fff; border:none; border-radius:8px; padding:12px 22px;
    font-size:14px; font-weight:600; cursor:pointer; align-self:flex-start;
  }
  .review-confirm{
    display:none; margin-top:14px; font-size:13px; color:var(--jade); font-weight:600;
  }
  .review-confirm.show{display:block; animation:reviewFadeIn 0.4s ease;}
  .review-snippets{display:grid; grid-template-columns:1fr 1fr; gap:12px; margin-top:8px;}
  .review-snippet{
    display:flex; flex-direction:column; background:#ffffff; border-radius:10px; padding:14px;
    box-shadow:0 1px 3px rgba(60,64,67,.12), 0 1px 2px rgba(60,64,67,.08);
    opacity:0; animation:reviewFadeIn 0.6s ease forwards;
  }
  @media(max-width:640px){
    .review-snippets{grid-template-columns:1fr; gap:14px;}
    .review-snippet{padding:20px; border-radius:12px;}
  }
  .review-avatar{
    width:28px; height:28px; border-radius:50%; background:#eee; flex-shrink:0;
    background-size:cover; background-position:center;
  }
  .review-snippet.swap-out{animation:reviewFadeOut 0.4s ease forwards;}
  @keyframes reviewFadeIn{
    from{opacity:0; transform:translateY(10px);}
    to{opacity:1; transform:translateY(0);}
  }
  @keyframes reviewFadeOut{
    from{opacity:1; transform:translateY(0);}
    to{opacity:0; transform:translateY(-10px);}
  }

  /* ---------------- Google reviews ---------------- */
  .google-reviews{background:#f8f9fa; padding:0 40px 80px; font-family:Arial, Helvetica, sans-serif;}
  .google-reviews *{font-family:Arial, Helvetica, sans-serif;}
  .gr-grid{
    max-width:1320px; margin:0 auto; display:grid;
    grid-template-columns:1fr 3fr; gap:24px; text-align:left; align-items:stretch;
  }
  .gr-brand-card{
    background:#ffffff; border-radius:12px; padding:28px 24px;
    box-shadow:0 1px 3px rgba(60,64,67,.15), 0 1px 2px rgba(60,64,67,.10);
    display:flex; flex-direction:column; align-items:center; text-align:center;
  }
  .gr-brand-avatar{width:64px; height:64px; border-radius:50%; object-fit:cover; margin-bottom:14px;}
  .gr-brand-card h3{font-size:18px; color:#202124; font-weight:700; margin-bottom:10px;}
  .gr-brand-card .gr-stars-row{justify-content:center; margin-bottom:12px;}
  .gr-wordmark{
    font-family:Arial, Helvetica, sans-serif; font-size:clamp(20px, 3vw, 24px);
    font-weight:600; letter-spacing:-0.3px; color:#5F6368;
    text-align:center; margin:14px 0 6px;
  }
  .gr-wordmark .gr-g{color:#4285F4;}
  .gr-wordmark .gr-o1{color:#EA4335;}
  .gr-wordmark .gr-o2{color:#FBBC05;}
  .gr-wordmark .gr-g2{color:#4285F4;}
  .gr-wordmark .gr-l{color:#34A853;}
  .gr-wordmark .gr-e{color:#EA4335;}
  .gr-count{font-size:13px; color:#5F6368; margin-bottom:18px;}
  .gr-write-btn{
    width:auto; background:var(--jade); border:1px solid var(--jade); border-radius:8px;
    padding:7px 20px; font-size:13.5px; font-weight:600; color:#ffffff; cursor:pointer;
    transition:background 0.2s ease, border-color 0.2s ease; margin-top:auto; margin-bottom:40px;
  }
  .gr-write-btn:hover{background:#163e26; border-color:#163e26;}
  .gr-list-card{
    background:#ffffff; border-radius:12px; padding:28px; position:relative;
    box-shadow:0 1px 3px rgba(60,64,67,.15), 0 1px 2px rgba(60,64,67,.10);
  }
  .gr-list-card-header{position:absolute; top:20px; right:20px; display:flex; align-items:center; gap:14px; z-index:5;}
  .gr-google-mark{width:24px; height:24px; pointer-events:none;}
  .gr-see-all-btn{position:static;}
  .gr-stars-row{
    color:#FBBC04; font-size:15px; letter-spacing:2px; display:flex;
    align-items:center; gap:6px; margin-bottom:8px;
  }
  .gr-review-head{display:flex; align-items:center; gap:12px; margin-bottom:12px;}
  .gr-avatar{width:38px; height:38px; border-radius:50%; object-fit:cover; flex-shrink:0;}
  .gr-name{font-size:14.5px; font-weight:700; color:#202124;}
  .gr-date{font-size:12.5px; color:#5F6368;}
  .gr-review-item .gr-stars-row{margin-bottom:14px;}
  .gr-verified{
    width:16px; height:16px; color:var(--jade); display:inline-flex; align-items:center; justify-content:center;
    margin-left:4px;
  }
  .gr-verified svg{display:block; width:100%; height:100%;}
  .gr-text{font-size:14.5px; color:#202124; line-height:1.5;}
  /* Unfilled stars for reviews with lower ratings */
  .gr-stars-row .gr-star.empty{color:#BDBDBD;}
  /* Big green dots for Tripadvisor cards (matches the review-form rating input) */
  .gr-dots-row{gap:5px;}
  .gr-dots-row .ta-dot{width:14px; height:14px;}
  /* Auto-scrolling review rotator (comments scroll up one by one) */
  .gr-rotator{overflow:hidden;}
  .gr-track{will-change:transform;}
  /* Separator between stacked review entries */
  .gr-review-item + .gr-review-item{
    border-top:1px solid #E8EAED;
    margin-top:18px;
    padding-top:18px;
  }
  @media (max-width:820px){ .gr-grid{grid-template-columns:1fr;} }

  /* ---------------- All reviews modal ---------------- */
  .reviews-modal-backdrop{
    display:none; position:fixed; inset:0; background:rgba(15,20,18,0.55);
    z-index:500; align-items:center; justify-content:center; padding:0;
  }
  .reviews-modal-backdrop.open{display:flex;}
  .reviews-modal{
    background:#ffffff; border-radius:0; padding:32px; max-width:720px; width:100%;
    height:100vh; max-height:100vh; overflow-y:auto; position:relative; text-align:left;
    box-shadow:0 40px 90px rgba(10,15,12,0.3);
  }
  .reviews-modal-close{
    position:fixed; top:20px; right:24px; z-index:510;
    background:#ffffff; border:1px solid #e3e8e5; border-radius:50%;
    width:36px; height:36px; display:flex; align-items:center; justify-content:center;
    font-size:22px; line-height:1; color:#5a6a63; cursor:pointer;
    box-shadow:0 6px 16px rgba(10,15,12,0.15);
  }
  .reviews-modal h3{font-size:22px; color:#1c2733; margin-bottom:8px; font-weight:700;}
  .reviews-modal-list{display:flex; flex-direction:column; gap:12px; margin-top:20px; padding-bottom:32px;}
  .reviews-modal-list .review-snippet{width:100%; opacity:1; animation:none;}
  .reviews-modal-list.gr-modal-list{gap:0; font-family:Arial, Helvetica, sans-serif; margin-top:0;}
  .reviews-modal-list.gr-modal-list .gr-review-item{width:100%;}
  .reviews-modal-list.gr-modal-list .gr-review-item:first-child{border-top:1px solid #E8EAED; margin-top:20px; padding-top:20px;}
  .gr-modal-profile{
    display:flex; flex-direction:column; align-items:center; text-align:center;
    padding-bottom:24px; border-bottom:1px solid #E8EAED; font-family:Arial, Helvetica, sans-serif;
  }
  .gr-modal-profile .gr-wordmark{margin:0 0 6px;}
  .gr-modal-profile .gr-count{font-size:13px; color:#5F6368; margin:0;}
  .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;
  }

  /* ---------------- Scroll to top ---------------- */
  .scroll-top-btn{
    position:fixed; right:26px; bottom:26px; z-index:200;
    width:64px; height:64px; border-radius:50%;
    background:none; border:none;
    display:flex; align-items:center; justify-content:center;
    cursor:pointer; opacity:0; visibility:hidden; transform:translateY(10px);
    transition:opacity 0.25s, transform 0.25s, visibility 0.25s;
  }
  .scroll-top-btn.visible{opacity:1; visibility:visible; transform:translateY(0);}
  .scroll-top-btn svg{width:34px; height:34px; stroke:var(--jade); fill:none; stroke-width:2; stroke-linecap:round; stroke-linejoin:round; transition:stroke 0.2s; filter:drop-shadow(0 1px 4px rgba(0,0,0,0.25));}
  .scroll-top-btn .stb-dot{fill:var(--jade); stroke:none; transition:fill 0.2s;}
  .scroll-top-btn:hover svg{stroke:var(--laterite-bright);}
  .scroll-top-btn:hover .stb-dot{fill:var(--laterite-bright);}

  /* ---------------- Founder banner ---------------- */
  .founder-banner{
    position:relative; isolation:isolate; overflow:hidden;
    padding:100px 40px 32px; text-align:center; background:#ffffff;
  }
  .founder-banner h2{
    font-size:clamp(28px,3.4vw,42px); color:#1c2733; margin-bottom:12px;
    text-shadow:none;
  }
  .founder-banner p{
    font-size:15px; color:#4a4a4a; font-family:Arial, Helvetica, sans-serif;
  }

  /* ---------------- Founder ---------------- */
  .founder{background:#ffffff; padding:24px 40px 40px;}
  .founder-grid{
    position:relative; max-width:1320px; margin:0 auto;
  }
  .founder-photo{
    width:50%; aspect-ratio:612/537; border-radius:22px; overflow:hidden;
    box-shadow:0 25px 55px rgba(20,30,50,0.16);
  }
  .founder-photo img{width:100%; height:100%; object-fit:cover; object-position:center 20%;}
  .founder-card{
    position:absolute; top:50%; left:40%; transform:translateY(-50%);
    width:60%;
    background:#ffffff; border-radius:22px; padding:38px 56px;
    box-shadow:0 35px 80px rgba(20,30,50,0.14), 0 10px 30px rgba(20,30,50,0.06);
  }
  .founder-card h2{font-size:clamp(19px,1.9vw,22px); color:#1c2733; margin:0 0 18px; font-family:Arial, Helvetica, sans-serif; font-weight:600;}
  .founder-card p{font-size:15px; line-height:1.8; color:#5b6b80; margin-bottom:18px;}
  .founder-card p:last-of-type{margin-bottom:0;}
  .founder-more-toggle{display:none;}

  /* ---------------- Founder: experience & services ---------------- */
  .founder-expertise{background:#ffffff; padding:20px 40px 26px;}
  .founder-expertise-inner{max-width:1320px; margin:0 auto; text-align:left;}
  .founder-expertise h3{font-size:clamp(24px,2.6vw,32px); color:var(--ink); margin-bottom:26px;}
  .founder-expertise p{font-size:15.5px; line-height:1.85; color:#4a4438; margin-bottom:20px;}
  .founder-expertise p:last-child{margin-bottom:0;}
  .founder-expertise-toggle{display:none;}
  @media (max-width:900px){
    .founder-expertise-more{display:none;}
    .founder-expertise-inner.is-expanded .founder-expertise-more{display:block;}
    .founder-expertise-toggle{
      display:inline-flex; align-items:center; gap:6px;
      background:none; border:none; padding:0; margin-top:-4px;
      font-family:Arial, Helvetica, sans-serif; font-size:14px; font-weight:600;
      color:var(--laterite-bright); cursor:pointer;
    }
    .founder-expertise-toggle span[aria-hidden]{transition:transform 0.2s;}
    .founder-expertise-toggle.is-open span[aria-hidden]{transform:rotate(90deg);}
    .founder-expertise-toggle:hover{color:var(--laterite);}
  }

  /* ---------------- Founder: stats strip ---------------- */
  .founder-stats{background:#f5f7fa; padding:30px 40px;}
  .founder-stats-inner{
    max-width:1320px; margin:0 auto;
    display:flex; align-items:center; justify-content:space-between; gap:36px; flex-wrap:wrap;
  }
  .stat-item{flex:1; min-width:200px; text-align:center;}
  .stat-icon{
    width:30px; height:30px; margin:0 auto 12px; color:var(--laterite-bright);
    display:flex; align-items:center; justify-content:center;
  }
  .stat-icon svg{width:100%; height:100%; fill:none; stroke:currentColor; stroke-width:1.6; stroke-linecap:round; stroke-linejoin:round;}
  .stat-number{
    font-family:Arial, Helvetica, sans-serif; font-weight:600; color:var(--jade);
    font-size:clamp(32px,3.6vw,48px); line-height:1; margin-bottom:10px;
  }
  .stat-label{
    font-family:Arial, Helvetica, sans-serif; font-size:11.5px; letter-spacing:0.08em;
    text-transform:uppercase; color:#6b7a8c; line-height:1.5;
  }
  .stat-divider{width:1px; height:52px; background:rgba(20,30,50,0.14); flex:0 0 auto;}
  @media (max-width:900px){
    .stat-divider{display:none;}
    .founder-stats-inner{flex-direction:column; gap:30px;}
  }

  @media (max-width:900px){
    .founder-grid{min-height:0;}
    .founder-photo{width:100%; aspect-ratio:16/11;}
    .founder-card{
      position:static; width:auto; transform:none;
      margin-top:0; margin-left:0; margin-right:0;
      padding:34px 30px;
    }
    .founder-card .founder-more{
      display:none; overflow:hidden;
    }
    .founder-card.is-expanded .founder-more{display:block;}
    .founder-more-toggle{
      display:inline-flex; align-items:center; gap:6px;
      background:none; border:none; padding:0; margin-top:2px;
      font-family:Arial, Helvetica, sans-serif; font-size:14px; font-weight:600;
      color:var(--laterite-bright); cursor:pointer;
    }
    .founder-more-toggle span[aria-hidden]{transition:transform 0.2s;}
    .founder-more-toggle.is-open span[aria-hidden]{transform:rotate(90deg);}
    .founder-more-toggle:hover{color:var(--laterite);}
  }

  /* ---------------- Destinations (light, card style) ---------------- */
  .destinations{background:#ffffff; color:var(--ink);}
  .destinations .block-head{max-width:1320px; margin-left:auto; margin-right:auto;}
  .destinations .block-head p{color:#6b6353;}
  .dest-grid{
    display:grid; grid-template-columns:1.3fr 1fr; grid-template-rows:repeat(2, minmax(220px, auto));
    gap:24px;
    background:none; max-width:1320px; margin:0 auto;
  }
  .dest-card{
    position:relative; border-radius:14px; overflow:hidden;
    background:#fff; cursor:pointer;
    box-shadow:0 20px 45px rgba(20,30,50,0.10);
    transition:box-shadow 0.25s ease, transform 0.25s ease;
    display:flex; flex-direction:column;
  }
  .dest-card:nth-child(1){grid-column:1; grid-row:1 / span 2;}
  .dest-card:nth-child(2){grid-column:2; grid-row:1;}
  .dest-card:nth-child(3){grid-column:2; grid-row:2;}
  .dest-card:hover{box-shadow:0 26px 55px rgba(20,30,50,0.16); transform:translateY(-4px);}
  .dest-card .imgwrap{position:relative; flex:1; overflow:hidden; min-height:180px; cursor:default;}
  .dest-card img{width:100%; height:100%; object-fit:cover; filter:none; transition:transform 0.6s ease;}
  .dest-card:hover img{transform:scale(1.06);}
  .dest-card .imgwrap img{
    position:absolute; inset:0; opacity:0;
    transition:opacity 1.1s ease, transform 0.6s ease;
  }
  .dest-card .imgwrap img.active{opacity:1;}
  .dest-card .content{
    position:static; padding:16px 18px 20px; color:var(--ink); flex:0 0 auto;
  }
  .dest-card .khmer-num{
    font-family:Arial, Helvetica, sans-serif; font-size:10.5px; letter-spacing:0.1em;
    text-transform:uppercase; color:var(--laterite-bright); font-weight:600; margin-bottom:8px; display:block;
  }
  .dest-card h3{font-size:17px; font-family:Arial, Helvetica, sans-serif; font-weight:700; color:#1c2733; margin-bottom:6px;}
  .dest-card .coords{
    font-family:Arial, Helvetica, sans-serif; font-size:11px; color:#8f8770;
    margin-bottom:10px; letter-spacing:0.02em;
  }
  .dest-card .explore{
    font-family:Arial, Helvetica, sans-serif; font-size:12.5px; font-weight:600; color:var(--jade);
    display:inline-flex; align-items:center; gap:6px; opacity:1; transform:none;
  }

  /* ---------------- Tours (light, card style) ---------------- */
  .tours{background:#ffffff; color:var(--ink);}
  .tours .block-head{max-width:1320px; margin-left:auto; margin-right:auto;}
  .tours .block-head p{color:#6b6353;}
  .tours-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:24px; max-width:1320px; margin:0 auto;}
  .tour-card{
    border:none; border-radius:14px; padding:0; overflow:hidden; background:#fff;
    box-shadow:0 20px 45px rgba(20,30,50,0.10);
    transition:box-shadow 0.25s ease, transform 0.25s ease;
    display:flex; flex-direction:column; height:100%;
  }
  .tour-card:hover{box-shadow:0 26px 55px rgba(20,30,50,0.16); transform:translateY(-6px);}
  .tour-card .imgwrap{position:relative; aspect-ratio:16/10; overflow:hidden;}
  .tour-card .imgwrap img{width:100%; height:100%; object-fit:cover; transition:transform 0.6s ease;}
  .tour-card:hover .imgwrap img{transform:scale(1.06);}
  .tour-card-body{padding:28px 30px 32px; display:flex; flex-direction:column; flex:1;}
  .tour-card .khmer-num{
    font-family:Arial, Helvetica, sans-serif; font-size:10.5px; letter-spacing:0.1em;
    text-transform:uppercase; color:var(--laterite-bright); font-weight:600; margin-bottom:18px; display:block;
  }
  .tour-card h3{font-size:20px; font-family:Arial, Helvetica, sans-serif; margin-bottom:12px; color:#1c2733;}
  .tour-card p{font-size:14px; color:#5b6b80; line-height:1.65; margin-bottom:22px; flex:1;}
  .tour-card ul{margin-bottom:24px;}
  .tour-card li{
    font-size:12.5px; color:#6b7a8c; padding:7px 0; border-top:1px solid rgba(11,12,10,0.08);
    display:flex; justify-content:space-between; align-items:center;
  }
  .tour-card li span:first-child{display:inline-flex; align-items:center; gap:7px;}
  .li-icon{width:13px; height:13px; flex:0 0 auto; stroke:var(--jade); fill:none; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; opacity:0.8;}
  .tour-card li:first-child{border-top:none;}
  .tour-card .cta{
    font-family:Arial, Helvetica, sans-serif; font-size:12.5px; font-weight:600; letter-spacing:0.02em;
    text-transform:none; color:var(--jade);
    display:inline-flex; align-items:center; gap:8px;
  }

  /* ---------------- Tours: video teaser cards ---------------- */
  .tour-video{
    border:none; border-radius:14px; overflow:hidden; background:#fff; cursor:pointer;
    box-shadow:0 20px 45px rgba(20,30,50,0.10);
    transition:box-shadow 0.25s ease, transform 0.25s ease;
    display:flex; flex-direction:column; height:100%;
  }
  .tour-video:hover{box-shadow:0 26px 55px rgba(20,30,50,0.16); transform:translateY(-6px);}
  .tour-video .imgwrap{position:relative; aspect-ratio:16/10; overflow:hidden;}
  .tour-video .imgwrap img{width:100%; height:100%; object-fit:cover; filter:brightness(0.72); transition:transform 0.6s ease;}
  .tour-video:hover .imgwrap img{transform:scale(1.06);}
  .tour-video-body{padding:22px 26px 26px;}
  .tour-video .khmer-num{
    font-family:Arial, Helvetica, sans-serif; font-size:10.5px; letter-spacing:0.1em;
    text-transform:uppercase; color:var(--laterite-bright); font-weight:600; margin-bottom:10px; display:block;
  }
  .tour-video h4{font-size:15.5px; font-family:Arial, Helvetica, sans-serif; font-weight:700; color:#1c2733; margin-bottom:6px;}
  .tour-video p{font-size:13px; color:#6b7a8c; line-height:1.55;}

  /* ---------------- Tour video fullscreen player ---------------- */
  .video-lightbox-backdrop{
    display:none; position:fixed; inset:0; z-index:999;
    background:rgba(6,7,5,0.96);
    align-items:center; justify-content:center;
    padding:32px;
    opacity:0; transition:opacity 0.25s ease;
  }
  .video-lightbox-backdrop.open{display:flex; opacity:1;}
  .video-lightbox-backdrop video{
    width:100%; height:100%; max-width:1400px; max-height:88vh;
    border-radius:4px; background:#000;
  }
  .video-lightbox-yt{
    width:100%; max-width:1400px; max-height:88vh;
    aspect-ratio:16/9; border-radius:4px; overflow:hidden; background:#000;
  }
  .video-lightbox-yt[hidden]{display:none;}
  .video-lightbox-yt iframe{width:100%; height:100%; border:0; display:block;}
  .video-lightbox-close{
    position:absolute; top:22px; right:22px; z-index:2;
    width:42px; height:42px; border-radius:50%;
    background:rgba(241,236,225,0.1); border:1px solid var(--rule);
    color:var(--stone); display:flex; align-items:center; justify-content:center;
    cursor:pointer; transition:background 0.2s, transform 0.2s;
  }
  .video-lightbox-close:hover{background:rgba(241,236,225,0.2); transform:rotate(90deg);}
  .video-lightbox-close svg{width:18px; height:18px;}
  .video-lightbox-error[hidden]{display:none;}
  .video-lightbox-error{
    position:absolute; inset:0; z-index:2;
    display:flex; align-items:center; justify-content:center;
    padding:32px; text-align:center;
    font-family:Arial, Helvetica, sans-serif; font-size:14px; color:var(--text-dim-dark);
  }
  @media(max-width:640px){
    .video-lightbox-backdrop{padding:0;}
    .video-lightbox-backdrop video{max-height:100vh; border-radius:0;}
    .video-lightbox-yt{max-height:100vh; border-radius:0;}
    .video-lightbox-close{top:16px; right:16px;}
  }

  /* ---------------- Media grid (news/updates style) ---------------- */
  .media{background:#ffffff; padding:36px 40px 40px; color:var(--ink);}
  .media .block-head{max-width:1320px; margin-left:auto; margin-right:auto; margin-bottom:20px;}
  .media .block-head p{color:#6b6353;}
  .media-play-btn{
    position:absolute; top:50%; left:50%; transform:translate(-50%,-50%);
    width:50px; height:50px; border-radius:50%;
    background:rgba(166,73,31,0.86);
    display:flex; align-items:center; justify-content:center;
    box-shadow:0 10px 24px rgba(11,12,10,0.28);
  }
  .media-play-btn svg{width:15px; height:15px; fill:#fff; margin-left:2px;}

  /* ---------------- Interactive gallery blocks ---------------- */
  .gi-wrap{max-width:1320px; margin:0 auto; display:flex; flex-direction:column; gap:56px;}
  .gi-label{
    font-family:Arial, Helvetica, sans-serif; font-size:11px; letter-spacing:0.12em;
    text-transform:uppercase; color:#8f8770; margin-bottom:16px; display:block;
  }
  .gi-block{display:grid; grid-template-columns:1.15fr 1fr; gap:24px; align-items:stretch;}
  .gi-block.reverse{grid-template-columns:1fr 1.15fr;}
  .gi-block.reverse .gi-hero{order:2;}
  .gi-block.reverse .gi-side{order:1;}
  .gi-hero{position:relative; border-radius:14px; overflow:hidden; background:#eee; min-height:320px;}
  .gi-hero[data-video]{cursor:pointer;}
  .gi-hero img{width:100%; height:100%; object-fit:cover; display:block; transition:opacity 0.35s ease;}
  .gi-hero-label{
    position:absolute; bottom:18px; left:18px; z-index:2;
    font-family:Arial, Helvetica, sans-serif; font-weight:700; font-size:15px; color:#fff;
    background:rgba(11,12,10,0.45); padding:7px 14px; border-radius:20px;
  }
  .gi-hero .media-play-btn{position:absolute; top:50%; left:50%; transform:translate(-50%,-50%);}
  .gi-side{display:flex; flex-direction:column; gap:14px;}
  .gi-thumbs{display:grid; grid-template-columns:repeat(3,1fr); gap:12px;}
  .gi-thumb{cursor:pointer; border:none; background:none; padding:0; text-align:left; font-family:inherit;}
  .gi-thumb-img{
    position:relative; aspect-ratio:4/3; border-radius:10px; overflow:hidden;
    border:2px solid transparent; transition:border-color 0.2s ease;
  }
  .gi-thumb.active .gi-thumb-img{border-color:var(--jade);}
  .gi-thumb-img img{width:100%; height:100%; object-fit:cover; display:block;}
  .gi-thumb-name{
    margin-top:7px; font-size:12.5px; font-weight:700; font-family:Arial, Helvetica, sans-serif;
    color:#9a9484; transition:color 0.2s ease;
  }
  .gi-thumb.active .gi-thumb-name{color:var(--jade);}
  .gi-panel{
    flex:1; border:1px solid rgba(20,30,50,0.12); border-radius:10px;
    padding:22px 24px; display:flex; flex-direction:column; justify-content:center;
  }
  .gi-panel h4{
    font-family:Arial, Helvetica, sans-serif; font-weight:700; font-size:15.5px;
    color:#1c2733; line-height:1.4; margin-bottom:14px;
  }
  .gi-checklist{list-style:none; display:flex; flex-direction:column; gap:9px;}
  .gi-checklist li{
    display:flex; gap:8px; align-items:flex-start; font-size:13px; color:#5b6b80; line-height:1.5;
  }
  .gi-checklist li::before{content:'✓'; color:var(--jade); font-weight:700; flex:0 0 auto;}
  @media (max-width:900px){
    .gi-block, .gi-block.reverse{grid-template-columns:1fr; gap:16px;}
    .gi-block.reverse .gi-hero, .gi-block.reverse .gi-side{order:initial;}
    .gi-hero{min-height:240px;}
  }

  /* ---------------- Follow us on social media ---------------- */
  .social-follow{background:#ffffff; padding:36px 40px 50px; text-align:center;}
  .social-follow-label{
    font-family:Arial, Helvetica, sans-serif; font-size:12px; letter-spacing:0.08em;
    text-transform:uppercase; color:#6b6353; margin-bottom:22px;
  }
  .social-icons{display:flex; justify-content:center; align-items:center; gap:8px; flex-wrap:nowrap;}
  .social-icons a{
    width:34px; height:34px; border-radius:50%;
    background:var(--ink); color:var(--stone);
    display:flex; align-items:center; justify-content:center;
    transition:background 0.2s ease, transform 0.2s ease;
  }
  .social-icons a:hover{background:var(--laterite-bright); transform:translateY(-2px);}
  .social-icons svg{width:15px; height:15px; fill:currentColor;}
  /* Keep all six icons on a single line even on narrow phones */
  @media (max-width:640px){
    .social-follow{padding:28px 16px 40px;}
  }

  /* ---------------- CTA strip ---------------- */
  .cta-strip{
    position:relative; isolation:isolate; overflow:hidden;
    background:#fdfaf3; padding:44px 40px; text-align:center;
  }
  .cta-strip-inner{position:relative; z-index:2; max-width:1320px; margin:0 auto;}
  .cta-strip h2{
    font-size:clamp(20px,2.4vw,30px); color:#1c4a2e; margin-bottom:16px;
    font-weight:800; letter-spacing:0.01em; text-transform:uppercase;
  }
  .cta-strip p{color:#5a6a63; margin-bottom:30px; font-size:14.5px;}
  .btn-stone{
    display:inline-block; background:#ffffff; color:var(--jade); padding:16px 34px;
    font-size:14px; letter-spacing:0.02em; font-weight:600; border-radius:40px;
    border:1px solid var(--jade); box-sizing:border-box;
    transition:background 0.18s ease, color 0.18s ease, border-color 0.18s ease;
  }
  .btn-stone:hover{background:var(--jade); color:#ffffff; border-color:var(--jade);}

  /* ---------------- Footer ---------------- */
  footer{background:var(--ink); border-top:1px solid var(--rule); padding:80px 40px 30px;}
  .footer-inner{max-width:1320px; margin:0 auto;}
  .footer-grid{display:grid; grid-template-columns:1.2fr repeat(3,0.8fr) 1.3fr; gap:40px; margin-bottom:70px;}
  .footer-brand .logo{margin-bottom:16px;}
  .footer-brand p{font-size:13.5px; color:var(--text-dim); line-height:1.7; max-width:280px;}
  .footer-col h4{
    font-family:Arial, Helvetica, sans-serif; font-size:11px; letter-spacing:0.1em;
    text-transform:uppercase; color:var(--gold); margin-bottom:18px;
  }
  .footer-col li{margin-bottom:11px;}
  .footer-col a{font-size:13.5px; color:var(--text-dim-dark); transition:color 0.2s;}
  .footer-col a:hover{color:var(--stone);}
  .footer-contact ul{margin-bottom:20px;}
  .footer-contact li{display:flex; align-items:flex-start; gap:9px; font-size:13.5px; color:var(--text-dim-dark); line-height:1.5;}
  .footer-contact li svg{width:15px; height:15px; flex:0 0 auto; margin-top:2px; color:var(--gold);}
  .footer-contact li a{color:inherit;}
  .footer-contact li a:hover{color:var(--stone);}
  .footer-newsletter{display:flex; gap:8px;}
  .footer-newsletter input{
    flex:1; min-width:0; background:transparent; border:1px solid var(--rule); border-radius:6px;
    padding:11px 12px; font-size:13px; color:var(--stone); font-family:inherit;
  }
  .footer-newsletter input::placeholder{color:var(--text-dim);}
  .footer-newsletter input:focus{outline:none; border-color:var(--gold);}
  .footer-newsletter button{
    flex:0 0 auto; width:42px; background:var(--laterite); border:none; border-radius:6px;
    display:flex; align-items:center; justify-content:center; color:var(--stone); cursor:pointer; transition:background 0.2s;
  }
  .footer-newsletter button:hover{background:var(--laterite-bright);}
  .footer-newsletter button svg{width:16px; height:16px;}
  .footer-bottom{
    border-top:1px solid var(--rule); padding-top:26px;
    display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:14px;
    font-family:Arial, Helvetica, sans-serif; font-size:11.5px; color:var(--text-dim);
  }

  /* ---------------- Responsive ---------------- */
  /* Collapse the nav links into the side panel earlier than the full mobile
     layout switch below, so half-screen / tablet widths also get the side panel. */
  @media (max-width:1100px){
    nav.primary > ul{display:none;}
    .logo{display:none;}
    .side-mobile-nav{display:block; margin-top:16px;}
    .side-mobile-nav-rule{display:block;}
    .call-us-text{display:none;}
    .header-right{gap:10px;}
    .mobile-lang-switch{display:flex;}
    .header-divider{display:block;}
    .call-us{border-right:none; padding-right:0; margin-right:0; gap:0;}
  }
  @media (max-width:900px){
    .side-nav-link{
      display:block; padding:13px 2px; font-size:15px; font-weight:600;
      color:#111; text-decoration:none; border-bottom:1px solid #eee;
    }
    .side-nav-group{border-bottom:1px solid #eee;}
    .side-nav-group summary{
      padding:13px 2px; font-size:15px; font-weight:600; color:#111;
      cursor:pointer; list-style:none; display:flex; align-items:center; justify-content:space-between;
    }
    .side-nav-group summary::-webkit-details-marker{display:none;}
    .side-nav-group summary::after{content:'+'; font-size:17px; color:#999; font-weight:400;}
    .side-nav-group[open] summary::after{content:'−';}
    .side-nav-group a{
      display:block; padding:9px 2px 9px 14px; font-size:14px;
      color:#555; text-decoration:none;
    }
    .side-nav-group a:hover{color:var(--laterite-bright);}
    header{
      background:linear-gradient(180deg, rgba(11,12,10,0.6) 0%, rgba(11,12,10,0.15) 70%, rgba(11,12,10,0) 100%);
      border-bottom:none;
      justify-content:flex-end;
    }
    .hero{padding-top:0;}
    .dest-grid{grid-template-columns:1.15fr 1fr; grid-template-rows:repeat(2, minmax(140px, auto)); gap:12px;}
    .dest-card:nth-child(1){grid-column:1; grid-row:1 / span 2;}
    .dest-card:nth-child(2){grid-column:2; grid-row:1;}
    .dest-card:nth-child(3){grid-column:2; grid-row:2;}
    .dest-card .imgwrap{aspect-ratio:auto; flex:1; min-height:120px;}
    .dest-card .content{padding:12px 12px 14px;}
    .dest-card h3{font-size:14px;}
    .dest-card .coords{font-size:9.5px; margin-bottom:6px;}
    .dest-card .explore{font-size:11px;}
    .dest-card .khmer-num{font-size:9px; margin-bottom:5px;}
    .tours-grid{grid-template-columns:1fr;}
    .vision-hero{min-height:460px; padding:90px 22px;}
    .footer-grid{grid-template-columns:1fr 1fr; row-gap:50px;}
    .footer-contact{grid-column:1 / -1;}
    section.block{padding:80px 22px;}
    header{padding:16px 22px;}
    .hero-stage{height:260px;}
    .hero-info{padding:16px 22px 12px; margin-top:-12px;}
    .hero-row{display:block;}
    .hero-center{max-width:100%; align-items:center; text-align:center; margin:0 auto;}
    .hero-caption{max-width:100%;}
    .arrow{
      position:absolute; top:-118px; transform:none; margin:0 !important;
      width:auto; height:auto; border:none; background:none;
      z-index:3;
    }
    .arrow:hover, .arrow:active{transform:scale(1.1);}
    .arrow svg{width:22px; height:22px;}
    .arrow.prev{left:10px;}
    .arrow.next{right:10px;}
    .below-hero{padding:18px 22px 0;}
    .below-hero-inner{padding-left:0; padding-right:0;}
    .news-box{flex-direction:column;}
    .news-label{border-right:none; border-bottom:1px solid #e2e2e2;}
  }

  /* ---------------- Khmer script support (site uses Arial for EN/FR; Khmer text uses Noto Sans Khmer since Arial doesn't cover Khmer glyphs) ---------------- */
  body.lang-kh, body.lang-kh h1, body.lang-kh h2, body.lang-kh h3, body.lang-kh h4,
  body.lang-kh p, body.lang-kh span, body.lang-kh a, body.lang-kh div,
  body.lang-kh button, body.lang-kh li, body.lang-kh textarea, body.lang-kh input {
    font-family:'Noto Sans Khmer', Arial, sans-serif !important;
  }
  /* The language-switcher menu always shows each language's native name (e.g. "\u1781\u17D2\u1798\u17C2\u179A"),
     regardless of which language is currently active, so it needs the Khmer font unconditionally. */
  [data-lang="kh"], .lang-nav-label{
    font-family:'Noto Sans Khmer', Arial, sans-serif;
  }

  /* ---------------- Reduced motion ---------------- */
  @media (prefers-reduced-motion: reduce){
    html{scroll-behavior:auto;}
    *, *::before, *::after{
      animation-duration:0.01ms !important;
      animation-iteration-count:1 !important;
      transition-duration:0.01ms !important;
    }
  }