
/* Wauters Detailing components. Every value comes from tokens.css (tokens.json). */

.w-root, body.w-root {
  background: var(--bg); color: var(--white);
  font-family: var(--font-body); font-weight: 300; line-height: 1.6;
  margin: 0; -webkit-font-smoothing: antialiased;
}
.w-root *, .w-root *::before, .w-root *::after { box-sizing: border-box; }

/* ── Type helpers (display face is always uppercase) ── */
.w-display { font-family: var(--font-display); text-transform: uppercase; }
.w-accent { color: var(--blue); }

/* ── Button ── */
.w-btn {
  font-family: var(--font-display); font-size: 13px; font-weight: 700;
  letter-spacing: 0.18em; text-transform: uppercase; line-height: 1;
  display: inline-block; padding: 12px var(--space-24);
  border: var(--grid-line) solid transparent; border-radius: var(--radius-none);
  cursor: pointer; text-decoration: none; transition: background 0.15s, color 0.15s, border-color 0.15s;
}
.w-btn--primary { background: var(--blue); color: var(--white); border-color: var(--blue); }
.w-btn--primary:hover { background: var(--blue-hover); border-color: var(--blue-hover); }
.w-btn--outline { background: transparent; color: var(--white); border-color: var(--white); }
.w-btn--outline:hover { background: var(--white); color: var(--bg); }
.w-btn--outline-blue { background: transparent; color: var(--blue); border-color: var(--blue); }
.w-btn--outline-blue:hover { color: var(--blue-hover); border-color: var(--blue-hover); }
.w-btn--block { display: block; text-align: center; font-size: 12px; letter-spacing: 0.2em; padding: 12px; }
.w-btn:focus-visible { outline: 2px solid var(--white); outline-offset: 2px; }

/* ── Eyebrow (Lijn + Label) ── */
.w-eyebrow {
  font-family: var(--font-display); font-size: 11px; font-weight: 600;
  letter-spacing: 0.35em; text-transform: uppercase; color: var(--blue);
  display: flex; align-items: center; gap: var(--space-12); margin: 0;
}
.w-eyebrow::before { content: ''; display: block; width: var(--eyebrow-line); height: var(--grid-line); background: var(--blue); flex-shrink: 0; }
.w-eyebrow--sm { font-size: 10px; letter-spacing: 0.4em; }
.w-eyebrow--sm::before { width: 24px; }
.w-eyebrow--bare::before { display: none; }

/* ── Section number "(01) DIENSTEN" ── */
.w-secnum { font-family: var(--font-display); font-size: 13px; font-weight: 600; letter-spacing: 0.3em; text-transform: uppercase; color: var(--blue); }

/* ── Counter "01/05" ── */
.w-counter { font-family: var(--font-display); font-size: 10px; font-weight: 600; letter-spacing: 0.25em; color: var(--grey-dim); }

/* ── Block grid (1px grid borders) ── */
.w-grid { display: grid; gap: var(--grid-line); background: var(--border-card); border: var(--grid-line) solid var(--border-card); }
.w-grid--2 { grid-template-columns: repeat(2, 1fr); }
.w-grid--3 { grid-template-columns: repeat(3, 1fr); }
.w-grid--4 { grid-template-columns: repeat(4, 1fr); }
.w-grid--5 { grid-template-columns: repeat(5, 1fr); }
.w-block { background: var(--card); padding: var(--space-32); }
.w-block__label { font-family: var(--font-display); font-size: 10px; font-weight: 600; letter-spacing: 0.35em; text-transform: uppercase; color: var(--blue); margin-bottom: var(--space-12); display: block; }
.w-block__value { font-family: var(--font-display); font-size: 18px; font-weight: 700; letter-spacing: 0.03em; color: var(--white); margin-bottom: var(--space-8); line-height: 1.2; }
.w-block__desc { font-size: 13px; color: var(--grey-mid); line-height: 1.7; margin: 0; }
@media (max-width: 900px) { .w-grid--2, .w-grid--3, .w-grid--4, .w-grid--5 { grid-template-columns: 1fr; } }

/* ── Service card ── */
.w-service { background: var(--card); padding: var(--space-28) var(--space-24); border-top: 2px solid var(--border-card); }
.w-service--active { border-top-color: var(--blue); }
.w-service .w-counter { margin-bottom: var(--space-20); }
.w-service__name { font-family: var(--font-display); font-weight: 700; font-size: 16px; text-transform: uppercase; letter-spacing: 0.05em; color: var(--white); margin-bottom: var(--space-8); }
.w-service__desc { font-size: 12px; color: var(--grey-mid); line-height: 1.65; margin: 0 0 var(--space-20); }
.w-service__price { font-family: var(--font-display); font-weight: 700; font-size: 15px; color: var(--white); letter-spacing: 0.03em; }

