:root{--ink:#0d2a27;--forest:#123a35;--cream:#f6f1e8;--paper:#fffdf8;--sand:#e3dacb;--muted:#6f7973;--accent:#c56e49;--line:#ddd4c6;--white:#fff}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--cream);color:var(--ink);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}a{color:inherit}.shell{max-width:1240px;margin:auto;padding:0 28px}.nav{position:absolute;top:0;left:0;right:0;z-index:10;display:flex;align-items:center;justify-content:space-between;padding:28px 0;color:#fff}.brand{font:500 21px/1 "Playfair Display",serif;letter-spacing:.18em;text-transform:uppercase}.brand span{display:block;font:700 9px/1.2 Inter,sans-serif;letter-spacing:.34em;margin-top:7px;text-align:center}.navlinks{display:flex;gap:28px;font-size:12px;letter-spacing:.08em;text-transform:uppercase}.navlinks a{text-decoration:none;opacity:.92}.hero{position:relative;min-height:86vh;display:flex;align-items:flex-end;color:#fff;background:linear-gradient(180deg,rgba(5,20,16,.16) 0%,rgba(5,20,16,.15) 36%,rgba(5,20,16,.82) 100%),url("https://images.unsplash.com/photo-1537996194471-e657df975ab4?auto=format&fit=crop&w=2400&q=88") center/cover}.hero:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(5,20,16,.2),transparent 55%);pointer-events:none}.heroInner{position:relative;z-index:2;width:100%;padding:130px 0 82px}.eyebrow{font-size:11px;letter-spacing:.24em;text-transform:uppercase;font-weight:700;color:#e9c5b4}.hero h1{font:500 clamp(54px,8vw,110px)/.9 "Playfair Display",serif;margin:18px 0 16px;max-width:880px}.heroLead{max-width:650px;font-size:18px;line-height:1.6;color:#f0eee9}.metaRow{display:flex;flex-wrap:wrap;gap:9px;margin-top:28px}.chip{padding:10px 14px;border:1px solid #ffffff55;background:#ffffff18;border-radius:999px;font-size:12px;backdrop-filter:blur(10px)}.ctaRow{display:flex;gap:10px;flex-wrap:wrap;margin-top:30px}.btn{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:0 20px;border-radius:999px;font-weight:800;font-size:12px;letter-spacing:.05em;text-transform:uppercase;text-decoration:none;border:1px solid transparent}.btnPrimary{background:#fff;color:var(--ink)}.btnDark{background:var(--ink);color:#fff}.btnGhost{background:transparent;border-color:var(--sand);color:var(--ink)}section{padding:92px 0}.sectionKicker{font-size:10px;letter-spacing:.22em;text-transform:uppercase;font-weight:800;color:var(--accent)}h2{font:500 clamp(40px,5vw,66px)/1.02 "Playfair Display",serif;margin:11px 0 18px}.lede{max-width:760px;color:var(--muted);font-size:17px;line-height:1.7}.featureGrid{display:grid;grid-template-columns:1.1fr .9fr;gap:58px;align-items:end}.featureStats{display:grid;grid-template-columns:repeat(3,1fr);background:var(--paper);border:1px solid var(--line)}.stat{padding:22px 18px;border-right:1px solid var(--line)}.stat:last-child{border-right:0}.stat strong{display:block;font:500 43px/1 "Playfair Display",serif}.stat span{display:block;margin-top:7px;font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--muted)}.sectionTop{display:flex;justify-content:space-between;gap:30px;align-items:end;margin-bottom:34px}.sectionTop .lede{max-width:540px}.retreatCard{display:grid;grid-template-columns:1.15fr .85fr;background:var(--paper);border:1px solid var(--line);border-radius:28px;overflow:hidden;box-shadow:0 18px 50px rgba(13,42,39,.08)}.cardImage{min-height:480px;background:url("https://images.unsplash.com/photo-1559628233-69f3a59dce62?auto=format&fit=crop&w=1800&q=86") center/cover}.cardBody{padding:44px;display:flex;flex-direction:column;justify-content:space-between}.cardTag{font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:var(--accent);font-weight:800}.cardBody h3{font:500 48px/1.03 "Playfair Display",serif;margin:12px 0 14px}.cardBody p{color:var(--muted);line-height:1.7}.miniMeta{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:22px 0}.miniMeta div{border-top:1px solid var(--line);padding-top:12px}.miniMeta small{display:block;font-size:9px;letter-spacing:.13em;text-transform:uppercase;color:var(--muted)}.miniMeta strong{display:block;font-size:15px;margin-top:4px}.price{font:500 44px/1 "Playfair Display",serif;margin:12px 0 5px}.priceSub{font-size:10px;text-transform:uppercase;letter-spacing:.14em;color:var(--muted)}.approach{background:var(--forest);color:#fff}.approach .sectionKicker{color:#efb79e}.approach .lede{color:#c7d2cd}.three{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:38px}.three article{border:1px solid #ffffff22;padding:28px;border-radius:22px;background:#ffffff08}.three b{font-size:12px;letter-spacing:.16em;text-transform:uppercase}.three h3{font:500 29px "Playfair Display",serif;margin:13px 0 9px}.three p{color:#c7d2cd;line-height:1.65;font-size:14px}.footer{background:#09211f;color:#fff;padding:72px 0}.footerGrid{display:flex;justify-content:space-between;gap:30px}.footer p{color:#abb9b4;font-size:13px;line-height:1.6}.detailHero{min-height:82vh}.detailHero .heroLead{max-width:700px}.detailIntro{display:grid;grid-template-columns:1.2fr .8fr;gap:58px}.pricePanel{background:var(--paper);border:1px solid var(--line);border-radius:24px;padding:27px;align-self:start;position:sticky;top:20px}.pricePanel .price{font-size:54px}.detailGrid{display:grid;grid-template-columns:1fr 1fr;gap:28px;margin-top:35px}.infoCard{background:var(--paper);border:1px solid var(--line);padding:26px;border-radius:22px}.infoCard h3{font:500 28px "Playfair Display",serif;margin:0 0 10px}.infoCard p,.infoCard li{color:var(--muted);line-height:1.65;font-size:14px}.days{display:grid;gap:15px;margin-top:36px}.day{display:grid;grid-template-columns:125px 1fr;background:var(--paper);border:1px solid var(--line);border-radius:22px;overflow:hidden}.dayDate{background:var(--ink);color:#fff;padding:23px}.dayDate small{display:block;text-transform:uppercase;letter-spacing:.16em;font-weight:800;font-size:10px}.dayDate strong{display:block;font:500 42px "Playfair Display",serif;margin-top:8px}.dayBody{padding:24px 28px}.dayBody h3{font:500 28px "Playfair Display",serif;margin:0 0 8px}.dayBody>p{color:var(--muted);margin:0 0 16px}.items{display:grid;grid-template-columns:1fr 1fr;gap:10px 25px}.item{border-top:1px solid var(--line);padding-top:9px;font-size:13px;line-height:1.45}.time{display:block;color:var(--accent);font-weight:800;font-size:11px;margin-bottom:2px}.mapWrap{margin-top:35px}.mapBox{height:540px;border-radius:26px;overflow:hidden;box-shadow:0 18px 50px rgba(13,42,39,.12);position:relative}.mapBox .leaflet-container{height:100%;font-family:Inter,sans-serif}.leaflet-control-attribution{font-size:8px!important}.mapToggle{position:absolute;top:16px;right:16px;z-index:500;border:0;border-radius:999px;background:#fffdf9;padding:10px 14px;font-weight:800;font-size:11px;box-shadow:0 8px 24px rgba(0,0,0,.14);cursor:pointer}.pin{width:32px;height:32px;background:var(--accent);border:3px solid #fff;border-radius:50%;display:flex;align-items:center;justify-content:center;color:#fff;font-size:12px;font-weight:900;box-shadow:0 6px 16px rgba(0,0,0,.3)}.faq{display:grid;grid-template-columns:1fr 1fr;gap:15px;margin-top:28px}.faq details{background:var(--paper);border:1px solid var(--line);border-radius:17px;padding:17px 19px}.faq summary{cursor:pointer;font-weight:800;font-size:13px}.faq p{color:var(--muted);line-height:1.6;font-size:13px}.mobileMenu{display:none}@media(max-width:900px){.navlinks{display:none}.featureGrid,.retreatCard,.detailIntro{grid-template-columns:1fr}.cardImage{min-height:340px}.three{grid-template-columns:1fr}.detailGrid,.faq{grid-template-columns:1fr}.pricePanel{position:static}.items{grid-template-columns:1fr}.day{grid-template-columns:1fr}.dayDate{display:flex;align-items:center;gap:14px}.dayDate strong{margin:0;font-size:30px}.footerGrid{display:block}.hero{min-height:78vh}.heroInner{padding-bottom:64px}.shell{padding:0 18px}section{padding:70px 0}}@media(max-width:560px){.hero h1{font-size:56px}.heroLead{font-size:16px}.featureStats{grid-template-columns:1fr}.stat{border-right:0;border-bottom:1px solid var(--line)}.stat:last-child{border-bottom:0}.cardBody{padding:28px}.cardBody h3{font-size:40px}.price{font-size:38px}.metaRow{gap:7px}.chip{font-size:11px}.mapBox{height:430px}}

/* Mobile-first polish */
@media(max-width:700px){
  body{overflow-x:hidden}
  .shell{padding:0 16px}
  .nav{padding:20px 0}
  .brand{font-size:17px;letter-spacing:.14em}
  .brand span{font-size:7px;letter-spacing:.26em}
  .hero{min-height:78svh;background-position:center}
  .detailHero{min-height:76svh}
  .heroInner{padding:108px 0 34px}
  .eyebrow{font-size:9px;letter-spacing:.18em}
  .hero h1{font-size:52px;line-height:.91;margin:13px 0 13px}
  .heroLead{font-size:15px;line-height:1.5}
  .metaRow{margin-top:20px;gap:6px}
  .chip{font-size:10px;padding:8px 11px}
  .ctaRow{margin-top:20px;gap:8px}
  .btn{min-height:46px;padding:0 16px;font-size:10px}
  section{padding:58px 0}
  h2{font-size:42px;line-height:1.02}
  .lede{font-size:15px;line-height:1.6}
  .sectionTop{display:block;margin-bottom:24px}
  .sectionTop .lede{margin-top:14px}
  .detailIntro{gap:32px}
  .detailGrid{gap:12px;margin-top:24px}
  .infoCard{padding:21px;border-radius:18px}
  .infoCard h3{font-size:25px;margin-bottom:7px}
  .infoCard p{font-size:13px;line-height:1.6}
  .pricePanel{padding:21px;border-radius:18px}
  .pricePanel .price{font-size:45px;margin:9px 0 4px}
  .priceSub{font-size:9px}
  .includeList{gap:8px}
  .include{font-size:12px;line-height:1.45}
  .galleryGrid{grid-template-columns:1fr;gap:10px;margin-top:22px}
  .galleryMain{min-height:300px}
  .gallerySide{grid-template-columns:1fr 1fr;gap:10px}
  .gallerySide img{min-height:155px}
  .days{gap:12px;margin-top:24px}
  .day{border-radius:18px}
  .dayDate{padding:14px 17px;min-height:58px}
  .dayDate small{font-size:9px;letter-spacing:.12em}
  .dayDate strong{font-size:29px}
  .dayBody{padding:18px 17px 20px}
  .dayBody h3{font-size:25px;line-height:1.05;margin-bottom:7px}
  .dayBody>p{font-size:13px;line-height:1.55;margin-bottom:14px}
  .items{gap:0}
  .item{display:grid;grid-template-columns:67px minmax(0,1fr);column-gap:10px;padding:10px 0;font-size:12px;line-height:1.45}
  .time{font-size:9px;line-height:1.3;margin:0}
  .mapWrap{margin-top:20px}
  .mapBox{height:390px;border-radius:18px;box-shadow:0 12px 35px rgba(13,42,39,.10)}
  .mapToggle{top:12px;right:12px;padding:9px 12px;font-size:10px}
  .stickyBar{bottom:10px;margin-top:24px;padding:7px 8px 7px 14px}
  .stickyBar strong{font-size:12px}
  .stickyBar span{font-size:9px;margin-left:5px}
  .stickyBar .btn{min-height:42px;padding:0 14px}
  .footer{padding:55px 0}
}
@media(max-width:390px){
  .hero h1{font-size:48px}
  .heroLead{font-size:14px}
  h2{font-size:38px}
  .dayDate{min-height:54px}
  .dayBody{padding:16px}
  .item{grid-template-columns:63px minmax(0,1fr);font-size:11.5px}
  .mapBox{height:350px}
  .stickyBar span{display:none}
}


/* Horizontal itinerary cards on mobile */
@media(max-width:700px){
  #week .days{
    display:flex;
    gap:12px;
    overflow-x:auto;
    overflow-y:hidden;
    padding:2px 16px 12px 0;
    margin-right:-16px;
    scroll-snap-type:x mandatory;
    -webkit-overflow-scrolling:touch;
    scrollbar-width:none;
  }
  #week .days::-webkit-scrollbar{display:none}
  #week .day{
    flex:0 0 88%;
    width:88%;
    scroll-snap-align:start;
    scroll-snap-stop:always;
  }
  #week .dayDate{flex:0 0 auto}
}
@media(max-width:390px){
  #week .day{flex-basis:91%;width:91%}
}


