:root{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-synthesis:none;--bg:#fffaf6;--surface:#fff;--surface-muted:#f8f0ff;--text:#28132d;--muted:#6e5b73;--border:#eadced;--purple:#58227a;--purple-2:#7c3fa4;--purple-soft:#f6effc;--purple-border:#e3d3f0;--orange:#f36a21;--orange-soft:#fff0e6;--orange-border:#f8d4bc;--shadow:#4b16551c;color:var(--text);background:var(--bg)}:root[data-theme=dark]{--bg:#1e1027;--surface:#2b1837;--surface-muted:#351d45;--text:#fff7ff;--muted:#d8c2de;--border:#553c60;--purple:#c78bea;--purple-2:#9d55cb;--purple-soft:#33204a;--purple-border:#54396e;--orange:#ff985e;--orange-soft:#47261b;--orange-border:#6e3d24;--shadow:#0000003d}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg)}button,input{font:inherit}.topbar{min-height:76px;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px max(6vw,24px);background:var(--surface);border-bottom:1px solid var(--border)}.brand{display:flex;flex-direction:column;color:var(--purple);text-decoration:none;line-height:1}.brand span{font-size:1.5rem;font-weight:900;letter-spacing:-.07em}.brand small{margin-top:5px;color:var(--orange);font-size:.62rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.header-actions{display:flex;align-items:center;gap:13px}.theme-button,.auth-button{cursor:pointer;border:1px solid var(--purple);border-radius:7px;background:var(--purple);color:#fff;padding:9px 12px;font-size:.82rem;font-weight:700}.theme-button,.auth-button.secondary{background:transparent;color:var(--purple)}.user-name{color:var(--muted);font-size:.82rem;max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.hero{background:linear-gradient(118deg,#4b176e,#752c94 62%,#c54a28);color:#fff;padding:72px max(6vw,24px) 84px}.hero>*{max-width:760px}.eyebrow{margin:0 0 9px;color:var(--orange);font-size:.72rem;font-weight:900;letter-spacing:.13em}.hero .eyebrow{color:#ffbd83}.hero h1{font-size:clamp(2.1rem,5vw,4.25rem);line-height:1.03;letter-spacing:-.055em;margin:0}.lede{font-size:1.1rem;color:#f5eafa;margin:20px 0 27px}.search{height:62px;display:flex;align-items:center;gap:12px;padding:0 19px;background:#fff;border-radius:10px;color:#6e5b73;box-shadow:0 12px 34px #1b062755}.search span{font-size:1.75rem;line-height:0}.search input{border:0;outline:0;width:100%;color:#28132d;font-size:1rem}.search-button{cursor:pointer;flex:0 0 auto;border:0;border-radius:8px;background:var(--purple);color:#fff;padding:11px 20px;font-size:.9rem;font-weight:800}.search-button:hover{background:#4b176e}.demo-note,.auth-error{font-size:.8rem;color:#ffe1c8;margin:13px 0 0}.auth-error{color:#fff1f1}.content,.providers{padding:64px max(6vw,24px)}.providers{background:var(--surface-muted)}.section-heading{display:flex;gap:24px;align-items:flex-end;justify-content:space-between;margin-bottom:27px}.section-heading h2{font-size:clamp(1.65rem,3vw,2.35rem);letter-spacing:-.045em;margin:0}.filters{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end}.filters button,.location-button{cursor:pointer;border:1px solid var(--border);background:var(--surface);border-radius:999px;padding:8px 12px;color:var(--purple);font-size:.8rem}.filters .active,.location-button{background:var(--purple);border-color:var(--purple);color:#fff}.service-grid,.provider-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(218px,1fr));gap:16px}.service-card{cursor:pointer;text-align:left;padding:24px;background:var(--purple-soft);color:var(--text);border:1px solid var(--purple-border);border-radius:12px;transition:.15s box-shadow,.15s transform}.service-card:hover,.service-card.selected{border-color:var(--purple);box-shadow:0 9px 24px var(--shadow);transform:translateY(-2px)}.service-card span{font-size:.7rem;font-weight:900;color:var(--purple-2);text-transform:uppercase;letter-spacing:.07em}.service-card h3,.provider-card h3{font-size:1.1rem;margin:13px 0 8px}.service-card p{margin:0 0 18px;color:var(--muted);font-size:.89rem;line-height:1.5}.service-card strong{color:var(--purple);font-size:.84rem}.provider-card{background:var(--orange-soft);border:1px solid var(--orange-border);border-radius:12px;padding:22px}.provider-top{display:flex;gap:12px;align-items:center}.provider-top h3{margin:0 0 3px}.provider-top p,.address{margin:0;color:var(--muted);font-size:.85rem}.avatar{display:grid;place-items:center;width:40px;height:40px;flex:0 0 auto;border-radius:50%;background:var(--orange-soft);color:var(--purple);font-weight:900}.address{margin:21px 0 15px}.locate-button{cursor:pointer;display:inline-block;margin-left:8px;border:0;background:transparent;padding:0;color:var(--purple);font-size:.78rem;font-weight:800}.provider-card.focused{border-color:var(--orange);box-shadow:0 9px 24px var(--shadow)}.tags{display:flex;flex-wrap:wrap;gap:6px}.tags span{background:var(--orange-soft);color:var(--purple);padding:5px 8px;border-radius:5px;font-size:.72rem}.provider-card footer{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:22px;padding-top:17px;border-top:1px solid var(--border)}.provider-card a{color:var(--purple);font-weight:800;font-size:.87rem}.contact-lock{cursor:pointer;border:0;background:transparent;padding:0;color:var(--purple);font-size:.84rem;font-weight:800;text-decoration:underline}.contact-lock:disabled{cursor:not-allowed;color:var(--muted);text-decoration:none}.contact-number{color:var(--muted);font-size:.87rem;font-weight:700;letter-spacing:.02em}.provider-card small{color:var(--muted)}.provider-map{height:320px;margin-bottom:20px;border:1px solid var(--border);border-radius:12px;overflow:hidden}.provider-map>div{height:100%;width:100%;position:relative}.provider-map-empty{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;padding:20px;text-align:center}.provider-map .leaflet-popup-content-wrapper,.provider-map .leaflet-popup-tip{background:var(--surface);color:var(--text)}.provider-map .leaflet-popup-content{margin:10px 14px;font-size:.85rem}.provider-map .leaflet-container{background:var(--surface-muted);font:inherit}.notice,.empty{color:var(--muted)}.site-footer{padding:27px max(6vw,24px);color:var(--muted);font-size:.85rem;background:var(--surface)}.site-footer strong{color:var(--purple);letter-spacing:-.03em}.site-footer span{margin:0 8px;color:var(--orange)}@media(min-width:961px){.directory-shell.service-selected{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start}.directory-shell.service-selected .content,.directory-shell.service-selected .providers{padding:48px 5vw}.directory-shell.service-selected .providers{position:sticky;top:0;min-height:calc(100vh - 76px);border-left:1px solid var(--border)}.directory-shell.service-selected .service-grid,.directory-shell.service-selected .provider-grid{grid-template-columns:1fr}}@media(max-width:700px){.topbar{align-items:flex-start;flex-direction:column}.header-actions{width:100%;justify-content:space-between;flex-wrap:wrap}.user-name{display:none}}@media(max-width:620px){.hero{padding-top:54px}.section-heading{align-items:flex-start;flex-direction:column}.filters{justify-content:flex-start}.location-button{width:100%}.content,.providers{padding-top:48px;padding-bottom:48px}}.contribute{display:flex;align-items:center;justify-content:space-between;gap:28px;padding:36px max(6vw,24px);background:var(--orange-soft);border-bottom:1px solid var(--border)}.contribute h2,.admin-panel h2,.form-modal h2{margin:0;font-size:clamp(1.35rem,2.5vw,2rem);letter-spacing:-.04em}.contribute p:not(.eyebrow),.form-modal>p{color:var(--muted);margin:9px 0 0;max-width:650px;line-height:1.5}.contribute-actions{display:flex;flex-wrap:wrap;gap:10px;flex:0 0 auto}.submission-message{margin:18px max(6vw,24px);padding:12px 15px;border:1px solid var(--orange);border-radius:8px;background:var(--orange-soft);color:var(--text)}.modal-backdrop{position:fixed;z-index:2000;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;padding:20px;background:#17051b99}.form-modal{position:relative;max-height:calc(100vh - 40px);overflow:auto;width:min(680px,100%);padding:32px;background:var(--surface);border:1px solid var(--border);border-radius:14px;box-shadow:0 18px 60px #0007}.modal-close{position:absolute;right:15px;top:11px;cursor:pointer;border:0;background:transparent;color:var(--muted);font-size:1.8rem}.dynamic-form{display:grid;gap:16px;margin-top:24px}.dynamic-form>label{display:grid;gap:7px;color:var(--text);font-size:.88rem;font-weight:700}.dynamic-form b{color:var(--orange)}.dynamic-form input:not([type=checkbox]),.dynamic-form textarea,.dynamic-form select{width:100%;padding:10px 11px;border:1px solid var(--border);border-radius:7px;background:var(--bg);color:var(--text)}.dynamic-form textarea{min-height:86px;resize:vertical}.checkbox-options{display:grid;grid-template-columns:repeat(auto-fit,minmax(155px,1fr));gap:8px;padding:10px;border:1px solid var(--border);border-radius:7px}.checkbox-options label{display:flex;align-items:center;gap:7px;color:var(--muted);font-size:.8rem;font-weight:500}.form-error{margin:0;color:#c4362b}.admin-panel{padding:54px max(6vw,24px);background:var(--surface)}.submission-card{display:flex;align-items:center;justify-content:space-between;gap:18px;max-width:800px;margin-top:14px;padding:17px;border:1px solid var(--border);border-radius:10px;background:var(--bg)}.submission-card p{margin:5px 0 0;color:var(--muted);font-size:.85rem}.submission-card button{cursor:pointer;margin-left:8px;border:0;border-radius:6px;padding:8px 11px;color:#fff;font-weight:700}.approve{background:var(--purple)}.reject{background:#a33b3b}@media(max-width:620px){.contribute,.submission-card{align-items:flex-start;flex-direction:column}.contribute-actions{width:100%}.contribute-actions button{flex:1}.submission-card button{margin-left:0;margin-right:8px}}.radio-options{display:flex;gap:16px;padding:10px;border:1px solid var(--border);border-radius:7px}.radio-options label{display:flex;align-items:center;gap:7px;color:var(--muted);font-size:.85rem;font-weight:500}.detail-page{max-width:860px;margin:0 auto;padding:56px max(6vw,24px)}.detail-page h1{font-size:clamp(1.9rem,4vw,3rem);letter-spacing:-.045em;margin:9px 0 14px}.detail-page h2{margin:34px 0 12px}.lede-dark{color:var(--muted);font-size:1.02rem;line-height:1.55;max-width:640px}.detail-list{list-style:none;margin:0;padding:0;display:grid;gap:10px}.detail-list li{padding:13px 15px;border:1px solid var(--border);border-radius:9px;background:var(--surface);color:var(--muted);font-size:.92rem}.detail-list a{color:var(--purple);font-weight:800;text-decoration:none}.detail-list a:hover{text-decoration:underline}.detail-facts p{margin:7px 0;color:var(--muted)}.detail-facts strong{color:var(--text)}.back-home{display:inline-block;margin-top:30px;text-decoration:none}.tag-link{color:var(--purple)!important;font-weight:800}.provider-name-link{color:inherit;text-decoration:none}.provider-name-link:hover{color:var(--purple)}.detail-split{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:26px;align-items:start;margin-top:8px}.detail-split.single-panel{grid-template-columns:minmax(0,1.4fr) minmax(0,1fr)}.split-left,.split-right{min-width:0}.split-right .split-list li,.single-panel .split-list li{padding:11px 14px}.contact-row{display:flex;align-items:center;gap:12px;margin-top:12px;padding-top:12px;border-top:1px dashed var(--border)}.contact-row .contact-number{color:var(--text);font-weight:800;font-size:1.05rem}.contact-row a{text-decoration:none;color:#fff!important;background:var(--purple);border-radius:7px;padding:9px 14px;font-weight:800;font-size:.85rem}.contact-row .contact-lock{cursor:pointer;border:1px solid var(--purple);background:transparent;border-radius:7px;padding:9px 14px;color:var(--purple);font-weight:800;font-size:.85rem;text-decoration:none}.detail-map-section{margin-top:38px}.detail-map-section h2{margin:0 0 14px}.detail-map-section .provider-map{height:380px;margin-bottom:0}.detail-page a:not(.auth-button):not(.back-home)[target=_blank]{color:var(--orange)!important;font-weight:800}@media(max-width:760px){.detail-split{grid-template-columns:1fr}}.rating-row{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:18px;color:var(--orange);font-size:.88rem;font-weight:800}.rating-row small{color:var(--muted);font-weight:500}.review-button{cursor:pointer;border:0;background:transparent;padding:0;color:var(--purple);font-size:.8rem;font-weight:800;text-decoration:underline}.provider-card blockquote{margin:14px 0 0;padding:10px 12px;border-left:3px solid var(--orange);background:var(--orange-soft);color:var(--muted);font-size:.84rem;line-height:1.45}.provider-card blockquote span{display:block;margin-bottom:3px;color:var(--orange);letter-spacing:.08em}.review-heading{margin-top:38px!important}.detail-reviews{margin-top:38px}.detail-reviews h2{margin:0 0 4px}.detail-rating{margin-top:10px;margin-bottom:16px;padding-bottom:14px;border-bottom:1px solid var(--border)}.reviews-list{display:grid;gap:12px}.review-item{padding:14px 16px;border:1px solid var(--border);border-radius:9px;background:var(--surface)}.review-item p{color:var(--text)!important;font-size:.92rem;line-height:1.55;margin:6px 0 0!important}.review-stars{color:var(--orange);letter-spacing:.08em;font-size:.85rem;font-weight:800}.delete-review{margin-left:8px}.nav-button,.scroll-top,.footer-link{cursor:pointer;border:1px solid var(--purple-2);border-radius:7px;background:transparent;color:var(--purple-2);padding:8px 12px;font-size:.8rem;font-weight:800;transition:.15s background,.15s color;text-decoration:none;display:inline-block}.nav-button:hover,.scroll-top:hover,.footer-link:hover{background:var(--purple-2);color:#fff}:root[data-theme=dark] .nav-button,:root[data-theme=dark] .scroll-top,:root[data-theme=dark] .footer-link{color:#e9c6ff;border-color:#b478dd}:root[data-theme=dark] .nav-button:hover,:root[data-theme=dark] .scroll-top:hover,:root[data-theme=dark] .footer-link:hover{background:#b478dd;color:#241031}.scroll-top{position:fixed;right:max(3vw,16px);bottom:max(3vw,18px);z-index:20;border-radius:999px;padding:10px 16px;background:var(--surface);box-shadow:0 10px 26px var(--shadow)}@media(max-width:700px){.nav-button{display:none}}.map-skeleton{height:100%;width:100%;display:grid;place-items:center;color:var(--muted);font-size:.85rem;background:var(--surface-muted)}.provider-grid{min-height:220px}.service-grid:empty:after,.provider-grid:empty:after{content:"";display:block;min-height:180px}.provider-map-placeholder{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;color:var(--muted);font-size:.85rem;background:repeating-linear-gradient(45deg,transparent,transparent 12px,var(--surface-muted) 12px,var(--surface-muted) 24px)}.auth-modal{max-width:420px}.auth-tabs{display:flex;gap:8px;margin-bottom:20px;border-bottom:1px solid var(--border);padding-bottom:8px}.auth-tabs button{flex:1;padding:10px 16px;border:none;background:transparent;color:var(--muted);font-size:.85rem;font-weight:700;cursor:pointer;transition:color .15s,border-color .15s;border-bottom:2px solid transparent;margin-bottom:-1px}.auth-tabs button:hover{color:var(--purple)}.auth-tabs button.active{color:var(--purple);border-bottom-color:var(--purple)}.auth-description{margin:0 0 20px;color:var(--muted);font-size:.9rem;text-align:center}.auth-description strong{color:var(--text)}.oauth-buttons{display:flex;flex-direction:column;gap:12px;margin-bottom:20px}.oauth-button{display:flex;align-items:center;justify-content:center;gap:10px;padding:12px 16px;border:1px solid var(--border);border-radius:8px;background:var(--surface);color:var(--text);font-size:.9rem;font-weight:700;cursor:pointer;transition:background .15s,border-color .15s}.oauth-button:hover:not(:disabled){background:var(--surface-muted);border-color:var(--purple-2)}.oauth-button:disabled{opacity:.5;cursor:not-allowed}.oauth-button.google{border-color:#4285f4}.oauth-button.facebook{border-color:#1877f2}.auth-divider{display:flex;align-items:center;gap:12px;margin:16px 0;color:var(--muted);font-size:.8rem}.auth-divider:before,.auth-divider:after{content:"";flex:1;height:1px;background:var(--border)}.auth-button.magic-link-toggle,.auth-button.secondary.magic-link-toggle{width:100%;margin-top:8px;background:transparent;color:var(--purple);border-color:var(--purple-2)}.auth-button.magic-link-toggle:hover,.auth-button.secondary.magic-link-toggle:hover{background:var(--purple-soft);color:var(--purple-2)}.magic-link-form{display:flex;flex-direction:column;gap:12px}.magic-link-label{display:flex;flex-direction:column;gap:6px;font-size:.85rem;color:var(--text);font-weight:600}.magic-link-label input{padding:12px 14px;border:1px solid var(--border);border-radius:7px;background:var(--bg);color:var(--text);font-size:.95rem}.magic-link-label input:focus{outline:none;border-color:var(--purple);box-shadow:0 0 0 3px var(--purple-soft)}.magic-link-sent{text-align:center;padding:16px 0}.magic-link-sent p{margin:0 0 12px;color:var(--muted);font-size:.9rem}.magic-link-sent button{width:100%}.auth-switch-mode{margin-top:20px;padding-top:16px;border-top:1px solid var(--border);text-align:center;color:var(--muted);font-size:.9rem}.auth-switch-mode button{background:none;border:none;color:var(--purple);font-weight:700;cursor:pointer;font-size:.9rem;padding:0;margin-left:4px}.auth-switch-mode button:hover{text-decoration:underline}:root[data-theme=dark] .oauth-button{background:var(--surface-muted);border-color:var(--border)}:root[data-theme=dark] .oauth-button:hover:not(:disabled){background:var(--surface);border-color:var(--purple-2)}:root[data-theme=dark] .magic-link-label input{background:var(--surface);border-color:var(--border);color:var(--text)}:root[data-theme=dark] .magic-link-label input:focus{border-color:var(--purple);box-shadow:0 0 0 3px var(--purple-soft)}
