/* Installer directory: /installers, /installers/{slug}, and the listing preview in
   /partner/listing. Owned by the directory pages; nothing else depends on it.
   House rules: body text 16px, nothing under 14px. Colours come from the site tokens
   with fallbacks, so the same markup works on the marketing and the portal layouts. */

.dir-wrap{width:100%;max-width:1320px;margin:0 auto;padding:0 32px 64px;box-sizing:border-box;font-size:16px;line-height:1.55;color:var(--text,#1c2b34)}
.dir-hero{padding:56px 0 28px;max-width:820px}
.dir-eyebrow{display:inline-block;padding:3px 10px;border-radius:3px;background:var(--teal-light,#e0f2ef);color:var(--teal,#008a78);font-size:14px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;margin-bottom:14px}
.dir-hero h1{font-size:clamp(30px,4vw,46px);line-height:1.1;margin:0 0 12px}
.dir-hero p{font-size:18px;color:var(--text-mid,#4a6070);margin:0}
.dir-muted{color:var(--text-mid,#4a6070)}

.dir-search{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:10px;align-items:end;background:var(--surface,#e8ecf0);border:1px solid var(--border,#b8c4cc);border-radius:8px;padding:16px;margin-bottom:24px}
.dir-search label{display:block;font-size:14px;font-weight:600;color:var(--text-mid,#4a6070);margin-bottom:4px}
.dir-input,.dir-search input,.dir-search select,.dir-form input,.dir-form select,.dir-form textarea{width:100%;box-sizing:border-box;font-size:16px;padding:10px 12px;border:1px solid var(--border,#b8c4cc);border-radius:6px;background:var(--panel,#fff);color:var(--text,#1c2b34);font-family:inherit}
.dir-form textarea{min-height:110px;resize:vertical}

.dir-btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;font-size:16px;font-weight:600;padding:10px 18px;border-radius:6px;border:1px solid var(--teal,#008a78);background:var(--teal,#008a78);color:#fff;cursor:pointer;text-decoration:none;white-space:nowrap}
.dir-btn:hover{background:var(--teal-mid,#00a890);border-color:var(--teal-mid,#00a890);color:#fff}
.dir-btn[disabled]{opacity:.6;cursor:default}
.dir-btn-ghost{background:transparent;color:var(--teal,#008a78)}
.dir-btn-ghost:hover{background:var(--teal-light,#e0f2ef);color:var(--teal,#008a78)}

.dir-layout{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:28px;align-items:start}
.dir-results{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:16px}
.dir-card{display:flex;flex-direction:column;gap:10px;background:var(--panel,#f0f3f5);border:1px solid var(--border,#b8c4cc);border-radius:10px;padding:18px}
.dir-card-head{display:flex;gap:12px;align-items:center}
.dir-card h2,.dir-card h3{font-size:19px;margin:0;line-height:1.25}
.dir-card h2 a,.dir-card h3 a{color:inherit;text-decoration:none}
.dir-card h2 a:hover,.dir-card h3 a:hover{text-decoration:underline}
.dir-card p{margin:0}
.dir-card-actions{margin-top:auto;display:flex;gap:8px;flex-wrap:wrap}

.dir-logo{width:56px;height:56px;border-radius:8px;object-fit:contain;background:#fff;border:1px solid var(--border,#b8c4cc);flex-shrink:0}
.dir-logo-lg{width:96px;height:96px}
.dir-initials{display:flex;align-items:center;justify-content:center;font-weight:700;font-size:20px;color:var(--teal,#008a78);background:var(--teal-light,#e0f2ef)}
.dir-logo-lg.dir-initials{font-size:32px}

.dir-badge{display:inline-block;font-size:14px;font-weight:600;padding:2px 10px;border-radius:999px;border:1px solid var(--border,#b8c4cc);color:var(--text-mid,#4a6070);background:var(--surface,#e8ecf0)}
.dir-badge-elite{border-color:#b08d2a;color:#7a5d00;background:#fbf3d9}
.dir-badge-pro{border-color:var(--teal,#008a78);color:var(--teal,#008a78);background:var(--teal-light,#e0f2ef)}
.dir-chips{display:flex;flex-wrap:wrap;gap:6px;padding:0;margin:0;list-style:none}
.dir-chip{font-size:14px;padding:3px 10px;border-radius:999px;background:var(--surface,#e8ecf0);border:1px solid var(--border,#b8c4cc)}
.dir-chip-service{background:var(--teal-xlight,#f0faf8);border-color:#7acfc5}

.dir-side{display:flex;flex-direction:column;gap:16px}
.dir-panel{background:var(--panel,#f0f3f5);border:1px solid var(--border,#b8c4cc);border-radius:10px;padding:20px}
.dir-panel h2{font-size:22px;margin:0 0 8px}
.dir-panel h3{font-size:18px;margin:0 0 6px}
.dir-recruit{border-color:var(--teal,#008a78);background:var(--teal-xlight,#f0faf8)}
.dir-steps{list-style:none;counter-reset:dirstep;padding:0;margin:14px 0;display:grid;grid-template-columns:1fr;gap:8px}
.dir-steps li{counter-increment:dirstep;display:flex;gap:10px;align-items:flex-start;font-size:15px}
.dir-steps li::before{content:counter(dirstep);flex-shrink:0;width:26px;height:26px;border-radius:50%;background:var(--teal,#008a78);color:#fff;font-weight:700;font-size:14px;display:flex;align-items:center;justify-content:center}
.dir-steps-row{grid-template-columns:repeat(4,minmax(0,1fr))}

.dir-form{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.dir-form .dir-full{grid-column:1/-1}
.dir-form label{display:block;font-size:14px;font-weight:600;color:var(--text-mid,#4a6070);margin-bottom:4px}
.dir-check{display:flex;gap:8px;align-items:flex-start;font-size:15px}
.dir-check input{width:auto;margin-top:4px}
.dir-hp{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}
.dir-error{color:var(--red,#b42318);font-size:15px}
.dir-ok{color:var(--green,#067647);font-size:16px}

.dir-profile{display:grid;grid-template-columns:minmax(0,1fr) 400px;gap:32px;align-items:start;padding-top:40px}
.dir-profile-head{display:flex;gap:18px;align-items:center;margin-bottom:16px}
.dir-profile-head h1{font-size:clamp(28px,3.5vw,40px);margin:0 0 6px;line-height:1.15}
.dir-section{margin-top:26px}
.dir-section h2{font-size:20px;margin:0 0 10px}
.dir-desc p{margin:0 0 10px}
.dir-desc ul{margin:0 0 10px 20px}
.dir-links{display:flex;flex-wrap:wrap;gap:10px}
.dir-links a{font-size:16px}
.dir-facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:10px;margin:0}
.dir-facts div{background:var(--surface,#e8ecf0);border-radius:8px;padding:10px 12px}
.dir-facts dt{font-size:14px;color:var(--text-mid,#4a6070)}
.dir-facts dd{margin:0;font-weight:600}
.dir-projects{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px}
.dir-project{border:1px solid var(--border,#b8c4cc);border-radius:8px;padding:14px;background:var(--panel,#f0f3f5)}
.dir-project h3{font-size:17px;margin:0 0 4px}
.dir-project p{margin:6px 0 0;font-size:15px}
.dir-preview-note{background:#fff7e0;border:1px solid #e0c060;color:#5c4400;border-radius:8px;padding:10px 14px;font-size:15px;margin-bottom:12px}

/* The partner editor and leads table share these. */
.dir-edit{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:24px;align-items:start}
.dir-edit fieldset{border:1px solid var(--border,#b8c4cc);border-radius:8px;padding:14px;margin:0 0 14px}
.dir-edit legend{font-weight:700;font-size:16px;padding:0 6px}
.dir-tick-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:6px}
.dir-table{width:100%;border-collapse:collapse;font-size:15px}
.dir-table th,.dir-table td{text-align:left;padding:10px 8px;border-bottom:1px solid var(--border,#b8c4cc);vertical-align:top}
.dir-table th{font-size:14px;color:var(--text-mid,#4a6070)}
.dir-table select{font-size:15px;padding:6px 8px}

@media (max-width:1000px){
  .dir-layout,.dir-profile,.dir-edit{grid-template-columns:1fr}
  .dir-steps-row{grid-template-columns:1fr 1fr}
}
@media (max-width:600px){
  .dir-wrap{padding:0 16px 48px}
  .dir-hero{padding-top:32px}
  .dir-form{grid-template-columns:1fr}
  .dir-results{grid-template-columns:1fr}
  .dir-steps-row{grid-template-columns:1fr}
  .dir-table{display:block;overflow-x:auto}
}
