@font-face {
  font-family: "Material Symbols Rounded";
  font-style: normal;
  font-weight: 400;
  font-display: block;
  src: url("/fonts/material-symbols-rounded.ttf?v=20261113") format("truetype");
}
.material-symbols-rounded {
  font-family: "Material Symbols Rounded";
  font-weight: 400;
  font-style: normal;
  font-size: 24px;
  line-height: 1;
  letter-spacing: normal;
  text-transform: none;
  display: inline-block;
  white-space: nowrap;
  word-wrap: normal;
  direction: ltr;
  font-feature-settings: "liga";
  -webkit-font-smoothing: antialiased;
  vertical-align: middle;
}
.icon-label { margin-inline: .35rem; }
.new-tab-icon { font-size: 1.1em; margin-inline-start: .25em; }
:root {
  --red: #a50909;
  --red-dark: #720707;
  --orange: #f7a344;
  --ink: #292929;
  --muted: #585858;
  --line: #e3e0dc;
  --surface: #f7f6f4;
  --radius: 1rem;
  --space: clamp(1rem, 3vw, 2.5rem);
  font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  color: var(--ink);
  background: #fff;
  line-height: 1.65;
  text-size-adjust: 100%;
  scroll-behavior: smooth;
}
*, *::before, *::after { box-sizing: border-box; }
body { margin: 0; font-size: 1rem; text-align: left; }
img, svg { max-width: 100%; height: auto; vertical-align: middle; }
a { color: var(--red); text-underline-offset: .2em; }
a:hover { color: var(--red-dark); }
button, input, select, textarea { font: inherit; }
button, a, input, select, textarea { -webkit-tap-highlight-color: transparent; }
button, input[type="submit"], input[type="button"], .button-link {
  display: inline-flex; align-items: center; justify-content: center; gap: .65rem;
  min-height: 44px; padding: .65rem 1.2rem; border: 1px solid var(--red-dark);
  border-radius: .55rem; background: linear-gradient(var(--red), var(--red-dark));
  color: #fff; font-weight: 650; text-decoration: none; cursor: pointer;
  transition: background-color .18s, box-shadow .18s, transform .18s;
}
button, .button-link { max-width: 100%; overflow-wrap: anywhere; }
.form-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 1rem; margin-block: 1.5rem; }
button:hover, input[type="submit"]:hover, input[type="button"]:hover, .button-link:hover {
  color: #fff; box-shadow: 0 3px 12px #72070726; transform: translateY(-1px);
}
button:disabled, input:disabled { cursor: wait; opacity: .65; transform: none; }
.button-link.secondary { color: var(--red); background: #fff; border-color: var(--line); }
.button-link.secondary:hover { border-color: var(--red); }
:focus-visible { outline: 3px solid #1262ad; outline-offset: 4px; }
[hidden] { display: none !important; }
.skip-link { position: fixed; top: .5rem; left: 1rem; z-index: 10000; padding: .75rem 1rem; background: #fff; transform: translateY(-180%); }
.skip-link:focus { transform: none; }
.visually-hidden { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
h1, h2, h3, h4 { line-height: 1.25; text-wrap: balance; overflow-wrap: anywhere; }
h1 { margin: 0 0 1.5rem; color: var(--red); font-size: clamp(1.9rem, 3.2vw, 3rem); letter-spacing: -.035em; }
h2 { font-size: clamp(1.4rem, 2vw, 2rem); margin: 2rem 0 1rem; color: var(--red); }
h3 { font-size: 1.15rem; margin: 1.5rem 0 .75rem; }
h4 { font-size: 1rem; }
p { margin: 0 0 1rem; }
small { font-size: .875rem; }
ul, ol { padding-left: 1.4rem; }
li { margin-block: .4rem; }
hr { border: 0; border-top: 1px solid var(--line); margin-block: 2rem; }
#container { width: 100%; background: linear-gradient(#efefee, #fff 220px); }
#container_content { width: min(100% - 2 * var(--space), 1440px); margin-inline: auto; }
#masthead { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding-block: 1.5rem; }
.brand { display: inline-block; flex: 0 1 300px; }
.brand img { width: 300px; }
.header-actions { display: flex; flex-wrap: wrap; gap: .75rem; align-items: center; }
#navbar { padding: .5rem; border: 1px solid var(--line); border-radius: .75rem; background: linear-gradient(#fff, #eee); }
#main_navigation, #navigation ul, #usercp ul, #controlnavigation ul, #tabs ul {
  display: flex; flex-wrap: wrap; gap: .25rem; list-style: none; padding: 0; margin: 0;
}
#main_navigation li, #navigation li { margin: 0; }
#main_navigation a, #navigation a, #controlnavigation a, #tabs a {
  display: flex; align-items: center; min-height: 44px; padding: .55rem 1rem;
  text-decoration: none; font-weight: 650; border-radius: .4rem; color: var(--ink);
}
#main_navigation a:hover, #main_navigation a[aria-current], #navigation a:hover, #navigation a[aria-current],
#controlnavigation a:hover, #controlnavigation .current a, #tabs a:hover, #tabs a.current {
  color: #fff; background: var(--red);
}
.menu-toggle { display: none; width: 100%; justify-content: space-between; }
#usercp { background: #ffe5c4; border-bottom: 1px solid #dbb383; padding: .5rem var(--space); }
.usercp-inner { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: .5rem 1.5rem; max-width: 1440px; margin-inline: auto; }
.usercp-welcome { min-width: 0; max-width: 22rem; margin: 0; color: #592600; font-size: .875rem; overflow-wrap: anywhere; }
#usercp ul { align-items: center; gap: .35rem; min-width: 0; }
#usercp li { min-width: 0; max-width: 100%; margin: 0; }
#usercp a { display: inline-flex; align-items: center; gap: .5rem; max-width: 100%; min-height: 44px; padding: .45rem .65rem; border: 1px solid transparent; border-radius: .5rem; color: #592600; font-size: .875rem; font-weight: 650; text-decoration: none; overflow-wrap: anywhere; transition: background-color .18s, border-color .18s, color .18s; }
#usercp a:hover, #usercp a:focus-visible { background: #fff9; border-color: #dbb383; color: var(--red-dark); }
#usercp .material-symbols-rounded { flex: 0 0 auto; font-size: 20px; }
#usercp .usercp-logout { justify-content: center; min-width: 44px; background: #fff8; border-color: #dbb383; }
#usercp .usercp-logout:hover, #usercp .usercp-logout:focus-visible { background: #fff; border-color: var(--red); }
main { min-width: 0; }
main:focus { outline: none; }
.content-layout { display: grid; grid-template-columns: minmax(210px, 260px) minmax(0, 1fr); gap: var(--space); padding-block: var(--space); align-items: start; }
.content-layout > main { padding: var(--space); border: 1px solid var(--line); border-radius: var(--radius); background: #fff; box-shadow: 0 8px 32px #36210c08; }
#content_right, #content_right_control { min-width: 0; overflow-wrap: anywhere; }
#sidebar { min-width: 0; }
#sidebar h3 { margin-top: 1.5rem; padding-bottom: .6rem; border-bottom: 2px solid var(--orange); color: var(--red); }
.sidebar_content, .sidebar_content_plain { margin-bottom: 1.25rem; overflow-wrap: anywhere; }
#sidebar img { max-width: 100%; }
#sidebar .sidebar_content, #sidebar .sidebar_content_plain { font-size: .9rem; }
#sidebar ul { list-style: none; padding: 0; }
#sidebar li a { display: inline-block; padding-block: .4rem; }
.home-hero { padding: clamp(2.5rem, 6vw, 5.5rem) var(--space); text-align: center; }
.eyebrow { font-size: .78rem; font-weight: 750; text-transform: uppercase; letter-spacing: .13em; color: var(--red); }
.home-hero h1 { font-size: clamp(2.5rem, 5.5vw, 5rem); color: var(--ink); margin-bottom: 1.25rem; }
.home-hero h1 span { color: var(--red); }
.hero-intro { max-width: 660px; margin: 0 auto 2rem; font-size: clamp(1.05rem, 1.5vw, 1.25rem); color: var(--muted); }
.town-search { position: relative; text-align: left; }
.town-search label { display: block; float: none; width: auto; margin-bottom: .5rem; font-weight: 700; }
.search-controls { display: flex; gap: .5rem; position: relative; }
.search-controls input { flex: 1; min-width: 0; width: 100%; }
.home-hero .town-search { max-width: 680px; margin-inline: auto; padding: 1.25rem; border: 1px solid #e8b6a4; border-radius: var(--radius); background: linear-gradient(120deg, #fff3e4, #ffdab1); box-shadow: 0 8px 24px #a509090a; }
.search-status { font-size: .875rem; margin: .4rem 0 0; color: var(--muted); }
.search-status:empty { display: none; }
.town-options {
  position: absolute; z-index: 50; inset: calc(100% + .35rem) 0 auto; padding: .4rem; margin: 0;
  max-height: 18rem; overflow-y: auto; background: #fff; border: 1px solid var(--line);
  border-radius: .5rem; box-shadow: 0 10px 24px #0002; list-style: none;
}
.town-options li { padding: .65rem .75rem; min-height: 44px; margin: 0; cursor: pointer; border-radius: .25rem; }
.town-options li[aria-selected="true"], .town-options li:hover { color: #fff; background: var(--red); }
.suggestion-name, .suggestion-detail { display: block; }
.suggestion-name { font-weight: 650; }
.suggestion-detail { font-size: .85rem; }
.search-results { list-style: none; padding: 0; }
.search-results > li { margin-block: 1rem; }
.search-result { padding: 1.25rem; border: 1px solid var(--line); border-radius: .75rem; background: #fff; }
.search-result h2 { margin: .25rem 0 .5rem; font-size: 1.3rem; }
.search-result p:last-child { margin-bottom: 0; }
.result-type { color: var(--muted); font-size: .85rem; margin-bottom: .25rem; }
.support-heading { display: flex; align-items: center; gap: .75rem; }
.support-heading .material-symbols-rounded { flex: 0 0 auto; font-size: 1em; }
.support-actions { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 15rem), 1fr)); gap: 1rem; margin-block: 1.5rem; }
.support-card { display: flex; align-items: flex-start; gap: 1rem; padding: 1.25rem; border: 1px solid var(--line); border-radius: .75rem; background: var(--surface); text-decoration: none; }
.support-card:hover { background: #fff4e7; border-color: var(--red); }
.support-card .material-symbols-rounded { flex: 0 0 auto; font-size: 2rem; }
.support-card h2 { margin: 0 0 .5rem; font-size: 1.2rem; }
.support-card p { color: var(--ink); margin: 0; }
.page-intro { margin-bottom: 2rem; }
.page-intro h1 { margin-bottom: 1rem; }
.lede { max-width: 65ch; color: var(--muted); font-size: clamp(1.05rem, 1.4vw, 1.2rem); line-height: 1.75; }
.page-intro > :last-child { margin-bottom: 0; }
#content_right > p { max-width: 75ch; }
.highlight-strip { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .75rem; margin-block: 2rem; padding: 1.5rem 0; border-block: 1px solid var(--line); }
.highlight-strip > div { min-width: 0; }
.highlight-strip strong { display: block; color: var(--red); font-size: clamp(1.35rem, 2.3vw, 2rem); line-height: 1.3; }
.highlight-strip span { display: block; color: var(--muted); font-size: .85rem; margin-top: .35rem; }
.section-heading { max-width: 65ch; margin-block: 2.5rem 1.5rem; }
.section-heading h2 { margin: 0 0 .75rem; }
.feature-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 16rem), 1fr)); gap: 1rem; list-style: none; padding: 0; margin: 0 0 2rem; }
.feature-card { min-width: 0; padding: 1.4rem; margin: 0; background: #fff; border: 1px solid var(--line); border-radius: .85rem; }
.feature-card > .material-symbols-rounded { display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; border-radius: .7rem; background: #fff0dd; color: var(--red); margin-bottom: 1rem; }
.feature-card h3 { margin: 0 0 .65rem; font-size: 1.05rem; }
.feature-card p { font-size: .93rem; color: var(--muted); margin: 0; }
.cta-panel { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 1.5rem; padding: clamp(1.25rem, 3vw, 2rem); margin-block: 2rem 1rem; border: 1px solid #e8ceb0; border-radius: 1rem; background: linear-gradient(120deg, #fff8f0, #ffecd5); }
.cta-panel > div { flex: 1 1 240px; min-width: 0; }
.cta-panel h2 { margin: 0 0 .65rem; font-size: 1.4rem; }
.cta-panel p { margin: 0; }
.topic-nav { display: flex; flex-wrap: wrap; gap: .65rem; margin-block: 1.5rem 2.5rem; }
.topic-nav a { display: inline-flex; align-items: center; gap: .5rem; min-height: 44px; padding: .65rem .9rem; color: var(--ink); text-decoration: none; border: 1px solid var(--line); border-radius: .6rem; background: var(--surface); }
.topic-nav a:hover { border-color: var(--red); color: var(--red); background: #fff4e7; }
.topic-nav .material-symbols-rounded { color: var(--red); font-size: 21px; }
.faq-list { display: grid; gap: .75rem; margin-block: 1.5rem; }
.faq-item { padding: 0; background: #fff; border-radius: .7rem; }
.faq-item > summary { padding: 1rem 1.25rem; font-weight: 650; color: var(--ink); line-height: 1.5; }
.faq-item > summary::marker { color: var(--red); }
.faq-item > summary:hover { background: var(--surface); border-radius: inherit; }
.faq-item[open] { border-color: #cfb8a1; box-shadow: 0 4px 16px #36210c06; }
.faq-answer { padding: 1.1rem 1.25rem; border-top: 1px solid var(--line); color: var(--muted); animation: reveal .18s ease-out; }
.faq-answer a { color: var(--red); }
.faq-answer p:last-child { margin-bottom: 0; }
@keyframes reveal { from { opacity: 0; transform: translateY(-3px); } to { opacity: 1; transform: translateY(0); } }
:target { scroll-margin-top: 2rem; }
.directory-index { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 12rem), 1fr)); gap: .75rem; list-style: none; padding: 0; }
.directory-index li { min-width: 0; margin: 0; }
.directory-index a { display: flex; align-items: center; justify-content: space-between; gap: .75rem; height: 100%; min-height: 52px; padding: .85rem 1rem; color: var(--ink); text-decoration: none; border: 1px solid var(--line); border-radius: .6rem; background: #fff; }
.directory-index a:hover { color: var(--red); border-color: var(--red); background: #fff8f0; }
.directory-index .material-symbols-rounded { color: var(--red); font-size: 20px; flex: 0 0 auto; }
.demo-steps, .step-list { padding-left: 1.5rem; margin-block: 2rem; }
.demo-steps li, .step-list li { padding: 1.25rem; margin-block: 1rem; border: 1px solid var(--line); border-radius: .75rem; background: var(--surface); }
.demo-steps li::marker, .step-list li::marker { color: var(--red); font-weight: 750; }
.demo-steps h2 { margin: 0 0 .75rem; font-size: 1.25rem; }
.demo-steps p:last-child { margin-bottom: 0; }
.testimonial-grid { display: grid; gap: 1.25rem; margin-block: 2rem; }
.testimonial-card { margin: 0; padding: 1.5rem; border: 1px solid var(--line); border-radius: .85rem; background: var(--surface); }
.testimonial-card h2 { margin: 0 0 1rem; font-size: 1.25rem; }
.testimonial-card blockquote { margin: 0; font-size: 1.05rem; line-height: 1.8; }
.testimonial-card figcaption { padding-top: 1rem; border-top: 1px solid var(--line); color: var(--muted); font-size: .9rem; }
.legal-copy { max-width: 75ch; }
.legal-copy h2 { padding-top: .5rem; }
.browse-link { font-size: .9rem; margin-top: 1rem; }
#sidebar .search-controls { flex-wrap: wrap; }
#sidebar .search-controls input { flex-basis: 100%; }
#sidebar .search-controls button { width: 100%; }
.home-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space); padding-bottom: 2rem; }
.home-card { min-width: 0; border: 1px solid var(--line); border-radius: var(--radius); overflow: hidden; background: #fff; }
.card-copy { padding: clamp(1.25rem, 3vw, 2.5rem); }
.card-copy h2 { margin-top: .5rem; }
.card-photo { background: #e4e6df; height: clamp(140px, 16vw, 215px); }
.card-photo img { width: 100%; height: 100%; object-fit: cover; }
.website-illustration { height: clamp(140px, 16vw, 215px); background: linear-gradient(135deg, #eee, #ddd); padding: 1.5rem 15% 0; overflow: hidden; }
.browser-bar { display: flex; gap: 5px; background: #ddd; border: 1px solid #bbb; padding: .6rem; border-radius: .5rem .5rem 0 0; }
.browser-bar i { width: 7px; height: 7px; border-radius: 50%; background: #a50909; }
.browser-bar i:nth-child(2) { background: #de8f2f; }
.browser-bar i:nth-child(3) { background: #718258; }
.browser-content { background: #fff; padding: 1.25rem; border: 1px solid #ccc; min-height: 160px; }
.illustration-title { width: 65%; height: .8rem; background: var(--red); border-radius: .2rem; }
.illustration-line { height: .4rem; margin-block: .75rem 1rem; background: #ddd; width: 90%; }
.illustration-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: .6rem; }
.illustration-grid span { height: 60px; background: linear-gradient(#f7ad5a, #ffe5c4); border-radius: .3rem; }
.town-illustration { display: flex; align-items: flex-end; justify-content: center; gap: 5%; height: clamp(140px, 16vw, 215px); padding: 1.5rem 10% 0; border-bottom: 12px solid #d6c6b6; background: linear-gradient(#e7eef0, #fff5dd); overflow: hidden; }
.town-illustration span { position: relative; width: 27%; height: 72%; background: #e8c9a7; border: 1px solid #bb9675; border-radius: .25rem .25rem 0 0; }
.town-illustration span:nth-child(2) { height: 90%; background: #d7d4cb; }
.town-illustration span::before { content: ""; position: absolute; inset: 45% -5% auto; height: 17%; border-radius: .15rem .15rem .4rem .4rem; background: repeating-linear-gradient(90deg, #a50909 0 14%, #fff8ec 14% 28%); box-shadow: 0 3px 4px #0001; }
.town-illustration span::after { content: ""; position: absolute; inset: 67% 12% 0; background: linear-gradient(90deg, #627b80 0 57%, #fff0dd 57% 63%, #627b80 63%); border: 3px solid #fff0dd; border-bottom: 0; }
#footer { clear: both; padding: 2.5rem 1rem; margin-top: 2rem; border-top: 1px solid var(--line); text-align: center; color: var(--muted); font-size: .9rem; background: transparent; }
.footer-brand { color: var(--red); font-size: 1.4rem; font-weight: 750; text-decoration: none; }
#footer nav { display: flex; justify-content: center; flex-wrap: wrap; gap: .3rem 1.5rem; margin-block: 1rem; }
#footer nav a { display: inline-flex; min-height: 44px; align-items: center; color: var(--ink); }
.back-to-top { clear: both; margin-top: 2rem; }
.back-to-top a, .top a[href="#masthead"] { display: inline-flex; align-items: center; gap: .5rem; min-height: 44px; text-decoration: none; }
.back-to-top-label { text-decoration: underline; text-underline-offset: .2em; }
fieldset { margin: 0 0 1.5rem; padding: 1.25rem; border: 1px solid var(--line); border-radius: .7rem; min-width: 0; }
legend { max-width: 100%; padding-inline: .5rem; font-weight: 700; color: var(--red); white-space: normal; }
label { display: inline-block; margin-bottom: .4rem; }
input:not([type="checkbox"]):not([type="radio"]):not([type="submit"]):not([type="button"]):not([type="hidden"]):not([type="image"]),
select, textarea {
  max-width: 100%; min-height: 44px; padding: .6rem .75rem; border: 1px solid #888;
  border-radius: .4rem; background: #fff; color: var(--ink); font-size: 1rem;
}
textarea { min-height: 10rem; width: 100%; resize: vertical; }
input[type="checkbox"], input[type="radio"] { width: 1.25rem; height: 1.25rem; accent-color: var(--red); vertical-align: middle; }
form:not(.town-search) fieldset > label { display: block; margin-top: .75rem; }
form:not(.town-search) fieldset > input:not([type="checkbox"]):not([type="radio"]):not([type="submit"]):not([type="hidden"]), form fieldset > select { width: min(100%, 38rem); }
.required, .important { color: #940707; font-weight: 650; }
.grey_box, .info_box, .white_box, .message, .item, #towninfo { padding: 1.25rem; margin-block: 1rem; border: 1px solid var(--line); border-radius: .75rem; background: var(--surface); overflow-wrap: anywhere; }
.message:empty { display: none; }
.message.is-error, .account-status.is-error { border-color: #b51a1a; background: #fff0ed; color: #810b0b; }
.account-status { padding: .8rem 1rem; border-left: 4px solid #aeb8a0; background: #f3f6ed; margin-block: 1rem; }
.account-status:empty { display: none; }
[aria-busy="true"] { cursor: progress; }
.account-status.is-loading::before { content: ""; display: inline-block; width: 1rem; height: 1rem; margin-right: .5rem; border: 2px solid #bbb; border-top-color: var(--red); border-radius: 50%; animation: spin .7s linear infinite; }
@keyframes spin { to { transform: rotate(360deg); } }
.is-saved { animation: saved 1s ease-out; }
@keyframes saved { from { background-color: #ffdfb4; } }
table { display: block; overflow-x: auto; width: 100%; border-collapse: collapse; margin-block: 1rem; font-size: .95rem; }
td, th { text-align: left; padding: .75rem; vertical-align: top; border-bottom: 1px solid var(--line); overflow-wrap: anywhere; }
th { background: #eee; }
.table-scroll { overflow-x: auto; max-width: 100%; }
.table-scroll table { display: table; min-width: 34rem; }
.greybackground { background: #f4f4f4; }
.bold { font-weight: 700; }
.italic { font-style: italic; }
.center { text-align: center; }
.right { text-align: right; }
.clear { clear: both; }
br.clear { display: block; margin-bottom: .5rem; }
.image_left, .content_left_image { float: left; max-width: 40%; margin: 0 1.25rem 1rem 0; }
.content_right_image { float: right; max-width: 35%; margin: 0 0 1rem 1.25rem; }
.content_right_image > .material-symbols-rounded { display: block; font-size: 4rem; color: var(--red); }
.content_left_image_info { color: var(--red); display: inline-block; margin-bottom: 1rem; }
.content_left_image_info .material-symbols-rounded { font-size: 2rem; }
.sidebar_control a { display: flex !important; min-height: 44px; padding: .65rem .8rem !important; border-radius: .4rem; text-decoration: none; }
.sidebar_control a.current, .sidebar_control a:hover { background: var(--red); color: #fff; }
blockquote, figure { margin-inline: 0; }
.stats { font-size: 2rem; font-weight: 750; color: var(--red); margin-bottom: 0; }
.price-callout { float: right; padding: 1.5rem; margin: 0 0 1.5rem 1.5rem; max-width: 240px; border-radius: 1rem; background: #fff0dd; border: 1px solid #e6bb86; text-align: center; }
.price-callout strong { display: block; color: var(--red); font-size: 2.5rem; }
.faq dt { font-weight: 750; margin-top: 1.5rem; color: var(--red); }
.faq dd { margin: .6rem 0 1.5rem; }
.help dt { font-weight: 650; color: var(--ink); }
.help dd { margin: .65rem 0 1.5rem; color: var(--muted); }
.content_left_image_help { margin-block: .5rem; }
.tick { list-style: none; padding: 0; }
.tick li { padding: .5rem 0 .5rem 1.5rem; position: relative; }
.tick li::before { content: ""; position: absolute; left: .1rem; top: .9rem; width: .45rem; height: .75rem; border: solid #516a25; border-width: 0 2px 2px 0; transform: rotate(45deg); }
#businesses ul { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .5rem; padding: 0; list-style: none; }
#businesses a { display: flex; align-items: center; min-height: 44px; padding: .75rem; border: 1px solid var(--line); border-radius: .5rem; }
#towninfo { background: linear-gradient(120deg, #fff, #fff1df); margin-block: 1.5rem; padding: var(--space); }
#towninfo h1 { font-size: clamp(1.75rem, 3vw, 2.5rem); }
.layout-buttons > #container #content > .town-search { max-width: 620px; margin-block: 1.5rem; }
#buttons { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.25rem; margin-block: 1.5rem; }
.button { position: relative; border-radius: .9rem; border: 1px solid #950808; background: linear-gradient(145deg, #b71414, #850909); color: #fff; box-shadow: 0 6px 18px #72070714; padding: 1.5rem; transition: transform .18s, box-shadow .18s; }
.button:hover, .button:focus-within { transform: translateY(-3px); box-shadow: 0 10px 24px #72070724; }
.button_main { display: flex; flex-direction: column; height: 100%; }
.button_content_top { flex: 1; }
.button a { color: inherit; text-decoration: none; }
.button h3 { font-size: 1.2rem; line-height: 1.4; margin: 0 0 1.25rem; }
.button h3 a::after { content: ""; position: absolute; inset: 0; border-radius: inherit; }
.button h4 { font-size: .95rem; margin: 0; padding-top: 1rem; border-top: 1px solid #ffffff50; font-weight: 500; }
.button_content_bottom p { margin: .75rem 0 0; font-size: .8rem; }
.button.orange, .button.orangefull { color: #542900; border-color: #e5ba85; background: linear-gradient(145deg, #fff0dc, #ffdbab); box-shadow: 0 6px 18px #aa671912; }
.button.yellow { color: #423400; border-color: #e0ce8b; background: linear-gradient(145deg, #fff9de, #ffeaa6); box-shadow: 0 6px 18px #a88b2112; }
.button.micro { background: linear-gradient(145deg, #fff, #f0efed); color: #333; border-color: #d3ceca; box-shadow: 0 6px 18px #36210c0a; }
.button.micro h4, .button.orange h4, .button.orangefull h4, .button.yellow h4 { border-color: #8d592333; }
.button_top, .button_bottom { display: none; }
.showbox { margin: 2rem auto; padding: var(--space); max-width: 60rem; border: 1px solid var(--line); border-radius: var(--radius); background: #fff; }
.showbox .content { margin-block: 1rem; }
.enhanced-dialog-source { display: none; }
dialog { padding: 0; width: min(92vw, 900px); max-height: 88dvh; border: 1px solid #bbb; border-radius: 1rem; box-shadow: 0 20px 70px #0005; color: var(--ink); }
dialog::backdrop { background: #171111ad; }
.dialog-toolbar { display: flex; justify-content: flex-end; gap: .5rem; padding: .75rem; border-bottom: 1px solid var(--line); }
.dialog-content { padding: var(--space); overflow-wrap: anywhere; }
.dialog-content > img { display: block; margin: auto; max-height: 65dvh; object-fit: contain; }
.dialog-content .showbox { border: 0; padding: 0; margin: 0; }
.dialog-content .close, .dialog-content .lbAction { display: none; }
body.modal-open { overflow: hidden; }
details { border: 1px solid var(--line); padding: .75rem; border-radius: .4rem; }
summary { cursor: pointer; min-height: 44px; display: list-item; font-weight: 650; }
#features details { border: 0; padding: 0; }
.layout-login #container_content { max-width: 540px; padding-block: 2rem; }
.layout-login #logo { margin-bottom: 2rem; }
.layout-login #logo img { width: 300px; }
.layout-login #loginuser .input { width: 100%; }
.layout-login #message { padding: 1rem; background: #fff1df; border-radius: .5rem; margin-block: 1rem; }
.layout-login #footer { max-width: 540px; margin-inline: auto; padding-top: 1rem; }
.layout-login h1 { font-size: 1.3rem; }
.layout-login #footer h2 { font-size: 1.3rem; }
.layout-website { --theme: #9c4600; }
.theme-2 { --theme: #475b67; }
.theme-3 { --theme: #00659b; }
.theme-4 { --theme: #396125; }
.theme-5 { --theme: #9c290e; }
.theme-6 { --theme: #515151; }
.theme-7 { --theme: #9d267f; }
.theme-8 { --theme: #00659b; }
.theme-9 { --theme: #00622e; }
.theme-10 { --theme: #8e161c; }
.theme-11 { --theme: #846300; }
.contributor-notice { max-width: 1440px; margin: auto; padding: 1rem; text-align: center; font-size: .85rem; color: var(--muted); }
address { font-style: normal; }
.layout-website #container { padding-inline: var(--space); }
.layout-website #masthead, .layout-website #container_content, .layout-website #footer { width: 100%; max-width: 1440px; margin-inline: auto; }
.layout-website #content_inner { display: grid; grid-template-columns: minmax(210px, 280px) minmax(0, 1fr); gap: 1.5rem; }
.layout-website #content_inner > #sidebar, .layout-website #content_inner > #body { align-self: start; }
.layout-website #sidebar > .images, .layout-website #galleryactive { margin-top: 0; }
.layout-website h1, .layout-website h2, .layout-website h3, .layout-website h4, .layout-website a { color: var(--theme); }
.layout-website #navigation a:hover, .layout-website #navigation a[aria-current] { color: #fff; background: var(--theme); }
.layout-website #sidebar h3 { border-color: var(--theme); color: var(--theme); }
.layout-website .button-link { background: var(--theme); border-color: var(--theme); color: #fff; }
.layout-website .button-link.secondary { background: #fff; color: var(--theme); }
.layout-website #masthead .brand { flex-shrink: 0; }
.layout-website #info { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .75rem; flex: 0 1 42rem; min-width: 0; }
.layout-website #info .button-link { padding: .65rem 1rem; line-height: 1.4; text-align: center; }
.layout-website #info .material-symbols-rounded, #header_widgets .material-symbols-rounded { width: 1em; flex-shrink: 0; }
.layout-website #header, .layout-website #navigation, .layout-website #date, .layout-website #content_widgets, .layout-website #content_inner > .message { grid-column: 1 / -1; }
.layout-website #header { display: grid; grid-template-columns: 1.5fr 1fr; gap: 1.5rem; padding: var(--space); border-radius: 1rem; background: var(--theme); color: #fff; }
.layout-website #header h1, .layout-website #header h2, .layout-website #header a { color: inherit; }
.layout-website #header h2 { font-size: 1.25rem; margin-block: .75rem; }
.layout-website #header p { margin-bottom: .4rem; }
#header_widgets { display: flex; flex-wrap: wrap; gap: .5rem; grid-column: 1 / -1; }
#header_widgets a, #header_widgets button { min-height: 44px; display: inline-flex; align-items: center; gap: .65rem; padding: .6rem .85rem; border: 1px solid #fff9; border-radius: .4rem; background: #ffffff12; color: #fff; text-decoration: none; }
.layout-website #navigation { border: 1px solid var(--line); border-radius: .6rem; padding: .4rem; }
.layout-website #body { min-width: 0; }
.layout-website .box h3 { margin: 0; padding: .9rem 1.1rem; background: var(--theme); color: #fff; border-radius: .5rem; }
.layout-website #sidebar .box h3 { margin-top: 0; color: #fff; border: 0; }
.news-item { background: #fff; border-inline-start: 3px solid var(--theme, var(--red)); }
.news-item header { display: grid; gap: .5rem; margin-bottom: 1rem; }
.news-item h4 { margin: 0; font-size: 1.1rem; }
.news-item time { color: var(--muted); font-size: .85rem; }
.news-body { display: flow-root; }
.news-body > :last-child, .news-item > p:last-child { margin-bottom: 0; }
.news-item > .news-more { margin-top: 1rem; }
.news-more a { display: inline-flex; align-items: center; min-height: 44px; }
.layout-website #date { text-align: right; font-size: .85rem; color: var(--muted); }
#gallery, #sidebargallery { display: grid; grid-template-columns: repeat(auto-fit, minmax(85px, 1fr)); gap: .75rem; padding: 0; list-style: none; margin-block: 1rem; }
#gallery li, #sidebargallery li { background: none !important; margin: 0; min-width: 0; }
#gallery a, #sidebargallery a { display: block; }
#gallery img, #sidebargallery img { display: block; width: 100%; aspect-ratio: 1; object-fit: cover; border-radius: .4rem; }
#sidebargallery .active a { outline: 3px solid var(--theme); outline-offset: 2px; }
#galleryactive img { width: 100%; border-radius: .5rem; }
#galleryactive a, #galleryactive img { display: block; }
.rich-text { display: flow-root; min-width: 0; color: var(--ink); font-size: 1rem; line-height: 1.75; overflow-wrap: anywhere; }
.rich-text :where(div, p, span, font, center, li, td, th, a, strong, em, b, i, u) { font-family: inherit !important; font-size: inherit !important; line-height: inherit !important; }
.rich-text :where(div, p, span, font, center, li, table, thead, tbody, tfoot, tr, td, th, strong, em, b, i, u) { color: inherit !important; background: transparent !important; }
.rich-text :where(div, p, table, img, iframe, video, object, embed) { max-width: 100% !important; }
.rich-text :where(div, p, td, th) { height: auto !important; }
.rich-text p { margin: 0 0 1.1em !important; }
.rich-text p:empty { display: none; }
.rich-text :where(h1, h2, h3, h4, h5, h6) { font-family: inherit !important; color: var(--theme, var(--red)) !important; line-height: 1.3 !important; font-weight: 650 !important; margin: 1.6em 0 .7em !important; background: transparent !important; }
.rich-text :where(h1, h2) { font-size: clamp(1.4rem, 2vw, 1.85rem) !important; }
.rich-text h3 { font-size: 1.2rem !important; }
.rich-text :where(h4, h5, h6) { font-size: 1.05rem !important; }
.rich-text > :first-child { margin-top: 0 !important; }
.rich-text > :last-child { margin-bottom: 0 !important; }
.rich-text :where(div, section, article) > :first-child { margin-top: 0 !important; }
.rich-text img { height: auto !important; border-radius: .5rem; }
.rich-text a { color: var(--theme, var(--red)) !important; }
.rich-text table { border: 0 !important; border-collapse: collapse; }
.rich-text :where(td, th) { padding: .65rem .75rem !important; border: 0 !important; border-bottom: 1px solid var(--line) !important; white-space: normal !important; }
.rich-text .table-scroll { margin-block: 1.25rem; }
.rich-text .table-scroll table { margin: 0; }
.rich-text blockquote { margin: 1.5rem 0; padding: .75rem 1.25rem; border-inline-start: 3px solid var(--theme, var(--red)); background: var(--surface); }
.rich-text :where(pre, code) { font-family: ui-monospace, monospace; }
.rich-text pre { max-width: 100%; overflow-x: auto; padding: 1rem; border-radius: .5rem; background: var(--surface); }
.layout-admin #container_content { max-width: 1440px; width: calc(100% - 2 * var(--space)); font-size: 1rem; }
.layout-admin #content, .layout-admin #tabcontent, .layout-admin #tabs { width: 100%; height: auto; min-width: 0; }
.layout-admin #content { padding-block: var(--space); }
.admin-intro { margin-bottom: 2rem; }
.admin-intro .eyebrow { overflow-wrap: anywhere; }
.admin-intro h1 { margin-bottom: .75rem; }
.admin-intro > p:last-child, .admin-section-intro { color: var(--muted); }
.admin-workspace { display: grid; grid-template-columns: 14rem minmax(0, 1fr); gap: 1.5rem; align-items: start; }
.layout-admin #tabs { padding: .75rem; background: #fff; border: 1px solid var(--line); border-radius: var(--radius); }
.layout-admin #tabs ul { flex-direction: column; }
.layout-admin #tabs li { margin: 0; }
.layout-admin #tabs li, .layout-admin #tabs a { float: none; width: auto; height: auto; }
.layout-admin #tabs a { gap: .65rem; padding: .7rem .85rem; font-size: .95rem; color: var(--muted); }
.layout-admin #tabs a:hover { background: var(--surface); color: var(--red); }
.layout-admin #tabs a.current, .layout-admin #tabs a.current:hover { background: var(--red); color: #fff; }
.layout-admin #tabs .material-symbols-rounded { width: 1em; flex-shrink: 0; }
.admin-panel { min-width: 0; padding: var(--space); border: 1px solid var(--line); border-radius: var(--radius); background: #fff; box-shadow: 0 8px 32px #36210c08; }
.layout-admin #tabcontent > h2 { margin-top: 0; font-size: 1.6rem; }
.layout-admin #tabcontent:focus { outline: none; }
.layout-admin #tabcontent .table-scroll { margin-block: 1.5rem; border: 1px solid var(--line); border-radius: .65rem; }
.layout-admin #tabcontent table { margin-block: 0; font-size: .875rem; }
.layout-admin #tabcontent th { background: var(--surface); color: var(--muted); font-weight: 650; white-space: nowrap; }
.layout-admin #tabcontent tr:nth-child(even) { background: #faf9f7; }
.layout-admin #tabcontent td { vertical-align: middle; }
.layout-admin #tabcontent tr:hover td { background: #fff8ee; }
.layout-admin #tabcontent td a { display: inline-flex; align-items: center; gap: .35rem; min-height: 44px; }
.layout-admin #tabcontent td a .icon-label { margin: 0; }
.layout-admin #tabcontent td a .material-symbols-rounded { flex-shrink: 0; }
.layout-admin #tabcontent :is(input[type="text"], input[type="email"], input[type="password"], select, textarea) { width: min(100%, 38rem); }
.admin-dashboard { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 15rem), 1fr)); gap: 1rem; margin-top: 1.5rem; }
.admin-card { display: grid; grid-template-columns: 44px minmax(0, 1fr); gap: .3rem 1rem; padding: 1.25rem; border: 1px solid var(--line); border-radius: .75rem; background: #fff; color: var(--ink); text-decoration: none; overflow-wrap: anywhere; transition: border-color .18s, box-shadow .18s, transform .18s; }
.admin-card:hover { border-color: var(--red); color: var(--ink); box-shadow: 0 6px 20px #72070710; transform: translateY(-2px); }
.admin-card-icon { grid-row: 1 / 3; display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; background: #fff1df; color: var(--red); border-radius: .65rem; }
.admin-card-title { font-weight: 700; font-size: 1.05rem; }
.admin-card-description { grid-column: 2; font-size: .875rem; line-height: 1.6; color: var(--muted); }
.admin-metrics { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 13rem), 1fr)); gap: 1rem; margin: 1.5rem 0; }
.admin-metrics > div { padding: 1.25rem; border: 1px solid var(--line); border-radius: .75rem; background: var(--surface); }
.admin-metrics dt { color: var(--muted); font-size: .875rem; }
.admin-metrics dd { margin: .5rem 0 0; color: var(--red); font-size: 2rem; font-weight: 750; overflow-wrap: anywhere; }
.admin-list-search { margin-block: 1.5rem 1rem; padding: 1.25rem; border: 1px solid var(--line); border-radius: .75rem; background: var(--surface); }
.admin-list-search > label { display: block; font-weight: 650; }
.admin-search-controls { display: flex; flex-wrap: wrap; align-items: stretch; gap: .65rem; }
.admin-search-controls input { flex: 1 1 14rem; min-width: 0; width: 100%; }
.admin-search-hint { margin: .75rem 0 0; color: var(--muted); font-size: .8rem; }
.admin-result-summary { color: var(--muted); font-size: .9rem; overflow-wrap: anywhere; }
.admin-pagination { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 1rem; margin-block: 1.25rem; }
.admin-pagination nav { display: flex; flex-wrap: wrap; align-items: center; gap: .35rem; min-width: 0; }
.admin-pagination nav button, .admin-pagination .pagination-current { display: inline-flex; align-items: center; justify-content: center; min-width: 44px; min-height: 44px; padding: .45rem .65rem; border: 1px solid var(--line); border-radius: .45rem; font-size: .875rem; font-weight: 650; }
.admin-pagination nav button { background: #fff; color: var(--ink); }
.admin-pagination nav button:hover:not(:disabled) { border-color: var(--red); color: var(--red); }
.admin-pagination nav button:disabled { cursor: default; opacity: .45; box-shadow: none; }
.admin-pagination .pagination-current { background: var(--red); border-color: var(--red); color: #fff; }
.admin-pagination .pagination-gap { padding-inline: .25rem; color: var(--muted); }
.admin-page-jump { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem; font-size: .875rem; }
.admin-page-jump label { margin: 0; }
.admin-page-jump input { width: 5rem; min-width: 0; }
.admin-page-jump button { padding: .45rem .8rem; }
.pagination { display: flex; justify-content: center; flex-wrap: wrap; gap: .5rem; margin-block: 1rem; }
.paginationlink a { display: inline-flex; padding: .5rem .75rem; min-height: 44px; border: 1px solid var(--line); border-radius: .3rem; }
@media (min-width: 1200px) {
  .content-layout { grid-template-columns: minmax(250px, 300px) minmax(0, 1fr); }
  #buttons { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}
@media (max-width: 1023px) {
  .usercp-inner { grid-template-columns: minmax(0, 1fr) auto; }
  #usercp .usercp-links { grid-column: 1 / -1; grid-row: 2; }
  #usercp .usercp-logout { grid-column: 2; grid-row: 1; align-self: start; }
  .admin-workspace { grid-template-columns: minmax(0, 1fr); gap: 1rem; }
  .layout-admin #tabs ul { flex-direction: row; flex-wrap: nowrap; overflow-x: auto; padding-bottom: .35rem; }
  .layout-admin #tabs li { flex: 0 0 auto; }
  .layout-admin #tabs a { white-space: nowrap; }
  .content-layout { grid-template-columns: 210px minmax(0, 1fr); gap: 1.25rem; }
  .content-layout > main { padding: 1.25rem; }
  #main_navigation a { padding-inline: .7rem; }
  #buttons { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 767px) {
  .layout-admin #masthead { flex-wrap: wrap; }
  .layout-admin .header-actions { max-width: 100%; }
  .admin-card { padding: 1rem; column-gap: .65rem; }
  .menu-toggle { display: flex; }
  #masthead { padding-block: 1rem; }
  .brand { flex-basis: 240px; }
  .header-actions { gap: .4rem; flex-shrink: 0; }
  .header-actions .button-link { padding-inline: .7rem; }
  .header-actions .button-link:last-child:not(:first-child) { display: none; }
  .js-navigation #main_navigation { display: none; padding-top: .5rem; }
  .js-navigation #main_navigation.is-open { display: flex; }
  #main_navigation { flex-direction: column; }
  #main_navigation a { width: 100%; }
  .content-layout { display: flex; flex-direction: column; gap: 1.5rem; }
  .content-layout > main { order: -1; width: 100%; }
  .content-layout > #sidebar { width: 100%; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .75rem 1.5rem; }
  .content-layout > #sidebar > * { grid-column: 1 / -1; }
  .content-layout > #sidebar .town-search { max-width: 35rem; }
  .account-layout > #sidebar { order: -2; display: block; }
  .account-layout .sidebar_control ul { display: flex; flex-wrap: nowrap; gap: .5rem; overflow-x: auto; padding-bottom: .6rem; margin: 0; }
  .account-layout .sidebar_control li { flex: 0 0 auto; margin: 0; }
  .account-layout .sidebar_control a { background: #f1f1f1; }
  .account-layout .sidebar_control a.current { background: var(--red); }
  #sidebar .search-controls { flex-wrap: nowrap; }
  #sidebar .search-controls input { flex-basis: auto; }
  #sidebar .search-controls button { width: auto; }
  .home-grid { grid-template-columns: 1fr; }
  .home-hero { padding-inline: 0; }
  .card-photo, .website-illustration, .town-illustration { height: 190px; }
  .layout-website #content_inner { grid-template-columns: 1fr; }
  .layout-website #body { grid-row: 4; }
  .layout-website #header { grid-template-columns: 1fr; }
  .layout-website #header_contact { border-top: 1px solid #fff8; padding-top: 1rem; }
  .layout-website #masthead { flex-wrap: wrap; }
  .layout-website #info { width: 100%; flex-basis: 100%; }
}
@media (max-width: 479px) {
  #usercp a { gap: .4rem; padding-inline: .5rem; }
  .layout-website #info { grid-template-columns: 1fr; gap: .5rem; }
  .highlight-strip { grid-template-columns: 1fr; gap: 1rem; padding-block: 1.25rem; }
  .highlight-strip > div { display: flex; align-items: baseline; justify-content: space-between; gap: 1rem; }
  .highlight-strip strong { font-size: 1.2rem; }
  .highlight-strip span { text-align: right; }
  .rich-text img { float: none !important; display: block; margin-inline: auto !important; }
  #buttons, #businesses ul { grid-template-columns: 1fr; }
  .home-hero h1 { font-size: 2.45rem; }
  .search-controls { flex-wrap: wrap; }
  .search-controls input { flex-basis: 100%; }
  .search-controls button { width: 100%; }
  .town-options { top: 3.3rem; }
  .content_right_image, .content_left_image, .image_left { float: none; max-width: 100%; margin: 0 0 1rem; }
  td, th { padding: .5rem; }
  fieldset { padding: .8rem; }
  #sidebar .search-controls { flex-wrap: wrap; }
  #sidebar .search-controls button { width: 100%; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
}
@media print {
  #navbar, #usercp, .header-actions, .town-search, .skip-link, #header_widgets, .back-to-top, #sidebar, #footer nav { display: none !important; }
  #container, .layout-website #container { background: #fff; padding: 0; }
  #container_content, .layout-website #container_content { width: 100%; }
  .content-layout, .layout-website #content_inner { display: block; }
  .content-layout > main { border: 0; padding: 0; }
  .layout-website #header { background: #fff; color: #000; border: 1px solid #888; }
  a { color: #000; }
}
