*{box-sizing:border-box}html,body{margin:0;height:100%;width:100%}body{height:100dvh;display:grid;grid-template-rows:78px minmax(0,1fr) 38px;background:#f6f0e4;color:#293827;font-family:Arial,Tahoma,sans-serif;overflow:hidden;padding:0 22px}a{color:inherit;text-decoration:none}header,footer{display:flex;align-items:center;justify-content:space-between;gap:12px}.brand{font:italic bold 26px Georgia,serif;letter-spacing:-1px}.brand span{display:block;font:12px Arial;margin-top:3px;letter-spacing:0}nav{display:flex;gap:26px;font-size:14px}nav a:hover,.back:hover{text-decoration:underline}footer{font-size:11px;color:#676b57}.mosaic{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));grid-template-rows:repeat(3,minmax(0,1fr));gap:10px;grid-template-areas:"title title p1 p1 desc desc" "p2 addr addr hours p3 p3" "p2 contact fb ig line apt"}.tile{min-width:0;min-height:0;border-radius:5px;overflow:hidden;padding:clamp(12px,1.8vw,30px);display:flex;flex-direction:column;justify-content:space-between;margin:0}.tile small{font-size:11px;letter-spacing:1px}.tile p{margin:10px 0;line-height:1.55;font-size:clamp(16px,1.6vw,24px)}.tile span{font-size:14px;line-height:1.55}.title{grid-area:title;background:#304331;color:#f5edcc}.title h1{font:normal clamp(38px,5.6vw,84px)/.9 Georgia,serif;letter-spacing:-3px;margin:8px 0}.title h1 span{display:block;font:16px Arial;letter-spacing:0;margin-top:15px}.food{padding:0;position:relative}.food img,.detail-photo img{width:100%;height:100%;object-fit:cover}.food figcaption{position:absolute;bottom:14px;left:16px;color:white;text-shadow:0 1px 4px #000;font-size:14px}.p1{grid-area:p1}.p2{grid-area:p2}.p3{grid-area:p3}.description{grid-area:desc;background:#eac56c}.description p{font-size:clamp(22px,2.5vw,37px);line-height:1.35}.address{grid-area:addr;background:#e4e5d5}.hours{grid-area:hours;background:#ad4d30;color:#fff5e4}.hours p{font:clamp(27px,3.5vw,52px)/1 Georgia,serif}.hours p span{font:inherit;font-size:.65em}.contact{grid-area:contact;background:#e8c2a3}.contact p{font-size:clamp(16px,1.6vw,23px);white-space:nowrap}.facebook{grid-area:fb;background:#d9e1e8}.instagram{grid-area:ig;background:#e5ccbd}.line{grid-area:line;background:#d6dfac}.apartments{grid-area:apt;background:#354635;color:#f4edd7}.social>span{font:clamp(18px,2vw,28px) Georgia,serif}.social small{font-size:11px;letter-spacing:0}a.tile{transition:filter .2s}a.tile:hover{filter:brightness(.93)}a:focus-visible{outline:3px solid #9b4329;outline-offset:-4px}.detail{display:grid;grid-template-columns:1.2fr 1fr;min-height:0;gap:12px}.detail-copy{padding:clamp(20px,4vw,65px);background:#e9e7d7;border-radius:5px;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:15px}.back{font-size:13px;margin-bottom:auto}.detail-copy>small{font-size:11px;letter-spacing:2px}.detail h1{font:clamp(38px,5vw,70px)/1.1 Georgia,Tahoma,serif;letter-spacing:-2px;margin:0}.detail h1 span{display:block;font:20px Arial;letter-spacing:0;margin-top:14px}.detail p{font-size:16px;line-height:1.65;margin:0}.big-link{font:32px Georgia,serif}.email{font-size:16px;overflow-wrap:anywhere}.info{display:flex;gap:34px}.actions{display:flex;flex-wrap:wrap;gap:8px;margin:8px 0}.actions a{border:1px solid #56634b;border-radius:30px;padding:10px 16px;font-size:14px}.actions a:hover{background:#304331;color:white}.detail-photo{margin:0;min-height:0;overflow:hidden;border-radius:5px}.apartment-panel{background:#304331;color:#f0e6c4;display:flex;flex-direction:column;justify-content:space-between;padding:5vw;border-radius:5px}.apartment-panel>span{font:clamp(70px,8vw,130px)/.9 Georgia,serif;letter-spacing:-5px}.apartment-panel p{font-size:24px}.mosaic.variant{grid-template-areas:"title title p3 p3 desc desc" "p2 addr addr hours p1 p1" "p2 contact fb line ig apt"}@media(max-width:700px){body{padding:0 10px;grid-template-rows:66px minmax(0,1fr) 30px}.brand{font-size:22px}nav{gap:14px;font-size:12px}.mosaic,.mosaic.variant{gap:6px;grid-template-columns:repeat(3,minmax(0,1fr));grid-template-rows:1.35fr 1.2fr 1fr .72fr .72fr;grid-template-areas:"title title p1" "desc desc p2" "addr addr hours" "contact contact apt" "fb ig line"}.mosaic .p3{display:none}.tile{padding:11px}.title h1{font-size:40px;line-height:.85;letter-spacing:-1px}.title h1 span{font-size:14px;margin-top:9px}.tile small{font-size:9px;letter-spacing:.4px}.description{flex-direction:row;flex-wrap:wrap;align-items:center;gap:4px}.description small{width:100%}.description p{font-size:19px;margin:0}.description>span{font-size:12px}.address p{font-size:13px;margin:0;line-height:1.5}.address>span{font-size:11px}.hours p{font-size:30px;margin:0}.social>span{font-size:18px}.social small{font-size:9px}.contact{flex-direction:row;align-items:center;flex-wrap:wrap;gap:2px}.contact small{width:100%}.contact p{font-size:18px;margin:0}.contact>span{font-size:12px}.food{padding:0}.food figcaption{display:none}footer{font-size:9px}.detail{grid-template-columns:1fr}.detail-copy{padding:24px;gap:16px}.detail-photo,.apartment-panel{display:none}.detail h1{font-size:42px}.info{gap:20px}.detail p{font-size:14px}.back{margin-bottom:10px}}@media(max-height:550px) and (min-width:701px){body{grid-template-rows:52px minmax(0,1fr) 25px}.tile{padding:10px}.title h1{font-size:40px}.title h1 span{margin-top:7px;font-size:13px}.description p{font-size:21px;margin:0}.tile p{font-size:16px;margin:0}.hours p{font-size:30px}.detail-copy{padding:18px;gap:8px}.detail h1{font-size:32px}.detail h1 span{font-size:16px}.detail p{font-size:13px}.back{margin-bottom:0}}@media(max-height:650px) and (max-width:700px){.tile{padding:7px}.food{padding:0}.title h1{font-size:32px}.tile small{font-size:8px}.description p{font-size:16px}.description>span{font-size:11px}.title h1 span{font-size:12px}.hours p{font-size:24px}.social>span{font-size:16px}.social small{font-size:8px}.detail-copy{gap:10px;padding:18px}.detail h1{font-size:32px}.detail p{font-size:13px}}@media(min-width:701px){.title h1{font-size:min(5.6vw,7.3vh,74px)}}
@media(max-height:550px) and (min-width:701px){.mosaic,.mosaic.variant{grid-template-columns:repeat(8,minmax(0,1fr));grid-template-rows:repeat(2,minmax(0,1fr));grid-template-areas:"title title p1 desc desc addr addr hours" "p2 contact contact fb ig line apt p3";gap:6px}.tile small{font-size:9px;letter-spacing:0}.title h1{font-size:34px}.title h1 span{font-size:12px}.description p{font-size:20px}.description>span,.address p{font-size:12px}.address>span{font-size:11px}.social>span{font-size:18px}.social small{font-size:10px}.detail{grid-template-columns:1fr}.detail-photo,.apartment-panel{display:none}.detail-copy{display:grid;grid-template-columns:1fr 1fr;align-content:center;gap:10px 28px}.detail-copy>small{display:none}.detail-copy .back{grid-column:1/-1}.detail-copy .info{grid-column:2;grid-row:2/5}.detail-copy .actions{grid-column:1/-1;margin:0}.detail-copy h1{font-size:28px}.detail-copy h1 span{font-size:14px;margin-top:6px}.big-link{font-size:24px}.apartment-detail .detail-copy{display:flex}}

/* Pastel palette shared across every page. */
body{background:#faf6f5;color:#42434e}.title{background:#ded5ec;color:#41384f}.description{background:#f6e6b9}.address{background:#dceae5}.hours{background:#f0cfc8;color:#694840}.contact{background:#f3ddce}.facebook{background:#d9e7f4}.instagram{background:#efdaea}.line{background:#e1ebce}.apartments{background:#dcdcf1;color:#45435d}.detail-copy{background:#eee4ed}.apartment-panel{background:#ded5ec;color:#51425f}.actions a{border-color:#99909e}.actions a:hover{background:#ded5ec;color:#41384f}footer{color:#757080}a:focus-visible{outline-color:#785b8b}
/* Square-unit mosaic. Photo rectangles share the same grid units. */
.mosaic,.mosaic.variant{grid-template-areas:none;align-self:center;justify-self:center;max-width:100%}
.mosaic .tile{display:flex;flex-direction:column;align-items:stretch;flex-wrap:nowrap;gap:3px;padding:calc(var(--unit)*.07);border-radius:0;font-size:var(--tile-font)}
.mosaic .food{padding:0;display:block}.mosaic .food img{display:block}
.mosaic .tile small{font-size:clamp(8px,calc(var(--unit)*.05),12px);letter-spacing:0;line-height:1.25}
.mosaic .tile p{font-size:var(--tile-font);line-height:1.35;margin:0;white-space:normal}
.mosaic .tile>span{font-size:clamp(9px,calc(var(--unit)*.064),16px);line-height:1.35}
.mosaic .title h1{font-size:calc(var(--unit)*.27);line-height:.94;letter-spacing:-1px;margin:0}
.mosaic .title h1 span{font-size:calc(var(--unit)*.09);margin-top:5px}
.mosaic .description p{font-size:calc(var(--unit)*.105)}
.mosaic .description>span{font-size:calc(var(--unit)*.066)}
.mosaic .address p{font-size:calc(var(--unit)*.075)}
.mosaic .hours p{font-size:calc(var(--unit)*.25);line-height:1.05}.mosaic .hours p span{font-size:.7em}
.mosaic .social>span{font-size:calc(var(--unit)*.125)}
.mosaic .contact p{font-size:calc(var(--unit)*.115)}
.mosaic .food figcaption{display:none}

/* Homepage copy and type refinements. */
.mosaic .title h1{font-size:calc(var(--unit)*.255);white-space:nowrap;line-height:1.05;letter-spacing:-.6px}
.mosaic .title h1 span{font-size:calc(var(--unit)*.115);margin-top:10px;line-height:1.35}
.mosaic .hours p{font-size:calc(var(--unit)*.205);line-height:1.25}
.mosaic .hours p span{display:block;font:inherit;white-space:nowrap}
.mosaic .social small{font-size:clamp(10px,calc(var(--unit)*.07),16px);line-height:1.4}
.mosaic .contact p{margin-top:auto;margin-bottom:auto}

/* Consistent tile labels and updated rental/phone hierarchy. */
nav{font-size:20px;font-weight:600}
.mosaic .tile small,.mosaic .tile>span:not(.apartments>span):not(.social>span){font-size:clamp(11px,calc(var(--unit)*.08),20px);line-height:1.3}
.mosaic .social small{font-size:clamp(11px,calc(var(--unit)*.08),20px);line-height:1.3}
.mosaic .hours p{font-size:calc(var(--unit)*.21);line-height:1.08}
.mosaic .hours p .until{font-size:.48em;line-height:1.2;margin:2px 0}
.mosaic .apartments>span{font-family:Arial,Tahoma,sans-serif;font-size:calc(var(--unit)*.205);font-weight:700;line-height:1.2;overflow-wrap:anywhere}
.mosaic .contact p{margin-top:auto;margin-bottom:0;font-size:calc(var(--unit)*.125);line-height:1.15}
@media(max-width:700px){nav{font-size:18px}}
@media(max-width:360px),(max-height:450px){
.mosaic .tile:not(.food){padding:calc(var(--unit)*.05);gap:2px}
.mosaic .tile small,.mosaic .tile>span:not(.apartments>span):not(.social>span),.mosaic .social small{font-size:10px;line-height:1.12}
.mosaic .apartments>span{font-size:calc(var(--unit)*.185);line-height:1.08}
.mosaic .description p{line-height:1.15}
.mosaic .hours p{font-size:calc(var(--unit)*.20);line-height:1}
.mosaic .hours p .until{margin:1px 0;line-height:1}
}

/* Inset border preserves the exact square grid dimensions. */
.mosaic .apartments{box-shadow:inset 0 0 0 3px var(--rental-border,#9278ae)}
.mosaic .apartments:hover{box-shadow:inset 0 0 0 4px var(--rental-border,#9278ae)}

/* Full-photo preview, independent of the mosaic crop. */
.mosaic .food{cursor:zoom-in}
.mosaic .food:focus-visible{outline:4px solid #785b8b;outline-offset:-5px}
.photo-lightbox{border:0;background:transparent;color:white;padding:48px 16px 16px;width:min(960px,96vw);max-width:96vw;max-height:94dvh;overflow:auto;text-align:center}
.photo-lightbox::backdrop{background:rgba(25,21,30,.86);backdrop-filter:blur(5px)}
.photo-lightbox img{display:block;max-width:100%;width:auto;height:auto;max-height:calc(94dvh - 125px);object-fit:contain;margin:auto;border-radius:6px}
.photo-lightbox p{font:16px/1.5 Arial,Tahoma,sans-serif;margin:12px 0 0}
.lightbox-close{position:absolute;right:12px;top:0;width:44px;height:44px;border:1px solid #ffffff80;border-radius:50%;background:#35313c;color:white;font:32px/1 Arial;cursor:pointer}
.lightbox-close:focus-visible{outline:3px solid white;outline-offset:2px}

/* Selected site typeface. */
body,.brand,.brand span,.title h1,.title h1 span,.hours p,.social>span,.detail h1,.detail h1 span,.big-link,.apartment-panel>span,.mosaic .apartments>span,.photo-lightbox p,.lightbox-close{font-family:'Bai Jamjuree',sans-serif}

body.homepage{grid-template-rows:minmax(0,1fr);padding:16px}
@media(max-width:700px){body.homepage{padding:10px}}

.mosaic.compact .tile:not(.food){padding:calc(var(--unit)*.05);gap:1px}
.mosaic.compact .tile small,.mosaic.compact .social small,.mosaic.compact .tile>span:not(.apartments>span):not(.social>span){font-size:10px;line-height:1.15}
.mosaic.compact .hours p{font-size:calc(var(--unit)*.18)}
.mosaic.compact .description p{font-size:calc(var(--unit)*.095);line-height:1.15}

/* Minimal close icon, with a comfortable invisible touch target. */
.lightbox-close{border:0;border-radius:0;background:transparent;font:300 28px/1 Arial,sans-serif;color:#fff;padding:0;opacity:.8}
.lightbox-close:hover,.lightbox-close:focus-visible{opacity:1}

.lightbox-close,.lightbox-close:hover,.lightbox-close:focus,.lightbox-close:focus-visible{outline:none;box-shadow:none;background:transparent;border:0;opacity:1;filter:none}

.mosaic .contact p{font-size:calc(var(--unit)*.17);font-weight:600;line-height:1.25}
