/* ==========================================================
   Roomcility hoe het werkt
   Stappen met schermafbeeldingen die meelopen met het scrollen.
   Op desktop staat het scherm vast naast de stappen, op mobiel
   staat elke afbeelding onder de eigen stap.
   ========================================================== */

.rc-hw {
	--rc-hw-bg: var(--rc-bg);
	--rc-hw-bg-2: #fff;
	background: var(--rc-hw-bg);
	color: var(--rc-ink);
}
.rc-hw__wrap { max-width: 1240px; margin: 0 auto; padding: 0 32px; box-sizing: border-box; }
.rc-hw__hand { margin: 0 0 8px; font-size: 30px; color: var(--rc-ink-2); transform: rotate(-4deg); }
.rc-hw__title { margin: 0; font-size: clamp(30px, 3.2vw, 44px); line-height: 1.1; font-weight: 800; letter-spacing: -.03em; color: var(--rc-ink); text-wrap: balance; }
.rc-hw__lead { margin: 20px 0 0; max-width: 52ch; font-size: 17px; line-height: 1.65; color: var(--rc-ink-2); }
.rc-hw__top { max-width: 640px; margin-bottom: 44px; }
.rc-hw section { scroll-margin-top: 90px; }

/* Schermafbeelding met pencirkel */
.rc-hw__shot { position: relative; display: block; border-radius: 14px; box-shadow: 0 30px 70px rgba(27, 62, 156, .18), 0 2px 6px rgba(28, 36, 64, .08); }
.rc-hw__shot img { display: block; width: 100%; height: auto; border-radius: 14px; }
.rc-hw__hl { position: absolute; pointer-events: none; }
.rc-hw__hl .rc-pen { position: absolute; inset: 0; width: 100%; height: 100%; --rc-pen-width: 2.6; --rc-pen-speed: .9s; --rc-pen-delay: .35s; }

