:root{
  --paper:#faf7f2;--ink:#171310;--mut:#75695c;--acc:#a34d20;
  --gold:#b08528;--cream:#f4ecdd;--dark:#201811;
  --rule:#e3dacd;--card:#ffffff;
  --serif:Georgia,'Times New Roman',serif;
  --sans:-apple-system,'Helvetica Neue',Arial,sans-serif}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
section,[id]{scroll-margin-top:96px}
body{background:var(--paper);color:var(--ink);font:16px/1.65 var(--sans)}
a{color:inherit;text-decoration:none}
.wrap{max-width:1080px;margin:0 auto;padding:0 24px}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

header{position:sticky;top:12px;z-index:50;padding:0 20px;margin-top:16px}
header nav{max-width:1040px;margin:0 auto;background:rgba(250,247,242,.88);
  -webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);
  border:1px solid var(--rule);border-radius:999px;
  box-shadow:0 8px 28px rgba(23,19,16,.1)}
.navin{display:flex;align-items:baseline;gap:26px;padding:14px 30px;flex-wrap:wrap}
.brand{font:400 20px/1 var(--serif)}
.brand i{font-style:italic;color:var(--acc)}
.navlinks{margin-left:auto;display:flex;gap:24px;font:600 11px/1 var(--sans);
  letter-spacing:.15em;text-transform:uppercase;color:var(--mut);flex-wrap:wrap}
.navlinks a:hover{color:var(--acc)}

.slides{position:relative;height:clamp(340px,56vh,580px);overflow:hidden;margin-top:30px;
  background:var(--card);border:1px solid var(--rule)}
.slide{position:absolute;inset:0;opacity:0;transition:opacity 1.1s ease}
.slide.on{opacity:1}
.slide img{width:100%;height:100%;object-fit:cover;display:block}
.heromet{display:flex;align-items:center;gap:18px;padding:12px 2px 0}
.scap{font:italic 400 16px/1.3 var(--serif)}
.scap span{font:600 10px var(--sans);letter-spacing:.16em;text-transform:uppercase;
  font-style:normal;color:var(--mut);margin-left:12px}
.sctl{margin-left:auto;display:flex;align-items:center;gap:12px}
.sctl span{font:12px var(--sans);color:var(--mut);letter-spacing:.08em}
.sctl button{width:28px;height:28px;border:1px solid var(--rule);border-radius:50%;
  background:var(--card);color:var(--ink);font:400 15px/1 var(--serif);
  cursor:pointer;transition:border-color .15s}
.sctl button:hover{border-color:var(--acc);color:var(--acc)}

.deck{font:400 clamp(18px,2.4vw,22px)/1.55 var(--serif);max-width:620px;margin:46px auto 0;text-align:center}
.statband{display:flex;justify-content:center;flex-wrap:wrap;margin:44px 0 8px;
  background:var(--cream);border:1px solid var(--rule);padding:26px 12px}
.statband>div{padding:4px 34px;border-left:1px solid #dccfb8}
.statband>div:first-child{border-left:0}
.statband .n{font:400 42px/1.1 var(--serif);color:var(--acc)}
.statband .l{font:600 11px var(--sans);letter-spacing:.16em;text-transform:uppercase;color:var(--mut)}

section{margin:72px 0}
.sechead{display:flex;align-items:baseline;gap:16px;border-bottom:1px solid var(--ink);padding-bottom:10px;margin-bottom:26px}
.sechead h2{font:400 30px/1.1 var(--serif)}
.sechead .sub{font:13px var(--sans);color:var(--gold);margin-left:auto}

#mapwrap{position:relative}
#map{display:block;width:100%;cursor:crosshair}
#maptip{position:absolute;pointer-events:none;display:none;background:var(--dark);
  color:var(--paper);font:12px var(--sans);padding:7px 11px;white-space:nowrap;z-index:3}
#maptip b{font:italic 400 14px var(--serif);display:block}

.stategrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));border-top:1px solid var(--rule);border-left:1px solid var(--rule)}
.stategrid a{background:var(--card);border-right:1px solid var(--rule);border-bottom:1px solid var(--rule);padding:18px 20px;display:flex;align-items:baseline;gap:12px;transition:background .15s}
.stategrid a:hover{background:#f4efe7}
.stategrid .name{font:400 20px/1.15 var(--serif)}
.stategrid .count{font:12px var(--sans);color:var(--acc);margin-left:auto;white-space:nowrap}

.ranklist{columns:2;column-gap:60px}
.ranklist a{display:flex;align-items:baseline;gap:14px;padding:9px 0;border-bottom:1px solid var(--rule);break-inside:avoid}
.ranklist a:hover .rn{text-decoration:underline}
.ranklist .no{font:400 15px var(--serif);font-style:italic;color:var(--acc);min-width:26px}
.ranklist .rn{font:400 18px var(--serif)}
.ranklist .rc{font:12px var(--sans);color:var(--gold);margin-left:auto}

.prose{max-width:680px;font:17px/1.75 var(--serif)}
.prose p{margin-bottom:1.1em}
.prose .lead:first-letter{font:400 54px/0.8 var(--serif);float:left;padding:8px 10px 0 0;color:var(--acc)}

.pagehead{padding:34px 0 0}
.pagehead .bc{font:12px var(--sans);color:var(--mut)}
.pagehead .bc a:hover{text-decoration:underline;color:var(--acc)}
.pagehead h1{font:400 clamp(38px,6vw,64px)/1.05 var(--serif);margin:10px 0 8px}
.pagehead .standfirst{font:17px/1.6 var(--serif);color:var(--mut);max-width:720px}
.pagehead .hr{border-top:1px solid var(--ink);border-bottom:3px double var(--ink);height:7px;margin:22px 0 0}
.statemap{display:block;width:100%;height:auto;margin-top:34px}

.munigrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(215px,1fr));border-top:1px solid var(--rule);border-left:1px solid var(--rule)}
.munigrid a{background:var(--card);border-right:1px solid var(--rule);border-bottom:1px solid var(--rule);padding:14px 16px;display:flex;align-items:baseline;gap:10px}
.munigrid a:hover{background:#f4efe7}
.munigrid .mn{font:400 17px/1.2 var(--serif)}
.munigrid .mc{font:12px var(--sans);color:var(--acc);margin-left:auto;white-space:nowrap}

.filter{margin:0 0 22px}
.filter input{width:100%;max-width:420px;font:15px var(--sans);padding:10px 14px;border:1px solid var(--rule);border-radius:0;background:var(--card)}
.filter input:focus{outline:1px solid var(--acc)}
.cafegrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:18px}
.cafe{background:var(--card);border:1px solid var(--rule);padding:20px 22px 16px;display:flex;flex-direction:column;transition:border-color .15s}
.cafe:hover{border-color:#c9bca9}
.cafe .cn{font:400 21px/1.2 var(--serif)}
.cafe .col{font:600 11px var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--acc);margin:4px 0 10px}
.cafe .addr{font:13px/1.55 var(--sans);color:var(--mut)}
.cafe .links{display:flex;gap:14px;flex-wrap:wrap;margin-top:12px;padding-top:10px;border-top:1px solid var(--rule);font:13px var(--sans)}
.cafe .links a{color:var(--acc)}
.cafe .links a:hover{text-decoration:underline}
.cafe .size{font:11px var(--sans);color:var(--mut);margin-left:auto;align-self:center}
.feat{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:18px}

