/* ============================================================
   themes/custom-directory/style.css — Classic Directory (Yellow Pages)
   No framework. Compact, data-dense, gold/navy palette.
   ============================================================ */

*, *::before, *::after { box-sizing:border-box; margin:0; padding:0; }

body { font-family:'Arial',sans-serif; font-size:14px; background:var(--bg); color:var(--text); line-height:1.5; }

a { color:var(--link); text-decoration:none; }
a:hover { color:var(--accent); text-decoration:underline; }

/* === HEADER === */
.dir-header { background:linear-gradient(135deg,var(--primary) 0%,var(--primary-dark) 100%); color:#fff; }
.dir-header-inner { max-width:1100px; margin:0 auto; padding:0.75rem 1rem; display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:0.75rem; }

.dir-brand a { font-family:Georgia,serif; font-size:1.6rem; font-weight:bold; color:var(--accent); text-decoration:none; letter-spacing:-0.5px; }
.dir-tagline { display:block; font-size:0.75rem; color:#a0b4cc; margin-top:2px; }

.dir-search-bar { display:flex; gap:0; }
.dir-search-input { border:none; padding:0.5rem 0.75rem; font-size:0.875rem; width:100%; max-width:280px; border-radius:4px 0 0 4px; }
.dir-search-btn { background:var(--accent); color:var(--primary); border:none; padding:0.5rem 1rem; font-weight:bold; cursor:pointer; border-radius:0 4px 4px 0; }
.dir-search-btn:hover { background:var(--accent); filter:brightness(0.9); }

.dir-nav { background:var(--primary-dark); border-top:1px solid rgba(255,255,255,0.15); }
.dir-nav a { display:inline-block; color:#a0c0e0; padding:0.4rem 1rem; font-size:0.8rem; text-transform:uppercase; letter-spacing:0.05em; text-decoration:none; }
.dir-nav a:hover { color:var(--accent); background:rgba(255,255,255,0.05); }

/* === LAYOUT === */
.dir-layout { max-width:1100px; margin:1rem auto; padding:0 1rem; display:grid; grid-template-columns:1fr 240px; gap:1.25rem; align-items:start; }
@media (max-width:700px) { .dir-layout { grid-template-columns:1fr; } .dir-sidebar { display:none; } }

.dir-main { min-width:0; }
.dir-content { background:#fff; border:1px solid #ddd; padding:1.25rem; border-radius:2px; }

/* === SIDEBAR WIDGETS === */
.dir-widget { background:#fff; border:1px solid #ddd; margin-bottom:0.75rem; border-radius:2px; overflow:hidden; }
.dir-widget-hd { background:var(--primary); color:var(--accent); font-size:0.75rem; font-weight:bold; text-transform:uppercase; letter-spacing:0.05em; padding:0.4rem 0.75rem; }
.dir-widget-bd { padding:0.5rem; }

.dir-linklist { list-style:none; }
.dir-linklist li { border-bottom:1px solid #f0f0f0; }
.dir-linklist li:last-child { border-bottom:none; }
.dir-linklist a { display:block; padding:0.35rem 0.5rem; font-size:0.8rem; color:var(--primary); }
.dir-linklist a:hover { background:#fffbe6; color:var(--accent); text-decoration:none; }

.dir-search-inline { display:flex; }
.dir-widget-input { flex:1; border:1px solid #ccc; border-right:none; padding:0.3rem 0.5rem; font-size:0.8rem; }
.dir-widget-btn { background:var(--primary); color:var(--accent); border:none; padding:0.3rem 0.6rem; font-size:0.9rem; cursor:pointer; }

/* === GRIDS === */
.dir-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:0.5rem; margin-bottom:1rem; }
.dir-grid-cell { background:#f9f9f9; border:1px solid #e0e0e0; padding:0.5rem; border-radius:2px; }
.dir-grid-link { font-size:0.85rem; font-weight:bold; color:var(--primary); display:block; }
.dir-grid-sub { font-size:0.75rem; color:#888; display:block; margin-top:2px; }

.dir-company-list { display:flex; flex-direction:column; gap:0.6rem; }
.dir-company-item { background:#f9f9f9; border:1px solid #e0e0e0; border-left:3px solid var(--accent); padding:0.6rem; display:flex; align-items:center; justify-content:space-between; gap:0.5rem; }
.dir-company-name a { font-weight:bold; font-size:0.9rem; color:var(--primary); }
.dir-company-addr { font-size:0.78rem; color:#666; }
.dir-btn { background:var(--accent); color:var(--primary); font-size:0.75rem; font-weight:bold; padding:0.25rem 0.6rem; border-radius:2px; white-space:nowrap; text-decoration:none; }
.dir-btn:hover { background:var(--accent); filter:brightness(0.9); text-decoration:none; }

/* Map */
.map-responsive { overflow:hidden; padding-bottom:56.25%; position:relative; height:0; margin-bottom:1rem; }
.map-responsive iframe { left:0; top:0; height:100%; width:100%; position:absolute; border:0; }

/* Content tables */
.data-table { display:block; overflow-x:auto; width:100%; border-collapse:collapse; margin-bottom:1rem; font-size:0.875rem; }
.data-table th, .data-table td { padding:0.35rem 0.5rem; border:1px solid #e0e0e0; }
.data-table thead td, .data-table thead th { background:var(--primary); color:#fff; font-weight:bold; }

.page-updated { color:var(--text-muted); font-size:0.8rem; font-style:italic; display:block; margin-bottom:0.75rem; }

/* === FOOTER === */
.dir-footer { background:var(--primary-dark); color:rgba(255,255,255,0.6); margin-top:1.5rem; }
.dir-footer-inner { max-width:1100px; margin:0 auto; padding:0.75rem 1rem; display:flex; justify-content:space-between; align-items:center; font-size:0.75rem; flex-wrap:wrap; gap:0.5rem; }
.dir-footer a { color:rgba(255,255,255,0.6); text-decoration:none; }
.dir-footer a:hover { color:var(--accent); }
