/* Optional state/town reading template. All rules are scoped to its shell.
   Switch with scripts/set_place_template.py classic|editorial. */
.place-editorial{max-width:1560px;margin:auto;padding:52px 24px 72px;display:grid;grid-template-columns:minmax(0,1.2fr) minmax(360px,1fr);column-gap:40px;align-items:start}
.place-editorial>.crumbs{grid-column:1/-1;grid-row:1;padding:0;margin:0 0 12px;background:none;border:0}
.place-editorial>.crumbs .wrap{max-width:none;padding:0;font-size:1rem}
.place-editorial .ehero{grid-column:1/-1;grid-row:2;min-width:0;background:none;color:var(--ink);margin-bottom:44px}
.place-editorial .herogrid{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(360px,1fr);gap:0 40px;align-items:start;max-width:none;padding:0;margin:0}
.place-editorial .herogrid>div:first-child{min-width:0;padding:0}
.place-editorial .herogrid>.place-contents-boundary{grid-column:1/-1}
.place-location-stats{min-width:0;padding:4px 0 0 32px;border-left:1px solid var(--line)}
.place-editorial .place-location-stats h2{font-size:1.35rem;margin:0 0 22px}
.place-location-stats .scorebar{margin:0 0 24px}
.place-location-stats .scorebar-h{gap:16px}
.place-location-stats .scorebar-h h3{font-family:inherit;font-size:.9rem;line-height:1.4;letter-spacing:normal;margin:0}
.place-location-stats .scorebar-h .val{white-space:nowrap;font-size:1.9rem}
.place-location-stats .scorebar-cap{font-size:.85rem;line-height:1.5}
.place-location-stats .facts{grid-template-columns:repeat(2,minmax(0,1fr));gap:0 24px}
.place-location-stats .fact{display:block;min-width:0;padding:14px 0;border-top:1px solid var(--line)}
.place-location-stats .fact b{font-size:.7rem;letter-spacing:.08em}
.place-location-stats .fact span{display:block;text-align:left;font-size:1.35rem;line-height:1.35;margin-top:5px;overflow-wrap:anywhere}
.place-location-stats .fact a{font-size:1.05rem}
.place-editorial h1{max-width:950px;margin:0 0 20px;color:var(--plum);text-wrap:balance}
.place-editorial .ehero p.answer{max-width:850px;font-size:1.22rem;line-height:1.55;color:var(--ink);margin:0 0 24px}
.place-editorial .btn{box-shadow:none}
.place-editorial .btn.ghost{color:var(--grape);border-color:var(--line)}
.place-editorial .btn.ghost:hover{color:var(--plum);background:var(--cream-2)}
.place-contents{margin-top:28px;border-bottom:1px solid var(--line);color:var(--ink);font-size:.96rem}
.place-contents strong{display:none}
.place-contents ol{display:flex;list-style:none;padding:0;margin:0;overflow-x:auto;scrollbar-width:thin}
.place-contents li{flex:0 0 auto;margin:0}
.place-contents a{display:block;padding:12px 20px;border-bottom:3px solid transparent;color:var(--ink-soft);font-weight:600;white-space:nowrap;text-decoration:none}
.place-contents a:hover,.place-contents a:focus-visible{border-bottom-color:var(--grape);color:var(--plum)}
.place-editorial:has(#place-map:target) .place-contents a[href="#place-map"],
.place-editorial:has(#top-homes:target) .place-contents a[href="#top-homes"],
.place-editorial:has(#homes:target,#compare-homes:target) .place-contents a[href="#compare-homes"],
.place-editorial:has(#finding-a-home:target) .place-contents a[href="#finding-a-home"]{border-bottom-color:var(--plum);color:var(--plum)}
.place-map-rail{grid-column:2;grid-row:3;align-self:stretch;min-width:0}
.place-directory-map{position:sticky;top:95px;min-width:0;scroll-margin-top:95px}
.place-directory-map .maphead[hidden]{display:none}
.place-editorial h2{font-size:1.75rem;margin:0 0 20px;scroll-margin-top:95px}
.place-editorial #homes{grid-column:1;grid-row:4;min-width:0;padding:30px 0;background:none;border-top:1px solid var(--line);scroll-margin-top:95px}
.place-editorial #homes .wrapwide,.place-editorial #homes .wrapmid{max-width:none;padding:0}
.place-editorial .maphead{text-align:left;margin-bottom:14px}
.place-editorial .pcfilter{justify-content:flex-start;flex-wrap:wrap;gap:10px}
.place-editorial .pcfilter input{max-width:100%;min-width:0;padding:12px 18px;font-size:1rem}
.place-editorial .mapcard{border-radius:12px;box-shadow:none}
.place-editorial #brandmap{height:auto;aspect-ratio:4/3;max-height:calc(100dvh - 125px)}
.place-editorial #compare-homes{padding-top:30px;border-top:1px solid var(--line)}
.place-editorial .filterbar{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));width:100%;max-width:100%;margin:0 0 24px;border-radius:8px;box-shadow:none;background:var(--cream-2)}
.place-editorial .fseg{min-width:0;padding:14px 16px;border-color:var(--line)}
.place-editorial .fseg select{width:100%;min-width:0}
.place-editorial .fseg select:focus-visible{outline:2px solid var(--grape);outline-offset:3px}
.place-editorial .tblwrap{border-radius:0;box-shadow:none;border:0;background:none}
.place-editorial .tblscroll:focus-visible{outline:2px solid var(--grape);outline-offset:-2px}
.place-editorial table.roster{font-size:1rem;min-width:860px}
.place-editorial .roster thead th{padding:13px 12px;background:var(--cream-2);color:var(--plum);border-bottom:1px solid var(--line);font-size:.9rem;letter-spacing:0;text-transform:none}
.place-editorial .roster td{height:auto;padding:16px 12px;font-size:1rem;border-bottom:1px solid var(--line)}
.place-editorial .roster td.prov{min-width:250px;font-size:1.05rem}
.place-editorial .roster td.rate{min-width:175px}
.place-editorial .roster .mnum{font-size:1.08rem}
.place-editorial #finding-a-home{grid-column:2;grid-row:5;min-width:0;padding:30px 0;background:none;border-top:1px solid var(--line);color:var(--ink);scroll-margin-top:95px}
.place-editorial #finding-a-home .wrap{max-width:none;padding:0}
.place-editorial #finding-a-home h2{color:var(--plum)}
.place-editorial #finding-a-home p{color:var(--ink-soft);max-width:700px;margin-bottom:24px}
@media(max-width:1100px){
 .place-editorial{column-gap:32px}
 .place-editorial .herogrid{column-gap:32px}
}
@media(max-width:1000px){
 .place-editorial,.place-editorial .herogrid{grid-template-columns:minmax(0,1fr)}
 .place-location-stats{margin-top:28px;padding:24px 0 0;border-left:0;border-top:1px solid var(--line)}
 .place-map-rail{grid-column:1;grid-row:3;margin-bottom:32px}
 .place-directory-map{position:static}
 .place-editorial #brandmap{max-height:none}
}
@media(max-width:840px){
 .place-editorial{padding-top:32px;grid-template-columns:minmax(0,1fr)}
 .place-editorial #homes{grid-column:1;grid-row:5}
 .place-editorial #finding-a-home{grid-column:1;grid-row:5}
 .place-editorial h2{font-size:1.5rem}
}
@media(max-width:480px){
 .place-editorial{padding-left:20px;padding-right:20px}
 .place-editorial .ehero p.answer{font-size:1.1rem}
 .place-editorial .btn{padding:12px 18px;font-size:.92rem;margin-bottom:8px}
 .place-editorial .btn.ghost{margin-left:4px}
 .place-contents a{padding:12px 16px;font-size:.9rem}
 .place-editorial .filterbar{grid-template-columns:repeat(2,minmax(0,1fr))}
 .place-editorial .fseg:nth-child(odd){border-left:0}
 .place-editorial .fseg:nth-child(n+3){border-top:1px solid var(--line)}
}

/* The map stays beside the continuous home list until the final entry. */
.place-contents-boundary{min-width:0}
.place-top-homes{grid-column:1;grid-row:3;min-width:0;border-top:1px solid var(--line);padding:30px 0 44px;scroll-margin-top:95px}
.place-top-intro{color:var(--ink-soft);font-size:1rem;line-height:1.6;max-width:800px;margin:0 0 26px}
.place-average-inputs{padding:0;margin:0 0 20px;background:none}
.place-location-stats .place-average-inputs h3{font-family:inherit;font-size:.85rem;line-height:1.4;margin:0 0 14px;color:var(--plum)}
.place-average-inputs .place-input-ratings{margin:0;gap:14px 22px}
.place-average-category{position:relative;display:flex;flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:3px 8px;min-width:0;padding:0 0 11px;margin:0;background:none}
.place-average-category h4{font:400 1rem/1.4 'Atkinson Hyperlegible',system-ui,sans-serif;color:var(--ink-soft);margin:0}
.place-average-category .place-average-value{flex-shrink:0;margin:0;font-size:1.1rem;line-height:1.4;color:var(--plum);white-space:nowrap}
.place-average-value span{font-size:.88rem;color:var(--ink-soft)}
/* Bigger bars and type (Ky 2026-10-12): 5px -> 9px bars, labels .78 -> 1rem, scores .85 -> 1.1rem. */
.place-average-inputs .place-input-ratings{gap:20px 28px}
.place-average-category{padding-bottom:17px}
.place-average-inputs .place-input-rated:before,.place-average-inputs .place-input-rated:after{height:9px}
.place-average-value .place-input-missing{font-size:.7rem}
.place-average-inputs .place-average-note{margin:12px 0 0;font-size:.72rem;line-height:1.5;color:var(--ink-soft)}
@media(max-width:480px){
 .place-average-category{display:block}
 .place-average-category .place-average-value{margin-top:3px}
}
.place-editorial #homes{grid-column:1;grid-row:4;display:block;padding-top:30px}
.place-editorial #homes>.wrapmid{width:100%;min-width:0;margin:0!important}
.place-editorial #compare-homes{padding:0;border:0;margin-bottom:12px}
.place-list-intro{font-size:.95rem;color:var(--ink-soft);margin:0 0 8px}
.place-sort-label{display:inline-flex;align-items:center;gap:8px;font-size:.85rem;margin:0 20px 10px 0;color:var(--ink-soft)}
.place-sort-label select{min-width:0;max-width:100%;font:inherit;color:var(--ink);background:transparent;border:0;border-bottom:1px solid var(--line);padding:6px 20px 6px 0}
.place-editorial #place-result-count{display:inline-block;font-size:.8rem;color:var(--ink-soft);margin:0 0 10px}
.place-editorial #place-result-count:empty{display:none}
.place-editorial #place-no-results{padding:20px;border:1px solid var(--line);border-radius:8px;line-height:1.6}
.place-editorial #place-no-results[hidden]{display:none}
.place-editorial .place-list-controls .filterbar{grid-template-columns:repeat(4,minmax(0,1fr));margin-bottom:12px;border-radius:6px}
.place-editorial .place-list-controls .fseg{padding:7px 12px;gap:1px;border-top:0;border-left:1px solid var(--line)}
.place-editorial .place-list-controls .fseg:first-child{border-left:0}
.place-editorial .place-list-controls .fseg label{font-size:.65rem;line-height:1.2;letter-spacing:.06em}
.place-editorial .place-list-controls .fseg select{font-size:.9rem;line-height:1.3;min-height:30px;text-overflow:ellipsis}
.place-more{display:block;width:100%;padding:12px 20px;border:1px solid var(--line);border-radius:6px;background:transparent;color:var(--grape);font:600 .95rem 'DM Sans',sans-serif;cursor:pointer}
.place-more:hover{background:var(--cream-2)}
.place-more:focus-visible{outline:2px solid var(--grape);outline-offset:3px}
.place-more[hidden],.place-editorial #roster-place tr[hidden]{display:none}
.place-editorial #roster-place{display:block;width:100%;min-width:0;table-layout:auto}
.place-editorial #roster-place thead{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.place-editorial #roster-place tbody{display:block}
.place-editorial #roster-place tr{display:grid;grid-template-columns:28px minmax(0,1fr) 110px;column-gap:12px;row-gap:3px;padding:22px 0;border-top:1px solid var(--line)}
.place-editorial #roster-place td{display:block;width:auto;min-width:0;max-width:none;padding:0;border:0;height:auto;white-space:normal;font-size:.9rem;line-height:1.5;text-align:left}
.place-editorial #roster-place td.rk{grid-column:1;grid-row:1/span 4;color:var(--ink-soft);padding-top:2px;font-size:.8rem;text-overflow:clip;overflow:visible}
.place-editorial #roster-place td.prov{grid-column:2;grid-row:1;font-size:1.08rem;line-height:1.4;margin-bottom:3px}
.place-editorial #roster-place td:nth-child(3){grid-column:2;grid-row:2;color:var(--ink-soft)}
.place-editorial #roster-place td:nth-child(4){grid-column:2;grid-row:3;color:var(--ink-soft);font-family:inherit}
.place-editorial #roster-place td:nth-child(4):before{content:'Postcode '}
.place-editorial #roster-place td:nth-child(5){grid-column:2;grid-row:4;color:var(--ink-soft);font-family:inherit}
.place-editorial #roster-place td:nth-child(5):after{content:' resident places'}
.place-editorial #roster-place td.rate{grid-column:3;grid-row:1/span 4;text-align:right}
.place-editorial #roster-place td.rate:before{content:'Elderberry Index';display:block;font-size:.7rem;margin-bottom:6px;color:var(--ink-soft)}
.place-editorial #roster-place .meter{display:none}
.place-editorial #roster-place .mnum{font-size:1.5rem}
.place-editorial #roster-place .mnum:after{content:' / 5';font:normal .85rem 'DM Sans',sans-serif;color:var(--ink-soft)}
.place-editorial #roster-place .pill{white-space:normal;text-align:center}
.place-editorial #homes.place-all-featured .filterbar,.place-editorial #homes.place-all-featured .tblwrap{display:none}
.place-map-unavailable{display:flex;align-items:center;padding:32px;background:var(--cream-2);line-height:1.7}
.leaflet-container .place-map-card-popup .leaflet-popup-content-wrapper{padding:0;border-radius:14px;overflow:hidden;box-shadow:0 12px 30px #24101945}
.leaflet-container .place-map-card-popup .leaflet-popup-content{margin:0;width:min(280px,calc(100vw - 72px))!important;font:400 .84rem/1.4 'Atkinson Hyperlegible',system-ui,sans-serif;color:var(--ink)}
.leaflet-container .place-map-card-popup a.leaflet-popup-close-button{z-index:3;top:6px;right:6px;width:28px;height:28px;border-radius:50%;background:#F8F3E9e6;color:var(--plum);font:700 18px/28px sans-serif}
.leaflet-container .place-map-card-popup a.leaflet-popup-close-button:focus-visible,.leaflet-container .place-map-card a:focus-visible{outline:3px solid var(--grape);outline-offset:2px}
.place-map-card{position:relative;cursor:pointer}
.place-map-card-photo{display:block;width:100%;height:32px;object-fit:cover;object-position:center 45%}
.place-map-card-body{padding:10px 14px 12px}
.place-map-card-head{display:flex;justify-content:space-between;gap:10px}
.leaflet-container .place-map-card h3{margin:0;font:600 1.15rem/1.15 'Fraunces',Georgia,serif;color:var(--plum);letter-spacing:-.01em}
.leaflet-container .place-map-card h3 a{color:inherit;text-decoration:none}
.place-map-card h3 a:after{content:'';position:absolute;inset:0;z-index:1}
.place-map-card:hover h3 a{text-decoration:underline}
.leaflet-container .place-map-card p{margin:0}
.leaflet-container .place-map-card-address{margin-top:3px;font-size:.82rem;color:var(--ink-soft)}
.leaflet-container .place-map-card-index{flex:none;text-align:right;font:600 1.35rem/1 'Fraunces',Georgia,serif;color:var(--plum)}
.place-map-card-index small{display:block;max-width:64px;margin:3px 0 0 auto;font:400 .64rem/1.3 'Atkinson Hyperlegible',sans-serif;color:var(--ink-soft)}
.leaflet-container .place-map-card-unrated{font:400 .74rem/1.3 'Atkinson Hyperlegible',sans-serif;color:var(--ink-soft)}
.leaflet-container .place-map-card-google{display:flex;align-items:center;gap:6px;margin-top:8px}
.place-map-card-google span{color:#B98A2E;letter-spacing:1px}
.leaflet-container .place-map-card-google a{position:relative;z-index:2;color:var(--grape);text-underline-offset:3px}
.place-map-card-nophoto .place-map-card-head{padding-right:30px}
.place-directory-map .place-map-tooltip{width:max-content;max-width:min(260px,40vw);white-space:normal;padding:9px 12px;border:1px solid var(--line);border-radius:7px;background:var(--cream);color:var(--ink);font:400 .8rem/1.4 'DM Sans',sans-serif;box-shadow:0 3px 12px #26182026}
.place-map-tooltip>b,.place-map-tooltip>span{display:block}
.place-map-tooltip>span{margin-top:3px;color:var(--ink-soft)}
.place-directory-map .place-map-tooltip.place-map-card-tooltip{width:280px;max-width:280px;padding:0;border:0;border-radius:14px;overflow:hidden;
  background:#fff;box-shadow:0 12px 30px #24101945}
.place-map-card-tooltip.leaflet-tooltip-left:before{border-left-color:#fff}
.place-map-card-tooltip.leaflet-tooltip-right:before{border-right-color:#fff}
.place-map-card-tooltip.leaflet-tooltip-top:before{border-top-color:#fff}
.place-map-tooltip.leaflet-tooltip-top:before{border-top-color:var(--cream)}
.place-map-tooltip.leaflet-tooltip-left:before{border-left-color:var(--cream)}
.place-map-tooltip.leaflet-tooltip-right:before{border-right-color:var(--cream)}
.place-directory-map .leaflet-interactive:focus-visible{outline:2px solid var(--plum);outline-offset:4px}
.place-editorial #finding-a-home{grid-column:1/-1;grid-row:4}
@media(max-width:1100px){
 .place-editorial #roster-place tr{grid-template-columns:24px minmax(0,1fr) 86px;column-gap:8px}
}
@media(max-width:1000px){
 .place-top-homes{grid-column:1;grid-row:4}
 .place-editorial #homes{grid-column:1;grid-row:5}
 .place-editorial #finding-a-home{grid-row:5}
}
@media(max-width:640px){
 .place-editorial .place-list-controls .filterbar{grid-template-columns:repeat(2,minmax(0,1fr))}
 .place-editorial .place-list-controls .fseg:nth-child(odd){border-left:0}
 .place-editorial .place-list-controls .fseg:nth-child(n+3){border-top:1px solid var(--line)}
}
@media(max-width:580px){
 .place-editorial #roster-place tr{grid-template-columns:22px minmax(0,1fr) 78px;column-gap:8px}
 .place-editorial #roster-place td.prov{font-size:1rem}
 .place-editorial #roster-place td.rate:before{font-size:.65rem}
 .place-editorial #roster-place .mnum{font-size:1.25rem}
}

/* Additional homes continue the same list with inline ranks and muted colour. */
.place-editorial #homes[hidden],.place-top-card[hidden]{display:none}