/* ── Bullet list (square blue bullets) ── */
.w-bullets { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 10px; }
.w-bullets li { font-size: 13px; color: var(--white-body); line-height: 1.5; display: flex; align-items: flex-start; gap: 10px; }
.w-bullets li::before { content: ''; display: block; width: var(--bullet); height: var(--bullet); background: var(--blue); flex-shrink: 0; margin-top: 5px; }

/* ── Price card ── */
.w-price { background: var(--card); padding: var(--space-36) var(--space-32); border: var(--grid-line) solid transparent; position: relative; }
.w-price--featured { background: var(--card-featured); border-color: var(--blue); }
.w-price__badge { position: absolute; top: -1px; left: 50%; transform: translateX(-50%); font-family: var(--font-display); font-size: 10px; font-weight: 700; letter-spacing: 0.25em; text-transform: uppercase; color: var(--white); background: var(--blue); padding: 4px 14px; white-space: nowrap; }
.w-price__tier { font-family: var(--font-display); font-size: 10px; font-weight: 600; letter-spacing: 0.35em; text-transform: uppercase; color: var(--grey-dim); margin-bottom: 6px; }
.w-price--featured .w-price__tier { color: var(--blue); }
.w-price__name { font-family: var(--font-display); font-weight: 700; font-size: 22px; text-transform: uppercase; letter-spacing: 0.04em; color: var(--white); margin-bottom: var(--space-4); }
.w-price__amount { font-family: var(--font-display); font-weight: 900; font-size: 48px; line-height: 1; color: var(--white); letter-spacing: -0.02em; margin-bottom: var(--space-24); }
.w-price__amount sup { font-size: 24px; font-weight: 700; vertical-align: super; }
.w-price__amount span { font-size: 22px; font-weight: 400; color: var(--grey-mid); }
.w-price .w-btn--block { margin-top: var(--space-28); background: transparent; color: var(--white); border-color: var(--white-body); }
.w-price--featured .w-btn--block { background: var(--blue); border-color: var(--blue); }

/* ── Voice pillar card ── */
.w-pillar { background: var(--card); padding: var(--space-36) var(--space-32); border-top: 2px solid transparent; transition: border-color 0.2s; }
.w-pillar:hover { border-top-color: var(--blue); }
.w-pillar__num { font-family: var(--font-display); font-weight: 900; font-size: 52px; line-height: 1; color: var(--blue-dim); margin-bottom: var(--space-12); }
.w-pillar__title { font-family: var(--font-display); font-weight: 700; font-size: 20px; text-transform: uppercase; letter-spacing: 0.08em; color: var(--white); margin-bottom: 10px; }
.w-pillar__desc { font-size: 13px; color: var(--grey-mid); line-height: 1.7; margin: 0; }

/* ── Ad card ── */
.w-hero { background: radial-gradient(ellipse 80% 60% at 60% 40%, var(--bg-hero-glow) 0%, var(--bg) 70%); }
.w-ad { background: var(--bg-hero); padding: 52px var(--space-44); position: relative; overflow: hidden; min-height: 300px; display: flex; flex-direction: column; justify-content: flex-end; }
.w-ad::before { content: ''; position: absolute; inset: 0; background: radial-gradient(ellipse 100% 100% at 70% 30%, var(--blue-dim) 0%, transparent 60%); pointer-events: none; }
.w-ad > * { position: relative; }
.w-ad .w-eyebrow { margin-bottom: var(--space-12); font-size: 10px; }
.w-ad__headline { font-family: var(--font-display); font-weight: 900; font-size: 56px; text-transform: uppercase; line-height: 0.92; letter-spacing: -0.01em; color: var(--white); margin: 0 0 var(--space-16); }
.w-ad__headline em { font-style: normal; color: var(--blue); }
.w-ad__sub { font-size: 13px; color: var(--grey-mid); line-height: 1.6; max-width: 340px; margin: 0 0 var(--space-24); }
.w-ad .w-btn { align-self: flex-start; font-size: 12px; letter-spacing: 0.2em; padding: 10px 20px; }