/* ── Intro ── */
.rc-hw__intro { padding: 120px 0 40px; text-align: center; }
.rc-hw__intro .rc-hw__hand { font-size: 32px; }
.rc-hw__h1 { max-width: 16ch; margin: 0 auto; font-size: clamp(40px, 4.6vw, 64px); line-height: 1.03; font-weight: 800; letter-spacing: -.035em; color: var(--rc-ink); text-wrap: balance; }
.rc-hw__intro .rc-hw__lead { margin: 22px auto 0; font-size: 17.5px; }
.rc-hw__jump { display: flex; justify-content: center; flex-wrap: wrap; gap: 8px; margin-top: 34px; }
.rc-hw__jump a { display: inline-flex; align-items: center; gap: 9px; height: 42px; padding: 0 16px 0 6px; border-radius: 999px; background: #fff; box-shadow: var(--rc-shadow); font-size: 14px; font-weight: 600; color: var(--rc-ink); text-decoration: none; transition: transform .2s var(--rc-ease); }
.rc-hw__jump a:hover { color: var(--rc-ink); transform: translateY(-2px); }
.rc-hw__jump b { display: grid; place-items: center; width: 30px; height: 30px; border-radius: 50%; background: var(--rc-accent-soft); font-family: var(--rc-hand); font-size: 19px; color: var(--rc-pen); }

/* ── Plannen in stappen ── */
.rc-hw__plan { padding: 80px 0 60px; }
.rc-hw__plan .rc-hw__top { margin-bottom: 30px; }
.rc-hw__story { display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); gap: 56px; }
.rc-hw__steps { padding-bottom: 20vh; }
.rc-hw__step { display: flex; flex-direction: column; justify-content: center; min-height: 72vh; opacity: .35; transition: opacity .4s; }
.rc-hw__step.is-on { opacity: 1; }
.rc-hw__n { display: inline-grid; place-items: center; width: 44px; height: 44px; margin-bottom: 16px; border: 2px solid var(--rc-accent); border-radius: 50%; background: #fff; box-sizing: border-box; font-family: var(--rc-hand); font-size: 26px; font-weight: 600; color: var(--rc-pen); transition: background .3s, color .3s; }
.rc-hw__step.is-on .rc-hw__n { background: var(--rc-accent); color: #fff; }
.rc-hw__step h3 { margin: 0; font-size: 26px; letter-spacing: -.02em; color: var(--rc-ink); }
.rc-hw__step p { max-width: 44ch; margin: 12px 0 0; font-size: 16.5px; line-height: 1.65; color: var(--rc-ink-2); }
.rc-hw__inline { display: none; }

.rc-hw__stage { position: sticky; top: calc(50vh - 230px); display: grid; place-items: center; height: 460px; }
.rc-hw__screens { position: relative; width: 100%; max-width: 620px; height: 100%; }
.rc-hw__screen { position: absolute; inset: 0; display: flex; flex-direction: column; justify-content: center; margin: 0; opacity: 0; transform: translateY(16px) scale(.98); transition: opacity .45s, transform .6s var(--rc-ease); }
.rc-hw__screen.is-on { opacity: 1; transform: none; }
.rc-hw__dots { position: absolute; left: 0; right: 0; bottom: -46px; display: flex; justify-content: center; gap: 8px; }
.rc-hw__dots i { width: 8px; height: 8px; border-radius: 50%; background: #C9D6EA; transition: background .3s, width .3s; }
.rc-hw__dots i.is-on { width: 22px; border-radius: 999px; background: var(--rc-accent); }

/* ── Gasten ── */
.rc-hw__gast { padding: 110px 0; background: var(--rc-hw-bg-2); }
.rc-hw__split { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 64px; align-items: end; margin-bottom: 56px; }
.rc-hw__split .rc-hw__lead { margin: 0; }
.rc-hw__road { position: relative; display: grid; grid-auto-flow: column; grid-auto-columns: 1fr; gap: 18px; margin: 0; padding: 0; list-style: none; }
.rc-hw__road::before { content: ""; position: absolute; left: 8%; right: 8%; top: 36px; border-top: 2px dashed #C9D6EA; }
.rc-hw__road li { position: relative; padding: 0 8px; text-align: center; }
.rc-hw__ic { position: relative; z-index: 1; display: grid; place-items: center; width: 72px; height: 72px; margin: 0 auto 18px; border: 2px solid var(--rc-accent); border-radius: 50%; background: #fff; box-sizing: border-box; font-size: 30px; color: var(--rc-accent); }
.rc-hw__road li.is-mark .rc-hw__ic { background: var(--rc-accent); color: #fff; box-shadow: 0 0 0 8px var(--rc-accent-soft); }
.rc-hw__road b { display: block; font-size: 17px; letter-spacing: -.01em; }
.rc-hw__road p { margin: 8px 0 0; font-size: 14.5px; line-height: 1.55; color: var(--rc-ink-2); }
.rc-hw__road small { display: inline-block; margin-top: 12px; font-family: var(--rc-hand); font-size: 21px; font-weight: 600; color: var(--rc-pen); transform: rotate(-3deg); }
.rc-hw__esc { display: flex; align-items: center; gap: 18px; max-width: 820px; margin: 56px auto 0; padding: 20px 24px; border-radius: 20px; background: var(--rc-bg-2); }
.rc-hw__esc .rc-ic { flex-shrink: 0; --rc-ic-size: 46px; }
.rc-hw__esc b { display: block; font-size: 16px; }
.rc-hw__esc > span > span { font-size: 14.5px; line-height: 1.55; color: var(--rc-ink-2); }

/* ── Wijzigen ── */
.rc-hw__wz { padding: 110px 0; }
.rc-hw__two { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 64px; align-items: center; }
.rc-hw__mini { display: flex; flex-direction: column; gap: 12px; margin: 26px 0 0; padding: 0; list-style: none; }
.rc-hw__mini li { display: flex; align-items: center; gap: 14px; font-size: 16px; font-weight: 600; }
.rc-hw__mini i { display: grid; place-items: center; flex-shrink: 0; width: 34px; height: 34px; border: 2px solid var(--rc-accent); border-radius: 50%; background: #fff; box-sizing: border-box; font-family: var(--rc-hand); font-size: 20px; font-style: normal; color: var(--rc-pen); }
.rc-hw__wshot { margin: 0; }

/* ── Zo start je ── */
.rc-hw__start { padding: 110px 0 120px; background: var(--rc-hw-bg-2); }
.rc-hw__imp { display: grid; grid-template-columns: repeat(4, 1fr); gap: 18px; }
.rc-hw__imp > div { position: relative; padding: 26px 22px 24px; border-radius: 22px; background: var(--rc-bg-2); }
.rc-hw__num { position: absolute; right: 20px; top: 14px; font-family: var(--rc-hand); font-size: 30px; font-weight: 600; color: #C9D6EA; }
.rc-hw__imp .rc-ic { margin-bottom: 18px; --rc-ic-size: 44px; }
.rc-hw__imp b { display: block; margin-bottom: 6px; font-size: 17px; letter-spacing: -.01em; }
.rc-hw__imp > div > span:last-child { font-size: 14.5px; line-height: 1.55; color: var(--rc-ink-2); }
.rc-hw__note { margin: 28px 0 0; font-family: var(--rc-hand); font-size: 26px; font-weight: 600; color: var(--rc-pen); transform: rotate(-2deg); transform-origin: 0 50%; }

/* ── Tablet en mobiel ── */
@media (max-width: 1100px) {
	.rc-hw__wrap { padding: 0 20px; }
	.rc-hw__intro { padding: 84px 0 20px; }
	.rc-hw__h1 { font-size: 38px; }
	.rc-hw__intro .rc-hw__lead { font-size: 16px; }
	.rc-hw__plan { padding: 56px 0 30px; }
	.rc-hw__story { grid-template-columns: 1fr; gap: 0; }
	.rc-hw__stage { display: none; }
	.rc-hw__steps { padding-bottom: 0; }
	.rc-hw__step { min-height: 0; padding: 30px 0; opacity: 1; }
	.rc-hw__inline { display: block; margin-top: 22px; }
	.rc-hw__gast,
	.rc-hw__wz { padding: 72px 0; }
	.rc-hw__split,
	.rc-hw__two { grid-template-columns: 1fr; gap: 20px; }
	.rc-hw__road { grid-auto-flow: row; grid-template-columns: 1fr; gap: 26px; }
	.rc-hw__road::before { left: 35px; right: auto; top: 20px; bottom: 20px; border-top: 0; border-left: 2px dashed #C9D6EA; }
	.rc-hw__road li { display: grid; grid-template-columns: 72px 1fr; column-gap: 18px; padding: 0; text-align: left; }
	.rc-hw__road .rc-hw__ic { grid-row: span 3; margin: 0; }
	.rc-hw__road small { justify-self: start; }
	.rc-hw__esc { align-items: flex-start; }
	.rc-hw__start { padding: 72px 0 80px; }
	.rc-hw__imp { grid-template-columns: 1fr 1fr; gap: 12px; }
}
@media (max-width: 600px) {
	.rc-hw__imp { grid-template-columns: 1fr; }
}
