/* Buyer's Guide: directory, company profile, owner dashboard and profile form */
.co-logo { display:grid; place-items:center; width:64px; height:64px; flex:none; background:#fff; border:1px solid var(--line); overflow:hidden; }
.co-logo img { width:100%; height:100%; object-fit:contain; padding:4px; box-sizing:border-box; }
.co-logo.big { width:96px; height:96px; }
.co-logo-initials { background:linear-gradient(135deg,var(--deep,#04315f),#009fcf); border:0; color:#fff; font:700 1.25rem var(--heading); letter-spacing:.02em; }
.co-logo.big.co-logo-initials { font-size:1.9rem; }
.co-badge { display:inline-block; margin-left:6px; padding:2px 8px; background:var(--mist); color:var(--blue); font-family:inherit;font-weight:bold;font-size:.7rem; letter-spacing:.02em; vertical-align:middle; }
.co-badge.gold { background:#fff1a6; color:#5a4300; }
.co-muted { color:var(--muted); }

/* Directory */
.dr-wrap { display:grid; grid-template-columns:270px minmax(0,1fr); gap:40px; width:min(1220px,92%); margin:0 auto; padding:34px 0 60px; }
.dr-filters summary { cursor:pointer; font:bold 1rem var(--heading); padding:6px 0; }
.dr-filters > details > summary { display:none; }
.dr-group { margin:0 0 24px; }
.dr-group h2 { margin:0 0 8px; font-family:inherit;font-size:.78rem; letter-spacing:.08em; text-transform:uppercase; color:var(--muted); }
.dr-opt { display:flex; justify-content:space-between; gap:8px; padding:6px 10px; font-size:.9rem; color:var(--ink); border-left:3px solid transparent; }
.dr-opt:hover { background:var(--mist); }
.dr-opt.on { background:var(--mist); border-left-color:var(--blue); font-weight:bold; }
.dr-opt small { color:var(--muted); font-weight:normal; }
.dr-more summary { padding:6px 10px; font-family:inherit;font-weight:bold;font-size:.85rem; color:var(--blue); }
.dr-list { display:grid; gap:16px; }
.dr-card { display:grid; grid-template-columns:72px minmax(0,1fr) auto; gap:18px; align-items:start; padding:20px; border:1px solid var(--line); background:#fff; }
.dr-card:hover { border-color:var(--blue); }
.dr-card h3 { margin:0; font:1.25rem/1.2 var(--heading); letter-spacing:-.02em; }
.dr-card h3 a:hover { color:var(--blue); }
.dr-meta { margin:4px 0 0; color:var(--muted); font-size:.88rem; }
.dr-sum { margin:8px 0 0; font-size:.95rem; color:#35546c; }
.dr-body .ar-chips { margin-top:10px; }
.dr-side { display:flex; flex-direction:column; align-items:flex-end; gap:8px; text-align:right; }
.dr-side small { color:var(--muted); font-size:.74rem; max-width:130px; }

/* Company profile */
.co-head { background:linear-gradient(125deg,var(--deep,#04315f),#007db7); color:#fff; padding:30px 0 34px; }
.co-head-in { width:min(1160px,90%); margin:0 auto; }
.co-head .pg-crumbs, .co-head .pg-crumbs a { color:#cfeaf4; }
.co-title { display:flex; align-items:center; gap:22px; flex-wrap:wrap; }
.co-title h1 { margin:0; font:clamp(1.8rem,3.4vw,2.8rem)/1.05 var(--heading); letter-spacing:-.035em; }
.co-sub { margin:6px 0 4px; color:#d6f1f8; }
.co-title .co-badge { margin:0 6px 0 0; }
.co-head-actions { margin-left:auto; display:flex; gap:10px; flex-wrap:wrap; }
.co-head-actions .button.ghost { background:transparent; color:#fff; box-shadow:inset 0 0 0 1px rgba(255,255,255,.6); }
.co-wrap { display:grid; grid-template-columns:minmax(0,1fr) 360px; gap:48px; width:min(1160px,90%); margin:0 auto; padding:40px 0 70px; align-items:start; }
.co-main h2, .co-card h2 { margin:0 0 12px; font:1.5rem var(--heading); letter-spacing:-.02em; }
.co-main section { margin-bottom:38px; }
.co-about { margin:0; font-size:1.05rem; line-height:1.7; max-width:68ch; }
.co-tags { display:flex; flex-wrap:wrap; gap:8px; margin:18px 0 0; }
.co-products { display:grid; grid-template-columns:repeat(auto-fill,minmax(210px,1fr)); gap:16px; }
.co-product { border:1px solid var(--line); background:#fff; }
.co-product img { display:block; width:100%; aspect-ratio:4/3; object-fit:cover; }
.co-product h3 { margin:0; padding:14px 16px 4px; font:1.05rem/1.25 var(--heading); }
.co-product p { margin:0; padding:0 16px 16px; color:var(--muted); font-size:.9rem; }
.co-claim { padding:24px; background:var(--mist); }
.co-claim h2 { font-size:1.3rem; }
.co-aside { display:grid; gap:20px; position:sticky; top:16px; }
.co-card { padding:22px; border:1px solid var(--line); background:#fff; }
.co-card h2 { font-size:1.25rem; }
.co-card h3 { margin:18px 0 8px; font-family:inherit;font-size:.78rem; letter-spacing:.08em; text-transform:uppercase; color:var(--muted); }
.co-card p { margin:0 0 12px; }
.co-card a:not(.button) { color:var(--blue); font-weight:bold; word-break:break-word; }
.co-person { padding:10px 0; border-top:1px solid var(--line); font-size:.92rem; line-height:1.5; }
.co-lock { text-align:center; padding:6px 4px 2px; }
.co-lock-icon { font-size:2rem; margin:0 0 4px !important; }
.co-enquiry label { display:block; margin:0 0 12px; font-weight:bold; font-size:.82rem; }
.co-enquiry input:not(.hp), .co-enquiry textarea { display:block; width:100%; margin-top:5px; padding:10px 12px; border:1px solid #b5c9d3; font:inherit; box-sizing:border-box; background:#fff; }
.hp { position:absolute !important; left:-9999px; width:1px; height:1px; opacity:0; }
.co-report { padding:0 4px; font-size:.88rem; }
.co-report summary { cursor:pointer; color:var(--blue); font-weight:bold; padding:6px 0; }

/* Owner dashboard */
.co-h1 { margin:0 0 14px; font:clamp(2rem,3.6vw,3rem)/1.05 var(--heading); letter-spacing:-.04em; }
.co-h2 { margin:40px 0 14px; font:1.5rem var(--heading); }
.co-mine { display:grid; gap:14px; margin-top:22px; }
.co-mine-card { display:flex; align-items:center; gap:18px; flex-wrap:wrap; padding:20px; border:1px solid var(--line); }
.co-mine-card h2 { margin:0; font:1.3rem var(--heading); }
.co-mine-card p { margin:4px 0 0; }
.co-mine-actions { margin-left:auto; display:flex; gap:10px; }
.co-table { width:100%; border-collapse:collapse; font-size:.92rem; }
.co-table th, .co-table td { padding:10px 12px; border-bottom:1px solid var(--line); text-align:left; vertical-align:top; }
.co-table th { color:var(--muted); font-size:.75rem; letter-spacing:.06em; text-transform:uppercase; }
.co-table .status { display:inline-block; padding:2px 9px; font-size:.78rem; font-weight:bold; background:var(--mist); }
.co-table .status.approved { background:#e0f5e9; color:#14633f; }
.co-table .status.rejected { background:#fde7e7; color:#8a1f1f; }
.co-table .status.pending { background:#fff1a6; color:#5a4300; }

/* Profile form (owner and admin) */
.co-form { display:grid; gap:22px; margin-top:24px; }
.co-section { margin:0; padding:22px 24px; border:1px solid var(--line); background:#fff; }
.co-section legend { padding:0 8px; font:bold 1.05rem var(--heading); }
.co-section legend small { color:var(--muted); font-weight:normal; font-size:.8rem; }
.co-form .form-grid { padding:0; background:none; margin:0; }
.co-form label.check { display:flex; align-items:center; gap:8px; font-weight:normal; font-size:.92rem; }
.co-form input[type="checkbox"] { width:auto; margin:0; }
.co-logo-row { display:flex; align-items:center; gap:22px; flex-wrap:wrap; }
.co-cats { display:grid; grid-template-columns:repeat(auto-fill,minmax(250px,1fr)); gap:8px 18px; }
.co-row { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)) auto; gap:10px; align-items:end; padding:12px 0; border-top:1px solid var(--line); }
.co-row-product { grid-template-columns:1.2fr 1.6fr 1fr auto auto; }
.co-row label { display:block; font-size:.78rem; font-weight:bold; }
.co-row input { display:block; width:100%; margin-top:4px; box-sizing:border-box; }
.co-remove { height:42px; padding:0 12px; border:1px solid var(--line); background:#fff; cursor:pointer; font:inherit; font-size:.82rem; }
.co-remove:hover { border-color:#b32; color:#b32; }
.co-thumb img { width:52px; height:52px; object-fit:cover; border:1px solid var(--line); display:block; }
.co-actions { display:flex; gap:12px; }
[data-add] { margin-top:12px; }

@media (max-width:980px) {
  .dr-wrap { grid-template-columns:1fr; gap:10px; }
  .dr-filters > details > summary { display:block; padding:12px 14px; background:var(--mist); }
  .dr-filters > details:not([open]) > *:not(summary) { display:none; }
  .co-wrap { grid-template-columns:1fr; gap:30px; }
  .co-aside { position:static; }
  .co-row, .co-row-product { grid-template-columns:1fr 1fr; }
}
@media (max-width:640px) {
  .dr-card { grid-template-columns:56px minmax(0,1fr); }
  .dr-side { grid-column:1/-1; flex-direction:row; align-items:center; justify-content:space-between; text-align:left; }
  .co-logo { width:56px; height:56px; }
  .co-row, .co-row-product { grid-template-columns:1fr; }
  .co-head-actions { margin-left:0; }
}

/* Companies inside Insights search */
.ins-companies { margin:0 0 30px; padding:18px 20px; background:var(--mist); }
.ins-companies h3 { display:flex; justify-content:space-between; align-items:baseline; gap:12px; margin:0 0 12px; font:1.1rem var(--heading); }
.ins-co-row { display:grid; grid-template-columns:repeat(auto-fill,minmax(250px,1fr)); gap:12px; }
.ins-co { display:flex; align-items:center; gap:12px; padding:10px; background:#fff; border:1px solid var(--line); }
.ins-co:hover { border-color:var(--blue); }
.ins-co .co-logo { width:44px; height:44px; font-size:.95rem; }
.ins-co span { display:flex; flex-direction:column; min-width:0; }
.ins-co strong { font-size:.92rem; line-height:1.25; }
.ins-co small { color:var(--muted); font-size:.78rem; }
