:root{color-scheme:light;--ink:#171717;--muted:#666;--line:#ddd}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:35px}body{margin:0;color:var(--ink);background:#fff;font-family:Arial,'Thonburi','Noto Sans Thai',sans-serif;font-size:16px;line-height:1.7}a{color:inherit;text-decoration:none}a:focus-visible{outline:3px solid #8a4e22;outline-offset:6px}header{max-width:1440px;margin:auto;padding:20px 5%;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}.brand{display:block;width:95px;height:76px;overflow:hidden}.brand img{width:100%;height:100%;object-fit:contain}nav{display:flex;gap:38px;align-items:center;font-size:15px}.contact-link{border-bottom:1px solid;padding:9px 0}.contact-link span{margin-left:20px}.hero,.section{max-width:1440px;margin:auto;padding:60px 5%}.hero{padding-top:46px;padding-bottom:22px}.hero-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:36px;margin-bottom:36px}.eyebrow{font-size:12px;letter-spacing:.16em;margin:0 0 16px;font-weight:600}h1{font-size:clamp(2.25rem,4.1vw,4rem);font-weight:500;line-height:1.42;letter-spacing:-.035em;margin:0}h2{font-size:clamp(1.8rem,3vw,2.8rem);font-weight:500;line-height:1.5;letter-spacing:-.02em;margin:0}h3{font-family:Georgia,serif;font-size:30px;line-height:1.3;margin:9px 0}p{margin:0 0 20px}.intro{padding-bottom:9px;color:#555}.text-link{font-size:14px;border-bottom:1px solid #999;padding-bottom:5px;display:inline-block}.cover{width:100%;display:block;height:auto}.cover-caption{display:flex;justify-content:space-between;margin:15px 0;font-size:12px;color:#666;letter-spacing:.08em}.section-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;margin-bottom:32px}.stories{display:grid;grid-template-columns:repeat(3,1fr);gap:30px}.stories img{display:block;width:100%;height:360px;object-fit:cover;transition:filter .2s}.stories a:hover img{filter:brightness(.94)}.stories .eyebrow{margin:20px 0 0;color:#666}.stories p:not(.eyebrow){color:#666;margin:12px 0 18px}.work{border-top:1px solid var(--line);display:grid;grid-template-columns:1fr 1fr;gap:80px;padding-top:72px;padding-bottom:80px}.work-title>p:not(.eyebrow){color:#666;margin:24px 0}.button{display:inline-block;padding:13px 25px;background:var(--ink);color:#fff;font-size:15px;border:1px solid var(--ink)}.services>div{display:flex;gap:28px;padding:24px 0;border-bottom:1px solid var(--line)}.services>div:first-child{padding-top:0}.services>div>span{font-size:12px;color:#666;padding-top:10px}.services h3{font-size:27px}.services p{color:#666;margin:10px 0 0}.contact{max-width:none;background:#181818;color:#fff;padding:65px max(5%,calc((100vw - 1296px)/2));position:relative}.contact h2{font-size:clamp(2.5rem,4.8vw,4.8rem);line-height:1.3;margin:20px 0 28px}.contact p:not(.eyebrow){color:#ccc}.contact-actions{display:flex;align-items:center;gap:28px;flex-wrap:wrap}.light{background:#fff;color:#111;border-color:#fff}footer{max-width:1440px;margin:auto;padding:26px 5%;display:flex;justify-content:space-between;align-items:center;gap:16px}footer>span{font:26px Georgia,serif}footer p{font-size:12px;letter-spacing:.15em;margin:0}footer a{font-size:14px}.skip{position:absolute;left:12px;top:-60px;background:white;z-index:10;padding:10px}.skip:focus{top:10px}@media(max-width:760px){header{padding:16px 5%}.brand{width:77px;height:63px}nav{gap:17px;font-size:14px}.contact-link span{display:none}.hero-heading{display:block}.intro{margin-top:22px}.hero,.section{padding:38px 5%}.cover{min-height:210px;object-fit:cover}.cover-caption{font-size:12px;display:block}.cover-caption span:last-child{display:block;letter-spacing:0;margin-top:5px}.section-heading{display:block}.section-heading>a{margin-top:18px}.stories{gap:32px;grid-template-columns:1fr}.stories img{height:390px}.stories h3{font-size:30px}.work{grid-template-columns:1fr;gap:36px}.contact{padding:44px 6%}footer{flex-wrap:wrap}footer p{display:none}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.stories img{transition:none}}
.proof{display:flex;gap:25px;align-items:center;padding:22px 0 20px;border-bottom:1px solid var(--line)}.proof strong{font-family:Georgia,serif;font-size:52px;font-weight:400;line-height:1.2}.proof strong span{font-size:32px}.proof p{margin:0;font-size:20px}.brand img{width:145%;height:145%;max-width:none;margin-left:-22%;margin-top:-17%}@media(max-width:760px){.proof strong{font-size:40px}.proof p{font-size:17px}}
.contact-details{margin:28px 0}.contact-details h3{font:500 22px Arial,'Thonburi',sans-serif;margin-bottom:14px}.contact-details>a{display:block;max-width:max-content;margin:7px 0;font-size:18px;overflow-wrap:anywhere}.contact-details>a:hover{text-decoration:underline}

@font-face{font-family:Kanit;src:url('assets/kanit-semibold.ttf') format('truetype');font-style:normal;font-weight:600;font-display:swap}
.hero-heading{display:block}.hero-heading h1{font-family:Kanit,Arial,sans-serif;font-weight:600;font-size:clamp(1rem,5.7vw,3.4rem);line-height:1.45;letter-spacing:0;white-space:nowrap}.hero-heading .intro{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;margin-top:22px;padding-bottom:0}.hero-heading .intro p{margin:0}@media(max-width:760px){.hero-heading .intro{display:block}.hero-heading .intro .text-link{margin-top:14px}}
@font-face{font-family:'Kanit Thai';src:url('assets/kanit-regular.ttf') format('truetype');font-style:normal;font-weight:400;font-display:swap;unicode-range:U+0E00-0E7F}
@font-face{font-family:'Kanit Thai';src:url('assets/kanit-medium.ttf') format('truetype');font-style:normal;font-weight:500;font-display:swap;unicode-range:U+0E00-0E7F}
@font-face{font-family:'Kanit Thai';src:url('assets/kanit-semibold.ttf') format('truetype');font-style:normal;font-weight:600 900;font-display:swap;unicode-range:U+0E00-0E7F}
body{font-family:'Kanit Thai',Arial,sans-serif}h3,footer>span,.proof strong{font-family:'Kanit Thai',Georgia,serif}.contact-details h3{font-family:'Kanit Thai',Arial,sans-serif}

header{gap:30px}header nav{gap:clamp(16px,2.1vw,32px);flex-wrap:wrap;justify-content:flex-end}header nav a{white-space:nowrap}.brand{flex-shrink:0}.hero-heading .intro p{font-size:clamp(1.4rem,2.6vw,2.2rem);font-weight:700;line-height:1.35;color:var(--ink)}@media(max-width:760px){header{align-items:flex-start;gap:20px}header nav{gap:10px 18px;font-size:14px}.contact-link{padding:0 0 3px}.hero-heading .intro p{font-size:clamp(1.35rem,5.8vw,1.8rem)}}

.hero-heading .intro p{font-family:Arial,sans-serif;font-weight:600;letter-spacing:.16em;font-size:clamp(1.15rem,2.25vw,1.9rem);line-height:1.5}
.map-section{border-top:1px solid var(--line);margin-top:28px}.map-intro{color:#666;margin:0;font-size:16px}.region-controls{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:30px}.region-controls button,.map-empty button,.map-more{font:inherit;font-size:14px;border:1px solid #d3d3d3;background:white;color:#333;padding:9px 18px;cursor:pointer;border-radius:2px}.region-controls button[aria-pressed=true]{background:#171717;color:white;border-color:#171717}.map-section button:focus-visible,.map-section select:focus-visible,.map-section g[role=button]:focus-visible{outline:3px solid #9a553c;outline-offset:3px}.map-layout{display:grid;grid-template-columns:1fr 1.05fr;gap:48px;align-items:start}.map-panel{background:#f6f6f5;border:1px solid #eee;padding:20px 22px 14px}.map-panel svg{display:block;width:100%;max-height:660px}.province{fill:#e3e1dc;stroke:#fafafa;stroke-width:.8;stroke-linejoin:round;cursor:pointer;transition:fill .15s}.province.region-active{fill:#b4b0a8}.province.province-active{fill:#272727}.province:hover{fill:#8d7567}.region-label{font-family:'Kanit Thai',sans-serif;font-size:14px;text-anchor:middle;fill:#504c46;pointer-events:none;paint-order:stroke;stroke:#f6f6f5;stroke-width:3px}.map-pin{cursor:pointer;fill:#a84f30;stroke:#a84f30}.map-pin .pin-ring{fill:white;stroke-width:2}.map-pin path{fill:none;stroke-width:1.2}.map-pin rect{fill:#171717;stroke:none}.map-pin text{fill:#fff;stroke:none;font-family:'Kanit Thai',sans-serif;font-size:13px;text-anchor:middle}.pin-muted{opacity:.45}.bangkok-pin{fill:#222;cursor:pointer}.bangkok-pin path{fill:none;stroke:#777;stroke-width:1}.bangkok-pin text{font-family:'Kanit Thai',sans-serif;font-size:13px;text-anchor:middle}.map-note{font-size:12px;color:#666;text-align:center;margin:12px 0 5px}.map-credit{font-size:12px;color:#777;text-align:center}.map-credit summary{cursor:pointer}.map-credit p{margin:8px 0}.map-credit a{text-decoration:underline}.map-results-heading{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:8px}.map-results-heading .eyebrow{margin-bottom:5px}.map-results-heading h3{font:500 28px 'Kanit Thai',Arial,sans-serif;margin:0}.province-filter{font-size:13px;color:#666}.province-filter select{display:block;max-width:190px;margin-top:5px;font:inherit;font-size:15px;color:#171717;border:1px solid #ccc;padding:9px 12px;background:white;border-radius:0}.map-count{font-size:14px;color:#777;margin-bottom:20px}.map-card{border:1px solid #ddd}.map-photo{display:block;overflow:hidden}.map-photo img{display:block;width:100%;height:auto}.map-photo:hover img{filter:brightness(.96)}.map-card-body{padding:24px}.map-tags{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:14px}.map-tags span{font-size:12px;border-bottom:1px solid #ccc;color:#666;padding-bottom:3px}.map-card h4{font:400 32px Georgia,serif;letter-spacing:.03em;margin:0 0 8px}.map-location{font-size:15px;margin-bottom:18px}.map-summary{font-size:16px;line-height:1.8;color:#555}.map-directions{font-size:14px;color:#777}.map-empty{border:1px dashed #ccc;padding:40px 24px}.map-empty h4{font:500 22px 'Kanit Thai',sans-serif;margin:0 0 12px}.map-empty p{color:#777}.map-empty button{margin-top:10px}.map-more{margin-top:20px}.map-more[hidden]{display:none}@media(max-width:760px){.map-layout{grid-template-columns:1fr;gap:28px}.map-panel svg{max-height:440px}.map-panel{padding:12px}.map-intro{margin-top:14px}.region-controls{gap:8px}.region-controls button{padding:8px 12px}.map-card-body{padding:20px}.map-results-heading h3{font-size:25px}.map-credit{font-size:12px}}

.brand{height:auto;overflow:visible}.brand-mark{display:block;width:95px;height:76px;overflow:hidden}.brand-site{display:block;width:85px;text-align:right;font:400 8px/1.4 Arial,sans-serif;letter-spacing:.025em;margin-top:-3px;color:#555}@media(max-width:760px){.brand-mark{width:77px;height:63px}.brand-site{width:69px;font-size:6.7px;margin-top:-2px}}
/* Compact introduction keeps the portfolio map in the first viewport. */
.hero{display:grid;grid-template-columns:minmax(0,1fr) 245px;gap:10px 30px;padding-top:22px;padding-bottom:20px;align-items:center}.hero-heading{grid-column:1;grid-row:1;margin:0}.hero-heading h1{font-size:clamp(1.25rem,3.05vw,2.4rem)}.hero-heading .eyebrow{font-size:10px;margin-bottom:8px}.hero-heading .intro{margin-top:10px}.hero-heading .intro p{font-size:clamp(.85rem,1.35vw,1.05rem);letter-spacing:.12em}.hero-heading .intro>.text-link{display:none}.hero>.cover{grid-column:2;grid-row:1 / 3;width:100%;height:auto;min-height:0;object-fit:contain}.hero>.proof{grid-column:1;grid-row:2;border:0;padding:0;gap:14px}.hero>.proof strong{font-size:30px}.hero>.proof strong span{font-size:22px}.hero>.proof p{font-size:15px}.hero>.cover-caption{display:none}.map-section{margin-top:0;padding-top:28px}.map-section>.section-heading{margin-bottom:18px}.map-section>.section-heading h2{font-size:30px}.map-section>.section-heading .eyebrow{margin-bottom:6px}.map-section .region-controls{margin-bottom:22px}@media(max-width:760px){.hero{grid-template-columns:1fr;gap:8px;padding-top:18px;padding-bottom:14px}.hero-heading h1{font-size:5.7vw}.hero-heading .eyebrow{font-size:9px;letter-spacing:.08em}.hero-heading .intro{margin-top:6px}.hero-heading .intro p{font-size:12px;letter-spacing:.08em}.hero>.cover{grid-column:1;grid-row:2;width:auto;max-width:100%;height:58px;justify-self:start}.hero>.proof{grid-row:3;gap:10px}.hero>.proof strong{font-size:24px}.hero>.proof p{font-size:14px}.map-section{padding-top:20px}.map-section>.section-heading h2{font-size:25px}.map-intro{font-size:14px;margin-top:6px}.map-section>.section-heading{margin-bottom:14px}}

.hero{grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:6px 24px}.hero-heading .intro{margin-top:0}.hero-heading h1{font-size:clamp(1.25rem,3.05vw,2.4rem);line-height:1.25}.hero>.cover{align-self:center}.map-card-actions{display:flex;flex-wrap:wrap;gap:14px 22px}.map-reel{display:block;margin:0 0 20px;padding:13px 16px;border:1px solid #ddd;font-size:14px}.map-reel:hover{background:#f5f5f3}@media(max-width:760px){.hero{grid-template-columns:1fr}.hero-heading h1{font-size:5.7vw}.hero>.cover{width:100%;height:auto;max-height:110px;object-fit:cover}.hero-heading .intro{margin-top:0}}
@media(min-width:761px){.map-layout{align-items:stretch}.map-panel{display:flex;flex-direction:column}.map-panel svg{flex:1;max-height:none;min-height:700px;height:100%;aspect-ratio:495/690}.map-panel .map-note{margin-top:auto}}
.journey,.social{border-top:1px solid var(--line)}.journey-note,#calendar-status{color:#777;font-size:14px}.calendar-toolbar{display:flex;gap:14px;align-items:center;flex-wrap:wrap;margin:24px 0}.calendar-toolbar button,.calendar-toolbar select{font:inherit;background:white;border:1px solid #ccc;padding:8px 14px;cursor:pointer}.calendar-toolbar button:disabled{opacity:.3;cursor:default}.calendar-weekdays,.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}.calendar-weekdays{background:#171717;color:white;text-align:center;padding:14px 0}.calendar-grid{border-left:1px solid #ddd;border-top:1px solid #ddd}.calendar-day,.calendar-pad{min-height:140px;border:0;border-bottom:1px solid #ddd;border-right:1px solid #ddd;background:#fafaf8;padding:12px;text-align:left;min-width:0}.calendar-day{font:inherit;cursor:pointer;display:flex;flex-direction:column;gap:7px}.calendar-day.has-reviews{background:#eee9e2}.calendar-day[aria-pressed=true]{background:#242424;color:#fff}.calendar-day strong{font-size:13px}.calendar-day small{font-size:12px;line-height:1.5;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.day-number{font-size:22px}.calendar-reviews{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;margin-top:30px}.calendar-reviews>h3{grid-column:1/-1;font-family:inherit;font-size:23px}.calendar-review{border:1px solid #ddd}.calendar-review img{width:100%;aspect-ratio:1.4;object-fit:cover;display:block}.calendar-review>div{padding:18px}.calendar-review h4{font-size:20px;margin:8px 0}.calendar-review p{font-size:14px;color:#666}.calendar-review small{color:#777}.calendar-review span{font-size:13px}.social-links{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin:28px 0 18px}.social-card{border-top:1px solid #333;padding:20px 0;display:flex;flex-direction:column}.social-card strong{font:500 52px Arial,sans-serif;margin:16px 0}.social-card small{color:#777}@media(max-width:760px){.calendar-day,.calendar-pad{min-height:86px;padding:6px}.calendar-day small{display:none}.calendar-day strong{font-size:10px}.day-number{font-size:18px}.calendar-reviews{grid-template-columns:1fr}.calendar-toolbar{gap:8px}.calendar-toolbar label{font-size:13px}.calendar-toolbar select{padding:7px}.social-links{grid-template-columns:1fr}.social-card strong{font-size:40px}.social-card{padding:16px 0}}

header .contact-link{background:#171717;color:#fff;border:1px solid #171717;padding:10px 17px;font-weight:600}header .contact-link:hover{background:#444}.hero-heading .eyebrow{letter-spacing:.1em;font-size:9px}

.hero>.proof p{margin:0;display:flex;align-items:baseline;gap:10px}.hero>.proof .review-total{font-family:Arial,"Kanit Thai",sans-serif;font-size:32px;font-weight:700;white-space:nowrap}@media(max-width:760px){.hero>.proof .review-total{font-size:27px}}
#bangkok-map[hidden]{display:none}#bangkok-map{display:flex;flex-direction:column;flex:1}#bangkok-map .eyebrow{margin:20px 0 10px}#bangkok-shapes{flex:1;display:flex;align-items:center}#bangkok-shapes svg{min-height:0;max-height:750px;aspect-ratio:600/640;height:auto}.district{fill:#e3e1dc;stroke:#fff;stroke-width:1;cursor:pointer}.district.has-reviews{fill:#a79b88}.district:hover,.district:focus{fill:#857159;outline:none}.district.province-active{fill:#252525}#country-back{align-self:flex-start;border:0;background:transparent;font:inherit;font-size:14px;cursor:pointer;border-bottom:1px solid #888}.map-card+.map-card{margin-top:24px}@media(min-width:761px){#map-cards{max-height:1000px;overflow-y:auto;padding-right:8px}.map-panel{min-height:850px}.map-panel>svg{min-height:0;height:auto;max-height:1000px}.map-layout{align-items:stretch}}@media(max-width:760px){#bangkok-shapes svg{height:auto;max-height:480px}}
/* Keep map outlines visible immediately while the panel follows review height. */
@media(min-width:761px){.map-panel>svg{flex:0 0 auto;width:100%;height:auto;max-height:none}.map-panel{min-height:0}.map-panel>.map-note{margin-top:auto}#bangkok-shapes{align-items:flex-start}.map-card h4{font-family:'Kanit Thai',Georgia,serif}}
.calendar-review>div>a{display:block;font-size:13px;margin-top:12px;text-decoration:underline;text-underline-offset:4px}.calendar-review>a{display:block}
.map-panel{justify-content:flex-start}.map-area-title{font:500 23px/1.4 'Kanit Thai',Arial,sans-serif;margin:0 0 18px}.map-panel>.map-note{margin-top:14px}#bangkok-map{flex:0 0 auto;border-top:1px solid #d6d3cd;margin-top:28px;padding-top:24px;scroll-margin-top:20px}#bangkok-map .map-area-title{order:-1}#country-back{font-size:12px;margin-bottom:18px}#bangkok-shapes{flex:0 0 auto}#bangkok-shapes svg{width:100%;height:auto;max-height:none}.map-results{align-self:start;position:sticky;top:24px}@media(max-width:760px){.map-results{position:static}.map-area-title{font-size:21px}#bangkok-shapes svg{max-height:440px}}
.map-card h4{font-family:'Kanit Thai',Georgia,serif}
.calendar-day-top{display:flex;align-items:center;gap:9px;flex-wrap:wrap}.calendar-day .day-number{width:32px;height:32px;border-radius:50%;background:#171717;color:#fff;display:inline-flex;align-items:center;justify-content:center;font-size:17px;line-height:1;flex-shrink:0}.calendar-day[aria-pressed=true] .day-number{background:#000;border:1px solid #777}.calendar-day-top strong{font-size:12px;font-weight:500;white-space:nowrap}.calendar-day-names{display:flex;flex-direction:column;gap:10px;margin-top:7px}.calendar-entry-name{font-size:12px;line-height:1.5;overflow-wrap:anywhere}.calendar-day{min-height:160px}@media(max-width:760px){.calendar-day-top{gap:4px}.calendar-day .day-number{width:24px;height:24px;font-size:13px}.calendar-day-top strong{font-size:9px}.calendar-entry-name{font-size:9px;line-height:1.45}.calendar-day-names{gap:9px;margin-top:4px}.calendar-day{min-height:120px;padding:5px 3px}}
.social-name{display:flex;align-items:center;gap:12px}.social-name img{width:28px;height:28px;object-fit:contain}.social-links{grid-template-columns:repeat(5,minmax(0,1fr))}.social-card strong{font-size:clamp(30px,3.7vw,49px)}@media(max-width:900px){.social-links{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:560px){.social-links{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.social-name{font-size:14px}.social-name img{width:24px;height:24px}.social-card strong{font-size:32px}}
.map-pin,.bangkok-pin{pointer-events:bounding-box}
@media(max-width:760px){.calendar-day-top{flex-wrap:nowrap;gap:3px}.calendar-day .day-number{width:20px;height:20px;font-size:12px}.calendar-day-top strong{font-size:8px}}
header nav a[aria-current=page]{border-bottom:2px solid #171717}.portfolio{padding-top:50px;min-height:65vh}.portfolio h1{font:600 clamp(28px,4vw,44px)/1.4 'Kanit Thai',Arial,sans-serif;letter-spacing:0}.portfolio-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:32px 25px;margin-top:30px}.portfolio-card{border:1px solid #ddd;display:flex;flex-direction:column}.portfolio-photo{display:block}.portfolio-photo img{display:block;width:100%;height:auto}.portfolio-card-body{padding:22px;display:flex;flex-direction:column;flex:1}.portfolio-card h2{font:500 25px/1.4 'Kanit Thai',Georgia,serif;margin:12px 0}.portfolio-card time{font-size:12px;color:#777}.portfolio-card p{font-size:15px;line-height:1.8;color:#555}.portfolio-location{margin:0 0 8px;font-weight:500}.portfolio-actions{display:flex;flex-direction:column;gap:10px;margin-top:auto;padding-top:15px;font-size:13px}.portfolio-actions a{text-decoration:underline;text-underline-offset:5px}.portfolio-pages{display:flex;justify-content:center;gap:10px;margin-top:40px}.portfolio-pages button{width:42px;height:42px;font:inherit;border:1px solid #ccc;background:#fff;cursor:pointer}.portfolio-pages button[aria-current=page]{background:#171717;color:#fff;border-color:#171717}#portfolio-count{font-size:14px;color:#777}@media(max-width:900px){.portfolio-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:560px){.portfolio-grid{grid-template-columns:1fr}.portfolio .section-heading .button{margin-top:18px}.portfolio{padding-top:32px}}
.map-back{font:inherit;font-size:13px;border:1px solid #ccc;background:white;padding:8px 12px;margin:0 0 16px;align-self:flex-start;cursor:pointer}.map-back[hidden]{display:none}.map-count-badge{cursor:pointer}.map-count-badge rect{fill:#171717;stroke:#fff;stroke-width:.6;vector-effect:non-scaling-stroke}.map-count-badge text{fill:white;font-family:'Kanit Thai',Arial,sans-serif;text-anchor:middle;pointer-events:none}.map-count-badge:hover rect,.map-count-badge:focus rect,.map-count-badge.selected-shop rect{fill:#8a4e22}.province,.district{vector-effect:non-scaling-stroke}.district-count{font-family:Arial,sans-serif;font-weight:700;text-anchor:middle;fill:#171717;paint-order:stroke;stroke:white;stroke-width:2px;pointer-events:none}.bkk-heading-row{order:-2;display:flex;align-items:flex-start;justify-content:space-between;gap:14px}.bkk-heading-row .map-area-title{font-size:20px;margin-bottom:10px;flex:1}#bkk-preview{font:400 12px/1.5 'Kanit Thai',Arial,sans-serif;color:#fff;background:#262626;padding:7px 10px;border-radius:3px;max-width:46%;min-height:32px}#bkk-selection{order:-1;margin:0 0 14px;font-size:13px;color:#666}#bangkok-shapes svg{aspect-ratio:1/1.1;height:auto;width:100%}#thailand-map{aspect-ratio:495/690}#district-shop-list{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:14px}.district-shop-button{font:inherit;font-size:13px;text-align:left;border:1px solid #ccc;background:#fff;padding:8px 10px;cursor:pointer}.district-shop-button[aria-pressed=true]{background:#171717;color:white}.map-card.is-selected{border:2px solid #171717}
.brand-cluster{display:flex;align-items:center;gap:22px;flex-shrink:0}#header-social{display:flex;gap:14px;align-items:center}#header-social a{display:flex;flex-direction:column;align-items:center;gap:5px;min-width:30px}#header-social img{width:21px;height:21px;object-fit:contain}#header-social span{font:500 10px/1.2 Arial,sans-serif;color:#666}#header-social a:hover span{color:#111}header nav{gap:clamp(12px,1.5vw,24px)}@media(max-width:1000px){header{flex-wrap:wrap;gap:16px}header nav{flex:1;min-width:400px}}@media(max-width:760px){header{gap:14px}.brand-cluster{width:100%;justify-content:space-between;gap:18px}#header-social{gap:19px;margin-right:3px}header nav{min-width:0;width:100%;justify-content:space-between;gap:10px 15px;font-size:13px}header .contact-link{padding:7px 12px}.brand-cluster .brand{width:77px}}

.country-heading-row{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-bottom:18px}.country-heading-row .map-area-title{font-size:20px;flex:1;margin:0}.country-heading-row #country-preview,#bkk-preview{font:500 16px/1.45 'Kanit Thai',Arial,sans-serif;background:#262626;color:white;border-radius:3px;padding:10px 13px;min-height:43px;max-width:50%;flex-shrink:0}.bkk-heading-row{align-items:flex-start;margin-bottom:12px}.bkk-heading-row .map-area-title{margin-bottom:0}@media(max-width:760px){.country-heading-row,.bkk-heading-row{gap:10px}.country-heading-row #country-preview,#bkk-preview{font-size:15px;padding:9px 10px;max-width:49%}.country-heading-row .map-area-title,.bkk-heading-row .map-area-title{font-size:19px}}
/* Compact month gallery: five reviews across on desktop. */
.calendar-reviews{grid-template-columns:repeat(5,minmax(0,1fr));gap:18px 14px}.calendar-review>div{padding:12px}.calendar-review h4{font:500 17px/1.4 'Kanit Thai',Arial,sans-serif;margin:7px 0}.calendar-review p{font-size:12px;line-height:1.5;margin-bottom:10px}.calendar-review small{font-size:11px}.calendar-review>div>a{font-size:12px;line-height:1.5;margin-top:9px}.calendar-review img{aspect-ratio:1.4;object-fit:cover}.calendar-reviews>h3{margin-bottom:0}@media(max-width:1000px){.calendar-reviews{grid-template-columns:repeat(4,minmax(0,1fr))}}@media(max-width:760px){.calendar-reviews{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px 12px}.calendar-review>div{padding:10px}.calendar-review h4{font-size:16px}.calendar-review>div>a{font-size:12px}}

.hero>.proof p{flex-wrap:wrap;gap:2px 10px}.proof-item{display:inline-flex;align-items:baseline;gap:7px;white-space:nowrap}.hero>.proof .review-total{font-size:clamp(22px,2.1vw,30px)}.proof-separator{font-size:16px;color:#777}.hero>.proof p{font-size:13px}@media(max-width:1100px) and (min-width:761px){.hero>.proof p{font-size:12px;gap:2px 7px}.proof-item{gap:5px}.hero>.proof .review-total{font-size:22px}}@media(max-width:760px){.hero>.proof p{font-size:12px;gap:2px 8px}.hero>.proof .review-total{font-size:22px}.proof-item{gap:5px}}
.hero>.proof .review-total{font-size:32px}@media(max-width:760px){.hero>.proof .review-total{font-size:27px}}

#country-shop-list{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}#country-shop-list:empty{display:none}

.contact-actions .inbox-primary{font-weight:600;padding:16px 24px;font-size:18px;display:inline-flex;align-items:center;justify-content:center;gap:10px;border-radius:2px}.contact-actions .inbox-primary::before{content:'';width:22px;height:22px;background:url('assets/social-facebook.svg') center/contain no-repeat;flex-shrink:0}.contact-actions .inbox-primary:hover{background:#e8e8e8}.contact-actions .text-link{font-size:14px;color:#ddd}@media(max-width:760px){.contact-actions .inbox-primary{width:100%;font-size:17px}.contact-actions{gap:18px 24px}}
.hero>.proof p{font-size:18px;line-height:1.4;gap:4px 10px}.proof-item{gap:8px}.proof-separator{font-size:18px}@media(max-width:1100px) and (min-width:761px){.hero>.proof p{font-size:17px}}@media(max-width:760px){.hero>.proof p{font-size:17px}.proof-item{gap:7px}}

.mobile-map-tools{display:none}@media(max-width:760px){.mobile-map-tools{display:flex;position:sticky;top:0;z-index:5;gap:10px;align-items:flex-end;background:#f6f6f5;padding:10px 0 14px;margin-bottom:14px;box-shadow:0 1px #ddd}.mobile-map-tools label{flex:1;min-width:0;font-size:13px}.mobile-map-tools label span{display:block;margin-bottom:5px}.mobile-map-tools select{font:inherit;font-size:16px;min-height:44px;width:100%;background:white;border:1px solid #bbb;padding:8px}.mobile-map-tools button{font:inherit;font-size:13px;min-height:44px;padding:8px 11px;background:#171717;color:white;border:1px solid #171717;cursor:pointer}.map-results .province-filter{display:none}.region-controls button,.map-back,.district-shop-button{min-height:44px}.district-shop-button{font-size:15px}.map-panel{overflow:visible}.map-count-badge{touch-action:manipulation}.map-results{scroll-margin-top:15px}}
.footer-links{display:flex;gap:12px 22px;flex-wrap:wrap;justify-content:flex-end}.footer-links a{font-size:13px;color:#555}.service-page{max-width:1120px}.service-page h1,.review-detail h1{font-family:'Kanit Thai',Arial,sans-serif;font-size:clamp(29px,4vw,45px);font-weight:600;letter-spacing:0;line-height:1.4;margin:12px 0 24px}.service-intro{max-width:920px;font-size:18px;line-height:1.85;color:#555}.service-grid{display:grid;grid-template-columns:1fr 1fr;gap:30px 45px;margin:38px 0 48px}.service-grid article{padding:24px 0;border-top:1px solid #ccc}.service-grid h2{font-size:25px;margin-bottom:16px}.service-grid p{color:#555}.service-secondary{display:block;width:max-content;max-width:100%;margin-top:18px;text-decoration:underline;text-underline-offset:5px;font-size:15px}.review-detail{max-width:1060px}.review-detail>.eyebrow{margin-top:30px}.review-cover{display:block;max-width:100%;width:auto;height:auto;max-height:900px;margin:28px auto;object-fit:contain}.review-description{font-size:20px;line-height:1.9;max-width:830px;margin:30px 0}.review-meta,.review-source-note{font-size:14px;color:#777}.review-links{display:flex;flex-wrap:wrap;gap:18px 24px;align-items:center;margin:25px 0}.portfolio-pages a{display:flex;align-items:center;justify-content:center;min-width:44px;min-height:44px;border:1px solid #ccc}.portfolio-pages a[aria-current=page]{background:#171717;color:white}.archive-grid{grid-template-columns:repeat(5,minmax(0,1fr));gap:20px 14px}.archive-grid .portfolio-card-body{padding:12px}.archive-grid .portfolio-card h2{font-size:17px}.archive-grid .portfolio-card p{font-size:12px}.archive-grid .portfolio-photo img{height:160px;object-fit:contain;background:#f7f7f7}.archive-grid .portfolio-actions{font-size:12px}.calendar-review img{object-fit:contain;background:#f7f7f7}.map-card h4 a,.calendar-review h4 a{border:0;text-decoration:none}.map-card h4 a:hover,.calendar-review h4 a:hover{text-decoration:underline}.calendar-review>div>h4>a{font-size:inherit}.calendar-archive-link{display:inline-block;margin-top:8px;font-size:14px;text-decoration:underline;text-underline-offset:4px}@media(max-width:760px){.service-grid{grid-template-columns:1fr;gap:12px}.service-intro{font-size:16px}.review-description{font-size:17px}.footer-links{justify-content:flex-start}.archive-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.archive-grid .portfolio-photo img{height:145px}.review-cover{max-height:none}}

/* Venue categories stay within the map, leaving primary navigation compact. */
.venue-filter{display:flex;align-items:center;flex-wrap:wrap;gap:10px 14px;padding:0 0 24px}.venue-filter label{font-weight:500;font-size:15px}.venue-filter select{font:inherit;font-size:16px;min-height:44px;min-width:245px;max-width:100%;border:1px solid #bbb;border-radius:3px;background:#fff;padding:9px 36px 9px 13px}.venue-filter>button{font:inherit;font-size:13px;min-height:44px;padding:8px 12px;border:0;background:transparent;text-decoration:underline;cursor:pointer}.venue-filter>button[hidden]{display:none}#venue-filter-status{font-size:13px;color:#666}.map-tags{display:flex;flex-wrap:wrap;gap:8px}.map-tags .venue-tag{font:inherit;font-size:12px;letter-spacing:0;min-height:36px;padding:6px 11px;border:1px solid #ccc;background:#f7f7f5;border-radius:30px;cursor:pointer}.map-tags .venue-tag:hover,.map-tags .venue-tag[aria-pressed=true]{background:#171717;color:white;border-color:#171717}.map-review-date{display:block;font-size:12px;color:#777;margin:0 0 10px}.venue-filter select:focus-visible,.venue-tag:focus-visible{outline:2px solid #171717;outline-offset:3px}@media(max-width:760px){.venue-filter{gap:8px 10px;padding-bottom:20px}.venue-filter select{flex:1;min-width:0;width:calc(100% - 75px)}#venue-filter-status{flex-basis:100%}.map-tags .venue-tag{min-height:44px;font-size:13px}}

.review-engagement{display:flex;flex-wrap:wrap;gap:17px;align-items:center;padding:11px 16px;border-bottom:1px solid #e5e5e5;font:500 13px/1.4 Arial,'Kanit Thai',sans-serif;color:#555}.review-engagement span{display:inline-flex;align-items:center;gap:6px}.review-engagement svg{width:17px;height:17px;flex-shrink:0}.review-engagement:hover{color:#111;background:#f6f6f4}.calendar-review>.review-engagement{font-size:12px;padding:10px;gap:9px}.calendar-review>.review-engagement svg{width:15px;height:15px}.estate-brand-filters{display:flex;flex-wrap:wrap;gap:10px;margin:22px 0}.estate-brand-filters button{font:inherit;font-size:15px;padding:10px 18px;min-height:44px;border:1px solid #ccc;border-radius:30px;background:#fff;cursor:pointer}.estate-brand-filters button[aria-pressed=true]{background:#171717;color:#fff;border-color:#171717}

/* One map preview; all matching reviews live in a paginated five-column gallery. */
#map-cards{max-height:none;overflow:visible;padding-right:0}.map-preview-label{font-size:13px;color:#777;margin:0 0 12px}.map-more{display:block;width:100%;margin-top:18px;background:#171717;color:white;border-color:#171717}.map-more[hidden]{display:none}#map-grid-results{margin-top:38px;border-top:1px solid #ddd;padding-top:28px;scroll-margin-top:20px}#map-grid-title{font:500 25px/1.45 'Kanit Thai',Arial,sans-serif;margin:0 0 8px}#map-grid-note{font-size:13px;color:#777;margin:0}#map-review-grid{margin-top:20px}#map-review-grid .map-grid-body{padding:12px}.map-grid-card h4{font:500 17px/1.4 'Kanit Thai',Arial,sans-serif;margin:8px 0}.map-grid-card .map-location{font-size:12px;line-height:1.5}.map-grid-card .map-review-date{font-size:10px}.map-grid-card .map-card-actions{display:flex;flex-direction:column;align-items:flex-start;gap:10px}.map-grid-card .map-card-actions a{font-size:12px}.map-grid-card .map-tags{gap:5px}.map-grid-card .venue-tag{font-size:10px;padding:5px 7px;min-height:30px}.map-grid-preview{font:inherit;font-size:12px;min-height:36px;padding:6px 10px;border:1px solid #ccc;background:#fff;cursor:pointer}.map-grid-card .map-reel{font-size:12px;padding:8px;margin:10px 0}.map-grid-empty{grid-column:1/-1}#map-review-pages:empty{display:none}.map-panel #thailand-map{min-height:0;height:auto;max-height:570px;flex:none}.map-panel #bangkok-shapes svg{min-height:0;max-height:510px}.map-layout{align-items:start}.map-grid-photo{display:block}.map-grid-photo img{display:block;width:100%;aspect-ratio:1.2;object-fit:contain;height:auto}@media(max-width:760px){#map-grid-title{font-size:22px}.map-grid-card .venue-tag,.map-grid-preview{min-height:44px}.map-results{margin-top:4px}.map-panel #thailand-map{max-height:460px}.map-panel #bangkok-shapes svg{max-height:420px}}

/* Combined social audience, kept compact below the experience line. */
.hero>.proof{flex-direction:column;align-items:flex-start;gap:0}
.hero .proof .follower-proof{display:block;margin:4px 0 0;font-size:18px;line-height:1.4}.hero .proof .follower-proof strong{font-family:Arial,"Kanit Thai",sans-serif;font-size:24px;font-weight:700;white-space:nowrap}@media(max-width:600px){.hero .proof .follower-proof{font-size:16px;margin-top:5px}.hero .proof .follower-proof strong{font-size:22px}}

.calendar-result-pages{grid-column:1/-1;flex-wrap:wrap;margin-top:12px}.calendar-result-pages button{min-width:44px;min-height:44px}#calendar-reviews{scroll-margin-top:24px}

.venue-status-badge{display:block;width:fit-content;max-width:100%;padding:7px 11px;margin:10px 0;border:1px solid #b99452;border-radius:5px;background:#fff2d9;color:#614614!important;font-family:"Kanit Thai",Arial,sans-serif;font-size:14px!important;font-weight:500;line-height:1.5}.calendar-review .venue-status-badge{font-size:12px!important;padding:6px 8px}
/* Keep social count groups evenly spaced even inside compact card links. */
.map-card>.review-engagement,.portfolio-card>.review-engagement,.calendar-review>.review-engagement{display:flex;align-items:center;justify-content:flex-start;column-gap:20px;row-gap:10px;font-variant-numeric:tabular-nums}
.review-engagement>span{display:inline-flex;align-items:center;gap:6px;white-space:nowrap;font:inherit;line-height:1.3}
.review-engagement>span>svg{display:block;flex:0 0 17px;width:17px;height:17px;margin:0}
.calendar-review>.review-engagement{column-gap:14px;padding:11px 10px}
.calendar-review>.review-engagement>span>svg{flex-basis:15px;width:15px;height:15px}

#map-more{margin:16px 0 0}.map-more{min-height:44px;font:inherit;font-size:14px;cursor:pointer;padding:12px 16px}#map-more-bottom{margin:24px 0 0}

.map-card h4{font:600 30px/1.35 'Kanit Thai',Arial,sans-serif;margin:0 0 14px;letter-spacing:0}.calendar-review h4,.map-grid-card h4{font:600 18px/1.4 'Kanit Thai',Arial,sans-serif;margin:0 0 12px}.portfolio-card h2{font-weight:600}.review-tags{margin:0 0 13px;gap:6px}.review-tags .location-tag{background:#f1eee8;border-color:#e3ded3;color:#675b48}.review-tags span.venue-tag{display:inline-flex;align-items:center;line-height:1.3;border:1px solid #ddd;border-radius:30px;padding:6px 9px}.review-short-description{font-size:14px;line-height:1.55;color:#555;margin:8px 0 16px}.calendar-review .review-short-description{font-size:12px;margin:8px 0 14px}.calendar-review time.map-review-date{display:block;font-size:11px;color:#777}.calendar-review .review-tags{gap:5px}.calendar-review .review-tags span.venue-tag{font-size:10px;min-height:30px;padding:5px 7px}.portfolio-card .review-short-description{font-size:15px}.calendar-review .review-short-description{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}

.review-tags a.venue-tag{display:inline-flex;align-items:center;line-height:1.3;text-decoration:none}.review-tags a.location-tag:hover{background:#171717;color:#fff;border-color:#171717}.calendar-review .review-tags a.venue-tag{font-size:10px;min-height:30px;padding:5px 7px}@media(max-width:760px){.calendar-review .review-tags a.venue-tag{min-height:44px}}
.map-card .review-short-description{font-size:18px;font-weight:600;line-height:1.5;color:#171717;margin:8px 0}.map-card .map-location{font-size:13px;font-weight:400;line-height:1.5;color:#666;margin:0 0 18px}

/* Keep the map footer compact; empty shop menus must not reserve space. */
#district-shop-list:empty,#country-shop-list:empty{display:none}
#bangkok-map .map-note{margin:6px 0 3px;line-height:1.4}
#bangkok-map .map-credit{display:block;margin:0;line-height:1.4}
#map-more-bottom{margin-top:12px}
.calendar-review .review-short-description{font-weight:600;color:#171717}

/* Keep map instructions legible beside the review picker. */
.map-panel .map-note{font-size:20px;font-weight:600;line-height:1.45;color:#222;margin:14px 0 10px} @media(max-width:760px){.map-panel .map-note{font-size:18px}}

.latest-shop-heading{flex-basis:100%;margin:8px 0 5px;font-size:20px;font-weight:600;color:#222}.map-panel .area-shop-more{flex-basis:100%;display:block;text-align:center;background:#171717;color:white;border-color:#171717;padding:14px 18px;font-weight:600;font-size:18px;text-decoration:none}.map-panel .area-shop-more:hover{background:#333}

/* Keep each review title and its short description together. */
.map-card h4,.calendar-review h4{margin-bottom:6px}
.map-card h4 + .review-short-description,.calendar-review h4 + .review-short-description{margin-top:0;margin-bottom:12px}

/* Show one geographic view at a time in the same map panel. */
#country-map-view[hidden],#bangkok-map[hidden]{display:none}
#bangkok-map{border-top:0;margin-top:0;padding-top:0}
.bangkok-region-label text{font-weight:600}
.bangkok-region-label rect{fill:#8a4e22;stroke-width:1.2}
.bangkok-region-label:hover rect,.bangkok-region-label:focus rect{fill:#603515}

/* Two compact previews share one row beside the map. */
#map-cards.latest-preview-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
#map-cards.latest-preview-grid .map-grid-body{padding:12px}
#map-cards.latest-preview-grid h4{font-size:17px;line-height:1.35;margin:0 0 6px}
#map-cards.latest-preview-grid .review-short-description{font-size:12px;line-height:1.45;margin:0 0 10px}
#map-cards.latest-preview-grid .review-tags{gap:4px;margin-bottom:9px}
#map-cards.latest-preview-grid .review-tags a{font-size:10px;min-height:26px;padding:4px 7px}
#map-cards.latest-preview-grid .map-review-date{font-size:10px;margin:0 0 10px}
#map-cards.latest-preview-grid .map-card-actions{gap:7px}
#map-cards.latest-preview-grid .map-card-actions a{font-size:11px}
#map-cards.latest-preview-grid .map-reel{font-size:11px;padding:6px;margin:6px 0}
@media(min-width:761px){
 .map-layout{align-items:start}.map-results{position:static}
 #country-map-view{display:flex;flex-direction:column}
 .map-panel #thailand-map{flex:none;height:auto;min-height:0;max-height:570px}
 #bangkok-map,#bangkok-shapes{flex:none}
 .map-panel #bangkok-shapes svg{flex:none;height:auto;max-height:510px;min-height:0}
 #country-map-view[hidden],#bangkok-map[hidden]{display:none}
}
.map-preview-label{font-size:clamp(21px,2vw,26px);font-weight:600;line-height:1.4;color:#171717;margin:0 0 16px}
@media(max-width:760px){#map-cards.latest-preview-grid{gap:10px}#map-cards.latest-preview-grid h4{font-size:16px}#map-cards.latest-preview-grid .map-grid-body{padding:10px}#map-cards.latest-preview-grid .review-tags a{min-height:36px}}

#bkk-map-note:empty{display:none}

.province-label-guides{pointer-events:none}.province-label-guides line{stroke:#666;stroke-width:.8;vector-effect:non-scaling-stroke}.province-label-guides circle{fill:#444;stroke:#fff;stroke-width:.5;vector-effect:non-scaling-stroke}

/* Match the category line to the width of the Thai headline. */
.hero-heading .eyebrow{font-size:clamp(11px,1.14vw,14.2px);font-weight:600;letter-spacing:.1em;line-height:1.45}
@media(max-width:760px){.hero-heading .eyebrow{font-size:clamp(9px,2.12vw,16px);letter-spacing:.05em;white-space:nowrap}}

/* A verified missing Maps result is a status, not a link or confirmed closure. */
.review-tags .venue-tag.maps-unavailable-tag,.review-tags .venue-tag.maps-unavailable-tag:hover{background:#171717;color:#fff;border-color:#171717;cursor:default;line-height:1.4}
.calendar-review .review-tags .maps-unavailable-tag{font-size:10px;min-height:30px;padding:5px 7px}
@media(max-width:760px){.calendar-review .review-tags .maps-unavailable-tag{min-height:44px}}