/* ── Gloed (signature glowing background) ── */
.w-glow {
  background:
    radial-gradient(ellipse 55% 38% at 82% 6%, var(--glow-navy) 0%, transparent 100%),
    radial-gradient(ellipse 42% 36% at 9% 80%, var(--glow-navy-soft) 0%, transparent 100%),
    radial-gradient(ellipse 20% 62% at 41% 0%, var(--glow-haze) 0%, transparent 100%),
    radial-gradient(ellipse 26% 48% at 58% 100%, var(--glow-smoke) 0%, transparent 100%),
    radial-gradient(ellipse 36% 44% at 100% 100%, var(--glow-smoke) 0%, transparent 100%),
    radial-gradient(ellipse 62% 75% at 0% 25%, var(--glow-shade) 0%, transparent 100%),
    var(--glow-base);
}
.w-ad.w-glow::before { display: none; }

/* ── Tagline / message row ── */
.w-message { background: var(--card); border: var(--grid-line) solid var(--border-card); padding: var(--space-36) 40px; }
.w-message .w-eyebrow { margin-bottom: 14px; font-size: 10px; }
.w-tagline { font-family: var(--font-display); font-weight: 900; font-size: 52px; text-transform: uppercase; letter-spacing: -0.01em; color: var(--white); line-height: 0.95; margin: 0; }
.w-tagline em { font-style: normal; color: var(--blue); }
.w-message__copy { font-size: 16px; font-weight: 300; color: var(--white-body); line-height: 1.65; max-width: 760px; margin: 0; }
.w-message__copy strong { font-weight: 600; }

/* ── Hashtag chip ── */
.w-tags { display: flex; flex-wrap: wrap; gap: var(--space-8); }
.w-tag { font-family: var(--font-display); font-size: 13px; color: var(--grey-mid); background: var(--card-raised); border: var(--grid-line) solid var(--border-card); padding: 6px 14px; }
.w-tag--primary { font-weight: 700; letter-spacing: 0.08em; color: var(--blue); background: var(--blue-dim); border-color: var(--blue-border); }

/* ── Do / Don't ── */
.w-dodont { display: grid; grid-template-columns: 1fr 1fr; gap: var(--grid-line); background: var(--border-card); border: var(--grid-line) solid var(--border-card); }
.w-dodont__box { background: var(--card); padding: var(--space-36); }
.w-dodont__head { font-family: var(--font-display); font-size: 12px; font-weight: 700; letter-spacing: 0.3em; text-transform: uppercase; margin-bottom: var(--space-20); }
.w-dodont__head--do { color: var(--success); }
.w-dodont__head--dont { color: var(--danger); }
.w-rules { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 10px; }
.w-rules li { font-size: 13px; color: var(--grey-mid); line-height: 1.6; padding-left: 14px; position: relative; }
.w-rules li::before { content: '—'; position: absolute; left: 0; color: var(--grey-dim); font-size: 11px; }
@media (max-width: 900px) { .w-dodont { grid-template-columns: 1fr; } }

/* ── Contact cell ── */
.w-contact { background: var(--card); padding: var(--space-28); }
.w-contact__label { font-family: var(--font-display); font-size: 10px; font-weight: 600; letter-spacing: 0.35em; text-transform: uppercase; color: var(--blue); margin-bottom: 10px; }
.w-contact__value { font-family: var(--font-display); font-size: 15px; font-weight: 600; color: var(--white); letter-spacing: 0.03em; line-height: 1.5; }

/* ── Nav bar ── */
.w-nav { display: flex; align-items: center; justify-content: space-between; padding: 0 var(--space-48); height: var(--nav-height); background: var(--bg); border-bottom: var(--grid-line) solid var(--border); }
.w-nav__logo { height: 14px; width: auto; display: block; }
.w-nav__links { display: flex; gap: var(--space-8); list-style: none; margin: 0; padding: 0; }
.w-nav__links a { font-family: var(--font-display); font-size: 11px; font-weight: 600; letter-spacing: 0.18em; text-transform: uppercase; color: var(--grey-mid); text-decoration: none; padding: 6px 10px; transition: color 0.15s; }
.w-nav__links a:hover, .w-nav__links a[aria-current] { color: var(--white); }
@media (max-width: 900px) { .w-nav { padding: 0 var(--space-24); } .w-nav__links { display: none; } }

/* ── Logo tiles ── */
.w-logo-box { padding: var(--space-56) var(--space-44); display: flex; flex-direction: column; align-items: flex-start; justify-content: center; gap: var(--space-24); }
.w-logo-box--dark { background: var(--bg); }
.w-logo-box--navy { background: var(--surface-navy); }
.w-logo-box--light { background: var(--surface-light); }
.w-logo-box__label { font-family: var(--font-display); font-size: 10px; font-weight: 600; letter-spacing: 0.3em; text-transform: uppercase; color: var(--grey-mid); }
.w-logo-box--light .w-logo-box__label { color: var(--bg); }
