/* RL-ONTWERP-20261004 — homepage randstadloodgieters.nl. Variabelen/lettertypes in mobile.css (ontwerplaag). */
.rl{--n:#0f1b3d;--n2:#18285a;--y:#ffcf33;--b:#2d6cdf;--li:#f4f6fb;--m:#5a6478;--l:#e1e5ef;--e:cubic-bezier(.2,.8,.2,1);color:#101a33}
.rl .wrap{max-width:1200px;margin:0 auto;padding:0 22px}
.rl h1,.rl h2,.rl h3{margin:0;color:var(--n)}
.rl p{margin:0}
.rl-label{display:inline-flex;align-items:center;gap:10px;font-size:12.5px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--b);margin-bottom:14px!important}
.rl-mono{font-family:'Space Grotesk',monospace;font-size:11px;letter-spacing:.14em;text-transform:uppercase}
.rl-live{width:9px;height:9px;border-radius:50%;background:#22c55e;box-shadow:0 0 0 0 rgba(34,197,94,.55);animation:rl-p 2s infinite}
@keyframes rl-p{70%{box-shadow:0 0 0 9px rgba(34,197,94,0)}100%{box-shadow:0 0 0 0 rgba(34,197,94,0)}}
.rl-knop{display:inline-flex;align-items:center;justify-content:center;padding:16px 26px;border-radius:12px;background:var(--n);color:#fff!important;font-weight:700;text-decoration:none;border:2px solid var(--n);transition:transform .25s var(--e),background .25s,color .25s,border-color .25s;cursor:pointer;font-size:16px}
.rl-knop:hover{transform:translateY(-2px);background:var(--b);border-color:var(--b)}
.rl-knop.is-geel{background:var(--y);border-color:var(--y);color:var(--n)!important}
.rl-knop.is-geel:hover{background:#fff;border-color:#fff}
.rl-knop.is-lijn{background:transparent;color:#fff!important;border-color:rgba(255,255,255,.4)}
.rl-knop.is-lijn:hover{border-color:var(--y);color:var(--y)!important;background:transparent}
.rl-licht .rl-knop.is-lijn{color:var(--n)!important;border-color:var(--n)}

/* opening */
.rl-hero{background:var(--n);color:#c9d2ea;padding:clamp(48px,7vw,96px) 0 0;position:relative;overflow:hidden}
.rl-hero::before{content:"";position:absolute;inset:0;background:radial-gradient(800px 400px at 85% -10%,rgba(45,108,223,.4),transparent 60%),radial-gradient(500px 300px at 0 100%,rgba(255,207,51,.12),transparent 60%);pointer-events:none}
.rl-hero .wrap{position:relative}
.rl-hero .rl-label{color:#b7f5cf}
.rl-hero h1{color:#fff;font-size:clamp(2.7rem,6.6vw,5.8rem);line-height:.95;letter-spacing:-.04em;max-width:1050px}
.rl-geel{color:var(--y)}
.rl-sub{display:inline-block;margin-top:.15em;font-size:.48em;font-weight:500;color:#aeb9d8;letter-spacing:-.02em}
.rl-hero-onder{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:24px;margin-top:30px}
.rl-lead{max-width:560px;font-size:clamp(17px,1.5vw,19px);line-height:1.6}
.rl-knoppen{display:flex;flex-wrap:wrap;gap:12px}

/* de lijn */
.rl-lijn{margin-top:clamp(40px,6vw,72px);background:var(--n2);border-top:1px solid rgba(255,255,255,.06);padding:46px 0 26px}
.rl-spoor{position:relative;height:120px}
.rl-rails{position:absolute;left:0;right:0;top:34px;height:8px;border-radius:8px;background:var(--y);box-shadow:0 0 30px rgba(255,207,51,.35)}
.rl-tak{position:absolute;left:44%;top:38px;width:8%;height:64px;border-right:8px solid var(--y);border-bottom:8px solid var(--y);border-bottom-right-radius:28px;opacity:.85}
.rl-bus{position:absolute;top:26px;left:0;width:34px;height:24px;border-radius:7px;background:#fff;box-shadow:0 6px 18px rgba(0,0,0,.4);animation:rl-rijd 14s cubic-bezier(.6,0,.4,1) infinite;z-index:3}
.rl-bus i{position:absolute;left:5px;right:5px;top:5px;height:8px;border-radius:3px;background:var(--b)}
.rl-bus::after{content:"";position:absolute;right:-5px;top:9px;width:5px;height:6px;border-radius:0 3px 3px 0;background:var(--y)}
@keyframes rl-rijd{0%{left:3%}16%,20%{left:25%}34%,38%{left:42%}50%,54%{left:58%}66%,70%{left:73%}86%,92%{left:92%}100%{left:3%}}
.rl-station{position:absolute;top:22px;transform:translateX(-50%);display:flex;flex-direction:column;align-items:center;gap:12px;text-decoration:none;z-index:2;outline:0}
.rl-station i{width:30px;height:30px;border-radius:50%;background:var(--n);border:6px solid #fff;transition:transform .25s var(--e),border-color .2s}
.rl-station span{font-family:'Space Grotesk',sans-serif;font-weight:700;color:#fff;font-size:15px;white-space:nowrap;padding:4px 10px;border-radius:8px;transition:background .2s,color .2s}
.rl-station:hover i,.rl-station:focus-visible i,.rl-station.is-aan i{transform:scale(1.25);border-color:var(--y)}
.rl-station:hover span,.rl-station:focus-visible span,.rl-station.is-aan span{background:var(--y);color:var(--n)}
.rl-station.is-basis i{border-color:var(--y);background:var(--y)}
.rl-station.is-tak{top:86px}
.rl-station.is-tak span{position:absolute;left:44px;top:2px}
.rl-bord{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px 16px;margin-top:40px;padding:16px 20px;border-radius:12px;background:#0a1430;color:#c9d2ea;border:1px solid rgba(255,255,255,.08)}
.rl-bord .rl-mono{color:var(--y)}
.rl-bord b{font-family:'Space Grotesk',sans-serif;color:#fff;font-size:22px}
.rl-bord a{margin-left:auto;color:var(--y);font-weight:700;text-decoration:none}
.rl-bord.is-wissel b,.rl-bord.is-wissel span{animation:rl-wissel .4s var(--e)}
@keyframes rl-wissel{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}

/* secties */
.rl-sec{padding:clamp(64px,9vw,112px) 0}
.rl-licht{background:var(--li)}
.rl-nacht{background:var(--n);color:#c9d2ea}
.rl-nacht h2,.rl-nacht h3{color:#fff}
.rl-nacht .rl-label{color:var(--y)}
.rl-kop{max-width:760px;margin-bottom:40px}
.rl-kop h2,.rl-twee h2{font-size:clamp(2.1rem,4.6vw,3.6rem);line-height:1;letter-spacing:-.035em}
.rl-meer{margin-top:28px!important;font-weight:700}
.rl-meer a{color:var(--n);text-decoration:underline;text-decoration-color:var(--y);text-decoration-thickness:3px;text-underline-offset:4px}
.rl-smal{max-width:880px}
.rl-twee{display:grid;grid-template-columns:.9fr 1.1fr;gap:clamp(30px,5vw,70px);align-items:center}
.rl-twee p:not(.rl-label){margin-top:14px!important;font-size:18px}

/* diensten */
.rl-diensten{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.rl-dienst{position:relative;display:flex;flex-direction:column;padding:0 0 22px;border-radius:16px;border:1px solid var(--l);background:#fff;text-decoration:none;color:#101a33;overflow:hidden;transition:transform .35s var(--e),box-shadow .35s var(--e)}
.rl-foto{display:block;aspect-ratio:4/3;overflow:hidden;background:var(--n)}
.rl-foto img{width:100%;height:100%;object-fit:cover;transition:transform .8s var(--e)}
.rl-dienst:hover{transform:translateY(-6px);box-shadow:0 26px 50px -28px rgba(15,27,61,.6)}
.rl-dienst:hover img{transform:scale(1.07)}
.rl-nr{position:absolute;top:12px;left:12px;font-family:'Space Grotesk',sans-serif;font-weight:700;font-size:13px;background:var(--y);color:var(--n);padding:4px 9px;border-radius:7px}
.rl-dienst h3{font-size:22px;margin:18px 20px 6px}
.rl-dienst p{margin:0 20px!important;color:var(--m);font-size:15px;line-height:1.5}
.rl-pijl{position:absolute;right:16px;bottom:16px;width:36px;height:36px;border-radius:10px;display:grid;place-items:center;background:var(--li);color:var(--n);font-weight:700;transition:background .25s,color .25s,transform .35s var(--e)}
.rl-dienst:hover .rl-pijl{background:var(--n);color:var(--y);transform:translateX(3px)}

/* cijfers */
.rl-cijfers{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}
.rl-cijfers div{border-top:3px solid var(--y);padding-top:18px}
.rl-cijfers b{display:block;font-family:'Space Grotesk',sans-serif;font-size:clamp(2.2rem,4vw,3.4rem);color:#fff;letter-spacing:-.04em;line-height:1}
.rl-cijfers span{display:block;margin-top:8px;font-size:15px}

/* mozaïek */
.rl-mozaiek{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}
.rl-mozaiek figure{position:relative;margin:0;aspect-ratio:1/1;border-radius:14px;overflow:hidden;background:var(--n)}
.rl-mozaiek figure:nth-child(1),.rl-mozaiek figure:nth-child(6){grid-column:span 2;aspect-ratio:2/1}
.rl-mozaiek img{width:100%;height:100%;object-fit:cover;transition:transform .8s var(--e)}
.rl-mozaiek figure:hover img{transform:scale(1.06)}
.rl-mozaiek figcaption{position:absolute;left:10px;bottom:10px;right:10px;padding:8px 12px;border-radius:10px;background:rgba(15,27,61,.85);color:#fff;font-size:13.5px;font-weight:600}

/* reviews */
.rl-reviews{display:grid;grid-template-columns:.8fr repeat(3,1fr);gap:16px}
.rl-score{font-family:'Space Grotesk',sans-serif;font-size:clamp(4.5rem,9vw,7rem);font-weight:700;line-height:.85;color:var(--n);letter-spacing:-.05em}
.rl-sterren{color:#f2a33a;font-size:20px;margin-top:8px!important}
.rl-klein{font-size:14px;color:var(--m);margin:12px 0 18px!important}
.rl-rev{margin:0;background:#fff;border-radius:16px;padding:24px;display:flex;flex-direction:column;justify-content:space-between;gap:16px;border:1px solid var(--l);border-top:4px solid var(--y)}
.rl-rev blockquote{margin:0;font-size:17px;line-height:1.55}
.rl-rev figcaption b{display:block;color:var(--n)}
.rl-rev figcaption span{font-size:13px;color:var(--m)}

/* vragen */
.rl-vraag{border-bottom:1px solid var(--l)}
.rl-vraag summary{cursor:pointer;list-style:none;display:flex;justify-content:space-between;gap:16px;padding:20px 0;font-family:'Space Grotesk',sans-serif;font-size:21px;font-weight:700;color:var(--n)}
.rl-vraag summary::-webkit-details-marker{display:none}
.rl-vraag summary::after{content:"+";width:30px;height:30px;flex:0 0 30px;border-radius:8px;background:var(--y);color:var(--n);display:grid;place-items:center;font-size:20px;transition:transform .3s var(--e)}
.rl-vraag[open] summary::after{transform:rotate(45deg)}
.rl-vraag p{padding:0 0 20px;color:var(--m);line-height:1.65}
.rl-vraag a{color:var(--b);text-decoration:underline}

/* formulier */
.rl-tel{display:inline-block;margin-top:22px;font-family:'Space Grotesk',sans-serif;font-size:clamp(2.2rem,4vw,3.2rem);font-weight:700;color:var(--y)!important;text-decoration:none;letter-spacing:-.03em}
.rl-form{display:grid;grid-template-columns:1fr 1fr;gap:14px;background:#fff;color:var(--n);padding:clamp(22px,3vw,32px);border-radius:18px}
.rl-form label{font-size:13px;font-weight:700}
.rl-form small{font-weight:500;color:var(--m)}
.rl-form input,.rl-form textarea,.rl-form select{display:block;width:100%;margin-top:6px;padding:13px 14px;border:1.5px solid var(--l);border-radius:10px;background:var(--li);font:inherit;font-size:16px;font-weight:400;color:#101a33}
.rl-form input:focus,.rl-form textarea:focus,.rl-form select:focus{outline:0;border-color:var(--b);background:#fff}
.rl-breed{grid-column:1/-1}
.rl-form .rl-knop{grid-column:1/-1}
.rl-proef{grid-column:1/-1;background:#fff8dc;border:1px dashed #d4a800;color:#7a5d00;padding:9px 12px;border-radius:10px;font-size:13px}

.rl-js .rl-op{opacity:0;transform:translateY(22px);transition:opacity .8s var(--e),transform .8s var(--e)}
.rl-js .rl-op.is-zichtbaar{opacity:1;transform:none}
.rl-v1{transition-delay:.08s!important}.rl-v2{transition-delay:.16s!important}.rl-v3{transition-delay:.24s!important}

@media(max-width:1000px){.rl-twee{grid-template-columns:1fr}.rl-diensten,.rl-cijfers{grid-template-columns:1fr 1fr}.rl-reviews{grid-template-columns:1fr 1fr}.rl-reviews>div:first-child{grid-column:1/-1}}
@media(max-width:760px){
  /* lijn verticaal op mobiel */
  .rl-spoor{height:auto;display:flex;flex-direction:column;gap:6px;padding-left:34px}
  .rl-rails{left:11px;right:auto;top:0;bottom:0;width:8px;height:auto}
  .rl-tak,.rl-bus{display:none}
  .rl-station{position:relative;left:auto!important;top:auto;transform:none;flex-direction:row;gap:14px;margin-left:-34px}
  .rl-station i{width:30px;height:30px;flex:0 0 30px}
  .rl-station.is-tak{top:auto;margin-left:-10px}
  .rl-station.is-tak span{position:static}
  .rl-bord{margin-top:20px}
}
@media(max-width:600px){.rl-diensten,.rl-form,.rl-reviews{grid-template-columns:1fr}.rl-mozaiek{grid-template-columns:1fr 1fr}.rl-knoppen .rl-knop{flex:1 1 100%}}
@media(prefers-reduced-motion:reduce){.rl *,.rl *::before,.rl *::after{animation:none!important;transition:none!important}.rl-js .rl-op{opacity:1!important;transform:none!important}}
/* correcties na browsertest */
@media(min-width:761px){.rl-station.is-tak span{left:auto;right:44px}}
.rl-dienst p{margin-right:62px!important}
@keyframes rl-rijd{0%{left:3%}16%,20%{left:25%}34%,38%{left:42%}50%,54%{left:58%}66%,70%{left:73%}84%,92%{left:89%}100%{left:3%}}
@media(min-width:761px){.rl-spoor{height:150px}.rl-tak{height:84px}.rl-station.is-tak{top:106px}}
/* A11Y-CONTRAST-20261004 — kleine tekst donkerder voor leesbaarheid (WCAG AA) */
.rl-label{color:#2a59c0!important}.rl-dienst p,.rl-klein,figcaption span{color:#566074!important}.rl-dienst .rl-nr{color:#3d4560!important}
