*{box-sizing:border-box}
html{font-family:Arial,Helvetica,sans-serif;color:var(--text);background:var(--background);line-height:1.5}
body{margin:0;min-height:100vh;background:var(--background)}
a{color:var(--primary);text-decoration:none}
a:hover{text-decoration:underline}
img{max-width:100%;height:auto;display:block}
.site-header{position:sticky;top:0;z-index:10;display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.9rem 1.25rem;background:var(--surface);border-bottom:1px solid rgba(23,35,38,.14);box-shadow:0 2px 12px rgba(23,35,38,.06)}
.brand{font-weight:800;font-size:1.15rem;color:var(--text);letter-spacing:0}
.main-nav{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap}
.main-nav a{color:var(--text);font-weight:700;padding:.45rem .55rem;border-radius:6px}
.main-nav a:hover{background:rgba(31,111,120,.1);text-decoration:none}
.nav-toggle{display:none;border:1px solid rgba(23,35,38,.22);background:var(--surface);border-radius:6px;padding:.35rem .55rem;font-size:1.2rem}
main{min-height:calc(100vh - 132px)}
.hero{min-height:calc(100vh - 86px);display:grid;align-items:center;padding:clamp(2rem,6vw,5rem);background:linear-gradient(100deg,rgba(23,35,38,.92) 0%,rgba(23,35,38,.78) 44%,rgba(31,111,120,.18) 45%,rgba(247,248,245,.78) 100%),radial-gradient(circle at 78% 32%,rgba(199,80,42,.28),transparent 24rem),linear-gradient(135deg,#30585d,#f7f8f5)}
.hero-copy{max-width:760px;color:#fff}
.eyebrow{text-transform:uppercase;font-size:.82rem;font-weight:800;letter-spacing:.08em;margin:0 0 .75rem}
.hero h1{font-size:clamp(2.8rem,8vw,6.5rem);line-height:.9;margin:0 0 1rem;letter-spacing:0}
.hero p{font-size:1.18rem;max-width:640px;margin:0 0 1.5rem}
.choice-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;max-width:720px}
.choice-card{display:flex;flex-direction:column;gap:.4rem;min-height:132px;padding:1rem;border:1px solid rgba(255,255,255,.32);border-radius:8px;background:rgba(255,255,255,.12);color:#fff;backdrop-filter:blur(10px)}
.choice-card span{font-size:1.3rem;font-weight:800}
.choice-card strong{font-weight:500;color:rgba(255,255,255,.88)}
.choice-card:hover{background:rgba(255,255,255,.2);text-decoration:none}
.page-head{padding:2rem 1.25rem 1rem;max-width:1100px;margin:0 auto}
.page-head h1{font-size:clamp(2rem,4vw,3.8rem);line-height:1;margin:0 0 .6rem;letter-spacing:0}
.page-head p{margin:0;max-width:760px;color:rgba(23,35,38,.78)}
.compact{display:flex;align-items:flex-end;justify-content:space-between;gap:1rem;flex-wrap:wrap}
.actions{display:flex;gap:.6rem;flex-wrap:wrap}
.directory-tools{display:grid;grid-template-columns:2fr 1fr 1fr;gap:.75rem;padding:0 1.25rem 1rem;max-width:1400px;margin:0 auto}
label{font-weight:700;display:flex;flex-direction:column;gap:.35rem}
input,select,textarea{font:inherit;border:1px solid rgba(23,35,38,.24);border-radius:6px;background:#fff;color:var(--text);padding:.65rem .75rem;width:100%}
textarea{min-height:150px;resize:vertical}
button,.button{border:0;border-radius:6px;background:var(--primary);color:#fff;font:inherit;font-weight:800;padding:.72rem .95rem;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;text-decoration:none}
button:hover,.button:hover{filter:brightness(.94);text-decoration:none}
.secondary{background:var(--accent)}
.table-shell{width:100%;overflow:auto;padding:0 0 1.5rem}
.directory-table{width:100%;min-width:1180px;border-collapse:collapse;background:var(--surface);font-size:.92rem;table-layout:fixed}
.directory-table th,.directory-table td{border:1px solid rgba(23,35,38,.16);padding:.55rem .65rem;vertical-align:top;text-align:left;overflow-wrap:anywhere}
.directory-table th{position:sticky;top:0;background:#edf3f1;z-index:2;cursor:pointer;white-space:nowrap}
.directory-table tr:nth-child(even){background:rgba(31,111,120,.04)}
.directory-table tr[hidden]{display:none}
.pin-col{position:sticky;left:0;background:inherit;z-index:3;text-align:center;min-width:44px}
.directory-table th.pin-col{z-index:4;background:#edf3f1}
.directory-table [data-sort-key="featured"],.directory-table .pin-col{width:46px}
.directory-table [data-sort-key="name"],.directory-table [data-key="name"]{width:17rem}
.directory-table [data-sort-key="tag"],.directory-table [data-key="tag"],.directory-table [data-sort-key="type"],.directory-table [data-key="type"]{width:13rem}
.directory-table [data-sort-key="city"],.directory-table [data-key="city"]{width:8rem}
.directory-table [data-sort-key="zip"],.directory-table [data-key="zip"]{width:5.5rem}
.directory-table [data-sort-key="address1"],.directory-table [data-key="address1"],.directory-table [data-sort-key="address2"],.directory-table [data-key="address2"]{width:14rem}
.directory-table [data-sort-key="full_address"],.directory-table [data-key="full_address"]{width:18rem}
.directory-table [data-sort-key="phone1"],.directory-table [data-key="phone1"],.directory-table [data-sort-key="phone2"],.directory-table [data-key="phone2"],.directory-table [data-sort-key="fax"],.directory-table [data-key="fax"]{width:9rem;white-space:nowrap}
.directory-table [data-sort-key="website"],.directory-table [data-key="website"],.directory-table [data-sort-key="email"],.directory-table [data-key="email"],.directory-table [data-sort-key="source"],.directory-table [data-key="source"]{width:11rem}
.directory-table [data-sort-key="latitude"],.directory-table [data-key="latitude"],.directory-table [data-sort-key="longitude"],.directory-table [data-key="longitude"],.directory-table [data-sort-key="found"],.directory-table [data-key="found"],.directory-table [data-sort-key="quality"],.directory-table [data-key="quality"]{width:8rem}
.directory-table [data-sort-key="description"],.directory-table [data-key="description"],.directory-table [data-sort-key="full_search"],.directory-table [data-key="full_search"]{width:24rem}
.directory-table [data-sort-key="image_url"],.directory-table [data-key="image_url"]{width:12rem}
.featured-cell{color:#b77900;font-size:1.1rem}
.detail-star{color:#b77900}
.rss-link{display:inline-flex;margin-top:1rem;font-weight:800}
.event-filter{max-width:1100px;margin:0 auto;padding:0 1.25rem 1rem}
.event-filter label,.check-row{flex-direction:row;align-items:center;gap:.5rem}
.event-filter input,.check-row input{width:auto}
.event-list{display:grid;gap:1rem;max-width:1100px;margin:0 auto;padding:0 1.25rem 2rem}
.event-card{display:grid;grid-template-columns:220px 1fr;gap:1rem;padding:1rem;background:var(--surface);border:1px solid rgba(23,35,38,.13);border-radius:8px}
.event-card img{width:220px;aspect-ratio:4/3;object-fit:cover;border-radius:6px;background:#d7ddd7}
.event-card time,.detail-page time{display:block;color:var(--accent);font-weight:800;margin-bottom:.25rem}
.event-card h2{margin:.1rem 0 .35rem;font-size:1.35rem;line-height:1.2}
.event-card p{margin:.25rem 0}
.location{font-weight:800;color:rgba(23,35,38,.76)}
.detail-page{max-width:960px;margin:0 auto;padding:2rem 1.25rem}
.detail-page h1{font-size:clamp(2rem,5vw,4rem);line-height:1;margin:.7rem 0 1rem;letter-spacing:0}
.detail-image{width:100%;max-height:440px;object-fit:cover;border-radius:8px;margin:0 0 1rem}
.back-link{font-weight:800}
.detail-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem;margin:1rem 0}
.detail-list div{background:var(--surface);border:1px solid rgba(23,35,38,.14);border-radius:8px;padding:.8rem}
.detail-list dt{font-weight:800;color:rgba(23,35,38,.68)}
.detail-list dd{margin:0;overflow-wrap:anywhere}
.prose{font-size:1.05rem}
.form-page{max-width:980px;margin:0 auto;padding:2rem 1.25rem}
.narrow{max-width:560px}
.panel-form{display:grid;gap:1rem;background:var(--surface);border:1px solid rgba(23,35,38,.14);border-radius:8px;padding:1rem}
.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}
.wide{grid-column:1/-1}
.notice{max-width:980px;margin:1rem auto;padding:.85rem 1rem;border-radius:8px;font-weight:800}
.notice.success{background:#e5f6ec;color:#135c2f;border:1px solid #9bd4b1}
.notice.error{background:#ffe8e3;color:#87240f;border:1px solid #efad9d}
.admin-wrap{max-width:1400px;margin:0 auto;padding:1rem 1.25rem 2rem}
.admin-nav{display:flex;gap:.5rem;flex-wrap:wrap;margin-bottom:1rem}
.admin-nav a{padding:.5rem .65rem;border-radius:6px;background:rgba(31,111,120,.1);font-weight:800;color:var(--text)}
.stat-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}
.stat-card{display:flex;flex-direction:column;gap:.5rem;background:var(--surface);border:1px solid rgba(23,35,38,.14);border-radius:8px;padding:1rem;color:var(--text)}
.stat-card span{font-weight:800;color:rgba(23,35,38,.72)}
.stat-card strong{font-size:2rem}
.admin-table-wrap{width:100%;overflow:auto;background:var(--surface);border:1px solid rgba(23,35,38,.14);border-radius:8px}
.admin-table{width:100%;border-collapse:collapse;min-width:820px}
.admin-table th,.admin-table td{border-bottom:1px solid rgba(23,35,38,.14);padding:.65rem;text-align:left;vertical-align:middle}
.admin-table th{background:#edf3f1}
.admin-table input{min-width:90px}
.row-actions{display:flex;gap:.5rem;align-items:center;flex-wrap:wrap}
.row-actions form{display:inline}
.row-actions button{padding:.35rem .5rem;background:#9f2d16}
.save-row{margin:1rem}
.seo-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}
fieldset{border:1px solid rgba(23,35,38,.18);border-radius:8px;padding:1rem}
legend{font-weight:800}
.site-footer{padding:1.2rem;text-align:center;background:var(--surface);border-top:1px solid rgba(23,35,38,.14)}
.site-footer p{margin:0}
@media (min-width:901px){.hide-desktop{display:none}}
@media (max-width:900px){.hide-tablet{display:none}.directory-tools{grid-template-columns:1fr 1fr}.event-card{grid-template-columns:160px 1fr}.event-card img{width:160px}.stat-grid{grid-template-columns:1fr}.seo-grid,.form-grid,.detail-list{grid-template-columns:1fr}}
@media (max-width:640px){.site-header{align-items:flex-start}.nav-toggle{display:block}.main-nav{display:none;width:100%;flex-direction:column;align-items:stretch}.main-nav.open{display:flex}.site-header{flex-wrap:wrap}.hero{min-height:auto;padding:3rem 1.25rem}.choice-grid{grid-template-columns:1fr}.directory-tools{grid-template-columns:1fr}.hide-mobile{display:none}.event-card{grid-template-columns:1fr}.event-card img{width:100%}.page-head,.form-page,.detail-page{padding-left:1rem;padding-right:1rem}.compact{align-items:flex-start}}
