@import url("https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Manrope:wght@500;600;700;800&display=swap");

:root{
  --rp-yellow:#edd81b; --rp-yellow-active:#d7c316; --rp-yellow-soft:#faf3b8;
  --rp-black:#000; --rp-white:#fff;
  --rp-n-0:#fff; --rp-n-50:#f7f7f5; --rp-n-100:#f1f1ee; --rp-n-200:#e7e7e2;
  --rp-n-300:#ddddda; --rp-n-400:#d9d9d4; --rp-n-450:#d7d7d2; --rp-n-600:#969696;
  --rp-n-700:#707070; --rp-n-800:#444; --rp-n-850:#353535; --rp-n-900:#252525;
  --rp-n-950:#1c1c1c; --rp-n-1000:#111;

  --color-canvas:var(--rp-n-0);
  --color-surface-soft:var(--rp-n-50);
  --color-surface-card:var(--rp-n-100);
  --color-surface-strong:var(--rp-n-200);
  --color-surface-dark:var(--rp-n-1000);
  --color-surface-dark-elevated:var(--rp-n-950);
  --color-primary:var(--rp-yellow);
  --color-primary-active:var(--rp-yellow-active);
  --color-on-primary:var(--rp-black);
  --color-text:var(--rp-n-1000);
  --color-text-strong:var(--rp-n-900);
  --color-body:var(--rp-n-800);
  --color-muted:var(--rp-n-700);
  --color-muted-soft:var(--rp-n-600);
  --color-on-dark:var(--rp-white);
  --color-on-dark-muted:#a0a0a0;
  --color-border:var(--rp-n-400);
  --color-border-soft:var(--rp-n-300);
  --color-border-input:var(--rp-n-450);
  --color-border-dark:var(--rp-n-850);
  --color-focus-ring:rgba(237,216,27,.35);
  --color-success:#2f8f46;

  --font-display:"Manrope","Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;
  --font-sans:"Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;

  --radius-xs:4px; --radius-sm:6px; --radius-md:8px; --radius-lg:12px;
  --radius-xl:16px; --radius-pill:9999px;

  --border-hairline:1px solid var(--color-border);
  --border-hairline-soft:1px solid var(--color-border-soft);
  --border-hairline-dark:1px solid var(--color-border-dark);
  --focus-ring:0 0 0 3px var(--color-focus-ring);
  --transition-fast:120ms cubic-bezier(.2,0,.2,1);
  --transition-base:180ms cubic-bezier(.2,0,.2,1);

  --container-max:1200px;
  --pad:clamp(20px,4vw,32px);
  --section:clamp(56px,8vw,96px);
  --section-sm:clamp(48px,6vw,64px);
}

*,*::before,*::after{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0; background:var(--color-canvas); color:var(--color-body);
  font-family:var(--font-sans); font-size:16px; line-height:1.6;
  -webkit-font-smoothing:antialiased; text-wrap:pretty;
}
img{display:block; max-width:100%;}
ul,ol{margin:0;}
a{color:var(--color-text);}
a:hover{color:var(--color-text);}
:focus-visible{outline:2px solid var(--color-primary); outline-offset:2px;}

.rp-container{max-width:var(--container-max); margin:0 auto; padding-left:var(--pad); padding-right:var(--pad);}
.rp-section{padding-top:var(--section); padding-bottom:var(--section);}
.rp-section--sm{padding-top:var(--section-sm); padding-bottom:var(--section-sm);}
.rp-band-soft{background:var(--color-surface-soft); border-top:var(--border-hairline-soft); border-bottom:var(--border-hairline-soft);}
.rp-band-dark{background:var(--color-surface-dark); color:var(--color-on-dark-muted);}
.rp-band-yellow{background:var(--color-primary); color:var(--color-on-primary);}

.rp-eyebrow{display:block; font-size:12px; line-height:1.4; letter-spacing:.08em; text-transform:uppercase; font-weight:600; color:var(--color-muted);}
.rp-band-dark .rp-eyebrow{color:var(--color-primary);}
.rp-band-yellow .rp-eyebrow{color:rgba(0,0,0,.55);}

h1,h2,h3,h4{margin:0; color:var(--color-text); text-wrap:balance;}
.rp-h1{font-family:var(--font-display); font-size:clamp(32px,5.2vw,60px); line-height:1.04; letter-spacing:-.03em; font-weight:700; max-width:20ch;}
.rp-h2{font-family:var(--font-display); font-size:clamp(26px,4vw,36px); line-height:1.12; letter-spacing:-.02em; font-weight:700; max-width:24ch;}
.rp-h3{font-family:var(--font-display); font-size:22px; line-height:1.25; font-weight:700;}
.rp-h4{font-size:18px; line-height:1.35; font-weight:700;}
/* lange Nederlandse samenstellingen mogen nooit uit hun kolom lopen */
/* hyphens:manual — de browser breekt Nederlandse samenstellingen op de verkeerde
   plek af (wit-goedreparaties); de koppen dragen zelf een &shy; op het juiste punt */
h1,h2,h3,h4,.rp-h1,.rp-h2,.rp-h3,.rp-h4{overflow-wrap:break-word; hyphens:manual;}
.rp-band-dark .rp-h1,.rp-band-dark .rp-h2,.rp-band-dark .rp-h3,.rp-band-dark .rp-h4{color:var(--color-on-dark);}
.rp-band-yellow .rp-h1,.rp-band-yellow .rp-h2{color:var(--color-on-primary);}
.rp-lead{font-size:16px; line-height:1.6; color:var(--color-text-strong); max-width:46ch; margin:0;}
.rp-band-dark .rp-lead{color:var(--color-on-dark-muted);}
.rp-p{font-size:16px; line-height:1.6; max-width:52ch; margin:0;}
.rp-small{font-size:14px; line-height:1.5; margin:0;}
.rp-meta{font-size:13px; line-height:1.4; color:var(--color-muted); margin:0;}
.rp-band-dark .rp-meta{color:var(--color-muted-soft);}
.rp-rule{display:block; width:40px; height:3px; background:var(--color-primary);}
.rp-band-yellow .rp-rule{background:var(--color-on-primary);}