footer{background:var(--dark);margin-top:96px;padding:44px 0 64px;font:13px var(--sans);color:#b3a48e}
.fgrid{display:grid;grid-template-columns:1.1fr 2fr;gap:56px}
.fname{font:400 26px/1.1 var(--serif);color:var(--paper)}
.fname i{font-style:italic;color:#d98d5f}
.fbrand p{margin-top:12px;max-width:36ch;line-height:1.6}
.fbrand a{color:#d98d5f}
.fbrand a:hover{text-decoration:underline}
.fhead{font:600 11px var(--sans);letter-spacing:.16em;text-transform:uppercase;color:var(--gold);margin-bottom:14px}
.fcols{columns:4;column-gap:30px}
.fcols a{display:block;padding:3px 0;break-inside:avoid}
.fcols a:hover{color:var(--paper);text-decoration:underline}
.fcols span{color:var(--gold);font-size:11px;margin-left:6px}
.fbot{margin-top:34px;padding-top:16px;border-top:1px solid rgba(250,247,242,.14);font-size:12px}

.cafetop{display:grid;grid-template-columns:1.05fr .95fr;gap:30px;margin-top:34px;align-items:start}
.cafephoto{position:relative}
.cafephoto img{display:block;width:100%;border:1px solid var(--rule)}
.cafephoto .credit{font:11px var(--sans);color:var(--mut);margin-top:6px}
.locmap{position:relative;border:1px solid var(--rule);background:var(--paper)}
.locmap img{display:block;width:100%;height:auto}
.locdot{position:absolute;width:13px;height:13px;border:2px solid #fff;border-radius:50%;
  background:var(--acc);box-shadow:0 0 0 4px rgba(163,77,32,.22);transform:translate(-50%,-50%)}
.locmap .credit{font:11px var(--sans);color:var(--mut);padding:6px 2px}
.ratingchip{display:inline-block;background:var(--cream);border:1px solid var(--rule);
  padding:5px 12px;font:13px var(--sans);color:var(--ink);margin-bottom:16px}
.ratingchip b{color:var(--acc)}
.infolist{border-top:1px solid var(--ink)}
.infolist div{display:flex;gap:16px;padding:9px 0;border-bottom:1px solid var(--rule)}
.infolist dt{font:600 10px/2 var(--sans);letter-spacing:.14em;text-transform:uppercase;
  color:var(--mut);min-width:110px}
.infolist dd{font:15px/1.5 var(--serif)}
.infolist dd a{color:var(--acc)}
.infolist dd a:hover{text-decoration:underline}
.hourslist{font:14px/1.7 var(--serif);margin-top:8px}
.artmeta{font:600 11px var(--sans);letter-spacing:.16em;text-transform:uppercase;color:var(--acc);margin-bottom:8px}
.arttable{width:100%;border-collapse:collapse;margin:26px 0;font:14px var(--sans)}
.arttable th{font:600 10px/2.2 var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--mut);text-align:left;border-bottom:1px solid var(--ink);padding:4px 10px 4px 0}
.arttable td{border-bottom:1px solid var(--rule);padding:8px 10px 8px 0}
.arttable td:first-child{font:15px var(--serif)}
.arttable td a{color:var(--acc)}
.arttable td a:hover{text-decoration:underline}
.arttable .num{text-align:right;font-variant-numeric:tabular-nums}
.artidx{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:18px}
.artidx a{background:var(--card);border:1px solid var(--rule);padding:20px 22px;display:block;transition:border-color .15s}
.artidx a:hover{border-color:var(--acc)}
.artidx .at{font:400 19px/1.3 var(--serif)}
.artidx .ac{font:600 10px var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--acc);margin-bottom:8px}
.faqlist{max-width:760px}
.faqlist details{border-bottom:1px solid var(--rule);padding:14px 2px}
.faqlist summary{font:400 18px var(--serif);cursor:pointer;list-style:none}
.faqlist summary::-webkit-details-marker{display:none}
.faqlist summary::after{content:"+";float:right;color:var(--acc);font:400 20px/1 var(--serif)}
.faqlist details[open] summary::after{content:"–"}
.faqlist p{font:15px/1.7 var(--serif);color:var(--mut);padding:10px 0 2px;max-width:60ch}
.nearby{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:14px}
.nearby a{background:var(--card);border:1px solid var(--rule);padding:14px 16px;display:block}
.nearby a:hover{border-color:var(--acc)}
.nearby .nn{font:400 17px/1.25 var(--serif)}
.nearby .nc{font:11px var(--sans);color:var(--mut);margin-top:3px;text-transform:uppercase;letter-spacing:.1em}
@media(max-width:800px){.ranklist{columns:1}.statband{gap:28px}header nav{border-radius:22px}.cafetop{grid-template-columns:1fr}
.fgrid{grid-template-columns:1fr;gap:34px}.fcols{columns:2}}
