@font-face{font-family:Cormorant;src:url('lib/fonts/Cormorant-Regular.woff')}@font-face{font-family:Lato;src:url('lib/fonts/Lato2-Regular.woff')}@font-face{font-family:Lato;src:url('lib/fonts/Lato2-Bold.woff');font-weight:700}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:#faf7f2;color:#342b2a;font-family:Lato,Arial,sans-serif;line-height:1.6}.hero{min-height:92vh;background:#efe7de;padding:72px 8vw;display:flex;flex-direction:column;justify-content:center;align-items:flex-start}.eyebrow,.kicker,.divider span,.dayhead p{font-size:12px;letter-spacing:.22em;font-weight:700}.hero{color:#342b2a}.hero h1{font:400 clamp(68px,13vw,150px)/.85 Cormorant,serif;margin:18px 0 22px}.deck{font:400 clamp(21px,3vw,32px)/1.35 Cormorant,serif;max-width:650px}.start,.stop a,.routes a,.staygrid a{display:inline-block;text-decoration:none;color:#342b2a;font-weight:700;font-size:12px;letter-spacing:.08em;border-bottom:1px solid #8f5551;padding:10px 0}.hero .start{color:#342b2a;border-color:#342b2a}.start{margin-top:30px;border:1px solid #342b2a;border-radius:30px;padding:13px 22px}.intro,.stays,.mapsec,.close{padding:90px max(7vw,24px);max-width:1100px;margin:auto}.intro h2,.stays h2,.mapsec h2,.close h2{font:400 clamp(40px,6vw,70px)/1 Cormorant,serif;margin:8px 0 20px}.intro>p:not(.kicker){max-width:690px;font-size:18px}.chips{display:flex;gap:10px;flex-wrap:wrap;margin-top:30px}.chips span{border:1px solid #c9aaa2;border-radius:30px;padding:8px 14px;font-size:11px;letter-spacing:.1em}.divider{min-height:62vh;display:flex;align-items:flex-end;padding:70px max(7vw,24px);color:#342b2a;position:relative;overflow:hidden}.divider:before{content:"";position:absolute;inset:0;background:#efe7de;z-index:0}.divider.city2:before{background:#efe7de}.divider.sentosa:before{background:#efe7de}.divider:after{display:none}.divider>div{position:relative;z-index:1}.divider h2{font:400 clamp(48px,8vw,95px)/.9 Cormorant,serif;margin:10px 0}.divider p{font-size:14px}.day{max-width:920px;margin:auto;padding:90px max(7vw,24px)}.dayhead{display:flex;gap:20px;align-items:flex-start;border-bottom:1px solid #d7d1c6;padding-bottom:30px}.dayhead>span{font:400 64px/1 Cormorant,serif;color:#7b3433}.dayhead h2{font:400 clamp(36px,5vw,56px)/1 Cormorant,serif;margin:0}.dayhead p{margin:0 0 8px}.stop{display:grid;grid-template-columns:60px 1fr;gap:22px;padding:42px 0;border-bottom:1px solid #ded2cd}.num{font:400 30px Cormorant,serif;color:#7b3433}.stop h3,.staygrid h3{font:400 32px/1.1 Cormorant,serif;margin:0 0 14px}.stop p{max-width:650px}.note{background:#f3ece5;padding:18px 20px;border-left:3px solid #7b3433}.note b{display:block;font-size:10px;letter-spacing:.16em;margin-bottom:5px}.dinner{background:#fbf8f2;margin:0 -24px;padding-left:24px;padding-right:24px}.stays{max-width:1100px}.staygrid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:35px}.staygrid>div{background:#fff;padding:28px;border:1px solid #e6dfd4}.mapsec{max-width:1100px}#mapbox{height:520px;border-radius:4px;margin:30px 0;overflow:hidden}.routes{display:flex;gap:18px;flex-wrap:wrap}.routes a{border:1px solid #8f5551;border-radius:30px;padding:12px 16px}.close{text-align:center;padding-bottom:120px}.close>p:first-child{letter-spacing:.2em;font-size:11px}.close>p:last-child{font-size:12px;color:#667;max-width:600px;margin:25px auto}@media(max-width:700px){.hero{min-height:82vh;padding:55px 24px}.hero{color:#342b2a}.hero h1{font-size:72px}.intro,.stays,.mapsec,.close,.day{padding:65px 22px}.divider{min-height:52vh;padding:50px 22px}.divider h2{font-size:52px}.stop{grid-template-columns:38px 1fr;gap:10px;padding:34px 0}.stop h3{font-size:29px}.staygrid{grid-template-columns:1fr}#mapbox{height:430px}.dayhead>span{font-size:48px}}