/* tekstlinks in lopende tekst krijgen het gele accent */
.rp-p a,.rp-lead a,.rp-small a,.rp-table__desc a,.rp-faq p a,main li a:not(.rp-btn):not(.rp-problem){
  color:var(--color-text); font-weight:600; text-decoration:none;
  background-image:linear-gradient(var(--color-primary),var(--color-primary));
  background-repeat:no-repeat; background-position:0 100%; background-size:100% 3px;
  padding-bottom:1px; transition:background-size var(--transition-base), color var(--transition-fast);
}
.rp-p a:hover,.rp-lead a:hover,.rp-small a:hover,.rp-table__desc a:hover,.rp-faq p a:hover,main li a:not(.rp-btn):not(.rp-problem):hover{
  background-size:100% 100%; color:var(--color-on-primary);
}
.rp-band-dark .rp-p a,.rp-band-dark .rp-lead a,.rp-band-dark .rp-small a{color:var(--color-primary); background-image:none; text-decoration:underline; text-underline-offset:3px;}
.rp-band-dark .rp-p a:hover,.rp-band-dark .rp-lead a:hover,.rp-band-dark .rp-small a:hover{color:var(--color-primary-active);}

.rp-stack{display:flex; flex-direction:column; gap:16px;}
.rp-stack--lg{gap:24px;}
.rp-row{display:flex; flex-wrap:wrap; gap:12px;}
.rp-split{display:grid; grid-template-columns:repeat(auto-fit,minmax(360px,1fr)); column-gap:clamp(32px,5vw,56px); row-gap:clamp(28px,4vw,40px); align-items:center;}
.rp-split > *{min-width:0;}
.rp-split--top{align-items:start;}
.rp-grid{display:grid; grid-template-columns:repeat(auto-fit,minmax(240px,1fr)); gap:24px;}
/* vijf kaarten: onder 720px één kolom, daarboven 3 + 2 waarbij de laatste twee
   samen de volle breedte vullen, zodat er nooit een leeg vakje overblijft */
.rp-grid--five{list-style:none; padding:0; margin:0; grid-template-columns:1fr;}
@media (min-width:720px){
  .rp-grid--five{grid-template-columns:repeat(6,1fr);}
  .rp-grid--five > li{grid-column:span 2;}
  .rp-grid--five > li:nth-child(4),.rp-grid--five > li:nth-child(5){grid-column:span 3;}
}

.rp-btn{
  display:inline-flex; align-items:center; justify-content:center; gap:8px;
  height:48px; padding:0 24px; border:1px solid transparent; border-radius:var(--radius-md);
  font-family:var(--font-sans); font-size:14px; font-weight:600; line-height:1;
  text-decoration:none; cursor:pointer; white-space:nowrap;
  transition:background var(--transition-fast), color var(--transition-fast), border-color var(--transition-fast);
}
.rp-btn--sm{height:40px; padding:0 20px;}
.rp-btn--primary{background:var(--color-primary); color:var(--color-on-primary);}
.rp-btn--primary:hover{background:var(--color-primary-active); color:var(--color-on-primary);}
.rp-btn--secondary{background:var(--color-canvas); color:var(--color-text); border-color:var(--color-border);}
.rp-btn--secondary:hover{background:var(--color-surface-soft); color:var(--color-text);}
.rp-btn--dark{background:var(--color-surface-dark); color:var(--color-on-dark);}
.rp-btn--dark:hover{background:var(--rp-n-900); color:var(--color-on-dark);}
.rp-btn--dark-secondary{background:transparent; color:var(--color-on-dark); border-color:var(--color-border-dark);}
.rp-btn--dark-secondary:hover{background:var(--rp-n-900); color:var(--color-on-dark);}
.rp-btn--full{width:100%;}

.rp-card{background:var(--color-surface-card); border-radius:var(--radius-lg); padding:32px; display:flex; flex-direction:column; gap:12px;}
.rp-card--dark{background:var(--color-surface-dark-elevated);}
.rp-card--outline{background:var(--color-canvas); border:var(--border-hairline);}
.rp-card p{margin:0; font-size:14px; line-height:1.6;}

.rp-badge{display:inline-flex; align-items:center; height:24px; padding:0 10px; border-radius:var(--radius-pill); background:var(--color-primary); color:var(--color-on-primary); font-size:12px; font-weight:600; letter-spacing:.08em; text-transform:uppercase;}

.rp-chips{list-style:none; padding:0; display:flex; flex-wrap:wrap; gap:8px;}
.rp-chips li{background:var(--color-surface-card); border-radius:var(--radius-pill); padding:7px 14px; font-size:14px; color:var(--color-text);}

.rp-list{list-style:none; padding:0; display:flex; flex-direction:column;}
.rp-list li{padding:16px 0; border-top:var(--border-hairline); font-size:16px; line-height:1.6;}
.rp-list li:last-child{border-bottom:var(--border-hairline);}

.rp-media{width:100%; object-fit:cover; border-radius:var(--radius-lg);}
.rp-media--hero{height:clamp(240px,32vw,360px); border-radius:var(--radius-xl);}
.rp-media--tall{height:clamp(240px,30vw,340px);}

