*{box-sizing:border-box;margin:0;padding:0}
:root{--coral:#a63a25;--coral-d:#822916;--teal:#06263f;--cream:#f5e4c2;--ink:#06263f;--muted:#6b5b45;--card:#fffaf0;--border:rgba(107,63,31,.2)}
body{font-family:'Inter',system-ui,-apple-system,sans-serif;background:linear-gradient(180deg,#fff7df,#f5e4c2 60%);color:var(--ink);line-height:1.62;-webkit-font-smoothing:antialiased}
a{color:var(--coral)}
img{max-width:100%}
.wrap{max-width:980px;margin:0 auto;padding:0 1.2rem}
.site-hd{background:var(--teal);border-bottom:3px solid #d69a2d;position:sticky;top:0;z-index:10}
.site-hd .wrap{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.7rem 1.2rem}
.site-hd .brand{color:#fff;font-weight:800;text-decoration:none;font-size:1.05rem;letter-spacing:.3px}
.site-hd .dir{color:#fff;background:var(--coral);padding:.5rem 1rem;border-radius:999px;text-decoration:none;font-weight:700;font-size:.84rem;white-space:nowrap}
h1{font-family:'Fraunces',Georgia,serif;font-size:clamp(1.8rem,4vw,2.6rem);font-weight:900;line-height:1.14;margin:.3rem 0 .6rem}
h2{font-family:'Fraunces',Georgia,serif;font-size:1.35rem;margin:2rem 0 .9rem}
.crumb{font-size:.82rem;color:var(--muted);margin:1.4rem 0 .5rem}
.crumb a{text-decoration:none}
.crumb a:hover{text-decoration:underline}
.badge{display:inline-block;background:#fff1cf;color:#6b3f1f;border:1px solid rgba(214,154,45,.4);border-radius:999px;padding:.22rem .85rem;font-size:.78rem;font-weight:600;margin-bottom:.7rem}
.badge a{color:inherit;text-decoration:none}
.panel{background:var(--card);border:1px solid var(--border);border-radius:14px;padding:1.7rem;margin:1.1rem 0;box-shadow:0 6px 20px rgba(107,63,31,.07)}
.lede{color:#44433c;font-size:1.04rem;max-width:680px}
.facts{display:grid;grid-template-columns:1fr 1fr;gap:1rem 1.5rem;margin-top:1.2rem}
@media(max-width:560px){.facts{grid-template-columns:1fr}}
.fact .lbl{font-size:.67rem;font-weight:700;letter-spacing:1.2px;text-transform:uppercase;color:var(--muted);margin-bottom:.15rem}
.fact .val{font-size:.96rem}
.fact .val a{text-decoration:none}
.desc{font-size:.98rem;color:#232220;line-height:1.8}
.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;margin:1rem 0}
@media(max-width:780px){.grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:480px){.grid{grid-template-columns:1fr}}
.tile{background:var(--card);border:1px solid var(--border);border-radius:12px;padding:1.05rem;text-decoration:none;color:var(--ink);display:block;transition:transform .15s,border-color .15s,box-shadow .15s}
.tile:hover{transform:translateY(-2px);border-color:var(--coral);box-shadow:0 10px 24px rgba(166,58,37,.14)}
.tile .tt{font-weight:700;font-family:'Fraunces',Georgia,serif;font-size:1.02rem;line-height:1.25}
.tile .tm{font-size:.8rem;color:var(--muted);margin-top:.3rem}
.tile .ti{font-size:1.5rem;display:block;margin-bottom:.45rem}
.cta{display:inline-block;background:var(--coral);color:#fff;padding:.75rem 1.4rem;border-radius:10px;text-decoration:none;font-weight:700;margin-top:.4rem}
.cta:hover{background:var(--coral-d)}
.map{width:100%;height:320px;border:0;border-radius:12px;margin-top:.4rem;background:#eee}
/* --- Listing header, mirroring the interactive directory's detail view so a
   visitor moving between the two sees the same design. Proportions copied from
   the SPA: hero photo is a wide banner capped at 340px, logo is a 72px chip beside
   the title. That pairing is why the SPA looks right even when a business has the
   SAME image in both slots (3 of the 6 that have both do) - matching it is the fix,
   deduping would have created a NEW mismatch. --- */
/* NOT width:100% + cover. Measured across the real images: cover crops portrait
   heroes to a middle band (Big Ideas 804x863 loses 61%) and width:100% blows a
   244x91 logo up 3.4x into a blur. max-width + contain never crops and never
   upscales; the white ground stops transparent logos sitting on the cream page. */
.det-hero{display:block;max-width:100%;max-height:340px;margin:1.1rem auto 1.2rem;object-fit:contain;background:#fff;border-radius:14px;border:1px solid var(--border)}
.det-hdr{background:var(--card);border:1px solid var(--border);border-radius:14px;padding:1.7rem;margin:1.1rem 0;box-shadow:0 6px 20px rgba(107,63,31,.07)}
.det-title-row{display:flex;align-items:flex-start;gap:1rem;margin-bottom:1.3rem}
/* No logo in the data is square (they run 1.5:1 to 4.08:1), so a 72x72 cover crop
   would eat most of a wordmark — Big Ideas' 424x104 would show 24% of itself.
   Fixed height, free width, contain. */
.det-logo{height:64px;width:auto;max-width:150px;border-radius:12px;object-fit:contain;background:#fff;border:1px solid var(--border);padding:4px;flex-shrink:0}
.det-title-col{flex:1;min-width:0}
.det-badges{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:.7rem}
.det-badge{display:inline-flex;align-items:center;gap:5px;font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:1px;border-radius:5px;padding:3px 11px;text-decoration:none}
.det-badge-primary{color:#6b3f1f;background:#fff1cf;border:1px solid rgba(214,154,45,.45)}
.det-badge-extra{color:var(--muted);background:rgba(107,63,31,.05);border:1px solid var(--border)}
.det-badge:hover{border-color:var(--coral);color:var(--coral)}
.det-title{font-family:'Fraunces',Georgia,serif;font-size:clamp(1.5rem,3.4vw,1.9rem);font-weight:900;line-height:1.2;margin:0}
.feat-tag{font-size:.65rem;font-weight:800;color:#4a3208;background:#e8b22f;border-radius:4px;padding:2px 6px;margin-left:6px;vertical-align:middle;text-transform:uppercase;letter-spacing:.4px}
.ent-tag{font-size:.62rem;font-weight:700;border-radius:4px;padding:2px 7px;margin-left:6px;vertical-align:middle;letter-spacing:.3px}
.ent-agent{background:rgba(31,122,66,.12);color:#1f7a42;border:1px solid rgba(31,122,66,.3)}
.ent-office{background:rgba(40,78,150,.12);color:#284e96;border:1px solid rgba(40,78,150,.3)}
.det-brk{font-size:.92rem;color:var(--coral);margin-top:4px;font-style:italic}
.det-lic{font-size:.72rem;color:var(--muted);margin-top:8px;letter-spacing:.5px}
.map-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:1rem}
.map-btn{background:#fff;border:1px solid var(--border);color:var(--ink);padding:10px 16px;border-radius:8px;font-size:.85rem;font-weight:600;text-decoration:none;display:inline-flex;align-items:center;gap:6px}
.map-btn:hover{border-color:var(--coral);color:var(--coral)}
.gal-strip{display:flex;gap:.8rem;flex-wrap:wrap}
.gal-strip img{width:190px;height:140px;object-fit:cover;border-radius:10px;border:1px solid var(--border)}
.profile-actions{display:flex;flex-wrap:wrap;gap:10px;margin:0 0 1.1rem}
.profile-btn{background:var(--card);border:1px solid var(--border);color:var(--ink);padding:10px 16px;border-radius:8px;font-size:.85rem;font-weight:600;text-decoration:none}
.profile-btn:hover{border-color:var(--coral);color:var(--coral)}
@media(max-width:560px){.det-title-row{gap:.8rem}.det-logo{height:52px;max-width:110px}.gal-strip img{width:140px;height:105px}}
.ft{background:var(--teal);color:#fff4df;border-top:3px solid #d69a2d;text-align:center;padding:1.6rem 1.2rem;margin-top:3.5rem;font-size:.85rem}
.ft a{color:#f5c453;font-weight:600}
.oth-site-nav{position:relative;z-index:110;width:100%;display:flex;flex-wrap:wrap;align-items:stretch;justify-content:center;background:#F6EFE1;border-bottom:1px solid rgba(34,36,43,.28)}
.oth-site-nav a{display:inline-flex;align-items:center;font-family:'Inter',Arial,sans-serif;font-weight:700;font-size:.78rem;letter-spacing:.09em;text-transform:uppercase;text-decoration:none;padding:.75rem .95rem;color:#22242B;white-space:nowrap;border-left:1px solid rgba(34,36,43,.14);position:relative;transition:color .18s}
.oth-site-nav>a:last-of-type{border-right:1px solid rgba(34,36,43,.14)}
.oth-site-nav a::after{content:"";position:absolute;left:14%;right:14%;bottom:0;height:3px;background:#A6231C;transform:scaleX(0);transform-origin:center;transition:transform .22s cubic-bezier(.2,.7,.3,1)}
.oth-site-nav a:hover{color:#A6231C}
.oth-site-nav a:hover::after,.oth-site-nav a.active::after{transform:scaleX(1)}
.oth-site-nav a.active{color:#A6231C}
.oth-site-nav .advertise{margin-left:1rem;align-self:center;font-weight:800;font-size:.74rem;letter-spacing:.11em;background:#A6231C;color:#FBF3E2;padding:.5rem 1rem;border:1px solid #7E1812;box-shadow:3px 3px 0 #1E3A5F;transition:transform .15s,box-shadow .15s,background .15s}
.oth-site-nav .advertise::after{display:none}
.oth-site-nav .advertise:hover{background:#7E1812;color:#FBF3E2;transform:translate(-2px,-2px);box-shadow:5px 5px 0 #1E3A5F}
.oth-drop{position:relative;display:flex;align-items:stretch}
.oth-drop .caret{font-size:.55rem;margin-left:.4rem;color:#807F75}
.oth-drop-menu{position:absolute;top:100%;left:0;min-width:240px;display:none;flex-direction:column;background:#F6EFE1;border:1px solid rgba(34,36,43,.28);border-top:3px solid #A6231C;box-shadow:4px 4px 0 rgba(31,42,68,.18);z-index:130}
.oth-drop:hover .oth-drop-menu,.oth-drop:focus-within .oth-drop-menu{display:flex}
.oth-drop-menu a{font-size:.72rem;letter-spacing:.07em;padding:.7rem .95rem;border-left:none;border-bottom:1px solid rgba(34,36,43,.14);white-space:normal}
.oth-drop-menu a:last-child{border-bottom:none}
.oth-drop-menu a:hover{background:rgba(178,34,52,.06)}
.oth-drop-menu a::after{display:none}
@media(max-width:700px){.oth-site-nav a{font-size:.66rem;padding:.6rem .5rem;letter-spacing:.06em}.oth-site-nav .advertise{margin-left:.5rem;font-size:.64rem;padding:.45rem .65rem}.oth-drop{display:contents}.oth-drop>a{display:none}.oth-drop-menu{display:contents}.oth-drop-menu a{border-left:1px solid rgba(34,36,43,.14);border-bottom:none;white-space:nowrap}}
/* listing v2 (2026-10): same styles as the interactive directory's listing page. */
/* Listing card + listing page, v2 (2026-10): the Saver's newspaper look, big buttons,
open-now from the hours text, clip & save coupons, map or service-area map, Ask Hank. */
:root{--lx-paper:#fbf6ea;--lx-news:#1b1b1b;--lx-rule:#cdbf9f;--lx-green:#2f7a3a}
.lx-ico{width:22px;height:22px;flex:none;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.lx-status{display:inline-flex;align-items:center;gap:6px;font-weight:700;font-style:normal}
.lx-status::before{content:"";width:8px;height:8px;border-radius:50%;background:currentColor;flex:none}
.lx-status.open{color:var(--lx-green)}.lx-status.closed{color:var(--coral)}
.lx-kick{font-family:'Libre Franklin',sans-serif;font-weight:800;font-size:.66rem;letter-spacing:2px;text-transform:uppercase;color:var(--coral)}
.lx-cap{font-size:.74rem;color:var(--muted);border-bottom:1px solid var(--lx-rule);padding:5px 0 7px;font-style:italic;display:flex;justify-content:space-between;gap:4px 10px;flex-wrap:wrap}
.lx-cap .lx-status{font-size:.76rem}

/* card = a clipping */
.lst-card.lx-card{background:var(--lx-paper);border:1px solid var(--lx-rule);border-radius:0;box-shadow:0 2px 0 #e6dcc4,0 8px 18px rgba(107,63,31,.1);padding:14px 16px 0;gap:0;cursor:pointer}
.lst-card.lx-card:hover{border-color:var(--coral);transform:translateY(-2px);box-shadow:0 2px 0 #e6dcc4,0 14px 28px rgba(166,58,37,.14)}
.lst-card.lx-card.is-featured{background:#fdf3e2;border-color:rgba(166,58,37,.45)}
.lx-hl{display:flex;align-items:center;gap:10px;margin:4px 0 8px}
.lx-hl b{font-family:'Fraunces',Georgia,serif;font-weight:900;color:var(--lx-news);font-size:1.25rem;line-height:1.1;flex:1}
.lx-logo{flex:none;height:48px;width:auto;max-width:130px;object-fit:contain;background:#fff;border:1px solid var(--lx-rule);padding:3px}
.lx-tags{display:flex;flex-wrap:wrap;gap:4px;margin:-2px 0 8px}
.lx-fig{display:block;overflow:hidden;background:#f3e8d4}
.lx-fig img{display:block;width:100%;aspect-ratio:16/9;object-fit:cover;transition:transform .5s}
.lx-card:hover .lx-fig img{transform:scale(1.04)}
.lx-lead{font-family:'Fraunces',Georgia,serif;font-size:.95rem;color:#2c2a26;margin-top:8px;line-height:1.45;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.lx-lead b{font-family:'Libre Franklin',sans-serif;font-weight:800;font-size:.72rem;letter-spacing:1px}
.lx-btns{display:grid;grid-template-columns:1.4fr 1fr;gap:8px;margin:12px 0 14px}
.lx-btn,.lx-tile{display:flex;align-items:center;justify-content:center;gap:8px;font-family:'Inter',sans-serif;font-weight:800;text-decoration:none;border:2px solid var(--lx-news);color:var(--lx-news);background:#fff;box-shadow:3px 3px 0 var(--lx-news);cursor:pointer;transition:transform .12s,box-shadow .12s}
.lx-btn{padding:12px 8px;font-size:1rem}
.lx-btn:active,.lx-tile:active{transform:translate(2px,2px);box-shadow:1px 1px 0 var(--lx-news)}
.lx-btn.pri,.lx-tile.pri{background:var(--coral);border-color:var(--coral);color:#fff;box-shadow:3px 3px 0 #822916}
.lx-stub{margin:auto -16px 0;border-top:2px dashed #b39b6a;padding:8px 16px;font-size:.8rem;font-weight:700;color:var(--coral);display:flex;justify-content:space-between;gap:8px;flex-wrap:wrap;background:#fff7e6}
.lx-stub a{color:var(--ink);text-decoration:none}
.lx-stub a:hover{text-decoration:underline}

/* listing page */
.detail.lx-page{max-width:760px}
.lx-sheet{background:var(--lx-paper);border:1px solid var(--lx-rule);box-shadow:0 10px 30px rgba(107,63,31,.12)}
.lx-mast{background:var(--lx-news);color:#f3ead6;font-family:'Libre Franklin',sans-serif;font-weight:800;font-size:.66rem;letter-spacing:2.5px;text-transform:uppercase;padding:8px 22px;display:flex;justify-content:space-between;gap:10px}
.lx-in{padding:20px 22px 26px}
@media(max-width:520px){.lx-in{padding:16px 16px 22px}.detail.lx-page{padding:1.2rem .7rem}}
.lx-title{display:flex;align-items:center;gap:12px;margin:6px 0 8px}
.lx-title h1{font-family:'Fraunces',Georgia,serif;font-weight:900;color:var(--lx-news);font-size:clamp(1.7rem,5vw,2.4rem);line-height:1.05;flex:1}
.lx-title .lx-logo{height:72px;max-width:190px}
.lx-stand{font-family:'Fraunces',Georgia,serif;font-style:italic;font-size:1.08rem;color:#3d3a33;border-bottom:3px double #b39b6a;padding-bottom:12px}
.lx-page .lx-fig{margin-top:16px;cursor:zoom-in}
.lx-page .lx-fig img{aspect-ratio:16/9;opacity:0;transition:opacity .5s}
.lx-page .lx-fig img.in{opacity:1}
.lx-bigstatus{display:flex;align-items:center;margin-top:16px;padding:11px 13px;background:#eaf4ec;border-left:4px solid var(--lx-green);font-size:1.06rem}
.lx-bigstatus.closed{background:#fbe9e3;border-left-color:var(--coral)}
.lx-tiles{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:16px}
.lx-tile{flex-direction:column;gap:6px;height:84px;font-size:1rem;padding:6px}
.lx-tile .lx-ico{width:26px;height:26px}
@media(min-width:700px){.lx-tiles.n4{grid-template-columns:repeat(4,1fr)}.lx-tiles.n3{grid-template-columns:repeat(3,1fr)}}
.lx-glance{border:2px solid var(--lx-news);margin-top:20px;background:#fff}
.lx-glance h4{background:var(--lx-news);color:#fff;font-family:'Libre Franklin',sans-serif;font-weight:800;font-size:.7rem;letter-spacing:2px;text-transform:uppercase;padding:6px 12px}
.lx-glance dl{padding:10px 12px;display:grid;grid-template-columns:auto 1fr;gap:6px 14px;font-size:.94rem}
.lx-glance dt{font-family:'Libre Franklin',sans-serif;font-weight:800;font-size:.66rem;letter-spacing:1px;text-transform:uppercase;color:var(--muted);padding-top:4px}
.lx-glance dd{color:var(--lx-news);overflow-wrap:anywhere}
.lx-glance dd a{color:var(--coral);text-decoration:none;font-weight:600}
.lx-sec{font-family:'Libre Franklin',sans-serif;font-weight:800;font-size:.72rem;letter-spacing:2px;text-transform:uppercase;color:var(--coral);margin:26px 0 8px}
.lx-why{list-style:none;margin:0;padding:0}
.lx-why li{font-family:'Fraunces',Georgia,serif;font-size:1.04rem;padding:4px 0 4px 26px;position:relative;color:#2c2a26}
.lx-why li::before{content:"✓";position:absolute;left:2px;color:var(--coral);font-weight:900}
.lx-body{font-family:'Fraunces',Georgia,serif;font-size:1.02rem;line-height:1.65;color:#2c2a26;margin-top:18px;white-space:pre-wrap}
.lx-body.drop::first-letter{float:left;font-size:3.2rem;line-height:.85;font-weight:900;color:var(--lx-news);margin:5px 7px 0 0}
.lx-coupon{border:2px dashed var(--lx-news);padding:9px;margin-top:20px;background:#fff;position:relative;transition:transform .2s}
.lx-coupon:hover{transform:rotate(-.8deg)}
.lx-coupon::before{content:"✂";position:absolute;top:-14px;left:12px;background:var(--lx-paper);padding:0 4px;font-size:1rem;color:var(--lx-news)}
.lx-coupon img{display:block;max-width:100%;margin:0 auto}
.lx-coupon .lx-ctext{font-weight:800;color:var(--lx-news);font-size:1.05rem}
.lx-coupon .lx-cfine{font-size:.8rem;color:var(--muted);margin-top:4px}
.lx-coupon small{display:flex;justify-content:space-between;gap:8px;font-size:.76rem;color:var(--muted);margin-top:7px}
.lx-coupon small b{color:var(--coral)}
.lx-stamp{display:inline-block;margin-top:24px;transform:rotate(-4deg);border:3px solid var(--coral);color:var(--coral);font-family:'Libre Franklin',sans-serif;font-weight:800;text-transform:uppercase;letter-spacing:1.5px;font-size:.72rem;padding:8px 14px;border-radius:6px;line-height:1.35;text-align:center;text-decoration:none;transition:transform .2s}
.lx-stamp:hover{transform:rotate(-2deg) scale(1.03)}
.lx-stamp big{display:block;font-family:'Fraunces',Georgia,serif;font-size:1.15rem;letter-spacing:0;text-transform:none}
.lx-map{height:240px;border:2px solid var(--lx-news);background:#e9e4d8}
.lx-map iframe{display:block;width:100%;height:100%;border:0}
.lx-addr{display:flex;justify-content:space-between;align-items:baseline;flex-wrap:wrap;gap:4px 12px;font-size:.92rem;margin-top:7px;color:var(--lx-news)}
.lx-addr span:last-child{display:flex;gap:12px;font-size:.82rem;font-weight:700}
.lx-addr a{color:var(--coral);text-decoration:none}
.lx-hank{display:flex;align-items:center;gap:10px;width:100%;margin-top:26px;background:var(--ink);color:#fff;padding:14px 16px;font-family:'Inter',sans-serif;font-weight:700;font-size:1rem;text-align:left;border:0;cursor:pointer}
.lx-hank span{margin-left:auto;background:var(--sand,#f5d99a);color:var(--ink);padding:6px 12px;font-size:.85rem;font-weight:800;flex:none}
.lx-hank:hover span{background:#fff}
.lx-index{list-style:none;margin:0;padding:0}
.lx-index li{display:flex;align-items:center;gap:10px;padding:10px 0;border-bottom:1px dotted #b39b6a}
.lx-index li div{flex:1;min-width:0}
.lx-index li .lx-name{display:block;color:var(--lx-news);font-size:.98rem;font-weight:700;text-decoration:none}
.lx-index li .lx-name:hover{color:var(--coral)}
.lx-index li .lx-status{font-size:.8rem}
.lx-index li .lx-call{flex:none;background:var(--coral);color:#fff;text-decoration:none;font-weight:800;font-size:.85rem;padding:8px 14px;box-shadow:2px 2px 0 #822916}
.lx-extra{display:flex;flex-wrap:wrap;gap:10px;margin-top:20px}
.lx-extra a{font-weight:700;color:var(--lx-news);border:2px solid var(--lx-news);padding:8px 12px;text-decoration:none;background:#fff}
.lx-gal{display:flex;gap:10px;overflow-x:auto;padding-bottom:4px}
.lx-gal img{height:130px;width:auto;border:1px solid var(--lx-rule);cursor:zoom-in}
@media(prefers-reduced-motion:reduce){.lx-fig img,.lx-coupon,.lx-stamp,.lx-btn,.lx-tile,.lst-card.lx-card{transition:none!important}.lx-page .lx-fig img{opacity:1}}
.lx-page.lx-sheet{margin:1.1rem 0}.lx-page h1{margin:0}.lx-kick a{color:inherit;text-decoration:none}
.lx-open{margin:1rem 0 2rem}.lx-open a{font-weight:700}
.lx-eyebrow{background:#fff1cf;color:var(--coral);border-bottom:2px solid var(--coral);padding:11px 22px;font-family:'Libre Franklin',sans-serif;font-weight:800;font-size:1rem;line-height:1.35;text-align:center}
@media(max-width:520px){.lx-eyebrow{padding:10px 14px;font-size:.95rem}}