@media(max-width:700px){body{font-size:16px}.hero{padding:48px 22px;min-height:76vh}.hero h1{font-size:64px;overflow-wrap:anywhere}.deck{font-size:23px}.divider{min-height:44vh}.divider h2{font-size:46px}.divider p{font-size:13px}.dayhead{gap:14px}.dayhead h2{font-size:38px}.stop p{font-size:16px;line-height:1.65}.stop a{font-size:11px}.routes{flex-direction:column}.routes a{text-align:center;width:100%}.chips{gap:8px}}

.stop-media{margin:24px 0 18px;overflow:hidden;border-radius:2px}.stop-media img,.media-grid img{display:block;width:100%;height:100%;object-fit:cover}.stop-media{aspect-ratio:4/3}.stop-media.portrait{max-width:470px;aspect-ratio:3/4}.media-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:24px 0 18px}.media-grid img{aspect-ratio:4/5}.media-grid.landscape img{aspect-ratio:4/3}@media(max-width:700px){.media-grid{gap:8px}.media-grid:not(.landscape) img{aspect-ratio:3/4}.media-grid.landscape{grid-template-columns:1fr}.media-grid.landscape img{aspect-ratio:4/3}.stop-media.portrait{max-width:100%}}

.staygrid.two{grid-template-columns:repeat(2,1fr)}@media(max-width:700px){.staygrid.two{grid-template-columns:1fr}}