/* ---------- header ---------- */
.rp-header{position:sticky; top:0; z-index:30; background:var(--color-canvas); border-bottom:var(--border-hairline-soft);}
.rp-header__bar{max-width:var(--container-max); margin:0 auto; padding:0 var(--pad); min-height:72px; display:flex; align-items:center; gap:clamp(12px,2.4vw,28px);}
.rp-header__logo{flex:none; display:block; padding:12px 0;}
.rp-header__logo img{height:40px; width:auto;}
.rp-nav{display:flex; align-items:center; gap:clamp(14px,2vw,24px); margin-inline:auto; font-size:14px; line-height:1.4; font-weight:500;}
.rp-nav > a,.rp-nav__toggle{
  color:var(--color-muted); text-decoration:none; padding:26px 2px;
  border:0; border-bottom:3px solid transparent; background:none; cursor:pointer;
  font:inherit; display:inline-flex; align-items:center; gap:7px;
  transition:color var(--transition-fast);
}
.rp-nav > a:hover,.rp-nav__toggle:hover{color:var(--color-text);}
.rp-nav > a[aria-current="page"],.rp-nav__toggle[data-current="true"]{color:var(--color-text); font-weight:600; border-bottom-color:var(--color-primary);}
.rp-nav__caret{width:8px; height:8px; border-right:2px solid currentColor; border-bottom:2px solid currentColor; transform:translateY(-2px) rotate(45deg); transition:transform var(--transition-base);}
.rp-nav__item{position:relative; display:flex; align-items:center;}
.rp-nav__item:hover .rp-nav__caret,.rp-nav__item:focus-within .rp-nav__caret{transform:translateY(1px) rotate(-135deg);}
.rp-nav__panel{
  position:absolute; top:100%; left:-14px; z-index:5; width:320px; padding:8px;
  background:var(--color-canvas); border:var(--border-hairline); border-radius:var(--radius-lg);
  box-shadow:0 2px 8px rgba(0,0,0,.06);
  opacity:0; visibility:hidden; transform:translateY(6px);
  transition:opacity var(--transition-base), transform var(--transition-base), visibility var(--transition-base);
}
.rp-nav__item:hover .rp-nav__panel,.rp-nav__item:focus-within .rp-nav__panel{opacity:1; visibility:visible; transform:none;}
.rp-nav__panel a{
  display:block; padding:11px 12px; border:0; border-radius:var(--radius-md);
  color:var(--color-text); text-decoration:none; font-size:15px; font-weight:600;
  transition:background var(--transition-fast);
}
.rp-nav__panel a:hover{background:var(--color-surface-soft);}
.rp-nav__panel a[aria-current="page"]{background:var(--color-surface-card);}
.rp-nav__panel small{display:block; font-size:12.5px; font-weight:400; line-height:1.45; color:var(--color-muted); margin-top:2px;}
.rp-header__phone{font-size:14px; font-weight:600; color:var(--color-text); text-decoration:none; white-space:nowrap;}
.rp-header__cta{flex:none;}
.rp-header__cta .rp-cta-short{display:none;}

.rp-burger{
  display:none; flex:none; position:relative; width:44px; height:44px; padding:0;
  background:var(--color-text); border:0; border-radius:var(--radius-sm);
  cursor:pointer; transition:background var(--transition-fast);
}
.rp-burger:hover{background:var(--rp-n-900);}
.rp-burger span{
  position:absolute; left:13px; width:18px; height:2px; border-radius:1px;
  background:var(--color-canvas);
  transition:transform 220ms cubic-bezier(.2,0,.2,1), opacity 120ms linear;
}
.rp-burger span:nth-child(1){top:15px;}
.rp-burger span:nth-child(2){top:21px;}
.rp-burger span:nth-child(3){top:27px;}
.rp-burger[aria-expanded="true"] span:nth-child(1){transform:translateY(6px) rotate(45deg);}
.rp-burger[aria-expanded="true"] span:nth-child(2){opacity:0; transform:scaleX(.3);}
.rp-burger[aria-expanded="true"] span:nth-child(3){transform:translateY(-6px) rotate(-45deg);}
@media (prefers-reduced-motion:reduce){ .rp-burger span{transition:none;} }

@media (max-width:1023px){
  .rp-nav{display:none;}
  .rp-header__phone{display:none;}
  .rp-header__cta{margin-left:auto;}
  .rp-burger{display:block;}
}
@media (max-width:559px){
  .rp-header__logo img{height:32px;}
  .rp-header__cta{height:40px; padding:0 14px;}
  .rp-header__cta .rp-cta-long{display:none;}
  .rp-header__cta .rp-cta-short{display:inline;}
}

/* ---------- mobiel menu: uitschuivend paneel ---------- */
.rp-drawer{position:fixed; inset:0; z-index:60; visibility:hidden;}
.rp-drawer[data-open="true"]{visibility:visible;}
.rp-drawer__scrim{position:absolute; inset:0; background:rgba(0,0,0,.5); opacity:0; transition:opacity 240ms cubic-bezier(.2,0,.2,1);}
.rp-drawer[data-open="true"] .rp-drawer__scrim{opacity:1;}
.rp-drawer__panel{
  position:absolute; top:0; right:0; height:100%; width:min(380px,88vw);
  background:var(--color-canvas); display:flex; flex-direction:column;
  padding:20px 24px max(24px,env(safe-area-inset-bottom));
  overflow-y:auto; -webkit-overflow-scrolling:touch;
  transform:translateX(102%);
  transition:transform 320ms cubic-bezier(.2,0,.2,1);
}
.rp-drawer[data-open="true"] .rp-drawer__panel{transform:none;}
.rp-drawer__top{display:flex; align-items:center; justify-content:space-between; gap:16px; padding-bottom:16px; border-bottom:var(--border-hairline-soft);}
.rp-drawer__top img{height:32px; width:auto;}
.rp-drawer__close{
  width:44px; height:44px; flex:none; display:grid; place-items:center; padding:0;
  background:var(--color-canvas); color:var(--color-text); border:var(--border-hairline);
  border-radius:var(--radius-sm); cursor:pointer; transition:background var(--transition-fast);
}
.rp-drawer__close:hover{background:var(--color-primary);}
.rp-drawer__links{display:flex; flex-direction:column;}
.rp-drawer__links a{
  font-size:18px; font-weight:600; color:var(--color-text); text-decoration:none;
  padding:15px 0; border-bottom:var(--border-hairline-soft);
  display:flex; align-items:center; justify-content:space-between; gap:12px;
}
.rp-drawer__links a[aria-current="page"]{color:var(--color-text);}
.rp-drawer__links a[aria-current="page"]::after{content:""; width:20px; height:3px; background:var(--color-primary);}
.rp-drawer__label{display:block; font-size:12px; letter-spacing:.08em; text-transform:uppercase; font-weight:600; color:var(--color-muted); padding:22px 0 6px;}
.rp-drawer__sub{display:flex; flex-direction:column;}
.rp-drawer__sub a{font-size:16px; font-weight:500; padding-left:14px; border-left:3px solid var(--color-surface-strong);}
.rp-drawer__sub a[aria-current="page"]{border-left-color:var(--color-primary);}
.rp-drawer__foot{margin-top:auto; padding-top:24px; display:flex; flex-direction:column; gap:10px;}
.rp-drawer__foot .rp-btn{width:100%;}
.rp-drawer [data-stagger]{opacity:0; transform:translateX(16px); transition:opacity 220ms cubic-bezier(.2,0,.2,1), transform 220ms cubic-bezier(.2,0,.2,1);}
.rp-drawer[data-open="true"] [data-stagger]{opacity:1; transform:none;}
.rp-drawer[data-open="true"] [data-stagger]:nth-child(1){transition-delay:110ms;}
.rp-drawer[data-open="true"] [data-stagger]:nth-child(2){transition-delay:150ms;}
.rp-drawer[data-open="true"] [data-stagger]:nth-child(3){transition-delay:190ms;}
.rp-drawer[data-open="true"] [data-stagger]:nth-child(4){transition-delay:230ms;}
.rp-drawer[data-open="true"] [data-stagger]:nth-child(5){transition-delay:270ms;}
.rp-drawer[data-open="true"] [data-stagger]:nth-child(6){transition-delay:310ms;}
.rp-drawer[data-open="true"] [data-stagger]:nth-child(7){transition-delay:350ms;}
.rp-drawer[data-open="true"] [data-stagger]:nth-child(8){transition-delay:390ms;}
@media (min-width:1024px){ .rp-drawer{display:none;} }
@media (prefers-reduced-motion:reduce){
  .rp-drawer__panel,.rp-drawer [data-stagger]{transition:none !important; transform:none !important;}
  .rp-drawer[data-open="false"] .rp-drawer__panel{display:none;}
}

