/* Directory components. Builds on the brand tokens and base components in /styles.css. */
.dir-wrap{width:min(1220px,calc(100% - 40px));margin:0 auto}
.fine{font-size:12px;color:var(--muted)}
.full{width:100%}
.link-button{border:0;background:none;padding:0;color:var(--green);font:inherit;font-weight:700;text-decoration:underline;cursor:pointer}
a{color:var(--green)}

/* Breadcrumbs */
.crumbs ol{list-style:none;display:flex;flex-wrap:wrap;gap:6px;padding:16px 0;margin:0;font-size:12px;color:var(--muted)}
.crumbs li+li:before{content:'›';margin-right:6px}
.crumbs a{color:var(--muted)}

/* Hero band for generated pages */
.dir-hero{background:linear-gradient(120deg,#173a32,#285b4e);color:#fff;padding:56px 0 48px}
.dir-hero.compact{padding:36px 0}
.dir-hero h1{font:500 clamp(34px,4.4vw,56px)/1.04 var(--serif);margin:12px 0;max-width:900px}
.dir-hero p{color:#dce8df;max-width:760px;font-size:17px}
.dir-hero .search-panel{margin-top:24px}
.hero-badges{margin:8px 0}

/* Regulation badges: medical / licensed care / wellness */
.reg-badge{display:inline-block;font-size:10px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;padding:4px 8px;border-radius:3px;vertical-align:middle}
.reg-medical{background:#dbe7f3;color:#1f4466}
.reg-licensed-care{background:#e7eedf;color:#365326}
.reg-wellness{background:#f3ead4;color:#5e4a1c}
.reg-note{background:#f4f5f2;padding:12px 14px;font-size:13px}

.dir-section{padding:34px 0;border-bottom:1px solid var(--line)}
.dir-section:last-child{border-bottom:0}
.dir-section h2{font:500 clamp(26px,3vw,36px)/1.1 var(--serif);margin:0 0 16px}
.split-head{display:flex;justify-content:space-between;align-items:baseline;gap:20px;flex-wrap:wrap}
.split-head h2 a{color:inherit;text-decoration:none}
.reg-explainer{max-width:860px}

.link-grid{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--line)}
.link-grid a{display:flex;justify-content:space-between;gap:10px;padding:13px 8px;border-bottom:1px solid var(--line);color:var(--ink);text-decoration:none}
.link-grid a:hover{color:var(--green);background:var(--pale)}
.link-grid span{color:var(--muted);font-size:12px}
.chip-links{list-style:none;padding:0;display:flex;flex-wrap:wrap;gap:8px}
.chip-links a{display:inline-block;border:1px solid var(--line);background:#fff;padding:8px 14px;border-radius:20px;font-size:13px;color:var(--ink);text-decoration:none}
.chip-links a:hover{border-color:var(--green)}

.cat-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.cat-card{background:#fff;border:1px solid var(--line);padding:22px;color:var(--ink);text-decoration:none;display:flex;flex-direction:column;gap:6px;transition:.2s}
.cat-card:hover{box-shadow:var(--shadow);transform:translateY(-3px)}
.cat-card h3{font:600 22px/1.15 var(--serif);margin:6px 0 0}
.cat-card p{color:var(--muted);font-size:14px;margin:0}
.cat-card b{margin-top:auto;padding-top:10px;color:var(--green);font-size:13px}
.cat-list{list-style:none;padding:0;columns:2;column-gap:40px}
.cat-list li{display:flex;gap:10px;align-items:center;padding:9px 0;border-bottom:1px solid var(--line);break-inside:avoid}
.cat-list li a{flex:1;color:var(--ink);text-decoration:none;font-weight:600}
.legend-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.legend-grid p{font-size:14px;color:var(--muted)}

/* Cards */
.dir-card h3 a{color:inherit;text-decoration:none}
.dir-card h3 a:hover{text-decoration:underline}
.badge.demo{background:#efe3e0;color:#6b3a30}
.badge.lic-verified{background:#dcebe3;color:#1f5440}
.badge.lic-pending{background:#f3e9c9;color:#5e4a1c}
.badge.lic-unverified,.badge.lic-rejected,.badge.lic-expired{background:#f1f1ee;color:#5d6461}
.save-button.saved{background:var(--green);color:#fff}
.sponsored-strip{background:#fbf3df;border:1px solid #ecdcae;padding:24px;margin:30px 0}
.sponsored-head{display:flex;justify-content:space-between;align-items:baseline;gap:12px;flex-wrap:wrap}
.sponsored-head h2{font:500 26px var(--serif);margin:0}
.sponsored-head a{font-size:12px}
.more-note{margin-top:18px;font-size:14px}

/* FAQ */
.faq details{border-bottom:1px solid var(--line);padding:6px 0}
.faq summary{cursor:pointer;font-weight:700;padding:12px 0;list-style-position:outside}
.faq details p{color:#45564f;margin:0 0 14px;max-width:820px}

.guide-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.guide-card{background:#fff;padding:22px;color:var(--ink);text-decoration:none;border:1px solid var(--line);display:flex;flex-direction:column;gap:8px}
.guide-card h3{font:500 22px/1.15 var(--serif);margin:6px 0 0}
.guide-card p{font-size:14px;color:var(--muted);margin:0}
.guide-card b{margin-top:auto;color:var(--green);font-size:13px}

/* Location pages */
.loc-grid{display:grid;grid-template-columns:1fr 320px;gap:32px;align-items:start}
.loc-grid .provider-grid{grid-template-columns:repeat(2,1fr)}
.side-card{background:#fff;border:1px solid var(--line);padding:20px;margin:30px 0 0}
.side-card h2{font:500 22px/1.15 var(--serif);margin:0 0 10px}
.side-card .button+.button{margin-top:8px}

/* Profile */
.profile-head{padding:10px 0 26px;border-bottom:1px solid var(--line)}
.profile-head h1{font:500 clamp(36px,4.5vw,56px)/1.03 var(--serif);margin:12px 0 8px}
.badge-row{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.profile-cats a{color:var(--gold);font-weight:700;text-transform:uppercase;letter-spacing:.08em;font-size:12px;text-decoration:none}
.profile-addr{color:var(--muted);margin:4px 0 0}
.profile-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:20px}
.profile-grid{display:grid;grid-template-columns:1fr 340px;gap:40px;align-items:start}
.profile-side{position:sticky;top:96px}
.tick-list{padding-left:0;list-style:none}
.tick-list li{padding:6px 0 6px 24px;position:relative}
.tick-list li:before{content:'✓';position:absolute;left:0;color:var(--green);font-weight:700}
.kv{margin:0;display:grid;gap:10px}
.kv div{display:grid;grid-template-columns:minmax(120px,40%) 1fr;gap:12px;font-size:14px}
.kv dt{color:var(--muted)}
.kv dd{margin:0;font-weight:600}
.kv-table{width:100%;border-collapse:collapse;font-size:14px}
.kv-table th,.kv-table td{text-align:left;padding:10px 8px;border-bottom:1px solid var(--line);vertical-align:top}
.kv-table th{font-weight:600;color:var(--muted);width:42%}
.verified-tag{font-size:10px;font-weight:800;text-transform:uppercase;background:#dcebe3;color:#1f5440;padding:2px 6px;margin-left:6px}
.oversight{background:#f2f6fa;border:1px solid #d6e2ee;padding:24px;margin-top:24px}
.gov-panel{background:#fff;border:2px solid #9fb8cf;padding:24px;margin-top:24px}
.gov-panel .eyebrow{color:#1f4466}
.gov-alerts{padding:0;list-style:none}
.gov-alerts li{background:#fbe9e5;color:#6b2a1e;padding:10px 12px;margin-bottom:6px;font-weight:600;font-size:14px}
.lic-status{font-weight:800}
.lic-status.lic-verified{color:#1f5440}
.lic-status.lic-pending{color:#8a6a1f}
.lic-list{list-style:none;padding:0}
.lic-list li{display:grid;gap:2px;padding:10px 0;border-top:1px solid var(--line);font-size:13px}
.source-list{padding-left:18px;font-size:14px}
.source-list li{margin:6px 0}
.map-embed{width:100%;height:280px;border:1px solid var(--line)}
.reviews{color:var(--muted)}

/* Search */
.search-layout{display:grid;grid-template-columns:280px 1fr;gap:32px;padding:32px 0 60px;align-items:start}
.filters{background:#fff;border:1px solid var(--line);padding:20px;position:sticky;top:96px;max-height:calc(100vh - 120px);overflow:auto}
.filters form{display:grid;gap:14px}
.f-field{display:grid;gap:6px;font-size:12px;font-weight:700}
.f-field select,.f-field input{border:1px solid var(--line);padding:10px;background:#fff;font-weight:400;color:var(--ink)}
.facet{border:0;padding:0;margin:0;display:grid;gap:6px}
.facet legend{font-size:12px;font-weight:700;margin-bottom:6px}
.facet label{display:flex;gap:8px;align-items:center;font-size:13px}
.facet .fine{margin:0}
.results-bar{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;margin-bottom:16px}
.results-bar p{margin:0;font-weight:700}
.results-tools{display:flex;gap:14px;align-items:center;flex-wrap:wrap;font-size:13px}
.results-tools select{border:1px solid var(--line);padding:8px;background:#fff}
.results .provider-grid{grid-template-columns:repeat(2,1fr)}
.pager{text-align:center;margin:24px 0}
.distance{font-size:12px;color:var(--muted)}

/* For providers */
.plan-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.plan-card{background:#fff;border:1px solid var(--line);padding:24px;display:flex;flex-direction:column}
.plan-card.is-sponsored{border-color:#e2c97e}
.plan-card h3{font:500 26px var(--serif);margin:8px 0 0}
.plan-card .price{font:500 36px var(--serif);margin:8px 0}
.plan-card .price small{font:400 13px var(--sans);color:var(--muted)}
.plan-card ul{flex:1}
.two-col{display:grid;grid-template-columns:1fr 1fr;gap:40px}

/* Articles & policies */
.guide-page{max-width:780px;padding:20px 0 70px}
.guide-page h1{font:500 clamp(36px,4.5vw,54px)/1.05 var(--serif);margin:12px 0}
.guide-page h2{font:500 28px var(--serif);margin:34px 0 10px}
.guide-page p{font-size:17px}
.review-line{background:#eef4ef;padding:10px 14px;font-size:14px!important}
.review-line.pending{background:#fbf0d6}

/* Form dialog */
.form-modal .wide{grid-column:1/-1}
.form-modal textarea{display:block;width:100%;margin-top:6px;border:1px solid var(--line);padding:13px;font:inherit;min-height:96px}
.form-error{grid-column:1/-1;background:#fbe9e5;color:#6b2a1e;padding:10px 12px;font-size:13px}

/* Homepage additions */
.dir-home{background:#fff}
.division-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:16px;max-width:1300px;margin:auto}
.division-card{border:1px solid var(--line);padding:24px;background:var(--cream);display:flex;flex-direction:column}
.division-icon{width:46px;height:46px;border-radius:50%;background:#fff;display:grid;place-items:center;color:var(--green);font-size:20px}
.division-card h3{font:600 22px/1.15 var(--serif);margin:14px 0 6px}
.division-card h3 a{color:var(--ink);text-decoration:none}
.division-card p{font-size:13px;color:var(--muted);margin:0 0 10px}
.division-card ul{list-style:none;padding:0;margin:0 0 12px;font-size:14px}
.division-card li{padding:5px 0;border-top:1px solid var(--line)}
.division-card li a{color:var(--ink);text-decoration:none}
.division-card li a:hover{color:var(--green);text-decoration:underline}
.division-card .text-link{margin-top:auto}
.spotlights{background:#f0eee6}
.spot-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:20px;max-width:1220px;margin:auto}
.spotlight{background:#fff;padding:32px}
.spotlight h3{font:500 30px/1.1 var(--serif);margin:8px 0}
.spotlight>p{color:var(--muted)}
.spot-cats{list-style:none;padding:0;margin:18px 0}
.spot-cats li{border-top:1px solid var(--line);padding:10px 0}
.spot-cats li>a{display:flex;gap:10px;align-items:center;color:var(--ink);text-decoration:none}
.spot-cats li>a b{flex:1}
.spot-cats small{color:var(--muted);font-size:12px}
.spot-states{display:flex;flex-wrap:wrap;gap:4px 12px;margin-top:4px;font-size:12px}
.featured-home{background:#fff}
.state-list a{border-bottom:1px solid var(--line);padding:16px 8px;color:var(--ink);text-decoration:none;display:flex;justify-content:space-between}
.state-list a:hover{color:var(--gold)}
.rollout-links{margin-top:18px;font-size:13px;color:#e6eee9}
.rollout-links a{color:#fff}
.plan-row.plan-row-4{grid-template-columns:repeat(4,1fr)}

@media(max-width:1100px){.division-grid{grid-template-columns:repeat(3,1fr)}.plan-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:1000px){.link-grid{grid-template-columns:repeat(3,1fr)}.cat-grid,.guide-cards{grid-template-columns:repeat(2,1fr)}.profile-grid,.loc-grid,.search-layout{grid-template-columns:1fr}.profile-side,.filters{position:static;max-height:none}.spot-grid{grid-template-columns:1fr}.legend-grid{grid-template-columns:1fr}}
@media(max-width:700px){.dir-wrap{width:calc(100% - 32px)}.link-grid{grid-template-columns:1fr 1fr}.cat-grid,.guide-cards,.plan-grid,.two-col,.division-grid{grid-template-columns:1fr}.cat-list{columns:1}.loc-grid .provider-grid,.results .provider-grid{grid-template-columns:1fr}.dir-hero{padding:40px 0 32px}.spotlight{padding:24px}.plan-row.plan-row-4{grid-template-columns:1fr}.kv div{grid-template-columns:1fr}.profile-actions .button{flex:1 1 100%}}
