/* Enokidai shares the official site's water-blue palette and quiet typography. */
.town-page{--town-paper:#faf7f1;--town-warm:#ede7dc}
.town-hero{background:linear-gradient(110deg,#f5faf8 0%,#faf7f1 60%,#f0e9dc 100%);overflow:hidden}
.town-hero-inner{display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:65px;padding-block:55px 70px}
.town-hero-copy{padding-block:20px}.town-kicker{font-family:var(--serif);font-size:1.15rem;letter-spacing:.13em}
.town-hero h1{font:500 clamp(2.5rem,4.5vw,4.2rem)/1.4 var(--serif);letter-spacing:.12em;margin:16px 0 20px}
.town-hero h1 span{display:block;font-size:1.05rem;letter-spacing:.45em;color:var(--teal);margin-top:20px}
.town-address{display:inline-block;border-block:1px solid #c8d7d3;padding-block:9px;font-size:.78rem;letter-spacing:.09em}
.town-lead{margin:27px 0 28px!important;font-size:.95rem;line-height:2.2}
.town-fiction{font-size:.68rem;color:var(--muted);margin-top:24px!important;max-width:30em}
.town-hero-art{position:relative;max-width:490px;justify-self:end;margin-bottom:22px;width:100%}
.town-hero-art>a{display:block;border-radius:3px 100px 3px 3px;overflow:hidden;box-shadow:0 25px 60px #4e392f18}
.town-hero-art img{width:100%;display:block}
.town-hero-art figcaption{position:absolute;left:-35px;bottom:-24px;background:#fffffff2;padding:18px 25px;box-shadow:var(--shadow);border-left:2px solid #83b7b3;font-family:var(--serif);font-size:.95rem;pointer-events:none}
.town-hero-art figcaption small{display:block;text-align:right;font-family:inherit;font-size:.7rem;color:var(--muted);margin-top:5px}
.town-map-section{background:#fff}.town-map-layout{display:grid;grid-template-columns:.73fr 1.27fr;gap:60px;align-items:start}
.town-map-copy h2,.town-walk-heading h2,.town-closing h2{font-family:var(--serif);font-weight:500}
.town-map-copy>p:not(.eyebrow){margin-top:22px;font-size:.86rem}.town-map-copy>.town-small{font-size:.75rem!important;color:var(--muted)}
.town-area-nav{margin-top:24px;display:grid;gap:0;border-top:1px solid var(--line)}
.town-area-nav a{display:flex;align-items:center;gap:14px;padding:11px 2px;border-bottom:1px solid var(--line);font-size:.83rem;min-height:47px}
.town-area-nav a>span{font:12px/1.7 Arial,sans-serif;color:var(--teal);flex-shrink:0;white-space:nowrap}.town-area-nav b{font-weight:400;margin-left:auto;color:var(--teal)}.town-area-nav a:hover{color:var(--teal);background:var(--mist)}
.town-map-figure{min-width:0;background:var(--town-paper);border:1px solid #e6e1d6;padding:12px}
.town-map-scroll{overflow-x:auto;overscroll-behavior-x:contain}.town-map-scroll:focus-visible{outline:3px solid var(--teal);outline-offset:3px}
.town-map{width:100%;height:auto;display:block}.town-map-link:hover rect,.town-map-link:focus rect{stroke:var(--teal);fill:#008d9610}.town-map-link:focus{outline:none}
.town-map-figure figcaption{font-size:.7rem;color:var(--muted);line-height:1.7;padding:9px 12px 5px;border-top:1px solid #e3dccd}
.town-map-figure figcaption a{display:flex;justify-content:space-between;font-size:.73rem;min-height:40px;width:fit-content;gap:22px}
.town-map-mobile-hint{display:none;font-size:.7rem;color:var(--muted);padding:3px 8px 12px}
.town-walk{background:#fff}.town-walk-heading{padding-bottom:50px;border-bottom:1px solid var(--line)}.town-walk-heading>p:last-child{font-size:.86rem;color:var(--muted);margin-top:18px}
.town-area{padding-block:68px;scroll-margin-top:28px}.town-area:nth-of-type(even){background:#f5f8f6}
.town-area-inner{display:grid;grid-template-columns:.78fr 1.5fr;gap:55px;align-items:center}.town-area-copy{max-width:340px}
.town-area-number{font:500 2.4rem/1.2 var(--serif);color:#688b88;margin-bottom:16px}.town-area-number span{display:block;font:10px/2 Arial,sans-serif;letter-spacing:.2em;color:var(--muted);margin-bottom:8px}
.town-area-copy h3{font:500 clamp(1.35rem,2.1vw,1.7rem)/1.7 var(--serif);margin-bottom:20px}
.town-area-copy>p:not(.town-area-number){font-size:.86rem;line-height:2.1;color:#435960}.town-area-copy .text-link{font-size:.75rem;margin-top:22px}
.town-pair{display:grid;grid-template-columns:1fr 1fr;gap:22px;align-items:start;min-width:0}.town-pair figure:nth-child(2){padding-top:40px}
.town-image-link{display:block;position:relative;overflow:hidden;border-radius:2px 24px 2px 2px;background:#e4ece9}
.town-image-link img{width:100%;display:block;transition:filter .2s}.town-image-link:hover img{filter:brightness(1.04)}
.town-image-enlarge{position:absolute;right:8px;bottom:8px;background:#fffef4ed;color:#234a4c;border-radius:2px;padding:4px 9px;font-size:10px;line-height:1.6}
.town-pair figcaption{font-size:.77rem;line-height:1.7;margin-top:13px}.town-pair figcaption>span{display:block;font:10px/1.6 Arial,sans-serif;letter-spacing:.1em;color:var(--muted);margin-bottom:5px}
.town-closing{text-align:center;background:var(--mist);border-top:1px solid var(--line)}.town-closing p:not(.eyebrow){font-size:.9rem;margin-top:20px}.town-closing-links{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:25px;margin-top:30px}
/* Native dialog provides focus containment and Escape handling; image links work without JS. */
.town-lightbox{width:min(1050px,96vw);max-width:none;max-height:96dvh;padding:16px 22px 12px;border:0;border-radius:4px;background:#f8faf8;color:var(--ink);overflow:auto}
.town-lightbox::backdrop{background:#102631e8}.town-lightbox-top{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:12px}
.town-lightbox-top p{font-size:.95rem;font-weight:600}.town-lightbox button{background:#fff;border:1px solid #c2d4d4;color:var(--teal);border-radius:4px;min-height:44px;padding:7px 16px;font-size:.82rem;white-space:nowrap}
.town-lightbox-image{display:flex;justify-content:center;align-items:center;min-height:160px}.town-lightbox-image img{display:block;max-width:100%;width:auto;height:auto;max-height:calc(96dvh - 170px);object-fit:contain}
.town-lightbox-bottom{display:flex;justify-content:space-between;align-items:center;gap:14px;margin-top:12px}.town-lightbox-bottom p{font:12px/1.5 Arial,sans-serif;color:var(--muted)}
.town-lightbox-help{text-align:center;font-size:.65rem;color:var(--muted);margin-top:8px!important}
.town-home{background:#faf7f1}.town-home-inner{display:grid;grid-template-columns:1.3fr .7fr;gap:60px;align-items:center}.town-home h2{font-family:var(--serif);font-weight:500}.town-home p:not(.eyebrow){font-size:.88rem;color:var(--muted);margin:20px 0 26px}.town-home img{width:100%;max-height:420px;object-fit:cover;object-position:50% 30%;border-radius:2px 65px 2px 2px}
@media(max-width:1000px){.town-hero-inner{gap:35px}.town-map-layout{gap:30px;grid-template-columns:.85fr 1.15fr}.town-area-inner{gap:28px;grid-template-columns:.8fr 1.4fr}.town-pair{gap:16px}}
@media(max-width:680px){
 .town-hero-inner{grid-template-columns:1fr;gap:25px;padding-block:28px 55px}.town-hero-copy{padding:0}.town-hero h1{font-size:2.7rem}.town-hero h1 span{font-size:.95rem;margin-top:14px}.town-kicker{font-size:1rem}.town-lead{font-size:.87rem;margin:20px 0 22px!important}.town-fiction{font-size:.65rem}
 .town-hero-art{max-width:430px;width:94%;justify-self:end;margin-right:0}.town-hero-art>a{border-radius:2px 70px 2px 2px}.town-hero-art figcaption{left:-18px;bottom:-20px;padding:13px 18px;font-size:.82rem}
 .town-map-layout{grid-template-columns:1fr;gap:32px}.town-map-copy h2{font-size:1.6rem;text-wrap:balance}.town-map-copy h2 br{display:none}.town-map-copy>p:not(.eyebrow){font-size:.82rem}.town-area-nav{grid-template-columns:1fr 1fr;column-gap:18px}.town-area-nav a{font-size:.72rem;gap:8px}.town-area-nav b{display:none}.town-map-figure{padding:8px}.town-map{min-width:650px}.town-map-mobile-hint{display:block}
 .town-walk-heading{padding-bottom:30px}.town-area{padding-block:42px}.town-area-inner{grid-template-columns:1fr;gap:25px}.town-area-copy{max-width:none}.town-area-number{font-size:1.9rem;display:flex;gap:14px;align-items:center;margin-bottom:12px}.town-area-number span{margin:0}.town-area-copy h3{font-size:1.5rem;margin-bottom:15px}.town-area-copy>p:not(.town-area-number){font-size:.82rem}.town-area-copy .text-link{margin-top:14px}.town-pair{gap:12px}.town-pair figure:nth-child(2){padding-top:28px}.town-pair figcaption{font-size:.68rem}
 .town-lightbox{width:96vw;padding:12px}.town-lightbox-top{gap:10px}.town-lightbox-top p{font-size:.8rem}.town-lightbox button{padding:7px 12px}.town-lightbox-image img{max-height:calc(96dvh - 175px)}.town-lightbox-help{font-size:.6rem}
 .town-home-inner{grid-template-columns:1fr;gap:28px}.town-home img{max-height:440px;width:85%;justify-self:end}.town-home p:not(.eyebrow){font-size:.82rem}
}
@media(prefers-reduced-motion:reduce){.town-image-link img{transition:none}}