/* ---------- airco callout ---------- */
.rp-airco{background:var(--color-primary); color:var(--color-on-primary); border-radius:var(--radius-lg); padding:clamp(28px,5vw,48px);}
.rp-airco p{color:rgba(0,0,0,.72); max-width:52ch;}
.rp-steps{
  list-style:none; padding:0; display:grid; grid-template-columns:1fr; gap:1px;
  background:rgba(0,0,0,.18); border-radius:var(--radius-md); overflow:hidden;
}
@media (min-width:560px){ .rp-steps{grid-template-columns:repeat(2,1fr);} }
.rp-steps li{background:var(--color-primary); padding:20px 18px; display:flex; flex-direction:column; gap:10px;}
.rp-steps b{font-size:16px; font-weight:600; color:var(--color-on-primary);}
.rp-steps p{margin:0; font-size:14px; line-height:1.55; color:rgba(0,0,0,.72);}
.rp-steps .rp-eyebrow{color:rgba(0,0,0,.58);}

/* vijf stappen: onder 720px één kolom, daarboven 3 + 2 waarbij de laatste twee
   samen de volle breedte vullen, zodat er nooit een leeg vakje overblijft */
.rp-steps--five{grid-template-columns:1fr;}
@media (min-width:720px){
  .rp-steps--five{grid-template-columns:repeat(6,1fr);}
  .rp-steps--five li{grid-column:span 2;}
  .rp-steps--five li:nth-child(4),.rp-steps--five li:nth-child(5){grid-column:span 3;}
  .rp-steps--five li{padding:24px 22px;}
}

/* stroomdiagram (dienstenpagina's) */
.rp-flow{list-style:none; padding:0; display:grid; grid-template-columns:repeat(auto-fit,minmax(180px,1fr)); gap:1px; background:var(--color-border); border:var(--border-hairline); border-radius:var(--radius-lg); overflow:hidden;}
.rp-flow li{background:var(--color-canvas); padding:24px 22px; display:flex; flex-direction:column; gap:10px;}
.rp-flow b{font-size:16px; font-weight:700; color:var(--color-text);}
.rp-flow p{margin:0; font-size:14px; line-height:1.55;}

/* ---------- tabel ---------- */
.rp-table{border:var(--border-hairline); border-radius:var(--radius-lg); overflow:hidden;}
.rp-table__row{display:grid; grid-template-columns:1.6fr 1fr; gap:16px; padding:20px clamp(18px,3vw,28px); border-bottom:var(--border-hairline-soft);}
.rp-table__row:last-child{border-bottom:0;}
.rp-table__head{background:var(--color-surface-soft); border-bottom:var(--border-hairline); padding-top:14px; padding-bottom:14px;}
.rp-table__row--total{background:var(--color-surface-soft);}
.rp-table__name{font-size:16px; font-weight:600; color:var(--color-text);}
.rp-table__desc{font-size:14px; line-height:1.6; margin:4px 0 0;}
.rp-table__price{font-size:16px; font-weight:600; color:var(--color-text);}
@media (max-width:599px){
  .rp-table__row{grid-template-columns:1fr; gap:8px;}
}

/* contactrijen */
.rp-rows{display:flex; flex-direction:column;}
.rp-rows__row{display:grid; grid-template-columns:repeat(auto-fit,minmax(170px,1fr)); gap:8px; padding:20px 0; border-top:var(--border-hairline);}
.rp-rows__row:last-child{border-bottom:var(--border-hairline);}

/* ---------- storingskiezer ---------- */
.rp-problems{display:grid; grid-template-columns:repeat(auto-fit,minmax(280px,1fr)); gap:24px;}
.rp-problem-group{background:var(--color-canvas); border:var(--border-hairline); border-radius:var(--radius-lg); padding:24px 24px 8px; display:flex; flex-direction:column;}
.rp-problem-group h3{display:flex; align-items:center; gap:10px; font-size:17px; font-weight:700; color:var(--color-text); padding-bottom:14px;}
.rp-problem-group h3::before{content:""; flex:none; width:22px; height:3px; background:var(--color-primary);}
.rp-problem-group ul{list-style:none; padding:0; display:flex; flex-direction:column;}
.rp-problem{
  display:flex; align-items:center; gap:12px; min-height:46px; padding:11px 2px;
  border-top:var(--border-hairline-soft);
  font-size:15px; line-height:1.4; color:var(--color-text); text-decoration:none;
  transition:color var(--transition-fast), padding-left var(--transition-base);
}
.rp-problem::after{
  content:""; margin-left:auto; flex:none; width:8px; height:8px;
  border-right:2px solid var(--color-muted); border-bottom:2px solid var(--color-muted);
  transform:rotate(-45deg); transition:border-color var(--transition-fast), transform var(--transition-base);
}
.rp-problem:hover{color:var(--color-text); padding-left:8px;}
.rp-problem:hover::after{border-color:var(--color-text); transform:translateX(3px) rotate(-45deg);}
.rp-problem--other{background:var(--color-primary); border-radius:var(--radius-md); padding-left:16px; padding-right:16px; font-weight:600; border-top:0; margin-top:8px;}
.rp-problem--other::after{border-color:var(--color-on-primary);}
.rp-problem--other:hover{background:var(--color-primary-active); padding-left:16px;}

