/* Phase 2: reusable accessible design-system refinements */
:root{
  --focus:#ffdf73;
  --text-size:16px;
  --control-min:46px;
}
html{font-size:100%}
body{font-size:var(--text-size)}
p,li,dd,dt,label,input,select,textarea,button,a{font-size:1rem}
small,.note{font-size:1rem;line-height:1.5}
.lead{font-size:1.125rem;line-height:1.65}
.eyebrow{font-size:1rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase}
:focus-visible{outline:4px solid var(--focus);outline-offset:4px}
.touch-target,.btn,.icon-button,.side-nav a,.pagination a,.pagination span{min-height:var(--control-min)}
.mobile-menu-button{display:none;width:100%;min-height:48px;border:1px solid #8aa6a6;border-radius:9px;background:#fff;color:var(--navy);font-weight:800;padding:10px 12px;align-items:center;justify-content:center;gap:9px;margin:0 0 10px}
.brand:hover{text-decoration:none}
.phase2-hero{padding:28px 0 32px;text-align:center}.phase2-hero h1{font-family:Oswald,Impact,sans-serif;text-transform:uppercase;letter-spacing:.015em;font-size:clamp(2.25rem,5vw,3.75rem);line-height:1.05;margin:.15em 0;color:#fff;text-shadow:0 2px 6px rgba(0,0,0,.5)}.phase2-hero>p{font-size:1.125rem;max-width:840px;margin:0 auto 18px;color:#f3f8f7}
.search-strip{display:grid;grid-template-columns:minmax(240px,1.5fr) minmax(210px,1fr) auto auto;max-width:950px;margin:20px auto 0;background:rgba(5,47,53,.95);border:1px solid rgba(255,255,255,.35);border-radius:12px;overflow:hidden;box-shadow:var(--shadow)}
.search-field{display:grid;gap:4px;padding:10px 13px;border-right:1px solid rgba(255,255,255,.18);text-align:left}.search-field label{font-weight:800;color:#f5e7b9}.search-field input{width:100%;min-height:44px;background:#fff;color:#122f39;border:2px solid transparent;border-radius:7px;padding:9px 10px}.search-field input:focus-visible{outline:4px solid var(--focus);outline-offset:1px}.search-strip .btn{border-radius:0;min-width:100px}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:46px;padding:10px 16px;border:2px solid transparent;border-radius:9px;font-weight:850;cursor:pointer;text-decoration:none}.btn:hover{text-decoration:none}.btn-primary{background:var(--gold);color:#17303b;border-color:#9c7d36}.btn-secondary{background:var(--teal);color:#fff;border-color:#8eb8b6}.btn-ghost{background:#fff;color:var(--navy);border-color:#8aa6a6}.button-row{display:flex;flex-wrap:wrap;gap:10px}.icon-button{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:46px;padding:9px 12px;border:1px solid #8aa6a6;border-radius:9px;background:#fff;color:var(--navy);font-weight:800;cursor:pointer}
.category-card{min-height:84px}.category-copy{display:grid}.category-card strong{font-size:1.05rem}.category-card .category-copy>span{font-size:1rem;line-height:1.35}
.category-icon{font-size:1.35rem}.category-icon.burgundy{background:var(--burgundy)}.category-icon.teal{background:var(--teal)}
.business-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.business-grid.spaced{margin-top:18px}.business-card{display:grid;grid-template-columns:88px 1fr;gap:14px;background:#fffdf8;color:var(--ink);border:1px solid #c9d8d5;border-radius:12px;padding:16px;box-shadow:var(--shadow-sm)}.business-card.featured{border:2px solid var(--gold-2)}.business-thumb{width:88px;height:88px;border-radius:10px;background:linear-gradient(135deg,#dce9e6,#bcd2cf);display:grid;place-items:center;color:var(--teal);font-weight:900;font-size:1.2rem}.business-card h3{font-family:Oswald,Impact,sans-serif;font-size:1.35rem;line-height:1.2;margin:0 0 6px;color:var(--navy)}.business-card p{margin:7px 0}.business-meta{font-weight:750;color:#445f68}.sponsor-label{display:inline-block;margin:0 0 5px!important;padding:3px 8px;border-radius:999px;background:#fff2c2;color:#624c13;border:1px solid #c9a74a;font-weight:850}.card-actions{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px;margin-top:10px}.text-link{font-weight:850;color:var(--teal);min-height:44px;display:inline-flex;align-items:center}
.breadcrumbs{color:#fff}.breadcrumbs ol{display:flex;flex-wrap:wrap;align-items:center;gap:8px;list-style:none;padding:0;margin:0}.breadcrumbs li{display:flex;align-items:center;gap:8px}.breadcrumbs li:not(:last-child)::after{content:"/";color:#d5e3e1}.breadcrumbs [aria-current="page"]{color:var(--gold);font-weight:800}
.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.field{display:grid;gap:7px}.field.full{grid-column:1/-1}.field label{font-weight:850;color:var(--navy)}.field input,.field select,.field textarea{width:100%;min-height:46px;border:2px solid #8fa9a8;border-radius:9px;background:#fff;color:#17303b;padding:10px 11px}.field textarea{min-height:120px;resize:vertical}.field small{color:#4c656d}
.callout{font-size:1rem}.callout strong{display:block;font-size:1.05rem}.callout p{margin:.35em 0 0}.callout.warning{background:#fff7dd;border-color:#9e771d}.callout.success{background:#e9f6ed;border-color:#2b6748}
.pagination{align-items:center}.pagination a,.pagination span{min-width:46px;height:46px}.pagination [aria-current="page"]{outline:2px solid #6d5418;outline-offset:2px}
.site-footer p,.site-footer li,.site-footer a,.footer-bottom{font-size:1rem}.site-footer h2,.site-footer h3{font-size:1.2rem}
.checklist{font-size:1rem}.checklist li{padding-left:2px}
@media (max-width:800px){
  .mobile-menu-button{display:flex}.side-nav{grid-template-columns:1fr}.sidebar{position:relative;height:auto}.brand{margin-bottom:10px}.search-strip{grid-template-columns:1fr}.search-field{border-right:0;border-bottom:1px solid rgba(255,255,255,.2)}.search-strip .btn{border-radius:0}.business-grid{grid-template-columns:1fr}.form-grid{grid-template-columns:1fr}.field.full{grid-column:auto}
}
@media (max-width:520px){.business-card{grid-template-columns:1fr}.business-thumb{width:76px;height:76px}.phase2-hero{padding-top:18px}.public-content{padding-left:12px;padding-right:12px}}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.btn,.category-card,.business-card{transition:none!important}}
@media (forced-colors:active){.btn,.icon-button,.category-card,.business-card,.search-strip,.content-panel{forced-color-adjust:auto}}

/* Phase 5: production homepage */
.home-page{padding-top:18px}.home-hero{text-align:center;padding:22px 0 28px}.home-hero h1{font-family:Oswald,Impact,sans-serif;text-transform:uppercase;letter-spacing:.012em;font-size:clamp(2.55rem,5.6vw,4.65rem);line-height:1;margin:.12em 0 .18em;color:#fff;text-shadow:0 3px 10px rgba(0,0,0,.48)}.home-hero-intro{max-width:850px;margin:0 auto;color:#f1f7f5;font-size:1.15rem;line-height:1.65}.home-stat-strip{max-width:950px;margin:12px auto 0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;background:rgba(255,255,255,.18);border:1px solid rgba(255,255,255,.28);border-radius:10px;overflow:hidden}.home-stat-strip span{display:grid;gap:1px;padding:10px 12px;background:rgba(5,47,53,.82);color:#edf6f4;font-size:.96rem}.home-stat-strip strong{font-family:Oswald,Impact,sans-serif;color:var(--gold);font-size:1.35rem}.home-section{margin:8px 0 28px}.home-surface{background:rgba(255,253,248,.96);color:var(--ink);padding:24px;border-radius:16px;border:1px solid rgba(255,255,255,.58);box-shadow:var(--shadow)}.home-section-heading{display:flex;align-items:end;justify-content:space-between;gap:18px;margin:0 0 14px}.home-section-heading h2{font-family:Oswald,Impact,sans-serif;text-transform:uppercase;letter-spacing:.02em;font-size:1.9rem;line-height:1.1;margin:0;color:#fff}.home-surface .home-section-heading h2,.home-community-panel .home-section-heading h2{color:var(--navy)}.home-section-heading .eyebrow{margin:0 0 2px;color:var(--gold)}.home-surface .eyebrow,.home-community-panel .eyebrow{color:#8a681d}.home-section-heading.compact{align-items:start}.home-section-heading.compact h2{font-size:1.5rem}.section-link{display:inline-flex;align-items:center;min-height:44px;font-weight:850;color:#fff;text-decoration:underline;text-underline-offset:4px}.section-link.dark{color:var(--teal)}.home-category-grid .category-card{min-height:100px}.category-count{display:block!important;color:#f0ddb0!important;font-weight:800!important;font-size:.92rem!important;margin-top:3px}.home-center-action{text-align:center;margin-top:17px}.business-label-row{display:flex;flex-wrap:wrap;gap:7px;align-items:center}.verified-label,.claimed-label{display:inline-flex;align-items:center;border-radius:999px;padding:3px 8px;font-size:.9rem;font-weight:850}.verified-label{background:#e8f5ec;color:#245f48;border:1px solid #a9d0b7}.claimed-label{background:#edf3f4;color:#31535d;border:1px solid #b8cbce}.business-freshness{font-size:.94rem!important;color:#556c72;margin-top:2px!important}.home-community-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin:4px 0 28px}.home-community-panel{background:rgba(255,253,248,.96);color:var(--ink);padding:22px;border-radius:16px;border:1px solid rgba(255,255,255,.6);box-shadow:var(--shadow)}.home-card-stack{display:grid;gap:12px}.home-content-card{border:1px solid #c8d7d4;border-radius:11px;background:#fff;padding:15px;box-shadow:0 3px 10px rgba(6,31,34,.08)}.home-content-card-top{display:flex;align-items:center;justify-content:space-between;gap:10px}.home-content-type{font-family:Oswald,Impact,sans-serif;text-transform:uppercase;letter-spacing:.055em;font-weight:800;color:var(--burgundy)}.home-content-card h3{font-family:Oswald,Impact,sans-serif;font-size:1.26rem;line-height:1.25;margin:6px 0;color:var(--navy)}.home-content-card p{margin:5px 0}.home-content-meta{font-weight:750;color:#4d666e}.empty-state.compact{padding:24px 14px;border:1px dashed #9fb6b3;border-radius:10px;background:#f8fbfa}.empty-state.compact strong{display:block;font-size:1.15rem;color:var(--navy)}.empty-state.compact p{margin:.35em auto .8em;max-width:620px}.join-directory{display:grid;grid-template-columns:1.2fr 1.5fr auto;align-items:center;gap:24px;background:linear-gradient(120deg,rgba(5,54,58,.97),rgba(7,70,72,.94));border:1px solid rgba(255,255,255,.25);border-radius:16px;padding:26px;color:#fff;box-shadow:var(--shadow);margin:0 0 18px}.join-directory h2{font-family:Oswald,Impact,sans-serif;text-transform:uppercase;font-size:2rem;margin:0 0 4px}.join-directory p{margin:0;color:#e4f1ef}.join-steps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;list-style:none;padding:0;margin:0}.join-steps li{display:grid;grid-template-columns:42px 1fr;column-gap:8px;align-items:center}.join-steps li>span{grid-row:1/3;width:42px;height:42px;display:grid;place-items:center;border-radius:50%;background:var(--gold);color:#19323a;font-family:Oswald,Impact,sans-serif;font-size:1.25rem;font-weight:900}.join-steps strong{font-size:1rem}.join-steps small{font-size:.95rem;color:#d9eae7}.join-actions{display:grid;gap:8px;min-width:180px}.join-directory .btn-ghost{background:#fff;color:var(--teal);border-color:#fff}
@media (max-width:1100px){.home-stat-strip{grid-template-columns:repeat(2,minmax(0,1fr))}.join-directory{grid-template-columns:1fr}.join-actions{grid-template-columns:repeat(2,minmax(0,1fr));min-width:0}.home-community-grid{grid-template-columns:1fr 1fr}}
@media (max-width:800px){.home-section-heading{align-items:flex-start;flex-direction:column;gap:5px}.home-community-grid{grid-template-columns:1fr}.home-stat-strip{grid-template-columns:1fr 1fr}.join-steps{grid-template-columns:1fr}.join-actions{grid-template-columns:1fr 1fr}.home-surface,.home-community-panel{padding:18px}}
@media (max-width:520px){.home-stat-strip{grid-template-columns:1fr}.join-actions{grid-template-columns:1fr}.join-directory{padding:20px}.home-hero-intro{font-size:1rem}.home-section-heading h2{font-size:1.6rem}}
/* Phase 16: Deals & Specials */
.deal-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;margin:1.25rem 0}.deal-card{display:flex;flex-direction:column;align-items:flex-start}.deal-card .button{margin-top:auto}.deal-code{display:inline-flex;flex-direction:column;gap:.25rem;border:2px dashed currentColor;padding:1rem 1.4rem;margin:1rem 0}.deal-code strong{font-size:1.35rem;letter-spacing:.08em}.deal-detail{max-width:850px}.filter-bar{display:flex;align-items:end;gap:1rem;flex-wrap:wrap}.filter-bar label{min-width:220px;flex:1}.filter-bar input,.filter-bar select{width:100%;min-height:44px}@media(max-width:900px){.deal-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:620px){.deal-grid{grid-template-columns:1fr}}
