.flash{background:#e8f5e9;color:#14532d;border-bottom:1px solid #b7dfba;padding:8px 0;font-weight:500}
:root[data-theme="dark"] .flash{background:#12301c;color:#b7f0c0;border-color:#1f4a2c}
.ad{margin:0 0 18px;text-align:center;overflow:hidden}.ad img{max-width:100%;height:auto;border-radius:6px}
.form{display:grid;gap:12px;max-width:560px}
.form label{font-weight:600;display:block;margin-bottom:2px}
.form input,.form textarea{width:100%;padding:10px 12px;border:1px solid var(--line);border-radius:8px;font:inherit;background:var(--card);color:var(--ink)}
.form .hp{position:absolute;left:-9999px;height:0;width:0;overflow:hidden}
.err{color:var(--alert);font-size:14px;margin:2px 0 0}

/* ---- comments, reactions, author ---- */
.react{margin:22px 0}
.react-row{display:flex;flex-wrap:wrap;gap:8px}
.react-row button{border:1px solid var(--line);background:var(--card);color:var(--ink);border-radius:999px;padding:6px 14px;font:inherit;font-size:15px;cursor:pointer}
.react-row button:hover{border-color:var(--acc)}
.react-row button.on{background:var(--acc);border-color:var(--acc);color:#fff}
.react-row .n{font-weight:600;margin-left:2px}
.cm{border-bottom:1px solid var(--line);padding:12px 0}
.cm p{margin:4px 0 0;overflow-wrap:anywhere}
.cm.reply{margin:10px 0 0 18px;padding:8px 0 0 14px;border:0;border-left:3px solid var(--acc)}
.cm-h{font-size:15px}
.author-h{display:flex;gap:16px;align-items:center;margin-bottom:8px}
.author-av{width:88px;height:88px;border-radius:50%;object-fit:cover;flex:none}
.author-av.ph{display:grid;place-items:center;background:var(--pri);color:var(--onpri);font-size:36px;font-weight:700}

/* ---- search suggestions ---- */
.srch form{position:relative}
.suggest{position:absolute;left:0;right:0;top:100%;z-index:20;margin:4px 0 0;padding:4px 0;list-style:none;background:var(--card);border:1px solid var(--line);border-radius:8px;box-shadow:0 8px 24px rgba(0,0,0,.15);max-height:60vh;overflow:auto}
.suggest a{display:block;padding:8px 14px;line-height:1.5}
.suggest a:hover,.suggest a:focus{background:var(--soft);outline:none}

/* ---- directory, tags ---- */
.alert-box{background:var(--soft);border-left:4px solid var(--alert);padding:10px 14px;border-radius:6px}
.filters{display:flex;flex-wrap:wrap;gap:12px;margin:14px 0}.filters select{padding:6px 10px;border:1px solid var(--line);border-radius:8px;font:inherit;background:var(--card);color:var(--ink)}
.grp{margin:22px 0 8px;font-size:19px}
.fac{display:grid;gap:4px}.tel{display:inline-block;margin:2px 10px 2px 0;font-weight:600;color:var(--pri)}
a.pill{text-decoration:none}a.pill:hover{background:var(--acc);color:#fff}

/* ---- photo gallery ---- */
.photogrid{display:grid;gap:8px;grid-template-columns:repeat(auto-fill,minmax(140px,1fr))}
.pg-item img{width:100%;aspect-ratio:1/1;object-fit:cover;border-radius:6px;display:block}
.joblist{display:grid;gap:12px}
.jobcard{display:block;background:var(--card);border:1px solid var(--line);border-radius:10px;padding:14px}
.jobcard h4{margin:0 0 4px;font-size:18px}
.alert-box{background:var(--soft);border:1px solid var(--line);border-radius:8px;padding:10px 14px}
.filters{display:flex;gap:10px;flex-wrap:wrap;margin:10px 0}
.filters select{padding:6px 10px;border:1px solid var(--line);border-radius:8px;background:var(--card);color:var(--ink);font:inherit}
.grp{margin:22px 0 10px}
.fac b{display:block;margin-bottom:2px}
.tel{display:inline-block;margin:2px 8px 2px 0;color:var(--pri);font-weight:600}
/* ---- cookie consent ---- */
.cookie{position:fixed;left:0;right:0;bottom:0;z-index:50;background:var(--card);border-top:1px solid var(--line);padding:14px 16px;box-shadow:0 -6px 20px rgba(0,0,0,.12)}
.cookie .w{display:flex;gap:14px;align-items:center;flex-wrap:wrap}
.cookie p{margin:0;flex:1;min-width:220px;font-size:14px}
.cookie a{color:var(--pri);text-decoration:underline}
.cat-hero{width:100%;max-height:220px;object-fit:cover;border-radius:10px;margin-bottom:10px}
.lang-switch{display:flex;gap:4px;font-size:14px}
.lang-switch a{padding:4px 8px;border-radius:6px;color:var(--mute)}
.lang-switch a.on{background:var(--soft);color:var(--ink);font-weight:600}
.team-grid{display:grid;gap:18px;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));margin-top:16px}
.team-card{display:flex;gap:14px;background:var(--card);border:1px solid var(--line);border-radius:10px;padding:14px}