/* ---------- FAQ ---------- */
.rp-faq{display:flex; flex-direction:column;}
.rp-faq details{border-top:var(--border-hairline);}
.rp-faq details:last-of-type{border-bottom:var(--border-hairline);}
.rp-faq summary{
  list-style:none; cursor:pointer; display:flex; align-items:center; gap:16px;
  padding:20px 2px; font-size:17px; line-height:1.4; font-weight:600; color:var(--color-text);
}
.rp-faq summary::-webkit-details-marker{display:none;}
.rp-faq summary::after{
  content:""; margin-left:auto; flex:none; width:9px; height:9px;
  border-right:2px solid var(--color-text); border-bottom:2px solid var(--color-text);
  transform:translateY(-3px) rotate(45deg); transition:transform var(--transition-base);
}
.rp-faq details[open] summary::after{transform:translateY(2px) rotate(-135deg);}
.rp-faq details p{margin:0 0 22px; font-size:15px; line-height:1.65; max-width:66ch;}

/* ---------- cijfermarquee (over ons) ---------- */
.rp-container--bleed{padding-left:0; padding-right:0; max-width:none;}
.rp-marquee{
  position:relative; overflow:hidden; padding:22px 0; background:var(--color-canvas);
  border-top:var(--border-hairline); border-bottom:var(--border-hairline);
  -webkit-mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent);
          mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent);
}
.rp-marquee__track{display:flex; width:max-content; animation:rp-marquee 20s linear infinite;}
.rp-marquee:hover .rp-marquee__track{animation-play-state:paused;}
.rp-marquee__run{display:flex; align-items:center; gap:clamp(20px,3vw,36px); padding-right:clamp(20px,3vw,36px);}
.rp-marquee__item{display:inline-flex; align-items:baseline; gap:10px; white-space:nowrap;}
.rp-marquee__item b{font-family:var(--font-display); font-size:clamp(20px,2.6vw,28px); line-height:1.1; font-weight:700; color:var(--color-text);}
.rp-marquee__item span{font-size:14px; line-height:1.4; color:var(--color-muted);}
.rp-marquee__dot{flex:none; width:7px; height:7px; border-radius:50%; background:var(--color-primary);}
@keyframes rp-marquee{from{transform:translate3d(0,0,0);} to{transform:translate3d(-50%,0,0);}}
@media (prefers-reduced-motion:reduce){ .rp-marquee__track{animation:none;} }

