/*
 * TC Holidays - Shared Landing Pages Stylesheet
 * Consolidated from Bali, Dubai, Kuala Lumpur, Langkawi + Kuala Lumpur, and Singapore landing pages.
 * Each page is scoped with a body class to prevent selector collisions.
 */

/* ==========================================================
   BALI
   Source page scope: body.page-bali
   ========================================================== */
body.page-bali{
    --navy:#0A1F42;
    --navy-2:#123362;
    --navy-deep:#071730;
    --orange:#F2590A;
    --orange-2:#FF7C33;
    --paper:#FBF7EE;
    --paper-2:#F3ECDB;
    --card:#FFFFFF;
    --ink:#221B10;
    --grey:#5B564C;
    --line:rgba(10,31,66,.14);

    --bali:#0E7C6B;
    --bali-soft:#D6EFE9;
    --bali-ink:#0B4A40;

    --f-display:"Bebas Neue", sans-serif;
    --f-head:"Space Grotesk", sans-serif;
    --f-body:"Inter", sans-serif;
    --f-mono:"JetBrains Mono", monospace;
  }

  body.page-bali, body.page-bali *{box-sizing:border-box;}
  html{scroll-behavior:smooth;}
  @media (prefers-reduced-motion: reduce){
    html{scroll-behavior:auto;}
    body.page-bali, body.page-bali *{animation-duration:0.001ms !important; animation-iteration-count:1 !important; transition-duration:0.001ms !important;}
  }

  body.page-bali{
    margin:0;
    font-family:var(--f-body);
    background:var(--paper);
    color:var(--ink);
    -webkit-font-smoothing:antialiased;
  }

  body.page-bali img{max-width:100%; display:block;}
  body.page-bali a{color:inherit;}

  body.page-bali :focus-visible{
    outline:3px solid var(--orange);
    outline-offset:3px;
  }

  body.page-bali .wrap{
    max-width:1180px;
    margin:0 auto;
    padding:0 28px;
  }

  /* ---------- NAV ---------- */
  body.page-bali header.site{
    position:sticky; top:0; z-index:50;
    background:rgba(251,247,238,.92);
    backdrop-filter:blur(8px);
    border-bottom:1px solid var(--line);
  }
  body.page-bali .nav{
    display:flex; align-items:center; justify-content:space-between;
    padding:12px 28px;
    max-width:1180px; margin:0 auto;
    gap:16px;
  }
  body.page-bali .brand{ display:flex; align-items:center; gap:12px; }
  body.page-bali .brand img{ height:44px; width:auto; }
  body.page-bali .brand .tag{
    font-family:var(--f-mono);
    font-size:11px;
    letter-spacing:.14em;
    color:var(--navy);
    border-left:1px solid var(--line);
    padding-left:12px;
    line-height:1.3;
  }
  body.page-bali .nav-links{
    display:flex; gap:22px; align-items:center;
    font-family:var(--f-head); font-weight:600; font-size:14.5px;
  }
  body.page-bali .nav-links a{ text-decoration:none; color:var(--navy); position:relative; padding:4px 2px;}
  body.page-bali .nav-links a::after{
    content:""; position:absolute; left:0; right:0; bottom:-3px; height:2px;
    background:var(--orange); transform:scaleX(0); transform-origin:left;
    transition:transform .25s ease;
  }
  body.page-bali .nav-links a:hover::after, body.page-bali .nav-links a:focus-visible::after{ transform:scaleX(1); }
  body.page-bali .nav-call{
    display:flex; align-items:center; gap:8px;
    background:var(--navy); color:#fff !important;
    padding:9px 16px; border-radius:999px;
    text-decoration:none; font-family:var(--f-head); font-weight:600; font-size:13.5px;
    white-space:nowrap;
  }
  body.page-bali .nav-call svg{ width:15px; height:15px; }
  @media (max-width:820px){ body.page-bali .nav-links{ display:none; } }
  @media (max-width:480px){
    body.page-bali .brand .tag{ display:none; }
    body.page-bali .nav{ padding:10px 16px; }
    body.page-bali .nav-call{ padding:9px 12px; font-size:12.5px; }
    body.page-bali .brand img{ height:36px; }
  }

  /* ---------- HERO ---------- */
  body.page-bali .hero{
    background:
      radial-gradient(ellipse at 15% -10%, rgba(14,124,107,.22), transparent 55%),
      radial-gradient(ellipse at 85% 0%, rgba(255,255,255,.06), transparent 45%),
      linear-gradient(180deg, var(--navy-deep) 0%, var(--navy) 62%, var(--navy-2) 100%);
    color:#F4EFDF;
    padding:76px 28px 64px;
    position:relative;
    overflow:hidden;
  }
  body.page-bali .hero::before{
    content:"";
    position:absolute; inset:0;
    background-image:
      radial-gradient(rgba(244,239,223,.14) 1px, transparent 1.4px);
    background-size:26px 26px;
    opacity:.35;
    pointer-events:none;
  }
  body.page-bali .hero-inner{ max-width:1180px; margin:0 auto; position:relative; }
  body.page-bali .eyebrow{
    font-family:var(--f-mono);
    letter-spacing:.22em;
    text-transform:uppercase;
    font-size:12px;
    color:#4FD7C0;
    display:inline-flex; align-items:center; gap:10px;
    margin-bottom:22px;
  }
  body.page-bali .eyebrow .dash{ width:28px; height:1px; background:#4FD7C0; display:inline-block;}

  body.page-bali .flapboard{
    display:flex; align-items:baseline; gap:18px; flex-wrap:wrap;
    margin-bottom:6px;
  }
  body.page-bali h1.headline{
    font-family:var(--f-display);
    font-weight:400;
    font-size:clamp(48px, 8vw, 104px);
    line-height:.92;
    letter-spacing:.01em;
    margin:0;
  }
  body.page-bali .flap{
    display:inline-block;
    font-family:var(--f-display);
    font-size:clamp(48px, 8vw, 104px);
    line-height:.92;
    color:#4FD7C0;
    min-width:2.6ch;
    position:relative;
  }
  body.page-bali .flap .flap-inner{ display:inline-block; }
  body.page-bali .flap.flipping .flap-inner{ animation:flipdown .5s ease; }
  @keyframes flipdown{
    0%{ transform:rotateX(0deg); opacity:1; }
    45%{ transform:rotateX(90deg); opacity:.25;}
    55%{ transform:rotateX(-90deg); opacity:.25;}
    100%{ transform:rotateX(0deg); opacity:1;}
  }
  body.page-bali .hero-sub{
    font-family:var(--f-body);
    font-size:17px;
    line-height:1.65;
    max-width:560px;
    color:#D9D2BE;
    margin:26px 0 36px;
  }
  body.page-bali .hero-sub strong{ color:#F4EFDF; }

  body.page-bali .hero-ctas{ display:flex; gap:14px; flex-wrap:wrap; margin-bottom:56px;}
  body.page-bali .btn{
    font-family:var(--f-head); font-weight:600; font-size:14.5px;
    padding:14px 24px; border-radius:999px;
    text-decoration:none; display:inline-flex; align-items:center; gap:10px;
    border:1px solid transparent; cursor:pointer;
    transition:transform .18s ease, box-shadow .18s ease;
  }
  body.page-bali .btn:hover{ transform:translateY(-2px); }
  body.page-bali .btn-primary{ background:var(--orange); color:#1A0D02; box-shadow:0 10px 26px rgba(242,89,10,.35);}
  body.page-bali .btn-ghost{ background:transparent; border-color:rgba(244,239,223,.35); color:#F4EFDF;}
  body.page-bali .btn-ghost:hover{ border-color:#F4EFDF; }

  body.page-bali .hero-meta{
    display:flex; gap:28px; flex-wrap:wrap;
    margin:34px 0 0; padding-top:26px; border-top:1px dashed rgba(244,239,223,.25);
  }
  body.page-bali .hero-meta .hm{ min-width:120px; }
  body.page-bali .hero-meta span{
    display:block; font-family:var(--f-mono); font-size:10.5px; letter-spacing:.12em;
    text-transform:uppercase; color:#B7AF93; margin-bottom:5px;
  }
  body.page-bali .hero-meta strong{ font-family:var(--f-head); font-size:16.5px; color:#F4EFDF; font-weight:600;}

  /* ---------- SECTION INTRO ---------- */
  body.page-bali .section-intro{
    max-width:1180px; margin:64px auto 8px; padding:0 28px;
  }
  body.page-bali .section-intro .eyebrow{ color:var(--bali); }
  body.page-bali .section-intro h2{
    font-family:var(--f-head); font-weight:700;
    font-size:clamp(28px,4vw,40px);
    margin:0 0 10px; color:var(--navy);
    letter-spacing:-.01em;
  }
  body.page-bali .section-intro p{ color:var(--grey); max-width:620px; font-size:15.5px; line-height:1.6; margin:0;}

  /* ---------- TICKETS ---------- */
  body.page-bali .tickets{
    max-width:1180px; margin:44px auto 20px; padding:0 28px;
    display:flex; flex-direction:column; gap:56px;
  }

  body.page-bali .ticket{
    background:var(--card);
    border-radius:22px;
    box-shadow:0 18px 46px rgba(10,31,66,.10), 0 2px 8px rgba(10,31,66,.05);
    display:grid;
    grid-template-columns:132px 1px 1fr 216px;
    position:relative;
    scroll-margin-top:90px;
  }

  body.page-bali .stub{
    background:var(--accent);
    color:#fff;
    border-radius:22px 0 0 22px;
    padding:26px 14px;
    display:flex; flex-direction:column; align-items:center; justify-content:space-between;
    position:relative;
    text-align:center;
  }
  body.page-bali .stub .code{
    font-family:var(--f-display);
    font-size:40px;
    letter-spacing:.03em;
    writing-mode:vertical-rl;
    transform:rotate(180deg);
  }
  body.page-bali .stub .route{
    font-family:var(--f-mono);
    font-size:11px;
    letter-spacing:.08em;
    writing-mode:vertical-rl;
    transform:rotate(180deg);
    opacity:.85;
  }
  body.page-bali .stub .plane{ width:20px; height:20px; opacity:.9; }

  body.page-bali .perf{
    position:relative;
    background-image:
      radial-gradient(circle at 6px 6px, var(--paper) 6px, transparent 6.5px);
    background-size:100% 20px;
    background-repeat:repeat-y;
    width:1px;
  }
  body.page-bali .perf::before, body.page-bali .perf::after{
    content:""; position:absolute; left:-9px; width:18px; height:18px;
    background:var(--paper); border-radius:50%;
  }
  body.page-bali .perf::before{ top:-9px; }
  body.page-bali .perf::after{ bottom:-9px; }

  body.page-bali .ticket-main{
    padding:30px 32px 26px;
    border-right:1px dashed var(--line);
  }
  body.page-bali .pkg-label{
    font-family:var(--f-mono); font-size:11px; letter-spacing:.12em; text-transform:uppercase;
    color:var(--accent); font-weight:700; margin-bottom:8px; display:block;
  }
  body.page-bali .ticket-main h3{
    font-family:var(--f-head); font-weight:700; font-size:32px;
    margin:0 0 4px; color:var(--navy); letter-spacing:-.01em;
  }
  body.page-bali .ticket-main .tagline{
    font-style:italic; color:var(--grey); font-size:15px; margin:0 0 18px;
  }
  body.page-bali .ticket-main .desc{
    font-size:14.5px; line-height:1.7; color:#453F32; margin:0 0 22px; max-width:640px;
  }

  body.page-bali .fields{
    display:grid; grid-template-columns:repeat(auto-fit,minmax(130px,1fr));
    gap:16px 20px;
    padding:16px 18px;
    background:var(--paper-2);
    border-radius:14px;
    margin-bottom:22px;

  }
  body.page-bali .field span{
    display:block; font-family:var(--f-mono); font-size:10px; letter-spacing:.1em;
    text-transform:uppercase; color:var(--grey); margin-bottom:4px;
  }
  body.page-bali .field strong{
    font-family:var(--f-head); font-size:14px; color:var(--navy); font-weight:600;
  }

  body.page-bali .why h4, body.page-bali .flightlog-wrap h4, body.page-bali .inclusions h4{
    font-family:var(--f-head); font-size:13px; letter-spacing:.06em; text-transform:uppercase;
    color:var(--navy); margin:0 0 12px; font-weight:700;
  }

  body.page-bali .chips{ display:flex; flex-wrap:wrap; gap:9px; margin-bottom:26px; }
  body.page-bali .chip{
    font-family:var(--f-body); font-size:13px; font-weight:500;
    background:var(--accent-soft); color:var(--accent-ink);
    padding:7px 13px; border-radius:8px;
    display:inline-flex; align-items:center; gap:6px;
  }
  body.page-bali .chip svg{ width:12px; height:12px; flex:none; }

  body.page-bali .flightlog-toggle{
    font-family:var(--f-head); font-weight:600; font-size:13.5px;
    background:var(--navy); color:#fff; border:none;
    padding:12px 20px; border-radius:10px; cursor:pointer;
    display:inline-flex; align-items:center; gap:10px;
    margin-bottom:6px;
    transition:background .2s ease;
  }
  body.page-bali .flightlog-toggle:hover{ background:var(--navy-2); }
  body.page-bali .flightlog-toggle .chev{ transition:transform .25s ease; width:11px; height:11px; }
  body.page-bali .flightlog-toggle[aria-expanded="true"] .chev{ transform:rotate(180deg); }

  body.page-bali .flightlog{
    max-height:0; overflow:hidden;
    transition:max-height .45s ease;
  }
  body.page-bali .flightlog-inner{ padding:26px 4px 8px; }

  body.page-bali .days{ list-style:none; margin:0; padding:0; position:relative; }
  body.page-bali .days::before{
    content:""; position:absolute; left:17px; top:6px; bottom:6px; width:2px;
    background:repeating-linear-gradient(to bottom, var(--line) 0 6px, transparent 6px 12px);
  }
  body.page-bali .day{
    display:grid; grid-template-columns:36px 1fr; gap:16px;
    padding-bottom:24px; position:relative;
  }
  body.page-bali .day:last-child{ padding-bottom:4px; }
  body.page-bali .stamp{
    width:36px; height:36px; border-radius:50%;
    border:2px solid var(--accent); color:var(--accent);
    display:flex; align-items:center; justify-content:center;
    font-family:var(--f-mono); font-weight:700; font-size:13px;
    background:var(--paper); position:relative; z-index:1;
  }
  body.page-bali .day h5{
    font-family:var(--f-head); font-size:15.5px; font-weight:700; margin:2px 0 3px; color:var(--navy);
  }
  body.page-bali .day .daytag{
    font-style:italic; font-size:13px; color:var(--accent); margin:0 0 8px;
  }
  body.page-bali .day p.body-text{ font-size:13.6px; line-height:1.65; color:#4B4636; margin:0 0 6px;}
  body.page-bali .day ul.stops{ margin:6px 0 8px; padding-left:18px; font-size:13.4px; color:#4B4636; line-height:1.6;}
  body.page-bali .day .stay{
    font-family:var(--f-mono); font-size:11px; letter-spacing:.05em; text-transform:uppercase;
    color:var(--grey); margin-top:6px;
  }
  body.page-bali .day .stay strong{ color:var(--navy); }
  body.page-bali .day .optional{
    margin-top:10px; padding:10px 13px; border-radius:10px;
    background:var(--accent-soft); font-size:12.8px; line-height:1.55; color:var(--accent-ink);
  }

  body.page-bali .inclusions{ margin-top:24px; }
  body.page-bali .inclusions ul{ list-style:none; margin:0; padding:0; display:grid; grid-template-columns:repeat(auto-fit,minmax(210px,1fr)); gap:9px 18px; }
  body.page-bali .inclusions li{ font-size:13.4px; color:#453F32; display:flex; gap:9px; align-items:flex-start; line-height:1.5;}
  body.page-bali .inclusions li svg{ width:14px; height:14px; flex:none; margin-top:2px; color:var(--accent);}

  body.page-bali .ticket-cta{
    padding:30px 22px; display:flex; flex-direction:column; align-items:center;
    gap:16px; text-align:center;
  }
  body.page-bali .ticket-cta .durbadge{
    font-family:var(--f-mono); font-size:11px; letter-spacing:.08em; color:var(--grey);
    text-transform:uppercase;
  }
  body.page-bali .ticket-cta .durbadge strong{
    display:block; font-family:var(--f-head); font-size:20px; color:var(--navy);
    letter-spacing:0; text-transform:none; margin-top:4px;
  }
  body.page-bali .barcode{
    width:100%; height:46px;
    background:repeating-linear-gradient(90deg, var(--navy) 0 2px, transparent 2px 4px, var(--navy) 4px 5px, transparent 5px 9px, var(--navy) 9px 12px, transparent 12px 14px);
    opacity:.85;
  }
  body.page-bali .cta-btn{
    width:100%; justify-content:center;
    font-family:var(--f-head); font-weight:600; font-size:13.5px;
    padding:12px 14px; border-radius:10px; text-decoration:none;
    display:flex; align-items:center; gap:9px;
  }
  body.page-bali .cta-call{ background:var(--navy); color:#fff; }
  body.page-bali .cta-call:hover{ background:var(--navy-2); }
  body.page-bali .cta-wa{ background:#EAF6EF; color:#1E7A46; border:1px solid #C9E7D4; }
  body.page-bali .cta-wa:hover{ background:#DDF1E5; }
  body.page-bali .cta-btn svg{ width:15px; height:15px; }

  @media (max-width:900px){
    body.page-bali .ticket{ grid-template-columns:1fr; }
    body.page-bali .stub{
      flex-direction:row; border-radius:22px 22px 0 0; padding:16px 22px;
      justify-content:flex-start; gap:14px;
    }
    body.page-bali .stub .code, body.page-bali .stub .route{ writing-mode:horizontal-tb; transform:none; }
    body.page-bali .stub .code{ font-size:28px; }
    body.page-bali .perf{ display:none; }
    body.page-bali .ticket-main{ border-right:none; border-bottom:1px dashed var(--line); }
    body.page-bali .ticket-cta{ flex-direction:row; flex-wrap:wrap; padding:22px; }
    body.page-bali .barcode{ display:none; }
    body.page-bali .ticket-cta .durbadge{ text-align:left; flex:1 1 140px; }
  }
  @media (max-width:520px){
    body.page-bali .ticket-cta{ flex-direction:column; }
    body.page-bali .fields{ grid-template-columns:1fr 1fr; }
  }

  /* ---------- NOTES ---------- */
  body.page-bali .notes{
    max-width:1180px; margin:70px auto; padding:0 28px;
  }
  body.page-bali .notes-card{
    background:var(--navy); color:#E7E1CE;
    border-radius:22px; padding:42px 40px;
    display:grid; grid-template-columns:1fr 1.6fr; gap:36px;
  }
  body.page-bali .notes-card h3{
    font-family:var(--f-head); font-size:22px; margin:0 0 10px; color:#fff;
  }
  body.page-bali .notes-card .stamp-mark{
    display:inline-flex; align-items:center; gap:8px;
    font-family:var(--f-mono); font-size:11px; letter-spacing:.14em; text-transform:uppercase;
    color:var(--orange-2); border:1px solid rgba(255,255,255,.25); padding:8px 12px; border-radius:8px;
    margin-bottom:18px;
  }
  body.page-bali .notes-card p.lead{ font-size:14px; line-height:1.7; color:#C9C2AA; max-width:320px;}
  body.page-bali .notes-card ul{ margin:0; padding-left:18px; columns:2; column-gap:32px; }
  body.page-bali .notes-card li{ font-size:12.8px; line-height:1.7; color:#CFC9B4; margin-bottom:10px; break-inside:avoid;}
  @media (max-width:820px){
    body.page-bali .notes-card{ grid-template-columns:1fr; }
    body.page-bali .notes-card ul{ columns:1; }
  }

  /* ---------- SIBLINGS ---------- */
  body.page-bali .siblings{
    max-width:1180px; margin:0 auto 70px; padding:0 28px;
  }
  body.page-bali .siblings h6{
    font-family:var(--f-head); font-size:12px; letter-spacing:.1em; text-transform:uppercase;
    color:var(--grey); margin:0 0 16px;
  }
  body.page-bali .sib-grid{ display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:16px; }
  body.page-bali .sib-card{
    display:block; text-decoration:none; background:var(--card);
    border:1px solid var(--line); border-radius:16px; padding:18px 20px;
    transition:transform .18s ease, box-shadow .18s ease;
  }
  body.page-bali .sib-card:hover{ transform:translateY(-3px); box-shadow:0 12px 26px rgba(10,31,66,.10);}
  body.page-bali .sib-card .sib-code{
    font-family:var(--f-mono); font-size:11px; letter-spacing:.1em; font-weight:700;
  }
  body.page-bali .sib-card .sib-name{
    font-family:var(--f-head); font-weight:700; font-size:18px; color:var(--navy); margin:6px 0 3px;
  }
  body.page-bali .sib-card .sib-dur{ font-size:12.5px; color:var(--grey); }

  /* ---------- FOOTER ---------- */
  body.page-bali footer{
    background:var(--navy-deep); color:#D9D2BE;
    padding:52px 28px 26px; margin-top:8px;
  }
  body.page-bali .footer-inner{
    max-width:1180px; margin:0 auto;
    display:flex; justify-content:space-between; flex-wrap:wrap; gap:36px;
    padding-bottom:34px; border-bottom:1px solid rgba(217,210,190,.15);
  }
  body.page-bali .footer-brand img{ height:48px; margin-bottom:14px; filter:brightness(0) invert(1); }
  body.page-bali .footer-brand p{ font-size:13px; color:#9C9576; max-width:280px; line-height:1.6; }
  body.page-bali .footer-col h6{
    font-family:var(--f-head); font-size:12px; letter-spacing:.1em; text-transform:uppercase;
    color:#F4EFDF; margin:0 0 14px;
  }
  body.page-bali .footer-col a, body.page-bali .footer-col span{
    display:block; font-size:13.6px; color:#D9D2BE; text-decoration:none;
    margin-bottom:10px; line-height:1.5;
  }
  body.page-bali .footer-col a:hover{ color:var(--orange-2); }
  body.page-bali .footer-bottom{
    max-width:1180px; margin:22px auto 0; display:flex; justify-content:space-between;
    flex-wrap:wrap; gap:10px; font-size:12px; color:#8F886C;
  }

  body.page-bali .sr-only{ position:absolute; width:1px;height:1px; overflow:hidden; clip:rect(0,0,0,0); }
  body.page-bali .hero.single{ padding-bottom:48px; }
  @media (max-width:520px){
    body.page-bali .hero.single{ padding-bottom:36px; }
  }

/* ==========================================================
   DUBAI
   Source page scope: body.page-dubai
   ========================================================== */
body.page-dubai{
    --navy:#0A1F42;
    --navy-2:#123362;
    --navy-deep:#071730;
    --orange:#F2590A;
    --orange-2:#FF7C33;
    --paper:#FBF7EE;
    --paper-2:#F3ECDB;
    --card:#FFFFFF;
    --ink:#221B10;
    --grey:#5B564C;
    --line:rgba(10,31,66,.14);

    --dubai:#C9812A;
    --dubai-soft:#F4E3C4;
    --kl:#256B52;
    --kl-soft:#D8EBE1;
    --lgk:#0E7C9C;
    --lgk-soft:#D3ECF2;

    --f-display:"Bebas Neue", sans-serif;
    --f-head:"Space Grotesk", sans-serif;
    --f-body:"Inter", sans-serif;
    --f-mono:"JetBrains Mono", monospace;
  }

  body.page-dubai, body.page-dubai *{box-sizing:border-box;}
  html{scroll-behavior:smooth;}
  @media (prefers-reduced-motion: reduce){
    html{scroll-behavior:auto;}
    body.page-dubai, body.page-dubai *{animation-duration:0.001ms !important; animation-iteration-count:1 !important; transition-duration:0.001ms !important;}
  }

  body.page-dubai{
    margin:0;
    font-family:var(--f-body);
    background:var(--paper);
    color:var(--ink);
    -webkit-font-smoothing:antialiased;
  }

  body.page-dubai img{max-width:100%; display:block;}

  body.page-dubai a{color:inherit;}

  body.page-dubai :focus-visible{
    outline:3px solid var(--orange);
    outline-offset:3px;
  }

  body.page-dubai .wrap{
    max-width:1180px;
    margin:0 auto;
    padding:0 28px;
  }

  /* ---------- NAV ---------- */
  body.page-dubai header.site{
    position:sticky; top:0; z-index:50;
    background:rgba(251,247,238,.92);
    backdrop-filter:blur(8px);
    border-bottom:1px solid var(--line);
  }
  body.page-dubai .nav{
    display:flex; align-items:center; justify-content:space-between;
    padding:12px 28px;
    max-width:1180px; margin:0 auto;
    gap:16px;
  }
  body.page-dubai .brand{ display:flex; align-items:center; gap:12px; }
  body.page-dubai .brand img{ height:44px; width:auto; }
  body.page-dubai .brand .tag{
    font-family:var(--f-mono);
    font-size:11px;
    letter-spacing:.14em;
    color:var(--navy);
    border-left:1px solid var(--line);
    padding-left:12px;
    line-height:1.3;
  }
  body.page-dubai .nav-links{
    display:flex; gap:22px; align-items:center;
    font-family:var(--f-head); font-weight:600; font-size:14.5px;
  }
  body.page-dubai .nav-links a{ text-decoration:none; color:var(--navy); position:relative; padding:4px 2px;}
  body.page-dubai .nav-links a::after{
    content:""; position:absolute; left:0; right:0; bottom:-3px; height:2px;
    background:var(--orange); transform:scaleX(0); transform-origin:left;
    transition:transform .25s ease;
  }
  body.page-dubai .nav-links a:hover::after, body.page-dubai .nav-links a:focus-visible::after{ transform:scaleX(1); }
  body.page-dubai .nav-call{
    display:flex; align-items:center; gap:8px;
    background:var(--navy); color:#fff !important;
    padding:9px 16px; border-radius:999px;
    text-decoration:none; font-family:var(--f-head); font-weight:600; font-size:13.5px;
    white-space:nowrap;
  }
  body.page-dubai .nav-call svg{ width:15px; height:15px; }
  @media (max-width:820px){ body.page-dubai .nav-links{ display:none; } }
  @media (max-width:480px){
    body.page-dubai .brand .tag{ display:none; }
    body.page-dubai .nav{ padding:10px 16px; }
    body.page-dubai .nav-call{ padding:9px 12px; font-size:12.5px; }
    body.page-dubai .brand img{ height:36px; }
  }

  /* ---------- HERO ---------- */
  body.page-dubai .hero{
    background:
      radial-gradient(ellipse at 15% -10%, rgba(242,89,10,.16), transparent 55%),
      radial-gradient(ellipse at 85% 0%, rgba(255,255,255,.06), transparent 45%),
      linear-gradient(180deg, var(--navy-deep) 0%, var(--navy) 62%, var(--navy-2) 100%);
    color:#F4EFDF;
    padding:76px 28px 64px;
    position:relative;
    overflow:hidden;
  }
  body.page-dubai .hero::before{
    content:"";
    position:absolute; inset:0;
    background-image:
      radial-gradient(rgba(244,239,223,.14) 1px, transparent 1.4px);
    background-size:26px 26px;
    opacity:.35;
    pointer-events:none;
  }
  body.page-dubai .hero-inner{ max-width:1180px; margin:0 auto; position:relative; }
  body.page-dubai .eyebrow{
    font-family:var(--f-mono);
    letter-spacing:.22em;
    text-transform:uppercase;
    font-size:12px;
    color:var(--orange-2);
    display:inline-flex; align-items:center; gap:10px;
    margin-bottom:22px;
  }
  body.page-dubai .eyebrow .dash{ width:28px; height:1px; background:var(--orange-2); display:inline-block;}

  body.page-dubai .flapboard{
    display:flex; align-items:baseline; gap:18px; flex-wrap:wrap;
    margin-bottom:6px;
  }
  body.page-dubai h1.headline{
    font-family:var(--f-display);
    font-weight:400;
    font-size:clamp(48px, 8vw, 104px);
    line-height:.92;
    letter-spacing:.01em;
    margin:0;
  }
  body.page-dubai .flap{
    display:inline-block;
    font-family:var(--f-display);
    font-size:clamp(48px, 8vw, 104px);
    line-height:.92;
    color:var(--orange);
    min-width:2.6ch;
    position:relative;
  }
  body.page-dubai .flap .flap-inner{ display:inline-block; }
  body.page-dubai .flap.flipping .flap-inner{ animation:flipdown .5s ease; }
  @keyframes flipdown{
    0%{ transform:rotateX(0deg); opacity:1; }
    45%{ transform:rotateX(90deg); opacity:.25;}
    55%{ transform:rotateX(-90deg); opacity:.25;}
    100%{ transform:rotateX(0deg); opacity:1;}
  }
  body.page-dubai .hero-sub{
    font-family:var(--f-body);
    font-size:17px;
    line-height:1.65;
    max-width:560px;
    color:#D9D2BE;
    margin:26px 0 36px;
  }
  body.page-dubai .hero-sub strong{ color:#F4EFDF; }

  body.page-dubai .hero-ctas{ display:flex; gap:14px; flex-wrap:wrap; margin-bottom:56px;}
  body.page-dubai .btn{
    font-family:var(--f-head); font-weight:600; font-size:14.5px;
    padding:14px 24px; border-radius:999px;
    text-decoration:none; display:inline-flex; align-items:center; gap:10px;
    border:1px solid transparent; cursor:pointer;
    transition:transform .18s ease, box-shadow .18s ease;
  }
  body.page-dubai .btn:hover{ transform:translateY(-2px); }
  body.page-dubai .btn-primary{ background:var(--orange); color:#1A0D02; box-shadow:0 10px 26px rgba(242,89,10,.35);}
  body.page-dubai .btn-ghost{ background:transparent; border-color:rgba(244,239,223,.35); color:#F4EFDF;}
  body.page-dubai .btn-ghost:hover{ border-color:#F4EFDF; }

  body.page-dubai .quicknav{
    display:flex; gap:12px; flex-wrap:wrap;
    padding-top:26px; border-top:1px dashed rgba(244,239,223,.25);
  }
  body.page-dubai .quicknav a{
    font-family:var(--f-mono); font-size:12.5px; letter-spacing:.04em;
    color:#D9D2BE; text-decoration:none;
    border:1px solid rgba(244,239,223,.25);
    padding:9px 14px; border-radius:8px;
    display:inline-flex; align-items:center; gap:8px;
    transition:border-color .2s ease, color .2s ease, background .2s ease;
  }
  body.page-dubai .quicknav a:hover{ color:#F4EFDF; border-color:var(--orange-2); background:rgba(242,89,10,.1);}
  body.page-dubai .quicknav .dot{ width:7px; height:7px; border-radius:50%; }

  /* ---------- SECTION INTRO ---------- */
  body.page-dubai .section-intro{
    max-width:1180px; margin:64px auto 8px; padding:0 28px;
  }
  body.page-dubai .section-intro .eyebrow{ color:var(--orange); }
  body.page-dubai .section-intro h2{
    font-family:var(--f-head); font-weight:700;
    font-size:clamp(28px,4vw,40px);
    margin:0 0 10px; color:var(--navy);
    letter-spacing:-.01em;
  }
  body.page-dubai .section-intro p{ color:var(--grey); max-width:620px; font-size:15.5px; line-height:1.6; margin:0;}

  /* ---------- TICKETS ---------- */
  body.page-dubai .tickets{
    max-width:1180px; margin:44px auto 20px; padding:0 28px;
    display:flex; flex-direction:column; gap:56px;
  }

  body.page-dubai .ticket{
    background:var(--card);
    border-radius:22px;
    box-shadow:0 18px 46px rgba(10,31,66,.10), 0 2px 8px rgba(10,31,66,.05);
    display:grid;
    grid-template-columns:132px 1px 1fr 216px;
    position:relative;
    scroll-margin-top:90px;
  }

  body.page-dubai .stub{
    background:var(--accent);
    color:#fff;
    border-radius:22px 0 0 22px;
    padding:26px 14px;
    display:flex; flex-direction:column; align-items:center; justify-content:space-between;
    position:relative;
    text-align:center;
  }
  body.page-dubai .stub .code{
    font-family:var(--f-display);
    font-size:40px;
    letter-spacing:.03em;
    writing-mode:vertical-rl;
    transform:rotate(180deg);
  }
  body.page-dubai .stub .route{
    font-family:var(--f-mono);
    font-size:11px;
    letter-spacing:.08em;
    writing-mode:vertical-rl;
    transform:rotate(180deg);
    opacity:.85;
  }
  body.page-dubai .stub .plane{ width:20px; height:20px; opacity:.9; }

  body.page-dubai .perf{
    position:relative;
    background-image:
      radial-gradient(circle at 6px 6px, var(--paper) 6px, transparent 6.5px);
    background-size:100% 20px;
    background-repeat:repeat-y;
    width:1px;
  }
  body.page-dubai .perf::before, body.page-dubai .perf::after{
    content:""; position:absolute; left:-9px; width:18px; height:18px;
    background:var(--paper); border-radius:50%;
  }
  body.page-dubai .perf::before{ top:-9px; }
  body.page-dubai .perf::after{ bottom:-9px; }

  body.page-dubai .ticket-main{
    padding:30px 32px 26px;
    border-right:1px dashed var(--line);
  }
  body.page-dubai .pkg-label{
    font-family:var(--f-mono); font-size:11px; letter-spacing:.12em; text-transform:uppercase;
    color:var(--accent); font-weight:700; margin-bottom:8px; display:block;
  }
  body.page-dubai .ticket-main h3{
    font-family:var(--f-head); font-weight:700; font-size:32px;
    margin:0 0 4px; color:var(--navy); letter-spacing:-.01em;
  }
  body.page-dubai .ticket-main .tagline{
    font-style:italic; color:var(--grey); font-size:15px; margin:0 0 18px;
  }
  body.page-dubai .ticket-main .desc{
    font-size:14.5px; line-height:1.7; color:#453F32; margin:0 0 22px; max-width:640px;
  }

  body.page-dubai .fields{
    display:grid; grid-template-columns:repeat(auto-fit,minmax(130px,1fr));
    gap:16px 20px;
    padding:16px 18px;
    background:var(--paper-2);
    border-radius:14px;
    margin-bottom:22px;
  }
  body.page-dubai .field span{
    display:block; font-family:var(--f-mono); font-size:10px; letter-spacing:.1em;
    text-transform:uppercase; color:var(--grey); margin-bottom:4px;
  }
  body.page-dubai .field strong{
    font-family:var(--f-head); font-size:14px; color:var(--navy); font-weight:600;
  }

  body.page-dubai .why h4, body.page-dubai .flightlog-wrap h4, body.page-dubai .inclusions h4{
    font-family:var(--f-head); font-size:13px; letter-spacing:.06em; text-transform:uppercase;
    color:var(--navy); margin:0 0 12px; font-weight:700;
  }

  body.page-dubai .chips{ display:flex; flex-wrap:wrap; gap:9px; margin-bottom:26px; }
  body.page-dubai .chip{
    font-family:var(--f-body); font-size:13px; font-weight:500;
    background:var(--accent-soft); color:var(--accent-ink);
    padding:7px 13px; border-radius:8px;
    display:inline-flex; align-items:center; gap:6px;
  }
  body.page-dubai .chip svg{ width:12px; height:12px; flex:none; }

  body.page-dubai .flightlog-toggle{
    font-family:var(--f-head); font-weight:600; font-size:13.5px;
    background:var(--navy); color:#fff; border:none;
    padding:12px 20px; border-radius:10px; cursor:pointer;
    display:inline-flex; align-items:center; gap:10px;
    margin-bottom:6px;
    transition:background .2s ease;
  }
  body.page-dubai .flightlog-toggle:hover{ background:var(--navy-2); }
  body.page-dubai .flightlog-toggle .chev{ transition:transform .25s ease; width:11px; height:11px; }
  body.page-dubai .flightlog-toggle[aria-expanded="true"] .chev{ transform:rotate(180deg); }

  body.page-dubai .flightlog{
    max-height:0; overflow:hidden;
    transition:max-height .45s ease;
  }
  body.page-dubai .flightlog-inner{ padding:26px 4px 8px; }

  body.page-dubai .days{ list-style:none; margin:0; padding:0; position:relative; }
  body.page-dubai .days::before{
    content:""; position:absolute; left:17px; top:6px; bottom:6px; width:2px;
    background:repeating-linear-gradient(to bottom, var(--line) 0 6px, transparent 6px 12px);
  }
  body.page-dubai .day{
    display:grid; grid-template-columns:36px 1fr; gap:16px;
    padding-bottom:24px; position:relative;
  }
  body.page-dubai .day:last-child{ padding-bottom:4px; }
  body.page-dubai .stamp{
    width:36px; height:36px; border-radius:50%;
    border:2px solid var(--accent); color:var(--accent);
    display:flex; align-items:center; justify-content:center;
    font-family:var(--f-mono); font-weight:700; font-size:13px;
    background:var(--paper); position:relative; z-index:1;
  }
  body.page-dubai .day h5{
    font-family:var(--f-head); font-size:15.5px; font-weight:700; margin:2px 0 3px; color:var(--navy);
  }
  body.page-dubai .day .daytag{
    font-style:italic; font-size:13px; color:var(--accent); margin:0 0 8px;
  }
  body.page-dubai .day p.body-text{ font-size:13.6px; line-height:1.65; color:#4B4636; margin:0 0 6px;}
  body.page-dubai .day ul.stops{ margin:6px 0 8px; padding-left:18px; font-size:13.4px; color:#4B4636; line-height:1.6;}
  body.page-dubai .day .stay{
    font-family:var(--f-mono); font-size:11px; letter-spacing:.05em; text-transform:uppercase;
    color:var(--grey); margin-top:6px;
  }
  body.page-dubai .day .stay strong{ color:var(--navy); }
  body.page-dubai .day .optional{
    margin-top:10px; padding:10px 13px; border-radius:10px;
    background:var(--accent-soft); font-size:12.8px; line-height:1.55; color:var(--accent-ink);
  }

  body.page-dubai .inclusions{ margin-top:24px; }
  body.page-dubai .inclusions ul{ list-style:none; margin:0; padding:0; display:grid; grid-template-columns:repeat(auto-fit,minmax(210px,1fr)); gap:9px 18px; }
  body.page-dubai .inclusions li{ font-size:13.4px; color:#453F32; display:flex; gap:9px; align-items:flex-start; line-height:1.5;}
  body.page-dubai .inclusions li svg{ width:14px; height:14px; flex:none; margin-top:2px; color:var(--accent);}

  body.page-dubai .ticket-cta{
    padding:30px 22px; display:flex; flex-direction:column; align-items:center;
    gap:16px; text-align:center;
  }
  body.page-dubai .ticket-cta .durbadge{
    font-family:var(--f-mono); font-size:11px; letter-spacing:.08em; color:var(--grey);
    text-transform:uppercase;
  }
  body.page-dubai .ticket-cta .durbadge strong{
    display:block; font-family:var(--f-head); font-size:20px; color:var(--navy);
    letter-spacing:0; text-transform:none; margin-top:4px;
  }
  body.page-dubai .barcode{
    width:100%; height:46px;
    background:repeating-linear-gradient(90deg, var(--navy) 0 2px, transparent 2px 4px, var(--navy) 4px 5px, transparent 5px 9px, var(--navy) 9px 12px, transparent 12px 14px);
    opacity:.85;
  }
  body.page-dubai .cta-btn{
    width:100%; justify-content:center;
    font-family:var(--f-head); font-weight:600; font-size:13.5px;
    padding:12px 14px; border-radius:10px; text-decoration:none;
    display:flex; align-items:center; gap:9px;
  }
  body.page-dubai .cta-call{ background:var(--navy); color:#fff; }
  body.page-dubai .cta-call:hover{ background:var(--navy-2); }
  body.page-dubai .cta-wa{ background:#EAF6EF; color:#1E7A46; border:1px solid #C9E7D4; }
  body.page-dubai .cta-wa:hover{ background:#DDF1E5; }
  body.page-dubai .cta-btn svg{ width:15px; height:15px; }

  @media (max-width:900px){
    body.page-dubai .ticket{ grid-template-columns:1fr; }
    body.page-dubai .stub{
      flex-direction:row; border-radius:22px 22px 0 0; padding:16px 22px;
      justify-content:flex-start; gap:14px;
    }
    body.page-dubai .stub .code, body.page-dubai .stub .route{ writing-mode:horizontal-tb; transform:none; }
    body.page-dubai .stub .code{ font-size:28px; }
    body.page-dubai .perf{ display:none; }
    body.page-dubai .ticket-main{ border-right:none; border-bottom:1px dashed var(--line); }
    body.page-dubai .ticket-cta{ flex-direction:row; flex-wrap:wrap; padding:22px; }
    body.page-dubai .barcode{ display:none; }
    body.page-dubai .ticket-cta .durbadge{ text-align:left; flex:1 1 140px; }
  }
  @media (max-width:520px){
    body.page-dubai .ticket-cta{ flex-direction:column; }
    body.page-dubai .fields{ grid-template-columns:1fr 1fr; }
  }

  /* ---------- NOTES ---------- */
  body.page-dubai .notes{
    max-width:1180px; margin:70px auto; padding:0 28px;
  }
  body.page-dubai .notes-card{
    background:var(--navy); color:#E7E1CE;
    border-radius:22px; padding:42px 40px;
    display:grid; grid-template-columns:1fr 1.6fr; gap:36px;
  }
  body.page-dubai .notes-card h3{
    font-family:var(--f-head); font-size:22px; margin:0 0 10px; color:#fff;
  }
  body.page-dubai .notes-card .stamp-mark{
    display:inline-flex; align-items:center; gap:8px;
    font-family:var(--f-mono); font-size:11px; letter-spacing:.14em; text-transform:uppercase;
    color:var(--orange-2); border:1px solid rgba(255,255,255,.25); padding:8px 12px; border-radius:8px;
    margin-bottom:18px;
  }
  body.page-dubai .notes-card p.lead{ font-size:14px; line-height:1.7; color:#C9C2AA; max-width:320px;}
  body.page-dubai .notes-card ul{ margin:0; padding-left:18px; columns:2; column-gap:32px; }
  body.page-dubai .notes-card li{ font-size:12.8px; line-height:1.7; color:#CFC9B4; margin-bottom:10px; break-inside:avoid;}
  @media (max-width:820px){
    body.page-dubai .notes-card{ grid-template-columns:1fr; }
    body.page-dubai .notes-card ul{ columns:1; }
  }

  /* ---------- FOOTER ---------- */
  body.page-dubai footer{
    background:var(--navy-deep); color:#D9D2BE;
    padding:52px 28px 26px; margin-top:8px;
  }
  body.page-dubai .footer-inner{
    max-width:1180px; margin:0 auto;
    display:flex; justify-content:space-between; flex-wrap:wrap; gap:36px;
    padding-bottom:34px; border-bottom:1px solid rgba(217,210,190,.15);
  }
  body.page-dubai .footer-brand img{ height:48px; margin-bottom:14px; filter:brightness(0) invert(1); }
  body.page-dubai .footer-brand p{ font-size:13px; color:#9C9576; max-width:280px; line-height:1.6; }
  body.page-dubai .footer-col h6{
    font-family:var(--f-head); font-size:12px; letter-spacing:.1em; text-transform:uppercase;
    color:#F4EFDF; margin:0 0 14px;
  }
  body.page-dubai .footer-col a, body.page-dubai .footer-col span{
    display:block; font-size:13.6px; color:#D9D2BE; text-decoration:none;
    margin-bottom:10px; line-height:1.5;
  }
  body.page-dubai .footer-col a:hover{ color:var(--orange-2); }
  body.page-dubai .footer-bottom{
    max-width:1180px; margin:22px auto 0; display:flex; justify-content:space-between;
    flex-wrap:wrap; gap:10px; font-size:12px; color:#8F886C;
  }

  body.page-dubai .sr-only{ position:absolute; width:1px;height:1px; overflow:hidden; clip:rect(0,0,0,0); }

  body.page-dubai .hero.single{ padding-bottom:0; }
  body.page-dubai .hero-meta{
    display:flex; gap:28px; flex-wrap:wrap;
    margin:34px 0 44px; padding-top:26px; border-top:1px dashed rgba(244,239,223,.25);
  }
  body.page-dubai .hero-meta .hm{ min-width:120px; }
  body.page-dubai .hero-meta span{
    display:block; font-family:var(--f-mono); font-size:10.5px; letter-spacing:.12em;
    text-transform:uppercase; color:#B7AF93; margin-bottom:5px;
  }
  body.page-dubai .hero-meta strong{ font-family:var(--f-head); font-size:16.5px; color:#F4EFDF; font-weight:600;}

  body.page-dubai .siblings{
    max-width:1180px; margin:0 auto 70px; padding:0 28px;
  }
  body.page-dubai .siblings h6{
    font-family:var(--f-head); font-size:12px; letter-spacing:.1em; text-transform:uppercase;
    color:var(--grey); margin:0 0 16px;
  }
  body.page-dubai .sib-grid{ display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:16px; }
  body.page-dubai .sib-card{
    display:block; text-decoration:none; background:var(--card);
    border:1px solid var(--line); border-radius:16px; padding:18px 20px;
    transition:transform .18s ease, box-shadow .18s ease;
  }
  body.page-dubai .sib-card:hover{ transform:translateY(-3px); box-shadow:0 12px 26px rgba(10,31,66,.10);}
  body.page-dubai .sib-card .sib-code{
    font-family:var(--f-mono); font-size:11px; letter-spacing:.1em; font-weight:700;
  }
  body.page-dubai .sib-card .sib-name{
    font-family:var(--f-head); font-weight:700; font-size:18px; color:var(--navy); margin:6px 0 3px;
  }
  body.page-dubai .sib-card .sib-dur{ font-size:12.5px; color:var(--grey); }

/* ==========================================================
   MALAYSIA / KUALA LUMPUR
   Source page scope: body.page-malaysia-kl
   ========================================================== */
body.page-malaysia-kl{
    --navy:#0A1F42;
    --navy-2:#123362;
    --navy-deep:#071730;
    --orange:#F2590A;
    --orange-2:#FF7C33;
    --paper:#FBF7EE;
    --paper-2:#F3ECDB;
    --card:#FFFFFF;
    --ink:#221B10;
    --grey:#5B564C;
    --line:rgba(10,31,66,.14);

    --dubai:#C9812A;
    --dubai-soft:#F4E3C4;
    --kl:#256B52;
    --kl-soft:#D8EBE1;
    --lgk:#0E7C9C;
    --lgk-soft:#D3ECF2;

    --f-display:"Bebas Neue", sans-serif;
    --f-head:"Space Grotesk", sans-serif;
    --f-body:"Inter", sans-serif;
    --f-mono:"JetBrains Mono", monospace;
  }

  body.page-malaysia-kl, body.page-malaysia-kl *{box-sizing:border-box;}
  html{scroll-behavior:smooth;}
  @media (prefers-reduced-motion: reduce){
    html{scroll-behavior:auto;}
    body.page-malaysia-kl, body.page-malaysia-kl *{animation-duration:0.001ms !important; animation-iteration-count:1 !important; transition-duration:0.001ms !important;}
  }

  body.page-malaysia-kl{
    margin:0;
    font-family:var(--f-body);
    background:var(--paper);
    color:var(--ink);
    -webkit-font-smoothing:antialiased;
  }

  body.page-malaysia-kl img{max-width:100%; display:block;}

  body.page-malaysia-kl a{color:inherit;}

  body.page-malaysia-kl :focus-visible{
    outline:3px solid var(--orange);
    outline-offset:3px;
  }

  body.page-malaysia-kl .wrap{
    max-width:1180px;
    margin:0 auto;
    padding:0 28px;
  }

  /* ---------- NAV ---------- */
  body.page-malaysia-kl header.site{
    position:sticky; top:0; z-index:50;
    background:rgba(251,247,238,.92);
    backdrop-filter:blur(8px);
    border-bottom:1px solid var(--line);
  }
  body.page-malaysia-kl .nav{
    display:flex; align-items:center; justify-content:space-between;
    padding:12px 28px;
    max-width:1180px; margin:0 auto;
    gap:16px;
  }
  body.page-malaysia-kl .brand{ display:flex; align-items:center; gap:12px; }
  body.page-malaysia-kl .brand img{ height:44px; width:auto; }
  body.page-malaysia-kl .brand .tag{
    font-family:var(--f-mono);
    font-size:11px;
    letter-spacing:.14em;
    color:var(--navy);
    border-left:1px solid var(--line);
    padding-left:12px;
    line-height:1.3;
  }
  body.page-malaysia-kl .nav-links{
    display:flex; gap:22px; align-items:center;
    font-family:var(--f-head); font-weight:600; font-size:14.5px;
  }
  body.page-malaysia-kl .nav-links a{ text-decoration:none; color:var(--navy); position:relative; padding:4px 2px;}
  body.page-malaysia-kl .nav-links a::after{
    content:""; position:absolute; left:0; right:0; bottom:-3px; height:2px;
    background:var(--orange); transform:scaleX(0); transform-origin:left;
    transition:transform .25s ease;
  }
  body.page-malaysia-kl .nav-links a:hover::after, body.page-malaysia-kl .nav-links a:focus-visible::after{ transform:scaleX(1); }
  body.page-malaysia-kl .nav-call{
    display:flex; align-items:center; gap:8px;
    background:var(--navy); color:#fff !important;
    padding:9px 16px; border-radius:999px;
    text-decoration:none; font-family:var(--f-head); font-weight:600; font-size:13.5px;
    white-space:nowrap;
  }
  body.page-malaysia-kl .nav-call svg{ width:15px; height:15px; }
  @media (max-width:820px){ body.page-malaysia-kl .nav-links{ display:none; } }
  @media (max-width:480px){
    body.page-malaysia-kl .brand .tag{ display:none; }
    body.page-malaysia-kl .nav{ padding:10px 16px; }
    body.page-malaysia-kl .nav-call{ padding:9px 12px; font-size:12.5px; }
    body.page-malaysia-kl .brand img{ height:36px; }
  }

  /* ---------- HERO ---------- */
  body.page-malaysia-kl .hero{
    background:
      radial-gradient(ellipse at 15% -10%, rgba(242,89,10,.16), transparent 55%),
      radial-gradient(ellipse at 85% 0%, rgba(255,255,255,.06), transparent 45%),
      linear-gradient(180deg, var(--navy-deep) 0%, var(--navy) 62%, var(--navy-2) 100%);
    color:#F4EFDF;
    padding:76px 28px 64px;
    position:relative;
    overflow:hidden;
  }
  body.page-malaysia-kl .hero::before{
    content:"";
    position:absolute; inset:0;
    background-image:
      radial-gradient(rgba(244,239,223,.14) 1px, transparent 1.4px);
    background-size:26px 26px;
    opacity:.35;
    pointer-events:none;
  }
  body.page-malaysia-kl .hero-inner{ max-width:1180px; margin:0 auto; position:relative; }
  body.page-malaysia-kl .eyebrow{
    font-family:var(--f-mono);
    letter-spacing:.22em;
    text-transform:uppercase;
    font-size:12px;
    color:var(--orange-2);
    display:inline-flex; align-items:center; gap:10px;
    margin-bottom:22px;
  }
  body.page-malaysia-kl .eyebrow .dash{ width:28px; height:1px; background:var(--orange-2); display:inline-block;}

  body.page-malaysia-kl .flapboard{
    display:flex; align-items:baseline; gap:18px; flex-wrap:wrap;
    margin-bottom:6px;
  }
  body.page-malaysia-kl h1.headline{
    font-family:var(--f-display);
    font-weight:400;
    font-size:clamp(48px, 8vw, 104px);
    line-height:.92;
    letter-spacing:.01em;
    margin:0;
  }
  body.page-malaysia-kl .flap{
    display:inline-block;
    font-family:var(--f-display);
    font-size:clamp(48px, 8vw, 104px);
    line-height:.92;
    color:var(--orange);
    min-width:2.6ch;
    position:relative;
  }
  body.page-malaysia-kl .flap .flap-inner{ display:inline-block; }
  body.page-malaysia-kl .flap.flipping .flap-inner{ animation:flipdown .5s ease; }
  @keyframes flipdown{
    0%{ transform:rotateX(0deg); opacity:1; }
    45%{ transform:rotateX(90deg); opacity:.25;}
    55%{ transform:rotateX(-90deg); opacity:.25;}
    100%{ transform:rotateX(0deg); opacity:1;}
  }
  body.page-malaysia-kl .hero-sub{
    font-family:var(--f-body);
    font-size:17px;
    line-height:1.65;
    max-width:560px;
    color:#D9D2BE;
    margin:26px 0 36px;
  }
  body.page-malaysia-kl .hero-sub strong{ color:#F4EFDF; }

  body.page-malaysia-kl .hero-ctas{ display:flex; gap:14px; flex-wrap:wrap; margin-bottom:56px;}
  body.page-malaysia-kl .btn{
    font-family:var(--f-head); font-weight:600; font-size:14.5px;
    padding:14px 24px; border-radius:999px;
    text-decoration:none; display:inline-flex; align-items:center; gap:10px;
    border:1px solid transparent; cursor:pointer;
    transition:transform .18s ease, box-shadow .18s ease;
  }
  body.page-malaysia-kl .btn:hover{ transform:translateY(-2px); }
  body.page-malaysia-kl .btn-primary{ background:var(--orange); color:#1A0D02; box-shadow:0 10px 26px rgba(242,89,10,.35);}
  body.page-malaysia-kl .btn-ghost{ background:transparent; border-color:rgba(244,239,223,.35); color:#F4EFDF;}
  body.page-malaysia-kl .btn-ghost:hover{ border-color:#F4EFDF; }

  body.page-malaysia-kl .quicknav{
    display:flex; gap:12px; flex-wrap:wrap;
    padding-top:26px; border-top:1px dashed rgba(244,239,223,.25);
  }
  body.page-malaysia-kl .quicknav a{
    font-family:var(--f-mono); font-size:12.5px; letter-spacing:.04em;
    color:#D9D2BE; text-decoration:none;
    border:1px solid rgba(244,239,223,.25);
    padding:9px 14px; border-radius:8px;
    display:inline-flex; align-items:center; gap:8px;
    transition:border-color .2s ease, color .2s ease, background .2s ease;
  }
  body.page-malaysia-kl .quicknav a:hover{ color:#F4EFDF; border-color:var(--orange-2); background:rgba(242,89,10,.1);}
  body.page-malaysia-kl .quicknav .dot{ width:7px; height:7px; border-radius:50%; }

  /* ---------- SECTION INTRO ---------- */
  body.page-malaysia-kl .section-intro{
    max-width:1180px; margin:64px auto 8px; padding:0 28px;
  }
  body.page-malaysia-kl .section-intro .eyebrow{ color:var(--orange); }
  body.page-malaysia-kl .section-intro h2{
    font-family:var(--f-head); font-weight:700;
    font-size:clamp(28px,4vw,40px);
    margin:0 0 10px; color:var(--navy);
    letter-spacing:-.01em;
  }
  body.page-malaysia-kl .section-intro p{ color:var(--grey); max-width:620px; font-size:15.5px; line-height:1.6; margin:0;}

  /* ---------- TICKETS ---------- */
  body.page-malaysia-kl .tickets{
    max-width:1180px; margin:44px auto 20px; padding:0 28px;
    display:flex; flex-direction:column; gap:56px;
  }

  body.page-malaysia-kl .ticket{
    background:var(--card);
    border-radius:22px;
    box-shadow:0 18px 46px rgba(10,31,66,.10), 0 2px 8px rgba(10,31,66,.05);
    display:grid;
    grid-template-columns:132px 1px 1fr 216px;
    position:relative;
    scroll-margin-top:90px;
  }

  body.page-malaysia-kl .stub{
    background:var(--accent);
    color:#fff;
    border-radius:22px 0 0 22px;
    padding:26px 14px;
    display:flex; flex-direction:column; align-items:center; justify-content:space-between;
    position:relative;
    text-align:center;
  }
  body.page-malaysia-kl .stub .code{
    font-family:var(--f-display);
    font-size:40px;
    letter-spacing:.03em;
    writing-mode:vertical-rl;
    transform:rotate(180deg);
  }
  body.page-malaysia-kl .stub .route{
    font-family:var(--f-mono);
    font-size:11px;
    letter-spacing:.08em;
    writing-mode:vertical-rl;
    transform:rotate(180deg);
    opacity:.85;
  }
  body.page-malaysia-kl .stub .plane{ width:20px; height:20px; opacity:.9; }

  body.page-malaysia-kl .perf{
    position:relative;
    background-image:
      radial-gradient(circle at 6px 6px, var(--paper) 6px, transparent 6.5px);
    background-size:100% 20px;
    background-repeat:repeat-y;
    width:1px;
  }
  body.page-malaysia-kl .perf::before, body.page-malaysia-kl .perf::after{
    content:""; position:absolute; left:-9px; width:18px; height:18px;
    background:var(--paper); border-radius:50%;
  }
  body.page-malaysia-kl .perf::before{ top:-9px; }
  body.page-malaysia-kl .perf::after{ bottom:-9px; }

  body.page-malaysia-kl .ticket-main{
    padding:30px 32px 26px;
    border-right:1px dashed var(--line);
  }
  body.page-malaysia-kl .pkg-label{
    font-family:var(--f-mono); font-size:11px; letter-spacing:.12em; text-transform:uppercase;
    color:var(--accent); font-weight:700; margin-bottom:8px; display:block;
  }
  body.page-malaysia-kl .ticket-main h3{
    font-family:var(--f-head); font-weight:700; font-size:32px;
    margin:0 0 4px; color:var(--navy); letter-spacing:-.01em;
  }
  body.page-malaysia-kl .ticket-main .tagline{
    font-style:italic; color:var(--grey); font-size:15px; margin:0 0 18px;
  }
  body.page-malaysia-kl .ticket-main .desc{
    font-size:14.5px; line-height:1.7; color:#453F32; margin:0 0 22px; max-width:640px;
  }

  body.page-malaysia-kl .fields{
    display:grid; grid-template-columns:repeat(auto-fit,minmax(130px,1fr));
    gap:16px 20px;
    padding:16px 18px;
    background:var(--paper-2);
    border-radius:14px;
    margin-bottom:22px;
  }
  body.page-malaysia-kl .field span{
    display:block; font-family:var(--f-mono); font-size:10px; letter-spacing:.1em;
    text-transform:uppercase; color:var(--grey); margin-bottom:4px;
  }
  body.page-malaysia-kl .field strong{
    font-family:var(--f-head); font-size:14px; color:var(--navy); font-weight:600;
  }

  body.page-malaysia-kl .why h4, body.page-malaysia-kl .flightlog-wrap h4, body.page-malaysia-kl .inclusions h4{
    font-family:var(--f-head); font-size:13px; letter-spacing:.06em; text-transform:uppercase;
    color:var(--navy); margin:0 0 12px; font-weight:700;
  }

  body.page-malaysia-kl .chips{ display:flex; flex-wrap:wrap; gap:9px; margin-bottom:26px; }
  body.page-malaysia-kl .chip{
    font-family:var(--f-body); font-size:13px; font-weight:500;
    background:var(--accent-soft); color:var(--accent-ink);
    padding:7px 13px; border-radius:8px;
    display:inline-flex; align-items:center; gap:6px;
  }
  body.page-malaysia-kl .chip svg{ width:12px; height:12px; flex:none; }

  body.page-malaysia-kl .flightlog-toggle{
    font-family:var(--f-head); font-weight:600; font-size:13.5px;
    background:var(--navy); color:#fff; border:none;
    padding:12px 20px; border-radius:10px; cursor:pointer;
    display:inline-flex; align-items:center; gap:10px;
    margin-bottom:6px;
    transition:background .2s ease;
  }
  body.page-malaysia-kl .flightlog-toggle:hover{ background:var(--navy-2); }
  body.page-malaysia-kl .flightlog-toggle .chev{ transition:transform .25s ease; width:11px; height:11px; }
  body.page-malaysia-kl .flightlog-toggle[aria-expanded="true"] .chev{ transform:rotate(180deg); }

  body.page-malaysia-kl .flightlog{
    max-height:0; overflow:hidden;
    transition:max-height .45s ease;
  }
  body.page-malaysia-kl .flightlog-inner{ padding:26px 4px 8px; }

  body.page-malaysia-kl .days{ list-style:none; margin:0; padding:0; position:relative; }
  body.page-malaysia-kl .days::before{
    content:""; position:absolute; left:17px; top:6px; bottom:6px; width:2px;
    background:repeating-linear-gradient(to bottom, var(--line) 0 6px, transparent 6px 12px);
  }
  body.page-malaysia-kl .day{
    display:grid; grid-template-columns:36px 1fr; gap:16px;
    padding-bottom:24px; position:relative;
  }
  body.page-malaysia-kl .day:last-child{ padding-bottom:4px; }
  body.page-malaysia-kl .stamp{
    width:36px; height:36px; border-radius:50%;
    border:2px solid var(--accent); color:var(--accent);
    display:flex; align-items:center; justify-content:center;
    font-family:var(--f-mono); font-weight:700; font-size:13px;
    background:var(--paper); position:relative; z-index:1;
  }
  body.page-malaysia-kl .day h5{
    font-family:var(--f-head); font-size:15.5px; font-weight:700; margin:2px 0 3px; color:var(--navy);
  }
  body.page-malaysia-kl .day .daytag{
    font-style:italic; font-size:13px; color:var(--accent); margin:0 0 8px;
  }
  body.page-malaysia-kl .day p.body-text{ font-size:13.6px; line-height:1.65; color:#4B4636; margin:0 0 6px;}
  body.page-malaysia-kl .day ul.stops{ margin:6px 0 8px; padding-left:18px; font-size:13.4px; color:#4B4636; line-height:1.6;}
  body.page-malaysia-kl .day .stay{
    font-family:var(--f-mono); font-size:11px; letter-spacing:.05em; text-transform:uppercase;
    color:var(--grey); margin-top:6px;
  }
  body.page-malaysia-kl .day .stay strong{ color:var(--navy); }
  body.page-malaysia-kl .day .optional{
    margin-top:10px; padding:10px 13px; border-radius:10px;
    background:var(--accent-soft); font-size:12.8px; line-height:1.55; color:var(--accent-ink);
  }

  body.page-malaysia-kl .inclusions{ margin-top:24px; }
  body.page-malaysia-kl .inclusions ul{ list-style:none; margin:0; padding:0; display:grid; grid-template-columns:repeat(auto-fit,minmax(210px,1fr)); gap:9px 18px; }
  body.page-malaysia-kl .inclusions li{ font-size:13.4px; color:#453F32; display:flex; gap:9px; align-items:flex-start; line-height:1.5;}
  body.page-malaysia-kl .inclusions li svg{ width:14px; height:14px; flex:none; margin-top:2px; color:var(--accent);}

  body.page-malaysia-kl .ticket-cta{
    padding:30px 22px; display:flex; flex-direction:column; align-items:center;
    gap:16px; text-align:center;
  }
  body.page-malaysia-kl .ticket-cta .durbadge{
    font-family:var(--f-mono); font-size:11px; letter-spacing:.08em; color:var(--grey);
    text-transform:uppercase;
  }
  body.page-malaysia-kl .ticket-cta .durbadge strong{
    display:block; font-family:var(--f-head); font-size:20px; color:var(--navy);
    letter-spacing:0; text-transform:none; margin-top:4px;
  }
  body.page-malaysia-kl .barcode{
    width:100%; height:46px;
    background:repeating-linear-gradient(90deg, var(--navy) 0 2px, transparent 2px 4px, var(--navy) 4px 5px, transparent 5px 9px, var(--navy) 9px 12px, transparent 12px 14px);
    opacity:.85;
  }
  body.page-malaysia-kl .cta-btn{
    width:100%; justify-content:center;
    font-family:var(--f-head); font-weight:600; font-size:13.5px;
    padding:12px 14px; border-radius:10px; text-decoration:none;
    display:flex; align-items:center; gap:9px;
  }
  body.page-malaysia-kl .cta-call{ background:var(--navy); color:#fff; }
  body.page-malaysia-kl .cta-call:hover{ background:var(--navy-2); }
  body.page-malaysia-kl .cta-wa{ background:#EAF6EF; color:#1E7A46; border:1px solid #C9E7D4; }
  body.page-malaysia-kl .cta-wa:hover{ background:#DDF1E5; }
  body.page-malaysia-kl .cta-btn svg{ width:15px; height:15px; }

  @media (max-width:900px){
    body.page-malaysia-kl .ticket{ grid-template-columns:1fr; }
    body.page-malaysia-kl .stub{
      flex-direction:row; border-radius:22px 22px 0 0; padding:16px 22px;
      justify-content:flex-start; gap:14px;
    }
    body.page-malaysia-kl .stub .code, body.page-malaysia-kl .stub .route{ writing-mode:horizontal-tb; transform:none; }
    body.page-malaysia-kl .stub .code{ font-size:28px; }
    body.page-malaysia-kl .perf{ display:none; }
    body.page-malaysia-kl .ticket-main{ border-right:none; border-bottom:1px dashed var(--line); }
    body.page-malaysia-kl .ticket-cta{ flex-direction:row; flex-wrap:wrap; padding:22px; }
    body.page-malaysia-kl .barcode{ display:none; }
    body.page-malaysia-kl .ticket-cta .durbadge{ text-align:left; flex:1 1 140px; }
  }
  @media (max-width:520px){
    body.page-malaysia-kl .ticket-cta{ flex-direction:column; }
    body.page-malaysia-kl .fields{ grid-template-columns:1fr 1fr; }
  }

  /* ---------- NOTES ---------- */
  body.page-malaysia-kl .notes{
    max-width:1180px; margin:70px auto; padding:0 28px;
  }
  body.page-malaysia-kl .notes-card{
    background:var(--navy); color:#E7E1CE;
    border-radius:22px; padding:42px 40px;
    display:grid; grid-template-columns:1fr 1.6fr; gap:36px;
  }
  body.page-malaysia-kl .notes-card h3{
    font-family:var(--f-head); font-size:22px; margin:0 0 10px; color:#fff;
  }
  body.page-malaysia-kl .notes-card .stamp-mark{
    display:inline-flex; align-items:center; gap:8px;
    font-family:var(--f-mono); font-size:11px; letter-spacing:.14em; text-transform:uppercase;
    color:var(--orange-2); border:1px solid rgba(255,255,255,.25); padding:8px 12px; border-radius:8px;
    margin-bottom:18px;
  }
  body.page-malaysia-kl .notes-card p.lead{ font-size:14px; line-height:1.7; color:#C9C2AA; max-width:320px;}
  body.page-malaysia-kl .notes-card ul{ margin:0; padding-left:18px; columns:2; column-gap:32px; }
  body.page-malaysia-kl .notes-card li{ font-size:12.8px; line-height:1.7; color:#CFC9B4; margin-bottom:10px; break-inside:avoid;}
  @media (max-width:820px){
    body.page-malaysia-kl .notes-card{ grid-template-columns:1fr; }
    body.page-malaysia-kl .notes-card ul{ columns:1; }
  }

  /* ---------- FOOTER ---------- */
  body.page-malaysia-kl footer{
    background:var(--navy-deep); color:#D9D2BE;
    padding:52px 28px 26px; margin-top:8px;
  }
  body.page-malaysia-kl .footer-inner{
    max-width:1180px; margin:0 auto;
    display:flex; justify-content:space-between; flex-wrap:wrap; gap:36px;
    padding-bottom:34px; border-bottom:1px solid rgba(217,210,190,.15);
  }
  body.page-malaysia-kl .footer-brand img{ height:48px; margin-bottom:14px; filter:brightness(0) invert(1); }
  body.page-malaysia-kl .footer-brand p{ font-size:13px; color:#9C9576; max-width:280px; line-height:1.6; }
  body.page-malaysia-kl .footer-col h6{
    font-family:var(--f-head); font-size:12px; letter-spacing:.1em; text-transform:uppercase;
    color:#F4EFDF; margin:0 0 14px;
  }
  body.page-malaysia-kl .footer-col a, body.page-malaysia-kl .footer-col span{
    display:block; font-size:13.6px; color:#D9D2BE; text-decoration:none;
    margin-bottom:10px; line-height:1.5;
  }
  body.page-malaysia-kl .footer-col a:hover{ color:var(--orange-2); }
  body.page-malaysia-kl .footer-bottom{
    max-width:1180px; margin:22px auto 0; display:flex; justify-content:space-between;
    flex-wrap:wrap; gap:10px; font-size:12px; color:#8F886C;
  }

  body.page-malaysia-kl .sr-only{ position:absolute; width:1px;height:1px; overflow:hidden; clip:rect(0,0,0,0); }

  body.page-malaysia-kl .hero.single{ padding-bottom:0; }
  body.page-malaysia-kl .hero-meta{
    display:flex; gap:28px; flex-wrap:wrap;
    margin:34px 0 44px; padding-top:26px; border-top:1px dashed rgba(244,239,223,.25);
  }
  body.page-malaysia-kl .hero-meta .hm{ min-width:120px; }
  body.page-malaysia-kl .hero-meta span{
    display:block; font-family:var(--f-mono); font-size:10.5px; letter-spacing:.12em;
    text-transform:uppercase; color:#B7AF93; margin-bottom:5px;
  }
  body.page-malaysia-kl .hero-meta strong{ font-family:var(--f-head); font-size:16.5px; color:#F4EFDF; font-weight:600;}

  body.page-malaysia-kl .siblings{
    max-width:1180px; margin:0 auto 70px; padding:0 28px;
  }
  body.page-malaysia-kl .siblings h6{
    font-family:var(--f-head); font-size:12px; letter-spacing:.1em; text-transform:uppercase;
    color:var(--grey); margin:0 0 16px;
  }
  body.page-malaysia-kl .sib-grid{ display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:16px; }
  body.page-malaysia-kl .sib-card{
    display:block; text-decoration:none; background:var(--card);
    border:1px solid var(--line); border-radius:16px; padding:18px 20px;
    transition:transform .18s ease, box-shadow .18s ease;
  }
  body.page-malaysia-kl .sib-card:hover{ transform:translateY(-3px); box-shadow:0 12px 26px rgba(10,31,66,.10);}
  body.page-malaysia-kl .sib-card .sib-code{
    font-family:var(--f-mono); font-size:11px; letter-spacing:.1em; font-weight:700;
  }
  body.page-malaysia-kl .sib-card .sib-name{
    font-family:var(--f-head); font-weight:700; font-size:18px; color:var(--navy); margin:6px 0 3px;
  }
  body.page-malaysia-kl .sib-card .sib-dur{ font-size:12.5px; color:var(--grey); }

/* ==========================================================
   LANGKAWI + KUALA LUMPUR
   Source page scope: body.page-langkawi-kl
   ========================================================== */
body.page-langkawi-kl{
    --navy:#0A1F42;
    --navy-2:#123362;
    --navy-deep:#071730;
    --orange:#F2590A;
    --orange-2:#FF7C33;
    --paper:#FBF7EE;
    --paper-2:#F3ECDB;
    --card:#FFFFFF;
    --ink:#221B10;
    --grey:#5B564C;
    --line:rgba(10,31,66,.14);

    --dubai:#C9812A;
    --dubai-soft:#F4E3C4;
    --kl:#256B52;
    --kl-soft:#D8EBE1;
    --lgk:#0E7C9C;
    --lgk-soft:#D3ECF2;

    --f-display:"Bebas Neue", sans-serif;
    --f-head:"Space Grotesk", sans-serif;
    --f-body:"Inter", sans-serif;
    --f-mono:"JetBrains Mono", monospace;
  }

  body.page-langkawi-kl, body.page-langkawi-kl *{box-sizing:border-box;}
  html{scroll-behavior:smooth;}
  @media (prefers-reduced-motion: reduce){
    html{scroll-behavior:auto;}
    body.page-langkawi-kl, body.page-langkawi-kl *{animation-duration:0.001ms !important; animation-iteration-count:1 !important; transition-duration:0.001ms !important;}
  }

  body.page-langkawi-kl{
    margin:0;
    font-family:var(--f-body);
    background:var(--paper);
    color:var(--ink);
    -webkit-font-smoothing:antialiased;
  }

  body.page-langkawi-kl img{max-width:100%; display:block;}

  body.page-langkawi-kl a{color:inherit;}

  body.page-langkawi-kl :focus-visible{
    outline:3px solid var(--orange);
    outline-offset:3px;
  }

  body.page-langkawi-kl .wrap{
    max-width:1180px;
    margin:0 auto;
    padding:0 28px;
  }

  /* ---------- NAV ---------- */
  body.page-langkawi-kl header.site{
    position:sticky; top:0; z-index:50;
    background:rgba(251,247,238,.92);
    backdrop-filter:blur(8px);
    border-bottom:1px solid var(--line);
  }
  body.page-langkawi-kl .nav{
    display:flex; align-items:center; justify-content:space-between;
    padding:12px 28px;
    max-width:1180px; margin:0 auto;
    gap:16px;
  }
  body.page-langkawi-kl .brand{ display:flex; align-items:center; gap:12px; }
  body.page-langkawi-kl .brand img{ height:44px; width:auto; }
  body.page-langkawi-kl .brand .tag{
    font-family:var(--f-mono);
    font-size:11px;
    letter-spacing:.14em;
    color:var(--navy);
    border-left:1px solid var(--line);
    padding-left:12px;
    line-height:1.3;
  }
  body.page-langkawi-kl .nav-links{
    display:flex; gap:22px; align-items:center;
    font-family:var(--f-head); font-weight:600; font-size:14.5px;
  }
  body.page-langkawi-kl .nav-links a{ text-decoration:none; color:var(--navy); position:relative; padding:4px 2px;}
  body.page-langkawi-kl .nav-links a::after{
    content:""; position:absolute; left:0; right:0; bottom:-3px; height:2px;
    background:var(--orange); transform:scaleX(0); transform-origin:left;
    transition:transform .25s ease;
  }
  body.page-langkawi-kl .nav-links a:hover::after, body.page-langkawi-kl .nav-links a:focus-visible::after{ transform:scaleX(1); }
  body.page-langkawi-kl .nav-call{
    display:flex; align-items:center; gap:8px;
    background:var(--navy); color:#fff !important;
    padding:9px 16px; border-radius:999px;
    text-decoration:none; font-family:var(--f-head); font-weight:600; font-size:13.5px;
    white-space:nowrap;
  }
  body.page-langkawi-kl .nav-call svg{ width:15px; height:15px; }
  @media (max-width:820px){ body.page-langkawi-kl .nav-links{ display:none; } }
  @media (max-width:480px){
    body.page-langkawi-kl .brand .tag{ display:none; }
    body.page-langkawi-kl .nav{ padding:10px 16px; }
    body.page-langkawi-kl .nav-call{ padding:9px 12px; font-size:12.5px; }
    body.page-langkawi-kl .brand img{ height:36px; }
  }

  /* ---------- HERO ---------- */
  body.page-langkawi-kl .hero{
    background:
      radial-gradient(ellipse at 15% -10%, rgba(242,89,10,.16), transparent 55%),
      radial-gradient(ellipse at 85% 0%, rgba(255,255,255,.06), transparent 45%),
      linear-gradient(180deg, var(--navy-deep) 0%, var(--navy) 62%, var(--navy-2) 100%);
    color:#F4EFDF;
    padding:76px 28px 64px;
    position:relative;
    overflow:hidden;
  }
  body.page-langkawi-kl .hero::before{
    content:"";
    position:absolute; inset:0;
    background-image:
      radial-gradient(rgba(244,239,223,.14) 1px, transparent 1.4px);
    background-size:26px 26px;
    opacity:.35;
    pointer-events:none;
  }
  body.page-langkawi-kl .hero-inner{ max-width:1180px; margin:0 auto; position:relative; }
  body.page-langkawi-kl .eyebrow{
    font-family:var(--f-mono);
    letter-spacing:.22em;
    text-transform:uppercase;
    font-size:12px;
    color:var(--orange-2);
    display:inline-flex; align-items:center; gap:10px;
    margin-bottom:22px;
  }
  body.page-langkawi-kl .eyebrow .dash{ width:28px; height:1px; background:var(--orange-2); display:inline-block;}

  body.page-langkawi-kl .flapboard{
    display:flex; align-items:baseline; gap:18px; flex-wrap:wrap;
    margin-bottom:6px;
  }
  body.page-langkawi-kl h1.headline{
    font-family:var(--f-display);
    font-weight:400;
    font-size:clamp(48px, 8vw, 104px);
    line-height:.92;
    letter-spacing:.01em;
    margin:0;
  }
  body.page-langkawi-kl .flap{
    display:inline-block;
    font-family:var(--f-display);
    font-size:clamp(48px, 8vw, 104px);
    line-height:.92;
    color:var(--orange);
    min-width:2.6ch;
    position:relative;
  }
  body.page-langkawi-kl .flap .flap-inner{ display:inline-block; }
  body.page-langkawi-kl .flap.flipping .flap-inner{ animation:flipdown .5s ease; }
  @keyframes flipdown{
    0%{ transform:rotateX(0deg); opacity:1; }
    45%{ transform:rotateX(90deg); opacity:.25;}
    55%{ transform:rotateX(-90deg); opacity:.25;}
    100%{ transform:rotateX(0deg); opacity:1;}
  }
  body.page-langkawi-kl .hero-sub{
    font-family:var(--f-body);
    font-size:17px;
    line-height:1.65;
    max-width:560px;
    color:#D9D2BE;
    margin:26px 0 36px;
  }
  body.page-langkawi-kl .hero-sub strong{ color:#F4EFDF; }

  body.page-langkawi-kl .hero-ctas{ display:flex; gap:14px; flex-wrap:wrap; margin-bottom:56px;}
  body.page-langkawi-kl .btn{
    font-family:var(--f-head); font-weight:600; font-size:14.5px;
    padding:14px 24px; border-radius:999px;
    text-decoration:none; display:inline-flex; align-items:center; gap:10px;
    border:1px solid transparent; cursor:pointer;
    transition:transform .18s ease, box-shadow .18s ease;
  }
  body.page-langkawi-kl .btn:hover{ transform:translateY(-2px); }
  body.page-langkawi-kl .btn-primary{ background:var(--orange); color:#1A0D02; box-shadow:0 10px 26px rgba(242,89,10,.35);}
  body.page-langkawi-kl .btn-ghost{ background:transparent; border-color:rgba(244,239,223,.35); color:#F4EFDF;}
  body.page-langkawi-kl .btn-ghost:hover{ border-color:#F4EFDF; }

  body.page-langkawi-kl .quicknav{
    display:flex; gap:12px; flex-wrap:wrap;
    padding-top:26px; border-top:1px dashed rgba(244,239,223,.25);
  }
  body.page-langkawi-kl .quicknav a{
    font-family:var(--f-mono); font-size:12.5px; letter-spacing:.04em;
    color:#D9D2BE; text-decoration:none;
    border:1px solid rgba(244,239,223,.25);
    padding:9px 14px; border-radius:8px;
    display:inline-flex; align-items:center; gap:8px;
    transition:border-color .2s ease, color .2s ease, background .2s ease;
  }
  body.page-langkawi-kl .quicknav a:hover{ color:#F4EFDF; border-color:var(--orange-2); background:rgba(242,89,10,.1);}
  body.page-langkawi-kl .quicknav .dot{ width:7px; height:7px; border-radius:50%; }

  /* ---------- SECTION INTRO ---------- */
  body.page-langkawi-kl .section-intro{
    max-width:1180px; margin:64px auto 8px; padding:0 28px;
  }
  body.page-langkawi-kl .section-intro .eyebrow{ color:var(--orange); }
  body.page-langkawi-kl .section-intro h2{
    font-family:var(--f-head); font-weight:700;
    font-size:clamp(28px,4vw,40px);
    margin:0 0 10px; color:var(--navy);
    letter-spacing:-.01em;
  }
  body.page-langkawi-kl .section-intro p{ color:var(--grey); max-width:620px; font-size:15.5px; line-height:1.6; margin:0;}

  /* ---------- TICKETS ---------- */
  body.page-langkawi-kl .tickets{
    max-width:1180px; margin:44px auto 20px; padding:0 28px;
    display:flex; flex-direction:column; gap:56px;
  }

  body.page-langkawi-kl .ticket{
    background:var(--card);
    border-radius:22px;
    box-shadow:0 18px 46px rgba(10,31,66,.10), 0 2px 8px rgba(10,31,66,.05);
    display:grid;
    grid-template-columns:132px 1px 1fr 216px;
    position:relative;
    scroll-margin-top:90px;
  }

  body.page-langkawi-kl .stub{
    background:var(--accent);
    color:#fff;
    border-radius:22px 0 0 22px;
    padding:26px 14px;
    display:flex; flex-direction:column; align-items:center; justify-content:space-between;
    position:relative;
    text-align:center;
  }
  body.page-langkawi-kl .stub .code{
    font-family:var(--f-display);
    font-size:40px;
    letter-spacing:.03em;
    writing-mode:vertical-rl;
    transform:rotate(180deg);
  }
  body.page-langkawi-kl .stub .route{
    font-family:var(--f-mono);
    font-size:11px;
    letter-spacing:.08em;
    writing-mode:vertical-rl;
    transform:rotate(180deg);
    opacity:.85;
  }
  body.page-langkawi-kl .stub .plane{ width:20px; height:20px; opacity:.9; }

  body.page-langkawi-kl .perf{
    position:relative;
    background-image:
      radial-gradient(circle at 6px 6px, var(--paper) 6px, transparent 6.5px);
    background-size:100% 20px;
    background-repeat:repeat-y;
    width:1px;
  }
  body.page-langkawi-kl .perf::before, body.page-langkawi-kl .perf::after{
    content:""; position:absolute; left:-9px; width:18px; height:18px;
    background:var(--paper); border-radius:50%;
  }
  body.page-langkawi-kl .perf::before{ top:-9px; }
  body.page-langkawi-kl .perf::after{ bottom:-9px; }

  body.page-langkawi-kl .ticket-main{
    padding:30px 32px 26px;
    border-right:1px dashed var(--line);
  }
  body.page-langkawi-kl .pkg-label{
    font-family:var(--f-mono); font-size:11px; letter-spacing:.12em; text-transform:uppercase;
    color:var(--accent); font-weight:700; margin-bottom:8px; display:block;
  }
  body.page-langkawi-kl .ticket-main h3{
    font-family:var(--f-head); font-weight:700; font-size:32px;
    margin:0 0 4px; color:var(--navy); letter-spacing:-.01em;
  }
  body.page-langkawi-kl .ticket-main .tagline{
    font-style:italic; color:var(--grey); font-size:15px; margin:0 0 18px;
  }
  body.page-langkawi-kl .ticket-main .desc{
    font-size:14.5px; line-height:1.7; color:#453F32; margin:0 0 22px; max-width:640px;
  }

  body.page-langkawi-kl .fields{
    display:grid; grid-template-columns:repeat(auto-fit,minmax(130px,1fr));
    gap:16px 20px;
    padding:16px 18px;
    background:var(--paper-2);
    border-radius:14px;
    margin-bottom:22px;
  }
  body.page-langkawi-kl .field span{
    display:block; font-family:var(--f-mono); font-size:10px; letter-spacing:.1em;
    text-transform:uppercase; color:var(--grey); margin-bottom:4px;
  }
  body.page-langkawi-kl .field strong{
    font-family:var(--f-head); font-size:14px; color:var(--navy); font-weight:600;
  }

  body.page-langkawi-kl .why h4, body.page-langkawi-kl .flightlog-wrap h4, body.page-langkawi-kl .inclusions h4{
    font-family:var(--f-head); font-size:13px; letter-spacing:.06em; text-transform:uppercase;
    color:var(--navy); margin:0 0 12px; font-weight:700;
  }

  body.page-langkawi-kl .chips{ display:flex; flex-wrap:wrap; gap:9px; margin-bottom:26px; }
  body.page-langkawi-kl .chip{
    font-family:var(--f-body); font-size:13px; font-weight:500;
    background:var(--accent-soft); color:var(--accent-ink);
    padding:7px 13px; border-radius:8px;
    display:inline-flex; align-items:center; gap:6px;
  }
  body.page-langkawi-kl .chip svg{ width:12px; height:12px; flex:none; }

  body.page-langkawi-kl .flightlog-toggle{
    font-family:var(--f-head); font-weight:600; font-size:13.5px;
    background:var(--navy); color:#fff; border:none;
    padding:12px 20px; border-radius:10px; cursor:pointer;
    display:inline-flex; align-items:center; gap:10px;
    margin-bottom:6px;
    transition:background .2s ease;
  }
  body.page-langkawi-kl .flightlog-toggle:hover{ background:var(--navy-2); }
  body.page-langkawi-kl .flightlog-toggle .chev{ transition:transform .25s ease; width:11px; height:11px; }
  body.page-langkawi-kl .flightlog-toggle[aria-expanded="true"] .chev{ transform:rotate(180deg); }

  body.page-langkawi-kl .flightlog{
    max-height:0; overflow:hidden;
    transition:max-height .45s ease;
  }
  body.page-langkawi-kl .flightlog-inner{ padding:26px 4px 8px; }

  body.page-langkawi-kl .days{ list-style:none; margin:0; padding:0; position:relative; }
  body.page-langkawi-kl .days::before{
    content:""; position:absolute; left:17px; top:6px; bottom:6px; width:2px;
    background:repeating-linear-gradient(to bottom, var(--line) 0 6px, transparent 6px 12px);
  }
  body.page-langkawi-kl .day{
    display:grid; grid-template-columns:36px 1fr; gap:16px;
    padding-bottom:24px; position:relative;
  }
  body.page-langkawi-kl .day:last-child{ padding-bottom:4px; }
  body.page-langkawi-kl .stamp{
    width:36px; height:36px; border-radius:50%;
    border:2px solid var(--accent); color:var(--accent);
    display:flex; align-items:center; justify-content:center;
    font-family:var(--f-mono); font-weight:700; font-size:13px;
    background:var(--paper); position:relative; z-index:1;
  }
  body.page-langkawi-kl .day h5{
    font-family:var(--f-head); font-size:15.5px; font-weight:700; margin:2px 0 3px; color:var(--navy);
  }
  body.page-langkawi-kl .day .daytag{
    font-style:italic; font-size:13px; color:var(--accent); margin:0 0 8px;
  }
  body.page-langkawi-kl .day p.body-text{ font-size:13.6px; line-height:1.65; color:#4B4636; margin:0 0 6px;}
  body.page-langkawi-kl .day ul.stops{ margin:6px 0 8px; padding-left:18px; font-size:13.4px; color:#4B4636; line-height:1.6;}
  body.page-langkawi-kl .day .stay{
    font-family:var(--f-mono); font-size:11px; letter-spacing:.05em; text-transform:uppercase;
    color:var(--grey); margin-top:6px;
  }
  body.page-langkawi-kl .day .stay strong{ color:var(--navy); }
  body.page-langkawi-kl .day .optional{
    margin-top:10px; padding:10px 13px; border-radius:10px;
    background:var(--accent-soft); font-size:12.8px; line-height:1.55; color:var(--accent-ink);
  }

  body.page-langkawi-kl .inclusions{ margin-top:24px; }
  body.page-langkawi-kl .inclusions ul{ list-style:none; margin:0; padding:0; display:grid; grid-template-columns:repeat(auto-fit,minmax(210px,1fr)); gap:9px 18px; }
  body.page-langkawi-kl .inclusions li{ font-size:13.4px; color:#453F32; display:flex; gap:9px; align-items:flex-start; line-height:1.5;}
  body.page-langkawi-kl .inclusions li svg{ width:14px; height:14px; flex:none; margin-top:2px; color:var(--accent);}

  body.page-langkawi-kl .ticket-cta{
    padding:30px 22px; display:flex; flex-direction:column; align-items:center;
    gap:16px; text-align:center;
  }
  body.page-langkawi-kl .ticket-cta .durbadge{
    font-family:var(--f-mono); font-size:11px; letter-spacing:.08em; color:var(--grey);
    text-transform:uppercase;
  }
  body.page-langkawi-kl .ticket-cta .durbadge strong{
    display:block; font-family:var(--f-head); font-size:20px; color:var(--navy);
    letter-spacing:0; text-transform:none; margin-top:4px;
  }
  body.page-langkawi-kl .barcode{
    width:100%; height:46px;
    background:repeating-linear-gradient(90deg, var(--navy) 0 2px, transparent 2px 4px, var(--navy) 4px 5px, transparent 5px 9px, var(--navy) 9px 12px, transparent 12px 14px);
    opacity:.85;
  }
  body.page-langkawi-kl .cta-btn{
    width:100%; justify-content:center;
    font-family:var(--f-head); font-weight:600; font-size:13.5px;
    padding:12px 14px; border-radius:10px; text-decoration:none;
    display:flex; align-items:center; gap:9px;
  }
  body.page-langkawi-kl .cta-call{ background:var(--navy); color:#fff; }
  body.page-langkawi-kl .cta-call:hover{ background:var(--navy-2); }
  body.page-langkawi-kl .cta-wa{ background:#EAF6EF; color:#1E7A46; border:1px solid #C9E7D4; }
  body.page-langkawi-kl .cta-wa:hover{ background:#DDF1E5; }
  body.page-langkawi-kl .cta-btn svg{ width:15px; height:15px; }

  @media (max-width:900px){
    body.page-langkawi-kl .ticket{ grid-template-columns:1fr; }
    body.page-langkawi-kl .stub{
      flex-direction:row; border-radius:22px 22px 0 0; padding:16px 22px;
      justify-content:flex-start; gap:14px;
    }
    body.page-langkawi-kl .stub .code, body.page-langkawi-kl .stub .route{ writing-mode:horizontal-tb; transform:none; }
    body.page-langkawi-kl .stub .code{ font-size:28px; }
    body.page-langkawi-kl .perf{ display:none; }
    body.page-langkawi-kl .ticket-main{ border-right:none; border-bottom:1px dashed var(--line); }
    body.page-langkawi-kl .ticket-cta{ flex-direction:row; flex-wrap:wrap; padding:22px; }
    body.page-langkawi-kl .barcode{ display:none; }
    body.page-langkawi-kl .ticket-cta .durbadge{ text-align:left; flex:1 1 140px; }
  }
  @media (max-width:520px){
    body.page-langkawi-kl .ticket-cta{ flex-direction:column; }
    body.page-langkawi-kl .fields{ grid-template-columns:1fr 1fr; }
  }

  /* ---------- NOTES ---------- */
  body.page-langkawi-kl .notes{
    max-width:1180px; margin:70px auto; padding:0 28px;
  }
  body.page-langkawi-kl .notes-card{
    background:var(--navy); color:#E7E1CE;
    border-radius:22px; padding:42px 40px;
    display:grid; grid-template-columns:1fr 1.6fr; gap:36px;
  }
  body.page-langkawi-kl .notes-card h3{
    font-family:var(--f-head); font-size:22px; margin:0 0 10px; color:#fff;
  }
  body.page-langkawi-kl .notes-card .stamp-mark{
    display:inline-flex; align-items:center; gap:8px;
    font-family:var(--f-mono); font-size:11px; letter-spacing:.14em; text-transform:uppercase;
    color:var(--orange-2); border:1px solid rgba(255,255,255,.25); padding:8px 12px; border-radius:8px;
    margin-bottom:18px;
  }
  body.page-langkawi-kl .notes-card p.lead{ font-size:14px; line-height:1.7; color:#C9C2AA; max-width:320px;}
  body.page-langkawi-kl .notes-card ul{ margin:0; padding-left:18px; columns:2; column-gap:32px; }
  body.page-langkawi-kl .notes-card li{ font-size:12.8px; line-height:1.7; color:#CFC9B4; margin-bottom:10px; break-inside:avoid;}
  @media (max-width:820px){
    body.page-langkawi-kl .notes-card{ grid-template-columns:1fr; }
    body.page-langkawi-kl .notes-card ul{ columns:1; }
  }

  /* ---------- FOOTER ---------- */
  body.page-langkawi-kl footer{
    background:var(--navy-deep); color:#D9D2BE;
    padding:52px 28px 26px; margin-top:8px;
  }
  body.page-langkawi-kl .footer-inner{
    max-width:1180px; margin:0 auto;
    display:flex; justify-content:space-between; flex-wrap:wrap; gap:36px;
    padding-bottom:34px; border-bottom:1px solid rgba(217,210,190,.15);
  }
  body.page-langkawi-kl .footer-brand img{ height:48px; margin-bottom:14px; filter:brightness(0) invert(1); }
  body.page-langkawi-kl .footer-brand p{ font-size:13px; color:#9C9576; max-width:280px; line-height:1.6; }
  body.page-langkawi-kl .footer-col h6{
    font-family:var(--f-head); font-size:12px; letter-spacing:.1em; text-transform:uppercase;
    color:#F4EFDF; margin:0 0 14px;
  }
  body.page-langkawi-kl .footer-col a, body.page-langkawi-kl .footer-col span{
    display:block; font-size:13.6px; color:#D9D2BE; text-decoration:none;
    margin-bottom:10px; line-height:1.5;
  }
  body.page-langkawi-kl .footer-col a:hover{ color:var(--orange-2); }
  body.page-langkawi-kl .footer-bottom{
    max-width:1180px; margin:22px auto 0; display:flex; justify-content:space-between;
    flex-wrap:wrap; gap:10px; font-size:12px; color:#8F886C;
  }

  body.page-langkawi-kl .sr-only{ position:absolute; width:1px;height:1px; overflow:hidden; clip:rect(0,0,0,0); }

  body.page-langkawi-kl .hero.single{ padding-bottom:0; }
  body.page-langkawi-kl .hero-meta{
    display:flex; gap:28px; flex-wrap:wrap;
    margin:34px 0 44px; padding-top:26px; border-top:1px dashed rgba(244,239,223,.25);
  }
  body.page-langkawi-kl .hero-meta .hm{ min-width:120px; }
  body.page-langkawi-kl .hero-meta span{
    display:block; font-family:var(--f-mono); font-size:10.5px; letter-spacing:.12em;
    text-transform:uppercase; color:#B7AF93; margin-bottom:5px;
  }
  body.page-langkawi-kl .hero-meta strong{ font-family:var(--f-head); font-size:16.5px; color:#F4EFDF; font-weight:600;}

  body.page-langkawi-kl .siblings{
    max-width:1180px; margin:0 auto 70px; padding:0 28px;
  }
  body.page-langkawi-kl .siblings h6{
    font-family:var(--f-head); font-size:12px; letter-spacing:.1em; text-transform:uppercase;
    color:var(--grey); margin:0 0 16px;
  }
  body.page-langkawi-kl .sib-grid{ display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:16px; }
  body.page-langkawi-kl .sib-card{
    display:block; text-decoration:none; background:var(--card);
    border:1px solid var(--line); border-radius:16px; padding:18px 20px;
    transition:transform .18s ease, box-shadow .18s ease;
  }
  body.page-langkawi-kl .sib-card:hover{ transform:translateY(-3px); box-shadow:0 12px 26px rgba(10,31,66,.10);}
  body.page-langkawi-kl .sib-card .sib-code{
    font-family:var(--f-mono); font-size:11px; letter-spacing:.1em; font-weight:700;
  }
  body.page-langkawi-kl .sib-card .sib-name{
    font-family:var(--f-head); font-weight:700; font-size:18px; color:var(--navy); margin:6px 0 3px;
  }
  body.page-langkawi-kl .sib-card .sib-dur{ font-size:12.5px; color:var(--grey); }

/* ==========================================================
   SINGAPORE
   Source page scope: body.page-singapore
   ========================================================== */
body.page-singapore{
    --navy:#0B2647;
    --navy-deep:#071A30;
    --orange:#F2660E;
    --orange-deep:#D6540A;
    --teal:#0F8B8D;
    --paper:#FBF8F3;
    --paper-dim:#F2ECE1;
    --ink:#16232F;
    --slate:#5C6B7A;
    --line: rgba(11,38,71,0.14);
    --shadow: 0 20px 40px -20px rgba(11,38,71,0.35);
    --card:#FFFFFF;
    --grey:#5B564C;
    --dubai:#C9812A;
    --kl:#256B52;
    --lgk:#0E7C9C;
    --f-head:"Archivo", sans-serif;
    --f-mono:"Space Mono", monospace;
  }

  body.page-singapore, body.page-singapore *{box-sizing:border-box;}
  html{scroll-behavior:smooth;}
  body.page-singapore{
    margin:0;
    background:var(--paper);
    color:var(--ink);
    font-family:"Inter", sans-serif;
    -webkit-font-smoothing:antialiased;
  }
  body.page-singapore img{max-width:100%;display:block;}
  body.page-singapore a{color:inherit;}

  body.page-singapore h1, body.page-singapore h2, body.page-singapore h3{
    font-family:"Archivo", sans-serif;
    font-weight:900;
    letter-spacing:-0.01em;
    margin:0;
    color:var(--navy);
  }
  body.page-singapore .eyebrow{
    font-family:"Space Mono", monospace;
    text-transform:uppercase;
    letter-spacing:0.16em;
    font-size:12px;
    font-weight:700;
  }
  body.page-singapore .container{
    max-width:1180px;
    margin:0 auto;
    padding:0 28px;
  }
  body.page-singapore .btn{
    display:inline-flex;
    align-items:center;
    gap:10px;
    font-family:"Archivo", sans-serif;
    font-weight:700;
    font-size:15px;
    padding:14px 26px;
    border-radius:999px;
    border:2px solid transparent;
    cursor:pointer;
    text-decoration:none;
    transition:transform .18s ease, box-shadow .18s ease, background .18s ease;
    white-space:nowrap;
  }
  body.page-singapore .btn:hover{transform:translateY(-2px);}
  body.page-singapore .btn-orange{
    background:var(--orange);
    color:#fff;
    box-shadow:0 12px 24px -10px rgba(242,102,14,0.6);
  }
  body.page-singapore .btn-orange:hover{background:var(--orange-deep);}
  body.page-singapore .btn-outline{
    background:transparent;
    border-color:rgba(255,255,255,0.5);
    color:#fff;
  }
  body.page-singapore .btn-outline:hover{background:rgba(255,255,255,0.12);}
  body.page-singapore .btn-navy{
    background:var(--navy);
    color:#fff;
  }
  body.page-singapore .btn-navy:hover{background:var(--navy-deep);}

  /* ---------- NAV ---------- */
  body.page-singapore header.site{
    position:sticky;
    top:0;
    z-index:50;
    background:rgba(251,248,243,.92);
    backdrop-filter:blur(8px);
    border-bottom:1px solid var(--line);
  }
  body.page-singapore .nav{
    display:flex;
    align-items:center;
    justify-content:space-between;
    max-width:1180px;
    margin:0 auto;
    padding:12px 28px;
    gap:16px;
  }
  body.page-singapore .brand{display:flex; align-items:center; gap:12px;}
  body.page-singapore .brand img{height:44px; width:auto;}
  body.page-singapore .brand .tag{
    font-family:"Space Mono", monospace;
    font-size:11px;
    letter-spacing:.14em;
    color:var(--navy);
    border-left:1px solid var(--line);
    padding-left:12px;
    line-height:1.3;
  }
  body.page-singapore .nav-links{
    display:flex; gap:22px; align-items:center;
    font-family:"Archivo", sans-serif; font-weight:700; font-size:14.5px;
  }
  body.page-singapore .nav-links a{color:var(--navy); padding:4px 2px; position:relative; text-decoration:none;}
  body.page-singapore .nav-links a::after{
    content:""; position:absolute; left:0; right:0; bottom:-3px; height:2px;
    background:var(--orange); transform:scaleX(0); transform-origin:left;
    transition:transform .25s ease;
  }
  body.page-singapore .nav-links a:hover::after, body.page-singapore .nav-links a:focus-visible::after{transform:scaleX(1);}
  body.page-singapore .nav-call{
    display:flex; align-items:center; gap:8px;
    background:var(--navy); color:#fff;
    padding:9px 16px; border-radius:999px;
    text-decoration:none; font-family:"Archivo", sans-serif; font-weight:700; font-size:13.5px;
    white-space:nowrap;
  }
  body.page-singapore .nav-call svg{width:15px; height:15px;}
  @media (max-width:820px){body.page-singapore .nav-links{display:none;}}
  @media (max-width:480px){
    body.page-singapore .brand .tag{display:none;}
    body.page-singapore .nav{padding:10px 16px;}
    body.page-singapore .nav-call{padding:9px 12px; font-size:12.5px;}
    body.page-singapore .brand img{height:36px;}
  }

  /* ---------- HERO ---------- */
  body.page-singapore .hero{
    position:relative;
    background:linear-gradient(180deg, var(--navy-deep) 0%, var(--navy) 62%, #1A3A63 100%);
    color:#fff;
    overflow:hidden;
    padding:74px 0 0;
  }
  body.page-singapore .hero-grid{
    display:grid;
    grid-template-columns: 1.15fr 0.85fr;
    gap:40px;
    align-items:center;
    position:relative;
    z-index:3;
  }
  body.page-singapore .route{
    display:flex;
    align-items:center;
    gap:10px;
    font-family:"Space Mono", monospace;
    font-size:12px;
    letter-spacing:.1em;
    color:#FFD9B8;
    margin-bottom:22px;
    text-transform:uppercase;
  }
  body.page-singapore .route svg{width:120px; height:14px;}
  body.page-singapore .hero h1{
    font-size:clamp(52px, 8vw, 104px);
    line-height:0.92;
    color:#fff;
    text-transform:uppercase;
  }
  body.page-singapore .hero h1 em{
    font-style:normal;
    color:var(--orange);
  }
  body.page-singapore .hero p.lead{
    margin-top:22px;
    max-width:520px;
    color:#C9D4E2;
    font-size:16px;
    line-height:1.7;
  }
  body.page-singapore .hero-cta{
    display:flex;
    gap:14px;
    margin-top:34px;
    flex-wrap:wrap;
  }

  body.page-singapore .skyline-wrap{position:relative;}
  body.page-singapore .skyline-wrap svg{width:100%; height:auto;}

  body.page-singapore .hero-bottom{
    position:relative;
    margin-top:56px;
    line-height:0;
  }
  body.page-singapore .hero-bottom svg{width:100%; display:block;}

  body.page-singapore .strip{
    background:var(--navy-deep);
    padding:22px 0;
    border-top:1px solid rgba(255,255,255,0.08);
  }
  body.page-singapore .strip-track{
    display:flex;
    gap:34px;
    overflow-x:auto;
    scrollbar-width:none;
  }
  body.page-singapore .strip-track::-webkit-scrollbar{display:none;}
  body.page-singapore .strip-item{
    display:flex;
    align-items:center;
    gap:10px;
    color:#EAD9C6;
    font-family:"Space Mono", monospace;
    font-size:13px;
    white-space:nowrap;
    flex:0 0 auto;
  }
  body.page-singapore .strip-item .dot{width:6px;height:6px;border-radius:50%;background:var(--orange);}

  /* ---------- SECTION HEADERS ---------- */
  body.page-singapore section{padding:96px 0;}
  body.page-singapore .section-head{max-width:640px; margin-bottom:56px;}
  body.page-singapore .section-head .eyebrow{color:var(--orange); margin-bottom:14px; display:block;}
  body.page-singapore .section-head h2{font-size:clamp(32px,4vw,48px); text-transform:uppercase;}
  body.page-singapore .section-head p{color:var(--slate); font-size:16px; line-height:1.7; margin-top:16px;}

  /* ---------- BOARDING PASS PACKAGE CARD ---------- */
  body.page-singapore .plan{background:var(--paper-dim);}
  body.page-singapore .pass-wrap{
    position:relative;
    display:grid;
    grid-template-columns: 96px 1fr 260px;
    max-width:1040px;
    margin:0 auto;
    background:#fff;
    border-radius:22px;
    box-shadow:var(--shadow);
    overflow:hidden;
  }
  body.page-singapore .pass-stub{
    background:var(--navy);
    color:#fff;
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:space-between;
    padding:26px 0;
  }
  body.page-singapore .pass-stub .plane{font-size:22px;}
  body.page-singapore .pass-stub .code{
    writing-mode:vertical-rl;
    transform:rotate(180deg);
    font-family:"Archivo", sans-serif;
    font-weight:900;
    font-size:26px;
    letter-spacing:.1em;
  }
  
  body.page-singapore .siblings{
    max-width:1180px;
    margin:0 auto 70px;
    padding:0 28px;
  }
  body.page-singapore .siblings h6{
    font-family:var(--f-head); font-size:12px; letter-spacing:.1em;
    text-transform:uppercase; color:var(--grey); margin:0 0 16px;
  }
  body.page-singapore .sib-grid{ display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:16px; }
  body.page-singapore .sib-card{
    display:block; text-decoration:none; background:var(--card);
    border:1px solid var(--line); border-radius:16px; padding:18px 20px;
    transition:transform .18s ease, box-shadow .18s ease;
  }
  body.page-singapore .sib-card:hover{ transform:translateY(-3px); box-shadow:0 12px 26px rgba(10,31,66,.10);}
  body.page-singapore .sib-card .sib-code{
    font-family:var(--f-mono); font-size:11px; letter-spacing:.1em; font-weight:700;
  }
  body.page-singapore .sib-card .sib-name{
    font-family:var(--f-head); font-weight:700; font-size:18px; color:var(--navy); margin:6px 0 3px;
  }
  body.page-singapore .sib-card .sib-dur{ font-size:12.5px; color:var(--grey); }
  body.page-singapore .pass-stub .route-mini{
    writing-mode:vertical-rl;
    transform:rotate(180deg);
    font-family:"Space Mono", monospace;
    font-size:10px;
    letter-spacing:.14em;
    color:#FFD9B8;
  }
  body.page-singapore .pass-body{padding:34px 36px;}
  body.page-singapore .pass-body .eyebrow{color:var(--teal); display:block; margin-bottom:10px;}
  body.page-singapore .pass-body h3{font-size:30px; text-transform:uppercase; margin-bottom:4px;}
  body.page-singapore .pass-body .tagline{
    font-family:"Instrument Serif", serif;
    font-style:italic;
    color:var(--orange);
    font-size:18px;
    display:block;
    margin-bottom:16px;
  }
  body.page-singapore .pass-body > p{color:var(--slate); font-size:15.5px; line-height:1.8; margin:0 0 22px;}
  body.page-singapore .pass-meta{
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:18px;
    background:var(--paper-dim);
    border-radius:14px;
    padding:18px 20px;
    margin-bottom:22px;
  }
  body.page-singapore .pass-meta .label{font-family:"Space Mono", monospace; font-size:10.5px; text-transform:uppercase; letter-spacing:.06em; color:var(--slate); display:block; margin-bottom:4px;}
  body.page-singapore .pass-meta .value{font-family:"Archivo", sans-serif; font-weight:800; color:var(--navy); font-size:15px;}
  body.page-singapore .pass-chip-head{font-family:"Space Mono", monospace; font-size:11px; text-transform:uppercase; letter-spacing:.08em; color:var(--navy); margin-bottom:10px;}
  body.page-singapore .pass-chips{display:flex; flex-wrap:wrap; gap:8px; margin-bottom:22px;}
  body.page-singapore .pass-chip{
    font-size:13px;
    font-weight:600;
    color:var(--navy);
    background:rgba(15,139,141,0.09);
    border:1px solid rgba(15,139,141,0.25);
    padding:7px 12px;
    border-radius:999px;
  }
  body.page-singapore .pass-chip::before{content:"✔ "; color:var(--teal);}
  body.page-singapore .inclusions{
    margin-top:26px;
    padding-top:24px;
    border-top:1px dashed var(--line);
  }
  body.page-singapore .inclusions h4{
    font-family:"Archivo", sans-serif;
    font-size:18px;
    color:var(--navy);
    margin:0 0 16px;
  }
  body.page-singapore .inclusions ul{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:12px 24px;
    list-style:none;
    padding:0;
    margin:0;
  }
  body.page-singapore .inclusions li{display:flex; align-items:flex-start; gap:10px; color:var(--ink); font-size:14px; line-height:1.5;}
  body.page-singapore .inclusions svg{width:17px; height:17px; flex:0 0 auto; color:var(--teal); margin-top:2px;}
  body.page-singapore details.day-toggle{border-top:1px dashed var(--line); padding-top:18px;}
  body.page-singapore details.day-toggle summary{
    list-style:none;
    cursor:pointer;
    font-family:"Archivo", sans-serif;
    font-weight:700;
    font-size:14px;
    color:#fff;
    background:var(--navy);
    display:inline-flex;
    align-items:center;
    gap:8px;
    padding:12px 20px;
    border-radius:999px;
  }
  body.page-singapore details.day-toggle summary::-webkit-details-marker{display:none;}
  body.page-singapore details.day-toggle summary .chevron{transition:transform .2s ease;}
  body.page-singapore details.day-toggle[open] summary .chevron{transform:rotate(180deg);}
  body.page-singapore .day-list{margin:26px 0 0; padding:0; list-style:none; position:relative;}
  body.page-singapore .day-list::before{content:""; position:absolute; top:18px; bottom:18px; left:20px; width:1px; background:rgba(15,139,141,.28);}
  body.page-singapore .day-list > li{
    display:grid;
    grid-template-columns:42px 1fr;
    gap:18px;
    padding:20px 0;
    border-bottom:1px solid var(--line);
    position:relative;
  }
  body.page-singapore .day-list > li:last-child{border-bottom:none;}
  body.page-singapore .day-list .d-num{
    font-family:"Space Mono", monospace;
    font-weight:700;
    color:#fff;
    background:var(--teal);
    border:4px solid #fff;
    border-radius:50%;
    height:42px;
    display:grid;
    place-items:center;
    flex:0 0 auto;
    width:42px;
    position:relative;
    z-index:1;
  }
  body.page-singapore .day-list .d-meta{display:flex; justify-content:space-between; flex-wrap:wrap; gap:8px; margin-bottom:7px; font-family:"Space Mono", monospace; font-size:10.5px; letter-spacing:.08em; text-transform:uppercase; color:var(--teal);}
  body.page-singapore .day-list .d-meta .stay{color:var(--slate);}
  body.page-singapore .day-list .d-title{font-family:"Archivo", sans-serif; font-weight:800; color:var(--navy); font-size:18px; margin-bottom:4px;}
  body.page-singapore .day-list .d-tag{font-family:"Instrument Serif", serif; font-style:italic; color:var(--orange); font-size:17px; margin-bottom:10px;}
  body.page-singapore .day-list .d-desc{color:var(--slate); font-size:14px; line-height:1.7; margin:0 0 10px;}
  body.page-singapore .day-list .d-stops{margin:8px 0 12px; padding-left:19px; color:var(--slate); font-size:13.5px; line-height:1.7;}
  body.page-singapore .day-list .d-stops li{display:list-item; padding:0; border:0;}
  body.page-singapore .day-list .d-optional{background:rgba(15,139,141,.09); border:1px solid rgba(15,139,141,.22); border-radius:10px; padding:11px 13px; color:var(--navy); font-size:13.5px; line-height:1.55;}
  body.page-singapore .pass-side{
    background:#fff;
    padding:34px 28px;
    display:flex;
    flex-direction:column;
    gap:16px;
    border-left:1px dashed var(--line);
  }
  body.page-singapore .pass-side .label{font-family:"Space Mono", monospace; font-size:11px; text-transform:uppercase; letter-spacing:.08em; color:var(--slate);}
  body.page-singapore .pass-side .value{font-family:"Archivo", sans-serif; font-weight:900; font-size:24px; color:var(--navy);}
  body.page-singapore .barcode{display:flex; gap:2px; height:34px; align-items:stretch; margin:4px 0;}
  body.page-singapore .barcode span{background:var(--navy); width:2px;}
  body.page-singapore .barcode span:nth-child(3n){width:4px;}

  /* ---------- ALSO FROM ---------- */
  body.page-singapore .also{background:var(--paper);}
  body.page-singapore .also-label{font-family:"Space Mono", monospace; font-size:11px; text-transform:uppercase; letter-spacing:.1em; color:var(--slate); margin-bottom:18px;}
  body.page-singapore .also-grid{display:grid; grid-template-columns:1fr 1fr; gap:18px;}
  body.page-singapore .also-card{
    background:#fff;
    border:1px solid var(--line);
    border-radius:16px;
    padding:22px 24px;
  }
  body.page-singapore .also-card .code{font-family:"Space Mono", monospace; font-size:11px; letter-spacing:.1em; color:var(--orange); text-transform:uppercase; margin-bottom:6px; display:block;}
  body.page-singapore .also-card h4{font-family:"Archivo", sans-serif; font-weight:900; color:var(--navy); font-size:20px; margin:0 0 4px;}
  body.page-singapore .also-card span.days{color:var(--slate); font-size:13.5px;}

  /* ---------- FINE PRINT ---------- */
  body.page-singapore .fine{
    background:var(--paper);
    color:#fff;
    margin:70px auto;
    padding:0;
  }
  body.page-singapore .fine-inner{
    background:var(--navy);
    border-radius:24px;
    padding:44px;
  }
  body.page-singapore .fine-badge{
    display:inline-flex;
    align-items:center;
    gap:8px;
    font-family:"Space Mono", monospace;
    font-size:11px;
    letter-spacing:.08em;
    text-transform:uppercase;
    color:var(--orange);
    border:1px solid rgba(242,102,14,0.4);
    padding:6px 14px;
    border-radius:999px;
    margin-bottom:20px;
  }
  body.page-singapore .fine h2{color:#fff; font-size:clamp(26px,3.4vw,36px); text-transform:uppercase; max-width:520px;}
  body.page-singapore .fine > .fine-inner > p{color:#9FB0C2; font-size:15px; line-height:1.7; max-width:480px; margin-top:14px;}
  body.page-singapore .fine-grid{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:10px 40px;
    margin-top:32px;
  }
  body.page-singapore .fine-grid ul{margin:0; padding:0; list-style:none;}
  body.page-singapore .fine-grid li{
    padding:9px 0 9px 16px;
    position:relative;
    font-size:13.5px;
    color:#DCE4EE;
    line-height:1.6;
    border-bottom:1px solid rgba(255,255,255,0.07);
  }
  body.page-singapore .fine-grid li::before{content:"–"; position:absolute; left:0; color:var(--orange);}

  /* ---------- FOOTER ---------- */
  body.page-singapore footer{
    background:var(--navy-deep); color:#D9D2BE;
    padding:52px 28px 26px; margin-top:8px;
  }
  body.page-singapore .footer-inner{
    max-width:1180px; margin:0 auto;
    display:flex; justify-content:space-between; flex-wrap:wrap; gap:36px;
    padding-bottom:34px; border-bottom:1px solid rgba(217,210,190,.15);
  }
  body.page-singapore .footer-brand img{
    height:48px;
    width:auto;
    margin-bottom:14px;
    filter:brightness(0) invert(1);
  }
  body.page-singapore .footer-brand p{font-size:13px; color:#9C9576; max-width:280px; line-height:1.6; margin:0;}
  body.page-singapore .footer-col h6{
    font-family:var(--f-head); font-size:12px; letter-spacing:.1em;
    text-transform:uppercase; color:#F4EFDF; margin:0 0 14px;
  }
  body.page-singapore .footer-col a, body.page-singapore .footer-col span{
    display:block; font-size:13.6px; color:#D9D2BE; text-decoration:none;
    margin-bottom:10px; line-height:1.5;
  }
  body.page-singapore .footer-col a:hover{color:var(--orange);}
  body.page-singapore .footer-bottom{
    max-width:1180px; margin:22px auto 0;
    display:flex; justify-content:space-between; flex-wrap:wrap; gap:10px;
    font-size:12px; color:#8F886C;
  }

  /* ---------- RESPONSIVE ---------- */
  @media (max-width: 900px){
    body.page-singapore .hero-grid{grid-template-columns:1fr;}
    body.page-singapore .skyline-wrap{order:-1;}
    body.page-singapore .nav-phone{display:none;}
    body.page-singapore .pass-wrap{grid-template-columns:1fr;}
    body.page-singapore .pass-stub{flex-direction:row; padding:16px 24px; justify-content:flex-start; gap:14px;}
    body.page-singapore .pass-stub .code, body.page-singapore .pass-stub .route-mini{writing-mode:horizontal-tb; transform:none;}
    body.page-singapore .pass-side{border-left:none; border-top:1px dashed var(--line);}
    body.page-singapore .pass-meta, body.page-singapore .inclusions ul{grid-template-columns:1fr 1fr;}
    body.page-singapore .also-grid{grid-template-columns:1fr;}
    body.page-singapore .fine-grid{grid-template-columns:1fr;}
    body.page-singapore .fine-inner{padding:30px 24px;}
    body.page-singapore section{padding:64px 0;}
  }
  @media (max-width:480px){
    body.page-singapore .brand .tag{ display:none; }
    body.page-singapore .nav{ padding:10px 16px; }
    body.page-singapore .nav-call{ padding:9px 12px; font-size:12.5px; }
    body.page-singapore .brand img{ height:36px; }
    body.page-singapore .inclusions ul{grid-template-columns:1fr;}
  }
  body.page-singapore .brand{ display:flex; align-items:center; gap:12px; }
  body.page-singapore .brand img{ height:44px; width:auto; }
  body.page-singapore .brand .tag{
    font-family:var(--f-mono);
    font-size:11px;
    letter-spacing:.14em;
    color:var(--navy);
    border-left:1px solid var(--line);
    padding-left:12px;
    line-height:1.3;
  }

/* ==========================================================
   STATIC INLINE STYLE REPLACEMENTS
   These classes replace the former style="..." attributes.
   ========================================================== */
.tc-bg-orange { background: var(--orange) !important; }
.tc-ticket-theme-bali { --accent:var(--bali) !important; --accent-soft:var(--bali-soft) !important; --accent-ink:var(--bali-ink) !important; }
.tc-ticket-theme-dubai { --accent:var(--dubai) !important; --accent-soft:var(--dubai-soft) !important; --accent-ink:#7A4E11 !important; }
.tc-ticket-theme-kl { --accent:var(--kl) !important; --accent-soft:var(--kl-soft) !important; --accent-ink:#1B4E3B !important; }
.tc-ticket-theme-lgk { --accent:var(--lgk) !important; --accent-soft:var(--lgk-soft) !important; --accent-ink:#0A4C60 !important; }
.tc-text-kl { color:var(--kl) !important; }
.tc-text-lgk { color:var(--lgk) !important; }
.tc-text-dubai { color:var(--dubai) !important; }
.tc-text-teal { color:var(--teal) !important; }
.tc-sin-hero-container { position:relative !important; z-index:3 !important; padding-bottom:34px !important; }
.tc-sin-meta-row { display:flex !important; gap:40px !important; flex-wrap:wrap !important; border-top:1px solid rgba(255,255,255,0.14) !important; padding-top:26px !important; margin-top:44px !important; }
.tc-text-slate-blue { color:#8CA3BE !important; }
.tc-font-archivo { font-family:'Archivo',sans-serif !important; }
.tc-btn-whatsapp-soft { background:rgba(15,139,141,0.12) !important; color:var(--teal) !important; border:1px solid rgba(15,139,141,0.3) !important; }
