/* NurseEnroom — Stylesheet (v3.1) */

:root{
  --teal-50:#effaf7; --teal-100:#d5f1e8;
  --teal-500:#0ea583; --teal-600:#0c8a6e; --teal-700:#0a6f5a;
  --ink-900:#0f172a; --ink-700:#334155; --ink-500:#64748b;
  --ink-300:#cbd5e1; --ink-100:#f1f5f9; --ink-50:#f8fafc;
  --warn:#f59e0b; --danger:#dc2626; --white:#ffffff;
  --shadow-sm:0 1px 2px rgba(15,23,42,.06);
  --shadow-md:0 6px 20px rgba(15,23,42,.08);
  --radius:12px; --radius-sm:8px;
}
*{box-sizing:border-box}
html,body{margin:0;padding:0;height:100%}
body{font:15px/1.55 -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;color:var(--ink-900);background:var(--ink-50)}
a{color:var(--teal-600);text-decoration:none}
a:hover{text-decoration:underline}
h1,h2,h3,h4{margin:0 0 .5em 0;line-height:1.2}
h1{font-size:2.1rem} h2{font-size:1.5rem}
p{margin:0 0 1em 0}
img{max-width:100%;display:block}
.container{max-width:1140px;margin:0 auto;padding:0 20px}

/* ---------- Header ---------- */
.site-header{background:var(--white);border-bottom:1px solid var(--ink-100);position:sticky;top:0;z-index:40}
.nav{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:64px}
.brand{display:flex;align-items:center;gap:10px;font-weight:700;color:var(--ink-900)}
.brand:hover{text-decoration:none}
.brand-mark{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:50%;background:var(--teal-500);color:#fff;font-weight:700;font-size:20px}
.brand-name{font-size:1.1rem;letter-spacing:-.01em}
.main-nav{display:flex;align-items:center;gap:20px}
.main-nav a{color:var(--ink-700);font-weight:500}
.main-nav a:hover{color:var(--teal-600);text-decoration:none}
.main-nav .cta{background:var(--teal-500);color:#fff;padding:8px 14px;border-radius:999px}
.main-nav .cta:hover{background:var(--teal-600)}
@media (max-width:700px){.main-nav{gap:12px;font-size:.9rem}.main-nav a:not(.cta){display:none}.main-nav .cta{padding:6px 12px}}

/* ---------- Hero ---------- */
.hero{background:linear-gradient(135deg,var(--teal-500) 0%,var(--teal-700) 100%);color:#fff;padding:64px 0 72px 0}
.hero h1{font-size:2.6rem;max-width:800px;letter-spacing:-.02em}
.hero .tagline{font-size:1.15rem;max-width:640px;opacity:.95}
@media (max-width:600px){.hero{padding:40px 0 48px 0}.hero h1{font-size:2rem}}
.search-card{background:#fff;border-radius:var(--radius);box-shadow:var(--shadow-md);padding:20px;margin-top:24px}
.search-grid{display:grid;gap:12px;grid-template-columns:2fr 1fr 1fr auto}
.search-grid input,.search-grid select{width:100%;padding:12px 14px;border:1px solid var(--ink-300);border-radius:var(--radius-sm);font-size:15px;background:#fff;color:var(--ink-900)}
.search-grid input:focus,.search-grid select:focus{outline:0;border-color:var(--teal-500);box-shadow:0 0 0 3px var(--teal-100)}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:12px 18px;border-radius:var(--radius-sm);border:0;cursor:pointer;font:600 15px/1 inherit;text-decoration:none}
.btn-primary{background:var(--teal-500);color:#fff}
.btn-primary:hover{background:var(--teal-600);text-decoration:none}
.btn-ghost{background:transparent;color:var(--ink-700);border:1px solid var(--ink-300)}
.btn-ghost:hover{background:var(--ink-100);text-decoration:none}
.btn-block{width:100%}
.near-me{margin-top:10px;color:rgba(255,255,255,.95);font-size:.9rem;display:inline-flex;gap:6px;background:rgba(255,255,255,.12);padding:6px 12px;border-radius:999px;cursor:pointer;border:0}
.near-me:hover{background:rgba(255,255,255,.22)}
@media (max-width:800px){.search-grid{grid-template-columns:1fr 1fr}.search-grid .btn{grid-column:1/-1}}

/* ---------- Sections ---------- */
section{padding:56px 0}
.section-title{text-align:center;margin-bottom:36px}
.section-title h2{font-size:1.9rem;letter-spacing:-.01em}
.section-title p{color:var(--ink-500);max-width:640px;margin:0 auto}

/* ---------- Nearby-ZIP photo cards ---------- */
.nearby-section{background:#fff;border-bottom:1px solid var(--ink-100)}
.nearby-form{display:flex;gap:10px;flex-wrap:wrap;justify-content:center;margin-bottom:12px}
.nearby-form input,.nearby-form select{padding:10px 14px;border:1px solid var(--ink-300);border-radius:var(--radius-sm);font-size:15px;min-width:200px}
.nearby-form input:focus,.nearby-form select:focus{outline:0;border-color:var(--teal-500);box-shadow:0 0 0 3px var(--teal-100)}
.nearby-status{text-align:center;color:var(--ink-500);min-height:1.5em;margin:6px 0 16px 0}
.nearby-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.nearby-card{background:#fff;border:1px solid var(--ink-100);border-radius:var(--radius);overflow:hidden;transition:transform .15s,box-shadow .15s;display:flex;flex-direction:column}
.nearby-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-md);text-decoration:none}
.nearby-card .card-photo{width:100%;aspect-ratio:4/3;object-fit:cover;background:var(--ink-100);display:block}
.nearby-card .card-body{padding:16px;display:flex;flex-direction:column;gap:6px;flex:1}
.nearby-card h3{color:var(--ink-900);font-size:1.05rem;margin:0}
.nearby-card .meta{color:var(--ink-500);font-size:.88rem}
.nearby-card .card-bottom{display:flex;justify-content:space-between;align-items:center;margin-top:auto;padding-top:10px}
.nearby-card .rating{color:var(--warn);font-weight:600;font-size:.9rem}
.nearby-card .distance{background:var(--teal-100);color:var(--teal-700);font-size:.8rem;font-weight:600;padding:3px 10px;border-radius:999px}
@media (max-width:900px){.nearby-grid{grid-template-columns:repeat(2,1fr)}}
@media (max-width:600px){.nearby-grid{grid-template-columns:1fr}.nearby-form input,.nearby-form select{min-width:0;flex:1 1 100%}}

/* ---------- Category cards ---------- */
.cat-grid{display:grid;gap:20px;grid-template-columns:repeat(2,1fr)}
.cat-card{background:#fff;border-radius:var(--radius);padding:28px;border:1px solid var(--ink-100);display:flex;gap:18px;align-items:flex-start;transition:transform .15s,box-shadow .15s}
.cat-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-md);text-decoration:none}
.cat-icon{width:56px;height:56px;border-radius:14px;background:var(--teal-100);color:var(--teal-700);display:flex;align-items:center;justify-content:center;font-size:28px;flex-shrink:0}
.cat-card h3{color:var(--ink-900);font-size:1.25rem;margin-bottom:6px}
.cat-card p{color:var(--ink-500);margin:0}
@media (max-width:700px){.cat-grid{grid-template-columns:1fr}}

.features{display:grid;gap:24px;grid-template-columns:repeat(3,1fr);margin-top:28px}
.feature h3{font-size:1.05rem;margin-bottom:4px}
.feature p{color:var(--ink-500);margin:0}
@media (max-width:700px){.features{grid-template-columns:1fr}}

/* ---------- Results page ---------- */
.results-layout{display:grid;grid-template-columns:320px 1fr;gap:24px;margin-top:20px}
.filters{background:#fff;border-radius:var(--radius);padding:20px;box-shadow:var(--shadow-sm);border:1px solid var(--ink-100);align-self:start;position:sticky;top:80px}
.filters h3{font-size:1rem;text-transform:uppercase;letter-spacing:.05em;color:var(--ink-500);margin-bottom:8px}
.filter-group{margin-bottom:18px}
.filter-group label{display:block;font-weight:600;margin-bottom:6px;font-size:.9rem}
.filter-group input,.filter-group select{width:100%;padding:9px 12px;border:1px solid var(--ink-300);border-radius:var(--radius-sm);font-size:14px;background:#fff}
.filter-group input[type=checkbox]{width:auto;margin-right:6px}
.svc-list{max-height:220px;overflow:auto;border:1px solid var(--ink-100);border-radius:var(--radius-sm);padding:8px}
.svc-list label{font-weight:400;font-size:14px;margin:0 0 4px 0;display:flex;align-items:center;gap:4px}
.svc-list .svc-icon{font-size:1.05rem;line-height:1}
.results-main h1{font-size:1.6rem;margin-bottom:4px}
.results-meta{color:var(--ink-500);margin-bottom:16px}
#map{height:360px;border-radius:var(--radius);margin-bottom:20px;border:1px solid var(--ink-100);z-index:1}
.result-card{background:#fff;border:1px solid var(--ink-100);border-radius:var(--radius);padding:18px;margin-bottom:14px;display:grid;grid-template-columns:1fr auto;gap:14px;transition:box-shadow .15s}
.result-card:hover{box-shadow:var(--shadow-md)}
.result-card h3{font-size:1.1rem;margin-bottom:4px}
.result-card h3 a{color:var(--ink-900)}
.result-card h3 a:hover{color:var(--teal-600)}
.result-card .meta{color:var(--ink-500);font-size:.9rem;margin-bottom:6px}
.result-card .description{color:var(--ink-700);font-size:.95rem;margin:6px 0 8px 0}

/* ---------- Tags / Pills (with icon support) ---------- */
.tag-row{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
.tag{display:inline-flex;align-items:center;gap:6px;background:var(--teal-100);color:var(--teal-700);font-size:.78rem;font-weight:500;padding:4px 10px;border-radius:999px}
.tag.gray{background:var(--ink-100);color:var(--ink-700)}
.tag.warn{background:#fef3c7;color:#92400e}
.svc-tag{background:var(--ink-100);color:var(--ink-700)}
.svc-tag .svc-icon{font-size:.95rem;line-height:1}

/* Services section on detail page */
.svc-pill-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:10px;margin:6px 0 14px 0}
.pill{background:var(--ink-100);color:var(--ink-700);padding:10px 12px;border-radius:10px;font-size:.92rem;display:inline-flex;align-items:center;gap:10px;transition:background .15s,color .15s}
.pill:hover{background:var(--teal-100);color:var(--teal-700)}
.svc-pill .svc-icon{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:8px;background:#fff;font-size:1.15rem;flex-shrink:0;box-shadow:var(--shadow-sm)}
.svc-pill:hover .svc-icon{background:var(--white);color:var(--teal-700)}

.result-aside{text-align:right;font-size:.9rem;color:var(--ink-500);white-space:nowrap}
.result-aside .rating{color:var(--warn);font-weight:600}
.result-aside .distance{display:block;margin-top:4px;font-weight:500;color:var(--ink-700)}
.empty{background:#fff;border:1px dashed var(--ink-300);border-radius:var(--radius);padding:40px;text-align:center;color:var(--ink-500)}
.empty h3{color:var(--ink-700)}
@media (max-width:900px){.results-layout{grid-template-columns:1fr}.filters{position:static}.result-card{grid-template-columns:1fr}.result-aside{text-align:left}}

/* ---------- Detail page ---------- */
.detail-header{background:#fff;border-bottom:1px solid var(--ink-100);padding:30px 0}
.detail-header .category-crumb{color:var(--ink-500);font-size:.9rem;margin-bottom:8px}
.detail-header h1{font-size:2rem;margin-bottom:6px}
.detail-header .subtle{color:var(--ink-500)}
.detail-hero-photo{width:100%;max-height:360px;object-fit:cover;border-radius:var(--radius);margin-bottom:20px;background:var(--ink-100)}
.detail-layout{display:grid;grid-template-columns:1fr 360px;gap:28px;margin-top:20px}
.detail-main h2{font-size:1.2rem;margin-top:28px;margin-bottom:10px}
.detail-aside{background:#fff;border:1px solid var(--ink-100);border-radius:var(--radius);padding:20px;box-shadow:var(--shadow-sm);align-self:start;position:sticky;top:80px}
.detail-aside h3{font-size:1rem;margin-bottom:12px}
.detail-aside .contact-row{display:flex;gap:10px;margin-bottom:10px;font-size:.95rem;color:var(--ink-700)}
.detail-aside .contact-row strong{display:block;font-size:.75rem;text-transform:uppercase;color:var(--ink-500);letter-spacing:.04em}
#detail-map{height:260px;border-radius:var(--radius-sm);margin:12px 0;border:1px solid var(--ink-100);z-index:1}
@media (max-width:900px){.detail-layout{grid-template-columns:1fr}.detail-aside{position:static}}

/* ---------- Forms ---------- */
.form-card{background:#fff;border:1px solid var(--ink-100);border-radius:var(--radius);padding:28px;margin-top:20px;box-shadow:var(--shadow-sm)}
.form-row{display:grid;gap:16px;grid-template-columns:repeat(2,1fr);margin-bottom:14px}
.form-row.full{grid-template-columns:1fr}
.form-row label{font-weight:600;font-size:.9rem;display:block;margin-bottom:4px}
.form-row input,.form-row select,.form-row textarea{width:100%;padding:10px 12px;border:1px solid var(--ink-300);border-radius:var(--radius-sm);font:inherit;background:#fff;color:var(--ink-900)}
.form-row input:focus,.form-row select:focus,.form-row textarea:focus{outline:0;border-color:var(--teal-500);box-shadow:0 0 0 3px var(--teal-100)}
.form-row textarea{min-height:120px;resize:vertical}
.form-row .err{color:var(--danger);font-size:.82rem;margin-top:4px;display:block}
.form-actions{display:flex;gap:12px;margin-top:10px}
.flash{padding:14px 16px;border-radius:var(--radius-sm);margin-bottom:20px;border:1px solid}
.flash-ok{background:#ecfdf5;color:#065f46;border-color:#bbf7d0}
.flash-err{background:#fef2f2;color:#991b1b;border-color:#fecaca}
@media (max-width:700px){.form-row{grid-template-columns:1fr}}

/* ---------- Footer ---------- */
.site-footer{background:#0b1526;color:#cbd5e1;margin-top:60px;padding:48px 0 24px 0}
.site-footer .brand{color:#fff}
.site-footer h4{color:#fff;font-size:.9rem;text-transform:uppercase;letter-spacing:.05em;margin-bottom:12px}
.site-footer ul{list-style:none;padding:0;margin:0}
.site-footer ul li{margin-bottom:6px}
.site-footer a{color:#cbd5e1}
.site-footer a:hover{color:#fff}
.footer-grid{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:32px;margin-bottom:32px}
.footer-grid .muted{color:#94a3b8;font-size:.9rem;max-width:260px}
.legal{border-top:1px solid #1e293b;padding-top:20px;color:#94a3b8;font-size:.85rem}
.legal-links{display:flex;flex-wrap:wrap;gap:18px;margin-bottom:10px}
.legal-links a{color:#cbd5e1}
.legal-links a:hover{color:#fff}
.legal-copy{max-width:880px}
.legal-copy strong{color:#e2e8f0}
@media (max-width:800px){.footer-grid{grid-template-columns:1fr 1fr}}
@media (max-width:500px){.footer-grid{grid-template-columns:1fr}}