/* ---------- reviews ---------- */
.rp-reviews{display:flex; flex-direction:column; gap:clamp(24px,4vw,36px);}
.rp-reviews__head{display:flex; flex-wrap:wrap; gap:24px; align-items:flex-end; justify-content:space-between;}
.rp-reviews__score{display:flex; align-items:center; gap:10px; font-size:14px; color:var(--color-muted);}
.rp-band-dark .rp-reviews__score{color:var(--color-on-dark-muted);}
.rp-reviews__score b{font-family:var(--font-display); font-size:22px; font-weight:700; color:var(--color-text);}
.rp-band-dark .rp-reviews__score b{color:var(--color-on-dark);}
.rp-stars{display:inline-flex; gap:2px; flex:none;}
.rp-stars svg{display:block; width:16px; height:16px;}
.rp-reviews__nav{display:flex; gap:10px; flex:none;}
.rp-reviews__nav button{
  width:48px; height:48px; display:grid; place-items:center; padding:0;
  background:var(--color-canvas); color:var(--color-text);
  border:var(--border-hairline); border-radius:var(--radius-md); cursor:pointer;
  transition:background var(--transition-fast), border-color var(--transition-fast);
}
.rp-reviews__nav button:hover{background:var(--color-primary); border-color:var(--color-primary);}
.rp-band-dark .rp-reviews__nav button{background:transparent; color:var(--color-on-dark); border-color:var(--color-border-dark);}
.rp-band-dark .rp-reviews__nav button:hover{background:var(--color-primary); color:var(--color-on-primary); border-color:var(--color-primary);}
.rp-reviews__viewport{overflow:hidden;}
.rp-reviews__meter{display:flex; align-items:center; gap:16px; margin-top:-12px;}
.rp-reviews__count{
  flex:none; white-space:nowrap; font-family:var(--font-display); font-size:13px; font-weight:700;
  letter-spacing:.06em; color:var(--color-text); font-variant-numeric:tabular-nums;
}
.rp-band-dark .rp-reviews__count{color:var(--color-on-dark);}
.rp-reviews__count i{font-style:normal; color:var(--color-muted); font-weight:600;}
.rp-band-dark .rp-reviews__count i{color:var(--color-muted-soft);}
.rp-reviews__dots{display:flex; gap:6px; flex-wrap:wrap; padding:0; margin:0; list-style:none;}
.rp-reviews__dots button{
  width:26px; height:14px; padding:0; border:0; background:none; cursor:pointer;
  display:grid; place-items:center;
}
.rp-reviews__dots button::before{
  content:""; display:block; width:100%; height:3px; background:var(--color-border);
  transition:background var(--transition-fast);
}
.rp-band-dark .rp-reviews__dots button::before{background:#3a3a3a;}
.rp-reviews__dots button:hover::before{background:var(--color-muted);}
.rp-reviews__dots button[aria-current="true"]::before,
.rp-band-dark .rp-reviews__dots button[aria-current="true"]::before{background:var(--color-primary);}
@media (max-width:559px){ .rp-reviews__dots button{width:18px;} }
.rp-reviews__track{display:flex; gap:24px; --rp-per:1; will-change:transform;}
.rp-reviews__track[data-animate="true"]{transition:transform 460ms cubic-bezier(.2,0,.2,1);}
.rp-reviews__track > *{flex:0 0 calc((100% - (var(--rp-per) - 1) * 24px) / var(--rp-per));}
@media (min-width:680px){ .rp-reviews__track{--rp-per:2;} }
@media (min-width:1020px){ .rp-reviews__track{--rp-per:3;} }
.rp-review{
  background:var(--color-canvas); border:var(--border-hairline); border-radius:var(--radius-lg);
  padding:28px; display:flex; flex-direction:column; gap:14px; min-height:100%;
}
.rp-band-dark .rp-review{background:var(--color-surface-dark-elevated); border-color:var(--color-border-dark);}
.rp-review__text{margin:0; font-size:15px; line-height:1.65; color:var(--color-body); flex:1 1 auto;}
.rp-band-dark .rp-review__text{color:var(--color-on-dark-muted);}
.rp-review__who{display:flex; align-items:center; gap:12px; padding-top:14px; border-top:var(--border-hairline-soft);}
.rp-band-dark .rp-review__who{border-top-color:var(--color-border-dark);}
.rp-review__avatar{width:38px; height:38px; flex:none; border-radius:50%; object-fit:cover; background:var(--color-surface-card);}
.rp-review__initial{
  width:38px; height:38px; flex:none; border-radius:50%;
  display:inline-flex; align-items:center; justify-content:center;
  background:var(--color-primary); color:var(--color-on-primary);
  font-family:var(--font-display); font-weight:700; font-size:15px; line-height:1;
  letter-spacing:.01em; text-align:center; font-variant-numeric:tabular-nums;
}
.rp-review__who > span{display:flex; flex-direction:column; gap:2px; min-width:0;}
.rp-review__name{display:block; font-size:14px; font-weight:600; color:var(--color-text); line-height:1.3;}
.rp-band-dark .rp-review__name{color:var(--color-on-dark);}
.rp-review__when{display:block; font-size:12.5px; color:var(--color-muted); line-height:1.3; white-space:nowrap; overflow:hidden; text-overflow:ellipsis;}
.rp-band-dark .rp-review__when{color:var(--color-muted-soft);}
.rp-reviews__state{
  margin:0; grid-column:1/-1; flex:1 1 100%;
  background:var(--color-canvas); border:var(--border-hairline); border-radius:var(--radius-lg);
  padding:28px; font-size:15px; line-height:1.6; display:flex; flex-wrap:wrap; gap:16px; align-items:center; justify-content:space-between;
}
.rp-band-dark .rp-reviews__state{background:var(--color-surface-dark-elevated); border-color:var(--color-border-dark);}
.rp-reviews__cta{
  display:flex; flex-wrap:wrap; gap:20px 32px; align-items:center; justify-content:space-between;
  background:var(--color-canvas); border:var(--border-hairline); border-radius:var(--radius-lg); padding:24px 28px;
}
.rp-band-dark .rp-reviews__cta{background:var(--color-surface-dark-elevated); border-color:var(--color-border-dark);}
.rp-reviews__cta > div{display:flex; flex-direction:column; gap:8px; max-width:56ch;}
.rp-reviews__cta b{display:flex; align-items:center; gap:12px; font-size:17px; color:var(--color-text);}
.rp-band-dark .rp-reviews__cta b{color:var(--color-on-dark);}
.rp-reviews__cta b::before{content:""; flex:none; width:22px; height:3px; background:var(--color-primary);}
.rp-reviews__cta span{font-size:14px; line-height:1.55; color:var(--color-muted);}
.rp-band-dark .rp-reviews__cta span{color:var(--color-on-dark-muted);}

/* ---------- kaart ---------- */
.rp-map{width:100%; max-width:none; margin:0; display:flex; flex-direction:column; gap:12px; align-items:stretch;}
.rp-map__card{background:var(--color-surface-soft); border:var(--border-hairline); border-radius:var(--radius-xl); padding:clamp(12px,2vw,20px);}
.rp-map__frame{position:relative; width:100%; aspect-ratio:4/5;}
@media (min-width:560px){ .rp-map__frame{aspect-ratio:1/1;} }
@media (min-width:900px){ .rp-map__frame{aspect-ratio:5/4;} }
.rp-map__canvas{position:absolute; inset:0; overflow:hidden;}
.rp-map__canvas svg{display:block; width:100%; height:100%; outline:none;}
.rp-map__canvas svg:focus,.rp-map__canvas svg:focus-visible{outline:none;}

.map-context__shape{fill:var(--color-surface-card); fill-rule:evenodd; stroke:var(--color-surface-soft); stroke-width:.8; vector-effect:non-scaling-stroke; pointer-events:none;}
.map-area__shape{fill:var(--color-primary); fill-rule:evenodd; stroke:var(--color-surface-soft); stroke-width:.8; vector-effect:non-scaling-stroke; opacity:.62; transition:opacity var(--transition-base);}
.map-area__shape.is-active{opacity:.95;}
.map-area__outline{fill:none; stroke:var(--color-text); stroke-width:1; stroke-linejoin:round; vector-effect:non-scaling-stroke; pointer-events:none;}
.map-inset{pointer-events:none;}
.map-inset__plate{fill:var(--color-canvas); stroke:var(--color-border);}
.map-inset__land{fill:var(--color-surface-card); fill-rule:evenodd; stroke:none;}
.map-inset__area{fill:var(--color-primary); fill-rule:evenodd; stroke:none;}
.map-inset__pin{fill:var(--color-text);}
.map-inset__label{font-family:var(--font-sans); font-size:8.5px; font-weight:600; letter-spacing:.08em; text-transform:uppercase; fill:var(--color-muted);}

.map-marker{cursor:pointer; transition:opacity var(--transition-base); -webkit-tap-highlight-color:transparent;}
.map-marker__hit{fill:transparent;}
.map-marker__dot{fill:var(--color-text); stroke:var(--color-surface-soft); stroke-width:1.2; transition:r var(--transition-fast), fill var(--transition-fast);}
.map-marker--primary .map-marker__dot{fill:var(--color-primary); stroke:var(--color-text); stroke-width:2;}
.map-marker__pulse{fill:none; stroke:var(--color-text); stroke-width:1.2; pointer-events:none;}
.map-marker__glow{pointer-events:none;}
.map-marker__label{font-family:var(--font-sans); font-size:9.5px; fill:var(--color-muted); paint-order:stroke; stroke:var(--color-surface-soft); stroke-width:3px; stroke-linejoin:round; pointer-events:none; transition:fill var(--transition-fast);}
.map-marker--primary .map-marker__label{font-size:12.5px; font-weight:700; fill:var(--color-text);}
.map-marker.is-dimmed{opacity:.45;}
.map-marker.is-active .map-marker__dot{fill:var(--color-primary); stroke:var(--color-text); stroke-width:2; r:6.5;}
.map-marker--primary.is-active .map-marker__dot{r:9.5;}
.map-marker.is-active .map-marker__label{fill:var(--color-text); font-weight:700;}
.map-marker.is-selected .map-marker__dot{stroke-width:2.4;}
/* geen zwart focuskader op de kaart — alleen een gele ring bij toetsenbordnavigatie */
.map-marker,.map-marker:focus,.map-marker:active{outline:none !important;}
.map-marker:focus .map-marker__dot{stroke:var(--color-text);}
.map-marker:focus-visible .map-marker__dot{stroke:var(--color-primary); stroke-width:3;}

.rp-map__tooltip{
  position:absolute; left:0; top:0; z-index:2; pointer-events:none;
  min-width:132px; max-width:min(190px,58%);
  background:var(--color-canvas); border:var(--border-hairline); border-radius:var(--radius-md);
  padding:10px 14px; box-shadow:0 2px 8px rgba(0,0,0,.06);
  opacity:0; transition:opacity var(--transition-fast);
}
.rp-map__tooltip[data-open="true"]{opacity:1;}
.rp-map__tooltip b{display:block; font-size:14px; color:var(--color-text);}
.rp-map__tooltip span{display:block; font-size:12.5px; color:var(--color-muted); margin-top:2px;}
.rp-map__legend{display:flex; flex-wrap:wrap; gap:14px; align-items:center; margin:0;}
.rp-map__legend span{display:inline-flex; align-items:center; gap:7px; font-size:13px; color:var(--color-muted);}
.rp-map__legend i{width:10px; height:10px; border-radius:50%; background:var(--color-primary); border:1.5px solid var(--color-text);}
.rp-map__legend i.sec{width:7px; height:7px; background:var(--color-text); border:0;}
.rp-map__legend i.area{width:14px; height:10px; border-radius:2px; background:var(--color-primary); opacity:.62; border:1px solid var(--color-border);}

.rp-chips[data-location-pills] li{background:none; padding:0; border-radius:0;}
.rp-pill{
  font-family:var(--font-sans); font-size:14px; font-weight:500; color:var(--color-text);
  background:var(--color-surface-card); border:1px solid transparent; border-radius:var(--radius-pill);
  padding:0 16px; min-height:40px; display:inline-flex; align-items:center; gap:7px; cursor:pointer;
  transition:background var(--transition-fast), border-color var(--transition-fast), color var(--transition-fast);
}
.rp-pill:hover{background:var(--color-surface-strong);}
.rp-pill.is-active{background:var(--color-surface-strong); border-color:var(--color-border);}
.rp-pill[aria-pressed="true"]{background:var(--color-primary); border-color:var(--color-text); font-weight:600;}
.rp-pill[aria-pressed="true"]::before{content:""; flex:none; width:7px; height:7px; border-radius:50%; background:var(--color-on-primary);}
.rp-pill--primary{font-weight:600;}

/* ---------- cta-band ---------- */
.rp-cta{display:grid; grid-template-columns:1fr; gap:28px; justify-items:center; text-align:center;}
.rp-cta .rp-stack{align-items:center;}
.rp-cta .rp-lead{margin-inline:auto;}
.rp-cta .rp-row{justify-content:center;}
@media (min-width:920px){
  .rp-cta{grid-template-columns:minmax(0,1fr) auto; align-items:center; justify-items:start; text-align:left; gap:48px;}
  .rp-cta .rp-stack{align-items:flex-start;}
  .rp-cta .rp-lead{margin-inline:0;}
  .rp-cta .rp-row{justify-content:flex-start;}
}

/* ---------- footer ---------- */
.rp-footer{background:var(--color-surface-dark); color:var(--color-on-dark-muted);}
.rp-footer__grid{max-width:var(--container-max); margin:0 auto; padding:64px var(--pad) 32px; display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:32px;}
.rp-footer h2{font-size:12px; letter-spacing:.08em; text-transform:uppercase; font-weight:600; color:var(--color-on-dark);}
.rp-footer p,.rp-footer span,.rp-footer li{font-size:14px; line-height:1.6;}
.rp-footer a{color:var(--color-on-dark-muted); text-decoration:none; transition:color var(--transition-fast);}
.rp-footer a:hover{color:var(--color-primary);}
.rp-footer__col{display:flex; flex-direction:column; gap:12px; align-items:flex-start;}
.rp-footer__logo{display:block; width:148px; height:auto; max-width:100%; border-radius:var(--radius-xs); align-self:flex-start;}
.rp-footer__phone{font-size:14px; font-weight:600; color:var(--color-on-dark) !important;}
.rp-footer__bottom{max-width:var(--container-max); margin:0 auto; padding:0 var(--pad) 48px;}
.rp-footer__bottom-inner{padding-top:24px; border-top:var(--border-hairline-dark); display:flex; flex-wrap:wrap; gap:8px 16px; justify-content:space-between; align-items:center; font-size:13px;}
.rp-footer__credit{display:inline-flex; align-items:center; gap:8px; color:var(--color-muted-soft);}
.rp-footer__credit a{color:var(--color-on-dark) !important; text-decoration:none; font-weight:600; border-bottom:2px solid var(--color-primary); padding-bottom:1px;}
.rp-footer__credit a:hover{color:var(--color-primary) !important;}

.rp-skip{position:absolute; left:-9999px;}
.rp-skip:focus{left:16px; top:16px; z-index:40; background:var(--color-primary); color:var(--color-on-primary); padding:12px 16px; border-radius:var(--radius-md);}

/* ---------- beweging ---------- */
@keyframes rp-fade{from{opacity:0; transform:translateY(10px);}to{opacity:1; transform:none;}}
@keyframes rp-pulse-dot{
  0%{box-shadow:0 0 0 0 rgba(237,216,27,.9);}
  70%{box-shadow:0 0 0 9px rgba(237,216,27,0);}
  100%{box-shadow:0 0 0 0 rgba(237,216,27,0);}
}
@keyframes rp-grow{from{transform:scaleX(0);}to{transform:scaleX(1);}}

.rp-js [data-reveal]{opacity:0; transform:translateY(10px); transition:opacity 260ms cubic-bezier(.2,0,.2,1), transform 260ms cubic-bezier(.2,0,.2,1);}
.rp-js [data-reveal].is-in{opacity:1; transform:none;}
.rp-js [data-reveal]:nth-child(2){transition-delay:40ms;}
.rp-js [data-reveal]:nth-child(3){transition-delay:80ms;}
.rp-js [data-reveal]:nth-child(4){transition-delay:120ms;}

.rp-rule{transform-origin:left;}
.is-in > .rp-rule,.is-in .rp-rule{animation:rp-grow 300ms cubic-bezier(.2,0,.2,1) both;}

.rp-list li{position:relative; padding-left:28px;}
.rp-list li::before{
  content:""; position:absolute; left:2px; top:calc(16px + .5em);
  width:9px; height:9px; border-radius:50%; background:var(--color-primary); border:1px solid var(--color-text);
}
.rp-list li.is-in::before{animation:rp-pulse-dot 2.6s cubic-bezier(.2,0,.2,1) infinite;}
.rp-list li:nth-child(2).is-in::before{animation-delay:.5s;}
.rp-list li:nth-child(3).is-in::before{animation-delay:1s;}
.rp-list li:nth-child(4).is-in::before{animation-delay:1.5s;}
.rp-list li:nth-child(5).is-in::before{animation-delay:2s;}

.rp-steps li b{position:relative; display:inline-flex; align-items:center; gap:8px;}
.rp-steps li b::before{content:""; flex:none; width:7px; height:7px; border-radius:50%; background:var(--color-on-primary);}
.rp-steps li.is-in b::before{animation:rp-pulse-dot 2.6s cubic-bezier(.2,0,.2,1) infinite;}
.rp-steps li:nth-child(2).is-in b::before{animation-delay:.5s;}
.rp-steps li:nth-child(3).is-in b::before{animation-delay:1s;}
.rp-steps li:nth-child(4).is-in b::before{animation-delay:1.5s;}
.rp-steps li:nth-child(5).is-in b::before{animation-delay:2s;}

.rp-card{transition:background var(--transition-base), border-color var(--transition-base);}
.rp-card:hover{background:var(--color-surface-strong);}
.rp-card--dark:hover{background:var(--rp-n-900);}
.rp-card--outline:hover{background:var(--color-surface-soft);}
.rp-table__row{transition:background var(--transition-fast);}
.rp-table__row:not(.rp-table__head):hover{background:var(--color-surface-soft);}

/* dienstenkaart op de homepage */
.rp-service{
  display:flex; flex-direction:column; gap:12px; padding:32px;
  background:var(--color-canvas); border:var(--border-hairline); border-radius:var(--radius-lg);
  text-decoration:none; color:var(--color-body);
  transition:background var(--transition-base), border-color var(--transition-base);
}
.rp-service:hover{background:var(--color-surface-soft); border-color:var(--color-text); color:var(--color-body);}
.rp-service h3{font-size:19px; font-weight:700; color:var(--color-text);}
.rp-service p{margin:0; font-size:14px; line-height:1.6;}
.rp-service__more{
  margin-top:auto; padding-top:6px; display:inline-flex; align-items:center; gap:9px;
  font-size:14px; font-weight:600; color:var(--color-text);
}
.rp-service__more::after{
  content:""; width:8px; height:8px; border-right:2px solid var(--color-text); border-bottom:2px solid var(--color-text);
  transform:rotate(-45deg); transition:transform var(--transition-base);
}
.rp-service:hover .rp-service__more::after{transform:translateX(4px) rotate(-45deg);}

@media (prefers-reduced-motion:reduce){
  .rp-js [data-reveal]{opacity:1; transform:none; transition:none;}
  .is-in > .rp-rule,.is-in .rp-rule,.rp-list li.is-in::before,.rp-steps li.is-in b::before{animation:none !important;}
  .rp-reviews__track{transition:none !important;}
}

/* ---------- aankondiging airco ---------- */
.rp-ann{position:fixed; inset:0; z-index:100; display:grid; place-items:center; padding:max(16px,env(safe-area-inset-top)) 16px max(16px,env(safe-area-inset-bottom));}
.rp-ann__backdrop{position:absolute; inset:0; background:rgba(0,0,0,.5); opacity:0; transition:opacity var(--transition-base);}
.rp-ann[data-open="true"] .rp-ann__backdrop{opacity:1;}
.rp-ann__dialog{
  position:relative; z-index:1; width:100%; max-width:440px;
  background:var(--color-canvas); border:var(--border-hairline); border-radius:var(--radius-xl);
  box-shadow:0 2px 8px rgba(0,0,0,.06); overflow:hidden;
  opacity:0; transform:translateY(10px);
  transition:opacity var(--transition-base), transform var(--transition-base);
}
.rp-ann[data-open="true"] .rp-ann__dialog{opacity:1; transform:none;}
.rp-ann__close{
  position:absolute; top:10px; right:10px; z-index:2;
  width:36px; height:36px; display:grid; place-items:center; padding:0;
  background:var(--color-canvas); color:var(--color-text); border:var(--border-hairline);
  border-radius:var(--radius-sm); cursor:pointer;
  transition:background var(--transition-fast);
}
.rp-ann__close:hover{background:var(--color-primary);}
.rp-ann__media{width:100%; height:168px; object-fit:cover; object-position:50% 34%;}
.rp-ann__body{padding:24px; display:flex; flex-direction:column; gap:12px;}
.rp-ann__body .rp-h2{font-size:23px; line-height:1.18; max-width:20ch;}
.rp-ann__body .rp-p{font-size:15px; line-height:1.55; max-width:42ch;}
.rp-ann__body .rp-row{margin-top:2px;}
.rp-ann__body .rp-btn{height:44px;}
@media (max-width:479px){
  .rp-ann__media{height:132px;}
  .rp-ann__body{padding:20px;}
  .rp-ann__body .rp-h2{font-size:21px;}
  .rp-ann__body .rp-btn{width:100%;}
}
@media (max-height:600px){
  .rp-ann__media{height:110px;}
  .rp-ann__body{padding:18px; gap:10px;}
  .rp-ann__body .rp-h2{font-size:20px;}
}
@media (prefers-reduced-motion:reduce){
  .rp-ann__backdrop,.rp-ann__dialog{transition:opacity 120ms linear;}
  .rp-ann__dialog{transform:none !important;}
}
