
:root{
  --navy:#0d2d43;
  --navy-2:#123d58;
  --teal:#1b6873;
  --teal-soft:#eaf4f4;
  --gold:#d79a42;
  --gold-dark:#b87820;
  --cream:#f7f4ee;
  --paper:#ffffff;
  --ink:#16212b;
  --muted:#667580;
  --line:#dbe3e8;
  --soft:#f4f7f9;
  --shadow:0 18px 55px rgba(13,45,67,.10);
  --shadow-sm:0 8px 28px rgba(13,45,67,.07);
  --radius:22px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif;
  color:var(--ink);
  background:#fff;
  line-height:1.7;
  -webkit-font-smoothing:antialiased;
}
a{color:var(--navy);text-decoration:none;transition:.2s ease}
a:hover{color:var(--teal)}
img{max-width:100%;display:block}
h1,h2,h3,h4{margin:0 0 .55em;color:var(--navy);line-height:1.08;letter-spacing:-.02em}
h1{font-size:clamp(2.65rem,5.8vw,5.4rem);font-weight:850}
h2{font-size:clamp(1.9rem,3.5vw,3.25rem);font-weight:820}
h3{font-size:1.3rem;font-weight:800}
p{margin:0 0 1.1em}
.container{width:min(1180px,calc(100% - 36px));margin:auto}
.top{
  background:#082436;
  color:#d7e6ee;
  font-size:.84rem;
  border-bottom:1px solid rgba(255,255,255,.06)
}
.top .container{min-height:38px;display:flex;align-items:center;justify-content:space-between;gap:20px}
.site-header{
  position:sticky;top:0;z-index:80;
  background:rgba(255,255,255,.93);
  backdrop-filter:blur(14px);
  border-bottom:1px solid rgba(13,45,67,.08);
  box-shadow:0 3px 20px rgba(13,45,67,.03)
}
.nav{min-height:90px;display:flex;align-items:center;justify-content:space-between;gap:24px}
.logo img{width:245px;max-height:66px}
.navlinks{display:flex;align-items:center;gap:8px;font-weight:750;font-size:.95rem}
.navlinks a{padding:10px 12px;border-radius:10px;color:#17384d}
.navlinks a:hover{background:#eef5f7;color:var(--navy)}
.navlinks a:last-child{background:var(--navy);color:#fff;padding:11px 16px}
.navlinks a:last-child:hover{background:var(--teal)}
.menu-btn{display:none;border:0;background:var(--navy);color:#fff;padding:10px 14px;border-radius:10px;font-weight:750}

.hero{
  position:relative;
  overflow:hidden;
  padding:82px 0 70px;
  background:
    radial-gradient(circle at 80% 20%,rgba(215,154,66,.18),transparent 28%),
    linear-gradient(135deg,#f7fafb 0%,#eef5f6 48%,#f8f3ea 100%);
}
.hero:before{
  content:"";position:absolute;inset:auto -10% -140px auto;width:480px;height:480px;border-radius:50%;
  border:70px solid rgba(27,104,115,.045)
}
.hero-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:58px;align-items:center;position:relative}
.eyebrow{
  display:inline-flex;align-items:center;gap:8px;
  font-size:.78rem;text-transform:uppercase;letter-spacing:.17em;font-weight:900;
  color:var(--gold-dark);margin-bottom:16px
}
.eyebrow:before{content:"";width:26px;height:2px;background:var(--gold)}
.lead{font-size:1.2rem;color:#425461;max-width:760px}
.actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:28px}
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  min-height:48px;padding:13px 21px;border-radius:12px;
  background:var(--navy);color:#fff!important;font-weight:820;
  box-shadow:0 8px 22px rgba(13,45,67,.15)
}
.btn:hover{transform:translateY(-1px);background:var(--teal)}
.btn.alt{background:var(--gold);color:#1d2a33!important;box-shadow:none}
.btn.alt:hover{background:#e4aa56}
.hero-photo{
  min-height:490px;border-radius:28px;overflow:hidden;box-shadow:0 28px 70px rgba(13,45,67,.18);
  border:1px solid rgba(255,255,255,.65);position:relative
}
.hero-photo:after{
  content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(13,45,67,.2),transparent 40%);pointer-events:none
}
.photo{width:100%;height:100%;object-fit:cover}
.photo-credit{font-size:.72rem;color:#81909a;margin-top:8px}

.section{padding:82px 0}
.section.soft{background:linear-gradient(180deg,#f7f9fa,#f3f7f8)}
.section-title{display:flex;align-items:end;justify-content:space-between;gap:20px;margin-bottom:28px}
.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.grid-4{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}
.card{
  background:#fff;border:1px solid rgba(13,45,67,.09);border-radius:20px;overflow:hidden;
  box-shadow:var(--shadow-sm);transition:transform .22s ease,box-shadow .22s ease
}
.card:hover{transform:translateY(-4px);box-shadow:var(--shadow)}
.card img{aspect-ratio:16/9;object-fit:cover}
.card-body{padding:24px}
.tag{
  display:inline-flex;padding:6px 10px;border-radius:999px;background:var(--teal-soft);
  color:var(--teal);font-size:.74rem;font-weight:850;letter-spacing:.03em;margin-bottom:11px
}
.quick{
  position:relative;display:block;padding:22px;border-radius:16px;background:#fff;
  border:1px solid rgba(13,45,67,.09);box-shadow:0 6px 20px rgba(13,45,67,.045);
  transition:.2s ease
}
.quick:after{content:"→";position:absolute;right:18px;top:18px;color:var(--gold);font-weight:900}
.quick:hover{transform:translateY(-3px);border-color:rgba(27,104,115,.25);box-shadow:var(--shadow-sm)}
.quick strong{display:block;font-size:1.08rem;color:var(--navy);margin-bottom:7px;padding-right:24px}
.quick span{display:block;color:var(--muted);font-size:.93rem;line-height:1.55}
.two{display:grid;grid-template-columns:1fr 1fr;gap:52px;align-items:start}
.prose{max-width:860px}
.prose p{font-size:1.04rem;color:#3f4d57}
.prose h2{margin-top:1.5em}
.prose h3{margin-top:1.2em}
.cta{
  background:linear-gradient(145deg,var(--navy),var(--navy-2));
  color:#eaf3f6;border-radius:22px;padding:34px;box-shadow:var(--shadow)
}
.cta h2,.cta h3{color:#fff}
.cta p{color:#d7e6eb}
.page-head,.category-hero{
  padding:62px 0;
  background:
   radial-gradient(circle at 90% 20%,rgba(215,154,66,.14),transparent 25%),
   linear-gradient(135deg,#f8fafb,#f2f6f7 65%,#faf6ee)
}
.breadcrumbs{font-size:.88rem;color:#7b8790;margin-bottom:14px}
.breadcrumbs a{font-weight:750}
.searchbar,.filter-grid{display:grid;grid-template-columns:2fr 1fr auto;gap:10px;margin:24px 0}
.searchbar input,.filter-grid input,.filter-grid select,.form input,.form textarea,.form select{
  width:100%;padding:14px 15px;border:1px solid #cfd9df;border-radius:11px;background:#fff;font:inherit;
  outline:none;transition:.2s
}
.searchbar input:focus,.filter-grid input:focus,.filter-grid select:focus,.form input:focus,.form textarea:focus,.form select:focus{
  border-color:#66a0a6;box-shadow:0 0 0 4px rgba(27,104,115,.08)
}
.searchbar button,.filter-grid button,.form button{
  border:0;border-radius:11px;background:var(--navy);color:#fff;padding:13px 18px;font-weight:820;cursor:pointer
}
.list{display:grid;gap:15px}
.list-item{
  padding:24px;border:1px solid rgba(13,45,67,.09);border-radius:17px;background:#fff;box-shadow:var(--shadow-sm)
}
.meta{color:#7b8790;font-size:.88rem}
.pagination{display:flex;gap:8px;flex-wrap:wrap;margin-top:30px}
.pagination a,.pagination span{padding:8px 12px;border:1px solid var(--line);border-radius:9px;background:#fff}
.pagination .active{background:var(--navy);color:#fff}
.detail-grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(280px,.65fr);gap:46px}
.info-box{
  background:#f9fbfc;border:1px solid var(--line);border-radius:18px;padding:24px;position:sticky;top:115px;
  box-shadow:var(--shadow-sm)
}
.info-row{padding:12px 0;border-bottom:1px solid var(--line);word-break:break-word}
.info-row:last-child{border-bottom:0}
.chips{display:flex;gap:8px;flex-wrap:wrap;margin:18px 0}
.chip{display:inline-flex;padding:7px 11px;border-radius:999px;background:#edf3f6;font-size:.83rem;font-weight:760}
.related{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.notice{padding:15px 16px;background:#edf7ef;border-left:4px solid #4c8c63;border-radius:9px}
.form{display:grid;gap:14px}
.directory-links{columns:3;column-gap:32px}
.directory-links a{display:block;padding:6px 0;break-inside:avoid}
.faq details{padding:18px 0;border-bottom:1px solid var(--line)}
.faq summary{font-weight:800;color:var(--navy);cursor:pointer}
.news-card{position:relative;display:flex;flex-direction:column;height:100%}
.news-card .news-image-link{display:block;overflow:hidden}
.news-card .news-image{width:100%;height:auto;aspect-ratio:16/9;object-fit:cover;display:block;transition:transform .22s ease}
.news-card:hover .news-image{transform:scale(1.025)}
.news-card .card-body{display:flex;flex-direction:column;flex:1}
.news-card .news-title a{color:var(--navy)}
.news-card .news-read{margin-top:auto;padding-top:12px;font-weight:820}
.news-card .photo{height:auto!important;aspect-ratio:16/9!important}
footer{
  background:
    radial-gradient(circle at 15% 10%,rgba(215,154,66,.08),transparent 24%),
    #0a2638;
  color:#dce7ed;padding:64px 0 26px
}
footer a{color:#dce7ed}
footer a:hover{color:#fff}
.footer-grid{display:grid;grid-template-columns:1.5fr 1fr 1fr;gap:44px}
.footer-bottom{border-top:1px solid rgba(255,255,255,.12);margin-top:38px;padding-top:20px;font-size:.88rem;color:#aabcc7}

.home-stats{
  margin-top:-24px;position:relative;z-index:4
}
.home-stats .container{
  background:#fff;border:1px solid rgba(13,45,67,.08);border-radius:20px;
  box-shadow:var(--shadow);display:grid;grid-template-columns:repeat(4,1fr);overflow:hidden
}
.stat{padding:26px 24px;border-right:1px solid var(--line)}
.stat:last-child{border-right:0}
.stat strong{display:block;font-size:1.9rem;color:var(--navy);letter-spacing:-.03em}
.stat span{color:var(--muted);font-size:.9rem}
.kicker-card{
  display:grid;grid-template-columns:1.2fr .8fr;gap:32px;align-items:center;
  padding:34px;border-radius:24px;background:linear-gradient(135deg,#0e3148,#1c6670);color:#fff
}
.kicker-card h2{color:#fff}
.kicker-card p{color:#d9e8ec}
.kicker-links{display:grid;gap:10px}
.kicker-links a{display:flex;justify-content:space-between;align-items:center;padding:13px 15px;border-radius:11px;background:rgba(255,255,255,.09);color:#fff;font-weight:760}
.kicker-links a:hover{background:rgba(255,255,255,.15)}
@media(max-width:980px){
  .hero-grid,.two,.detail-grid,.kicker-card{grid-template-columns:1fr}
  .grid-4{grid-template-columns:repeat(2,1fr)}
  .grid-3,.related{grid-template-columns:repeat(2,1fr)}
  .navlinks{display:none;position:absolute;left:18px;right:18px;top:82px;background:#fff;padding:16px;border-radius:14px;box-shadow:var(--shadow);flex-direction:column;align-items:stretch}
  .navlinks.open{display:flex}
  .menu-btn{display:block}
  .info-box{position:static}
  .hero-photo{min-height:360px}
  .home-stats .container{grid-template-columns:repeat(2,1fr)}
  .stat:nth-child(2){border-right:0}
  .stat:nth-child(-n+2){border-bottom:1px solid var(--line)}
}
@media(max-width:650px){
  .section{padding:58px 0}
  .grid-3,.grid-4,.related,.footer-grid,.home-stats .container{grid-template-columns:1fr}
  .top .container{display:block;padding:8px 0}
  .top span:last-child{display:none}
  .logo img{width:205px}
  .hero{padding:54px 0 46px}
  .hero h1{font-size:2.65rem}
  .lead{font-size:1.08rem}
  .hero-photo{min-height:270px;border-radius:20px}
  .searchbar,.filter-grid{grid-template-columns:1fr}
  .directory-links{columns:1}
  .stat{border-right:0!important;border-bottom:1px solid var(--line)}
  .stat:last-child{border-bottom:0}
}

.site-header.scrolled{box-shadow:0 10px 30px rgba(13,45,67,.10)}

/* v9 local SEO + fotografie */
.keyword-pills{display:flex;flex-wrap:wrap;gap:9px;margin:22px 0 6px}
.keyword-pills a{display:inline-flex;padding:8px 12px;border:1px solid rgba(13,45,67,.12);background:rgba(255,255,255,.72);border-radius:999px;font-size:.86rem;font-weight:800;color:var(--navy)}
.keyword-pills a:hover{background:#fff;border-color:rgba(27,104,115,.3);transform:translateY(-1px)}
.home-copy a,.prose a{font-weight:760;text-decoration:underline;text-decoration-color:rgba(27,104,115,.35);text-underline-offset:3px}
.content-photo{margin:34px 0;padding:0;background:#fff;border-radius:18px;overflow:hidden;border:1px solid rgba(13,45,67,.09);box-shadow:var(--shadow-sm)}
.content-photo img{width:100%;aspect-ratio:16/9;object-fit:cover}
.content-photo figcaption{padding:10px 14px;font-size:.78rem;color:var(--muted)}
.side-photo{margin-top:22px;background:#fff;border:1px solid var(--line);border-radius:18px;overflow:hidden;box-shadow:var(--shadow-sm)}
.side-photo img{width:100%;aspect-ratio:4/3;object-fit:cover}
.side-photo p{padding:14px 16px;margin:0;color:var(--muted);font-size:.88rem}
@media(max-width:1080px){.navlinks{font-size:.88rem}.navlinks a{padding:9px 8px}.logo img{width:220px}}

/* v15 alle Arnhemse wijken + interactieve kaarten */
.wijk-map,.wijk-map-mini{overflow:hidden;border-radius:20px;border:1px solid rgba(13,45,67,.10);background:#eef3f5;box-shadow:var(--shadow-sm)}
.wijk-map iframe{display:block;width:100%;height:520px;border:0}
.wijk-map-mini iframe{display:block;width:100%;height:390px;border:0}
.wijk-copy{max-width:900px}
.wijk-copy h2{scroll-margin-top:120px}
@media(max-width:650px){.wijk-map iframe{height:390px}.wijk-map-mini iframe{height:300px}}

/* v16: rustige typografie voor nieuwsartikelen */
.news-detail .article-prose{max-width:820px}
.news-detail .article-prose p{font-size:1.04rem;line-height:1.85;margin:0 0 1.35rem;color:#344651}
.news-detail .article-prose h2{font-size:clamp(1.45rem,2.1vw,1.85rem);line-height:1.22;margin:2.25rem 0 .8rem;letter-spacing:-.015em}
.news-detail .article-prose h3{font-size:clamp(1.18rem,1.7vw,1.4rem);line-height:1.3;margin:1.8rem 0 .7rem}
.news-detail .article-prose ul,.news-detail .article-prose ol{font-size:1rem;line-height:1.75}
.news-detail .hero-photo{border-radius:20px;overflow:hidden}
.news-detail .news-image{width:100%;max-height:440px;object-fit:cover;display:block}
@media (max-width:760px){.news-detail .article-prose p{font-size:1rem;line-height:1.75}.news-detail .article-prose h2{font-size:1.4rem}.news-detail .article-prose h3{font-size:1.18rem}}

.article-head h1{font-size:clamp(2rem,4vw,3.4rem);max-width:950px;line-height:1.08}
.article-head .lead{max-width:820px;font-size:1.12rem;line-height:1.65}

/* v18: article headings are headings only; body copy remains normal text */
.news-detail .article-prose h2{max-width:760px;font-size:clamp(1.35rem,1.8vw,1.7rem);line-height:1.28;margin:2.4rem 0 .75rem}
.news-detail .article-prose h3{max-width:760px;font-size:clamp(1.12rem,1.45vw,1.3rem);line-height:1.32;margin:1.8rem 0 .65rem}
.news-detail .article-prose p{max-width:760px;font-size:1.02rem;line-height:1.78;margin:0 0 1.25rem}
@media(max-width:760px){.news-detail .article-prose h2{font-size:1.32rem}.news-detail .article-prose h3{font-size:1.13rem}.news-detail .article-prose p{font-size:1rem;line-height:1.72}}

/* v19 uitgebreide agenda */
.agenda-intro{max-width:900px;margin-bottom:42px}.agenda-group{margin:48px 0}.section-heading{display:flex;justify-content:space-between;gap:24px;align-items:end;margin-bottom:20px}.section-heading h2{margin:4px 0 0;font-size:clamp(1.7rem,3vw,2.35rem);line-height:1.12}.section-heading>span{font-size:.95rem;opacity:.7}.agenda-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.agenda-card{border:1px solid #dfe7eb;border-radius:18px;padding:24px;background:#fff;box-shadow:0 12px 34px rgba(8,48,70,.06)}.agenda-card h3{font-size:1.3rem;line-height:1.25;margin:14px 0 10px}.agenda-card p{font-size:1rem;line-height:1.65}.agenda-card-meta{display:flex;justify-content:space-between;align-items:center;gap:12px;font-size:.84rem}.agenda-audience{font-size:.9rem;padding-top:12px;border-top:1px solid #e5ecef;margin:16px 0}.text-link{font-weight:800}.agenda-detail-head h1{max-width:900px;font-size:clamp(2.2rem,5vw,4rem);line-height:1.04}.agenda-detail-head .lead{max-width:850px}.agenda-facts{display:flex;flex-wrap:wrap;gap:10px 24px;margin-top:20px;font-size:.95rem}.agenda-facts span{background:#fff;border:1px solid #dae4e8;border-radius:999px;padding:9px 14px}.agenda-article{max-width:820px}.agenda-article .article-intro{font-size:1.2rem;line-height:1.75}.agenda-article h2{font-size:clamp(1.55rem,2.7vw,2.05rem);line-height:1.18;margin-top:42px}.agenda-article p{line-height:1.8}.related-link-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:20px 0 35px}.related-link-grid a{display:flex;justify-content:space-between;gap:20px;padding:16px 18px;border:1px solid #dbe5e9;border-radius:12px;font-weight:750;background:#fff}@media(max-width:900px){.agenda-grid{grid-template-columns:1fr 1fr}}@media(max-width:620px){.agenda-grid{grid-template-columns:1fr}.section-heading{display:block}.section-heading>span{display:block;margin-top:8px}.related-link-grid{grid-template-columns:1fr}.agenda-detail-head h1{font-size:2.35rem}}
/* P2000 Arnhem */
.p2000-hero{padding:58px 0 34px;background:linear-gradient(135deg,#f4f8fa 0%,#fff 62%,#f8f1e4 100%)}
.p2000-hero h1{margin:.15em 0 .25em;font-size:clamp(2.3rem,5vw,4.5rem);line-height:1.02}
.p2000-notice{margin-top:24px;padding:16px 18px;background:#fff;border-left:4px solid #da9a32;border-radius:10px;max-width:920px;box-shadow:0 8px 30px rgba(7,44,64,.06)}
.p2000-live{padding-top:32px}.p2000-toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:18px}.p2000-status{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.p2000-status #p2-updated{color:#62727d;font-size:.94rem}.live-dot{width:11px;height:11px;border-radius:50%;background:#2e9b62;box-shadow:0 0 0 6px rgba(46,155,98,.12)}
.p2000-refresh{border:0;border-radius:10px;background:#0a3147;color:#fff;padding:11px 16px;font-weight:700;cursor:pointer}.p2000-stats{display:grid;grid-template-columns:repeat(5,1fr);gap:12px;margin:0 0 22px}.p2000-stats>div{background:#fff;border:1px solid #e3e9ec;border-radius:14px;padding:18px;box-shadow:0 8px 28px rgba(7,44,64,.05)}.p2000-stats strong{display:block;font-size:1.9rem;line-height:1;color:#0a3147}.p2000-stats span{display:block;margin-top:7px;color:#667780;font-size:.9rem}
.p2000-filters{display:flex;justify-content:space-between;gap:18px;align-items:center;margin-bottom:20px;flex-wrap:wrap}.p2000-filter-buttons{display:flex;gap:8px;flex-wrap:wrap}.p2000-filter-buttons button{border:1px solid #d5dfe4;background:#fff;color:#0a3147;border-radius:999px;padding:10px 14px;font-weight:700;cursor:pointer}.p2000-filter-buttons button.active{background:#0a3147;color:#fff;border-color:#0a3147}.p2000-search{flex:1;min-width:260px;max-width:430px}.p2000-search input{width:100%;border:1px solid #ccd9df;border-radius:12px;padding:12px 14px;font:inherit}.p2000-message{padding:14px 16px;border-radius:10px;background:#fff4da;border:1px solid #f0d691;margin-bottom:16px}.p2000-list{display:grid;gap:10px;transition:opacity .2s}.p2000-list.is-refreshing{opacity:.55}.p2000-item{display:grid;grid-template-columns:78px 1fr;gap:14px;background:#fff;border:1px solid #e1e8eb;border-left:5px solid #7a8992;border-radius:12px;padding:15px 16px;box-shadow:0 5px 20px rgba(7,44,64,.04)}.p2000-item.ambulance{border-left-color:#2f9361}.p2000-item.brandweer{border-left-color:#c94a43}.p2000-item.politie{border-left-color:#3978b8}.p2000-time{font-size:1.15rem;font-weight:800;color:#0a3147;padding-top:2px}.p2000-item-main p{margin:7px 0 0;font-size:1rem;line-height:1.55}.p2000-item-meta{display:flex;align-items:center;gap:8px;flex-wrap:wrap;color:#687780;font-size:.88rem}.p2000-service{font-weight:800;color:#0a3147}.p2000-badge{padding:3px 7px;background:#e9eef1;border-radius:999px;font-weight:700;font-size:.76rem;color:#34434a}.p2000-badge.spoed{background:#fff0ed;color:#a83229}.p2000-loading,.p2000-empty{padding:28px;text-align:center;background:#f6f9fa;border-radius:12px;color:#61717a}.p2000-source{margin-top:16px;color:#6d7a81;font-size:.82rem}.p2000-source a{text-decoration:underline}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
@media(max-width:800px){.p2000-stats{grid-template-columns:repeat(2,1fr)}.p2000-stats>div:first-child{grid-column:1/-1}.p2000-item{grid-template-columns:58px 1fr}.p2000-toolbar{align-items:flex-start}.p2000-search{max-width:none;width:100%}}

/* v21 P2000 Arnhem + omgeving: plaatsfilters */
.p2000-filter-panel{margin:0 0 18px;padding:18px;background:linear-gradient(135deg,#f6f9fa,#fff);border:1px solid #dde7eb;border-radius:16px;box-shadow:0 8px 26px rgba(7,44,64,.045)}
.p2000-filter-title{display:flex;align-items:baseline;justify-content:space-between;gap:14px;margin-bottom:13px}.p2000-filter-title strong{font-size:1.05rem;color:#0a3147}.p2000-filter-title span{font-size:.87rem;color:#687780}
.p2000-place-buttons{display:flex;flex-wrap:wrap;gap:8px}.p2000-place-buttons button{border:1px solid #d4dfe4;background:#fff;color:#0a3147;border-radius:10px;padding:9px 13px;font-weight:750;cursor:pointer;transition:.16s ease}.p2000-place-buttons button:hover{transform:translateY(-1px);border-color:#9eb3bd}.p2000-place-buttons button.active{background:#d99a32;color:#102f41;border-color:#d99a32;box-shadow:0 5px 16px rgba(217,154,50,.2)}
.p2000-place-tag{display:inline-flex;align-items:center;padding:4px 8px;background:#eef4f6;border-radius:999px;color:#345364;font-weight:750;font-size:.78rem}
@media(max-width:650px){.p2000-filter-title{display:block}.p2000-filter-title span{display:block;margin-top:3px}.p2000-place-buttons{gap:6px}.p2000-place-buttons button{padding:8px 10px;font-size:.86rem}}

/* P2000 v22 - rijkere en beter leesbare meldingskaarten */
.p2000-list{display:grid;gap:16px}
.p2000-item{display:grid;grid-template-columns:105px minmax(0,1fr);gap:18px;padding:20px 22px;background:#fff;border:1px solid #dce5e8;border-left:5px solid #7d8c92;border-radius:16px;box-shadow:0 8px 24px rgba(6,46,65,.06)}
.p2000-item.ambulance{border-left-color:#1b8a5a}.p2000-item.brandweer{border-left-color:#c94a38}.p2000-item.politie{border-left-color:#215ea8}
.p2000-time{font-size:1.2rem;font-weight:800;color:#082f44;display:flex;flex-direction:column;line-height:1.1;padding-top:3px}
.p2000-time small{font-size:.75rem;font-weight:600;color:#6b7c84;margin-top:7px;line-height:1.35}
.p2000-item-main h3{font-size:1.15rem;line-height:1.35;margin:9px 0 7px;color:#082f44}
.p2000-summary{margin:0 0 13px;line-height:1.6;color:#29444f}
.p2000-details{display:flex;flex-wrap:wrap;gap:8px 10px;margin-top:9px}
.p2000-details span{background:#f3f7f8;border:1px solid #e0e8ea;border-radius:9px;padding:7px 10px;font-size:.86rem;color:#36525e}
.p2000-details span b{margin-right:6px;color:#0b3448}
.p2000-details em{font-style:normal;color:#7a8b92;font-size:.82rem}
.p2000-detail-link{display:inline-flex;margin-top:13px;font-weight:800;font-size:.88rem;color:#0c5879;text-decoration:none}
.p2000-detail-link:hover{text-decoration:underline}
.p2000-place-buttons{display:flex;flex-wrap:wrap;gap:8px}
.p2000-place-buttons button{white-space:nowrap}
@media(max-width:700px){.p2000-item{grid-template-columns:1fr;gap:8px;padding:17px}.p2000-time{flex-direction:row;align-items:center;gap:9px}.p2000-time small{margin-top:0}.p2000-details{display:grid;grid-template-columns:1fr}.p2000-details span{width:100%}}


/* v23 P2000 dashboard + notificaties */
.p2000-page{background:#f5f8f9}.p2000-page .p2000-hero{background:radial-gradient(circle at 85% 20%,rgba(217,154,50,.15),transparent 30%),linear-gradient(135deg,#edf5f6,#fff 60%);border-bottom:1px solid #deeaed}
.p2-dashboard-head{display:flex;justify-content:space-between;gap:24px;align-items:center;margin-bottom:22px}.p2-dashboard-head h2{font-size:clamp(1.7rem,3vw,2.4rem);margin:8px 0 3px}.p2-dashboard-head p{margin:0;color:#6c7c83}.p2-live-pill{display:inline-flex;align-items:center;gap:8px;background:#e9f7ef;color:#147346;border-radius:999px;padding:6px 10px;font-weight:900;font-size:.78rem;letter-spacing:.06em}.p2-live-pill i{width:8px;height:8px;background:#1ca660;border-radius:50%;box-shadow:0 0 0 5px rgba(28,166,96,.12)}.p2-head-actions{display:flex;gap:10px;flex-wrap:wrap}.p2-btn-primary,.p2-btn-secondary{appearance:none;border:0;border-radius:12px;padding:12px 16px;font:inherit;font-weight:850;cursor:pointer}.p2-btn-primary{background:#0a3147;color:#fff;box-shadow:0 8px 20px rgba(10,49,71,.15)}.p2-btn-secondary{background:#fff;color:#0a3147;border:1px solid #cfdbdf}.p2-btn-primary:hover,.p2-btn-secondary:hover{transform:translateY(-1px)}
.p2-filter-card{background:#fff;border:1px solid #dce7ea;border-radius:20px;padding:20px;box-shadow:0 12px 35px rgba(7,44,64,.06);margin-bottom:22px}.p2-filter-row{display:grid;grid-template-columns:165px 1fr;gap:18px;align-items:start}.p2-filter-row+.p2-filter-row{border-top:1px solid #e5edef;margin-top:18px;padding-top:18px}.p2-filter-label strong{display:block;color:#0a3147}.p2-filter-label span{display:block;color:#7a8990;font-size:.83rem;margin-top:3px}.p2-filter-row-bottom{grid-template-columns:1fr minmax(260px,380px);align-items:center}.p2000-place-buttons button,.p2000-filter-buttons button{font-size:.9rem}.p2000-place-buttons button{border-radius:999px}.p2000-search input{background:#f8fafb}.p2-resultbar{display:flex;justify-content:space-between;gap:12px;align-items:center;margin:18px 2px 12px;color:#677981}.p2-resultbar strong{color:#0a3147}.p2-more-wrap{text-align:center;margin-top:18px}
.p2000-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.p2000-item{grid-template-columns:52px 1fr;align-items:start;min-width:0;padding:18px;border-radius:18px;border-left-width:0;border-top:4px solid #7d8c92}.p2000-item.ambulance{border-top-color:#1b8a5a}.p2000-item.brandweer{border-top-color:#c94a38}.p2000-item.politie{border-top-color:#215ea8}.p2-service-icon{width:44px;height:44px;border-radius:13px;display:grid;place-items:center;background:#eef4f6;font-size:1.35rem}.p2000-item-main h3{font-size:1.12rem;margin:10px 0 6px}.p2000-summary{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;font-size:.95rem;line-height:1.55}.p2-card-time{margin-left:auto;color:#73858d;font-size:.8rem;font-weight:700}.p2000-details{gap:6px}.p2000-details span{font-size:.8rem;padding:6px 8px}.p2000-details span:first-child{flex-basis:100%}.p2000-detail-link{display:none!important}
.p2-alert-card{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:42px;background:#082f44;color:#fff;border-radius:26px;padding:34px;box-shadow:0 18px 50px rgba(6,43,62,.18)}.p2-alert-card .eyebrow{color:#efbc6b}.p2-alert-card h2{font-size:clamp(1.8rem,3.2vw,2.7rem);line-height:1.08;margin:.35rem 0 1rem;color:#fff}.p2-alert-card p{color:#d9e6eb;line-height:1.7}.p2-alert-form{display:grid;grid-template-columns:1fr 1fr;gap:14px}.p2-alert-form label{display:grid;gap:6px}.p2-alert-form label>span{font-size:.82rem;font-weight:800;color:#d7e4e9}.p2-alert-form input,.p2-alert-form select{width:100%;border:1px solid rgba(255,255,255,.2);background:#fff;color:#12384a;border-radius:11px;padding:11px 12px;font:inherit}.p2-alert-form label:first-child{grid-column:1/-1}.p2-alert-form .p2-check{display:flex;align-items:center;gap:9px;grid-column:1/-1}.p2-alert-form .p2-check input{width:18px;height:18px}.p2-alert-form .p2-btn-primary{background:#dda13d;color:#092f43;grid-column:1/-1}.p2-alert-msg{grid-column:1/-1;font-size:.9rem}.p2-alert-msg.ok{color:#aef0c8}.p2-alert-msg.error{color:#ffc3bb}.p2-confirm-card{max-width:700px;margin:auto;background:#fff;border:1px solid #dfe8eb;border-radius:24px;padding:36px;box-shadow:0 12px 40px rgba(7,44,64,.08)}
@media(max-width:960px){.p2000-list{grid-template-columns:1fr}.p2-filter-row,.p2-filter-row-bottom{grid-template-columns:1fr}.p2-alert-card{grid-template-columns:1fr}.p2-dashboard-head{align-items:flex-start}.p2-card-time{margin-left:0}}
@media(max-width:650px){.p2-dashboard-head{display:block}.p2-head-actions{margin-top:16px}.p2-head-actions button{width:100%}.p2000-stats{grid-template-columns:1fr 1fr}.p2-filter-card{padding:15px}.p2000-item{grid-template-columns:42px 1fr;padding:14px}.p2-service-icon{width:38px;height:38px}.p2-alert-card{padding:22px}.p2-alert-form{grid-template-columns:1fr}.p2-alert-form label{grid-column:1/-1}.p2-resultbar span{display:none}}

/* V24 P2000 SEO landingspagina's */
.p2-seo-hero{padding:62px 0 48px;background:linear-gradient(135deg,#eef7f8 0%,#fff 55%,#fff6e9 100%);border-bottom:1px solid #e5ecef}.p2-seo-hero-grid{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(260px,.65fr);gap:38px;align-items:center}.p2-seo-hero h1{font-size:clamp(2.2rem,5vw,4.6rem);line-height:.98;margin:12px 0 18px;max-width:900px}.p2-seo-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:24px}.p2-seo-livebox{background:#0b354b;color:#fff;border-radius:22px;padding:28px;box-shadow:0 18px 40px rgba(9,47,67,.14)}.p2-seo-livebox strong{display:block;font-size:2rem;line-height:1.1}.p2-seo-livebox span,.p2-seo-livebox small{display:block;margin-top:9px;color:#d6e7ed}.p2-seo-content{display:grid;grid-template-columns:minmax(0,1fr) 310px;gap:55px;align-items:start}.p2-seo-content .prose{max-width:820px}.p2-seo-content .prose h2{font-size:clamp(1.55rem,2.2vw,2.25rem);line-height:1.15;margin-top:42px}.p2-seo-content .prose p{font-size:1.05rem;line-height:1.85}.p2-link-panel{position:sticky;top:120px;background:#fff;border:1px solid #dce7eb;border-radius:18px;padding:18px;box-shadow:0 12px 30px rgba(7,44,64,.06)}.p2-link-panel h3{margin:4px 6px 12px}.p2-link-panel a{display:block;padding:9px 11px;border-radius:10px;color:#0b354b;font-weight:700}.p2-link-panel a:hover,.p2-link-panel a.active{background:#edf5f7}.p2-seo-placegrid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.p2-seo-placegrid a{display:block;border:1px solid #dce7eb;border-radius:14px;padding:15px 16px;background:#fff}.p2-seo-placegrid strong,.p2-seo-placegrid span{display:block}.p2-seo-placegrid span{margin-top:3px;color:#66777f;font-size:.86rem}.breadcrumbs{font-size:.88rem;color:#6a7980;margin-bottom:20px}.breadcrumbs a{text-decoration:underline}.section-title{display:flex;justify-content:space-between;gap:20px;align-items:end;margin-bottom:22px}.section-title h2{margin:4px 0 0}.section-title>a{font-weight:800}.p2000-empty strong{color:#0b354b}.p2-seo-hero+.section .p2000-list{grid-template-columns:repeat(2,minmax(0,1fr))}
@media(max-width:900px){.p2-seo-hero-grid,.p2-seo-content{grid-template-columns:1fr}.p2-link-panel{position:static}.p2-seo-placegrid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:650px){.p2-seo-placegrid,.p2-seo-hero+.section .p2000-list{grid-template-columns:1fr}.p2-seo-hero{padding:38px 0}.section-title{display:block}.section-title>a{display:inline-block;margin-top:10px}}

/* v27 unique P2000 SEO content */
.p2-faq{margin-top:42px}.p2-faq details{border:1px solid #dce6eb;border-radius:14px;background:#fff;margin:12px 0;padding:0 18px}.p2-faq summary{cursor:pointer;font-weight:800;padding:17px 0;color:#0b3145}.p2-faq details p{margin:0;padding:0 0 18px;color:#405563}.p2-seo-content .prose h2{font-size:clamp(1.55rem,2.1vw,2.15rem);line-height:1.18;margin-top:36px}.p2-seo-content .prose p{font-size:1.04rem;line-height:1.82;max-width:78ch}

/* v28 Verkeer Arnhem: verkeersveiligheid, kaart en communitymeldingen */
.traffic-page{background:#f7f9fa}.traffic-hero{padding:64px 0 48px;background:radial-gradient(circle at 86% 18%,rgba(217,154,50,.16),transparent 30%),linear-gradient(135deg,#edf6f7,#fff 60%);border-bottom:1px solid #dfe9ec}.traffic-hero-grid{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(280px,.6fr);gap:42px;align-items:center}.traffic-hero h1{font-size:clamp(2.35rem,5vw,4.65rem);line-height:1.01;margin:.22em 0 .28em;max-width:940px}.traffic-pills{display:flex;flex-wrap:wrap;gap:9px;margin-top:24px}.traffic-pills a{display:inline-flex;background:#fff;border:1px solid #d8e4e8;border-radius:999px;padding:9px 13px;font-weight:800;color:#0a3147;box-shadow:0 6px 16px rgba(7,44,64,.04)}.traffic-hero-card{background:#0a3147;color:#fff;border-radius:24px;padding:28px;box-shadow:0 18px 45px rgba(8,47,67,.18)}.traffic-hero-card strong{display:block;font-size:1.65rem}.traffic-hero-card span{display:block;color:#d9e7eb;line-height:1.7;margin:12px 0 20px}.traffic-stat-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.traffic-stat-grid>div{background:#fff;border:1px solid #dde7ea;border-radius:18px;padding:21px;box-shadow:0 8px 24px rgba(7,44,64,.05)}.traffic-stat-grid strong{display:block;font-size:1.75rem;color:#0a3147}.traffic-stat-grid span{display:block;margin-top:5px;color:#6c7c84;font-size:.9rem}.traffic-map-layout{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:22px}.traffic-map{height:560px;border-radius:22px;overflow:hidden;border:1px solid #dce6e9;box-shadow:0 16px 44px rgba(7,44,64,.09);background:#eaf1f3}.traffic-side{background:#fff;border:1px solid #dce6e9;border-radius:20px;padding:23px;height:max-content}.traffic-side h3{margin-top:0}.traffic-side p{line-height:1.65}.traffic-legend{display:grid;gap:10px;margin:20px 0}.traffic-legend span{display:flex;align-items:center;gap:10px;font-weight:700;color:#35505d}.traffic-legend i{width:13px;height:13px;border-radius:50%;box-shadow:0 0 0 3px #fff,0 0 0 4px #dbe5e8}.traffic-legend i.risk{background:#d99a32}.traffic-legend i.report{background:#1b8a5a}.traffic-map-filters{display:flex;gap:8px;flex-wrap:wrap}.traffic-map-filters button{appearance:none;border:1px solid #d5e0e4;background:#fff;color:#0a3147;border-radius:999px;padding:9px 13px;font:inherit;font-weight:800;cursor:pointer}.traffic-map-filters button.active{background:#0a3147;color:#fff;border-color:#0a3147}.traffic-risk-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.traffic-risk-card{background:#fff;border:1px solid #dde6ea;border-radius:18px;padding:21px;box-shadow:0 9px 26px rgba(7,44,64,.05)}.traffic-risk-card h3{font-size:1.12rem;line-height:1.3;margin:10px 0 5px}.traffic-risk-card p{line-height:1.62}.traffic-risk-card .traffic-area{font-size:.88rem;color:#6a7c84;font-weight:700;margin:0 0 10px}.traffic-risk-card small{color:#7a8a91}.traffic-tag{display:inline-flex;border-radius:999px;padding:5px 9px;background:#fff4dc;color:#8a5b13;font-weight:900;font-size:.74rem;text-transform:uppercase;letter-spacing:.04em}.traffic-tag.live{background:#eaf7f0;color:#157148}.traffic-report-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.traffic-report-item{background:#fff;border:1px solid #dce6e9;border-radius:17px;padding:20px}.traffic-report-item h3{margin:10px 0 5px}.traffic-report-card{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:42px;background:#0a3147;color:#fff;border-radius:26px;padding:34px;box-shadow:0 18px 50px rgba(6,43,62,.18)}.traffic-report-card .eyebrow{color:#efbc6b}.traffic-report-card h2{color:#fff;font-size:clamp(1.8rem,3.4vw,2.8rem);line-height:1.08;margin:.35rem 0 1rem}.traffic-report-card p{color:#d9e7eb;line-height:1.7}.traffic-report-card .small{font-size:.9rem;color:#b9cdd5}.traffic-form{display:grid;grid-template-columns:1fr 1fr;gap:14px}.traffic-form label{display:grid;gap:6px}.traffic-form label span{font-size:.84rem;font-weight:850;color:#dce9ed}.traffic-form input,.traffic-form select,.traffic-form textarea{width:100%;border:1px solid rgba(255,255,255,.2);border-radius:11px;padding:11px 12px;background:#fff;color:#12384a;font:inherit}.traffic-form textarea{resize:vertical}.traffic-form .wide{grid-column:1/-1}.traffic-map-pick{background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.13);border-radius:12px;padding:12px 14px}.traffic-map-pick strong,.traffic-map-pick span{display:block}.traffic-map-pick span{margin-top:4px;color:#c9dbe1;font-size:.84rem}.traffic-form-msg{font-size:.92rem}.traffic-form-msg.ok{color:#aef0c8}.traffic-form-msg.error{color:#ffc3bb}.traffic-page .leaflet-popup-content{font:14px/1.5 system-ui,-apple-system,Segoe UI,sans-serif}.small{font-size:.88rem;color:#6e7e86;line-height:1.55}
@media(max-width:1000px){.traffic-hero-grid,.traffic-map-layout,.traffic-report-card{grid-template-columns:1fr}.traffic-stat-grid{grid-template-columns:repeat(2,1fr)}.traffic-risk-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:650px){.traffic-hero{padding:40px 0 32px}.traffic-stat-grid,.traffic-risk-grid,.traffic-report-grid,.traffic-form{grid-template-columns:1fr}.traffic-form label,.traffic-form .wide{grid-column:1/-1}.traffic-map{height:430px}.traffic-report-card{padding:22px}.traffic-map-filters{margin-top:12px}.traffic-stat-grid>div{padding:17px}}

/* v29 verkeersmelding kaartkiezer */
.traffic-picker-head{display:flex;gap:14px;align-items:center;justify-content:space-between;margin-bottom:12px}.traffic-picker-head>div{min-width:0}.traffic-geocode-btn{appearance:none;border:1px solid rgba(255,255,255,.28);background:#e6a435;color:#092f45;border-radius:10px;padding:10px 14px;font:inherit;font-weight:900;cursor:pointer;white-space:nowrap}.traffic-geocode-btn:hover{filter:brightness(1.05)}.traffic-geocode-btn:disabled{opacity:.65;cursor:wait}.traffic-picker-map{height:330px;border-radius:14px;overflow:hidden;background:#dfe8eb;border:1px solid rgba(255,255,255,.22);margin-top:10px}.traffic-picker-help{margin:10px 0 0!important;color:#c9dbe1!important;font-size:.84rem!important;line-height:1.55!important}.traffic-map-pick .leaflet-control-attribution{font-size:10px}.traffic-map-pick .leaflet-popup-content{color:#12384a}.traffic-map-pick .leaflet-container{font-family:inherit}
@media(max-width:650px){.traffic-picker-head{align-items:stretch;flex-direction:column}.traffic-geocode-btn{width:100%}.traffic-picker-map{height:290px}}

/* v32: Leaflet map layout/performance fixes */
.traffic-page .leaflet-container{width:100%!important;height:100%!important;min-height:100%;background:#dfe8eb;z-index:1}
.traffic-page .leaflet-container img.leaflet-tile{max-width:none!important;max-height:none!important;width:256px!important;height:256px!important;display:block!important}
.traffic-page .leaflet-tile-pane{will-change:transform}
.traffic-page .leaflet-control-zoom a{width:34px;height:34px;line-height:34px;font-size:20px}
.traffic-map-layout{grid-template-columns:1fr;gap:14px}
.traffic-map{height:460px;border-radius:18px;position:relative}
.traffic-side{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:18px;align-items:center;padding:16px 18px;border-radius:16px}
.traffic-side h3{margin:0 0 4px}.traffic-side p{margin:0}.traffic-side .small{display:none}
.traffic-legend{display:flex;flex-wrap:wrap;gap:16px;margin:0}
.traffic-report-card{grid-template-columns:minmax(280px,.72fr) minmax(0,1.28fr);gap:28px;padding:28px}
.traffic-map-pick{padding:14px;border-radius:16px}
.traffic-picker-head{margin-bottom:10px}
.traffic-picker-map{height:260px;border-radius:12px;margin-top:8px;position:relative}
.traffic-geocode-btn{padding:11px 16px;border-radius:12px;box-shadow:0 6px 18px rgba(0,0,0,.12)}
.traffic-picker-help{max-width:760px}
@media(max-width:1000px){.traffic-report-card{grid-template-columns:1fr}.traffic-side{grid-template-columns:1fr}.traffic-legend{margin-top:8px}.traffic-map{height:420px}}
@media(max-width:650px){.traffic-map{height:340px}.traffic-picker-map{height:240px}.traffic-side{padding:14px}.traffic-report-card{padding:18px}.traffic-map-pick{padding:10px}.traffic-picker-head{gap:9px}}

/* v33: Google Maps verkeersmodule */
.traffic-map-shell,.traffic-picker-map-shell{position:relative;overflow:hidden;border-radius:22px;background:#eaf1f3}
.traffic-map-shell{height:500px;border:1px solid #dce6e9;box-shadow:0 16px 44px rgba(7,44,64,.09)}
.traffic-map-shell .traffic-map{height:100%!important;min-height:0!important;width:100%!important;border:0!important;border-radius:0!important;box-shadow:none!important;background:#eaf1f3}
.traffic-picker-map-shell{height:300px;border:1px solid rgba(255,255,255,.22);margin-top:10px}
.traffic-picker-map-shell .traffic-picker-map{height:100%!important;min-height:0!important;width:100%!important;margin:0!important;border:0!important;border-radius:0!important;background:#dfe8eb}
.traffic-map-setup{position:absolute;inset:0;z-index:5;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:8px;padding:24px;background:linear-gradient(135deg,#edf4f6,#fff);color:#0a3147}
.traffic-map-setup strong{font-size:1.25rem}.traffic-map-setup span{max-width:520px;line-height:1.55;color:#58707d}.traffic-map-setup code{background:#fff;border:1px solid #d8e4e8;border-radius:6px;padding:2px 5px}
.traffic-map-setup.small{background:#edf4f6;color:#0a3147}.traffic-map-setup.small span{color:#58707d}
.traffic-gmap-popup{font:14px/1.5 system-ui,-apple-system,Segoe UI,sans-serif;max-width:280px;color:#12384a}
.traffic-gmap-popup strong{font-size:15px;color:#0a3147}
@media(max-width:900px){.traffic-map-shell{height:420px}.traffic-picker-map-shell{height:280px}}
@media(max-width:640px){.traffic-map-shell{height:360px}.traffic-picker-map-shell{height:250px}.traffic-picker-head{align-items:stretch;flex-direction:column}.traffic-geocode-btn{width:100%}}

/* v34: MapLibre + OpenFreeMap - geen API key */
.traffic-map-shell{height:480px!important;min-height:480px!important;position:relative;overflow:hidden;border-radius:20px;background:#e5eef1;border:1px solid #dce6e9;box-shadow:0 14px 36px rgba(7,44,64,.08)}
.traffic-map-shell .traffic-map{position:absolute!important;inset:0!important;width:100%!important;height:100%!important;min-height:0!important;margin:0!important;border:0!important;border-radius:0!important;box-shadow:none!important;background:#e5eef1}
.traffic-picker-map-shell{height:300px!important;min-height:300px!important;position:relative;overflow:hidden;border-radius:16px;background:#dfe8eb;border:1px solid rgba(255,255,255,.2);margin-top:10px}
.traffic-picker-map-shell .traffic-picker-map{position:absolute!important;inset:0!important;width:100%!important;height:100%!important;min-height:0!important;margin:0!important;border:0!important;border-radius:0!important;background:#dfe8eb}
.traffic-page .maplibregl-map{font-family:inherit;overflow:hidden}
.traffic-page .maplibregl-canvas{outline:none}
.traffic-page .maplibregl-ctrl-group{border-radius:10px;overflow:hidden;box-shadow:0 4px 14px rgba(0,0,0,.13)}
.traffic-page .maplibregl-ctrl-attrib{font-size:10px;background:rgba(255,255,255,.82)}
.traffic-map-marker{width:20px;height:20px;border-radius:50%;border:3px solid #fff;box-shadow:0 2px 9px rgba(0,0,0,.25);padding:0;cursor:pointer}
.traffic-map-marker.risk{background:#d99a32}.traffic-map-marker.report{background:#1b8a5a}
.traffic-map-popup{font:14px/1.45 system-ui,-apple-system,Segoe UI,sans-serif;color:#12384a}.traffic-map-popup strong{font-size:15px;color:#0a3147}.traffic-map-popup p{margin:6px 0 0}
.traffic-page .maplibregl-popup-content{border-radius:12px;padding:13px 15px;box-shadow:0 10px 28px rgba(0,0,0,.16)}
.traffic-map-layout{grid-template-columns:minmax(0,1fr) 285px!important;align-items:start}
.traffic-side{display:block!important;padding:20px!important}
.traffic-side .small{display:block!important}.traffic-legend{display:grid!important;gap:10px!important;margin:18px 0!important}
.traffic-picker-head{align-items:center}.traffic-geocode-btn{min-height:44px}
@media(max-width:1000px){.traffic-map-layout{grid-template-columns:1fr!important}.traffic-map-shell{height:420px!important;min-height:420px!important}.traffic-side{display:grid!important;grid-template-columns:1fr auto!important}.traffic-legend{display:flex!important;margin:8px 0!important}}
@media(max-width:650px){.traffic-map-shell{height:340px!important;min-height:340px!important}.traffic-picker-map-shell{height:250px!important;min-height:250px!important}.traffic-side{display:block!important}.traffic-picker-head{align-items:stretch;flex-direction:column}.traffic-geocode-btn{width:100%}}

.service-group{margin:0 0 44px}.service-group>h2{margin:0 0 18px}.service-group .quick{min-height:150px}.service-group .quick strong{font-size:1.08rem;line-height:1.3}.service-group .quick span{display:block;margin-top:8px;line-height:1.55}


/* =========================================================
   V37 MODERN VISUAL REDESIGN — kleurrijker, beeldrijker
   ========================================================= */
:root{
  --blue:#075dc7;--blue-2:#0b78e3;--sky:#eaf5ff;--mint:#eaf8f2;--green:#159b69;
  --coral:#ef6b56;--amber:#f2ad32;--violet:#7657d6;--ink:#12263a;--muted:#627487;
  --navy:#0b3550;--navy-2:#0b4a68;--teal:#087c85;--gold:#f0aa36;--cream:#fffaf2;
  --line:#dfe8ef;--soft:#f6f9fc;--shadow:0 16px 48px rgba(18,57,83,.10);--shadow-sm:0 7px 24px rgba(18,57,83,.07);
}
body{background:#fbfdff;color:#243746;line-height:1.68}
.container{width:min(1240px,calc(100% - 40px))}
.top{display:none}
.site-header{background:rgba(255,255,255,.97);backdrop-filter:blur(18px);box-shadow:0 3px 22px rgba(23,55,80,.07)}
.nav{min-height:78px;gap:18px}
.logo img{width:210px;max-height:58px}
.navlinks{gap:2px;font-size:.9rem}
.navlinks a{padding:9px 9px;border-radius:999px}
.navlinks a:hover{background:#eaf4ff;color:var(--blue)}
.navlinks a:last-child{background:linear-gradient(135deg,var(--blue),var(--blue-2));border-radius:12px}
h1{font-size:clamp(2.5rem,5vw,4.7rem);letter-spacing:-.045em}
h2{font-size:clamp(1.7rem,3vw,2.65rem);letter-spacing:-.035em}
h3{letter-spacing:-.02em}
.hero{padding:68px 0;background:linear-gradient(135deg,#f0f8ff,#ffffff 58%,#effaf5)}
.home-modern-hero{background:linear-gradient(135deg,#edf7ff,#fff 55%,#f1fbf6)}
.home-modern-hero .hero-photo{min-height:420px}
.hero-photo{border-radius:24px;border:0;box-shadow:0 22px 60px rgba(16,62,94,.18)}
.hero-photo.compact{min-height:300px;max-height:360px}
.hero-photo.compact img{height:100%;min-height:300px}
.visual-page-hero{position:relative;overflow:hidden;background:linear-gradient(90deg,rgba(6,43,70,.92),rgba(6,43,70,.72) 46%,rgba(6,43,70,.12)),var(--hero-image);background-size:cover;background-position:center;padding:58px 0;color:#fff}
.visual-page-hero h1,.visual-page-hero h2,.visual-page-hero .lead,.visual-page-hero .breadcrumbs,.visual-page-hero .breadcrumbs a{color:#fff}
.visual-page-hero .eyebrow{color:#ffd48a}
.visual-page-hero .chip{background:rgba(255,255,255,.94);color:#17384d;border:0}
.visual-page-hero>.container{position:relative;z-index:1}
.visual-page-hero:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 55%,rgba(7,35,54,.16));pointer-events:none}
.visual-page-hero .hero-photo{box-shadow:0 18px 55px rgba(0,0,0,.25);border:5px solid rgba(255,255,255,.75)}
.business-head-grid,.category-head-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:48px;align-items:center}
.business-profile-photo{min-height:300px;max-height:360px}
.business-profile-photo img{height:100%;min-height:300px}
.city-photo-hero{position:relative;background:linear-gradient(90deg,rgba(5,42,68,.9),rgba(5,42,68,.58),rgba(5,42,68,.18)),var(--hero-image)!important;background-size:cover!important;background-position:center!important;color:#fff;min-height:420px;display:flex;align-items:center}
.city-photo-hero h1,.city-photo-hero .lead{color:#fff;max-width:760px;text-shadow:0 2px 20px rgba(0,0,0,.2)}
.city-photo-hero .eyebrow{color:#ffd88f}
.section{padding:68px 0}.section.soft{background:#f4f8fb}
.card,.quick,.list-item,.info-box{border-color:#e2ebf1;box-shadow:var(--shadow-sm)}
.card{border-radius:18px}.card:hover,.business-card:hover,.mini-business-card:hover{transform:translateY(-4px);box-shadow:var(--shadow)}
.card img{aspect-ratio:16/9}
.quick{border-radius:16px;min-height:122px;background:linear-gradient(180deg,#fff,#fbfdff)}
.grid-3{gap:20px}.grid-4{gap:16px}
.btn{background:linear-gradient(135deg,var(--blue),var(--blue-2));border-radius:11px;box-shadow:0 8px 22px rgba(7,93,199,.2)}
.btn:hover{background:linear-gradient(135deg,#064fac,#096ed0)}
.btn.alt{background:linear-gradient(135deg,#f4b23c,#ffc45b);color:#183043!important}
.tag{background:#e9f6ff;color:#0562bf}
.chip{background:#eef5fb;color:#27495f}
.cta{background:linear-gradient(145deg,#0d3e5a,#086b78);border-radius:20px}
footer{background:linear-gradient(135deg,#082e46,#0b4961);padding-top:52px}
.footer-grid{gap:36px}
.home-stats .container{border-radius:16px}
.stat strong{color:var(--blue)}
.eyebrow{color:#08728a}.eyebrow:before{background:#f0aa36}
.keyword-pills{display:flex;flex-wrap:wrap;gap:8px;margin:20px 0}.keyword-pills a{padding:8px 12px;border:1px solid #d7e4ec;background:#fff;border-radius:999px;font-weight:760;font-size:.86rem;box-shadow:0 4px 13px rgba(23,60,82,.05)}
.page-head:not(.visual-page-hero),.category-hero:not(.visual-page-hero){background:linear-gradient(135deg,#eef7ff,#fff 55%,#edf9f4)}
.directory-hero .filter-grid{background:rgba(255,255,255,.94);padding:12px;border-radius:15px;box-shadow:0 12px 35px rgba(0,0,0,.14)}
.directory-hero .filter-grid input,.directory-hero .filter-grid select{border-color:#d7e3eb}
.business-card{display:flex;flex-direction:column;background:#fff;border:1px solid #e1eaf0;border-radius:17px;overflow:hidden;box-shadow:var(--shadow-sm);transition:.22s;color:inherit}
.business-card img{width:100%;aspect-ratio:16/9;object-fit:cover}
.business-card-body{padding:18px;display:flex;flex-direction:column;gap:7px;min-height:155px}
.business-card-body strong{font-size:1.08rem;color:#14334a}.business-card-body span{color:#687b89;font-size:.88rem;line-height:1.5}.business-card-body em{font-style:normal;font-weight:800;color:var(--blue);margin-top:auto}
.mini-business-card{display:grid;grid-template-columns:110px 1fr;gap:14px;align-items:center;background:#fff;border:1px solid #e1eaf0;border-radius:15px;padding:10px;box-shadow:var(--shadow-sm);transition:.2s;color:inherit}
.mini-business-card img{width:110px;height:84px;object-fit:cover;border-radius:10px}.mini-business-card strong{display:block;color:#14334a;margin-bottom:5px}.mini-business-card span{display:block;color:#6b7e8b;font-size:.85rem;line-height:1.4}
.hero-action-strip{margin-top:12px;display:flex;justify-content:flex-end}
.content-photo,.side-photo{border-radius:18px;overflow:hidden;box-shadow:var(--shadow-sm);background:#fff}.content-photo img,.side-photo img{width:100%;aspect-ratio:16/9;object-fit:cover}.side-photo p{padding:12px 16px;margin:0;font-size:.88rem;color:#667986}
.news-card .news-image,.agenda-card img{border-radius:14px 14px 0 0}
.prose p{color:#415666}.prose h2{color:#103952}
.info-box{background:#fff}
.service-group{margin:42px 0}.service-group>h2{font-size:1.55rem;padding-bottom:12px;border-bottom:1px solid #e1eaf0;margin-bottom:18px}
.service-group:nth-child(odd) .quick{background:linear-gradient(145deg,#fff,#f5fbff)}.service-group:nth-child(even) .quick{background:linear-gradient(145deg,#fff,#f4fbf7)}
@media(max-width:1050px){.navlinks{display:none}.menu-btn{display:block}.business-head-grid,.category-head-grid{grid-template-columns:1fr}.visual-page-hero .hero-photo{max-height:300px}.city-photo-hero{min-height:360px}}
@media(max-width:760px){.container{width:min(100% - 26px,1240px)}.hero{padding:48px 0}.visual-page-hero{padding:44px 0}.home-modern-hero .hero-photo{min-height:280px}.hero-photo.compact,.hero-photo.compact img,.business-profile-photo,.business-profile-photo img{min-height:230px}.grid-3,.grid-4{grid-template-columns:1fr}.mini-business-card{grid-template-columns:92px 1fr}.mini-business-card img{width:92px;height:76px}.city-photo-hero{min-height:330px}.directory-hero .filter-grid{grid-template-columns:1fr!important}}

/* =========================================================
   V40 — Frisse Drieslag Arnhem UI polish
   Behoudt de blauw/wit/oranje kleurstelling uit v39,
   maar maakt spacing, cards, navigatie en beeldgebruik rustiger.
   ========================================================= */
:root{
  --navy:#0f2f46;
  --navy-2:#124a72;
  --teal:#0b67cf;
  --teal-soft:#eef6ff;
  --gold:#ffbd45;
  --gold-dark:#e39a15;
  --cream:#f7fbff;
  --paper:#ffffff;
  --ink:#173246;
  --muted:#687d8c;
  --line:#dbe6ee;
  --soft:#f5f9fc;
  --shadow:0 18px 48px rgba(15,47,70,.10);
  --shadow-sm:0 8px 24px rgba(15,47,70,.075);
  --radius:22px;
}
body{background:#fbfdff;color:var(--ink)}
.container{width:min(1240px,calc(100% - 44px))}
a{color:#0b63c9}
a:hover{color:#084f9f}

.top{background:#0c2c42}
.site-header{background:rgba(255,255,255,.97);border-bottom:1px solid #e4edf3;box-shadow:0 4px 20px rgba(15,47,70,.045)}
.nav{min-height:82px;gap:18px}
.logo img{width:220px;max-height:58px;object-fit:contain}
.navlinks{gap:2px;font-size:.93rem}
.navlinks a{padding:10px 11px;border-radius:11px;color:#17384d}
.navlinks a:hover{background:#eef6ff;color:#0b63c9}
.navlinks a:last-child{background:linear-gradient(135deg,#0b63ce,#1586e8);box-shadow:0 10px 24px rgba(11,99,206,.20);padding:12px 17px}
.navlinks a:last-child:hover{background:linear-gradient(135deg,#095cbf,#1178d7)}

.hero,.page-head,.category-hero{
  background:
    radial-gradient(circle at 88% 18%,rgba(255,189,69,.17),transparent 25%),
    radial-gradient(circle at 74% 72%,rgba(11,103,207,.08),transparent 30%),
    linear-gradient(135deg,#ffffff 0%,#f5faff 55%,#f9fcff 100%);
}
.hero{padding:72px 0 62px}
.hero-grid{gap:48px}
.hero h1,.page-head h1,.category-hero h1{max-width:950px}
.eyebrow{color:#c8840f}
.eyebrow:before{background:#ffb22f}
.lead{color:#4c6474;line-height:1.72}

.btn{background:linear-gradient(135deg,#0b63ce,#1686e7);border-radius:13px;box-shadow:0 10px 24px rgba(11,99,206,.20);min-height:50px}
.btn:hover{background:linear-gradient(135deg,#095bbd,#117bd9);transform:translateY(-2px)}
.btn.alt{background:linear-gradient(135deg,#ffbd45,#ffca69);color:#173246!important;box-shadow:0 10px 22px rgba(227,154,21,.16)}
.btn.alt:hover{background:linear-gradient(135deg,#f6ae2c,#ffc25a)}

.hero-photo{border-radius:26px;box-shadow:0 24px 60px rgba(15,47,70,.17)}
.section{padding:72px 0}
.section.soft{background:linear-gradient(180deg,#f8fbfe,#f2f8fc)}
.section-title{margin-bottom:24px}
.section-title h2{max-width:820px}

.card,.quick,.list-item,.info-box,.content-photo,.side-photo{
  border-color:#dfe9f0;
  box-shadow:0 8px 22px rgba(15,47,70,.065);
}
.card{border-radius:18px}
.card:hover{transform:translateY(-5px);box-shadow:0 18px 40px rgba(15,47,70,.12)}
.card img,.news-card .news-image{transition:transform .35s ease,filter .35s ease}
.card:hover img,.news-card:hover .news-image{transform:scale(1.035)}
.card-body{padding:21px 22px}
.tag{background:#edf6ff;color:#0b63ce;border:1px solid #dcecff}
.quick{border-radius:15px;padding:20px}
.quick:after{color:#f0a31a}
.quick:hover{border-color:#bcd9f6;background:#fbfdff}

.home-stats{margin-top:-18px}
.home-stats .container{border-radius:18px;box-shadow:0 16px 44px rgba(15,47,70,.12);border-color:#e1eaf0}
.stat{padding:24px 26px}
.stat strong{color:#0b63ce;font-size:1.85rem}

.kicker-card{background:linear-gradient(135deg,#0e3550,#0b63a8);box-shadow:0 18px 50px rgba(15,47,70,.16)}
.kicker-links a{background:rgba(255,255,255,.11);border:1px solid rgba(255,255,255,.08)}

.searchbar,.filter-grid{background:#fff;border:1px solid #e1eaf0;border-radius:16px;padding:10px;box-shadow:0 8px 26px rgba(15,47,70,.055)}
.searchbar input,.filter-grid input,.filter-grid select,.form input,.form textarea,.form select{border-color:#d8e5ed;background:#fff;border-radius:10px}
.searchbar button,.filter-grid button,.form button{background:linear-gradient(135deg,#0b63ce,#1686e7);border-radius:10px}

.prose{font-size:1rem}
.prose p{color:#40586a;line-height:1.78}
.prose h2{font-size:clamp(1.65rem,2.5vw,2.35rem);margin-top:1.65em}
.prose h3{font-size:1.25rem}
.cta{background:linear-gradient(145deg,#0d3550,#0b5f9d);border:1px solid rgba(255,255,255,.07)}

.info-box{background:#fff;border-radius:17px}
.notice{background:#eef8f2;border-left-color:#2d9b61}
.chip{background:#edf5fb;color:#234b67}

.keyword-pills a{background:#fff;border-color:#d8e5ef;box-shadow:0 4px 12px rgba(15,47,70,.04)}
.keyword-pills a:hover{border-color:#acd2f5;background:#f5faff;color:#0b63ce}

footer{background:linear-gradient(135deg,#0b293d,#0e3b56 68%,#0b3148);padding:58px 0 24px}
.footer-grid{gap:38px}
.footer-bottom{color:#bdd0db}

/* Visuele rust voor grote beeldblokken */
.content-photo img{aspect-ratio:16/8.7}
.side-photo img{aspect-ratio:4/3.1}
.photo-credit{color:#7f94a3}

/* Zakelijker directory- en overzichtsgevoel */
.grid-3,.grid-4,.related{align-items:stretch}
.grid-3 .card,.grid-4 .card,.related .card{height:100%}
.list-item{transition:transform .2s ease,box-shadow .2s ease}
.list-item:hover{transform:translateY(-2px);box-shadow:0 14px 34px rgba(15,47,70,.10)}

/* Mooier mobiel/tablet */
@media(max-width:1180px){
  .navlinks{font-size:.88rem}
  .navlinks a{padding:9px 8px}
  .logo img{width:195px}
}
@media(max-width:980px){
  .container{width:min(100% - 30px,1240px)}
  .nav{min-height:76px}
  .navlinks{top:74px;border:1px solid #e1eaf0}
  .navlinks a{padding:12px 14px}
  .hero{padding:52px 0 48px}
}
@media(max-width:650px){
  .container{width:min(100% - 24px,1240px)}
  .section{padding:52px 0}
  .card-body{padding:18px}
  .actions .btn{width:100%}
}

/* V41: vaste contrastlaag voor alle fotografische hero's */
.page-head.visual-page-hero,
.category-hero.visual-page-hero,
.business-head.visual-page-hero,
.directory-hero.visual-page-hero{
  position:relative;
  overflow:hidden;
  background-color:#0b3550 !important;
  background-image:
    linear-gradient(90deg,rgba(6,37,58,.94) 0%,rgba(6,37,58,.88) 38%,rgba(6,37,58,.56) 66%,rgba(6,37,58,.30) 100%),
    var(--hero-image,linear-gradient(135deg,#0b3550,#0b63a8)) !important;
  background-size:cover !important;
  background-position:center !important;
  color:#fff !important;
}
.page-head.visual-page-hero:before,
.category-hero.visual-page-hero:before,
.business-head.visual-page-hero:before,
.directory-hero.visual-page-hero:before{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(180deg,rgba(0,0,0,.04),rgba(0,0,0,.22));
  pointer-events:none;
  z-index:0;
}
.page-head.visual-page-hero>.container,
.category-hero.visual-page-hero>.container,
.business-head.visual-page-hero>.container,
.directory-hero.visual-page-hero>.container{
  position:relative;
  z-index:1;
}
.visual-page-hero h1,
.visual-page-hero h2,
.visual-page-hero h3,
.visual-page-hero .lead,
.visual-page-hero p,
.visual-page-hero .breadcrumbs,
.visual-page-hero .breadcrumbs a{
  color:#fff !important;
  text-shadow:0 2px 18px rgba(0,0,0,.42);
}
.visual-page-hero .eyebrow{
  color:#ffd081 !important;
  text-shadow:0 1px 10px rgba(0,0,0,.30);
}
.visual-page-hero .filter-grid,
.visual-page-hero .searchbar{
  text-shadow:none;
}
.visual-page-hero .filter-grid input,
.visual-page-hero .filter-grid select,
.visual-page-hero .searchbar input{
  color:#173246 !important;
}

/* Ook fotohubs/overzichtshero's houden voldoende contrast */
.hero.city-photo-hero,
.city-photo-hero{
  position:relative;
  overflow:hidden;
  background-color:#0b3550 !important;
  background-image:
    linear-gradient(90deg,rgba(6,37,58,.94) 0%,rgba(6,37,58,.84) 40%,rgba(6,37,58,.45) 72%,rgba(6,37,58,.18) 100%),
    var(--hero-image,linear-gradient(135deg,#0b3550,#0b63a8)) !important;
  background-size:cover !important;
  background-position:center !important;
}
.city-photo-hero:before{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(180deg,rgba(0,0,0,.02),rgba(0,0,0,.18));
  pointer-events:none;
  z-index:0;
}
.city-photo-hero>.container{position:relative;z-index:1}
.city-photo-hero h1,
.city-photo-hero h2,
.city-photo-hero .lead,
.city-photo-hero p{
  color:#fff !important;
  text-shadow:0 2px 18px rgba(0,0,0,.38);
}
.city-photo-hero .eyebrow{color:#ffd081 !important}

@media(max-width:760px){
  .page-head.visual-page-hero,
  .category-hero.visual-page-hero,
  .city-photo-hero{
    background-image:
      linear-gradient(90deg,rgba(6,37,58,.95),rgba(6,37,58,.78)),
      var(--hero-image,linear-gradient(135deg,#0b3550,#0b63a8)) !important;
  }
}

/* ===== V42 compact mega navigation ===== */
.site-header{z-index:1000;overflow:visible}
.nav{position:relative;overflow:visible}
.navlinks{display:flex;align-items:center;gap:3px;overflow:visible}
.navlinks>.nav-home,.nav-parent>a,.nav-contact{display:flex;align-items:center;min-height:44px;padding:10px 10px;border-radius:11px;color:#17384d;font-weight:800;text-decoration:none;white-space:nowrap}
.navlinks>.nav-home:hover,.nav-parent:hover>a,.nav-parent>a:hover{background:#eef6ff;color:#0b63ce}
.nav-item{position:relative;display:flex;align-items:center}
.nav-parent{display:flex;align-items:center;border-radius:11px}
.dropdown-toggle{width:28px;height:38px;border:0;background:transparent;color:#5f7484;font-size:18px;line-height:1;cursor:pointer;border-radius:8px;margin-left:-7px;transition:.2s ease}
.nav-parent:hover .dropdown-toggle,.dropdown-toggle:hover,.dropdown-toggle[aria-expanded="true"]{background:#eaf4ff;color:#0b63ce}
.nav-contact{background:linear-gradient(135deg,#0b63ce,#1586e8)!important;color:#fff!important;box-shadow:0 9px 22px rgba(11,99,206,.18);padding:11px 15px!important;margin-left:5px}
.nav-contact:hover{transform:translateY(-1px);box-shadow:0 12px 28px rgba(11,99,206,.24)}
.mega-menu{position:absolute;top:calc(100% + 14px);left:-20px;width:min(760px,calc(100vw - 40px));background:rgba(255,255,255,.99);border:1px solid #dce8f0;border-radius:18px;box-shadow:0 24px 60px rgba(18,49,72,.18);padding:18px;display:grid;grid-template-columns:1.15fr 1fr 1fr;gap:16px;opacity:0;visibility:hidden;pointer-events:none;transform:translateY(8px);transition:opacity .18s ease,transform .18s ease,visibility .18s ease;z-index:1200}
.mega-menu:before{content:"";position:absolute;top:-8px;left:48px;width:16px;height:16px;background:#fff;border-left:1px solid #dce8f0;border-top:1px solid #dce8f0;transform:rotate(45deg)}
.nav-item:hover>.mega-menu,.nav-item:focus-within>.mega-menu,.nav-item.menu-open>.mega-menu{opacity:1;visibility:visible;pointer-events:auto;transform:translateY(0)}
.mega-right{left:auto;right:-10px}
.mega-right:before{left:auto;right:65px}
.mega-intro{padding:16px;background:linear-gradient(145deg,#eef7ff,#f8fbfd 65%,#fff8e8);border-radius:14px;border:1px solid #e1ebf2}
.mega-kicker{display:block;color:#e59b23;text-transform:uppercase;letter-spacing:.13em;font-size:.72rem;font-weight:900;margin-bottom:7px}
.mega-intro strong{display:block;color:#0d3451;font-size:1.08rem;line-height:1.25;margin-bottom:7px}
.mega-intro p{font-size:.84rem;line-height:1.55;color:#617482;margin:0 0 12px}
.mega-cta{display:inline-flex!important;padding:8px 10px!important;background:#0b63ce!important;color:#fff!important;border-radius:9px!important;font-size:.82rem!important;font-weight:800!important}
.mega-column{padding:8px 6px}
.mega-column h4{font-size:.75rem;text-transform:uppercase;letter-spacing:.08em;color:#8a9aa6;margin:0 0 7px;padding:0 8px}
.mega-column a{display:block!important;padding:8px 9px!important;border-radius:9px!important;color:#17384d!important;font-size:.88rem!important;font-weight:720!important;line-height:1.25}
.mega-column a:hover{background:#eef6ff!important;color:#0b63ce!important}
.mega-compact{width:min(560px,calc(100vw - 40px));grid-template-columns:1fr 1.55fr}
.mega-compact .mega-links{grid-column:1/-1;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.mega-compact .mega-intro+.mega-links{grid-column:auto}
.mega-links a{display:flex!important;flex-direction:column;gap:2px;padding:11px 12px!important;border:1px solid #e6edf2;border-radius:12px!important;background:#fff;color:#17384d!important}
.mega-links a:hover{background:#f2f8ff!important;border-color:#cfe2f2;transform:translateY(-1px)}
.mega-links b{font-size:.88rem}
.mega-links span{font-size:.74rem;color:#778995;font-weight:550}
@media(min-width:1051px){
  .menu-btn{display:none!important}
  .navlinks{display:flex!important}
}
@media(max-width:1180px) and (min-width:1051px){
  .navlinks>.nav-home,.nav-parent>a,.nav-contact{font-size:.85rem;padding-left:7px;padding-right:7px}
  .dropdown-toggle{width:23px;margin-left:-7px}
  .nav-contact{padding-left:10px!important;padding-right:10px!important}
  .logo img{width:190px}
}
@media(max-width:1050px){
  .site-header .nav{min-height:72px}
  .menu-btn{display:block;position:relative;z-index:1301;background:linear-gradient(135deg,#0b63ce,#1586e8);border-radius:10px;padding:10px 14px}
  .navlinks{display:none!important;position:absolute;top:72px;left:14px;right:14px;max-height:calc(100vh - 95px);overflow-y:auto;background:#fff;border:1px solid #dfe9ef;border-radius:16px;padding:10px;box-shadow:0 22px 60px rgba(16,49,72,.18);flex-direction:column;align-items:stretch;gap:3px;z-index:1300}
  .navlinks.open{display:flex!important}
  .navlinks>.nav-home,.nav-contact{width:100%;justify-content:flex-start;padding:12px 13px!important;min-height:46px}
  .nav-item{display:block;width:100%;border-radius:12px}
  .nav-parent{display:grid;grid-template-columns:1fr 44px;width:100%}
  .nav-parent>a{padding:12px 13px;min-height:46px}
  .dropdown-toggle{width:44px;height:46px;margin:0;font-size:20px}
  .nav-item.menu-open .dropdown-toggle{transform:rotate(180deg)}
  .mega-menu,.mega-compact,.mega-right{position:static;width:auto;display:none;opacity:1;visibility:visible;pointer-events:auto;transform:none;box-shadow:none;border:0;border-radius:12px;background:#f5f9fc;margin:2px 4px 8px;padding:10px;grid-template-columns:1fr;gap:8px}
  .nav-item.menu-open>.mega-menu{display:grid}
  .mega-menu:before{display:none}
  .mega-intro{padding:12px}
  .mega-column{padding:2px}
  .mega-column h4{margin-top:5px}
  .mega-column a{padding:9px 10px!important}
  .mega-compact .mega-links,.mega-links{display:grid;grid-template-columns:1fr!important;gap:6px;grid-column:auto}
  .nav-contact{margin:5px 0 0;justify-content:center;background:linear-gradient(135deg,#0b63ce,#1586e8)!important}
}

/* ===== V43 mega-menu usability + viewport fix ===== */
@media(min-width:1051px){
  .nav-item.has-dropdown{position:relative;overflow:visible}
  /* Invisible hover bridge: moving the mouse from the top item to the dropdown no longer closes it. */
  .nav-item.has-dropdown::after{
    content:"";
    position:absolute;
    top:100%;
    left:-18px;
    right:-18px;
    height:18px;
    background:transparent;
    pointer-events:auto;
    z-index:1199;
  }
  .mega-menu{
    top:calc(100% + 10px);
    max-width:calc(100vw - 24px);
    box-sizing:border-box;
  }
  .mega-menu.menu-align-right{
    left:auto!important;
    right:0!important;
  }
  .mega-menu.menu-align-left{
    left:0!important;
    right:auto!important;
  }
  .mega-menu.menu-align-right:before{left:auto!important;right:54px!important}
  .mega-menu.menu-align-left:before{left:48px!important;right:auto!important}
  .mega-menu.menu-fit-viewport{
    position:fixed;
    top:var(--mega-top,72px)!important;
    left:12px!important;
    right:12px!important;
    width:auto!important;
    max-width:none!important;
    transform:translateY(0)!important;
  }
  .mega-menu.menu-fit-viewport:before{display:none}
}

/* ===== V44 utility pages, forms, legal pages & cookie banner ===== */
.utility-hero{padding:58px 0 42px;background:
 radial-gradient(circle at 10% 10%,rgba(21,134,232,.12),transparent 34%),
 radial-gradient(circle at 88% 24%,rgba(255,184,62,.16),transparent 34%),
 linear-gradient(180deg,#f8fbfe 0%,#eef5f9 100%);border-bottom:1px solid #dce8ef}
.utility-hero-grid{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(320px,.95fr);gap:42px;align-items:center}
.utility-hero h1{font-size:clamp(2.55rem,5vw,4.8rem);line-height:.98;letter-spacing:-.045em;margin:.15em 0 .3em;color:#0e334d;max-width:850px}
.utility-hero .lead{max-width:760px;font-size:1.18rem;line-height:1.7;color:#526d7e}
.utility-hero-image{border-radius:26px;overflow:hidden;box-shadow:0 24px 64px rgba(16,49,72,.16);border:8px solid rgba(255,255,255,.86);background:#dfeaf0;aspect-ratio:16/10}
.utility-hero-image img{display:block;width:100%;height:100%;object-fit:cover}
.utility-hero .keyword-pills{margin-top:20px}
.content-layout{display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:32px;align-items:start}
.content-card,.form-card,.side-card,.info-tile,.contact-info-stack .image-card{background:#fff;border:1px solid #dfeaf0;border-radius:22px;box-shadow:0 12px 38px rgba(22,54,75,.07)}
.content-card{padding:clamp(24px,4vw,48px)}
.content-card.prose{max-width:none}
.content-card.prose h2{font-size:clamp(1.45rem,2.1vw,2rem);margin-top:1.7em;color:#123a56}
.content-card.prose h2:first-child{margin-top:0}
.side-card{padding:18px;position:sticky;top:110px}
.side-card img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:15px;margin-bottom:16px}
.side-card h3{margin:.2em 0 .35em;font-size:1.3rem;color:#123a56}
.side-card p{color:#657a88;line-height:1.6}
.btn.small{padding:11px 15px;font-size:.9rem}
.btn.ghost{background:#fff!important;color:#0b63ce!important;border:1px solid #bfd6e7!important;box-shadow:none!important}
.contact-layout{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(300px,.9fr);gap:32px;align-items:start}
.form-card{padding:clamp(22px,3.3vw,38px)}
.form-card h2{margin:0 0 8px;color:#123a56}
.form-card>p{color:#677d8b;margin-top:0}
.form label{display:flex;flex-direction:column;gap:7px;font-weight:800;color:#23465e;font-size:.91rem}
.form label input,.form label select,.form label textarea{font-weight:500;color:#18374b}
.contact-info-stack{display:grid;gap:14px}
.info-tile{padding:22px}
.info-tile h2,.info-tile h3{margin:.1em 0 .4em;color:#123a56}
.info-tile p{margin:0;color:#687d8a;line-height:1.65}
.info-icon{display:grid;place-items:center;width:42px;height:42px;border-radius:13px;background:#eaf5ff;color:#0b63ce;font-weight:900;margin-bottom:14px}
.image-card{overflow:hidden}
.image-card img{width:100%;height:210px;object-fit:cover;display:block}
.image-card>div{padding:18px;display:flex;flex-direction:column;gap:4px}
.image-card span{color:#6e808c}
.image-strip{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:26px}
.image-strip.three{grid-template-columns:repeat(3,1fr)}
.image-strip img{width:100%;height:190px;object-fit:cover;border-radius:16px}
.wide-copy{max-width:1120px!important;margin:auto}
.cookie-copy{margin-top:28px}
.not-found{min-height:68vh;display:grid;align-items:center;padding:56px 0;background:linear-gradient(135deg,#f5f9fc,#edf6fb)}
.not-found-grid{display:grid;grid-template-columns:1fr .85fr;gap:50px;align-items:center}
.error-code{font-size:clamp(4.5rem,11vw,9rem);font-weight:950;line-height:.8;color:#0b63ce;opacity:.13;letter-spacing:-.08em}
.sitemap-intro{margin-bottom:30px}.sitemap-section{padding:28px 0;border-top:1px solid #e4edf2}.sitemap-section:first-of-type{border-top:0}.sitemap-section h2{color:#123a56;margin:0 0 18px}.directory-links.enhanced{display:flex;flex-wrap:wrap;gap:9px}.directory-links.enhanced a{background:#fff;border:1px solid #dfeaf0;border-radius:11px;padding:9px 12px;box-shadow:0 5px 16px rgba(21,53,75,.04);transition:.18s ease}.directory-links.enhanced a:hover{background:#eef7ff;border-color:#bdd9ec;transform:translateY(-1px)}
.business-sitemap{max-height:650px;overflow:auto;padding:12px;border-radius:16px;background:#f6f9fb}
.confirm-page{min-height:62vh;background:linear-gradient(180deg,#f7fbfe,#eef5f9)}.p2-confirm-card.polished{max-width:720px;margin:40px auto;background:#fff;border:1px solid #dfeaf0;border-radius:24px;padding:42px;box-shadow:0 20px 55px rgba(17,52,77,.1)}
.footer-cookie-link{appearance:none;border:0;background:none;padding:0;color:inherit;font:inherit;text-decoration:underline;cursor:pointer;opacity:.92}
.cookie-banner{position:fixed;left:18px;right:18px;bottom:18px;z-index:5000}.cookie-banner-inner{max-width:1160px;margin:auto;background:rgba(9,42,65,.98);color:#fff;border-radius:20px;padding:18px 20px;display:flex;align-items:center;gap:24px;justify-content:space-between;box-shadow:0 25px 75px rgba(7,29,45,.3);border:1px solid rgba(255,255,255,.12)}.cookie-banner-copy strong{display:block;font-size:1.1rem;margin-bottom:3px}.cookie-banner-copy p{margin:0;color:#d6e4ec;line-height:1.5;max-width:720px;font-size:.92rem}.cookie-banner-actions{display:flex;align-items:center;gap:9px;flex-wrap:wrap;justify-content:flex-end}.cookie-banner .btn{margin:0}.cookie-more{border:0;background:transparent;color:#fff;text-decoration:underline;font-weight:800;cursor:pointer;padding:10px}.cookie-modal{position:fixed;inset:0;background:rgba(8,31,47,.48);display:grid;place-items:center;padding:20px;z-index:5100}.cookie-modal-card{width:min(620px,100%);background:#fff;border-radius:24px;padding:30px;position:relative;box-shadow:0 30px 90px rgba(7,29,45,.3)}.cookie-modal-card h2{font-size:2rem;margin:.15em 0 .4em;color:#123a56}.cookie-modal-card>p{color:#667c8a;line-height:1.6}.cookie-close{position:absolute;top:16px;right:16px;width:38px;height:38px;border:0;border-radius:50%;background:#eef4f7;color:#23445a;font-size:24px;cursor:pointer}.cookie-option{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:16px 0;border-top:1px solid #e4edf2}.cookie-option div{display:flex;flex-direction:column;gap:3px}.cookie-option span{color:#758793;font-size:.87rem}.cookie-status{font-weight:800;color:#16834b!important}.cookie-option input{width:22px;height:22px;accent-color:#0b63ce}.cookie-modal-actions{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:20px}.cookie-modal-actions a{font-weight:800;color:#0b63ce}
@media(max-width:900px){.utility-hero-grid,.content-layout,.contact-layout,.not-found-grid{grid-template-columns:1fr}.utility-hero{padding:40px 0 30px}.utility-hero-image{aspect-ratio:16/8}.side-card{position:static}.image-strip.three{grid-template-columns:1fr 1fr}.cookie-banner-inner{align-items:flex-start;flex-direction:column}.cookie-banner-actions{justify-content:flex-start}.business-sitemap{max-height:520px}}
@media(max-width:600px){.utility-hero h1{font-size:2.55rem}.image-strip,.image-strip.three{grid-template-columns:1fr}.image-strip img{height:210px}.cookie-banner{left:10px;right:10px;bottom:10px}.cookie-banner-inner{padding:16px;border-radius:16px}.cookie-banner-actions{width:100%}.cookie-banner-actions .btn{flex:1}.cookie-modal-card{padding:24px 20px}.cookie-modal-actions{align-items:stretch;flex-direction:column}.not-found{padding:35px 0}.content-card{padding:22px}}


/* ===== V45 robust cookie visibility ===== */
.cookie-banner[hidden],.cookie-modal[hidden],.cookie-banner.is-hidden,.cookie-modal.is-hidden{display:none!important}

/* ===== V46 mega-menu: one dropdown at a time, no overlap ===== */
@media(min-width:1051px){
  /* Desktop visibility is controlled only by JS/menu-open.
     This prevents overlapping menus caused by simultaneous :hover/:focus states. */
  .nav-item.has-dropdown:hover > .mega-menu,
  .nav-item.has-dropdown:focus-within > .mega-menu{
    opacity:0;
    visibility:hidden;
    pointer-events:none;
    transform:translateY(8px);
  }
  .nav-item.has-dropdown.menu-open > .mega-menu{
    opacity:1 !important;
    visibility:visible !important;
    pointer-events:auto !important;
    transform:translateY(0) !important;
  }
  .nav-item.has-dropdown:not(.menu-open) > .mega-menu{
    opacity:0 !important;
    visibility:hidden !important;
    pointer-events:none !important;
  }
  .mega-menu{isolation:isolate}
}

/* ===== V47 footer redesign + horizontal overflow fix ===== */
html,body{max-width:100%;overflow-x:clip}
body>*{max-width:100%}
main,.site-header,footer{max-width:100%;overflow-x:clip}
img,svg,video,iframe{max-width:100%}
.nav,.navlinks{max-width:100%}
@media(min-width:1051px){
  .mega-menu{max-width:min(760px,calc(100vw - 32px));}
  .mega-compact{max-width:min(560px,calc(100vw - 32px));}
  .mega-menu.menu-fit-viewport{left:16px!important;right:16px!important;max-width:calc(100vw - 32px)!important;}
}

.site-footer-modern{
  position:relative;
  background:
    radial-gradient(circle at 13% 0%,rgba(21,134,232,.14),transparent 27%),
    radial-gradient(circle at 88% 12%,rgba(255,184,62,.10),transparent 24%),
    linear-gradient(145deg,#08283d 0%,#0b3650 54%,#0a2e44 100%);
  color:#dce9f0;
  padding:34px 0 22px;
  overflow:hidden;
}
.site-footer-modern:after{
  content:"";position:absolute;right:-90px;bottom:-145px;width:430px;height:260px;
  border:46px solid rgba(255,255,255,.025);border-radius:50%;pointer-events:none
}
.footer-cta{
  position:relative;z-index:1;
  display:flex;align-items:center;justify-content:space-between;gap:28px;
  padding:26px 28px;margin-bottom:34px;border-radius:22px;
  background:linear-gradient(135deg,rgba(255,255,255,.10),rgba(255,255,255,.055));
  border:1px solid rgba(255,255,255,.12);box-shadow:0 18px 44px rgba(2,20,34,.12)
}
.footer-kicker{display:block;color:#ffbd4a;font-size:.76rem;font-weight:900;text-transform:uppercase;letter-spacing:.15em;margin-bottom:6px}
.footer-cta h2{color:#fff;font-size:clamp(1.65rem,2.6vw,2.4rem);margin:0 0 7px;letter-spacing:-.035em}
.footer-cta p{margin:0;color:#c9dce6;max-width:720px;line-height:1.6}
.footer-cta-actions{display:flex;gap:10px;flex-wrap:wrap;flex-shrink:0}
.footer-cta .btn{box-shadow:none}
.footer-cta .btn.alt{background:#ffb73f}
.footer-grid-modern{position:relative;z-index:1;grid-template-columns:1.55fr .82fr .92fr .82fr;gap:42px;align-items:start}
.footer-brand{min-width:0}
.footer-logo{width:220px;max-width:100%;filter:brightness(0) invert(1);opacity:.96;margin-bottom:16px}
.footer-brand p{max-width:470px;color:#c5d8e2;line-height:1.7;margin:0 0 18px}
.footer-pills{display:flex;flex-wrap:wrap;gap:8px}
.footer-pills a{display:inline-flex;padding:7px 10px;border:1px solid rgba(255,255,255,.14);background:rgba(255,255,255,.055);border-radius:999px;color:#e8f1f5;font-size:.8rem;font-weight:760}
.footer-pills a:hover{background:rgba(255,255,255,.11);color:#fff}
.footer-col{display:flex;flex-direction:column;gap:9px;min-width:0}
.footer-col h3{color:#fff;font-size:1rem;margin:0 0 7px;letter-spacing:0}
.footer-col a,.footer-cookie-link{color:#cbdce5;font-size:.92rem;line-height:1.35;text-align:left}
.footer-col a:hover,.footer-cookie-link:hover{color:#fff;transform:translateX(2px)}
.footer-cookie-link{text-decoration:none;transition:.18s ease}
.footer-bottom-modern{position:relative;z-index:1;display:flex;justify-content:space-between;align-items:center;gap:20px;color:#9fb7c5;margin-top:36px;padding-top:20px;border-top:1px solid rgba(255,255,255,.11)}
@media(max-width:980px){
  .footer-cta{align-items:flex-start;flex-direction:column}
  .footer-grid-modern{grid-template-columns:1.25fr 1fr 1fr;gap:30px}
  .footer-brand{grid-column:1/-1}
}
@media(max-width:650px){
  .site-footer-modern{padding-top:24px}
  .footer-cta{padding:21px 20px;border-radius:18px}
  .footer-cta-actions{width:100%}
  .footer-cta-actions .btn{flex:1}
  .footer-grid-modern{grid-template-columns:1fr;gap:24px}
  .footer-brand{grid-column:auto}
  .footer-col{padding-top:4px;border-top:1px solid rgba(255,255,255,.08)}
  .footer-col h3{padding-top:14px}
  .footer-bottom-modern{align-items:flex-start;flex-direction:column;gap:5px}
}

/* ===== V48 footer contrast + definitive horizontal overflow fix ===== */
html,body{
  width:100%;
  max-width:100%;
  overflow-x:hidden!important;
}
body{position:relative}
.site-header,.site-header .container,.site-header .nav,.navlinks,main,.site-footer-modern,.site-footer-modern .container{
  width:100%;
  max-width:100%;
  min-width:0;
  box-sizing:border-box;
}
.container,.grid,.footer-grid-modern,.footer-brand,.footer-col,.nav-item,.nav-parent,.mega-menu,.mega-column,.mega-links{
  min-width:0;
}
img,svg,video,iframe,canvas{max-width:100%;height:auto}

/* Keep the invisible hover bridge, but never let it extend outside its menu item. */
@media(min-width:1051px){
  .nav-item.has-dropdown::after{
    left:0!important;
    right:0!important;
    width:100%!important;
    max-width:100%!important;
  }
  .mega-menu,
  .mega-compact,
  .mega-right{
    max-width:calc(100vw - 40px)!important;
    box-sizing:border-box!important;
  }
  .mega-menu.menu-fit-viewport{
    left:20px!important;
    right:20px!important;
    width:auto!important;
    max-width:calc(100vw - 40px)!important;
  }
}

/* Footer contrast must always remain readable on the dark background. */
.site-footer-modern,
.site-footer-modern p,
.site-footer-modern span,
.site-footer-modern li{
  color:#dceaf2!important;
}
.site-footer-modern h2,
.site-footer-modern h3,
.site-footer-modern h4,
.site-footer-modern strong,
.site-footer-modern .footer-title{
  color:#ffffff!important;
  opacity:1!important;
}
.site-footer-modern .footer-col h3{
  color:#ffffff!important;
  font-weight:900!important;
  text-shadow:0 1px 1px rgba(0,0,0,.08);
}
.site-footer-modern a,
.site-footer-modern .footer-cookie-link{
  color:#e1edf3!important;
  opacity:1!important;
}
.site-footer-modern a:hover,
.site-footer-modern .footer-cookie-link:hover{
  color:#ffbd4a!important;
}
.site-footer-modern .footer-bottom-modern,
.site-footer-modern .footer-bottom-modern span{
  color:#b8ceda!important;
}
.site-footer-modern .footer-kicker{color:#ffbd4a!important}
.site-footer-modern .footer-cta p{color:#d7e6ed!important}
.site-footer-modern .footer-brand p{color:#d2e2ea!important}

/* Prevent long labels/URLs from growing the page wider than the viewport. */
.site-footer-modern a,
.site-footer-modern p,
.site-footer-modern button,
.mega-menu a,
.mega-menu p{
  overflow-wrap:anywhere;
  word-break:normal;
}

@media(max-width:650px){
  .site-footer-modern .footer-grid-modern,
  .site-footer-modern .footer-cta,
  .site-footer-modern .footer-cta-actions{width:100%;max-width:100%}
}
