:root { --gsv-green:#73b32d; --gsv-dark:#253323; --gsv-light:#f3f8ee; --gsv-border:#dbe6d4; --gsv-white:#fff; --gsv-red:#9b2c2c; }
.gsv-wrap,.gsv-single { color:var(--gsv-dark); font-family:inherit; }

/* Titel van de algemene vacature-overzichtspagina. */
body.gsv-vacature-overzicht h1.entry-title,
body.gsv-vacature-overzicht .elementor-widget-theme-post-title h1,
h1.gsv-overview-title {
  box-sizing:border-box;
  width:100%;
  margin:36px auto 30px!important;
  padding:22px 28px!important;
  border:1px solid var(--gsv-border);
  border-radius:16px;
  background:var(--gsv-light);
  color:var(--gsv-dark)!important;
  font-size:38px!important;
  font-weight:700!important;
  line-height:1.2!important;
  text-align:center!important;
}

/* De standaard WordPress-titel wordt vervangen door een GreenSpeed-kop. */
body.single-gsv_vacature h1.entry-title,
body.single-gsv_vacature .elementor-widget-theme-post-title { display:none!important; }
.gsv-hero { position:relative; overflow:hidden; margin:48px 0 22px; padding:30px 34px 32px; border-radius:16px; background:#11162f; box-shadow:0 8px 24px rgba(17,22,47,.12); }
.gsv-hero::after { content:""; position:absolute; right:-55px; bottom:-75px; width:190px; height:190px; border-radius:50%; background:rgba(59,186,169,.13); }
.gsv-hero-label { position:relative; z-index:1; display:inline-block; margin-bottom:9px; color:#55c7b8; font-size:.8rem; font-weight:800; letter-spacing:.08em; text-transform:uppercase; }
.gsv-hero h1 { position:relative; z-index:1; max-width:1050px; margin:0!important; color:#fff!important; font-size:38px!important; font-weight:700!important; line-height:1.18!important; letter-spacing:-.02em; }

.gsv-filters { display:flex; flex-wrap:wrap; align-items:end; gap:16px; padding:24px; margin:0 0 32px; background:var(--gsv-light); border-radius:14px; }
.gsv-filters>div { flex:1 1 210px; }
.gsv-filters label,.gsv-form label { display:block; font-weight:700; margin-bottom:7px; }
.gsv-filters select,.gsv-form input:not([type=checkbox]),.gsv-form textarea { box-sizing:border-box; width:100%; border:1px solid #bdcbb7; border-radius:8px; padding:12px 14px; background:#fff; color:#172015; font:inherit; }
.gsv-filters select:focus,.gsv-form input:focus,.gsv-form textarea:focus { outline:3px solid rgba(115,179,45,.23); border-color:var(--gsv-green); }
.gsv-filters button,.gsv-button { display:inline-flex; align-items:center; justify-content:center; gap:8px; border:0; border-radius:7px; padding:13px 20px; background:var(--gsv-green); color:#fff!important; font-weight:700; text-decoration:none; cursor:pointer; transition:transform .15s,filter .15s; }
.gsv-filters button:hover,.gsv-button:hover { filter:brightness(.92); transform:translateY(-1px); }
.gsv-reset { padding:12px; color:var(--gsv-dark); font-weight:600; }
.gsv-count { margin:0 0 16px; color:#60705c; }
.gsv-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:22px; }
.gsv-card { display:flex; flex-direction:column; justify-content:space-between; gap:24px; padding:27px; border:1px solid var(--gsv-border); border-radius:14px; background:var(--gsv-white); box-shadow:0 7px 22px rgba(37,51,35,.07); }
.gsv-card h2 { font-size:1.45rem; line-height:1.25; margin:10px 0; }
.gsv-card h2 a { color:var(--gsv-dark); text-decoration:none; }
.gsv-label { display:inline-block; color:#50851a; font-size:.78rem; font-weight:800; letter-spacing:.06em; text-transform:uppercase; }
.gsv-meta { display:flex; flex-wrap:wrap; gap:8px 15px; margin:0 0 14px; color:#53624f; font-size:.93rem; }
.gsv-card p { margin:0; }
.gsv-card .gsv-button { align-self:flex-start; }
.gsv-empty { padding:40px; text-align:center; background:var(--gsv-light); border-radius:14px; }

/* Drie losse, lichtgroene informatiekaarten. */
.gsv-details { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; margin:0 0 36px; border:0; background:transparent; }
.gsv-details div { padding:20px 22px; background:var(--gsv-light); border:1px solid var(--gsv-border); border-radius:14px; }
.gsv-details dt { font-size:.8rem; font-weight:800; text-transform:uppercase; color:#65745f; }
.gsv-details dd { margin:3px 0 0; font-weight:700; }

.gsv-form-section { margin-top:42px; padding:30px; border-radius:15px; background:var(--gsv-light); }
.gsv-form-section h2 { margin-top:0; }
.gsv-form-grid { display:grid; grid-template-columns:1fr 1fr; gap:0 18px; }
.gsv-form p { margin:0 0 18px; }
.gsv-form input[type=file] { padding:10px; background:#fff; }
.gsv-check label { font-weight:400; display:flex; align-items:flex-start; gap:9px; }
.gsv-check input { margin-top:5px; }
.gsv-notice { margin:20px 0; padding:16px 18px; border-left:5px solid var(--gsv-green); background:var(--gsv-light); border-radius:6px; }
.gsv-success { border-color:var(--gsv-green); }
.gsv-error { border-color:var(--gsv-red); background:#fff2f2; }
.gsv-hp { position:absolute!important; left:-9999px!important; width:1px; height:1px; overflow:hidden; }
.gsv-admin-grid { display:grid; grid-template-columns:1fr 1fr; gap:0 20px; }

@media (max-width:720px) {
  body.gsv-vacature-overzicht h1.entry-title,
  body.gsv-vacature-overzicht .elementor-widget-theme-post-title h1,
  h1.gsv-overview-title { margin-top:24px!important; padding:18px 16px!important; font-size:30px!important; }
  .gsv-hero { margin-top:32px; padding:24px 22px 26px; }
  .gsv-hero h1 { font-size:29px!important; }
  .gsv-grid,.gsv-form-grid,.gsv-details,.gsv-admin-grid { grid-template-columns:1fr; }
  .gsv-details { gap:12px; }
  .gsv-filters { align-items:stretch; }
  .gsv-filters button { width:100%; }
  .gsv-card,.gsv-form-section { padding:22px; }
}