/* Rebuilt retreat map */
.mapSection{background:#efe9de}
.mapIntroStats{display:flex;gap:0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin:30px 0 24px}
.mapIntroStats div{padding:16px 28px 16px 0;margin-right:28px;border-right:1px solid var(--line)}
.mapIntroStats div:last-child{border-right:0}
.mapIntroStats strong{display:block;font:500 22px/1 "Playfair Display",serif}
.mapIntroStats span{display:block;margin-top:5px;color:var(--muted);font-size:9px;letter-spacing:.12em;text-transform:uppercase}
.mapExperience{display:grid;grid-template-columns:minmax(0,1.8fr) minmax(340px,.9fr);height:min(72vh,720px);min-height:560px;background:var(--paper);border:1px solid var(--line);border-radius:28px;overflow:hidden;box-shadow:0 20px 60px rgba(13,42,39,.09)}
.mapVisual{position:relative;min-width:0;min-height:0;height:100%;background:#d8d1c5}
#phuketMap{position:absolute;inset:0;width:100%;height:100%;background:#d8d1c5}
.mapToolbar{position:absolute;z-index:600;top:18px;left:18px;right:18px;display:flex;justify-content:space-between;align-items:center;pointer-events:none}
.mapLegend,.mapToggle{pointer-events:auto;background:rgba(255,253,248,.94);backdrop-filter:blur(12px);border:1px solid rgba(221,212,198,.9);box-shadow:0 8px 24px rgba(13,42,39,.12);border-radius:999px;padding:10px 13px;font-size:10px;font-weight:800;letter-spacing:.07em;text-transform:uppercase}
.mapLegend{display:flex;align-items:center;gap:8px}
.legendDot{width:8px;height:8px;border-radius:50%;background:var(--accent);box-shadow:0 0 0 3px #f4e3da}
.legendShuttle{display:inline-block;flex:0 0 18px;height:0;margin-left:3px;border-top:2px dashed #25845f}
.mapToggle{cursor:pointer;color:var(--ink)}
.mapList{display:flex;flex-direction:column;background:var(--paper);border-left:1px solid var(--line);min-width:0;min-height:0}
#mapCards{flex:1;min-height:0}
.placeCopy em{white-space:normal;overflow:visible;line-height:1.35}
.mapListHead{display:flex;justify-content:space-between;align-items:center;padding:20px 22px 15px;border-bottom:1px solid var(--line)}
.mapListHead span{font-size:9px;font-weight:900;letter-spacing:.18em;color:var(--accent)}
.mapListHead small{font-size:9px;color:var(--muted)}
#mapCards{overflow:auto;padding:6px 10px 12px}
.mapPlace{width:100%;display:grid;grid-template-columns:34px minmax(0,1fr) 16px;align-items:center;gap:11px;text-align:left;border:0;border-bottom:1px solid var(--line);background:transparent;padding:15px 11px;color:var(--ink);cursor:pointer}
.mapPlace:last-child{border-bottom:0}
.mapPlace:hover,.mapPlace.selected{background:#f7f1e8}
.placeIcon{width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:#f0e3d8;color:var(--accent);font-size:13px;font-weight:900}
.placeCopy{min-width:0}
.placeCopy small{display:block;color:var(--accent);font-size:8px;font-weight:900;letter-spacing:.14em;margin-bottom:4px}
.placeCopy strong{display:block;font:500 18px/1.08 "Playfair Display",serif;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.placeCopy em{display:-webkit-box;color:var(--muted);font-style:normal;font-size:10px;margin-top:4px;line-height:1.35;white-space:normal;overflow:hidden;text-overflow:ellipsis;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.placeArrow{color:var(--muted);font-size:14px}
.rallyPinWrap{background:transparent;border:0}
.rallyPin{display:block;width:20px;height:20px;border-radius:50%;background:var(--accent);border:4px solid rgba(255,253,248,.98);box-shadow:0 5px 15px rgba(13,42,39,.3);transition:transform .2s ease,background .2s ease}
.rallyPin.isActive{background:var(--ink);transform:scale(1.35)}
.mapBox .leaflet-popup-content-wrapper{border-radius:14px;box-shadow:0 12px 35px rgba(13,42,39,.18)}
.mapBox .leaflet-popup-content{font:12px/1.4 Inter,sans-serif;margin:12px 14px}
.mapBox .leaflet-popup-content b{font-size:13px}
.mapBox .leaflet-popup-content span{color:var(--muted)}
.mapBox .leaflet-control-zoom a{color:var(--ink)}
@media(max-width:900px){
 .mapExperience{grid-template-columns:1fr;height:auto;min-height:0;border-radius:22px}
 .mapVisual{height:430px;min-height:430px}
 .mapList{border-left:0;border-top:1px solid var(--line)}
 #mapCards{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;padding:7px 8px 10px;gap:8px}
 .mapPlace{flex:0 0 78%;scroll-snap-align:start;border:1px solid var(--line);border-radius:15px;background:var(--paper);padding:13px}
 .mapPlace:last-child{border-bottom:1px solid var(--line)}
}
@media(max-width:700px){
 .mapIntroStats{margin:22px 0 18px}
 .mapIntroStats div{padding:12px 16px 12px 0;margin-right:16px}
 .mapIntroStats strong{font-size:18px}
 .mapIntroStats span{font-size:8px}
 .mapExperience{margin:0 -0px}
 .mapVisual{height:390px;min-height:390px}
 .mapToolbar{top:12px;left:12px;right:12px}
 .mapLegend,.mapToggle{padding:9px 11px;font-size:9px}
 .mapPlace{flex-basis:84vw;min-height:92px}
}
@media(max-width:390px){
 .mapVisual{height:350px;min-height:350px}
 .mapPlace{flex-basis:88vw}
}

/* Leaflet critical reset — keep tiles in a true map layer */
#phuketMap.leaflet-container{position:absolute!important;inset:0!important;width:100%!important;height:100%!important;overflow:hidden!important;background:#d8d1c5!important}
#phuketMap.leaflet-container .leaflet-pane,
#phuketMap.leaflet-container .leaflet-tile-pane,
#phuketMap.leaflet-container .leaflet-overlay-pane,
#phuketMap.leaflet-container .leaflet-shadow-pane,
#phuketMap.leaflet-container .leaflet-marker-pane,
#phuketMap.leaflet-container .leaflet-tooltip-pane,
#phuketMap.leaflet-container .leaflet-popup-pane{position:absolute;left:0;top:0}
#phuketMap.leaflet-container .leaflet-map-pane{position:absolute;left:0;top:0}
#phuketMap.leaflet-container .leaflet-tile-container{position:absolute;left:0;top:0}
#phuketMap.leaflet-container .leaflet-tile{position:absolute;left:0;top:0;width:256px;height:256px;max-width:none!important;max-height:none!important;margin:0!important;padding:0!important;border:0!important}
#phuketMap.leaflet-container img{max-width:none!important;max-height:none!important}
#phuketMap.leaflet-container .leaflet-control-container{position:absolute;inset:0;pointer-events:none}
#phuketMap.leaflet-container .leaflet-control{pointer-events:auto}

/* Compact mobile experience cards */
@media(max-width:700px){
  #experience .detailGrid{
    grid-template-columns:1fr 1fr;
    gap:10px;
    margin-top:20px;
  }
  #experience .infoCard{
    padding:18px 16px;
    border-radius:16px;
    min-height:0;
  }
  #experience .infoCard h3{
    font-size:27px;
    line-height:1;
    margin:0 0 12px;
  }
  #experience .infoCard p{
    font-size:11.5px;
    line-height:1.45;
    margin:0;
  }
}
@media(max-width:390px){
  #experience .detailGrid{gap:8px}
  #experience .infoCard{padding:16px 14px}
  #experience .infoCard h3{font-size:24px}
  #experience .infoCard p{font-size:11px}
}

/* Restore full-width mobile layout and keep gallery compact */
@media(max-width:700px){
  #experience .detailIntro{display:block;width:100%}
  #experience .detailIntro>div{width:100%;min-width:0}
  #experience .detailGrid{display:grid;width:100%;grid-template-columns:1fr 1fr;gap:10px}
  #experience .pricePanel{width:100%;max-width:none;margin-top:12px}
  .gallerySlider{width:100%;max-width:100%}
  .gallerySlide{height:300px!important;min-height:300px!important}
}
@media(max-width:390px){
  .gallerySlide{height:270px!important;min-height:270px!important}
}

/* Final mobile width reset for the experience section */
@media(max-width:700px){
  #experience .shell{width:100%!important;max-width:none!important;padding-left:16px!important;padding-right:16px!important}
  #experience .detailIntro{display:block!important;width:100%!important;max-width:none!important;margin:0!important}
  #experience .detailIntro>div:first-child{display:block!important;width:100%!important;max-width:none!important;min-width:0!important}
  #experience .detailGrid{display:grid!important;width:100%!important;max-width:none!important;grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important}
  #experience .pricePanel{display:block!important;width:100%!important;max-width:none!important;box-sizing:border-box!important}
  .gallerySlider{width:100%!important}
  .gallerySlide{height:220px!important;min-height:220px!important}
}
@media(max-width:390px){
  .gallerySlide{height:200px!important;min-height:200px!important}
}

/* Hard reset the mobile page canvas — prevent the document collapsing to content width */
html,body{width:100%!important;min-width:100%!important;max-width:none!important;margin:0!important;padding:0!important}
body{overflow-x:hidden!important}
.hero,.sectionNav,main,.footer{width:100%!important;min-width:100%!important;max-width:none!important}
@media(max-width:700px){
  .shell{width:100%!important;max-width:none!important;margin-left:0!important;margin-right:0!important;padding-left:16px!important;padding-right:16px!important}
  .heroInner{width:100%!important}
  .sectionNavInner{width:100%!important;max-width:none!important;margin:0!important}
  section{width:100%!important}
  .gallerySlider,.galleryTrack{width:100%!important}
  .gallerySlide{width:100%!important;flex-basis:100%!important}
}

/* Selected itinerary photography — stable remote sources */
.cardImagePhuket{display:grid;grid-template-columns:1fr 1fr;grid-template-rows:1fr 1fr;gap:2px;background:#fff;padding:0}
.phuketPhoto{display:block;min-width:0;min-height:0;background-position:center;background-size:cover;background-repeat:no-repeat}
.phuketPhoto1{background-image:url("https://images.unsplash.com/photo-1540747913346-19e32dc3e97e?auto=format&fit=crop&w=1800&q=90")}
.phuketPhoto2{background-image:url("https://images.unsplash.com/photo-1507525428034-b723cf961d3e?auto=format&fit=crop&w=1800&q=90")}
.phuketPhoto3{background-image:url("https://images.unsplash.com/photo-1510414842594-a61c69b5ae57?auto=format&fit=crop&w=1800&q=90")}
.phuketPhoto4{background-image:url("https://images.unsplash.com/photo-1540202404-a2f29016b523?auto=format&fit=crop&w=1800&q=90")}

/* Map pins — keep explicit so later image/card CSS cannot hide them */
#phuketMap .rallyMapPinWrap{display:block!important;background:transparent!important;border:0!important;width:18px!important;height:18px!important}
#phuketMap .rallyMapPin{display:block!important;width:18px!important;height:18px!important;border-radius:50%!important;background:var(--accent)!important;border:3px solid rgba(255,253,248,.98)!important;box-shadow:0 5px 15px rgba(13,42,39,.42)!important;box-sizing:border-box!important}
#phuketMap .rallyMapPin.active{background:var(--ink)!important;transform:scale(1.35)!important}
#phuketMap .leaflet-marker-pane{z-index:600!important}
#phuketMap .leaflet-popup-pane{z-index:700!important}


/* Desktop itinerary: compact horizontal carousel; leave the existing mobile layout alone. */
@media (min-width:701px) {
  html body #week .days {
    display:flex;
    align-items:flex-start;
    gap:18px;
    margin-top:26px;
    padding:0 0 18px;
    overflow-x:auto;
    overflow-y:hidden;
    overscroll-behavior-inline:contain;
    scroll-snap-type:x mandatory;
    scroll-padding-inline:2px;
    scrollbar-width:thin;
    scrollbar-color:#b6a58e #eae3d8;
    cursor:grab;
  }
  html body #week .days:active { cursor:grabbing; }
  html body #week .days::-webkit-scrollbar { height:9px; }
  html body #week .days::-webkit-scrollbar-track { background:#eae3d8; border-radius:99px; }
  html body #week .days::-webkit-scrollbar-thumb { background:#b6a58e; border:2px solid #eae3d8; border-radius:99px; }
  html body #week .days > .day {
    flex:0 0 clamp(410px,43%,540px);
    height:auto;
    grid-template-rows:240px auto;
    align-self:flex-start;
    scroll-snap-align:start;
    scroll-snap-stop:always;
  }
  html body #week .dayPhoto { height:240px; }
  html body #week .dayBody { padding:22px 24px 24px; }
  html body #week .dayBody h3 { font-size:30px; line-height:1.04; margin-bottom:7px; }
  html body #week .dayBody>p { font-size:13px; line-height:1.48; margin-bottom:12px; }
  html body #week .items { gap:0 20px; }
  html body #week .item { padding:9px 0 10px; font-size:11px; line-height:1.4; }
  html body #week .time { font-size:9px; margin-bottom:2px; }
}


/* Stay tile photo affordance: keep the icon typographic, compact, and clear of copy. */
html body .stayIncludeAction {
  width:24px;
  height:24px;
  font-size:0;
  opacity:.8;
  background:#f5f0e8;
  border-color:#e4d9ca;
}
html body .stayIncludeAction::before {
  content:"";
  position:absolute;
  top:6px;
  right:6px;
  width:7px;
  height:7px;
  border-top:1.5px solid currentColor;
  border-right:1.5px solid currentColor;
}
html body .stayIncludeAction::after {
  content:"";
  position:absolute;
  left:6px;
  bottom:6px;
  width:12px;
  height:1.5px;
  background:currentColor;
  transform:rotate(-45deg);
  transform-origin:center;
}
@media(max-width:700px) {
  html body .stayIncludeGrid button {
    min-height:76px;
    padding:9px 40px 9px 8px;
  }
  html body .stayIncludeGrid button .stayIncludeAction {
    right:9px;
  }
}


/* Give the Sole Mio desktop section a wider, balanced gallery and roomier details. */
@media (min-width:1000px) {
  html body #stay.hotelSection { padding:clamp(62px,6vw,86px) 0 78px; }
  html body #stay .stayReference {
    width:min(1180px,calc(100% - 56px));
    max-width:none;
  }
  html body #stay .stayRefHead { margin-bottom:34px; }
  html body #stay .stayRefHead h2 { font-size:clamp(44px,4.7vw,64px); }
  html body #stay .stayRefGallery {
    grid-template-columns:minmax(0,1fr) 142px;
    grid-template-rows:minmax(0,1fr);
    gap:14px;
    height:clamp(240px,23vw,310px);
    min-height:0;
  }
  html body #stay .stayRefHero { height:100%; min-height:0; }
  html body #stay .stayRefThumbs {
    height:100%;
    min-height:0;
    grid-template-rows:repeat(2,minmax(0,1fr));
  }
  html body #stay .stayRefThumbs button { min-height:0; }
  html body #stay .stayRefThumbs { gap:16px; }
  html body #stay .stayRefIntro {
    max-width:940px;
    margin:30px auto 38px;
    font-size:17px;
    line-height:1.65;
  }
  html body #stay .stayRefDivider { max-width:1000px; margin-bottom:18px; }
  html body #stay .stayIncludeGrid {
    max-width:none;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:12px;
  }
  html body #stay .stayIncludeGrid button { min-height:82px; }
  html body #stay .stayRefNote { margin-top:22px; }
}


