:root{--maroon:#4e101e;--teal:#2f5960;--orange:#b65f2d;--cream:#f4efe5;--beige:#dec3ae;--ink:#1f2328;--muted:#697278;--white:#fffdf8;--preview-orange:#c4592f;--font-body:Inter, Arial, sans-serif;--font-display:"Cormorant Garamond", Georgia, serif;--radius:10px;--shadow:0 12px 30px #1d0e121f}*{box-sizing:border-box}html{scroll-behavior:smooth}body{background:var(--maroon);color:var(--ink);margin:0;font-family:Inter,Arial,sans-serif}button,input,select,textarea{font:inherit}button{cursor:pointer}.hidden{display:none!important}.site-header{background:var(--maroon);z-index:50;position:relative;box-shadow:0 2px 10px #0000001f}.brand-banner{object-fit:cover;background:var(--maroon);width:100%;height:auto;display:block}.top-nav{background:var(--teal);border-top:1px solid #f4efe51f;flex-wrap:wrap;justify-content:center;gap:8px;padding:12px 18px 14px;display:flex}.nav-link{color:var(--cream);background:0 0;border:0;border-radius:6px;padding:8px 12px;font-weight:600}.nav-link:hover{background:#f4efe524}.app-shell{min-height:calc(100vh - 190px)}.view{display:none}.view.active{display:block}.content-panel,.narrow-panel{background:var(--cream);max-width:1180px;margin:0 auto;padding:48px 36px}.narrow-panel{border-radius:var(--radius);max-width:680px;box-shadow:var(--shadow);margin-top:56px;margin-bottom:56px}.intro-panel{text-align:center;margin-top:0}.eyebrow{text-transform:uppercase;letter-spacing:.22em;color:var(--teal);font-size:.82rem;font-weight:700}h1,h2,h3{color:var(--maroon);margin:.25em 0 .45em;font-family:Cormorant Garamond,Georgia,serif;line-height:1.05}h1{font-size:clamp(2.2rem,5vw,4.2rem)}h2{font-size:2rem}h3{font-size:1.55rem}.lead{max-width:920px;margin:0 auto 28px;font-size:1.15rem;line-height:1.7}.lead.small{text-align:left;margin-left:0;font-size:1rem}.button-row,.form-actions{flex-wrap:wrap;justify-content:center;gap:12px;display:flex}.btn{border:0;border-radius:6px;justify-content:center;align-items:center;padding:12px 18px;font-weight:700;transition:all .18s;display:inline-flex}.btn:hover{transform:translateY(-1px)}.btn-orange{background:var(--orange);color:var(--cream)}.btn-outline{border:1px solid var(--cream);color:var(--cream);background:0 0}.intro-panel .btn-outline{border-color:var(--maroon);color:var(--maroon)}.btn-outline-dark{border:1px solid var(--maroon);color:var(--maroon);background:0 0}.compact{padding:10px 14px}.text-link{color:var(--orange);background:0 0;border:0;padding:0;text-decoration:underline}.form-card{border:1px solid var(--beige);border-radius:var(--radius);box-shadow:var(--shadow);background:#fffaf0;margin:28px 0;padding:26px}.form-grid{gap:20px;display:grid}.form-grid.two-col{grid-template-columns:repeat(2,minmax(0,1fr))}.form-grid.one-col{grid-template-columns:1fr}label,legend{color:var(--maroon);font-weight:700}label{flex-direction:column;gap:8px;display:flex}input,select,textarea{width:100%;color:var(--ink);background:#fff;border:1px solid #c7c1b7;border-radius:6px;outline:none;padding:12px 13px}input:focus,select:focus,textarea:focus{border-color:var(--teal);box-shadow:0 0 0 3px #2f596024}textarea{resize:vertical}.span-2{grid-column:1/-1}.field-note{color:var(--muted);margin:2px 0 8px;font-size:.86rem;font-weight:400}.checkbox-section{border:1px solid var(--beige);background:#fffdf8;border-radius:8px;padding:18px}.checkbox-section legend{padding:0 8px;font-family:Cormorant Garamond,Georgia,serif;font-size:1.35rem}.check-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px 14px;margin-top:10px;display:grid}.check-option{color:var(--ink);flex-direction:row;align-items:flex-start;gap:8px;font-weight:500;display:flex}.check-option input,.consent input{width:auto;margin-top:3px}.consent{border-left:4px solid var(--orange);color:var(--ink);background:#fff5e8;flex-direction:row;align-items:flex-start;padding:16px}.message{border-radius:6px;margin-top:16px;padding:12px 14px;display:none}.message.show{display:block}.message.success{color:#245c35;background:#e8f4ec}.message.error{color:#8a2323;background:#fdecec}.message.info{color:#294c52;background:#eef3f4}.directory-view{background:var(--teal);min-height:100vh;padding-bottom:60px}.directory-hero{background:var(--maroon);color:var(--cream);text-align:center;padding:46px 24px 40px}.directory-hero h1{color:var(--cream);margin-top:0}.directory-hero p{max-width:980px;margin:0 auto;font-family:Cormorant Garamond,Georgia,serif;font-size:1.25rem}.directory-content{max-width:1240px;margin:0 auto;padding:22px 28px}.filter-bar{grid-template-columns:2fr repeat(5,1fr) auto auto;align-items:center;gap:10px;margin-bottom:18px;display:grid}.filter-bar input,.filter-bar select{background:var(--cream);border:0}.results-summary{color:var(--cream);margin:8px 0 16px;font-weight:600}.member-grid{grid-template-columns:1fr;gap:22px;display:grid}.member-card{background:var(--cream);border-radius:2px;padding:26px 28px;box-shadow:0 5px 18px #00000014}.member-card h2{color:var(--maroon);margin:0;font-size:2rem}.business-name{color:var(--orange);margin:4px 0 10px;font-family:Cormorant Garamond,Georgia,serif;font-size:1.35rem;font-weight:700}.location{color:var(--teal);margin:2px 0;font-weight:600}.description{margin:14px 0 8px;line-height:1.6}.services{margin:5px 0 0;line-height:1.55}.tags{flex-wrap:wrap;gap:6px;margin-top:14px;display:flex}.tag{color:var(--maroon);background:#eadfd0;border-radius:999px;padding:5px 8px;font-size:.78rem;font-weight:700}.card-links{flex-wrap:wrap;gap:10px;margin-top:18px;display:flex}.card-links a{color:var(--teal);font-weight:700;text-decoration:none}.card-links a:hover{text-decoration:underline}.access-notice{background:var(--cream);border-radius:var(--radius);text-align:center;max-width:900px;box-shadow:var(--shadow);margin:35px auto;padding:28px}.site-footer{background:var(--maroon);color:var(--cream);text-align:center;padding:22px;font-size:.85rem}.helper{text-align:center;margin-top:18px}@media (width<=1050px){.filter-bar{grid-template-columns:repeat(2,minmax(0,1fr))}.search-input{grid-column:1/-1}.check-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=720px){.top-nav{flex-wrap:nowrap;justify-content:flex-start;overflow-x:auto}.content-panel,.narrow-panel{border-radius:0;margin-top:0;padding:30px 20px}.form-grid.two-col{grid-template-columns:1fr}.span-2{grid-column:auto}.check-grid,.filter-bar{grid-template-columns:1fr}.search-input{grid-column:auto}.directory-content{padding:18px 14px}.member-card{padding:22px 18px}.directory-hero{padding:34px 18px}}.password-requirements{background:#f4efe5b8;border:1px solid #2f596038;border-radius:8px;flex-wrap:wrap;gap:8px 16px;padding:12px 14px;font-size:.92rem;display:flex}.password-requirements strong{color:#4e101e;width:100%}.password-requirements span:before{content:"○ "}.password-requirements span.met{color:#2f5960}.password-requirements span.met:before{content:"✓ ";font-weight:700}.password-requirements span.unmet{color:#6b5a54}.directory-kicker{text-transform:uppercase;letter-spacing:.2em;color:var(--beige);margin:0 0 8px;font-size:.78rem;font-weight:700}.photo-upload-panel{border:1px solid var(--beige);background:#fffdf8;border-radius:8px;grid-template-columns:minmax(0,1fr) 150px;align-items:center;gap:22px;padding:18px;display:grid}.photo-preview,.photo-placeholder{object-fit:cover;border:3px solid var(--cream);width:120px;height:120px;box-shadow:0 0 0 2px var(--teal);background:var(--cream);border-radius:50%}.photo-placeholder{text-align:center;color:var(--teal);justify-content:center;align-items:center;padding:14px;font-size:.78rem;font-weight:700;display:flex}.member-card{padding:28px 30px}.member-card-layout{grid-template-columns:112px minmax(0,1fr);align-items:start;gap:24px;display:grid}.member-photo-column{justify-content:center;display:flex}.member-photo{object-fit:cover;border:3px solid var(--cream);width:96px;height:96px;box-shadow:0 0 0 2px var(--teal);background:#eadfd0;border-radius:50%}.member-initials{color:var(--maroon);justify-content:center;align-items:center;font-family:Cormorant Garamond,Georgia,serif;font-size:2rem;font-weight:700;display:flex}.member-details-grid{border-top:1px solid #dfd6c9;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 24px;margin-top:18px;padding-top:16px;display:grid}.member-details-grid div{flex-direction:column;gap:3px;line-height:1.4;display:flex}.member-details-grid strong{color:var(--maroon);text-transform:uppercase;letter-spacing:.05em;font-size:.83rem}.member-details-grid span{font-size:.92rem}.connection-detail{margin:14px 0 0;line-height:1.55}@media (width<=720px){.photo-upload-panel,.member-card-layout{grid-template-columns:1fr}.member-photo-column{justify-content:flex-start}.member-details-grid{grid-template-columns:1fr}}.photo-upload-panel{border:2px solid var(--beige);background:#fffaf1;border-radius:10px;margin:8px 0 10px;padding:18px}.photo-section-title{color:var(--maroon);margin-bottom:4px;font-family:Cormorant Garamond,serif;font-size:1.55rem;font-weight:700}.upload-label{color:var(--teal);margin-bottom:8px;font-weight:700;display:block}.photo-preview-wrap{justify-content:center;align-items:center;display:flex}.profile-toggle{color:var(--teal);font-weight:700;font:inherit;cursor:pointer;text-underline-offset:3px;background:0 0;border:0;margin-top:16px;padding:4px 0;text-decoration:underline}.profile-toggle:hover{color:var(--orange)}.member-expanded{border-top:1px solid #4e101e29;margin-top:16px;padding-top:16px}.member-expanded[hidden]{display:none!important}.profile-form label .field-note{color:#5d5d5d;margin-top:6px;font-size:.86rem;font-weight:400;line-height:1.35;display:block}.photo-retry-btn{margin-top:10px}.dev-banner{color:#fff;text-align:center;letter-spacing:.02em;z-index:2000;background:#c4592f;padding:7px 12px;font-size:.85rem;font-weight:700;position:sticky;top:0}.view-tabs{background:#f4efe524;border-radius:999px;gap:4px;margin:4px 0 6px;padding:4px;display:inline-flex}.view-tab{color:var(--cream);background:0 0;border:0;border-radius:999px;padding:8px 22px;font-weight:700}.view-tab.active{background:var(--cream);color:var(--maroon)}.view-tab:focus-visible{outline:3px solid var(--beige);outline-offset:2px}.map-panel{background:var(--cream);border-radius:2px;padding:10px;box-shadow:0 5px 18px #00000014}.member-map{background:#e9e4da;border-radius:2px;width:100%;height:min(70vh,640px);min-height:420px}.map-note{color:var(--muted);margin:10px 4px 2px;font-size:.88rem}.member-pin{background:0 0;border:0}.member-pin img,.member-pin span{border:3px solid var(--cream);width:42px;height:42px;box-shadow:0 0 0 2px var(--orange),0 4px 10px #00000040;object-fit:cover;background:var(--maroon);color:var(--cream);border-radius:50%;justify-content:center;align-items:center;font-size:.85rem;font-weight:700;transition:transform .15s;display:flex}.member-pin:hover img,.member-pin:hover span,.member-pin:focus img,.member-pin:focus span{transform:scale(1.15)}.leaflet-tooltip.map-tooltip{box-shadow:var(--shadow);background:var(--cream);border:0;border-radius:10px;padding:0}.leaflet-tooltip-top.map-tooltip:before{border-top-color:var(--cream)}.leaflet-tooltip-bottom.map-tooltip:before{border-bottom-color:var(--cream)}.member-map .leaflet-tile-pane{filter:saturate(.55)sepia(.12)}.map-popup .leaflet-popup-content-wrapper{background:var(--cream);border-radius:10px}.map-popup .leaflet-popup-content{margin:0}.map-card{white-space:normal;align-items:center;gap:12px;min-width:230px;max-width:280px;padding:12px 14px;font-family:Inter,Arial,sans-serif;display:flex}.map-card-photo{object-fit:cover;background:#eadfd0;border-radius:50%;flex:0 0 56px;width:56px;height:56px}.map-card-photo.member-initials{font-size:1.2rem}.map-card-text{flex-direction:column;gap:2px;line-height:1.3;display:flex}.map-card-text strong{color:var(--maroon);font-family:Cormorant Garamond,Georgia,serif;font-size:1.25rem}.map-card-business{color:var(--orange);font-size:.88rem;font-weight:700}.map-card-business em{color:var(--teal);font-style:normal;font-weight:600}.map-card-tags{color:var(--ink);font-size:.8rem}.map-card-town{color:var(--teal);font-size:.8rem;font-weight:600}.map-card-link{color:var(--orange);margin-top:6px;font-weight:700;text-decoration:none}.member-name-link{color:inherit;text-decoration:none}.member-name-link:hover{color:var(--orange)}.card-actions{flex-wrap:wrap;align-items:center;gap:18px;margin-top:14px;display:flex}.card-actions .profile-toggle{margin-top:0}.profile-page-link{color:var(--teal);font-size:.92rem;font-weight:700;text-decoration:none}.profile-page-link:hover{text-decoration:underline}.member-page{max-width:1000px;margin:0 auto;padding:30px 28px}.member-page-actions{flex-wrap:wrap;justify-content:space-between;gap:12px;margin-bottom:18px;display:flex}.member-card-full .member-expanded{margin-top:18px;display:block}.member-page .message{margin-top:14px}.extra-business-list{border-top:1px solid var(--beige);margin-top:16px;padding-top:12px}.extra-business-label{text-transform:uppercase;letter-spacing:.16em;color:var(--teal);margin-bottom:6px;font-size:.72rem;font-weight:700}.extra-business{margin:8px 0 12px}.extra-business-name{color:var(--orange);flex-wrap:wrap;align-items:center;gap:8px;font-family:Cormorant Garamond,Georgia,serif;font-size:1.25rem;font-weight:700;display:flex}.extra-business p{margin:4px 0}.extra-business a{color:var(--teal);font-size:.9rem;font-weight:700;text-decoration:none}.extra-businesses .optional{color:var(--muted);font-family:Inter,Arial,sans-serif;font-size:.85rem;font-weight:500}.extra-business-row{border:1px solid var(--beige);background:#fff;border-radius:8px;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin:12px 0;padding:16px;display:grid}.extra-business-remove{justify-content:flex-end;align-items:flex-end;display:flex}@media (width<=720px){.extra-business-row{grid-template-columns:1fr}.member-map{height:62vh;min-height:360px}.member-page{padding:20px 14px}}.member-cluster{background:0 0;border:0}.member-cluster span{background:var(--orange);color:#fff;border:3px solid var(--cream);width:46px;height:46px;box-shadow:0 0 0 2px var(--maroon),0 4px 10px #00000040;border-radius:50%;justify-content:center;align-items:center;font-family:Inter,Arial,sans-serif;font-size:1rem;font-weight:700;display:flex}a.nav-link{text-decoration:none;display:inline-block}.nav-link[aria-current=page]{background:#f4efe524}.top-nav form{display:inline}a.btn{text-decoration:none}.btn-outline.on-cream{border-color:var(--maroon);color:var(--maroon)}.view-tab{text-decoration:none;display:inline-block}.dev-banner a{color:#fff}.filter-bar noscript button{width:100%}.member-card[hidden]{display:none!important}.not-found{max-width:680px;margin:56px auto}.skip-link{background:var(--cream);color:var(--maroon);z-index:3000;padding:8px 12px;position:absolute;top:0;left:-9999px}.skip-link:focus{top:8px;left:8px}.member-page-name{color:var(--maroon);margin:0;font-size:2.4rem}[hidden]{display:none!important}.staging-banner{background:#2f5960}.leaflet-container .leaflet-marker-pane .member-pin img,.leaflet-container .leaflet-marker-pane .member-pin span{aspect-ratio:1;object-fit:cover;border-radius:50%;width:42px;min-width:42px;height:42px}.leaflet-container .map-card img.map-card-photo,.leaflet-container .map-card .map-card-photo{aspect-ratio:1;object-fit:cover;border-radius:50%;flex:0 0 56px;width:56px;min-width:56px;height:56px;max-width:56px!important}.admin-filters{flex-wrap:wrap;gap:10px;margin:18px 0;display:flex}.admin-filters input{flex:260px}.admin-filters select{flex:0 280px}.admin-table-wrap{border:1px solid var(--beige);background:#fff;border-radius:8px;overflow-x:auto}.admin-table{border-collapse:collapse;width:100%;font-size:.92rem}.admin-table th,.admin-table td{text-align:left;vertical-align:top;border-bottom:1px solid #eee3d6;padding:10px 12px}.admin-table th{color:var(--maroon);text-transform:uppercase;letter-spacing:.05em;font-size:.78rem}.admin-sub{color:var(--muted);font-size:.85rem}.admin-table .tag{margin-left:6px}.admin-status{color:var(--teal);font-weight:700}.admin-status.off{color:#8a2323}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.map-admin-note{color:#8a2323;font-style:italic}