.kmg-menu-btn{position:fixed;top:18px;left:18px;z-index:9998;width:44px;height:44px;border:1px solid rgba(40,35,32,.22);border-radius:50%;background:rgba(250,248,244,.94);color:#342b2a;font-size:18px;cursor:pointer}.kmg-drawer{position:fixed;z-index:10000;left:0;top:0;bottom:0;width:min(340px,88vw);background:#faf7f2;padding:76px 28px 32px;transform:translateX(-105%);transition:.25s;overflow:auto;box-shadow:0 0 40px rgba(0,0,0,.12)}.kmg-drawer.open{transform:none}.kmg-drawer-backdrop{display:none;position:fixed;inset:0;z-index:9999;background:rgba(0,0,0,.24)}.kmg-drawer-backdrop.open{display:block}.kmg-drawer-close{position:absolute;right:20px;top:18px;border:0;background:none;font-size:32px}.kmg-drawer-brand{font-size:10px;letter-spacing:.18em;margin-bottom:28px}.kmg-drawer a{display:block;padding:14px 0;border-bottom:1px solid rgba(0,0,0,.12);font-size:11px;letter-spacing:.12em;text-decoration:none;color:inherit}.kmg-drawer p{font-size:13px;line-height:1.55;margin-top:24px}.kmg-phone,.kmg-planner{padding:72px 24px;background:#f5f0e9;color:#342b2a}.kmg-planner{background:#ebe4dc}.kmg-util-wrap{max-width:1064px;margin:auto}.kmg-util-kicker{font-size:10px;letter-spacing:.2em;font-weight:700}.kmg-phone h2,.kmg-planner h2{font-family:Cormorant,Georgia,serif;font-weight:500;font-size:clamp(40px,6vw,68px);line-height:1;margin:12px 0 18px}.kmg-action,.kmg-save-stop,.kmg-calendar{border:1px solid currentColor;background:transparent;color:inherit;padding:12px 15px;font-size:10px;letter-spacing:.12em;font-weight:700;cursor:pointer}.kmg-action{margin-top:22px}.kmg-save-stop{display:inline-block;margin-top:20px}.stop>.kmg-save-stop{grid-column:2;justify-self:start;width:auto;max-width:100%;white-space:nowrap}.kmg-save-stop.saved{opacity:.55}.kmg-date-row{display:flex;align-items:end;gap:12px;flex-wrap:wrap;margin:22px 0}.kmg-date-row label{font-size:10px;letter-spacing:.1em;text-transform:uppercase}.kmg-date-row input{display:block;margin-top:7px;padding:10px;border:1px solid rgba(0,0,0,.18);background:#fff}.kmg-row{display:grid;grid-template-columns:120px 150px 1fr auto;gap:10px;align-items:center;padding:12px 0;border-top:1px solid rgba(0,0,0,.12)}.kmg-row select,.kmg-row input{width:100%;padding:10px;border:1px solid rgba(0,0,0,.16);background:#fff}.kmg-row-actions{display:flex;gap:5px}.kmg-row-actions button{border:1px solid rgba(0,0,0,.18);background:transparent;padding:8px;cursor:pointer}.kmg-modal{display:none;position:fixed;inset:0;z-index:11000;background:rgba(0,0,0,.38);padding:20px;align-items:center;justify-content:center}.kmg-modal.open{display:flex}.kmg-modal-card{position:relative;width:min(520px,100%);background:#faf7f2;padding:38px;color:#342b2a}.kmg-modal-card h3{font-family:Cormorant,Georgia,serif;font-size:36px;line-height:1.05;margin:12px 0}.kmg-modal-close{position:absolute;right:15px;top:10px;border:0;background:none;font-size:30px}.kmg-calendar-note{max-width:700px;margin:18px 0 8px;padding:14px 16px;border-left:2px solid #7b3433;background:rgba(239,231,222,.78);font-size:12px!important;line-height:1.55}.kmg-calendar-note strong{font-size:10px;letter-spacing:.14em}@media(max-width:700px){.kmg-phone,.kmg-planner{padding:58px 20px}.kmg-row{grid-template-columns:1fr 1fr}.kmg-row .kmg-place{grid-column:1/-1}.kmg-row-actions{grid-column:1/-1}.kmg-menu-btn{top:12px;left:12px}}
.season-update{margin-top:24px;padding:18px 20px;background:#f3ece5;border-left:3px solid #7b3433;font-size:14px!important;line-height:1.65}.season-update strong{display:block;font-size:10px;letter-spacing:.16em;margin-bottom:6px}.full-edition-cta{max-width:760px;margin:55px auto 0;padding:42px 36px;background:#f3ece5;border:1px solid #c9aaa2}.full-edition-cta h3{font:400 clamp(34px,5vw,52px)/1 Cormorant,serif;margin:10px 0 18px}.full-edition-cta>p:not(.kicker){max-width:650px;margin-left:auto;margin-right:auto}.full-edition-offer{margin-top:22px!important;font-size:14px!important;color:#342b2a!important}.full-edition-cta .start{color:#342b2a;border-color:#342b2a}@media(max-width:700px){.full-edition-cta{padding:32px 22px;margin-top:40px}}

.playlistsec{padding:90px max(7vw,24px);max-width:1100px;margin:auto;text-align:center}.playlistsec h2{font:400 clamp(40px,6vw,70px)/1 Cormorant,serif;margin:8px 0 20px}.playlistsec>p:not(.kicker){max-width:680px;margin:0 auto;font-size:18px}.spotify-embed{max-width:760px;margin:34px auto 0}.spotify-embed iframe{display:block;border:0}.playlistsec .start{margin-top:24px}@media(max-width:700px){.playlistsec{padding:65px 22px}.spotify-embed{margin-top:28px}}
.holiday-gallery{max-width:1100px;margin:34px auto 72px;padding:0 max(3vw,18px);display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-auto-rows:210px;gap:10px}.holiday-gallery img{display:block;width:100%;height:100%;object-fit:cover}.holiday-gallery .gallery-feature{grid-column:span 2;grid-row:span 2}.holiday-gallery img:nth-child(2),.holiday-gallery img:nth-child(3){grid-column:span 1}.holiday-gallery img:nth-child(4),.holiday-gallery img:nth-child(5){grid-column:span 1}@media(max-width:700px){.holiday-gallery{grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:155px;margin:20px auto 52px;gap:7px}.holiday-gallery .gallery-feature{grid-column:1/-1;grid-row:span 2}}

/* Optional holiday experiences — added without changing the existing itinerary styles */
.holiday-extras{padding:76px max(7vw,24px);max-width:1000px;margin:0 auto;color:#342b2a}
.holiday-extras h2{font:400 clamp(40px,6vw,66px)/1 Cormorant,Georgia,serif;margin:8px 0 22px}
.holiday-extras .extras-intro{max-width:700px;margin:0 0 30px;font-size:17px;line-height:1.7}
.holiday-extra{border-top:1px solid #ded2cd;padding:24px 0}
.holiday-extra h3{font:400 31px/1.18 Cormorant,Georgia,serif;margin:0 0 8px}
.holiday-extra p{max-width:690px;line-height:1.7;margin:0 0 10px}
.holiday-extra a{display:inline-block;color:inherit;text-decoration:none;border-bottom:1px solid #8f5551;padding:9px 0;font-weight:700;font-size:11px;letter-spacing:.08em}
.affiliate-note{font-size:12px!important;line-height:1.65!important;color:#70655f;margin:17px 0 0!important;max-width:690px}
@media(max-width:700px){.holiday-extras{padding:60px 22px}.holiday-extra h3{font-size:29px}.holiday-extras .extras-intro{font-size:16px}}