/* Desktop retreat overview hero: destination-led, with a compact enquiry action. */
@media (min-width:1000px) {
  html body #top.retreatTop {
    position:relative;
    isolation:isolate;
    display:flex;
    align-items:center;
    min-height:min(820px,calc(100svh - 52px));
    overflow:hidden;
    background:#0d2a27;
    color:#fff;
  }
  html body #top.retreatTop::before {
    content:"";
    position:absolute;
    z-index:-1;
    inset:0;
    background:
      linear-gradient(90deg,rgba(5,20,16,.76) 0%,rgba(5,20,16,.56) 48%,rgba(5,20,16,.22) 100%),
      linear-gradient(0deg,rgba(5,20,16,.38),rgba(5,20,16,.08) 55%),
      url("../../assets/phuket-tennis-courts.webp") center 54%/cover no-repeat;
  }
  html body #top .retreatTopContent {
    width:min(1180px,calc(100% - 96px));
    max-width:none;
    margin:0 auto;
    padding:72px 0 54px;
    text-align:left;
  }
  html body #top .retreatBadge {
    color:#fff;
    border-color:rgba(255,255,255,.45);
    background:rgba(13,42,39,.48);
    backdrop-filter:blur(10px);
  }
  html body #top .retreatKicker {
    justify-content:flex-start;
    color:#f4dfc8;
  }
  html body #top .retreatKicker span { background:rgba(255,255,255,.58); }
  html body #top.retreatTop h1 {
    max-width:850px;
    margin:0 0 24px;
    color:#fff;
    font-size:clamp(58px,6.2vw,88px);
    text-shadow:0 3px 30px rgba(0,0,0,.22);
  }
  html body #top .retreatFacts {
    max-width:940px;
    margin:0 0 20px;
    gap:10px;
  }
  html body #top .retreatFacts div {
    min-height:78px;
    border-color:rgba(255,255,255,.5);
    background:rgba(255,253,248,.91);
    backdrop-filter:blur(10px);
  }
  html body #top .retreatIntro {
    max-width:760px;
    margin:0;
    color:rgba(255,255,255,.94);
    font-size:16px;
    line-height:1.6;
  }
  html body #top .retreatHighlights {
    max-width:820px;
    margin:18px 0 0;
    gap:9px;
  }
  html body #top .retreatHighlights div {
    border-color:rgba(255,255,255,.28);
    background:rgba(7,30,27,.45);
    color:#fff;
    backdrop-filter:blur(8px);
  }
  html body #top .retreatHighlights span {
    background:rgba(255,255,255,.16);
    color:#fff;
  }
  html body #top .retreatTopCta { width:max-content; margin-top:22px; }
  html body #top .retreatTopCta .btn {
    width:auto;
    min-width:0;
    min-height:48px;
    padding:0 23px;
    border-radius:999px;
    background:#b58b58;
    box-shadow:0 8px 22px rgba(0,0,0,.18);
    font-size:10px;
  }
  html body #top .retreatTopCta .btn:hover { background:#9f7748; }
}


/* Correct shared-stylesheet asset path and keep hero fact cards high contrast. */
@media (min-width:1000px) {
  html body #top.retreatTop::before {
    background:
      linear-gradient(90deg,rgba(5,20,16,.76) 0%,rgba(5,20,16,.56) 48%,rgba(5,20,16,.22) 100%),
      linear-gradient(0deg,rgba(5,20,16,.38),rgba(5,20,16,.08) 55%),
      url("assets/phuket-tennis-courts.webp") center 54%/cover no-repeat;
  }
  html body #top .retreatFacts div { color:var(--ink); }
  html body #top .retreatFacts span,
  html body #top .retreatFacts strong { color:var(--ink); }
}
